diff --git a/api/cast/cast.pb.go b/api/cast/cast.pb.go index dba8eee..7f83b4a 100644 --- a/api/cast/cast.pb.go +++ b/api/cast/cast.pb.go @@ -14650,6 +14650,1750 @@ func (x *RecalculateCastTagQuoteCountResp) GetMsg() string { return "" } +// 创建竞品报告请求 +type CreateCompetitiveReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID(可选,为空时自动生成) + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + ReportContent string `protobuf:"bytes,6,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,7,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` // 标题 + PdfUrl string `protobuf:"bytes,9,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + WorkUuids []string `protobuf:"bytes,10,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表(最多5个) + Source uint32 `protobuf:"varint,11,opt,name=source,proto3" json:"source"` // 来源 1 系统 2 导入 + Remark string `protobuf:"bytes,12,opt,name=remark,proto3" json:"remark"` // 备注(批量导入时用于记录错误信息) + Success bool `protobuf:"varint,13,opt,name=success,proto3" json:"success"` // 是否成功(批量导入时使用) +} + +func (x *CreateCompetitiveReportReq) Reset() { + *x = CreateCompetitiveReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCompetitiveReportReq) ProtoMessage() {} + +func (x *CreateCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[168] + 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 CreateCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*CreateCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{168} +} + +func (x *CreateCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *CreateCompetitiveReportReq) GetSource() uint32 { + if x != nil { + return x.Source + } + return 0 +} + +func (x *CreateCompetitiveReportReq) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *CreateCompetitiveReportReq) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +// 创建竞品报告响应 +type CreateCompetitiveReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID +} + +func (x *CreateCompetitiveReportResp) Reset() { + *x = CreateCompetitiveReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCompetitiveReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCompetitiveReportResp) ProtoMessage() {} + +func (x *CreateCompetitiveReportResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[169] + 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 CreateCompetitiveReportResp.ProtoReflect.Descriptor instead. +func (*CreateCompetitiveReportResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{169} +} + +func (x *CreateCompetitiveReportResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 更新竞品报告请求 +type UpdateCompetitiveReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ReportContent string `protobuf:"bytes,2,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title"` // 标题 + ImageUrl string `protobuf:"bytes,4,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + PdfUrl string `protobuf:"bytes,5,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 +} + +func (x *UpdateCompetitiveReportReq) Reset() { + *x = UpdateCompetitiveReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[170] + 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 UpdateCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{170} +} + +func (x *UpdateCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *UpdateCompetitiveReportReq) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +// 更新竞品报告状态请求 +type UpdateCompetitiveReportStatusReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkAction WorkActionENUM `protobuf:"varint,1,opt,name=workAction,proto3,enum=Cast.WorkActionENUM" json:"workAction"` // 操作类型 + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ApprovalID string `protobuf:"bytes,3,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + ApprovalReply string `protobuf:"bytes,4,opt,name=approvalReply,proto3" json:"approvalReply"` // 审批回复 + ConfirmRemark string `protobuf:"bytes,5,opt,name=confirmRemark,proto3" json:"confirmRemark"` // 确认备注 + ConfirmStatus uint32 `protobuf:"varint,6,opt,name=confirmStatus,proto3" json:"confirmStatus"` // 确认状态 1 通过 2 驳回 3 失败 + CostType uint32 `protobuf:"varint,7,opt,name=costType,proto3" json:"costType"` // 计费类型 1 套餐 2 增值 + ConfirmType uint32 `protobuf:"varint,8,opt,name=confirmType,proto3" json:"confirmType"` // 确认类型 1 艺人确认 2 系统确认 +} + +func (x *UpdateCompetitiveReportStatusReq) Reset() { + *x = UpdateCompetitiveReportStatusReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCompetitiveReportStatusReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportStatusReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportStatusReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[171] + 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 UpdateCompetitiveReportStatusReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportStatusReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{171} +} + +func (x *UpdateCompetitiveReportStatusReq) GetWorkAction() WorkActionENUM { + if x != nil { + return x.WorkAction + } + return WorkActionENUM_NO_ACTION +} + +func (x *UpdateCompetitiveReportStatusReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetApprovalReply() string { + if x != nil { + return x.ApprovalReply + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmStatus() uint32 { + if x != nil { + return x.ConfirmStatus + } + return 0 +} + +func (x *UpdateCompetitiveReportStatusReq) GetCostType() uint32 { + if x != nil { + return x.CostType + } + return 0 +} + +func (x *UpdateCompetitiveReportStatusReq) GetConfirmType() uint32 { + if x != nil { + return x.ConfirmType + } + return 0 +} + +// 更新竞品报告审批ID请求 +type UpdateCompetitiveReportApprovalIDReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + ApprovalID string `protobuf:"bytes,2,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID +} + +func (x *UpdateCompetitiveReportApprovalIDReq) Reset() { + *x = UpdateCompetitiveReportApprovalIDReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCompetitiveReportApprovalIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCompetitiveReportApprovalIDReq) ProtoMessage() {} + +func (x *UpdateCompetitiveReportApprovalIDReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[172] + 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 UpdateCompetitiveReportApprovalIDReq.ProtoReflect.Descriptor instead. +func (*UpdateCompetitiveReportApprovalIDReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{172} +} + +func (x *UpdateCompetitiveReportApprovalIDReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *UpdateCompetitiveReportApprovalIDReq) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +// 竞品报告日志信息 +type CompetitiveReportLogInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReportUuid string `protobuf:"bytes,1,opt,name=reportUuid,proto3" json:"reportUuid"` // 报告UUID + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"` // 标题 + UpdateTime string `protobuf:"bytes,3,opt,name=updateTime,proto3" json:"updateTime"` // 更新时间 + WorkReportStatus uint32 `protobuf:"varint,4,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + ArtistName string `protobuf:"bytes,5,opt,name=artistName,proto3" json:"artistName"` // 艺人名称 + ArtistUuid string `protobuf:"bytes,6,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人ID + ReportExtraData string `protobuf:"bytes,7,opt,name=reportExtraData,proto3" json:"reportExtraData"` // 竞品报告扩展数据 + OperatorName string `protobuf:"bytes,8,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + OperatorID string `protobuf:"bytes,9,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID +} + +func (x *CompetitiveReportLogInfo) Reset() { + *x = CompetitiveReportLogInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompetitiveReportLogInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportLogInfo) ProtoMessage() {} + +func (x *CompetitiveReportLogInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[173] + 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 CompetitiveReportLogInfo.ProtoReflect.Descriptor instead. +func (*CompetitiveReportLogInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{173} +} + +func (x *CompetitiveReportLogInfo) GetReportUuid() string { + if x != nil { + return x.ReportUuid + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetUpdateTime() string { + if x != nil { + return x.UpdateTime + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *CompetitiveReportLogInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetReportExtraData() string { + if x != nil { + return x.ReportExtraData + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *CompetitiveReportLogInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +// 竞品报告扩展信息 +type CompetitiveReportExtra struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReportUuid string `protobuf:"bytes,1,opt,name=reportUuid,proto3" json:"reportUuid"` // 竞品报告uuid + ArtistConfirmedTime int64 `protobuf:"varint,2,opt,name=artistConfirmedTime,proto3" json:"artistConfirmedTime"` // 艺人确认时间 + CostType uint32 `protobuf:"varint,3,opt,name=costType,proto3" json:"costType"` // 计费类型 1 套餐 2 增值 + CreatedAt int32 `protobuf:"varint,4,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt int32 `protobuf:"varint,5,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 +} + +func (x *CompetitiveReportExtra) Reset() { + *x = CompetitiveReportExtra{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompetitiveReportExtra) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportExtra) ProtoMessage() {} + +func (x *CompetitiveReportExtra) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[174] + 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 CompetitiveReportExtra.ProtoReflect.Descriptor instead. +func (*CompetitiveReportExtra) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{174} +} + +func (x *CompetitiveReportExtra) GetReportUuid() string { + if x != nil { + return x.ReportUuid + } + return "" +} + +func (x *CompetitiveReportExtra) GetArtistConfirmedTime() int64 { + if x != nil { + return x.ArtistConfirmedTime + } + return 0 +} + +func (x *CompetitiveReportExtra) GetCostType() uint32 { + if x != nil { + return x.CostType + } + return 0 +} + +func (x *CompetitiveReportExtra) GetCreatedAt() int32 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *CompetitiveReportExtra) GetUpdatedAt() int32 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +// 获取竞品报告详情请求 +type GetCompetitiveReportDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID +} + +func (x *GetCompetitiveReportDetailReq) Reset() { + *x = GetCompetitiveReportDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCompetitiveReportDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportDetailReq) ProtoMessage() {} + +func (x *GetCompetitiveReportDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[175] + 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 GetCompetitiveReportDetailReq.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportDetailReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{175} +} + +func (x *GetCompetitiveReportDetailReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 获取竞品报告详情请求(App端) +type GetCompetitiveReportForAppReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID +} + +func (x *GetCompetitiveReportForAppReq) Reset() { + *x = GetCompetitiveReportForAppReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[176] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCompetitiveReportForAppReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportForAppReq) ProtoMessage() {} + +func (x *GetCompetitiveReportForAppReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[176] + 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 GetCompetitiveReportForAppReq.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportForAppReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{176} +} + +func (x *GetCompetitiveReportForAppReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 获取竞品报告详情响应(App端) +type GetCompetitiveReportForAppResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ReportContent string `protobuf:"bytes,4,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,5,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title"` // 标题 + PdfUrl string `protobuf:"bytes,7,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + WorkUuids []string `protobuf:"bytes,8,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表 + CreatedAt string `protobuf:"bytes,9,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt string `protobuf:"bytes,10,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 +} + +func (x *GetCompetitiveReportForAppResp) Reset() { + *x = GetCompetitiveReportForAppResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCompetitiveReportForAppResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportForAppResp) ProtoMessage() {} + +func (x *GetCompetitiveReportForAppResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[177] + 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 GetCompetitiveReportForAppResp.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportForAppResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{177} +} + +func (x *GetCompetitiveReportForAppResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *GetCompetitiveReportForAppResp) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *GetCompetitiveReportForAppResp) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +// 获取竞品报告详情响应 +type GetCompetitiveReportDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + ReportContent string `protobuf:"bytes,6,opt,name=reportContent,proto3" json:"reportContent"` // 报告内容 + ImageUrl string `protobuf:"bytes,7,opt,name=imageUrl,proto3" json:"imageUrl"` // 图片url + Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title"` // 标题 + OperatorID string `protobuf:"bytes,9,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID + OperatorName string `protobuf:"bytes,10,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + WorkReportStatus uint32 `protobuf:"varint,11,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + Reason string `protobuf:"bytes,12,opt,name=reason,proto3" json:"reason"` // 原因 + ComfirmType int32 `protobuf:"varint,13,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + Cost uint32 `protobuf:"varint,14,opt,name=cost,proto3" json:"cost"` // 消耗状态 + SubmitTime string `protobuf:"bytes,15,opt,name=submitTime,proto3" json:"submitTime"` // 提交时间 + StatusUpdateTime string `protobuf:"bytes,16,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 状态更新时间 + ApprovalID string `protobuf:"bytes,17,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + PdfUrl string `protobuf:"bytes,18,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + ConfirmRemark string `protobuf:"bytes,19,opt,name=confirmRemark,proto3" json:"confirmRemark"` // 艺人确认备注 + WorkUuids []string `protobuf:"bytes,20,rep,name=workUuids,proto3" json:"workUuids"` // 关联的作品UUID列表 + ReportLogData []*CompetitiveReportLogInfo `protobuf:"bytes,21,rep,name=reportLogData,proto3" json:"reportLogData"` // 竞品报告日志数据 + Extra *CompetitiveReportExtra `protobuf:"bytes,22,opt,name=extra,proto3" json:"extra"` // 扩展信息 + CreatedAt string `protobuf:"bytes,23,opt,name=createdAt,proto3" json:"createdAt"` // 创建时间 + UpdatedAt string `protobuf:"bytes,24,opt,name=updatedAt,proto3" json:"updatedAt"` // 更新时间 +} + +func (x *GetCompetitiveReportDetailResp) Reset() { + *x = GetCompetitiveReportDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[178] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCompetitiveReportDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCompetitiveReportDetailResp) ProtoMessage() {} + +func (x *GetCompetitiveReportDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[178] + 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 GetCompetitiveReportDetailResp.ProtoReflect.Descriptor instead. +func (*GetCompetitiveReportDetailResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{178} +} + +func (x *GetCompetitiveReportDetailResp) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetReportContent() string { + if x != nil { + return x.ReportContent + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetImageUrl() string { + if x != nil { + return x.ImageUrl + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetCost() uint32 { + if x != nil { + return x.Cost + } + return 0 +} + +func (x *GetCompetitiveReportDetailResp) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetConfirmRemark() string { + if x != nil { + return x.ConfirmRemark + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetReportLogData() []*CompetitiveReportLogInfo { + if x != nil { + return x.ReportLogData + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetExtra() *CompetitiveReportExtra { + if x != nil { + return x.Extra + } + return nil +} + +func (x *GetCompetitiveReportDetailResp) GetCreatedAt() string { + if x != nil { + return x.CreatedAt + } + return "" +} + +func (x *GetCompetitiveReportDetailResp) GetUpdatedAt() string { + if x != nil { + return x.UpdatedAt + } + return "" +} + +// 获取竞品报告列表请求 +type ListCompetitiveReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UuidList []string `protobuf:"bytes,1,rep,name=uuidList,proto3" json:"uuidList"` // UUID列表 + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistVal string `protobuf:"bytes,3,opt,name=artistVal,proto3" json:"artistVal"` // 艺人搜索值 + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` // 状态 + ComfirmType int32 `protobuf:"varint,5,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + StatusUpdateTimeStart string `protobuf:"bytes,6,opt,name=statusUpdateTimeStart,proto3" json:"statusUpdateTimeStart"` // 状态更新时间开始 + StatusUpdateTimeEnd string `protobuf:"bytes,7,opt,name=statusUpdateTimeEnd,proto3" json:"statusUpdateTimeEnd"` // 状态更新时间结束 + SubmitStartTime string `protobuf:"bytes,8,opt,name=submitStartTime,proto3" json:"submitStartTime"` // 提交时间开始 + SubmitEndTime string `protobuf:"bytes,9,opt,name=submitEndTime,proto3" json:"submitEndTime"` // 提交时间结束 + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page"` // 页码 + PageSize int32 `protobuf:"varint,11,opt,name=pageSize,proto3" json:"pageSize"` // 每页数量 + StatusList []uint32 `protobuf:"varint,12,rep,packed,name=statusList,proto3" json:"statusList"` // 状态列表 + ArtistUuid string `protobuf:"bytes,13,opt,name=artistUuid,proto3" json:"artistUuid"` // 艺人UUID +} + +func (x *ListCompetitiveReportReq) Reset() { + *x = ListCompetitiveReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[179] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCompetitiveReportReq) ProtoMessage() {} + +func (x *ListCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[179] + 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 ListCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*ListCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{179} +} + +func (x *ListCompetitiveReportReq) GetUuidList() []string { + if x != nil { + return x.UuidList + } + return nil +} + +func (x *ListCompetitiveReportReq) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *ListCompetitiveReportReq) GetArtistVal() string { + if x != nil { + return x.ArtistVal + } + return "" +} + +func (x *ListCompetitiveReportReq) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetStatusUpdateTimeStart() string { + if x != nil { + return x.StatusUpdateTimeStart + } + return "" +} + +func (x *ListCompetitiveReportReq) GetStatusUpdateTimeEnd() string { + if x != nil { + return x.StatusUpdateTimeEnd + } + return "" +} + +func (x *ListCompetitiveReportReq) GetSubmitStartTime() string { + if x != nil { + return x.SubmitStartTime + } + return "" +} + +func (x *ListCompetitiveReportReq) GetSubmitEndTime() string { + if x != nil { + return x.SubmitEndTime + } + return "" +} + +func (x *ListCompetitiveReportReq) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListCompetitiveReportReq) GetStatusList() []uint32 { + if x != nil { + return x.StatusList + } + return nil +} + +func (x *ListCompetitiveReportReq) GetArtistUuid() string { + if x != nil { + return x.ArtistUuid + } + return "" +} + +// 竞品报告信息 +type CompetitiveReportInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID + SubNum string `protobuf:"bytes,2,opt,name=subNum,proto3" json:"subNum"` // 艺人编号 + ArtistName string `protobuf:"bytes,3,opt,name=artistName,proto3" json:"artistName"` // 艺人名字 + ArtistID string `protobuf:"bytes,4,opt,name=artistID,proto3" json:"artistID"` // 艺人ID + ArtistPhone string `protobuf:"bytes,5,opt,name=artistPhone,proto3" json:"artistPhone"` // 艺人手机号 + OperatorID string `protobuf:"bytes,6,opt,name=operatorID,proto3" json:"operatorID"` // 操作人ID + OperatorName string `protobuf:"bytes,7,opt,name=operatorName,proto3" json:"operatorName"` // 操作人名称 + WorkReportStatus uint32 `protobuf:"varint,8,opt,name=workReportStatus,proto3" json:"workReportStatus"` // 状态 + Reason string `protobuf:"bytes,9,opt,name=reason,proto3" json:"reason"` // 原因 + ComfirmType int32 `protobuf:"varint,10,opt,name=comfirmType,proto3" json:"comfirmType"` // 确认类型 + SubmitTime string `protobuf:"bytes,11,opt,name=submitTime,proto3" json:"submitTime"` // 提交时间 + StatusUpdateTime string `protobuf:"bytes,12,opt,name=statusUpdateTime,proto3" json:"statusUpdateTime"` // 状态更新时间 + PdfUrl string `protobuf:"bytes,13,opt,name=pdfUrl,proto3" json:"pdfUrl"` // pdf的url链接 + ApprovalID string `protobuf:"bytes,14,opt,name=approvalID,proto3" json:"approvalID"` // 审批ID + Title string `protobuf:"bytes,15,opt,name=title,proto3" json:"title"` // 标题 +} + +func (x *CompetitiveReportInfo) Reset() { + *x = CompetitiveReportInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[180] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompetitiveReportInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompetitiveReportInfo) ProtoMessage() {} + +func (x *CompetitiveReportInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[180] + 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 CompetitiveReportInfo.ProtoReflect.Descriptor instead. +func (*CompetitiveReportInfo) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{180} +} + +func (x *CompetitiveReportInfo) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *CompetitiveReportInfo) GetSubNum() string { + if x != nil { + return x.SubNum + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistName() string { + if x != nil { + return x.ArtistName + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistID() string { + if x != nil { + return x.ArtistID + } + return "" +} + +func (x *CompetitiveReportInfo) GetArtistPhone() string { + if x != nil { + return x.ArtistPhone + } + return "" +} + +func (x *CompetitiveReportInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID + } + return "" +} + +func (x *CompetitiveReportInfo) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *CompetitiveReportInfo) GetWorkReportStatus() uint32 { + if x != nil { + return x.WorkReportStatus + } + return 0 +} + +func (x *CompetitiveReportInfo) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *CompetitiveReportInfo) GetComfirmType() int32 { + if x != nil { + return x.ComfirmType + } + return 0 +} + +func (x *CompetitiveReportInfo) GetSubmitTime() string { + if x != nil { + return x.SubmitTime + } + return "" +} + +func (x *CompetitiveReportInfo) GetStatusUpdateTime() string { + if x != nil { + return x.StatusUpdateTime + } + return "" +} + +func (x *CompetitiveReportInfo) GetPdfUrl() string { + if x != nil { + return x.PdfUrl + } + return "" +} + +func (x *CompetitiveReportInfo) GetApprovalID() string { + if x != nil { + return x.ApprovalID + } + return "" +} + +func (x *CompetitiveReportInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +// 获取竞品报告列表响应 +type ListCompetitiveReportResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*CompetitiveReportInfo `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 竞品报告列表 + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 总数 +} + +func (x *ListCompetitiveReportResp) Reset() { + *x = ListCompetitiveReportResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[181] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCompetitiveReportResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCompetitiveReportResp) ProtoMessage() {} + +func (x *ListCompetitiveReportResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[181] + 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 ListCompetitiveReportResp.ProtoReflect.Descriptor instead. +func (*ListCompetitiveReportResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{181} +} + +func (x *ListCompetitiveReportResp) GetData() []*CompetitiveReportInfo { + if x != nil { + return x.Data + } + return nil +} + +func (x *ListCompetitiveReportResp) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 删除竞品报告请求 +type DeleteCompetitiveReportReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid"` // 报告UUID +} + +func (x *DeleteCompetitiveReportReq) Reset() { + *x = DeleteCompetitiveReportReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[182] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCompetitiveReportReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCompetitiveReportReq) ProtoMessage() {} + +func (x *DeleteCompetitiveReportReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[182] + 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 DeleteCompetitiveReportReq.ProtoReflect.Descriptor instead. +func (*DeleteCompetitiveReportReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{182} +} + +func (x *DeleteCompetitiveReportReq) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +// 批量导入竞品报告请求 +type ImportCompetitiveReportBatchReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reports []*CreateCompetitiveReportReq `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports"` // 竞品报告列表 +} + +func (x *ImportCompetitiveReportBatchReq) Reset() { + *x = ImportCompetitiveReportBatchReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[183] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportCompetitiveReportBatchReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportCompetitiveReportBatchReq) ProtoMessage() {} + +func (x *ImportCompetitiveReportBatchReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[183] + 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 ImportCompetitiveReportBatchReq.ProtoReflect.Descriptor instead. +func (*ImportCompetitiveReportBatchReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{183} +} + +func (x *ImportCompetitiveReportBatchReq) GetReports() []*CreateCompetitiveReportReq { + if x != nil { + return x.Reports + } + return nil +} + +// 批量导入竞品报告响应 +type ImportCompetitiveReportBatchResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reports []*CreateCompetitiveReportReq `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports"` // 竞品报告列表(包含成功和失败的结果) + SuccessCount int32 `protobuf:"varint,2,opt,name=successCount,proto3" json:"successCount"` // 成功数量 + FailCount int32 `protobuf:"varint,3,opt,name=failCount,proto3" json:"failCount"` // 失败数量 +} + +func (x *ImportCompetitiveReportBatchResp) Reset() { + *x = ImportCompetitiveReportBatchResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[184] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportCompetitiveReportBatchResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportCompetitiveReportBatchResp) ProtoMessage() {} + +func (x *ImportCompetitiveReportBatchResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[184] + 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 ImportCompetitiveReportBatchResp.ProtoReflect.Descriptor instead. +func (*ImportCompetitiveReportBatchResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{184} +} + +func (x *ImportCompetitiveReportBatchResp) GetReports() []*CreateCompetitiveReportReq { + if x != nil { + return x.Reports + } + return nil +} + +func (x *ImportCompetitiveReportBatchResp) GetSuccessCount() int32 { + if x != nil { + return x.SuccessCount + } + return 0 +} + +func (x *ImportCompetitiveReportBatchResp) GetFailCount() int32 { + if x != nil { + return x.FailCount + } + return 0 +} + +// 批量根据work_uuid查询记录数量请求 +type CountCompetitiveReportByWorkUuidsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuids []string `protobuf:"bytes,1,rep,name=workUuids,proto3" json:"workUuids"` // 作品UUID列表 +} + +func (x *CountCompetitiveReportByWorkUuidsReq) Reset() { + *x = CountCompetitiveReportByWorkUuidsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[185] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountCompetitiveReportByWorkUuidsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountCompetitiveReportByWorkUuidsReq) ProtoMessage() {} + +func (x *CountCompetitiveReportByWorkUuidsReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[185] + 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 CountCompetitiveReportByWorkUuidsReq.ProtoReflect.Descriptor instead. +func (*CountCompetitiveReportByWorkUuidsReq) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{185} +} + +func (x *CountCompetitiveReportByWorkUuidsReq) GetWorkUuids() []string { + if x != nil { + return x.WorkUuids + } + return nil +} + +// work_uuid对应的记录数量 +type WorkUuidCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkUuid string `protobuf:"bytes,1,opt,name=workUuid,proto3" json:"workUuid"` // 作品UUID + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` // 记录数量 +} + +func (x *WorkUuidCount) Reset() { + *x = WorkUuidCount{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[186] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkUuidCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkUuidCount) ProtoMessage() {} + +func (x *WorkUuidCount) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[186] + 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 WorkUuidCount.ProtoReflect.Descriptor instead. +func (*WorkUuidCount) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{186} +} + +func (x *WorkUuidCount) GetWorkUuid() string { + if x != nil { + return x.WorkUuid + } + return "" +} + +func (x *WorkUuidCount) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// 批量根据work_uuid查询记录数量响应 +type CountCompetitiveReportByWorkUuidsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []*WorkUuidCount `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // work_uuid对应的记录数量列表 +} + +func (x *CountCompetitiveReportByWorkUuidsResp) Reset() { + *x = CountCompetitiveReportByWorkUuidsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_fiee_cast_proto_msgTypes[187] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountCompetitiveReportByWorkUuidsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountCompetitiveReportByWorkUuidsResp) ProtoMessage() {} + +func (x *CountCompetitiveReportByWorkUuidsResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_fiee_cast_proto_msgTypes[187] + 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 CountCompetitiveReportByWorkUuidsResp.ProtoReflect.Descriptor instead. +func (*CountCompetitiveReportByWorkUuidsResp) Descriptor() ([]byte, []int) { + return file_pb_fiee_cast_proto_rawDescGZIP(), []int{187} +} + +func (x *CountCompetitiveReportByWorkUuidsResp) GetData() []*WorkUuidCount { + if x != nil { + return x.Data + } + return nil +} + type WorkListResp_Info struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -14690,7 +16434,7 @@ type WorkListResp_Info struct { func (x *WorkListResp_Info) Reset() { *x = WorkListResp_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[168] + mi := &file_pb_fiee_cast_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14703,7 +16447,7 @@ func (x *WorkListResp_Info) String() string { func (*WorkListResp_Info) ProtoMessage() {} func (x *WorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[168] + mi := &file_pb_fiee_cast_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14945,7 +16689,7 @@ type MediaAccountsResp_Info struct { func (x *MediaAccountsResp_Info) Reset() { *x = MediaAccountsResp_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[171] + mi := &file_pb_fiee_cast_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14958,7 +16702,7 @@ func (x *MediaAccountsResp_Info) String() string { func (*MediaAccountsResp_Info) ProtoMessage() {} func (x *MediaAccountsResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[171] + mi := &file_pb_fiee_cast_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15036,7 +16780,7 @@ type MediaWorksResp_Info struct { func (x *MediaWorksResp_Info) Reset() { *x = MediaWorksResp_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[172] + mi := &file_pb_fiee_cast_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15049,7 +16793,7 @@ func (x *MediaWorksResp_Info) String() string { func (*MediaWorksResp_Info) ProtoMessage() {} func (x *MediaWorksResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[172] + mi := &file_pb_fiee_cast_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15147,7 +16891,7 @@ type PublishResp_Info struct { func (x *PublishResp_Info) Reset() { *x = PublishResp_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[173] + mi := &file_pb_fiee_cast_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15160,7 +16904,7 @@ func (x *PublishResp_Info) String() string { func (*PublishResp_Info) ProtoMessage() {} func (x *PublishResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[173] + mi := &file_pb_fiee_cast_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15203,7 +16947,7 @@ type RefreshWorkListResp_Info struct { func (x *RefreshWorkListResp_Info) Reset() { *x = RefreshWorkListResp_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[174] + mi := &file_pb_fiee_cast_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15216,7 +16960,7 @@ func (x *RefreshWorkListResp_Info) String() string { func (*RefreshWorkListResp_Info) ProtoMessage() {} func (x *RefreshWorkListResp_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[174] + mi := &file_pb_fiee_cast_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15269,7 +17013,7 @@ type RefreshWorkListResp_Info_PlatformInfo struct { func (x *RefreshWorkListResp_Info_PlatformInfo) Reset() { *x = RefreshWorkListResp_Info_PlatformInfo{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[175] + mi := &file_pb_fiee_cast_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15282,7 +17026,7 @@ func (x *RefreshWorkListResp_Info_PlatformInfo) String() string { func (*RefreshWorkListResp_Info_PlatformInfo) ProtoMessage() {} func (x *RefreshWorkListResp_Info_PlatformInfo) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[175] + mi := &file_pb_fiee_cast_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15355,7 +17099,7 @@ type UpdateOAuthReq_Info struct { func (x *UpdateOAuthReq_Info) Reset() { *x = UpdateOAuthReq_Info{} if protoimpl.UnsafeEnabled { - mi := &file_pb_fiee_cast_proto_msgTypes[176] + mi := &file_pb_fiee_cast_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15368,7 +17112,7 @@ func (x *UpdateOAuthReq_Info) String() string { func (*UpdateOAuthReq_Info) ProtoMessage() {} func (x *UpdateOAuthReq_Info) ProtoReflect() protoreflect.Message { - mi := &file_pb_fiee_cast_proto_msgTypes[176] + mi := &file_pb_fiee_cast_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17855,410 +19599,742 @@ var file_pb_fiee_cast_proto_rawDesc = []byte{ 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x2a, 0x54, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, 0x4b, 0x54, 0x4f, 0x4b, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, 0x45, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x44, 0x4d, 0x10, 0x04, - 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x55, 0x4c, 0x45, 0x53, 0x4b, 0x59, 0x10, 0x05, 0x2a, 0x39, 0x0a, - 0x0e, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x4e, 0x55, 0x4d, 0x12, - 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x41, 0x75, 0x74, 0x68, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x6b, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x41, 0x75, 0x74, 0x68, 0x4e, 0x6f, 0x10, 0x02, 0x2a, 0x81, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, - 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0d, 0x0a, 0x09, 0x4e, - 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, - 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, 0x4f, - 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, - 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, 0x52, - 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x12, 0x13, 0x0a, - 0x0f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x06, 0x2a, 0x56, 0x0a, 0x0f, - 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x4e, 0x55, 0x4d, 0x12, - 0x16, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x55, - 0x4e, 0x4b, 0x4f, 0x4e, 0x57, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, - 0x11, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x46, 0x41, 0x4c, - 0x53, 0x45, 0x10, 0x02, 0x2a, 0xa6, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x5f, 0x4e, 0x4f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x1b, - 0x0a, 0x17, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x2a, 0x65, 0x0a, - 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, - 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, - 0x4e, 0x55, 0x4d, 0x5f, 0x4e, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x45, - 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, - 0x45, 0x44, 0x10, 0x02, 0x2a, 0x59, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, - 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x49, - 0x54, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, - 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, - 0x0c, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x32, - 0xc3, 0x2c, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x42, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, - 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, - 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, - 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x13, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x57, 0x6f, 0x72, - 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, - 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, - 0x10, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x52, 0x65, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x35, - 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x44, 0x65, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x0a, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4f, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4c, - 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x48, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4f, 0x41, 0x75, - 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x4f, 0x41, - 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x32, 0x12, 0x17, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x56, 0x32, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, - 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x6f, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, - 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, - 0x65, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, - 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x12, 0x14, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x41, 0x75, 0x74, 0x68, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, - 0x0a, 0x10, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, - 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x05, 0x54, - 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x0e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, - 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x12, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5d, 0x0a, - 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x12, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x39, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x12, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, 0x15, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3f, 0x0a, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, 0x15, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, - 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6d, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, - 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, - 0x12, 0x4b, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x57, 0x0a, - 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xfe, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, + 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, + 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, + 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x64, 0x66, 0x55, + 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x64, 0x66, 0x55, 0x72, 0x6c, + 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x31, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x1a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x64, 0x66, 0x55, 0x72, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x22, 0xbc, + 0x02, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x52, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x24, 0x0a, + 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, + 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5a, 0x0a, + 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0xca, 0x02, 0x0a, 0x18, 0x43, 0x6f, + 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, + 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x22, 0xc2, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x72, + 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x75, 0x69, + 0x64, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x33, 0x0a, 0x1d, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x22, 0x33, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x70, 0x70, 0x52, 0x65, + 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xb6, 0x02, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, + 0x72, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, + 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x64, + 0x66, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xbe, + 0x06, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x64, 0x66, 0x55, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x64, 0x66, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x32, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x05, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0xce, 0x03, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x66, 0x69, 0x72, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, + 0x0a, 0x13, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x75, 0x69, 0x64, + 0x22, 0xe5, 0x03, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x75, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, + 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x64, + 0x66, 0x55, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x64, 0x66, 0x55, + 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x62, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x30, 0x0a, 0x1a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x5d, + 0x0a, 0x1f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x71, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0xa0, 0x01, + 0x0a, 0x20, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x44, 0x0a, 0x24, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x75, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x22, 0x41, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x55, 0x75, + 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x25, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x54, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x49, + 0x4b, 0x54, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x59, 0x4f, 0x55, 0x54, 0x55, 0x42, + 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, + 0x44, 0x4d, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x55, 0x4c, 0x45, 0x53, 0x4b, 0x59, 0x10, + 0x05, 0x2a, 0x39, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, + 0x4e, 0x55, 0x4d, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x41, 0x75, + 0x74, 0x68, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x6b, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x75, 0x74, 0x68, 0x4e, 0x6f, 0x10, 0x02, 0x2a, 0x81, 0x01, 0x0a, + 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x4e, 0x55, 0x4d, 0x12, + 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, + 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x50, 0x50, + 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, + 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, + 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, 0x5f, 0x44, 0x45, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x06, + 0x2a, 0x56, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, + 0x4e, 0x55, 0x4d, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x5f, 0x55, 0x4e, 0x4b, 0x4f, 0x4e, 0x57, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x41, + 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, + 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x02, 0x2a, 0xa6, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x19, + 0x0a, 0x15, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x4e, 0x4f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x44, 0x4f, 0x4e, 0x45, + 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x12, + 0x20, 0x0a, 0x1c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x04, 0x2a, 0x65, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, + 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, + 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x4e, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, 0x5f, + 0x4e, 0x4f, 0x54, 0x45, 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, + 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x59, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x45, 0x4e, 0x55, 0x4d, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, + 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, + 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, + 0x54, 0x10, 0x04, 0x32, 0xe7, 0x33, 0x0a, 0x04, 0x43, 0x61, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0d, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, + 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x42, 0x69, 0x6e, 0x64, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x69, + 0x6e, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x15, - 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x4b, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, - 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x1c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, - 0x69, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x25, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, - 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, - 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, - 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x76, - 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x63, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x21, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x1a, 0x22, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x54, 0x6f, 0x62, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x54, 0x6f, 0x62, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x62, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, - 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x1b, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x12, 0x24, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x1e, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, - 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, - 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x26, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x79, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, - 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x12, 0x2b, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x43, 0x61, 0x73, 0x74, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x4d, 0x65, + 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x54, 0x0a, 0x13, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, + 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, + 0x0a, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x07, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x12, 0x10, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x52, 0x65, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x52, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x35, 0x0a, 0x07, 0x44, 0x65, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x6f, 0x72, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x11, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, - 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, - 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x42, 0x0a, - 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x12, 0x16, - 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, - 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, - 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, - 0x54, 0x61, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x2e, 0x43, - 0x61, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, - 0x73, 0x74, 0x54, 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4c, 0x6f, 0x67, 0x12, 0x1d, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x1c, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, + 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x6f, + 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, + 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x0c, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, + 0x0a, 0x0e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x32, + 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x32, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x32, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, + 0x64, 0x65, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x43, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x41, 0x75, 0x74, + 0x68, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x31, 0x0a, 0x05, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x0e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x19, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1a, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x5d, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x4b, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, + 0x75, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, + 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0b, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, + 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x12, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x51, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x57, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1e, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x54, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x19, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x5f, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x12, 0x25, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x12, 0x15, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x54, 0x0a, + 0x13, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x18, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, + 0x21, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x54, 0x6f, 0x62, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x54, 0x6f, 0x62, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x54, 0x6f, 0x62, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, 0x55, 0x70, 0x73, 0x65, + 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, + 0x26, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x1b, 0x55, 0x70, 0x73, + 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, + 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x24, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x25, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, + 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x1a, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x1d, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, + 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5a, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x22, 0x47, 0x65, + 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, + 0x12, 0x2b, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x41, 0x79, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x41, 0x79, + 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x57, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x42, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, + 0x61, 0x67, 0x12, 0x16, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x43, 0x61, 0x73, + 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x15, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, + 0x67, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x13, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, + 0x74, 0x54, 0x61, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x1c, 0x52, 0x65, 0x63, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x26, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x73, 0x74, 0x54, 0x61, 0x67, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x26, 0x2e, 0x43, 0x61, - 0x73, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, - 0x73, 0x74, 0x54, 0x61, 0x67, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, - 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1c, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x43, 0x61, + 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x1d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x2e, + 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, + 0x63, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x43, + 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x41, + 0x70, 0x70, 0x12, 0x23, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, + 0x72, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x5a, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x17, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x69, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x2a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x7e, 0x0a, + 0x21, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, + 0x64, 0x73, 0x12, 0x2a, 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2b, + 0x2e, 0x43, 0x61, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x57, 0x6f, + 0x72, 0x6b, 0x55, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x0d, 0x5a, + 0x0b, 0x2e, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x3b, 0x63, 0x61, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -18274,7 +20350,7 @@ func file_pb_fiee_cast_proto_rawDescGZIP() []byte { } var file_pb_fiee_cast_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 177) +var file_pb_fiee_cast_proto_msgTypes = make([]protoimpl.MessageInfo, 197) var file_pb_fiee_cast_proto_goTypes = []interface{}{ (PlatformIDENUM)(0), // 0: Cast.PlatformIDENUM (AuthStatusENUM)(0), // 1: Cast.AuthStatusENUM @@ -18451,16 +20527,36 @@ var file_pb_fiee_cast_proto_goTypes = []interface{}{ (*BatchUpdateCastTagsReq)(nil), // 172: Cast.BatchUpdateCastTagsReq (*UpdateCastTagStatusReq)(nil), // 173: Cast.UpdateCastTagStatusReq (*RecalculateCastTagQuoteCountResp)(nil), // 174: Cast.RecalculateCastTagQuoteCountResp - (*WorkListResp_Info)(nil), // 175: Cast.WorkListResp.Info - nil, // 176: Cast.WorkListResp.Info.PublishMediaIDsEntry - nil, // 177: Cast.WorkDetailResp.MediaAccDataEntry - (*MediaAccountsResp_Info)(nil), // 178: Cast.MediaAccountsResp.Info - (*MediaWorksResp_Info)(nil), // 179: Cast.MediaWorksResp.Info - (*PublishResp_Info)(nil), // 180: Cast.PublishResp.Info - (*RefreshWorkListResp_Info)(nil), // 181: Cast.RefreshWorkListResp.Info - (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 182: Cast.RefreshWorkListResp.Info.PlatformInfo - (*UpdateOAuthReq_Info)(nil), // 183: Cast.UpdateOAuthReq.Info - (*emptypb.Empty)(nil), // 184: google.protobuf.Empty + (*CreateCompetitiveReportReq)(nil), // 175: Cast.CreateCompetitiveReportReq + (*CreateCompetitiveReportResp)(nil), // 176: Cast.CreateCompetitiveReportResp + (*UpdateCompetitiveReportReq)(nil), // 177: Cast.UpdateCompetitiveReportReq + (*UpdateCompetitiveReportStatusReq)(nil), // 178: Cast.UpdateCompetitiveReportStatusReq + (*UpdateCompetitiveReportApprovalIDReq)(nil), // 179: Cast.UpdateCompetitiveReportApprovalIDReq + (*CompetitiveReportLogInfo)(nil), // 180: Cast.CompetitiveReportLogInfo + (*CompetitiveReportExtra)(nil), // 181: Cast.CompetitiveReportExtra + (*GetCompetitiveReportDetailReq)(nil), // 182: Cast.GetCompetitiveReportDetailReq + (*GetCompetitiveReportForAppReq)(nil), // 183: Cast.GetCompetitiveReportForAppReq + (*GetCompetitiveReportForAppResp)(nil), // 184: Cast.GetCompetitiveReportForAppResp + (*GetCompetitiveReportDetailResp)(nil), // 185: Cast.GetCompetitiveReportDetailResp + (*ListCompetitiveReportReq)(nil), // 186: Cast.ListCompetitiveReportReq + (*CompetitiveReportInfo)(nil), // 187: Cast.CompetitiveReportInfo + (*ListCompetitiveReportResp)(nil), // 188: Cast.ListCompetitiveReportResp + (*DeleteCompetitiveReportReq)(nil), // 189: Cast.DeleteCompetitiveReportReq + (*ImportCompetitiveReportBatchReq)(nil), // 190: Cast.ImportCompetitiveReportBatchReq + (*ImportCompetitiveReportBatchResp)(nil), // 191: Cast.ImportCompetitiveReportBatchResp + (*CountCompetitiveReportByWorkUuidsReq)(nil), // 192: Cast.CountCompetitiveReportByWorkUuidsReq + (*WorkUuidCount)(nil), // 193: Cast.WorkUuidCount + (*CountCompetitiveReportByWorkUuidsResp)(nil), // 194: Cast.CountCompetitiveReportByWorkUuidsResp + (*WorkListResp_Info)(nil), // 195: Cast.WorkListResp.Info + nil, // 196: Cast.WorkListResp.Info.PublishMediaIDsEntry + nil, // 197: Cast.WorkDetailResp.MediaAccDataEntry + (*MediaAccountsResp_Info)(nil), // 198: Cast.MediaAccountsResp.Info + (*MediaWorksResp_Info)(nil), // 199: Cast.MediaWorksResp.Info + (*PublishResp_Info)(nil), // 200: Cast.PublishResp.Info + (*RefreshWorkListResp_Info)(nil), // 201: Cast.RefreshWorkListResp.Info + (*RefreshWorkListResp_Info_PlatformInfo)(nil), // 202: Cast.RefreshWorkListResp.Info.PlatformInfo + (*UpdateOAuthReq_Info)(nil), // 203: Cast.UpdateOAuthReq.Info + (*emptypb.Empty)(nil), // 204: google.protobuf.Empty } var file_pb_fiee_cast_proto_depIdxs = []int32{ 0, // 0: Cast.MediaUserListReq.platformID:type_name -> Cast.PlatformIDENUM @@ -18486,28 +20582,28 @@ var file_pb_fiee_cast_proto_depIdxs = []int32{ 9, // 20: Cast.MediaInfoResp.info:type_name -> Cast.MediaUserInfo 0, // 21: Cast.MediaInfoByPlatformReq.platformID:type_name -> Cast.PlatformIDENUM 9, // 22: Cast.MediaInfoByPlatformResp.info:type_name -> Cast.MediaUserInfo - 175, // 23: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info + 195, // 23: Cast.WorkListResp.data:type_name -> Cast.WorkListResp.Info 18, // 24: Cast.WorkDetailResp.publishConfig1:type_name -> Cast.PublishConfig 18, // 25: Cast.WorkDetailResp.publishConfig2:type_name -> Cast.PublishConfig 18, // 26: Cast.WorkDetailResp.publishConfig3:type_name -> Cast.PublishConfig 18, // 27: Cast.WorkDetailResp.publishConfig4:type_name -> Cast.PublishConfig 28, // 28: Cast.WorkDetailResp.WorkLogData:type_name -> Cast.WorkLogInfo - 177, // 29: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry + 197, // 29: Cast.WorkDetailResp.mediaAccData:type_name -> Cast.WorkDetailResp.MediaAccDataEntry 18, // 30: Cast.WorkDetailResp.publishConfig5:type_name -> Cast.PublishConfig 2, // 31: Cast.UpdateStatusReq.workAction:type_name -> Cast.WorkActionENUM 3, // 32: Cast.UpdateStatusReq.autoPublish:type_name -> Cast.AutoPublishENUM 5, // 33: Cast.UpdateStatusReq.confirmFailType:type_name -> Cast.ConfirmFailENUM - 178, // 34: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info - 179, // 35: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info - 180, // 36: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info + 198, // 34: Cast.MediaAccountsResp.data:type_name -> Cast.MediaAccountsResp.Info + 199, // 35: Cast.MediaWorksResp.data:type_name -> Cast.MediaWorksResp.Info + 200, // 36: Cast.PublishResp.data:type_name -> Cast.PublishResp.Info 16, // 37: Cast.ImportWorkBatchReq.imageWorks:type_name -> Cast.UpdateWorkImageReq 16, // 38: Cast.ImportWorkBatchResp.imageWorks:type_name -> Cast.UpdateWorkImageReq 4, // 39: Cast.PlatformInfo.publishStatus:type_name -> Cast.PublishStatusENUM 46, // 40: Cast.UpdateWorkPlatformInfoReq.PlatformInfoData:type_name -> Cast.PlatformInfo 0, // 41: Cast.UpdateWorkPublishLogReq.platformID:type_name -> Cast.PlatformIDENUM - 181, // 42: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info + 201, // 42: Cast.RefreshWorkListResp.Data:type_name -> Cast.RefreshWorkListResp.Info 0, // 43: Cast.OAuthCodeToTokenReq.platformID:type_name -> Cast.PlatformIDENUM - 183, // 44: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info + 203, // 44: Cast.UpdateOAuthReq.Data:type_name -> Cast.UpdateOAuthReq.Info 0, // 45: Cast.RefreshTokenReq.platformID:type_name -> Cast.PlatformIDENUM 71, // 46: Cast.ListVideoScriptsResp.data:type_name -> Cast.VideoScriptInfo 71, // 47: Cast.UpdateVideoScriptBatchReq.data:type_name -> Cast.VideoScriptInfo @@ -18572,168 +20668,193 @@ var file_pb_fiee_cast_proto_depIdxs = []int32{ 168, // 106: Cast.UpdateCastTagBatchReq.data:type_name -> Cast.CastTagInfo 168, // 107: Cast.UpdateCastTagBatchResp.data:type_name -> Cast.CastTagInfo 168, // 108: Cast.BatchUpdateCastTagsReq.data:type_name -> Cast.CastTagInfo - 176, // 109: Cast.WorkListResp.Info.PublishMediaIDs:type_name -> Cast.WorkListResp.Info.PublishMediaIDsEntry - 9, // 110: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo - 182, // 111: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo - 0, // 112: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM - 0, // 113: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM - 8, // 114: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq - 11, // 115: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq - 13, // 116: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq - 15, // 117: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq - 16, // 118: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq - 19, // 119: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq - 21, // 120: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq - 23, // 121: Cast.Cast.MediaInfoByPlatform:input_type -> Cast.MediaInfoByPlatformReq - 25, // 122: Cast.Cast.WorkList:input_type -> Cast.WorkListReq - 27, // 123: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq - 30, // 124: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq - 31, // 125: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq - 33, // 126: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq - 35, // 127: Cast.Cast.Publish:input_type -> Cast.PublishReq - 37, // 128: Cast.Cast.RePublish:input_type -> Cast.RePublishReq - 39, // 129: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq - 40, // 130: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq - 42, // 131: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq - 44, // 132: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq - 47, // 133: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq - 49, // 134: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq - 50, // 135: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq - 52, // 136: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq - 54, // 137: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req - 58, // 138: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq - 60, // 139: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq - 61, // 140: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq - 63, // 141: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq - 65, // 142: Cast.Cast.Tools:input_type -> Cast.ToolsReq - 66, // 143: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq - 68, // 144: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq - 70, // 145: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq - 73, // 146: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq - 74, // 147: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq - 76, // 148: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq - 78, // 149: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq - 77, // 150: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq - 80, // 151: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq - 81, // 152: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq - 82, // 153: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq - 84, // 154: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq - 87, // 155: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq - 90, // 156: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq - 92, // 157: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq - 94, // 158: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq - 96, // 159: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq - 97, // 160: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq - 108, // 161: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq - 109, // 162: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq - 112, // 163: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq - 115, // 164: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq - 134, // 165: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq - 116, // 166: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq - 119, // 167: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq - 122, // 168: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq - 124, // 169: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq - 126, // 170: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq - 131, // 171: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq - 136, // 172: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq - 139, // 173: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq - 149, // 174: Cast.Cast.ListMediaMetricsDaily:input_type -> Cast.ListMediaMetricsDailyReq - 152, // 175: Cast.Cast.ListWorkMetricsDaily:input_type -> Cast.ListWorkMetricsDailyReq - 163, // 176: Cast.Cast.CalculateMediaMetricsByWorks:input_type -> Cast.CalculateMediaMetricsByWorksReq - 141, // 177: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq - 144, // 178: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:input_type -> Cast.GetArtistAyrShareInfoByPlatformIDsReq - 146, // 179: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq - 155, // 180: Cast.Cast.UpsertTaskList:input_type -> Cast.UpsertTaskListReq - 157, // 181: Cast.Cast.GetTaskList:input_type -> Cast.GetTaskListReq - 160, // 182: Cast.Cast.ListTaskList:input_type -> Cast.ListTaskListReq - 162, // 183: Cast.Cast.DeleteTaskList:input_type -> Cast.DeleteTaskListReq - 165, // 184: Cast.Cast.UpdateCastTag:input_type -> Cast.UpdateCastTagReq - 167, // 185: Cast.Cast.ListCastTags:input_type -> Cast.ListCastTagsReq - 170, // 186: Cast.Cast.UpdateCastTagBatch:input_type -> Cast.UpdateCastTagBatchReq - 172, // 187: Cast.Cast.BatchUpdateCastTags:input_type -> Cast.BatchUpdateCastTagsReq - 173, // 188: Cast.Cast.UpdateCastTagStatus:input_type -> Cast.UpdateCastTagStatusReq - 184, // 189: Cast.Cast.RecalculateCastTagQuoteCount:input_type -> google.protobuf.Empty - 10, // 190: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp - 12, // 191: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp - 14, // 192: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp - 184, // 193: Cast.Cast.BindManager:output_type -> google.protobuf.Empty - 17, // 194: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp - 20, // 195: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp - 22, // 196: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp - 24, // 197: Cast.Cast.MediaInfoByPlatform:output_type -> Cast.MediaInfoByPlatformResp - 26, // 198: Cast.Cast.WorkList:output_type -> Cast.WorkListResp - 29, // 199: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp - 184, // 200: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty - 32, // 201: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp - 34, // 202: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp - 36, // 203: Cast.Cast.Publish:output_type -> Cast.PublishResp - 38, // 204: Cast.Cast.RePublish:output_type -> Cast.RePublishResp - 184, // 205: Cast.Cast.DelWork:output_type -> google.protobuf.Empty - 41, // 206: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp - 43, // 207: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp - 45, // 208: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp - 48, // 209: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp - 184, // 210: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty - 51, // 211: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp - 53, // 212: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp - 55, // 213: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp - 59, // 214: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp - 184, // 215: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty - 62, // 216: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp - 64, // 217: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp - 184, // 218: Cast.Cast.Tools:output_type -> google.protobuf.Empty - 67, // 219: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp - 69, // 220: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp - 72, // 221: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp - 184, // 222: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty - 75, // 223: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp - 184, // 224: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty - 79, // 225: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp - 184, // 226: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty - 184, // 227: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty - 184, // 228: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty - 83, // 229: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp - 86, // 230: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp - 88, // 231: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp - 91, // 232: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp - 93, // 233: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp - 95, // 234: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp - 184, // 235: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty - 184, // 236: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty - 111, // 237: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp - 110, // 238: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp - 114, // 239: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp - 184, // 240: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty - 184, // 241: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty - 118, // 242: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp - 121, // 243: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp - 123, // 244: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp - 125, // 245: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp - 130, // 246: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp - 133, // 247: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp - 137, // 248: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp - 140, // 249: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp - 151, // 250: Cast.Cast.ListMediaMetricsDaily:output_type -> Cast.ListMediaMetricsDailyResp - 154, // 251: Cast.Cast.ListWorkMetricsDaily:output_type -> Cast.ListWorkMetricsDailyResp - 164, // 252: Cast.Cast.CalculateMediaMetricsByWorks:output_type -> Cast.CalculateMediaMetricsByWorksResp - 143, // 253: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp - 145, // 254: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:output_type -> Cast.GetArtistAyrShareInfoByPlatformIDsResp - 148, // 255: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp - 156, // 256: Cast.Cast.UpsertTaskList:output_type -> Cast.UpsertTaskListResp - 159, // 257: Cast.Cast.GetTaskList:output_type -> Cast.GetTaskListResp - 161, // 258: Cast.Cast.ListTaskList:output_type -> Cast.ListTaskListResp - 184, // 259: Cast.Cast.DeleteTaskList:output_type -> google.protobuf.Empty - 166, // 260: Cast.Cast.UpdateCastTag:output_type -> Cast.UpdateCastTagResp - 169, // 261: Cast.Cast.ListCastTags:output_type -> Cast.ListCastTagsResp - 171, // 262: Cast.Cast.UpdateCastTagBatch:output_type -> Cast.UpdateCastTagBatchResp - 184, // 263: Cast.Cast.BatchUpdateCastTags:output_type -> google.protobuf.Empty - 184, // 264: Cast.Cast.UpdateCastTagStatus:output_type -> google.protobuf.Empty - 174, // 265: Cast.Cast.RecalculateCastTagQuoteCount:output_type -> Cast.RecalculateCastTagQuoteCountResp - 190, // [190:266] is the sub-list for method output_type - 114, // [114:190] is the sub-list for method input_type - 114, // [114:114] is the sub-list for extension type_name - 114, // [114:114] is the sub-list for extension extendee - 0, // [0:114] is the sub-list for field type_name + 2, // 109: Cast.UpdateCompetitiveReportStatusReq.workAction:type_name -> Cast.WorkActionENUM + 180, // 110: Cast.GetCompetitiveReportDetailResp.reportLogData:type_name -> Cast.CompetitiveReportLogInfo + 181, // 111: Cast.GetCompetitiveReportDetailResp.extra:type_name -> Cast.CompetitiveReportExtra + 187, // 112: Cast.ListCompetitiveReportResp.data:type_name -> Cast.CompetitiveReportInfo + 175, // 113: Cast.ImportCompetitiveReportBatchReq.reports:type_name -> Cast.CreateCompetitiveReportReq + 175, // 114: Cast.ImportCompetitiveReportBatchResp.reports:type_name -> Cast.CreateCompetitiveReportReq + 193, // 115: Cast.CountCompetitiveReportByWorkUuidsResp.data:type_name -> Cast.WorkUuidCount + 196, // 116: Cast.WorkListResp.Info.PublishMediaIDs:type_name -> Cast.WorkListResp.Info.PublishMediaIDsEntry + 9, // 117: Cast.WorkDetailResp.MediaAccDataEntry.value:type_name -> Cast.MediaUserInfo + 202, // 118: Cast.RefreshWorkListResp.Info.PlatformInfoData:type_name -> Cast.RefreshWorkListResp.Info.PlatformInfo + 0, // 119: Cast.RefreshWorkListResp.Info.PlatformInfo.platformID:type_name -> Cast.PlatformIDENUM + 0, // 120: Cast.UpdateOAuthReq.Info.platformID:type_name -> Cast.PlatformIDENUM + 8, // 121: Cast.Cast.MediaUserList:input_type -> Cast.MediaUserListReq + 11, // 122: Cast.Cast.UpdateMediaAccount:input_type -> Cast.UpdateMediaAccountReq + 13, // 123: Cast.Cast.UnbindManager:input_type -> Cast.UnbindManagerReq + 15, // 124: Cast.Cast.BindManager:input_type -> Cast.BindManagerReq + 16, // 125: Cast.Cast.UpdateWorkImage:input_type -> Cast.UpdateWorkImageReq + 19, // 126: Cast.Cast.UpdateWorkVideo:input_type -> Cast.UpdateWorkVideoReq + 21, // 127: Cast.Cast.MediaInfo:input_type -> Cast.MediaInfoReq + 23, // 128: Cast.Cast.MediaInfoByPlatform:input_type -> Cast.MediaInfoByPlatformReq + 25, // 129: Cast.Cast.WorkList:input_type -> Cast.WorkListReq + 27, // 130: Cast.Cast.WorkDetail:input_type -> Cast.WorkDetailReq + 30, // 131: Cast.Cast.UpdateStatus:input_type -> Cast.UpdateStatusReq + 31, // 132: Cast.Cast.MediaAccounts:input_type -> Cast.MediaAccountsReq + 33, // 133: Cast.Cast.MediaWorks:input_type -> Cast.MediaWorksReq + 35, // 134: Cast.Cast.Publish:input_type -> Cast.PublishReq + 37, // 135: Cast.Cast.RePublish:input_type -> Cast.RePublishReq + 39, // 136: Cast.Cast.DelWork:input_type -> Cast.DelWorkReq + 40, // 137: Cast.Cast.WorkInfo:input_type -> Cast.WorkInfoReq + 42, // 138: Cast.Cast.ArtistInfo:input_type -> Cast.ArtistInfoReq + 44, // 139: Cast.Cast.ImportWorkBatch:input_type -> Cast.ImportWorkBatchReq + 47, // 140: Cast.Cast.UpdateWorkPlatformInfo:input_type -> Cast.UpdateWorkPlatformInfoReq + 49, // 141: Cast.Cast.UpdateWorkPublishLog:input_type -> Cast.UpdateWorkPublishLogReq + 50, // 142: Cast.Cast.RefreshWorkList:input_type -> Cast.RefreshWorkListReq + 52, // 143: Cast.Cast.OAuthAccount:input_type -> Cast.OAuthAccountReq + 54, // 144: Cast.Cast.OAuthAccountV2:input_type -> Cast.OAuthAccountV2Req + 58, // 145: Cast.Cast.OAuthCodeToToken:input_type -> Cast.OAuthCodeToTokenReq + 60, // 146: Cast.Cast.UpdateOAuth:input_type -> Cast.UpdateOAuthReq + 61, // 147: Cast.Cast.RefreshToken:input_type -> Cast.RefreshTokenReq + 63, // 148: Cast.Cast.PublishMediaInfo:input_type -> Cast.PublishMediaInfoReq + 65, // 149: Cast.Cast.Tools:input_type -> Cast.ToolsReq + 66, // 150: Cast.Cast.UpdateVideoScript:input_type -> Cast.UpdateVideoScriptReq + 68, // 151: Cast.Cast.GetVideoScript:input_type -> Cast.GetVideoScriptReq + 70, // 152: Cast.Cast.ListVideoScripts:input_type -> Cast.ListVideoScriptsReq + 73, // 153: Cast.Cast.DeleteVideoScript:input_type -> Cast.DeleteVideoScriptReq + 74, // 154: Cast.Cast.UpdateVideoScriptBatch:input_type -> Cast.UpdateVideoScriptBatchReq + 76, // 155: Cast.Cast.UpdateScriptStatus:input_type -> Cast.UpdateScriptStatusReq + 78, // 156: Cast.Cast.GetLayout:input_type -> Cast.GetLayoutReq + 77, // 157: Cast.Cast.SetLayout:input_type -> Cast.SetLayoutReq + 80, // 158: Cast.Cast.UpdatePrompt:input_type -> Cast.UpdatePromptReq + 81, // 159: Cast.Cast.DeletePrompt:input_type -> Cast.DeletePromptReq + 82, // 160: Cast.Cast.GetPrompt:input_type -> Cast.GetPromptReq + 84, // 161: Cast.Cast.ListPrompts:input_type -> Cast.ListPromptsReq + 87, // 162: Cast.Cast.UpdatePromptBatch:input_type -> Cast.UpdatePromptBatchReq + 90, // 163: Cast.Cast.UpdateArtist:input_type -> Cast.UpdateArtistReq + 92, // 164: Cast.Cast.GetArtist:input_type -> Cast.GetArtistReq + 94, // 165: Cast.Cast.CreateWorkAnalysis:input_type -> Cast.CreateWorkAnalysisReq + 96, // 166: Cast.Cast.UpdateWorkAnalysis:input_type -> Cast.UpdateWorkAnalysisReq + 97, // 167: Cast.Cast.UpdateWorkAnalysisStatus:input_type -> Cast.UpdateWorkAnalysisStatusReq + 108, // 168: Cast.Cast.GetWorkAnalysis:input_type -> Cast.GetWorkAnalysisDetailReq + 109, // 169: Cast.Cast.GetLatestWorkAnalysis:input_type -> Cast.GetLatestWorkAnalysisReq + 112, // 170: Cast.Cast.ListWorkAnalysis:input_type -> Cast.ListWorkAnalysisReq + 115, // 171: Cast.Cast.DeleteWorkAnalysis:input_type -> Cast.DeleteWorkAnalysisReq + 134, // 172: Cast.Cast.UpdateWorkAnalysisApprovalID:input_type -> Cast.UpdateWorkAnalysisApprovalIDReq + 116, // 173: Cast.Cast.ArtistDataList:input_type -> Cast.ArtistDataListReq + 119, // 174: Cast.Cast.MediaDataList:input_type -> Cast.MediaDataListReq + 122, // 175: Cast.Cast.DataOverview:input_type -> Cast.DataOverviewReq + 124, // 176: Cast.Cast.ArtistMetricsSeries:input_type -> Cast.ArtistMetricsSeriesReq + 126, // 177: Cast.Cast.ArtistMetricsDailyWindow:input_type -> Cast.ArtistMetricsDailyWindowReq + 131, // 178: Cast.Cast.TobeConfirmedList:input_type -> Cast.TobeConfirmedListReq + 136, // 179: Cast.Cast.UpsertMediaMetricsDailyBatch:input_type -> Cast.UpsertMediaMetricsDailyBatchReq + 139, // 180: Cast.Cast.UpsertWorkMetricsDailyBatch:input_type -> Cast.UpsertWorkMetricsDailyBatchReq + 149, // 181: Cast.Cast.ListMediaMetricsDaily:input_type -> Cast.ListMediaMetricsDailyReq + 152, // 182: Cast.Cast.ListWorkMetricsDaily:input_type -> Cast.ListWorkMetricsDailyReq + 163, // 183: Cast.Cast.CalculateMediaMetricsByWorks:input_type -> Cast.CalculateMediaMetricsByWorksReq + 141, // 184: Cast.Cast.GetArtistAyrShareInfo:input_type -> Cast.GetArtistAyrShareInfoReq + 144, // 185: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:input_type -> Cast.GetArtistAyrShareInfoByPlatformIDsReq + 146, // 186: Cast.Cast.ListWorkPlatformInfo:input_type -> Cast.ListWorkPlatformInfoReq + 155, // 187: Cast.Cast.UpsertTaskList:input_type -> Cast.UpsertTaskListReq + 157, // 188: Cast.Cast.GetTaskList:input_type -> Cast.GetTaskListReq + 160, // 189: Cast.Cast.ListTaskList:input_type -> Cast.ListTaskListReq + 162, // 190: Cast.Cast.DeleteTaskList:input_type -> Cast.DeleteTaskListReq + 165, // 191: Cast.Cast.UpdateCastTag:input_type -> Cast.UpdateCastTagReq + 167, // 192: Cast.Cast.ListCastTags:input_type -> Cast.ListCastTagsReq + 170, // 193: Cast.Cast.UpdateCastTagBatch:input_type -> Cast.UpdateCastTagBatchReq + 172, // 194: Cast.Cast.BatchUpdateCastTags:input_type -> Cast.BatchUpdateCastTagsReq + 173, // 195: Cast.Cast.UpdateCastTagStatus:input_type -> Cast.UpdateCastTagStatusReq + 204, // 196: Cast.Cast.RecalculateCastTagQuoteCount:input_type -> google.protobuf.Empty + 175, // 197: Cast.Cast.CreateCompetitiveReport:input_type -> Cast.CreateCompetitiveReportReq + 190, // 198: Cast.Cast.ImportCompetitiveReportBatch:input_type -> Cast.ImportCompetitiveReportBatchReq + 178, // 199: Cast.Cast.UpdateCompetitiveReportStatus:input_type -> Cast.UpdateCompetitiveReportStatusReq + 182, // 200: Cast.Cast.GetCompetitiveReport:input_type -> Cast.GetCompetitiveReportDetailReq + 183, // 201: Cast.Cast.GetCompetitiveReportForApp:input_type -> Cast.GetCompetitiveReportForAppReq + 186, // 202: Cast.Cast.ListCompetitiveReport:input_type -> Cast.ListCompetitiveReportReq + 189, // 203: Cast.Cast.DeleteCompetitiveReport:input_type -> Cast.DeleteCompetitiveReportReq + 179, // 204: Cast.Cast.UpdateCompetitiveReportApprovalID:input_type -> Cast.UpdateCompetitiveReportApprovalIDReq + 192, // 205: Cast.Cast.CountCompetitiveReportByWorkUuids:input_type -> Cast.CountCompetitiveReportByWorkUuidsReq + 10, // 206: Cast.Cast.MediaUserList:output_type -> Cast.MediaUserListResp + 12, // 207: Cast.Cast.UpdateMediaAccount:output_type -> Cast.UpdateMediaAccountResp + 14, // 208: Cast.Cast.UnbindManager:output_type -> Cast.UnbindManagerResp + 204, // 209: Cast.Cast.BindManager:output_type -> google.protobuf.Empty + 17, // 210: Cast.Cast.UpdateWorkImage:output_type -> Cast.UpdateWorkImageResp + 20, // 211: Cast.Cast.UpdateWorkVideo:output_type -> Cast.UpdateWorkVideoResp + 22, // 212: Cast.Cast.MediaInfo:output_type -> Cast.MediaInfoResp + 24, // 213: Cast.Cast.MediaInfoByPlatform:output_type -> Cast.MediaInfoByPlatformResp + 26, // 214: Cast.Cast.WorkList:output_type -> Cast.WorkListResp + 29, // 215: Cast.Cast.WorkDetail:output_type -> Cast.WorkDetailResp + 204, // 216: Cast.Cast.UpdateStatus:output_type -> google.protobuf.Empty + 32, // 217: Cast.Cast.MediaAccounts:output_type -> Cast.MediaAccountsResp + 34, // 218: Cast.Cast.MediaWorks:output_type -> Cast.MediaWorksResp + 36, // 219: Cast.Cast.Publish:output_type -> Cast.PublishResp + 38, // 220: Cast.Cast.RePublish:output_type -> Cast.RePublishResp + 204, // 221: Cast.Cast.DelWork:output_type -> google.protobuf.Empty + 41, // 222: Cast.Cast.WorkInfo:output_type -> Cast.WorkInfoResp + 43, // 223: Cast.Cast.ArtistInfo:output_type -> Cast.ArtistInfoResp + 45, // 224: Cast.Cast.ImportWorkBatch:output_type -> Cast.ImportWorkBatchResp + 48, // 225: Cast.Cast.UpdateWorkPlatformInfo:output_type -> Cast.UpdateWorkPlatformInfoResp + 204, // 226: Cast.Cast.UpdateWorkPublishLog:output_type -> google.protobuf.Empty + 51, // 227: Cast.Cast.RefreshWorkList:output_type -> Cast.RefreshWorkListResp + 53, // 228: Cast.Cast.OAuthAccount:output_type -> Cast.OAuthAccountResp + 55, // 229: Cast.Cast.OAuthAccountV2:output_type -> Cast.OAuthAccountV2Resp + 59, // 230: Cast.Cast.OAuthCodeToToken:output_type -> Cast.OAuthCodeToTokenResp + 204, // 231: Cast.Cast.UpdateOAuth:output_type -> google.protobuf.Empty + 62, // 232: Cast.Cast.RefreshToken:output_type -> Cast.RefreshTokenResp + 64, // 233: Cast.Cast.PublishMediaInfo:output_type -> Cast.PublishMediaInfoResp + 204, // 234: Cast.Cast.Tools:output_type -> google.protobuf.Empty + 67, // 235: Cast.Cast.UpdateVideoScript:output_type -> Cast.UpdateVideoScriptResp + 69, // 236: Cast.Cast.GetVideoScript:output_type -> Cast.GetVideoScriptResp + 72, // 237: Cast.Cast.ListVideoScripts:output_type -> Cast.ListVideoScriptsResp + 204, // 238: Cast.Cast.DeleteVideoScript:output_type -> google.protobuf.Empty + 75, // 239: Cast.Cast.UpdateVideoScriptBatch:output_type -> Cast.UpdateVideoScriptBatchResp + 204, // 240: Cast.Cast.UpdateScriptStatus:output_type -> google.protobuf.Empty + 79, // 241: Cast.Cast.GetLayout:output_type -> Cast.GetLayoutResp + 204, // 242: Cast.Cast.SetLayout:output_type -> google.protobuf.Empty + 204, // 243: Cast.Cast.UpdatePrompt:output_type -> google.protobuf.Empty + 204, // 244: Cast.Cast.DeletePrompt:output_type -> google.protobuf.Empty + 83, // 245: Cast.Cast.GetPrompt:output_type -> Cast.GetPromptResp + 86, // 246: Cast.Cast.ListPrompts:output_type -> Cast.ListPromptsResp + 88, // 247: Cast.Cast.UpdatePromptBatch:output_type -> Cast.UpdatePromptBatchResp + 91, // 248: Cast.Cast.UpdateArtist:output_type -> Cast.UpdateArtistResp + 93, // 249: Cast.Cast.GetArtist:output_type -> Cast.GetArtistResp + 95, // 250: Cast.Cast.CreateWorkAnalysis:output_type -> Cast.CreateWorkAnalysisResp + 204, // 251: Cast.Cast.UpdateWorkAnalysis:output_type -> google.protobuf.Empty + 204, // 252: Cast.Cast.UpdateWorkAnalysisStatus:output_type -> google.protobuf.Empty + 111, // 253: Cast.Cast.GetWorkAnalysis:output_type -> Cast.GetWorkAnalysisDetailResp + 110, // 254: Cast.Cast.GetLatestWorkAnalysis:output_type -> Cast.GetWorkAnalysisResp + 114, // 255: Cast.Cast.ListWorkAnalysis:output_type -> Cast.ListWorkAnalysisResp + 204, // 256: Cast.Cast.DeleteWorkAnalysis:output_type -> google.protobuf.Empty + 204, // 257: Cast.Cast.UpdateWorkAnalysisApprovalID:output_type -> google.protobuf.Empty + 118, // 258: Cast.Cast.ArtistDataList:output_type -> Cast.ArtistDataListResp + 121, // 259: Cast.Cast.MediaDataList:output_type -> Cast.MediaDataListResp + 123, // 260: Cast.Cast.DataOverview:output_type -> Cast.DataOverviewResp + 125, // 261: Cast.Cast.ArtistMetricsSeries:output_type -> Cast.ArtistMetricsSeriesResp + 130, // 262: Cast.Cast.ArtistMetricsDailyWindow:output_type -> Cast.ArtistMetricsDailyWindowResp + 133, // 263: Cast.Cast.TobeConfirmedList:output_type -> Cast.TobeConfirmedListResp + 137, // 264: Cast.Cast.UpsertMediaMetricsDailyBatch:output_type -> Cast.UpsertMediaMetricsDailyBatchResp + 140, // 265: Cast.Cast.UpsertWorkMetricsDailyBatch:output_type -> Cast.UpsertWorkMetricsDailyBatchResp + 151, // 266: Cast.Cast.ListMediaMetricsDaily:output_type -> Cast.ListMediaMetricsDailyResp + 154, // 267: Cast.Cast.ListWorkMetricsDaily:output_type -> Cast.ListWorkMetricsDailyResp + 164, // 268: Cast.Cast.CalculateMediaMetricsByWorks:output_type -> Cast.CalculateMediaMetricsByWorksResp + 143, // 269: Cast.Cast.GetArtistAyrShareInfo:output_type -> Cast.GetArtistAyrShareInfoResp + 145, // 270: Cast.Cast.GetArtistAyrShareInfoByPlatformIDs:output_type -> Cast.GetArtistAyrShareInfoByPlatformIDsResp + 148, // 271: Cast.Cast.ListWorkPlatformInfo:output_type -> Cast.ListWorkPlatformInfoResp + 156, // 272: Cast.Cast.UpsertTaskList:output_type -> Cast.UpsertTaskListResp + 159, // 273: Cast.Cast.GetTaskList:output_type -> Cast.GetTaskListResp + 161, // 274: Cast.Cast.ListTaskList:output_type -> Cast.ListTaskListResp + 204, // 275: Cast.Cast.DeleteTaskList:output_type -> google.protobuf.Empty + 166, // 276: Cast.Cast.UpdateCastTag:output_type -> Cast.UpdateCastTagResp + 169, // 277: Cast.Cast.ListCastTags:output_type -> Cast.ListCastTagsResp + 171, // 278: Cast.Cast.UpdateCastTagBatch:output_type -> Cast.UpdateCastTagBatchResp + 204, // 279: Cast.Cast.BatchUpdateCastTags:output_type -> google.protobuf.Empty + 204, // 280: Cast.Cast.UpdateCastTagStatus:output_type -> google.protobuf.Empty + 174, // 281: Cast.Cast.RecalculateCastTagQuoteCount:output_type -> Cast.RecalculateCastTagQuoteCountResp + 176, // 282: Cast.Cast.CreateCompetitiveReport:output_type -> Cast.CreateCompetitiveReportResp + 191, // 283: Cast.Cast.ImportCompetitiveReportBatch:output_type -> Cast.ImportCompetitiveReportBatchResp + 204, // 284: Cast.Cast.UpdateCompetitiveReportStatus:output_type -> google.protobuf.Empty + 185, // 285: Cast.Cast.GetCompetitiveReport:output_type -> Cast.GetCompetitiveReportDetailResp + 184, // 286: Cast.Cast.GetCompetitiveReportForApp:output_type -> Cast.GetCompetitiveReportForAppResp + 188, // 287: Cast.Cast.ListCompetitiveReport:output_type -> Cast.ListCompetitiveReportResp + 204, // 288: Cast.Cast.DeleteCompetitiveReport:output_type -> google.protobuf.Empty + 204, // 289: Cast.Cast.UpdateCompetitiveReportApprovalID:output_type -> google.protobuf.Empty + 194, // 290: Cast.Cast.CountCompetitiveReportByWorkUuids:output_type -> Cast.CountCompetitiveReportByWorkUuidsResp + 206, // [206:291] is the sub-list for method output_type + 121, // [121:206] is the sub-list for method input_type + 121, // [121:121] is the sub-list for extension type_name + 121, // [121:121] is the sub-list for extension extendee + 0, // [0:121] is the sub-list for field type_name } func init() { file_pb_fiee_cast_proto_init() } @@ -20759,7 +22880,31 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkListResp_Info); i { + switch v := v.(*CreateCompetitiveReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCompetitiveReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCompetitiveReportReq); i { case 0: return &v.state case 1: @@ -20771,7 +22916,7 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MediaAccountsResp_Info); i { + switch v := v.(*UpdateCompetitiveReportStatusReq); i { case 0: return &v.state case 1: @@ -20783,7 +22928,7 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MediaWorksResp_Info); i { + switch v := v.(*UpdateCompetitiveReportApprovalIDReq); i { case 0: return &v.state case 1: @@ -20795,7 +22940,7 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublishResp_Info); i { + switch v := v.(*CompetitiveReportLogInfo); i { case 0: return &v.state case 1: @@ -20807,7 +22952,7 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshWorkListResp_Info); i { + switch v := v.(*CompetitiveReportExtra); i { case 0: return &v.state case 1: @@ -20819,7 +22964,7 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshWorkListResp_Info_PlatformInfo); i { + switch v := v.(*GetCompetitiveReportDetailReq); i { case 0: return &v.state case 1: @@ -20831,6 +22976,222 @@ func file_pb_fiee_cast_proto_init() { } } file_pb_fiee_cast_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCompetitiveReportForAppReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCompetitiveReportForAppResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCompetitiveReportDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCompetitiveReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompetitiveReportInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCompetitiveReportResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCompetitiveReportReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportCompetitiveReportBatchReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportCompetitiveReportBatchResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountCompetitiveReportByWorkUuidsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkUuidCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountCompetitiveReportByWorkUuidsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkListResp_Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MediaAccountsResp_Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MediaWorksResp_Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublishResp_Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshWorkListResp_Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RefreshWorkListResp_Info_PlatformInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_fiee_cast_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateOAuthReq_Info); i { case 0: return &v.state @@ -20849,7 +23210,7 @@ func file_pb_fiee_cast_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pb_fiee_cast_proto_rawDesc, NumEnums: 7, - NumMessages: 177, + NumMessages: 197, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cast/cast.pb.validate.go b/api/cast/cast.pb.validate.go index f321525..7c93dc8 100644 --- a/api/cast/cast.pb.validate.go +++ b/api/cast/cast.pb.validate.go @@ -21473,6 +21473,2476 @@ var _ interface { ErrorName() string } = RecalculateCastTagQuoteCountRespValidationError{} +// Validate checks the field values on CreateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CreateCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CreateCompetitiveReportReqMultiError, or nil if none found. +func (m *CreateCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CreateCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for PdfUrl + + // no validation rules for Source + + // no validation rules for Remark + + // no validation rules for Success + + if len(errors) > 0 { + return CreateCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// CreateCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by CreateCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type CreateCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreateCompetitiveReportReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreateCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// CreateCompetitiveReportReqValidationError is the validation error returned +// by CreateCompetitiveReportReq.Validate if the designated constraints aren't met. +type CreateCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreateCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreateCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreateCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreateCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreateCompetitiveReportReqValidationError) ErrorName() string { + return "CreateCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e CreateCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCreateCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreateCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreateCompetitiveReportReqValidationError{} + +// Validate checks the field values on CreateCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CreateCompetitiveReportResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreateCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CreateCompetitiveReportRespMultiError, or nil if none found. +func (m *CreateCompetitiveReportResp) ValidateAll() error { + return m.validate(true) +} + +func (m *CreateCompetitiveReportResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return CreateCompetitiveReportRespMultiError(errors) + } + + return nil +} + +// CreateCompetitiveReportRespMultiError is an error wrapping multiple +// validation errors returned by CreateCompetitiveReportResp.ValidateAll() if +// the designated constraints aren't met. +type CreateCompetitiveReportRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreateCompetitiveReportRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreateCompetitiveReportRespMultiError) AllErrors() []error { return m } + +// CreateCompetitiveReportRespValidationError is the validation error returned +// by CreateCompetitiveReportResp.Validate if the designated constraints +// aren't met. +type CreateCompetitiveReportRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreateCompetitiveReportRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreateCompetitiveReportRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreateCompetitiveReportRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreateCompetitiveReportRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreateCompetitiveReportRespValidationError) ErrorName() string { + return "CreateCompetitiveReportRespValidationError" +} + +// Error satisfies the builtin error interface +func (e CreateCompetitiveReportRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCreateCompetitiveReportResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreateCompetitiveReportRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreateCompetitiveReportRespValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for ReportContent + + // no validation rules for Title + + // no validation rules for ImageUrl + + // no validation rules for PdfUrl + + if len(errors) > 0 { + return UpdateCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by UpdateCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type UpdateCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportReqValidationError is the validation error returned +// by UpdateCompetitiveReportReq.Validate if the designated constraints aren't met. +type UpdateCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportReqValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportStatusReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UpdateCompetitiveReportStatusReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportStatusReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportStatusReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportStatusReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportStatusReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkAction + + // no validation rules for Uuid + + // no validation rules for ApprovalID + + // no validation rules for ApprovalReply + + // no validation rules for ConfirmRemark + + // no validation rules for ConfirmStatus + + // no validation rules for CostType + + // no validation rules for ConfirmType + + if len(errors) > 0 { + return UpdateCompetitiveReportStatusReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportStatusReqMultiError is an error wrapping multiple +// validation errors returned by +// UpdateCompetitiveReportStatusReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCompetitiveReportStatusReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportStatusReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportStatusReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportStatusReqValidationError is the validation error +// returned by UpdateCompetitiveReportStatusReq.Validate if the designated +// constraints aren't met. +type UpdateCompetitiveReportStatusReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportStatusReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportStatusReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportStatusReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportStatusReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportStatusReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportStatusReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportStatusReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportStatusReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportStatusReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportStatusReqValidationError{} + +// Validate checks the field values on UpdateCompetitiveReportApprovalIDReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *UpdateCompetitiveReportApprovalIDReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateCompetitiveReportApprovalIDReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UpdateCompetitiveReportApprovalIDReqMultiError, or nil if none found. +func (m *UpdateCompetitiveReportApprovalIDReq) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateCompetitiveReportApprovalIDReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for ApprovalID + + if len(errors) > 0 { + return UpdateCompetitiveReportApprovalIDReqMultiError(errors) + } + + return nil +} + +// UpdateCompetitiveReportApprovalIDReqMultiError is an error wrapping multiple +// validation errors returned by +// UpdateCompetitiveReportApprovalIDReq.ValidateAll() if the designated +// constraints aren't met. +type UpdateCompetitiveReportApprovalIDReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateCompetitiveReportApprovalIDReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateCompetitiveReportApprovalIDReqMultiError) AllErrors() []error { return m } + +// UpdateCompetitiveReportApprovalIDReqValidationError is the validation error +// returned by UpdateCompetitiveReportApprovalIDReq.Validate if the designated +// constraints aren't met. +type UpdateCompetitiveReportApprovalIDReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateCompetitiveReportApprovalIDReqValidationError) ErrorName() string { + return "UpdateCompetitiveReportApprovalIDReqValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateCompetitiveReportApprovalIDReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateCompetitiveReportApprovalIDReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateCompetitiveReportApprovalIDReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateCompetitiveReportApprovalIDReqValidationError{} + +// Validate checks the field values on CompetitiveReportLogInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportLogInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportLogInfo with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportLogInfoMultiError, or nil if none found. +func (m *CompetitiveReportLogInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportLogInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ReportUuid + + // no validation rules for Title + + // no validation rules for UpdateTime + + // no validation rules for WorkReportStatus + + // no validation rules for ArtistName + + // no validation rules for ArtistUuid + + // no validation rules for ReportExtraData + + // no validation rules for OperatorName + + // no validation rules for OperatorID + + if len(errors) > 0 { + return CompetitiveReportLogInfoMultiError(errors) + } + + return nil +} + +// CompetitiveReportLogInfoMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportLogInfo.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportLogInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportLogInfoMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportLogInfoMultiError) AllErrors() []error { return m } + +// CompetitiveReportLogInfoValidationError is the validation error returned by +// CompetitiveReportLogInfo.Validate if the designated constraints aren't met. +type CompetitiveReportLogInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportLogInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportLogInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportLogInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportLogInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportLogInfoValidationError) ErrorName() string { + return "CompetitiveReportLogInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportLogInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportLogInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportLogInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportLogInfoValidationError{} + +// Validate checks the field values on CompetitiveReportExtra with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportExtra) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportExtra with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportExtraMultiError, or nil if none found. +func (m *CompetitiveReportExtra) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportExtra) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ReportUuid + + // no validation rules for ArtistConfirmedTime + + // no validation rules for CostType + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return CompetitiveReportExtraMultiError(errors) + } + + return nil +} + +// CompetitiveReportExtraMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportExtra.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportExtraMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportExtraMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportExtraMultiError) AllErrors() []error { return m } + +// CompetitiveReportExtraValidationError is the validation error returned by +// CompetitiveReportExtra.Validate if the designated constraints aren't met. +type CompetitiveReportExtraValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportExtraValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportExtraValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportExtraValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportExtraValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportExtraValidationError) ErrorName() string { + return "CompetitiveReportExtraValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportExtraValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportExtra.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportExtraValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportExtraValidationError{} + +// Validate checks the field values on GetCompetitiveReportDetailReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportDetailReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportDetailReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportDetailReqMultiError, or nil if none found. +func (m *GetCompetitiveReportDetailReq) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportDetailReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return GetCompetitiveReportDetailReqMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportDetailReqMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportDetailReq.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportDetailReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportDetailReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportDetailReqMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportDetailReqValidationError is the validation error +// returned by GetCompetitiveReportDetailReq.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportDetailReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportDetailReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportDetailReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportDetailReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportDetailReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportDetailReqValidationError) ErrorName() string { + return "GetCompetitiveReportDetailReqValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportDetailReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportDetailReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportDetailReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportDetailReqValidationError{} + +// Validate checks the field values on GetCompetitiveReportForAppReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportForAppReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportForAppReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportForAppReqMultiError, or nil if none found. +func (m *GetCompetitiveReportForAppReq) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportForAppReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return GetCompetitiveReportForAppReqMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportForAppReqMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportForAppReq.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportForAppReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportForAppReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportForAppReqMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportForAppReqValidationError is the validation error +// returned by GetCompetitiveReportForAppReq.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportForAppReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportForAppReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportForAppReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportForAppReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportForAppReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportForAppReqValidationError) ErrorName() string { + return "GetCompetitiveReportForAppReqValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportForAppReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportForAppReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportForAppReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportForAppReqValidationError{} + +// Validate checks the field values on GetCompetitiveReportForAppResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportForAppResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportForAppResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportForAppRespMultiError, or nil if none found. +func (m *GetCompetitiveReportForAppResp) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportForAppResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for PdfUrl + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return GetCompetitiveReportForAppRespMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportForAppRespMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportForAppResp.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportForAppRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportForAppRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportForAppRespMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportForAppRespValidationError is the validation error +// returned by GetCompetitiveReportForAppResp.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportForAppRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportForAppRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportForAppRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportForAppRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportForAppRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportForAppRespValidationError) ErrorName() string { + return "GetCompetitiveReportForAppRespValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportForAppRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportForAppResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportForAppRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportForAppRespValidationError{} + +// Validate checks the field values on GetCompetitiveReportDetailResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetCompetitiveReportDetailResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetCompetitiveReportDetailResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// GetCompetitiveReportDetailRespMultiError, or nil if none found. +func (m *GetCompetitiveReportDetailResp) ValidateAll() error { + return m.validate(true) +} + +func (m *GetCompetitiveReportDetailResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for ReportContent + + // no validation rules for ImageUrl + + // no validation rules for Title + + // no validation rules for OperatorID + + // no validation rules for OperatorName + + // no validation rules for WorkReportStatus + + // no validation rules for Reason + + // no validation rules for ComfirmType + + // no validation rules for Cost + + // no validation rules for SubmitTime + + // no validation rules for StatusUpdateTime + + // no validation rules for ApprovalID + + // no validation rules for PdfUrl + + // no validation rules for ConfirmRemark + + for idx, item := range m.GetReportLogData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetCompetitiveReportDetailRespValidationError{ + field: fmt.Sprintf("ReportLogData[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if all { + switch v := interface{}(m.GetExtra()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetExtra()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetCompetitiveReportDetailRespValidationError{ + field: "Extra", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for CreatedAt + + // no validation rules for UpdatedAt + + if len(errors) > 0 { + return GetCompetitiveReportDetailRespMultiError(errors) + } + + return nil +} + +// GetCompetitiveReportDetailRespMultiError is an error wrapping multiple +// validation errors returned by GetCompetitiveReportDetailResp.ValidateAll() +// if the designated constraints aren't met. +type GetCompetitiveReportDetailRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetCompetitiveReportDetailRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetCompetitiveReportDetailRespMultiError) AllErrors() []error { return m } + +// GetCompetitiveReportDetailRespValidationError is the validation error +// returned by GetCompetitiveReportDetailResp.Validate if the designated +// constraints aren't met. +type GetCompetitiveReportDetailRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetCompetitiveReportDetailRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetCompetitiveReportDetailRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetCompetitiveReportDetailRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetCompetitiveReportDetailRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetCompetitiveReportDetailRespValidationError) ErrorName() string { + return "GetCompetitiveReportDetailRespValidationError" +} + +// Error satisfies the builtin error interface +func (e GetCompetitiveReportDetailRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetCompetitiveReportDetailResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetCompetitiveReportDetailRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetCompetitiveReportDetailRespValidationError{} + +// Validate checks the field values on ListCompetitiveReportReq with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCompetitiveReportReqMultiError, or nil if none found. +func (m *ListCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for SubNum + + // no validation rules for ArtistVal + + // no validation rules for Status + + // no validation rules for ComfirmType + + // no validation rules for StatusUpdateTimeStart + + // no validation rules for StatusUpdateTimeEnd + + // no validation rules for SubmitStartTime + + // no validation rules for SubmitEndTime + + // no validation rules for Page + + // no validation rules for PageSize + + // no validation rules for ArtistUuid + + if len(errors) > 0 { + return ListCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// ListCompetitiveReportReqMultiError is an error wrapping multiple validation +// errors returned by ListCompetitiveReportReq.ValidateAll() if the designated +// constraints aren't met. +type ListCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCompetitiveReportReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// ListCompetitiveReportReqValidationError is the validation error returned by +// ListCompetitiveReportReq.Validate if the designated constraints aren't met. +type ListCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCompetitiveReportReqValidationError) ErrorName() string { + return "ListCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e ListCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCompetitiveReportReqValidationError{} + +// Validate checks the field values on CompetitiveReportInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompetitiveReportInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompetitiveReportInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompetitiveReportInfoMultiError, or nil if none found. +func (m *CompetitiveReportInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *CompetitiveReportInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + // no validation rules for SubNum + + // no validation rules for ArtistName + + // no validation rules for ArtistID + + // no validation rules for ArtistPhone + + // no validation rules for OperatorID + + // no validation rules for OperatorName + + // no validation rules for WorkReportStatus + + // no validation rules for Reason + + // no validation rules for ComfirmType + + // no validation rules for SubmitTime + + // no validation rules for StatusUpdateTime + + // no validation rules for PdfUrl + + // no validation rules for ApprovalID + + // no validation rules for Title + + if len(errors) > 0 { + return CompetitiveReportInfoMultiError(errors) + } + + return nil +} + +// CompetitiveReportInfoMultiError is an error wrapping multiple validation +// errors returned by CompetitiveReportInfo.ValidateAll() if the designated +// constraints aren't met. +type CompetitiveReportInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompetitiveReportInfoMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompetitiveReportInfoMultiError) AllErrors() []error { return m } + +// CompetitiveReportInfoValidationError is the validation error returned by +// CompetitiveReportInfo.Validate if the designated constraints aren't met. +type CompetitiveReportInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompetitiveReportInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompetitiveReportInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompetitiveReportInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompetitiveReportInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompetitiveReportInfoValidationError) ErrorName() string { + return "CompetitiveReportInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e CompetitiveReportInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompetitiveReportInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompetitiveReportInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompetitiveReportInfoValidationError{} + +// Validate checks the field values on ListCompetitiveReportResp with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCompetitiveReportResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCompetitiveReportResp with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCompetitiveReportRespMultiError, or nil if none found. +func (m *ListCompetitiveReportResp) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCompetitiveReportResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListCompetitiveReportRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return ListCompetitiveReportRespMultiError(errors) + } + + return nil +} + +// ListCompetitiveReportRespMultiError is an error wrapping multiple validation +// errors returned by ListCompetitiveReportResp.ValidateAll() if the +// designated constraints aren't met. +type ListCompetitiveReportRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCompetitiveReportRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCompetitiveReportRespMultiError) AllErrors() []error { return m } + +// ListCompetitiveReportRespValidationError is the validation error returned by +// ListCompetitiveReportResp.Validate if the designated constraints aren't met. +type ListCompetitiveReportRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCompetitiveReportRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCompetitiveReportRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCompetitiveReportRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCompetitiveReportRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCompetitiveReportRespValidationError) ErrorName() string { + return "ListCompetitiveReportRespValidationError" +} + +// Error satisfies the builtin error interface +func (e ListCompetitiveReportRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCompetitiveReportResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCompetitiveReportRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCompetitiveReportRespValidationError{} + +// Validate checks the field values on DeleteCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteCompetitiveReportReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteCompetitiveReportReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteCompetitiveReportReqMultiError, or nil if none found. +func (m *DeleteCompetitiveReportReq) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteCompetitiveReportReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Uuid + + if len(errors) > 0 { + return DeleteCompetitiveReportReqMultiError(errors) + } + + return nil +} + +// DeleteCompetitiveReportReqMultiError is an error wrapping multiple +// validation errors returned by DeleteCompetitiveReportReq.ValidateAll() if +// the designated constraints aren't met. +type DeleteCompetitiveReportReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteCompetitiveReportReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteCompetitiveReportReqMultiError) AllErrors() []error { return m } + +// DeleteCompetitiveReportReqValidationError is the validation error returned +// by DeleteCompetitiveReportReq.Validate if the designated constraints aren't met. +type DeleteCompetitiveReportReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteCompetitiveReportReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteCompetitiveReportReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteCompetitiveReportReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteCompetitiveReportReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteCompetitiveReportReqValidationError) ErrorName() string { + return "DeleteCompetitiveReportReqValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteCompetitiveReportReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteCompetitiveReportReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteCompetitiveReportReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteCompetitiveReportReqValidationError{} + +// Validate checks the field values on ImportCompetitiveReportBatchReq with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ImportCompetitiveReportBatchReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ImportCompetitiveReportBatchReq with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ImportCompetitiveReportBatchReqMultiError, or nil if none found. +func (m *ImportCompetitiveReportBatchReq) ValidateAll() error { + return m.validate(true) +} + +func (m *ImportCompetitiveReportBatchReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetReports() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ImportCompetitiveReportBatchReqValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ImportCompetitiveReportBatchReqMultiError(errors) + } + + return nil +} + +// ImportCompetitiveReportBatchReqMultiError is an error wrapping multiple +// validation errors returned by ImportCompetitiveReportBatchReq.ValidateAll() +// if the designated constraints aren't met. +type ImportCompetitiveReportBatchReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ImportCompetitiveReportBatchReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ImportCompetitiveReportBatchReqMultiError) AllErrors() []error { return m } + +// ImportCompetitiveReportBatchReqValidationError is the validation error +// returned by ImportCompetitiveReportBatchReq.Validate if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ImportCompetitiveReportBatchReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ImportCompetitiveReportBatchReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ImportCompetitiveReportBatchReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ImportCompetitiveReportBatchReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ImportCompetitiveReportBatchReqValidationError) ErrorName() string { + return "ImportCompetitiveReportBatchReqValidationError" +} + +// Error satisfies the builtin error interface +func (e ImportCompetitiveReportBatchReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sImportCompetitiveReportBatchReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ImportCompetitiveReportBatchReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ImportCompetitiveReportBatchReqValidationError{} + +// Validate checks the field values on ImportCompetitiveReportBatchResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *ImportCompetitiveReportBatchResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ImportCompetitiveReportBatchResp with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ImportCompetitiveReportBatchRespMultiError, or nil if none found. +func (m *ImportCompetitiveReportBatchResp) ValidateAll() error { + return m.validate(true) +} + +func (m *ImportCompetitiveReportBatchResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetReports() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ImportCompetitiveReportBatchRespValidationError{ + field: fmt.Sprintf("Reports[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for SuccessCount + + // no validation rules for FailCount + + if len(errors) > 0 { + return ImportCompetitiveReportBatchRespMultiError(errors) + } + + return nil +} + +// ImportCompetitiveReportBatchRespMultiError is an error wrapping multiple +// validation errors returned by +// ImportCompetitiveReportBatchResp.ValidateAll() if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ImportCompetitiveReportBatchRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ImportCompetitiveReportBatchRespMultiError) AllErrors() []error { return m } + +// ImportCompetitiveReportBatchRespValidationError is the validation error +// returned by ImportCompetitiveReportBatchResp.Validate if the designated +// constraints aren't met. +type ImportCompetitiveReportBatchRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ImportCompetitiveReportBatchRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ImportCompetitiveReportBatchRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ImportCompetitiveReportBatchRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ImportCompetitiveReportBatchRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ImportCompetitiveReportBatchRespValidationError) ErrorName() string { + return "ImportCompetitiveReportBatchRespValidationError" +} + +// Error satisfies the builtin error interface +func (e ImportCompetitiveReportBatchRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sImportCompetitiveReportBatchResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ImportCompetitiveReportBatchRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ImportCompetitiveReportBatchRespValidationError{} + +// Validate checks the field values on CountCompetitiveReportByWorkUuidsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *CountCompetitiveReportByWorkUuidsReq) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CountCompetitiveReportByWorkUuidsReq +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// CountCompetitiveReportByWorkUuidsReqMultiError, or nil if none found. +func (m *CountCompetitiveReportByWorkUuidsReq) ValidateAll() error { + return m.validate(true) +} + +func (m *CountCompetitiveReportByWorkUuidsReq) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return CountCompetitiveReportByWorkUuidsReqMultiError(errors) + } + + return nil +} + +// CountCompetitiveReportByWorkUuidsReqMultiError is an error wrapping multiple +// validation errors returned by +// CountCompetitiveReportByWorkUuidsReq.ValidateAll() if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsReqMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CountCompetitiveReportByWorkUuidsReqMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CountCompetitiveReportByWorkUuidsReqMultiError) AllErrors() []error { return m } + +// CountCompetitiveReportByWorkUuidsReqValidationError is the validation error +// returned by CountCompetitiveReportByWorkUuidsReq.Validate if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsReqValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CountCompetitiveReportByWorkUuidsReqValidationError) ErrorName() string { + return "CountCompetitiveReportByWorkUuidsReqValidationError" +} + +// Error satisfies the builtin error interface +func (e CountCompetitiveReportByWorkUuidsReqValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCountCompetitiveReportByWorkUuidsReq.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CountCompetitiveReportByWorkUuidsReqValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CountCompetitiveReportByWorkUuidsReqValidationError{} + +// Validate checks the field values on WorkUuidCount with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *WorkUuidCount) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on WorkUuidCount with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in WorkUuidCountMultiError, or +// nil if none found. +func (m *WorkUuidCount) ValidateAll() error { + return m.validate(true) +} + +func (m *WorkUuidCount) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for WorkUuid + + // no validation rules for Count + + if len(errors) > 0 { + return WorkUuidCountMultiError(errors) + } + + return nil +} + +// WorkUuidCountMultiError is an error wrapping multiple validation errors +// returned by WorkUuidCount.ValidateAll() if the designated constraints +// aren't met. +type WorkUuidCountMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m WorkUuidCountMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m WorkUuidCountMultiError) AllErrors() []error { return m } + +// WorkUuidCountValidationError is the validation error returned by +// WorkUuidCount.Validate if the designated constraints aren't met. +type WorkUuidCountValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e WorkUuidCountValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e WorkUuidCountValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e WorkUuidCountValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e WorkUuidCountValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e WorkUuidCountValidationError) ErrorName() string { return "WorkUuidCountValidationError" } + +// Error satisfies the builtin error interface +func (e WorkUuidCountValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sWorkUuidCount.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = WorkUuidCountValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = WorkUuidCountValidationError{} + +// Validate checks the field values on CountCompetitiveReportByWorkUuidsResp +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *CountCompetitiveReportByWorkUuidsResp) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CountCompetitiveReportByWorkUuidsResp +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// CountCompetitiveReportByWorkUuidsRespMultiError, or nil if none found. +func (m *CountCompetitiveReportByWorkUuidsResp) ValidateAll() error { + return m.validate(true) +} + +func (m *CountCompetitiveReportByWorkUuidsResp) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetData() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CountCompetitiveReportByWorkUuidsRespValidationError{ + field: fmt.Sprintf("Data[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return CountCompetitiveReportByWorkUuidsRespMultiError(errors) + } + + return nil +} + +// CountCompetitiveReportByWorkUuidsRespMultiError is an error wrapping +// multiple validation errors returned by +// CountCompetitiveReportByWorkUuidsResp.ValidateAll() if the designated +// constraints aren't met. +type CountCompetitiveReportByWorkUuidsRespMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CountCompetitiveReportByWorkUuidsRespMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CountCompetitiveReportByWorkUuidsRespMultiError) AllErrors() []error { return m } + +// CountCompetitiveReportByWorkUuidsRespValidationError is the validation error +// returned by CountCompetitiveReportByWorkUuidsResp.Validate if the +// designated constraints aren't met. +type CountCompetitiveReportByWorkUuidsRespValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CountCompetitiveReportByWorkUuidsRespValidationError) ErrorName() string { + return "CountCompetitiveReportByWorkUuidsRespValidationError" +} + +// Error satisfies the builtin error interface +func (e CountCompetitiveReportByWorkUuidsRespValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCountCompetitiveReportByWorkUuidsResp.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CountCompetitiveReportByWorkUuidsRespValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CountCompetitiveReportByWorkUuidsRespValidationError{} + // Validate checks the field values on WorkListResp_Info with the rules defined // in the proto definition for this message. If any rules are violated, the // first error encountered is returned, or nil if there are no violations. diff --git a/api/cast/cast_triple.pb.go b/api/cast/cast_triple.pb.go index 08029b1..f4d5b2d 100644 --- a/api/cast/cast_triple.pb.go +++ b/api/cast/cast_triple.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-triple. DO NOT EDIT. // versions: // - protoc-gen-go-triple v1.0.8 -// - protoc v6.32.0--rc2 +// - protoc v3.21.1 // source: pb/fiee/cast.proto package cast @@ -119,6 +119,16 @@ type CastClient interface { BatchUpdateCastTags(ctx context.Context, in *BatchUpdateCastTagsReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) UpdateCastTagStatus(ctx context.Context, in *UpdateCastTagStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) RecalculateCastTagQuoteCount(ctx context.Context, in *emptypb.Empty, opts ...grpc_go.CallOption) (*RecalculateCastTagQuoteCountResp, common.ErrorWithAttachment) + // 竞品报告相关接口 + CreateCompetitiveReport(ctx context.Context, in *CreateCompetitiveReportReq, opts ...grpc_go.CallOption) (*CreateCompetitiveReportResp, common.ErrorWithAttachment) + ImportCompetitiveReportBatch(ctx context.Context, in *ImportCompetitiveReportBatchReq, opts ...grpc_go.CallOption) (*ImportCompetitiveReportBatchResp, common.ErrorWithAttachment) + UpdateCompetitiveReportStatus(ctx context.Context, in *UpdateCompetitiveReportStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + GetCompetitiveReport(ctx context.Context, in *GetCompetitiveReportDetailReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportDetailResp, common.ErrorWithAttachment) + GetCompetitiveReportForApp(ctx context.Context, in *GetCompetitiveReportForAppReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportForAppResp, common.ErrorWithAttachment) + ListCompetitiveReport(ctx context.Context, in *ListCompetitiveReportReq, opts ...grpc_go.CallOption) (*ListCompetitiveReportResp, common.ErrorWithAttachment) + DeleteCompetitiveReport(ctx context.Context, in *DeleteCompetitiveReportReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + UpdateCompetitiveReportApprovalID(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) + CountCompetitiveReportByWorkUuids(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq, opts ...grpc_go.CallOption) (*CountCompetitiveReportByWorkUuidsResp, common.ErrorWithAttachment) } type castClient struct { @@ -202,6 +212,15 @@ type CastClientImpl struct { BatchUpdateCastTags func(ctx context.Context, in *BatchUpdateCastTagsReq) (*emptypb.Empty, error) UpdateCastTagStatus func(ctx context.Context, in *UpdateCastTagStatusReq) (*emptypb.Empty, error) RecalculateCastTagQuoteCount func(ctx context.Context, in *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) + CreateCompetitiveReport func(ctx context.Context, in *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) + ImportCompetitiveReportBatch func(ctx context.Context, in *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) + UpdateCompetitiveReportStatus func(ctx context.Context, in *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) + GetCompetitiveReport func(ctx context.Context, in *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) + GetCompetitiveReportForApp func(ctx context.Context, in *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) + ListCompetitiveReport func(ctx context.Context, in *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) + DeleteCompetitiveReport func(ctx context.Context, in *DeleteCompetitiveReportReq) (*emptypb.Empty, error) + UpdateCompetitiveReportApprovalID func(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) + CountCompetitiveReportByWorkUuids func(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) } func (c *CastClientImpl) GetDubboStub(cc *triple.TripleConn) CastClient { @@ -672,6 +691,60 @@ func (c *castClient) RecalculateCastTagQuoteCount(ctx context.Context, in *empty return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/RecalculateCastTagQuoteCount", in, out) } +func (c *castClient) CreateCompetitiveReport(ctx context.Context, in *CreateCompetitiveReportReq, opts ...grpc_go.CallOption) (*CreateCompetitiveReportResp, common.ErrorWithAttachment) { + out := new(CreateCompetitiveReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateCompetitiveReport", in, out) +} + +func (c *castClient) ImportCompetitiveReportBatch(ctx context.Context, in *ImportCompetitiveReportBatchReq, opts ...grpc_go.CallOption) (*ImportCompetitiveReportBatchResp, common.ErrorWithAttachment) { + out := new(ImportCompetitiveReportBatchResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ImportCompetitiveReportBatch", in, out) +} + +func (c *castClient) UpdateCompetitiveReportStatus(ctx context.Context, in *UpdateCompetitiveReportStatusReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCompetitiveReportStatus", in, out) +} + +func (c *castClient) GetCompetitiveReport(ctx context.Context, in *GetCompetitiveReportDetailReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportDetailResp, common.ErrorWithAttachment) { + out := new(GetCompetitiveReportDetailResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCompetitiveReport", in, out) +} + +func (c *castClient) GetCompetitiveReportForApp(ctx context.Context, in *GetCompetitiveReportForAppReq, opts ...grpc_go.CallOption) (*GetCompetitiveReportForAppResp, common.ErrorWithAttachment) { + out := new(GetCompetitiveReportForAppResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCompetitiveReportForApp", in, out) +} + +func (c *castClient) ListCompetitiveReport(ctx context.Context, in *ListCompetitiveReportReq, opts ...grpc_go.CallOption) (*ListCompetitiveReportResp, common.ErrorWithAttachment) { + out := new(ListCompetitiveReportResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/ListCompetitiveReport", in, out) +} + +func (c *castClient) DeleteCompetitiveReport(ctx context.Context, in *DeleteCompetitiveReportReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteCompetitiveReport", in, out) +} + +func (c *castClient) UpdateCompetitiveReportApprovalID(ctx context.Context, in *UpdateCompetitiveReportApprovalIDReq, opts ...grpc_go.CallOption) (*emptypb.Empty, common.ErrorWithAttachment) { + out := new(emptypb.Empty) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateCompetitiveReportApprovalID", in, out) +} + +func (c *castClient) CountCompetitiveReportByWorkUuids(ctx context.Context, in *CountCompetitiveReportByWorkUuidsReq, opts ...grpc_go.CallOption) (*CountCompetitiveReportByWorkUuidsResp, common.ErrorWithAttachment) { + out := new(CountCompetitiveReportByWorkUuidsResp) + interfaceKey := ctx.Value(constant.InterfaceKey).(string) + return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CountCompetitiveReportByWorkUuids", in, out) +} + // CastServer is the server API for Cast service. // All implementations must embed UnimplementedCastServer // for forward compatibility @@ -766,6 +839,16 @@ type CastServer interface { BatchUpdateCastTags(context.Context, *BatchUpdateCastTagsReq) (*emptypb.Empty, error) UpdateCastTagStatus(context.Context, *UpdateCastTagStatusReq) (*emptypb.Empty, error) RecalculateCastTagQuoteCount(context.Context, *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) + // 竞品报告相关接口 + CreateCompetitiveReport(context.Context, *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) + ImportCompetitiveReportBatch(context.Context, *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) + UpdateCompetitiveReportStatus(context.Context, *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) + GetCompetitiveReport(context.Context, *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) + GetCompetitiveReportForApp(context.Context, *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) + ListCompetitiveReport(context.Context, *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) + DeleteCompetitiveReport(context.Context, *DeleteCompetitiveReportReq) (*emptypb.Empty, error) + UpdateCompetitiveReportApprovalID(context.Context, *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) + CountCompetitiveReportByWorkUuids(context.Context, *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) mustEmbedUnimplementedCastServer() } @@ -1002,6 +1085,33 @@ func (UnimplementedCastServer) UpdateCastTagStatus(context.Context, *UpdateCastT func (UnimplementedCastServer) RecalculateCastTagQuoteCount(context.Context, *emptypb.Empty) (*RecalculateCastTagQuoteCountResp, error) { return nil, status.Errorf(codes.Unimplemented, "method RecalculateCastTagQuoteCount not implemented") } +func (UnimplementedCastServer) CreateCompetitiveReport(context.Context, *CreateCompetitiveReportReq) (*CreateCompetitiveReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCompetitiveReport not implemented") +} +func (UnimplementedCastServer) ImportCompetitiveReportBatch(context.Context, *ImportCompetitiveReportBatchReq) (*ImportCompetitiveReportBatchResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportCompetitiveReportBatch not implemented") +} +func (UnimplementedCastServer) UpdateCompetitiveReportStatus(context.Context, *UpdateCompetitiveReportStatusReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCompetitiveReportStatus not implemented") +} +func (UnimplementedCastServer) GetCompetitiveReport(context.Context, *GetCompetitiveReportDetailReq) (*GetCompetitiveReportDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCompetitiveReport not implemented") +} +func (UnimplementedCastServer) GetCompetitiveReportForApp(context.Context, *GetCompetitiveReportForAppReq) (*GetCompetitiveReportForAppResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCompetitiveReportForApp not implemented") +} +func (UnimplementedCastServer) ListCompetitiveReport(context.Context, *ListCompetitiveReportReq) (*ListCompetitiveReportResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCompetitiveReport not implemented") +} +func (UnimplementedCastServer) DeleteCompetitiveReport(context.Context, *DeleteCompetitiveReportReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCompetitiveReport not implemented") +} +func (UnimplementedCastServer) UpdateCompetitiveReportApprovalID(context.Context, *UpdateCompetitiveReportApprovalIDReq) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCompetitiveReportApprovalID not implemented") +} +func (UnimplementedCastServer) CountCompetitiveReportByWorkUuids(context.Context, *CountCompetitiveReportByWorkUuidsReq) (*CountCompetitiveReportByWorkUuidsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountCompetitiveReportByWorkUuids not implemented") +} func (s *UnimplementedCastServer) XXX_SetProxyImpl(impl protocol.Invoker) { s.proxyImpl = impl } @@ -3234,6 +3344,267 @@ func _Cast_RecalculateCastTagQuoteCount_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _Cast_CreateCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateCompetitiveReportReq) + 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("CreateCompetitiveReport", 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 _Cast_ImportCompetitiveReportBatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportCompetitiveReportBatchReq) + 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("ImportCompetitiveReportBatch", 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 _Cast_UpdateCompetitiveReportStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCompetitiveReportStatusReq) + 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("UpdateCompetitiveReportStatus", 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 _Cast_GetCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCompetitiveReportDetailReq) + 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("GetCompetitiveReport", 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 _Cast_GetCompetitiveReportForApp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCompetitiveReportForAppReq) + 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("GetCompetitiveReportForApp", 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 _Cast_ListCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCompetitiveReportReq) + 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("ListCompetitiveReport", 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 _Cast_DeleteCompetitiveReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCompetitiveReportReq) + 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("DeleteCompetitiveReport", 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 _Cast_UpdateCompetitiveReportApprovalID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCompetitiveReportApprovalIDReq) + 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("UpdateCompetitiveReportApprovalID", 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 _Cast_CountCompetitiveReportByWorkUuids_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) { + in := new(CountCompetitiveReportByWorkUuidsReq) + 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("CountCompetitiveReportByWorkUuids", 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) +} + // Cast_ServiceDesc is the grpc_go.ServiceDesc for Cast service. // It's only intended for direct use with grpc_go.RegisterService, // and not to be introspected or modified (even as a copy) @@ -3545,6 +3916,42 @@ var Cast_ServiceDesc = grpc_go.ServiceDesc{ MethodName: "RecalculateCastTagQuoteCount", Handler: _Cast_RecalculateCastTagQuoteCount_Handler, }, + { + MethodName: "CreateCompetitiveReport", + Handler: _Cast_CreateCompetitiveReport_Handler, + }, + { + MethodName: "ImportCompetitiveReportBatch", + Handler: _Cast_ImportCompetitiveReportBatch_Handler, + }, + { + MethodName: "UpdateCompetitiveReportStatus", + Handler: _Cast_UpdateCompetitiveReportStatus_Handler, + }, + { + MethodName: "GetCompetitiveReport", + Handler: _Cast_GetCompetitiveReport_Handler, + }, + { + MethodName: "GetCompetitiveReportForApp", + Handler: _Cast_GetCompetitiveReportForApp_Handler, + }, + { + MethodName: "ListCompetitiveReport", + Handler: _Cast_ListCompetitiveReport_Handler, + }, + { + MethodName: "DeleteCompetitiveReport", + Handler: _Cast_DeleteCompetitiveReport_Handler, + }, + { + MethodName: "UpdateCompetitiveReportApprovalID", + Handler: _Cast_UpdateCompetitiveReportApprovalID_Handler, + }, + { + MethodName: "CountCompetitiveReportByWorkUuids", + Handler: _Cast_CountCompetitiveReportByWorkUuids_Handler, + }, }, Streams: []grpc_go.StreamDesc{}, Metadata: "pb/fiee/cast.proto", diff --git a/pkg/service/cast/media.go b/pkg/service/cast/media.go index a690abe..5c75952 100644 --- a/pkg/service/cast/media.go +++ b/pkg/service/cast/media.go @@ -169,7 +169,7 @@ func UpdateMediaAccount(ctx *gin.Context) { } if userResp != nil && len(userResp.Data) > 0 { for _, v := range userResp.Data { - if v.PlatformID == uint32(req.PlatformID) { + if v.PlatformID == uint32(req.PlatformID) && v.Expired == 1 { service.Error(ctx, errors.New("账号已存在")) return } diff --git a/pkg/service/cast/test.go b/pkg/service/cast/test.go index 21cd83a..24fe4d3 100644 --- a/pkg/service/cast/test.go +++ b/pkg/service/cast/test.go @@ -166,6 +166,16 @@ func Test(ctx *gin.Context) { service.Success(ctx, "ok") } + if action == "RefreshWorkList" { + resp, err := service.CastProvider.RefreshWorkList(context.Background(), &cast.RefreshWorkListReq{PublishStatus: 1}) + if err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, resp) + return + } + service.Success(ctx, "unknow") return }