From 655ef61a09e2174edee97c4e6a19203f891b47c8 Mon Sep 17 00:00:00 2001 From: Fedor Korotkov Date: Wed, 9 Jun 2021 07:50:48 -0400 Subject: [PATCH] Use new caching API (#146) * Use new caching API * Call WriteHeader before writing --- api/cirrus_ci_service.pb.go | 3000 +++++++++++++++-------------- api/cirrus_ci_service_grpc.pb.go | 72 + internal/http_cache/http_cache.go | 90 +- 3 files changed, 1687 insertions(+), 1475 deletions(-) diff --git a/api/cirrus_ci_service.pb.go b/api/cirrus_ci_service.pb.go index d934318..2d16c72 100644 --- a/api/cirrus_ci_service.pb.go +++ b/api/cirrus_ci_service.pb.go @@ -168,7 +168,7 @@ func (x Annotation_Level) Number() protoreflect.EnumNumber { // Deprecated: Use Annotation_Level.Descriptor instead. func (Annotation_Level) EnumDescriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{31, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{32, 0} } type Annotation_Type int32 @@ -220,7 +220,7 @@ func (x Annotation_Type) Number() protoreflect.EnumNumber { // Deprecated: Use Annotation_Type.Descriptor instead. func (Annotation_Type) EnumDescriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{31, 1} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{32, 1} } type Task_Status int32 @@ -284,7 +284,7 @@ func (x Task_Status) Number() protoreflect.EnumNumber { // Deprecated: Use Task_Status.Descriptor instead. func (Task_Status) EnumDescriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{46, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47, 0} } type Command_CommandExecutionBehavior int32 @@ -333,7 +333,7 @@ func (x Command_CommandExecutionBehavior) Number() protoreflect.EnumNumber { // Deprecated: Use Command_CommandExecutionBehavior.Descriptor instead. func (Command_CommandExecutionBehavior) EnumDescriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{48, 0} } type CapabilitiesRequest struct { @@ -1334,11 +1334,11 @@ type WorkerInfo struct { // // Well-Known Labels: - // name — worker's name - // version — full version (the one returned when running "cirrus --version") - // hostname — name of the host system - // os — runtime.GOOS - // arch — runtime.GOARCH + // name — worker's name + // version — full version (the one returned when running "cirrus --version") + // hostname — name of the host system + // os — runtime.GOOS + // arch — runtime.GOARCH Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } @@ -1689,6 +1689,61 @@ func (x *UploadLogsResponse) GetBytesLogged() int64 { return 0 } +type CacheKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TaskIdentification *TaskIdentification `protobuf:"bytes,1,opt,name=task_identification,json=taskIdentification,proto3" json:"task_identification,omitempty"` + CacheKey string `protobuf:"bytes,2,opt,name=cache_key,json=cacheKey,proto3" json:"cache_key,omitempty"` +} + +func (x *CacheKey) Reset() { + *x = CacheKey{} + if protoimpl.UnsafeEnabled { + mi := &file_cirrus_ci_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CacheKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CacheKey) ProtoMessage() {} + +func (x *CacheKey) ProtoReflect() protoreflect.Message { + mi := &file_cirrus_ci_service_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CacheKey.ProtoReflect.Descriptor instead. +func (*CacheKey) Descriptor() ([]byte, []int) { + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{22} +} + +func (x *CacheKey) GetTaskIdentification() *TaskIdentification { + if x != nil { + return x.TaskIdentification + } + return nil +} + +func (x *CacheKey) GetCacheKey() string { + if x != nil { + return x.CacheKey + } + return "" +} + type CacheEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1703,7 +1758,7 @@ type CacheEntry struct { func (x *CacheEntry) Reset() { *x = CacheEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[22] + mi := &file_cirrus_ci_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1716,7 +1771,7 @@ func (x *CacheEntry) String() string { func (*CacheEntry) ProtoMessage() {} func (x *CacheEntry) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[22] + mi := &file_cirrus_ci_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1729,7 +1784,7 @@ func (x *CacheEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheEntry.ProtoReflect.Descriptor instead. func (*CacheEntry) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{22} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{23} } func (m *CacheEntry) GetValue() isCacheEntry_Value { @@ -1739,7 +1794,7 @@ func (m *CacheEntry) GetValue() isCacheEntry_Value { return nil } -func (x *CacheEntry) GetKey() *CacheEntry_CacheKey { +func (x *CacheEntry) GetKey() *CacheKey { if x, ok := x.GetValue().(*CacheEntry_Key); ok { return x.Key } @@ -1758,7 +1813,7 @@ type isCacheEntry_Value interface { } type CacheEntry_Key struct { - Key *CacheEntry_CacheKey `protobuf:"bytes,1,opt,name=key,proto3,oneof"` + Key *CacheKey `protobuf:"bytes,1,opt,name=key,proto3,oneof"` } type CacheEntry_Chunk struct { @@ -1780,7 +1835,7 @@ type UploadCacheResponse struct { func (x *UploadCacheResponse) Reset() { *x = UploadCacheResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[23] + mi := &file_cirrus_ci_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1793,7 +1848,7 @@ func (x *UploadCacheResponse) String() string { func (*UploadCacheResponse) ProtoMessage() {} func (x *UploadCacheResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[23] + mi := &file_cirrus_ci_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1806,7 +1861,7 @@ func (x *UploadCacheResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadCacheResponse.ProtoReflect.Descriptor instead. func (*UploadCacheResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{23} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{24} } func (x *UploadCacheResponse) GetBytesSaved() int64 { @@ -1830,7 +1885,7 @@ type ArtifactEntry struct { func (x *ArtifactEntry) Reset() { *x = ArtifactEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[24] + mi := &file_cirrus_ci_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1843,7 +1898,7 @@ func (x *ArtifactEntry) String() string { func (*ArtifactEntry) ProtoMessage() {} func (x *ArtifactEntry) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[24] + mi := &file_cirrus_ci_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1856,7 +1911,7 @@ func (x *ArtifactEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactEntry.ProtoReflect.Descriptor instead. func (*ArtifactEntry) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{24} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{25} } func (m *ArtifactEntry) GetValue() isArtifactEntry_Value { @@ -1907,7 +1962,7 @@ type UploadArtifactsResponse struct { func (x *UploadArtifactsResponse) Reset() { *x = UploadArtifactsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[25] + mi := &file_cirrus_ci_service_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1920,7 +1975,7 @@ func (x *UploadArtifactsResponse) String() string { func (*UploadArtifactsResponse) ProtoMessage() {} func (x *UploadArtifactsResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[25] + mi := &file_cirrus_ci_service_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1933,7 +1988,7 @@ func (x *UploadArtifactsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadArtifactsResponse.ProtoReflect.Descriptor instead. func (*UploadArtifactsResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{25} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{26} } func (x *UploadArtifactsResponse) GetBytesSaved() int64 { @@ -1955,7 +2010,7 @@ type DownloadCacheRequest struct { func (x *DownloadCacheRequest) Reset() { *x = DownloadCacheRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[26] + mi := &file_cirrus_ci_service_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1968,7 +2023,7 @@ func (x *DownloadCacheRequest) String() string { func (*DownloadCacheRequest) ProtoMessage() {} func (x *DownloadCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[26] + mi := &file_cirrus_ci_service_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1981,7 +2036,7 @@ func (x *DownloadCacheRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DownloadCacheRequest.ProtoReflect.Descriptor instead. func (*DownloadCacheRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{26} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{27} } func (x *DownloadCacheRequest) GetTaskIdentification() *TaskIdentification { @@ -2014,7 +2069,7 @@ type CommandsResponse struct { func (x *CommandsResponse) Reset() { *x = CommandsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[27] + mi := &file_cirrus_ci_service_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2027,7 +2082,7 @@ func (x *CommandsResponse) String() string { func (*CommandsResponse) ProtoMessage() {} func (x *CommandsResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[27] + mi := &file_cirrus_ci_service_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2040,7 +2095,7 @@ func (x *CommandsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CommandsResponse.ProtoReflect.Descriptor instead. func (*CommandsResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{27} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{28} } func (x *CommandsResponse) GetEnvironment() map[string]string { @@ -2101,7 +2156,7 @@ type ReportSingleCommandRequest struct { func (x *ReportSingleCommandRequest) Reset() { *x = ReportSingleCommandRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[28] + mi := &file_cirrus_ci_service_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2114,7 +2169,7 @@ func (x *ReportSingleCommandRequest) String() string { func (*ReportSingleCommandRequest) ProtoMessage() {} func (x *ReportSingleCommandRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[28] + mi := &file_cirrus_ci_service_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2127,7 +2182,7 @@ func (x *ReportSingleCommandRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportSingleCommandRequest.ProtoReflect.Descriptor instead. func (*ReportSingleCommandRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{28} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{29} } func (x *ReportSingleCommandRequest) GetTaskIdentification() *TaskIdentification { @@ -2184,7 +2239,7 @@ type ReportSingleCommandResponse struct { func (x *ReportSingleCommandResponse) Reset() { *x = ReportSingleCommandResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[29] + mi := &file_cirrus_ci_service_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2197,7 +2252,7 @@ func (x *ReportSingleCommandResponse) String() string { func (*ReportSingleCommandResponse) ProtoMessage() {} func (x *ReportSingleCommandResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[29] + mi := &file_cirrus_ci_service_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2210,7 +2265,7 @@ func (x *ReportSingleCommandResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportSingleCommandResponse.ProtoReflect.Descriptor instead. func (*ReportSingleCommandResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{29} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{30} } func (x *ReportSingleCommandResponse) GetNextCommandName() string { @@ -2239,7 +2294,7 @@ type ReportAnnotationsCommandRequest struct { func (x *ReportAnnotationsCommandRequest) Reset() { *x = ReportAnnotationsCommandRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[30] + mi := &file_cirrus_ci_service_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2252,7 +2307,7 @@ func (x *ReportAnnotationsCommandRequest) String() string { func (*ReportAnnotationsCommandRequest) ProtoMessage() {} func (x *ReportAnnotationsCommandRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[30] + mi := &file_cirrus_ci_service_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2265,7 +2320,7 @@ func (x *ReportAnnotationsCommandRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAnnotationsCommandRequest.ProtoReflect.Descriptor instead. func (*ReportAnnotationsCommandRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{30} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{31} } func (x *ReportAnnotationsCommandRequest) GetTaskIdentification() *TaskIdentification { @@ -2298,7 +2353,7 @@ type Annotation struct { func (x *Annotation) Reset() { *x = Annotation{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[31] + mi := &file_cirrus_ci_service_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2311,7 +2366,7 @@ func (x *Annotation) String() string { func (*Annotation) ProtoMessage() {} func (x *Annotation) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[31] + mi := &file_cirrus_ci_service_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2324,7 +2379,7 @@ func (x *Annotation) ProtoReflect() protoreflect.Message { // Deprecated: Use Annotation.ProtoReflect.Descriptor instead. func (*Annotation) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{31} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{32} } func (x *Annotation) GetType() Annotation_Type { @@ -2380,7 +2435,7 @@ type HeartbeatRequest struct { func (x *HeartbeatRequest) Reset() { *x = HeartbeatRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[32] + mi := &file_cirrus_ci_service_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2393,7 +2448,7 @@ func (x *HeartbeatRequest) String() string { func (*HeartbeatRequest) ProtoMessage() {} func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[32] + mi := &file_cirrus_ci_service_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2406,7 +2461,7 @@ func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HeartbeatRequest.ProtoReflect.Descriptor instead. func (*HeartbeatRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{32} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{33} } func (x *HeartbeatRequest) GetTaskIdentification() *TaskIdentification { @@ -2425,7 +2480,7 @@ type HeartbeatResponse struct { func (x *HeartbeatResponse) Reset() { *x = HeartbeatResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[33] + mi := &file_cirrus_ci_service_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +2493,7 @@ func (x *HeartbeatResponse) String() string { func (*HeartbeatResponse) ProtoMessage() {} func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[33] + mi := &file_cirrus_ci_service_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +2506,7 @@ func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead. func (*HeartbeatResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{33} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{34} } type CacheInfoRequest struct { @@ -2466,7 +2521,7 @@ type CacheInfoRequest struct { func (x *CacheInfoRequest) Reset() { *x = CacheInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[34] + mi := &file_cirrus_ci_service_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2479,7 +2534,7 @@ func (x *CacheInfoRequest) String() string { func (*CacheInfoRequest) ProtoMessage() {} func (x *CacheInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[34] + mi := &file_cirrus_ci_service_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2492,7 +2547,7 @@ func (x *CacheInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheInfoRequest.ProtoReflect.Descriptor instead. func (*CacheInfoRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{34} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{35} } func (x *CacheInfoRequest) GetTaskIdentification() *TaskIdentification { @@ -2523,7 +2578,7 @@ type CacheInfo struct { func (x *CacheInfo) Reset() { *x = CacheInfo{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[35] + mi := &file_cirrus_ci_service_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2536,7 +2591,7 @@ func (x *CacheInfo) String() string { func (*CacheInfo) ProtoMessage() {} func (x *CacheInfo) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[35] + mi := &file_cirrus_ci_service_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2549,7 +2604,7 @@ func (x *CacheInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheInfo.ProtoReflect.Descriptor instead. func (*CacheInfo) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{35} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{36} } func (x *CacheInfo) GetKey() string { @@ -2591,7 +2646,7 @@ type CacheInfoResponse struct { func (x *CacheInfoResponse) Reset() { *x = CacheInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[36] + mi := &file_cirrus_ci_service_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2604,7 +2659,7 @@ func (x *CacheInfoResponse) String() string { func (*CacheInfoResponse) ProtoMessage() {} func (x *CacheInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[36] + mi := &file_cirrus_ci_service_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2617,7 +2672,7 @@ func (x *CacheInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheInfoResponse.ProtoReflect.Descriptor instead. func (*CacheInfoResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{36} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{37} } func (x *CacheInfoResponse) GetInfo() *CacheInfo { @@ -2640,7 +2695,7 @@ type ReportAgentProblemRequest struct { func (x *ReportAgentProblemRequest) Reset() { *x = ReportAgentProblemRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[37] + mi := &file_cirrus_ci_service_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2653,7 +2708,7 @@ func (x *ReportAgentProblemRequest) String() string { func (*ReportAgentProblemRequest) ProtoMessage() {} func (x *ReportAgentProblemRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[37] + mi := &file_cirrus_ci_service_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2666,7 +2721,7 @@ func (x *ReportAgentProblemRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAgentProblemRequest.ProtoReflect.Descriptor instead. func (*ReportAgentProblemRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{37} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{38} } func (x *ReportAgentProblemRequest) GetTaskIdentification() *TaskIdentification { @@ -2701,7 +2756,7 @@ type ReportStopHookRequest struct { func (x *ReportStopHookRequest) Reset() { *x = ReportStopHookRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[38] + mi := &file_cirrus_ci_service_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2714,7 +2769,7 @@ func (x *ReportStopHookRequest) String() string { func (*ReportStopHookRequest) ProtoMessage() {} func (x *ReportStopHookRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[38] + mi := &file_cirrus_ci_service_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2727,7 +2782,7 @@ func (x *ReportStopHookRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportStopHookRequest.ProtoReflect.Descriptor instead. func (*ReportStopHookRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{38} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{39} } func (x *ReportStopHookRequest) GetTaskIdentification() *TaskIdentification { @@ -2749,7 +2804,7 @@ type ReportAgentSignalRequest struct { func (x *ReportAgentSignalRequest) Reset() { *x = ReportAgentSignalRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[39] + mi := &file_cirrus_ci_service_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2762,7 +2817,7 @@ func (x *ReportAgentSignalRequest) String() string { func (*ReportAgentSignalRequest) ProtoMessage() {} func (x *ReportAgentSignalRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[39] + mi := &file_cirrus_ci_service_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2775,7 +2830,7 @@ func (x *ReportAgentSignalRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAgentSignalRequest.ProtoReflect.Descriptor instead. func (*ReportAgentSignalRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{39} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{40} } func (x *ReportAgentSignalRequest) GetTaskIdentification() *TaskIdentification { @@ -2804,7 +2859,7 @@ type ReportAgentLogsRequest struct { func (x *ReportAgentLogsRequest) Reset() { *x = ReportAgentLogsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[40] + mi := &file_cirrus_ci_service_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2817,7 +2872,7 @@ func (x *ReportAgentLogsRequest) String() string { func (*ReportAgentLogsRequest) ProtoMessage() {} func (x *ReportAgentLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[40] + mi := &file_cirrus_ci_service_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2830,7 +2885,7 @@ func (x *ReportAgentLogsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAgentLogsRequest.ProtoReflect.Descriptor instead. func (*ReportAgentLogsRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{40} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{41} } func (x *ReportAgentLogsRequest) GetTaskIdentification() *TaskIdentification { @@ -2862,7 +2917,7 @@ type CacheRetrievalAttempt struct { func (x *CacheRetrievalAttempt) Reset() { *x = CacheRetrievalAttempt{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[41] + mi := &file_cirrus_ci_service_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2875,7 +2930,7 @@ func (x *CacheRetrievalAttempt) String() string { func (*CacheRetrievalAttempt) ProtoMessage() {} func (x *CacheRetrievalAttempt) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[41] + mi := &file_cirrus_ci_service_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2888,7 +2943,7 @@ func (x *CacheRetrievalAttempt) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheRetrievalAttempt.ProtoReflect.Descriptor instead. func (*CacheRetrievalAttempt) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{41} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{42} } func (x *CacheRetrievalAttempt) GetError() string { @@ -2940,14 +2995,15 @@ type ReportAgentFinishedRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TaskIdentification *TaskIdentification `protobuf:"bytes,1,opt,name=task_identification,json=taskIdentification,proto3" json:"task_identification,omitempty"` - CacheRetrievalAttempts map[string]*CacheRetrievalAttempt `protobuf:"bytes,2,rep,name=cacheRetrievalAttempts,proto3" json:"cacheRetrievalAttempts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + TaskIdentification *TaskIdentification `protobuf:"bytes,1,opt,name=task_identification,json=taskIdentification,proto3" json:"task_identification,omitempty"` + CacheRetrievalAttempts map[string]*CacheRetrievalAttempt `protobuf:"bytes,2,rep,name=cacheRetrievalAttempts,proto3" json:"cacheRetrievalAttempts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CommandResults []*ReportAgentFinishedRequest_CommandResult `protobuf:"bytes,3,rep,name=command_results,json=commandResults,proto3" json:"command_results,omitempty"` } func (x *ReportAgentFinishedRequest) Reset() { *x = ReportAgentFinishedRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[42] + mi := &file_cirrus_ci_service_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2960,7 +3016,7 @@ func (x *ReportAgentFinishedRequest) String() string { func (*ReportAgentFinishedRequest) ProtoMessage() {} func (x *ReportAgentFinishedRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[42] + mi := &file_cirrus_ci_service_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2973,7 +3029,7 @@ func (x *ReportAgentFinishedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAgentFinishedRequest.ProtoReflect.Descriptor instead. func (*ReportAgentFinishedRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{42} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{43} } func (x *ReportAgentFinishedRequest) GetTaskIdentification() *TaskIdentification { @@ -2990,6 +3046,13 @@ func (x *ReportAgentFinishedRequest) GetCacheRetrievalAttempts() map[string]*Cac return nil } +func (x *ReportAgentFinishedRequest) GetCommandResults() []*ReportAgentFinishedRequest_CommandResult { + if x != nil { + return x.CommandResults + } + return nil +} + type ReportAgentFinishedResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2999,7 +3062,7 @@ type ReportAgentFinishedResponse struct { func (x *ReportAgentFinishedResponse) Reset() { *x = ReportAgentFinishedResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[43] + mi := &file_cirrus_ci_service_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3012,7 +3075,7 @@ func (x *ReportAgentFinishedResponse) String() string { func (*ReportAgentFinishedResponse) ProtoMessage() {} func (x *ReportAgentFinishedResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[43] + mi := &file_cirrus_ci_service_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3025,7 +3088,7 @@ func (x *ReportAgentFinishedResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportAgentFinishedResponse.ProtoReflect.Descriptor instead. func (*ReportAgentFinishedResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{43} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{44} } type ParseConfigRequest struct { @@ -3042,7 +3105,7 @@ type ParseConfigRequest struct { func (x *ParseConfigRequest) Reset() { *x = ParseConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[44] + mi := &file_cirrus_ci_service_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3055,7 +3118,7 @@ func (x *ParseConfigRequest) String() string { func (*ParseConfigRequest) ProtoMessage() {} func (x *ParseConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[44] + mi := &file_cirrus_ci_service_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3068,7 +3131,7 @@ func (x *ParseConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ParseConfigRequest.ProtoReflect.Descriptor instead. func (*ParseConfigRequest) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{44} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{45} } func (x *ParseConfigRequest) GetConfig() string { @@ -3110,7 +3173,7 @@ type ParseConfigResponse struct { func (x *ParseConfigResponse) Reset() { *x = ParseConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[45] + mi := &file_cirrus_ci_service_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3123,7 +3186,7 @@ func (x *ParseConfigResponse) String() string { func (*ParseConfigResponse) ProtoMessage() {} func (x *ParseConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[45] + mi := &file_cirrus_ci_service_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3136,7 +3199,7 @@ func (x *ParseConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ParseConfigResponse.ProtoReflect.Descriptor instead. func (*ParseConfigResponse) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{45} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{46} } func (x *ParseConfigResponse) GetTasks() []*Task { @@ -3165,7 +3228,7 @@ type Task struct { func (x *Task) Reset() { *x = Task{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[46] + mi := &file_cirrus_ci_service_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3178,7 +3241,7 @@ func (x *Task) String() string { func (*Task) ProtoMessage() {} func (x *Task) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[46] + mi := &file_cirrus_ci_service_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3191,7 +3254,7 @@ func (x *Task) ProtoReflect() protoreflect.Message { // Deprecated: Use Task.ProtoReflect.Descriptor instead. func (*Task) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{46} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47} } func (x *Task) GetLocalGroupId() int64 { @@ -3280,7 +3343,7 @@ type Command struct { func (x *Command) Reset() { *x = Command{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[47] + mi := &file_cirrus_ci_service_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3293,7 +3356,7 @@ func (x *Command) String() string { func (*Command) ProtoMessage() {} func (x *Command) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[47] + mi := &file_cirrus_ci_service_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3306,7 +3369,7 @@ func (x *Command) ProtoReflect() protoreflect.Message { // Deprecated: Use Command.ProtoReflect.Descriptor instead. func (*Command) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{48} } func (x *Command) GetName() string { @@ -3454,7 +3517,7 @@ type ExitInstruction struct { func (x *ExitInstruction) Reset() { *x = ExitInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[48] + mi := &file_cirrus_ci_service_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3467,7 +3530,7 @@ func (x *ExitInstruction) String() string { func (*ExitInstruction) ProtoMessage() {} func (x *ExitInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[48] + mi := &file_cirrus_ci_service_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3480,7 +3543,7 @@ func (x *ExitInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use ExitInstruction.ProtoReflect.Descriptor instead. func (*ExitInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{48} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{49} } type ScriptInstruction struct { @@ -3494,7 +3557,7 @@ type ScriptInstruction struct { func (x *ScriptInstruction) Reset() { *x = ScriptInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[49] + mi := &file_cirrus_ci_service_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3507,7 +3570,7 @@ func (x *ScriptInstruction) String() string { func (*ScriptInstruction) ProtoMessage() {} func (x *ScriptInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[49] + mi := &file_cirrus_ci_service_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3520,7 +3583,7 @@ func (x *ScriptInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use ScriptInstruction.ProtoReflect.Descriptor instead. func (*ScriptInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{49} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{50} } func (x *ScriptInstruction) GetScripts() []string { @@ -3541,7 +3604,7 @@ type BackgroundScriptInstruction struct { func (x *BackgroundScriptInstruction) Reset() { *x = BackgroundScriptInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[50] + mi := &file_cirrus_ci_service_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3554,7 +3617,7 @@ func (x *BackgroundScriptInstruction) String() string { func (*BackgroundScriptInstruction) ProtoMessage() {} func (x *BackgroundScriptInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[50] + mi := &file_cirrus_ci_service_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3567,7 +3630,7 @@ func (x *BackgroundScriptInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use BackgroundScriptInstruction.ProtoReflect.Descriptor instead. func (*BackgroundScriptInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{50} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{51} } func (x *BackgroundScriptInstruction) GetScripts() []string { @@ -3591,7 +3654,7 @@ type CacheInstruction struct { func (x *CacheInstruction) Reset() { *x = CacheInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[51] + mi := &file_cirrus_ci_service_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3604,7 +3667,7 @@ func (x *CacheInstruction) String() string { func (*CacheInstruction) ProtoMessage() {} func (x *CacheInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[51] + mi := &file_cirrus_ci_service_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3617,7 +3680,7 @@ func (x *CacheInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheInstruction.ProtoReflect.Descriptor instead. func (*CacheInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{51} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{52} } func (x *CacheInstruction) GetFolder() string { @@ -3659,7 +3722,7 @@ type UploadCacheInstruction struct { func (x *UploadCacheInstruction) Reset() { *x = UploadCacheInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[52] + mi := &file_cirrus_ci_service_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3672,7 +3735,7 @@ func (x *UploadCacheInstruction) String() string { func (*UploadCacheInstruction) ProtoMessage() {} func (x *UploadCacheInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[52] + mi := &file_cirrus_ci_service_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3685,7 +3748,7 @@ func (x *UploadCacheInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadCacheInstruction.ProtoReflect.Descriptor instead. func (*UploadCacheInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{52} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{53} } func (x *UploadCacheInstruction) GetCacheName() string { @@ -3704,7 +3767,7 @@ type CloneInstruction struct { func (x *CloneInstruction) Reset() { *x = CloneInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[53] + mi := &file_cirrus_ci_service_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3717,7 +3780,7 @@ func (x *CloneInstruction) String() string { func (*CloneInstruction) ProtoMessage() {} func (x *CloneInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[53] + mi := &file_cirrus_ci_service_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3730,7 +3793,7 @@ func (x *CloneInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use CloneInstruction.ProtoReflect.Descriptor instead. func (*CloneInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{53} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{54} } type FileInstruction struct { @@ -3747,7 +3810,7 @@ type FileInstruction struct { func (x *FileInstruction) Reset() { *x = FileInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[54] + mi := &file_cirrus_ci_service_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3760,7 +3823,7 @@ func (x *FileInstruction) String() string { func (*FileInstruction) ProtoMessage() {} func (x *FileInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[54] + mi := &file_cirrus_ci_service_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3773,7 +3836,7 @@ func (x *FileInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use FileInstruction.ProtoReflect.Descriptor instead. func (*FileInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{54} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{55} } func (x *FileInstruction) GetDestinationPath() string { @@ -3820,7 +3883,7 @@ type ArtifactsInstruction struct { func (x *ArtifactsInstruction) Reset() { *x = ArtifactsInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[55] + mi := &file_cirrus_ci_service_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3833,7 +3896,7 @@ func (x *ArtifactsInstruction) String() string { func (*ArtifactsInstruction) ProtoMessage() {} func (x *ArtifactsInstruction) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[55] + mi := &file_cirrus_ci_service_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3846,7 +3909,7 @@ func (x *ArtifactsInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactsInstruction.ProtoReflect.Descriptor instead. func (*ArtifactsInstruction) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{55} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{56} } func (x *ArtifactsInstruction) GetPaths() []string { @@ -3882,7 +3945,7 @@ type PipeInstance struct { func (x *PipeInstance) Reset() { *x = PipeInstance{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[56] + mi := &file_cirrus_ci_service_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3895,7 +3958,7 @@ func (x *PipeInstance) String() string { func (*PipeInstance) ProtoMessage() {} func (x *PipeInstance) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[56] + mi := &file_cirrus_ci_service_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3908,7 +3971,7 @@ func (x *PipeInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use PipeInstance.ProtoReflect.Descriptor instead. func (*PipeInstance) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{56} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{57} } func (x *PipeInstance) GetCpu() float32 { @@ -3946,7 +4009,7 @@ type ContainerInstance struct { func (x *ContainerInstance) Reset() { *x = ContainerInstance{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[57] + mi := &file_cirrus_ci_service_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3959,7 +4022,7 @@ func (x *ContainerInstance) String() string { func (*ContainerInstance) ProtoMessage() {} func (x *ContainerInstance) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[57] + mi := &file_cirrus_ci_service_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3972,7 +4035,7 @@ func (x *ContainerInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use ContainerInstance.ProtoReflect.Descriptor instead. func (*ContainerInstance) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{57} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{58} } func (x *ContainerInstance) GetImage() string { @@ -4064,7 +4127,7 @@ type PortMapping struct { func (x *PortMapping) Reset() { *x = PortMapping{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[58] + mi := &file_cirrus_ci_service_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4077,7 +4140,7 @@ func (x *PortMapping) String() string { func (*PortMapping) ProtoMessage() {} func (x *PortMapping) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[58] + mi := &file_cirrus_ci_service_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4090,7 +4153,7 @@ func (x *PortMapping) ProtoReflect() protoreflect.Message { // Deprecated: Use PortMapping.ProtoReflect.Descriptor instead. func (*PortMapping) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{58} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{59} } func (x *PortMapping) GetContainerPort() uint32 { @@ -4128,7 +4191,7 @@ type AdditionalContainer struct { func (x *AdditionalContainer) Reset() { *x = AdditionalContainer{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[59] + mi := &file_cirrus_ci_service_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4141,7 +4204,7 @@ func (x *AdditionalContainer) String() string { func (*AdditionalContainer) ProtoMessage() {} func (x *AdditionalContainer) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[59] + mi := &file_cirrus_ci_service_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4154,7 +4217,7 @@ func (x *AdditionalContainer) ProtoReflect() protoreflect.Message { // Deprecated: Use AdditionalContainer.ProtoReflect.Descriptor instead. func (*AdditionalContainer) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{59} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{60} } func (x *AdditionalContainer) GetName() string { @@ -4249,7 +4312,7 @@ type PrebuiltImageInstance struct { func (x *PrebuiltImageInstance) Reset() { *x = PrebuiltImageInstance{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[60] + mi := &file_cirrus_ci_service_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4262,7 +4325,7 @@ func (x *PrebuiltImageInstance) String() string { func (*PrebuiltImageInstance) ProtoMessage() {} func (x *PrebuiltImageInstance) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[60] + mi := &file_cirrus_ci_service_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4275,7 +4338,7 @@ func (x *PrebuiltImageInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use PrebuiltImageInstance.ProtoReflect.Descriptor instead. func (*PrebuiltImageInstance) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{60} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{61} } func (x *PrebuiltImageInstance) GetRepository() string { @@ -4326,7 +4389,7 @@ type Volume struct { func (x *Volume) Reset() { *x = Volume{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[61] + mi := &file_cirrus_ci_service_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4339,7 +4402,7 @@ func (x *Volume) String() string { func (*Volume) ProtoMessage() {} func (x *Volume) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[61] + mi := &file_cirrus_ci_service_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4352,7 +4415,7 @@ func (x *Volume) ProtoReflect() protoreflect.Message { // Deprecated: Use Volume.ProtoReflect.Descriptor instead. func (*Volume) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{61} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{62} } func (x *Volume) GetSource() string { @@ -4391,7 +4454,7 @@ type Isolation struct { func (x *Isolation) Reset() { *x = Isolation{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[62] + mi := &file_cirrus_ci_service_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4404,7 +4467,7 @@ func (x *Isolation) String() string { func (*Isolation) ProtoMessage() {} func (x *Isolation) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[62] + mi := &file_cirrus_ci_service_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4417,7 +4480,7 @@ func (x *Isolation) ProtoReflect() protoreflect.Message { // Deprecated: Use Isolation.ProtoReflect.Descriptor instead. func (*Isolation) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{62} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{63} } func (m *Isolation) GetType() isIsolation_Type { @@ -4482,7 +4545,7 @@ type PersistentWorkerInstance struct { func (x *PersistentWorkerInstance) Reset() { *x = PersistentWorkerInstance{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[63] + mi := &file_cirrus_ci_service_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4495,7 +4558,7 @@ func (x *PersistentWorkerInstance) String() string { func (*PersistentWorkerInstance) ProtoMessage() {} func (x *PersistentWorkerInstance) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[63] + mi := &file_cirrus_ci_service_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4508,7 +4571,7 @@ func (x *PersistentWorkerInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use PersistentWorkerInstance.ProtoReflect.Descriptor instead. func (*PersistentWorkerInstance) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{63} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{64} } func (x *PersistentWorkerInstance) GetLabels() map[string]string { @@ -4537,7 +4600,7 @@ type DockerBuilder struct { func (x *DockerBuilder) Reset() { *x = DockerBuilder{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[64] + mi := &file_cirrus_ci_service_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4550,7 +4613,7 @@ func (x *DockerBuilder) String() string { func (*DockerBuilder) ProtoMessage() {} func (x *DockerBuilder) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[64] + mi := &file_cirrus_ci_service_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4563,7 +4626,7 @@ func (x *DockerBuilder) ProtoReflect() protoreflect.Message { // Deprecated: Use DockerBuilder.ProtoReflect.Descriptor instead. func (*DockerBuilder) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{64} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{65} } func (x *DockerBuilder) GetPlatform() Platform { @@ -4580,6 +4643,53 @@ func (x *DockerBuilder) GetOsVersion() string { return "" } +type GenerateURLResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *GenerateURLResponse) Reset() { + *x = GenerateURLResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cirrus_ci_service_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateURLResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateURLResponse) ProtoMessage() {} + +func (x *GenerateURLResponse) ProtoReflect() protoreflect.Message { + mi := &file_cirrus_ci_service_proto_msgTypes[66] + 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 GenerateURLResponse.ProtoReflect.Descriptor instead. +func (*GenerateURLResponse) Descriptor() ([]byte, []int) { + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{66} +} + +func (x *GenerateURLResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + type PollResponse_AgentAwareTask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4595,7 +4705,7 @@ type PollResponse_AgentAwareTask struct { func (x *PollResponse_AgentAwareTask) Reset() { *x = PollResponse_AgentAwareTask{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[69] + mi := &file_cirrus_ci_service_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4608,7 +4718,7 @@ func (x *PollResponse_AgentAwareTask) String() string { func (*PollResponse_AgentAwareTask) ProtoMessage() {} func (x *PollResponse_AgentAwareTask) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[69] + mi := &file_cirrus_ci_service_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4672,7 +4782,7 @@ type LogEntry_LogKey struct { func (x *LogEntry_LogKey) Reset() { *x = LogEntry_LogKey{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[71] + mi := &file_cirrus_ci_service_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4685,7 +4795,7 @@ func (x *LogEntry_LogKey) String() string { func (*LogEntry_LogKey) ProtoMessage() {} func (x *LogEntry_LogKey) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[71] + mi := &file_cirrus_ci_service_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4722,61 +4832,6 @@ func (x *LogEntry_LogKey) GetRaw() bool { return false } -type CacheEntry_CacheKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TaskIdentification *TaskIdentification `protobuf:"bytes,1,opt,name=task_identification,json=taskIdentification,proto3" json:"task_identification,omitempty"` - CacheKey string `protobuf:"bytes,2,opt,name=cache_key,json=cacheKey,proto3" json:"cache_key,omitempty"` -} - -func (x *CacheEntry_CacheKey) Reset() { - *x = CacheEntry_CacheKey{} - if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CacheEntry_CacheKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CacheEntry_CacheKey) ProtoMessage() {} - -func (x *CacheEntry_CacheKey) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[72] - 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 CacheEntry_CacheKey.ProtoReflect.Descriptor instead. -func (*CacheEntry_CacheKey) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{22, 0} -} - -func (x *CacheEntry_CacheKey) GetTaskIdentification() *TaskIdentification { - if x != nil { - return x.TaskIdentification - } - return nil -} - -func (x *CacheEntry_CacheKey) GetCacheKey() string { - if x != nil { - return x.CacheKey - } - return "" -} - type ArtifactEntry_ArtifactsUpload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4791,7 +4846,7 @@ type ArtifactEntry_ArtifactsUpload struct { func (x *ArtifactEntry_ArtifactsUpload) Reset() { *x = ArtifactEntry_ArtifactsUpload{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[73] + mi := &file_cirrus_ci_service_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4804,7 +4859,7 @@ func (x *ArtifactEntry_ArtifactsUpload) String() string { func (*ArtifactEntry_ArtifactsUpload) ProtoMessage() {} func (x *ArtifactEntry_ArtifactsUpload) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[73] + mi := &file_cirrus_ci_service_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4817,7 +4872,7 @@ func (x *ArtifactEntry_ArtifactsUpload) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactEntry_ArtifactsUpload.ProtoReflect.Descriptor instead. func (*ArtifactEntry_ArtifactsUpload) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{24, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{25, 0} } func (x *ArtifactEntry_ArtifactsUpload) GetTaskIdentification() *TaskIdentification { @@ -4860,7 +4915,7 @@ type ArtifactEntry_ArtifactChunk struct { func (x *ArtifactEntry_ArtifactChunk) Reset() { *x = ArtifactEntry_ArtifactChunk{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[74] + mi := &file_cirrus_ci_service_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4873,7 +4928,7 @@ func (x *ArtifactEntry_ArtifactChunk) String() string { func (*ArtifactEntry_ArtifactChunk) ProtoMessage() {} func (x *ArtifactEntry_ArtifactChunk) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[74] + mi := &file_cirrus_ci_service_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4886,7 +4941,7 @@ func (x *ArtifactEntry_ArtifactChunk) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactEntry_ArtifactChunk.ProtoReflect.Descriptor instead. func (*ArtifactEntry_ArtifactChunk) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{24, 1} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{25, 1} } func (x *ArtifactEntry_ArtifactChunk) GetArtifactPath() string { @@ -4918,7 +4973,7 @@ type Annotation_FileLocation struct { func (x *Annotation_FileLocation) Reset() { *x = Annotation_FileLocation{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[77] + mi := &file_cirrus_ci_service_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4931,7 +4986,7 @@ func (x *Annotation_FileLocation) String() string { func (*Annotation_FileLocation) ProtoMessage() {} func (x *Annotation_FileLocation) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[77] + mi := &file_cirrus_ci_service_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4944,7 +4999,7 @@ func (x *Annotation_FileLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use Annotation_FileLocation.ProtoReflect.Descriptor instead. func (*Annotation_FileLocation) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{31, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{32, 0} } func (x *Annotation_FileLocation) GetPath() string { @@ -4995,7 +5050,7 @@ type CacheRetrievalAttempt_Hit struct { func (x *CacheRetrievalAttempt_Hit) Reset() { *x = CacheRetrievalAttempt_Hit{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[78] + mi := &file_cirrus_ci_service_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5008,7 +5063,7 @@ func (x *CacheRetrievalAttempt_Hit) String() string { func (*CacheRetrievalAttempt_Hit) ProtoMessage() {} func (x *CacheRetrievalAttempt_Hit) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[78] + mi := &file_cirrus_ci_service_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5021,7 +5076,7 @@ func (x *CacheRetrievalAttempt_Hit) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheRetrievalAttempt_Hit.ProtoReflect.Descriptor instead. func (*CacheRetrievalAttempt_Hit) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{41, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{42, 0} } func (x *CacheRetrievalAttempt_Hit) GetSizeBytes() uint64 { @@ -5059,7 +5114,7 @@ type CacheRetrievalAttempt_Miss struct { func (x *CacheRetrievalAttempt_Miss) Reset() { *x = CacheRetrievalAttempt_Miss{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[79] + mi := &file_cirrus_ci_service_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5072,7 +5127,7 @@ func (x *CacheRetrievalAttempt_Miss) String() string { func (*CacheRetrievalAttempt_Miss) ProtoMessage() {} func (x *CacheRetrievalAttempt_Miss) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[79] + mi := &file_cirrus_ci_service_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5085,7 +5140,7 @@ func (x *CacheRetrievalAttempt_Miss) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheRetrievalAttempt_Miss.ProtoReflect.Descriptor instead. func (*CacheRetrievalAttempt_Miss) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{41, 1} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{42, 1} } func (x *CacheRetrievalAttempt_Miss) GetSizeBytes() uint64 { @@ -5116,6 +5171,77 @@ func (x *CacheRetrievalAttempt_Miss) GetUploadedInNanos() uint64 { return 0 } +type ReportAgentFinishedRequest_CommandResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Succeded bool `protobuf:"varint,2,opt,name=succeded,proto3" json:"succeded,omitempty"` + DurationInNanos int64 `protobuf:"varint,3,opt,name=duration_in_nanos,json=durationInNanos,proto3" json:"duration_in_nanos,omitempty"` + SignaledToExit bool `protobuf:"varint,4,opt,name=signaled_to_exit,json=signaledToExit,proto3" json:"signaled_to_exit,omitempty"` +} + +func (x *ReportAgentFinishedRequest_CommandResult) Reset() { + *x = ReportAgentFinishedRequest_CommandResult{} + if protoimpl.UnsafeEnabled { + mi := &file_cirrus_ci_service_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportAgentFinishedRequest_CommandResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportAgentFinishedRequest_CommandResult) ProtoMessage() {} + +func (x *ReportAgentFinishedRequest_CommandResult) ProtoReflect() protoreflect.Message { + mi := &file_cirrus_ci_service_proto_msgTypes[81] + 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 ReportAgentFinishedRequest_CommandResult.ProtoReflect.Descriptor instead. +func (*ReportAgentFinishedRequest_CommandResult) Descriptor() ([]byte, []int) { + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{43, 0} +} + +func (x *ReportAgentFinishedRequest_CommandResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReportAgentFinishedRequest_CommandResult) GetSucceded() bool { + if x != nil { + return x.Succeded + } + return false +} + +func (x *ReportAgentFinishedRequest_CommandResult) GetDurationInNanos() int64 { + if x != nil { + return x.DurationInNanos + } + return 0 +} + +func (x *ReportAgentFinishedRequest_CommandResult) GetSignaledToExit() bool { + if x != nil { + return x.SignaledToExit + } + return false +} + type Task_Metadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5128,7 +5254,7 @@ type Task_Metadata struct { func (x *Task_Metadata) Reset() { *x = Task_Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[83] + mi := &file_cirrus_ci_service_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5141,7 +5267,7 @@ func (x *Task_Metadata) String() string { func (*Task_Metadata) ProtoMessage() {} func (x *Task_Metadata) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[83] + mi := &file_cirrus_ci_service_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5154,7 +5280,7 @@ func (x *Task_Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Task_Metadata.ProtoReflect.Descriptor instead. func (*Task_Metadata) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{46, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47, 0} } func (x *Task_Metadata) GetUniqueLabels() []string { @@ -5183,7 +5309,7 @@ type Task_Instance struct { func (x *Task_Instance) Reset() { *x = Task_Instance{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[84] + mi := &file_cirrus_ci_service_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5196,7 +5322,7 @@ func (x *Task_Instance) String() string { func (*Task_Instance) ProtoMessage() {} func (x *Task_Instance) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[84] + mi := &file_cirrus_ci_service_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5209,7 +5335,7 @@ func (x *Task_Instance) ProtoReflect() protoreflect.Message { // Deprecated: Use Task_Instance.ProtoReflect.Descriptor instead. func (*Task_Instance) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{46, 1} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{47, 1} } func (x *Task_Instance) GetType() string { @@ -5235,7 +5361,7 @@ type Isolation_None struct { func (x *Isolation_None) Reset() { *x = Isolation_None{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[91] + mi := &file_cirrus_ci_service_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5248,7 +5374,7 @@ func (x *Isolation_None) String() string { func (*Isolation_None) ProtoMessage() {} func (x *Isolation_None) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[91] + mi := &file_cirrus_ci_service_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5261,7 +5387,7 @@ func (x *Isolation_None) ProtoReflect() protoreflect.Message { // Deprecated: Use Isolation_None.ProtoReflect.Descriptor instead. func (*Isolation_None) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{62, 0} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{63, 0} } type Isolation_Parallels struct { @@ -5278,7 +5404,7 @@ type Isolation_Parallels struct { func (x *Isolation_Parallels) Reset() { *x = Isolation_Parallels{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[92] + mi := &file_cirrus_ci_service_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5291,7 +5417,7 @@ func (x *Isolation_Parallels) String() string { func (*Isolation_Parallels) ProtoMessage() {} func (x *Isolation_Parallels) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[92] + mi := &file_cirrus_ci_service_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5304,7 +5430,7 @@ func (x *Isolation_Parallels) ProtoReflect() protoreflect.Message { // Deprecated: Use Isolation_Parallels.ProtoReflect.Descriptor instead. func (*Isolation_Parallels) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{62, 1} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{63, 1} } func (x *Isolation_Parallels) GetImage() string { @@ -5349,7 +5475,7 @@ type Isolation_Container struct { func (x *Isolation_Container) Reset() { *x = Isolation_Container{} if protoimpl.UnsafeEnabled { - mi := &file_cirrus_ci_service_proto_msgTypes[93] + mi := &file_cirrus_ci_service_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5362,7 +5488,7 @@ func (x *Isolation_Container) String() string { func (*Isolation_Container) ProtoMessage() {} func (x *Isolation_Container) ProtoReflect() protoreflect.Message { - mi := &file_cirrus_ci_service_proto_msgTypes[93] + mi := &file_cirrus_ci_service_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5375,7 +5501,7 @@ func (x *Isolation_Container) ProtoReflect() protoreflect.Message { // Deprecated: Use Isolation_Container.ProtoReflect.Descriptor instead. func (*Isolation_Container) Descriptor() ([]byte, []int) { - return file_cirrus_ci_service_proto_rawDescGZIP(), []int{62, 2} + return file_cirrus_ci_service_proto_rawDescGZIP(), []int{63, 2} } func (x *Isolation_Container) GetImage() string { @@ -5704,18 +5830,67 @@ var file_cirrus_ci_service_proto_rawDesc = []byte{ 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4c, - 0x6f, 0x67, 0x67, 0x65, 0x64, 0x22, 0xcb, 0x02, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, - 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x48, - 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4a, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, - 0x6e, 0x6b, 0x1a, 0x95, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x6f, 0x67, 0x67, 0x65, 0x64, 0x22, 0x95, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, + 0x65, 0x79, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa8, 0x01, + 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x4a, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x42, + 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x36, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x53, 0x61, 0x76, 0x65, 0x64, + 0x22, 0xf7, 0x03, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x73, 0x0a, 0x10, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x5c, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x05, + 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0xbf, 0x01, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0x48, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x0a, 0x17, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x53, 0x61, 0x76, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, @@ -5724,126 +5899,242 @@ var file_cirrus_ci_service_proto_rawDesc = []byte{ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x36, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x53, 0x61, 0x76, 0x65, 0x64, 0x22, 0xf7, 0x03, 0x0a, 0x0d, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x73, 0x0a, - 0x10, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, + 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xb7, 0x03, 0x0a, 0x10, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6c, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x30, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x0a, + 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x54, 0x6f, 0x4d, + 0x61, 0x73, 0x6b, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x74, + 0x4f, 0x6e, 0x63, 0x65, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xcc, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, + 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x12, 0x28, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0xac, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x96, 0x01, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x5f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x48, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xe6, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9b, 0x05, 0x0a, 0x0a, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, - 0x00, 0x52, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0x5c, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, - 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, - 0x1a, 0xbf, 0x01, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, + 0x63, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x71, 0x75, + 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9e, 0x01, + 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x2d, + 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x49, 0x43, + 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0x4a, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, + 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, + 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, + 0x4c, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, + 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x03, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x48, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, + 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, + 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, + 0x79, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x69, 0x7a, 0x65, 0x49, 0x6e, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x22, 0x5b, 0x0a, 0x11, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xb9, + 0x01, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, + 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x1a, 0x48, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x68, - 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x07, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x0a, 0x17, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x53, 0x61, 0x76, 0x65, - 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xb7, 0x03, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0b, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x4a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x6f, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, + 0x67, 0x73, 0x22, 0x9d, 0x04, 0x0a, 0x15, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x56, 0x0a, 0x03, 0x68, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x42, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x54, 0x6f, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2f, - 0x0a, 0x14, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x73, - 0x74, 0x5f, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x63, 0x65, 0x1a, - 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xcc, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, - 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x73, 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x65, 0x64, 0x54, - 0x6f, 0x45, 0x78, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xac, - 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, - 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x16, 0x61, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x61, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x1a, 0x48, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe6, 0x01, - 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x2e, + 0x48, 0x69, 0x74, 0x48, 0x00, 0x52, 0x03, 0x68, 0x69, 0x74, 0x12, 0x59, 0x0a, 0x04, 0x6d, 0x69, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, + 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x48, 0x00, 0x52, + 0x04, 0x6d, 0x69, 0x73, 0x73, 0x1a, 0x82, 0x01, 0x0a, 0x03, 0x48, 0x69, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, + 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, + 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x1a, 0xab, 0x01, 0x0a, 0x04, 0x4d, + 0x69, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, + 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, + 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x2a, 0x0a, 0x11, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x22, 0xc4, 0x05, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, @@ -5851,809 +6142,681 @@ var file_cirrus_ci_service_proto_rawDesc = []byte{ 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9b, 0x05, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x97, 0x01, 0x0a, 0x16, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, + 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x5f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x16, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, + 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x7a, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x30, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x66, - 0x75, 0x6c, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9e, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, - 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, - 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0x2d, 0x0a, 0x05, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, - 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0x4a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x00, 0x12, 0x0f, 0x0a, - 0x0b, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0f, - 0x0a, 0x0b, 0x4c, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x12, - 0x13, 0x0a, 0x0f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x52, 0x45, 0x53, 0x55, - 0x4c, 0x54, 0x10, 0x03, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, - 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x0a, - 0x10, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x95, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x64, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x61, + 0x6e, 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x65, 0x64, 0x5f, + 0x74, 0x6f, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x65, 0x64, 0x54, 0x6f, 0x45, 0x78, 0x69, 0x74, 0x1a, 0x89, 0x01, + 0x0a, 0x1b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, + 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x9d, 0x01, 0x0a, - 0x09, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, - 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x11, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x46, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, - 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x19, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x6c, 0x0a, 0x13, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6e, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x01, - 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x9d, 0x04, - 0x0a, 0x15, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, - 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x56, 0x0a, - 0x03, 0x68, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, - 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x2e, 0x48, 0x69, 0x74, 0x48, 0x00, - 0x52, 0x03, 0x68, 0x69, 0x74, 0x12, 0x59, 0x0a, 0x04, 0x6d, 0x69, 0x73, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x69, 0x73, 0x73, - 0x1a, 0x82, 0x01, 0x0a, 0x03, 0x48, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x69, - 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, - 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x1a, 0xab, 0x01, 0x0a, 0x04, 0x4d, 0x69, 0x73, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, - 0x12, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, - 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x70, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, - 0x49, 0x6e, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4e, 0x61, - 0x6e, 0x6f, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xb0, 0x03, - 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6c, 0x0a, 0x13, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x97, 0x01, 0x0a, 0x16, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, - 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x73, 0x1a, 0x89, 0x01, 0x0a, 0x1b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x41, 0x74, - 0x74, 0x65, 0x6d, 0x70, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xba, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6e, - 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, - 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x6f, 0x72, + 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x74, 0x0a, + 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x46, 0x69, - 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x13, - 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, - 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0xa2, 0x08, 0x0a, 0x04, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, - 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x60, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x12, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, - 0x30, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x1a, 0xd6, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x12, 0x66, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x08, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, - 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, - 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x45, - 0x43, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, - 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, - 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x07, 0x22, 0xa0, 0x0a, - 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x65, 0x0a, - 0x10, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x22, 0xa2, 0x08, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x60, 0x0a, 0x0b, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x8a, 0x01, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, - 0x0a, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x67, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, + 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x12, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0xd6, 0x01, 0x0a, 0x08, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x66, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x46, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x3e, 0x0a, + 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, + 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0a, + 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, + 0x50, 0x50, 0x45, 0x44, 0x10, 0x07, 0x22, 0xa0, 0x0a, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x10, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x69, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, + 0x69, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, + 0x12, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x63, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x18, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, - 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x63, - 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x65, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x8a, 0x01, 0x0a, 0x1d, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x11, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x10, 0x63, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x7b, 0x0a, 0x18, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, + 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, + 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x15, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x74, 0x0a, 0x15, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, + 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x14, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x0a, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x12, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, + 0x72, 0x12, 0x60, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x0a, 0x13, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x75, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x12, 0x60, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x18, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, - 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x55, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x10, - 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x69, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x11, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x73, 0x22, 0x37, 0x0a, 0x1b, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x46, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x0e, + 0x0a, 0x0a, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0e, + 0x0a, 0x0a, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x10, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x11, 0x0a, 0x0f, 0x45, 0x78, 0x69, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x11, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x10, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x67, - 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, - 0x6e, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6f, 0x70, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x72, 0x65, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x6e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x16, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x12, 0x0a, - 0x10, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x3c, 0x0a, 0x19, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x22, 0x38, 0x0a, 0x0c, 0x50, 0x69, 0x70, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x22, 0x90, 0x05, 0x0a, - 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x12, 0x71, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, - 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, - 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7a, 0x0a, 0x10, - 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x2e, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x41, - 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, - 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, - 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x49, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x44, 0x69, 0x73, 0x6b, 0x1a, 0x42, 0x0a, 0x14, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x41, - 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, - 0x51, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x6f, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x6f, 0x72, 0x67, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x22, 0x37, 0x0a, 0x1b, 0x42, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, + 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6f, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x72, 0x65, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x37, 0x0a, + 0x16, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x46, + 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, + 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3c, 0x0a, 0x19, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, + 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x22, 0x58, 0x0a, 0x14, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x38, 0x0a, 0x0c, 0x50, + 0x69, 0x70, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x22, 0x90, 0x05, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, + 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x71, 0x0a, 0x15, 0x61, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x61, - 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4a, 0x0a, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfb, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, - 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x6b, 0x0a, - 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x4d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x4d, + 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x72, - 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, - 0x08, 0x05, 0x10, 0x06, 0x22, 0x55, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xe2, 0x04, 0x0a, 0x09, - 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x5c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, - 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7a, 0x0a, 0x10, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x44, 0x6f, 0x63, 0x6b, + 0x65, 0x72, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, + 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, + 0x73, 0x65, 0x49, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x69, 0x73, 0x6b, 0x1a, 0x42, + 0x0a, 0x14, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0x51, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, + 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x91, 0x04, 0x0a, 0x13, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x6f, + 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, + 0x65, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, + 0x69, 0x6c, 0x65, 0x67, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x4a, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x1a, + 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xfb, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x63, 0x6b, + 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x6b, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x1a, 0x06, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x1a, 0xa0, 0x01, 0x0a, - 0x09, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, - 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x1a, - 0x96, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x49, 0x0a, - 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, - 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x8e, 0x02, 0x0a, 0x18, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x65, 0x0a, - 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, - 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x73, 0x6f, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x7d, 0x0a, 0x0d, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x01, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x55, 0x0a, + 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, + 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xe2, 0x04, 0x0a, 0x09, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, + 0x65, 0x12, 0x5c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2a, 0x2e, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x09, 0x0a, 0x05, - 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x49, 0x4e, 0x44, 0x4f, - 0x57, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x41, 0x52, 0x57, 0x49, 0x4e, 0x10, 0x02, - 0x32, 0xdb, 0x03, 0x0a, 0x23, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x6f, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, - 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3a, 0x2e, 0x6f, 0x72, + 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, + 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, + 0x6c, 0x73, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x12, + 0x5c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x1a, 0x06, 0x0a, + 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x1a, 0xa0, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, + 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x1a, 0x96, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x49, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x18, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x50, 0x0a, + 0x09, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, 0x0d, 0x44, 0x6f, + 0x63, 0x6b, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x08, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x2a, 0x2e, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x09, + 0x0a, 0x05, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x49, 0x4e, + 0x44, 0x4f, 0x57, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x41, 0x52, 0x57, 0x49, 0x4e, + 0x10, 0x02, 0x32, 0xdb, 0x03, 0x0a, 0x23, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, + 0x01, 0x0a, 0x0a, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3a, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x6f, 0x72, + 0x72, 0x70, 0x63, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x46, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xab, - 0x01, 0x0a, 0x1b, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8b, - 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x32, 0xab, 0x01, 0x0a, 0x1b, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x8b, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, + 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, + 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb6, + 0x04, 0x0a, 0x14, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb6, 0x04, 0x0a, - 0x14, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x38, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, - 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x04, 0x50, 0x6f, 0x6c, 0x6c, 0x12, 0x34, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, - 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0b, 0x54, - 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x2e, 0x6f, 0x72, 0x67, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x04, 0x50, 0x6f, 0x6c, 0x6c, + 0x12, 0x34, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x60, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x62, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0x12, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0xf6, 0x13, 0x0a, 0x0f, 0x43, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x43, 0x49, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, + 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, + 0x3f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, + 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, + 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa2, 0x01, + 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x60, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x77, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 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, 0x80, 0x01, 0x0a, 0x0a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x62, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, - 0x12, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, - 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0xd8, 0x11, 0x0a, 0x0f, 0x43, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x43, 0x49, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x49, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x3f, 0x2e, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x7e, + 0x0a, 0x08, 0x53, 0x61, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, - 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x84, + 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa2, 0x01, 0x0a, 0x13, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x12, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x1a, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x77, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x80, 0x01, 0x0a, 0x0a, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x7e, 0x0a, 0x08, - 0x53, 0x61, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x1a, 0x3b, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x84, 0x01, 0x0a, - 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x33, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x1a, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, + 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x1a, 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x28, 0x01, 0x12, 0x8f, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x1a, - 0x40, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, - 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x3d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x12, 0x84, - 0x01, 0x0a, 0x09, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, - 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, - 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x3e, + 0x61, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x0d, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x3d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x00, 0x30, 0x01, + 0x12, 0x84, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, - 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, - 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x70, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 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, 0x72, 0x0a, 0x12, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x12, 0x42, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, + 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, + 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, + 0x12, 0x3e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 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, 0x70, - 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x12, 0x41, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, + 0x74, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 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, 0x70, 0x0a, 0x10, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, + 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x72, 0x0a, 0x12, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x12, 0x42, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x6c, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, - 0x6f, 0x67, 0x73, 0x12, 0x3f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 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, 0xa2, - 0x01, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, - 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, - 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, - 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, - 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x70, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x41, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x6c, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x3f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0xa2, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x43, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, + 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x61, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, + 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x31, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, + 0x1a, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, + 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x31, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, + 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, + 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x1a, 0x3c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, - 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x6a, 0x0a, 0x2c, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x6c, 0x61, 0x62, 0x73, 0x2e, 0x63, 0x69, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x63, 0x69, 0x72, 0x72, 0x75, 0x73, 0x63, 0x69, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x67, 0x72, 0x70, 0x63, @@ -6677,261 +6840,268 @@ func file_cirrus_ci_service_proto_rawDescGZIP() []byte { } var file_cirrus_ci_service_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_cirrus_ci_service_proto_msgTypes = make([]protoimpl.MessageInfo, 95) +var file_cirrus_ci_service_proto_msgTypes = make([]protoimpl.MessageInfo, 97) var file_cirrus_ci_service_proto_goTypes = []interface{}{ - (Platform)(0), // 0: org.cirruslabs.ci.services.cirruscigrpc.Platform - (Issue_Level)(0), // 1: org.cirruslabs.ci.services.cirruscigrpc.Issue.Level - (Annotation_Level)(0), // 2: org.cirruslabs.ci.services.cirruscigrpc.Annotation.Level - (Annotation_Type)(0), // 3: org.cirruslabs.ci.services.cirruscigrpc.Annotation.Type - (Task_Status)(0), // 4: org.cirruslabs.ci.services.cirruscigrpc.Task.Status - (Command_CommandExecutionBehavior)(0), // 5: org.cirruslabs.ci.services.cirruscigrpc.Command.CommandExecutionBehavior - (*CapabilitiesRequest)(nil), // 6: org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesRequest - (*CapabilitiesResponse)(nil), // 7: org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesResponse - (*AdditionalInstancesInfo)(nil), // 8: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo - (*EvaluateConfigRequest)(nil), // 9: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest - (*EvaluateConfigResponse)(nil), // 10: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse - (*RichError)(nil), // 11: org.cirruslabs.ci.services.cirruscigrpc.RichError - (*Issue)(nil), // 12: org.cirruslabs.ci.services.cirruscigrpc.Issue - (*JSONSchemaRequest)(nil), // 13: org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaRequest - (*JSONSchemaResponse)(nil), // 14: org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaResponse - (*EvaluateFunctionRequest)(nil), // 15: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest - (*EvaluateFunctionResponse)(nil), // 16: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse - (*RegisterRequest)(nil), // 17: org.cirruslabs.ci.services.cirruscigrpc.RegisterRequest - (*RegisterResponse)(nil), // 18: org.cirruslabs.ci.services.cirruscigrpc.RegisterResponse - (*PollRequest)(nil), // 19: org.cirruslabs.ci.services.cirruscigrpc.PollRequest - (*TaskFailedRequest)(nil), // 20: org.cirruslabs.ci.services.cirruscigrpc.TaskFailedRequest - (*PollResponse)(nil), // 21: org.cirruslabs.ci.services.cirruscigrpc.PollResponse - (*WorkerInfo)(nil), // 22: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo - (*TaskIdentification)(nil), // 23: org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - (*DataChunk)(nil), // 24: org.cirruslabs.ci.services.cirruscigrpc.DataChunk - (*InitialCommandsRequest)(nil), // 25: org.cirruslabs.ci.services.cirruscigrpc.InitialCommandsRequest - (*LogEntry)(nil), // 26: org.cirruslabs.ci.services.cirruscigrpc.LogEntry - (*UploadLogsResponse)(nil), // 27: org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse - (*CacheEntry)(nil), // 28: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry - (*UploadCacheResponse)(nil), // 29: org.cirruslabs.ci.services.cirruscigrpc.UploadCacheResponse - (*ArtifactEntry)(nil), // 30: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry - (*UploadArtifactsResponse)(nil), // 31: org.cirruslabs.ci.services.cirruscigrpc.UploadArtifactsResponse - (*DownloadCacheRequest)(nil), // 32: org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest - (*CommandsResponse)(nil), // 33: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse - (*ReportSingleCommandRequest)(nil), // 34: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest - (*ReportSingleCommandResponse)(nil), // 35: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse - (*ReportAnnotationsCommandRequest)(nil), // 36: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest - (*Annotation)(nil), // 37: org.cirruslabs.ci.services.cirruscigrpc.Annotation - (*HeartbeatRequest)(nil), // 38: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest - (*HeartbeatResponse)(nil), // 39: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatResponse - (*CacheInfoRequest)(nil), // 40: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest - (*CacheInfo)(nil), // 41: org.cirruslabs.ci.services.cirruscigrpc.CacheInfo - (*CacheInfoResponse)(nil), // 42: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse - (*ReportAgentProblemRequest)(nil), // 43: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest - (*ReportStopHookRequest)(nil), // 44: org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest - (*ReportAgentSignalRequest)(nil), // 45: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest - (*ReportAgentLogsRequest)(nil), // 46: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest - (*CacheRetrievalAttempt)(nil), // 47: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt - (*ReportAgentFinishedRequest)(nil), // 48: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest - (*ReportAgentFinishedResponse)(nil), // 49: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedResponse - (*ParseConfigRequest)(nil), // 50: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest - (*ParseConfigResponse)(nil), // 51: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse - (*Task)(nil), // 52: org.cirruslabs.ci.services.cirruscigrpc.Task - (*Command)(nil), // 53: org.cirruslabs.ci.services.cirruscigrpc.Command - (*ExitInstruction)(nil), // 54: org.cirruslabs.ci.services.cirruscigrpc.ExitInstruction - (*ScriptInstruction)(nil), // 55: org.cirruslabs.ci.services.cirruscigrpc.ScriptInstruction - (*BackgroundScriptInstruction)(nil), // 56: org.cirruslabs.ci.services.cirruscigrpc.BackgroundScriptInstruction - (*CacheInstruction)(nil), // 57: org.cirruslabs.ci.services.cirruscigrpc.CacheInstruction - (*UploadCacheInstruction)(nil), // 58: org.cirruslabs.ci.services.cirruscigrpc.UploadCacheInstruction - (*CloneInstruction)(nil), // 59: org.cirruslabs.ci.services.cirruscigrpc.CloneInstruction - (*FileInstruction)(nil), // 60: org.cirruslabs.ci.services.cirruscigrpc.FileInstruction - (*ArtifactsInstruction)(nil), // 61: org.cirruslabs.ci.services.cirruscigrpc.ArtifactsInstruction - (*PipeInstance)(nil), // 62: org.cirruslabs.ci.services.cirruscigrpc.PipeInstance - (*ContainerInstance)(nil), // 63: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance - (*PortMapping)(nil), // 64: org.cirruslabs.ci.services.cirruscigrpc.PortMapping - (*AdditionalContainer)(nil), // 65: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer - (*PrebuiltImageInstance)(nil), // 66: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance - (*Volume)(nil), // 67: org.cirruslabs.ci.services.cirruscigrpc.Volume - (*Isolation)(nil), // 68: org.cirruslabs.ci.services.cirruscigrpc.Isolation - (*PersistentWorkerInstance)(nil), // 69: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance - (*DockerBuilder)(nil), // 70: org.cirruslabs.ci.services.cirruscigrpc.DockerBuilder - nil, // 71: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.InstancesEntry - nil, // 72: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.EnvironmentEntry - nil, // 73: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.FilesContentsEntry - nil, // 74: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.EnvironmentEntry - (*PollResponse_AgentAwareTask)(nil), // 75: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask - nil, // 76: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.LabelsEntry - (*LogEntry_LogKey)(nil), // 77: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey - (*CacheEntry_CacheKey)(nil), // 78: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.CacheKey - (*ArtifactEntry_ArtifactsUpload)(nil), // 79: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload - (*ArtifactEntry_ArtifactChunk)(nil), // 80: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactChunk - nil, // 81: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.EnvironmentEntry - nil, // 82: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.AdditionalEnvironmentEntry - (*Annotation_FileLocation)(nil), // 83: org.cirruslabs.ci.services.cirruscigrpc.Annotation.FileLocation - (*CacheRetrievalAttempt_Hit)(nil), // 84: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Hit - (*CacheRetrievalAttempt_Miss)(nil), // 85: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Miss - nil, // 86: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry - nil, // 87: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.EnvironmentEntry - nil, // 88: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.FilesContentsEntry - (*Task_Metadata)(nil), // 89: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata - (*Task_Instance)(nil), // 90: org.cirruslabs.ci.services.cirruscigrpc.Task.Instance - nil, // 91: org.cirruslabs.ci.services.cirruscigrpc.Task.EnvironmentEntry - nil, // 92: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.PropertiesEntry - nil, // 93: org.cirruslabs.ci.services.cirruscigrpc.Command.PropertiesEntry - nil, // 94: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.DockerArgumentsEntry - nil, // 95: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.EnvironmentEntry - nil, // 96: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.ArgumentsEntry - (*Isolation_None)(nil), // 97: org.cirruslabs.ci.services.cirruscigrpc.Isolation.None - (*Isolation_Parallels)(nil), // 98: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels - (*Isolation_Container)(nil), // 99: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container - nil, // 100: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.LabelsEntry - (*descriptor.FileDescriptorSet)(nil), // 101: google.protobuf.FileDescriptorSet - (*descriptor.FieldDescriptorProto)(nil), // 102: google.protobuf.FieldDescriptorProto - (*_struct.ListValue)(nil), // 103: google.protobuf.ListValue - (*_struct.Value)(nil), // 104: google.protobuf.Value - (*any.Any)(nil), // 105: google.protobuf.Any - (*empty.Empty)(nil), // 106: google.protobuf.Empty + (Platform)(0), // 0: org.cirruslabs.ci.services.cirruscigrpc.Platform + (Issue_Level)(0), // 1: org.cirruslabs.ci.services.cirruscigrpc.Issue.Level + (Annotation_Level)(0), // 2: org.cirruslabs.ci.services.cirruscigrpc.Annotation.Level + (Annotation_Type)(0), // 3: org.cirruslabs.ci.services.cirruscigrpc.Annotation.Type + (Task_Status)(0), // 4: org.cirruslabs.ci.services.cirruscigrpc.Task.Status + (Command_CommandExecutionBehavior)(0), // 5: org.cirruslabs.ci.services.cirruscigrpc.Command.CommandExecutionBehavior + (*CapabilitiesRequest)(nil), // 6: org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesRequest + (*CapabilitiesResponse)(nil), // 7: org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesResponse + (*AdditionalInstancesInfo)(nil), // 8: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo + (*EvaluateConfigRequest)(nil), // 9: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest + (*EvaluateConfigResponse)(nil), // 10: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse + (*RichError)(nil), // 11: org.cirruslabs.ci.services.cirruscigrpc.RichError + (*Issue)(nil), // 12: org.cirruslabs.ci.services.cirruscigrpc.Issue + (*JSONSchemaRequest)(nil), // 13: org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaRequest + (*JSONSchemaResponse)(nil), // 14: org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaResponse + (*EvaluateFunctionRequest)(nil), // 15: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest + (*EvaluateFunctionResponse)(nil), // 16: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse + (*RegisterRequest)(nil), // 17: org.cirruslabs.ci.services.cirruscigrpc.RegisterRequest + (*RegisterResponse)(nil), // 18: org.cirruslabs.ci.services.cirruscigrpc.RegisterResponse + (*PollRequest)(nil), // 19: org.cirruslabs.ci.services.cirruscigrpc.PollRequest + (*TaskFailedRequest)(nil), // 20: org.cirruslabs.ci.services.cirruscigrpc.TaskFailedRequest + (*PollResponse)(nil), // 21: org.cirruslabs.ci.services.cirruscigrpc.PollResponse + (*WorkerInfo)(nil), // 22: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo + (*TaskIdentification)(nil), // 23: org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + (*DataChunk)(nil), // 24: org.cirruslabs.ci.services.cirruscigrpc.DataChunk + (*InitialCommandsRequest)(nil), // 25: org.cirruslabs.ci.services.cirruscigrpc.InitialCommandsRequest + (*LogEntry)(nil), // 26: org.cirruslabs.ci.services.cirruscigrpc.LogEntry + (*UploadLogsResponse)(nil), // 27: org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse + (*CacheKey)(nil), // 28: org.cirruslabs.ci.services.cirruscigrpc.CacheKey + (*CacheEntry)(nil), // 29: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry + (*UploadCacheResponse)(nil), // 30: org.cirruslabs.ci.services.cirruscigrpc.UploadCacheResponse + (*ArtifactEntry)(nil), // 31: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry + (*UploadArtifactsResponse)(nil), // 32: org.cirruslabs.ci.services.cirruscigrpc.UploadArtifactsResponse + (*DownloadCacheRequest)(nil), // 33: org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest + (*CommandsResponse)(nil), // 34: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse + (*ReportSingleCommandRequest)(nil), // 35: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest + (*ReportSingleCommandResponse)(nil), // 36: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse + (*ReportAnnotationsCommandRequest)(nil), // 37: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest + (*Annotation)(nil), // 38: org.cirruslabs.ci.services.cirruscigrpc.Annotation + (*HeartbeatRequest)(nil), // 39: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest + (*HeartbeatResponse)(nil), // 40: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatResponse + (*CacheInfoRequest)(nil), // 41: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest + (*CacheInfo)(nil), // 42: org.cirruslabs.ci.services.cirruscigrpc.CacheInfo + (*CacheInfoResponse)(nil), // 43: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse + (*ReportAgentProblemRequest)(nil), // 44: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest + (*ReportStopHookRequest)(nil), // 45: org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest + (*ReportAgentSignalRequest)(nil), // 46: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest + (*ReportAgentLogsRequest)(nil), // 47: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest + (*CacheRetrievalAttempt)(nil), // 48: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt + (*ReportAgentFinishedRequest)(nil), // 49: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest + (*ReportAgentFinishedResponse)(nil), // 50: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedResponse + (*ParseConfigRequest)(nil), // 51: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest + (*ParseConfigResponse)(nil), // 52: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse + (*Task)(nil), // 53: org.cirruslabs.ci.services.cirruscigrpc.Task + (*Command)(nil), // 54: org.cirruslabs.ci.services.cirruscigrpc.Command + (*ExitInstruction)(nil), // 55: org.cirruslabs.ci.services.cirruscigrpc.ExitInstruction + (*ScriptInstruction)(nil), // 56: org.cirruslabs.ci.services.cirruscigrpc.ScriptInstruction + (*BackgroundScriptInstruction)(nil), // 57: org.cirruslabs.ci.services.cirruscigrpc.BackgroundScriptInstruction + (*CacheInstruction)(nil), // 58: org.cirruslabs.ci.services.cirruscigrpc.CacheInstruction + (*UploadCacheInstruction)(nil), // 59: org.cirruslabs.ci.services.cirruscigrpc.UploadCacheInstruction + (*CloneInstruction)(nil), // 60: org.cirruslabs.ci.services.cirruscigrpc.CloneInstruction + (*FileInstruction)(nil), // 61: org.cirruslabs.ci.services.cirruscigrpc.FileInstruction + (*ArtifactsInstruction)(nil), // 62: org.cirruslabs.ci.services.cirruscigrpc.ArtifactsInstruction + (*PipeInstance)(nil), // 63: org.cirruslabs.ci.services.cirruscigrpc.PipeInstance + (*ContainerInstance)(nil), // 64: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance + (*PortMapping)(nil), // 65: org.cirruslabs.ci.services.cirruscigrpc.PortMapping + (*AdditionalContainer)(nil), // 66: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer + (*PrebuiltImageInstance)(nil), // 67: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance + (*Volume)(nil), // 68: org.cirruslabs.ci.services.cirruscigrpc.Volume + (*Isolation)(nil), // 69: org.cirruslabs.ci.services.cirruscigrpc.Isolation + (*PersistentWorkerInstance)(nil), // 70: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance + (*DockerBuilder)(nil), // 71: org.cirruslabs.ci.services.cirruscigrpc.DockerBuilder + (*GenerateURLResponse)(nil), // 72: org.cirruslabs.ci.services.cirruscigrpc.GenerateURLResponse + nil, // 73: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.InstancesEntry + nil, // 74: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.EnvironmentEntry + nil, // 75: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.FilesContentsEntry + nil, // 76: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.EnvironmentEntry + (*PollResponse_AgentAwareTask)(nil), // 77: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask + nil, // 78: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.LabelsEntry + (*LogEntry_LogKey)(nil), // 79: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey + (*ArtifactEntry_ArtifactsUpload)(nil), // 80: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload + (*ArtifactEntry_ArtifactChunk)(nil), // 81: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactChunk + nil, // 82: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.EnvironmentEntry + nil, // 83: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.AdditionalEnvironmentEntry + (*Annotation_FileLocation)(nil), // 84: org.cirruslabs.ci.services.cirruscigrpc.Annotation.FileLocation + (*CacheRetrievalAttempt_Hit)(nil), // 85: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Hit + (*CacheRetrievalAttempt_Miss)(nil), // 86: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Miss + (*ReportAgentFinishedRequest_CommandResult)(nil), // 87: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CommandResult + nil, // 88: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry + nil, // 89: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.EnvironmentEntry + nil, // 90: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.FilesContentsEntry + (*Task_Metadata)(nil), // 91: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata + (*Task_Instance)(nil), // 92: org.cirruslabs.ci.services.cirruscigrpc.Task.Instance + nil, // 93: org.cirruslabs.ci.services.cirruscigrpc.Task.EnvironmentEntry + nil, // 94: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.PropertiesEntry + nil, // 95: org.cirruslabs.ci.services.cirruscigrpc.Command.PropertiesEntry + nil, // 96: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.DockerArgumentsEntry + nil, // 97: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.EnvironmentEntry + nil, // 98: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.ArgumentsEntry + (*Isolation_None)(nil), // 99: org.cirruslabs.ci.services.cirruscigrpc.Isolation.None + (*Isolation_Parallels)(nil), // 100: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels + (*Isolation_Container)(nil), // 101: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container + nil, // 102: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.LabelsEntry + (*descriptor.FileDescriptorSet)(nil), // 103: google.protobuf.FileDescriptorSet + (*descriptor.FieldDescriptorProto)(nil), // 104: google.protobuf.FieldDescriptorProto + (*_struct.ListValue)(nil), // 105: google.protobuf.ListValue + (*_struct.Value)(nil), // 106: google.protobuf.Value + (*any.Any)(nil), // 107: google.protobuf.Any + (*empty.Empty)(nil), // 108: google.protobuf.Empty } var file_cirrus_ci_service_proto_depIdxs = []int32{ 8, // 0: org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesResponse.supported_instances:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo - 71, // 1: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.instances:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.InstancesEntry - 101, // 2: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.descriptor_set:type_name -> google.protobuf.FileDescriptorSet - 72, // 3: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.EnvironmentEntry - 73, // 4: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.filesContents:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.FilesContentsEntry + 73, // 1: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.instances:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.InstancesEntry + 103, // 2: org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo.descriptor_set:type_name -> google.protobuf.FileDescriptorSet + 74, // 3: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.EnvironmentEntry + 75, // 4: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.filesContents:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.FilesContentsEntry 8, // 5: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.additional_instances_info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo - 102, // 6: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.additional_task_properties:type_name -> google.protobuf.FieldDescriptorProto - 52, // 7: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse.tasks:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task + 104, // 6: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest.additional_task_properties:type_name -> google.protobuf.FieldDescriptorProto + 53, // 7: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse.tasks:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task 12, // 8: org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse.issues:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Issue 1, // 9: org.cirruslabs.ci.services.cirruscigrpc.Issue.level:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Issue.Level 8, // 10: org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaRequest.additional_instances_info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalInstancesInfo - 103, // 11: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.arguments:type_name -> google.protobuf.ListValue - 74, // 12: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.EnvironmentEntry - 104, // 13: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse.result:type_name -> google.protobuf.Value + 105, // 11: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.arguments:type_name -> google.protobuf.ListValue + 76, // 12: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest.EnvironmentEntry + 106, // 13: org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse.result:type_name -> google.protobuf.Value 22, // 14: org.cirruslabs.ci.services.cirruscigrpc.RegisterRequest.worker_info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo 22, // 15: org.cirruslabs.ci.services.cirruscigrpc.PollRequest.worker_info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo 23, // 16: org.cirruslabs.ci.services.cirruscigrpc.TaskFailedRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 75, // 17: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.tasks_to_start:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask - 76, // 18: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.labels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.LabelsEntry + 77, // 17: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.tasks_to_start:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask + 78, // 18: org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.labels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.WorkerInfo.LabelsEntry 23, // 19: org.cirruslabs.ci.services.cirruscigrpc.InitialCommandsRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 77, // 20: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.key:type_name -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey + 79, // 20: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.key:type_name -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey 24, // 21: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.chunk:type_name -> org.cirruslabs.ci.services.cirruscigrpc.DataChunk - 78, // 22: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.key:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.CacheKey - 24, // 23: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.chunk:type_name -> org.cirruslabs.ci.services.cirruscigrpc.DataChunk - 79, // 24: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.artifacts_upload:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload - 80, // 25: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.chunk:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactChunk - 23, // 26: org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 81, // 27: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.EnvironmentEntry - 53, // 28: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.commands:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command - 23, // 29: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 82, // 30: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.additional_environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.AdditionalEnvironmentEntry - 23, // 31: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 37, // 32: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest.annotations:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation - 3, // 33: org.cirruslabs.ci.services.cirruscigrpc.Annotation.type:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.Type - 2, // 34: org.cirruslabs.ci.services.cirruscigrpc.Annotation.level:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.Level - 83, // 35: org.cirruslabs.ci.services.cirruscigrpc.Annotation.file_location:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.FileLocation - 23, // 36: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 37: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 41, // 38: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse.info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfo - 23, // 39: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 40: org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 41: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 42: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 84, // 43: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.hit:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Hit - 85, // 44: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.miss:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Miss - 23, // 45: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 86, // 46: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.cacheRetrievalAttempts:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry - 87, // 47: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.EnvironmentEntry - 88, // 48: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.filesContents:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.FilesContentsEntry - 52, // 49: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse.tasks:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task - 4, // 50: org.cirruslabs.ci.services.cirruscigrpc.Task.status:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Status - 91, // 51: org.cirruslabs.ci.services.cirruscigrpc.Task.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.EnvironmentEntry - 89, // 52: org.cirruslabs.ci.services.cirruscigrpc.Task.metadata:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata - 90, // 53: org.cirruslabs.ci.services.cirruscigrpc.Task.deprecated_instance:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Instance - 53, // 54: org.cirruslabs.ci.services.cirruscigrpc.Task.commands:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command - 105, // 55: org.cirruslabs.ci.services.cirruscigrpc.Task.instance:type_name -> google.protobuf.Any - 54, // 56: org.cirruslabs.ci.services.cirruscigrpc.Command.exit_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ExitInstruction - 55, // 57: org.cirruslabs.ci.services.cirruscigrpc.Command.script_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ScriptInstruction - 56, // 58: org.cirruslabs.ci.services.cirruscigrpc.Command.background_script_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.BackgroundScriptInstruction - 57, // 59: org.cirruslabs.ci.services.cirruscigrpc.Command.cache_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheInstruction - 58, // 60: org.cirruslabs.ci.services.cirruscigrpc.Command.upload_cache_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.UploadCacheInstruction - 59, // 61: org.cirruslabs.ci.services.cirruscigrpc.Command.clone_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CloneInstruction - 60, // 62: org.cirruslabs.ci.services.cirruscigrpc.Command.file_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.FileInstruction - 61, // 63: org.cirruslabs.ci.services.cirruscigrpc.Command.artifacts_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactsInstruction - 5, // 64: org.cirruslabs.ci.services.cirruscigrpc.Command.execution_behaviour:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command.CommandExecutionBehavior - 93, // 65: org.cirruslabs.ci.services.cirruscigrpc.Command.properties:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command.PropertiesEntry - 65, // 66: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.additional_containers:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer - 0, // 67: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform - 94, // 68: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.docker_arguments:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.DockerArgumentsEntry - 95, // 69: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.EnvironmentEntry - 64, // 70: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.ports:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PortMapping - 0, // 71: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform - 96, // 72: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.arguments:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.ArgumentsEntry - 97, // 73: org.cirruslabs.ci.services.cirruscigrpc.Isolation.none:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.None - 98, // 74: org.cirruslabs.ci.services.cirruscigrpc.Isolation.parallels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels - 99, // 75: org.cirruslabs.ci.services.cirruscigrpc.Isolation.container:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container - 100, // 76: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.labels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.LabelsEntry - 68, // 77: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.isolation:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation - 0, // 78: org.cirruslabs.ci.services.cirruscigrpc.DockerBuilder.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform - 68, // 79: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask.isolation:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation - 23, // 80: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 81: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.CacheKey.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 23, // 82: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 47, // 83: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry.value:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt - 92, // 84: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.properties:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.PropertiesEntry - 0, // 85: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform - 67, // 86: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container.volumes:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Volume - 9, // 87: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateConfig:input_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest - 13, // 88: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.JSONSchema:input_type -> org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaRequest - 15, // 89: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateFunction:input_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest - 6, // 90: org.cirruslabs.ci.services.cirruscigrpc.CirrusRemoteExecutorService.Capabilities:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesRequest - 17, // 91: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Register:input_type -> org.cirruslabs.ci.services.cirruscigrpc.RegisterRequest - 19, // 92: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Poll:input_type -> org.cirruslabs.ci.services.cirruscigrpc.PollRequest - 23, // 93: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStarted:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 20, // 94: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskFailed:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskFailedRequest - 23, // 95: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStopped:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification - 25, // 96: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.InitialCommands:input_type -> org.cirruslabs.ci.services.cirruscigrpc.InitialCommandsRequest - 34, // 97: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportSingleCommand:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest - 36, // 98: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAnnotations:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest - 26, // 99: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.StreamLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry - 26, // 100: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.SaveLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry - 28, // 101: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadCache:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheEntry - 30, // 102: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadArtifacts:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry - 32, // 103: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.DownloadCache:input_type -> org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest - 40, // 104: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.CacheInfo:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest - 38, // 105: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.Heartbeat:input_type -> org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest - 44, // 106: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportStopHook:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest - 43, // 107: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentError:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest - 43, // 108: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentWarning:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest - 45, // 109: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentSignal:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest - 46, // 110: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest - 48, // 111: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentFinished:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest - 50, // 112: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ParseConfig:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest - 10, // 113: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateConfig:output_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse - 14, // 114: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.JSONSchema:output_type -> org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaResponse - 16, // 115: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateFunction:output_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse - 7, // 116: org.cirruslabs.ci.services.cirruscigrpc.CirrusRemoteExecutorService.Capabilities:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesResponse - 18, // 117: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Register:output_type -> org.cirruslabs.ci.services.cirruscigrpc.RegisterResponse - 21, // 118: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Poll:output_type -> org.cirruslabs.ci.services.cirruscigrpc.PollResponse - 106, // 119: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStarted:output_type -> google.protobuf.Empty - 106, // 120: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskFailed:output_type -> google.protobuf.Empty - 106, // 121: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStopped:output_type -> google.protobuf.Empty - 33, // 122: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.InitialCommands:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse - 35, // 123: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportSingleCommand:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse - 106, // 124: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAnnotations:output_type -> google.protobuf.Empty - 27, // 125: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.StreamLogs:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse - 27, // 126: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.SaveLogs:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse - 29, // 127: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadCache:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadCacheResponse - 31, // 128: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadArtifacts:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadArtifactsResponse - 24, // 129: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.DownloadCache:output_type -> org.cirruslabs.ci.services.cirruscigrpc.DataChunk - 42, // 130: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.CacheInfo:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse - 39, // 131: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.Heartbeat:output_type -> org.cirruslabs.ci.services.cirruscigrpc.HeartbeatResponse - 106, // 132: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportStopHook:output_type -> google.protobuf.Empty - 106, // 133: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentError:output_type -> google.protobuf.Empty - 106, // 134: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentWarning:output_type -> google.protobuf.Empty - 106, // 135: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentSignal:output_type -> google.protobuf.Empty - 106, // 136: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentLogs:output_type -> google.protobuf.Empty - 49, // 137: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentFinished:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedResponse - 51, // 138: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ParseConfig:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse - 113, // [113:139] is the sub-list for method output_type - 87, // [87:113] is the sub-list for method input_type - 87, // [87:87] is the sub-list for extension type_name - 87, // [87:87] is the sub-list for extension extendee - 0, // [0:87] is the sub-list for field type_name + 23, // 22: org.cirruslabs.ci.services.cirruscigrpc.CacheKey.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 28, // 23: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.key:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheKey + 24, // 24: org.cirruslabs.ci.services.cirruscigrpc.CacheEntry.chunk:type_name -> org.cirruslabs.ci.services.cirruscigrpc.DataChunk + 80, // 25: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.artifacts_upload:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload + 81, // 26: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.chunk:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactChunk + 23, // 27: org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 82, // 28: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.EnvironmentEntry + 54, // 29: org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse.commands:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command + 23, // 30: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 83, // 31: org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.additional_environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse.AdditionalEnvironmentEntry + 23, // 32: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 38, // 33: org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest.annotations:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation + 3, // 34: org.cirruslabs.ci.services.cirruscigrpc.Annotation.type:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.Type + 2, // 35: org.cirruslabs.ci.services.cirruscigrpc.Annotation.level:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.Level + 84, // 36: org.cirruslabs.ci.services.cirruscigrpc.Annotation.file_location:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Annotation.FileLocation + 23, // 37: org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 23, // 38: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 42, // 39: org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse.info:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfo + 23, // 40: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 23, // 41: org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 23, // 42: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 23, // 43: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 85, // 44: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.hit:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Hit + 86, // 45: org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.miss:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt.Miss + 23, // 46: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 88, // 47: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.cacheRetrievalAttempts:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry + 87, // 48: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.command_results:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CommandResult + 89, // 49: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.EnvironmentEntry + 90, // 50: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.filesContents:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest.FilesContentsEntry + 53, // 51: org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse.tasks:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task + 4, // 52: org.cirruslabs.ci.services.cirruscigrpc.Task.status:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Status + 93, // 53: org.cirruslabs.ci.services.cirruscigrpc.Task.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.EnvironmentEntry + 91, // 54: org.cirruslabs.ci.services.cirruscigrpc.Task.metadata:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata + 92, // 55: org.cirruslabs.ci.services.cirruscigrpc.Task.deprecated_instance:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Instance + 54, // 56: org.cirruslabs.ci.services.cirruscigrpc.Task.commands:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command + 107, // 57: org.cirruslabs.ci.services.cirruscigrpc.Task.instance:type_name -> google.protobuf.Any + 55, // 58: org.cirruslabs.ci.services.cirruscigrpc.Command.exit_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ExitInstruction + 56, // 59: org.cirruslabs.ci.services.cirruscigrpc.Command.script_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ScriptInstruction + 57, // 60: org.cirruslabs.ci.services.cirruscigrpc.Command.background_script_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.BackgroundScriptInstruction + 58, // 61: org.cirruslabs.ci.services.cirruscigrpc.Command.cache_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheInstruction + 59, // 62: org.cirruslabs.ci.services.cirruscigrpc.Command.upload_cache_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.UploadCacheInstruction + 60, // 63: org.cirruslabs.ci.services.cirruscigrpc.Command.clone_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CloneInstruction + 61, // 64: org.cirruslabs.ci.services.cirruscigrpc.Command.file_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.FileInstruction + 62, // 65: org.cirruslabs.ci.services.cirruscigrpc.Command.artifacts_instruction:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactsInstruction + 5, // 66: org.cirruslabs.ci.services.cirruscigrpc.Command.execution_behaviour:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command.CommandExecutionBehavior + 95, // 67: org.cirruslabs.ci.services.cirruscigrpc.Command.properties:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Command.PropertiesEntry + 66, // 68: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.additional_containers:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer + 0, // 69: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform + 96, // 70: org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.docker_arguments:type_name -> org.cirruslabs.ci.services.cirruscigrpc.ContainerInstance.DockerArgumentsEntry + 97, // 71: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.environment:type_name -> org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.EnvironmentEntry + 65, // 72: org.cirruslabs.ci.services.cirruscigrpc.AdditionalContainer.ports:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PortMapping + 0, // 73: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform + 98, // 74: org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.arguments:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PrebuiltImageInstance.ArgumentsEntry + 99, // 75: org.cirruslabs.ci.services.cirruscigrpc.Isolation.none:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.None + 100, // 76: org.cirruslabs.ci.services.cirruscigrpc.Isolation.parallels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels + 101, // 77: org.cirruslabs.ci.services.cirruscigrpc.Isolation.container:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container + 102, // 78: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.labels:type_name -> org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.LabelsEntry + 69, // 79: org.cirruslabs.ci.services.cirruscigrpc.PersistentWorkerInstance.isolation:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation + 0, // 80: org.cirruslabs.ci.services.cirruscigrpc.DockerBuilder.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform + 69, // 81: org.cirruslabs.ci.services.cirruscigrpc.PollResponse.AgentAwareTask.isolation:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Isolation + 23, // 82: org.cirruslabs.ci.services.cirruscigrpc.LogEntry.LogKey.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 23, // 83: org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry.ArtifactsUpload.task_identification:type_name -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 48, // 84: org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest.CacheRetrievalAttemptsEntry.value:type_name -> org.cirruslabs.ci.services.cirruscigrpc.CacheRetrievalAttempt + 94, // 85: org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.properties:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Task.Metadata.PropertiesEntry + 0, // 86: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Parallels.platform:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Platform + 68, // 87: org.cirruslabs.ci.services.cirruscigrpc.Isolation.Container.volumes:type_name -> org.cirruslabs.ci.services.cirruscigrpc.Volume + 9, // 88: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateConfig:input_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigRequest + 13, // 89: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.JSONSchema:input_type -> org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaRequest + 15, // 90: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateFunction:input_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionRequest + 6, // 91: org.cirruslabs.ci.services.cirruscigrpc.CirrusRemoteExecutorService.Capabilities:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesRequest + 17, // 92: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Register:input_type -> org.cirruslabs.ci.services.cirruscigrpc.RegisterRequest + 19, // 93: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Poll:input_type -> org.cirruslabs.ci.services.cirruscigrpc.PollRequest + 23, // 94: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStarted:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 20, // 95: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskFailed:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskFailedRequest + 23, // 96: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStopped:input_type -> org.cirruslabs.ci.services.cirruscigrpc.TaskIdentification + 25, // 97: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.InitialCommands:input_type -> org.cirruslabs.ci.services.cirruscigrpc.InitialCommandsRequest + 35, // 98: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportSingleCommand:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandRequest + 37, // 99: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAnnotations:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAnnotationsCommandRequest + 26, // 100: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.StreamLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry + 26, // 101: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.SaveLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.LogEntry + 29, // 102: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadCache:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheEntry + 31, // 103: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadArtifacts:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ArtifactEntry + 33, // 104: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.DownloadCache:input_type -> org.cirruslabs.ci.services.cirruscigrpc.DownloadCacheRequest + 41, // 105: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.CacheInfo:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfoRequest + 39, // 106: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.Heartbeat:input_type -> org.cirruslabs.ci.services.cirruscigrpc.HeartbeatRequest + 45, // 107: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportStopHook:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportStopHookRequest + 44, // 108: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentError:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest + 44, // 109: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentWarning:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentProblemRequest + 46, // 110: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentSignal:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentSignalRequest + 47, // 111: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentLogs:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentLogsRequest + 49, // 112: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentFinished:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedRequest + 51, // 113: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ParseConfig:input_type -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigRequest + 28, // 114: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.GenerateCacheUploadURL:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheKey + 28, // 115: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.GenerateCacheDownloadURL:input_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheKey + 10, // 116: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateConfig:output_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateConfigResponse + 14, // 117: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.JSONSchema:output_type -> org.cirruslabs.ci.services.cirruscigrpc.JSONSchemaResponse + 16, // 118: org.cirruslabs.ci.services.cirruscigrpc.CirrusConfigurationEvaluatorService.EvaluateFunction:output_type -> org.cirruslabs.ci.services.cirruscigrpc.EvaluateFunctionResponse + 7, // 119: org.cirruslabs.ci.services.cirruscigrpc.CirrusRemoteExecutorService.Capabilities:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CapabilitiesResponse + 18, // 120: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Register:output_type -> org.cirruslabs.ci.services.cirruscigrpc.RegisterResponse + 21, // 121: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.Poll:output_type -> org.cirruslabs.ci.services.cirruscigrpc.PollResponse + 108, // 122: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStarted:output_type -> google.protobuf.Empty + 108, // 123: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskFailed:output_type -> google.protobuf.Empty + 108, // 124: org.cirruslabs.ci.services.cirruscigrpc.CirrusWorkersService.TaskStopped:output_type -> google.protobuf.Empty + 34, // 125: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.InitialCommands:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CommandsResponse + 36, // 126: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportSingleCommand:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportSingleCommandResponse + 108, // 127: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAnnotations:output_type -> google.protobuf.Empty + 27, // 128: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.StreamLogs:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse + 27, // 129: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.SaveLogs:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadLogsResponse + 30, // 130: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadCache:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadCacheResponse + 32, // 131: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.UploadArtifacts:output_type -> org.cirruslabs.ci.services.cirruscigrpc.UploadArtifactsResponse + 24, // 132: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.DownloadCache:output_type -> org.cirruslabs.ci.services.cirruscigrpc.DataChunk + 43, // 133: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.CacheInfo:output_type -> org.cirruslabs.ci.services.cirruscigrpc.CacheInfoResponse + 40, // 134: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.Heartbeat:output_type -> org.cirruslabs.ci.services.cirruscigrpc.HeartbeatResponse + 108, // 135: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportStopHook:output_type -> google.protobuf.Empty + 108, // 136: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentError:output_type -> google.protobuf.Empty + 108, // 137: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentWarning:output_type -> google.protobuf.Empty + 108, // 138: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentSignal:output_type -> google.protobuf.Empty + 108, // 139: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentLogs:output_type -> google.protobuf.Empty + 50, // 140: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ReportAgentFinished:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ReportAgentFinishedResponse + 52, // 141: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.ParseConfig:output_type -> org.cirruslabs.ci.services.cirruscigrpc.ParseConfigResponse + 72, // 142: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.GenerateCacheUploadURL:output_type -> org.cirruslabs.ci.services.cirruscigrpc.GenerateURLResponse + 72, // 143: org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService.GenerateCacheDownloadURL:output_type -> org.cirruslabs.ci.services.cirruscigrpc.GenerateURLResponse + 116, // [116:144] is the sub-list for method output_type + 88, // [88:116] is the sub-list for method input_type + 88, // [88:88] is the sub-list for extension type_name + 88, // [88:88] is the sub-list for extension extendee + 0, // [0:88] is the sub-list for field type_name } func init() { file_cirrus_ci_service_proto_init() } @@ -7205,7 +7375,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheEntry); i { + switch v := v.(*CacheKey); i { case 0: return &v.state case 1: @@ -7217,7 +7387,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadCacheResponse); i { + switch v := v.(*CacheEntry); i { case 0: return &v.state case 1: @@ -7229,7 +7399,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactEntry); i { + switch v := v.(*UploadCacheResponse); i { case 0: return &v.state case 1: @@ -7241,7 +7411,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadArtifactsResponse); i { + switch v := v.(*ArtifactEntry); i { case 0: return &v.state case 1: @@ -7253,7 +7423,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DownloadCacheRequest); i { + switch v := v.(*UploadArtifactsResponse); i { case 0: return &v.state case 1: @@ -7265,7 +7435,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommandsResponse); i { + switch v := v.(*DownloadCacheRequest); i { case 0: return &v.state case 1: @@ -7277,7 +7447,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportSingleCommandRequest); i { + switch v := v.(*CommandsResponse); i { case 0: return &v.state case 1: @@ -7289,7 +7459,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportSingleCommandResponse); i { + switch v := v.(*ReportSingleCommandRequest); i { case 0: return &v.state case 1: @@ -7301,7 +7471,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAnnotationsCommandRequest); i { + switch v := v.(*ReportSingleCommandResponse); i { case 0: return &v.state case 1: @@ -7313,7 +7483,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Annotation); i { + switch v := v.(*ReportAnnotationsCommandRequest); i { case 0: return &v.state case 1: @@ -7325,7 +7495,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HeartbeatRequest); i { + switch v := v.(*Annotation); i { case 0: return &v.state case 1: @@ -7337,7 +7507,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HeartbeatResponse); i { + switch v := v.(*HeartbeatRequest); i { case 0: return &v.state case 1: @@ -7349,7 +7519,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheInfoRequest); i { + switch v := v.(*HeartbeatResponse); i { case 0: return &v.state case 1: @@ -7361,7 +7531,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheInfo); i { + switch v := v.(*CacheInfoRequest); i { case 0: return &v.state case 1: @@ -7373,7 +7543,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheInfoResponse); i { + switch v := v.(*CacheInfo); i { case 0: return &v.state case 1: @@ -7385,7 +7555,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAgentProblemRequest); i { + switch v := v.(*CacheInfoResponse); i { case 0: return &v.state case 1: @@ -7397,7 +7567,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportStopHookRequest); i { + switch v := v.(*ReportAgentProblemRequest); i { case 0: return &v.state case 1: @@ -7409,7 +7579,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAgentSignalRequest); i { + switch v := v.(*ReportStopHookRequest); i { case 0: return &v.state case 1: @@ -7421,7 +7591,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAgentLogsRequest); i { + switch v := v.(*ReportAgentSignalRequest); i { case 0: return &v.state case 1: @@ -7433,7 +7603,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheRetrievalAttempt); i { + switch v := v.(*ReportAgentLogsRequest); i { case 0: return &v.state case 1: @@ -7445,7 +7615,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAgentFinishedRequest); i { + switch v := v.(*CacheRetrievalAttempt); i { case 0: return &v.state case 1: @@ -7457,7 +7627,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportAgentFinishedResponse); i { + switch v := v.(*ReportAgentFinishedRequest); i { case 0: return &v.state case 1: @@ -7469,7 +7639,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParseConfigRequest); i { + switch v := v.(*ReportAgentFinishedResponse); i { case 0: return &v.state case 1: @@ -7481,7 +7651,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ParseConfigResponse); i { + switch v := v.(*ParseConfigRequest); i { case 0: return &v.state case 1: @@ -7493,7 +7663,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Task); i { + switch v := v.(*ParseConfigResponse); i { case 0: return &v.state case 1: @@ -7505,7 +7675,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Command); i { + switch v := v.(*Task); i { case 0: return &v.state case 1: @@ -7517,7 +7687,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExitInstruction); i { + switch v := v.(*Command); i { case 0: return &v.state case 1: @@ -7529,7 +7699,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScriptInstruction); i { + switch v := v.(*ExitInstruction); i { case 0: return &v.state case 1: @@ -7541,7 +7711,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BackgroundScriptInstruction); i { + switch v := v.(*ScriptInstruction); i { case 0: return &v.state case 1: @@ -7553,7 +7723,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheInstruction); i { + switch v := v.(*BackgroundScriptInstruction); i { case 0: return &v.state case 1: @@ -7565,7 +7735,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UploadCacheInstruction); i { + switch v := v.(*CacheInstruction); i { case 0: return &v.state case 1: @@ -7577,7 +7747,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloneInstruction); i { + switch v := v.(*UploadCacheInstruction); i { case 0: return &v.state case 1: @@ -7589,7 +7759,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileInstruction); i { + switch v := v.(*CloneInstruction); i { case 0: return &v.state case 1: @@ -7601,7 +7771,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactsInstruction); i { + switch v := v.(*FileInstruction); i { case 0: return &v.state case 1: @@ -7613,7 +7783,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PipeInstance); i { + switch v := v.(*ArtifactsInstruction); i { case 0: return &v.state case 1: @@ -7625,7 +7795,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerInstance); i { + switch v := v.(*PipeInstance); i { case 0: return &v.state case 1: @@ -7637,7 +7807,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortMapping); i { + switch v := v.(*ContainerInstance); i { case 0: return &v.state case 1: @@ -7649,7 +7819,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AdditionalContainer); i { + switch v := v.(*PortMapping); i { case 0: return &v.state case 1: @@ -7661,7 +7831,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrebuiltImageInstance); i { + switch v := v.(*AdditionalContainer); i { case 0: return &v.state case 1: @@ -7673,7 +7843,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Volume); i { + switch v := v.(*PrebuiltImageInstance); i { case 0: return &v.state case 1: @@ -7685,7 +7855,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Isolation); i { + switch v := v.(*Volume); i { case 0: return &v.state case 1: @@ -7697,7 +7867,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PersistentWorkerInstance); i { + switch v := v.(*Isolation); i { case 0: return &v.state case 1: @@ -7709,6 +7879,18 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersistentWorkerInstance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cirrus_ci_service_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DockerBuilder); i { case 0: return &v.state @@ -7720,8 +7902,8 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PollResponse_AgentAwareTask); i { + file_cirrus_ci_service_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateURLResponse); i { case 0: return &v.state case 1: @@ -7733,7 +7915,7 @@ func file_cirrus_ci_service_proto_init() { } } file_cirrus_ci_service_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogEntry_LogKey); i { + switch v := v.(*PollResponse_AgentAwareTask); i { case 0: return &v.state case 1: @@ -7744,8 +7926,8 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheEntry_CacheKey); i { + file_cirrus_ci_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogEntry_LogKey); i { case 0: return &v.state case 1: @@ -7756,7 +7938,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactEntry_ArtifactsUpload); i { case 0: return &v.state @@ -7768,7 +7950,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactEntry_ArtifactChunk); i { case 0: return &v.state @@ -7780,7 +7962,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Annotation_FileLocation); i { case 0: return &v.state @@ -7792,7 +7974,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CacheRetrievalAttempt_Hit); i { case 0: return &v.state @@ -7804,7 +7986,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CacheRetrievalAttempt_Miss); i { case 0: return &v.state @@ -7816,7 +7998,19 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportAgentFinishedRequest_CommandResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cirrus_ci_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Task_Metadata); i { case 0: return &v.state @@ -7828,7 +8022,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Task_Instance); i { case 0: return &v.state @@ -7840,7 +8034,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Isolation_None); i { case 0: return &v.state @@ -7852,7 +8046,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Isolation_Parallels); i { case 0: return &v.state @@ -7864,7 +8058,7 @@ func file_cirrus_ci_service_proto_init() { return nil } } - file_cirrus_ci_service_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_cirrus_ci_service_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Isolation_Container); i { case 0: return &v.state @@ -7881,19 +8075,19 @@ func file_cirrus_ci_service_proto_init() { (*LogEntry_Key)(nil), (*LogEntry_Chunk)(nil), } - file_cirrus_ci_service_proto_msgTypes[22].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[23].OneofWrappers = []interface{}{ (*CacheEntry_Key)(nil), (*CacheEntry_Chunk)(nil), } - file_cirrus_ci_service_proto_msgTypes[24].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[25].OneofWrappers = []interface{}{ (*ArtifactEntry_ArtifactsUpload_)(nil), (*ArtifactEntry_Chunk)(nil), } - file_cirrus_ci_service_proto_msgTypes[41].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[42].OneofWrappers = []interface{}{ (*CacheRetrievalAttempt_Hit_)(nil), (*CacheRetrievalAttempt_Miss_)(nil), } - file_cirrus_ci_service_proto_msgTypes[47].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[48].OneofWrappers = []interface{}{ (*Command_ExitInstruction)(nil), (*Command_ScriptInstruction)(nil), (*Command_BackgroundScriptInstruction)(nil), @@ -7903,10 +8097,10 @@ func file_cirrus_ci_service_proto_init() { (*Command_FileInstruction)(nil), (*Command_ArtifactsInstruction)(nil), } - file_cirrus_ci_service_proto_msgTypes[54].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[55].OneofWrappers = []interface{}{ (*FileInstruction_FromEnvironmentVariable)(nil), } - file_cirrus_ci_service_proto_msgTypes[62].OneofWrappers = []interface{}{ + file_cirrus_ci_service_proto_msgTypes[63].OneofWrappers = []interface{}{ (*Isolation_None_)(nil), (*Isolation_Parallels_)(nil), (*Isolation_Container_)(nil), @@ -7917,7 +8111,7 @@ func file_cirrus_ci_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cirrus_ci_service_proto_rawDesc, NumEnums: 6, - NumMessages: 95, + NumMessages: 97, NumExtensions: 0, NumServices: 4, }, diff --git a/api/cirrus_ci_service_grpc.pb.go b/api/cirrus_ci_service_grpc.pb.go index 9d7cab1..b9bb209 100644 --- a/api/cirrus_ci_service_grpc.pb.go +++ b/api/cirrus_ci_service_grpc.pb.go @@ -526,6 +526,8 @@ type CirrusCIServiceClient interface { ReportAgentLogs(ctx context.Context, in *ReportAgentLogsRequest, opts ...grpc.CallOption) (*empty.Empty, error) ReportAgentFinished(ctx context.Context, in *ReportAgentFinishedRequest, opts ...grpc.CallOption) (*ReportAgentFinishedResponse, error) ParseConfig(ctx context.Context, in *ParseConfigRequest, opts ...grpc.CallOption) (*ParseConfigResponse, error) + GenerateCacheUploadURL(ctx context.Context, in *CacheKey, opts ...grpc.CallOption) (*GenerateURLResponse, error) + GenerateCacheDownloadURL(ctx context.Context, in *CacheKey, opts ...grpc.CallOption) (*GenerateURLResponse, error) } type cirrusCIServiceClient struct { @@ -812,6 +814,24 @@ func (c *cirrusCIServiceClient) ParseConfig(ctx context.Context, in *ParseConfig return out, nil } +func (c *cirrusCIServiceClient) GenerateCacheUploadURL(ctx context.Context, in *CacheKey, opts ...grpc.CallOption) (*GenerateURLResponse, error) { + out := new(GenerateURLResponse) + err := c.cc.Invoke(ctx, "/org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService/GenerateCacheUploadURL", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *cirrusCIServiceClient) GenerateCacheDownloadURL(ctx context.Context, in *CacheKey, opts ...grpc.CallOption) (*GenerateURLResponse, error) { + out := new(GenerateURLResponse) + err := c.cc.Invoke(ctx, "/org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService/GenerateCacheDownloadURL", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // CirrusCIServiceServer is the server API for CirrusCIService service. // All implementations must embed UnimplementedCirrusCIServiceServer // for forward compatibility @@ -833,6 +853,8 @@ type CirrusCIServiceServer interface { ReportAgentLogs(context.Context, *ReportAgentLogsRequest) (*empty.Empty, error) ReportAgentFinished(context.Context, *ReportAgentFinishedRequest) (*ReportAgentFinishedResponse, error) ParseConfig(context.Context, *ParseConfigRequest) (*ParseConfigResponse, error) + GenerateCacheUploadURL(context.Context, *CacheKey) (*GenerateURLResponse, error) + GenerateCacheDownloadURL(context.Context, *CacheKey) (*GenerateURLResponse, error) mustEmbedUnimplementedCirrusCIServiceServer() } @@ -891,6 +913,12 @@ func (UnimplementedCirrusCIServiceServer) ReportAgentFinished(context.Context, * func (UnimplementedCirrusCIServiceServer) ParseConfig(context.Context, *ParseConfigRequest) (*ParseConfigResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ParseConfig not implemented") } +func (UnimplementedCirrusCIServiceServer) GenerateCacheUploadURL(context.Context, *CacheKey) (*GenerateURLResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateCacheUploadURL not implemented") +} +func (UnimplementedCirrusCIServiceServer) GenerateCacheDownloadURL(context.Context, *CacheKey) (*GenerateURLResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateCacheDownloadURL not implemented") +} func (UnimplementedCirrusCIServiceServer) mustEmbedUnimplementedCirrusCIServiceServer() {} // UnsafeCirrusCIServiceServer may be embedded to opt out of forward compatibility for this service. @@ -1245,6 +1273,42 @@ func _CirrusCIService_ParseConfig_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _CirrusCIService_GenerateCacheUploadURL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CacheKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CirrusCIServiceServer).GenerateCacheUploadURL(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService/GenerateCacheUploadURL", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CirrusCIServiceServer).GenerateCacheUploadURL(ctx, req.(*CacheKey)) + } + return interceptor(ctx, in, info, handler) +} + +func _CirrusCIService_GenerateCacheDownloadURL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CacheKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CirrusCIServiceServer).GenerateCacheDownloadURL(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/org.cirruslabs.ci.services.cirruscigrpc.CirrusCIService/GenerateCacheDownloadURL", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CirrusCIServiceServer).GenerateCacheDownloadURL(ctx, req.(*CacheKey)) + } + return interceptor(ctx, in, info, handler) +} + // CirrusCIService_ServiceDesc is the grpc.ServiceDesc for CirrusCIService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1300,6 +1364,14 @@ var CirrusCIService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ParseConfig", Handler: _CirrusCIService_ParseConfig_Handler, }, + { + MethodName: "GenerateCacheUploadURL", + Handler: _CirrusCIService_GenerateCacheUploadURL_Handler, + }, + { + MethodName: "GenerateCacheDownloadURL", + Handler: _CirrusCIService_GenerateCacheDownloadURL_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/internal/http_cache/http_cache.go b/internal/http_cache/http_cache.go index 9e281cd..7059ccb 100644 --- a/internal/http_cache/http_cache.go +++ b/internal/http_cache/http_cache.go @@ -122,36 +122,17 @@ func checkCacheExists(w http.ResponseWriter, cacheKey string) { } func downloadCache(w http.ResponseWriter, r *http.Request, cacheKey string) { - downloadCacheRequest := api.DownloadCacheRequest{ + key := api.CacheKey{ TaskIdentification: cirrusTaskIdentification, CacheKey: cacheKey, } - cacheStream, err := client.CirrusClient.DownloadCache(context.Background(), &downloadCacheRequest) + response, err := client.CirrusClient.GenerateCacheDownloadURL(context.Background(), &key) if err != nil { log.Println("Not found!") w.WriteHeader(http.StatusNotFound) } else { - for { - in, err := cacheStream.Recv() - if in != nil && in.RedirectUrl != "" { - log.Printf("Redirecting cache download of %s\n", cacheKey) - proxyDownloadFromURL(w, in.RedirectUrl) - break - } - if in != nil && in.Data != nil && len(in.Data) > 0 { - _, _ = w.Write(in.Data) - } - if err == io.EOF { - w.WriteHeader(http.StatusOK) - log.Printf("Finished downloading %s...\n", cacheKey) - break - } - if err != nil { - log.Printf("Failed to download %s cache! %s", cacheKey, err) - w.WriteHeader(http.StatusNotFound) - break - } - } + log.Printf("Redirecting cache download of %s\n", cacheKey) + proxyDownloadFromURL(w, response.Url) } } @@ -171,66 +152,31 @@ func proxyDownloadFromURL(w http.ResponseWriter, url string) { bytesRead, err := io.Copy(w, resp.Body) if err != nil { log.Printf("Proxying cache download for %s failed with %v\n", url, err) - w.WriteHeader(http.StatusInternalServerError) } else { log.Printf("Proxying cache %s succeded! Proxies %d bytes!\n", url, bytesRead) - w.WriteHeader(http.StatusOK) } } func uploadCache(w http.ResponseWriter, r *http.Request, cacheKey string) { - uploadCacheClient, err := client.CirrusClient.UploadCache(context.Background()) + key := api.CacheKey{ + TaskIdentification: cirrusTaskIdentification, + CacheKey: cacheKey, + } + response, err := client.CirrusClient.GenerateCacheUploadURL(context.Background(), &key) if err != nil { errorMsg := fmt.Sprintf("Failed to initialized uploading of %s cache! %s", cacheKey, err) log.Print(errorMsg) - w.Write([]byte(errorMsg)) w.WriteHeader(http.StatusInternalServerError) + w.Write([]byte(errorMsg)) return } - cacheKeyMsg := api.CacheEntry_CacheKey{TaskIdentification: cirrusTaskIdentification, CacheKey: cacheKey} - keyMsg := api.CacheEntry_Key{Key: &cacheKeyMsg} - uploadCacheClient.Send(&api.CacheEntry{Value: &keyMsg}) - - readBufferSize := int(1024 * 1024) - readBuffer := make([]byte, readBufferSize) - bufferedBodyReader := bufio.NewReaderSize(r.Body, readBufferSize) - bytesUploaded := 0 - for { - n, err := bufferedBodyReader.Read(readBuffer) - - if n > 0 { - chunkMsg := api.CacheEntry_Chunk{Chunk: &api.DataChunk{Data: readBuffer[:n]}} - err := uploadCacheClient.Send(&api.CacheEntry{Value: &chunkMsg}) - if err != nil { - errorMsg := fmt.Sprintf("Failed to send a chunk: %s!", err) - log.Print(errorMsg) - w.Write([]byte(errorMsg)) - w.WriteHeader(http.StatusInternalServerError) - uploadCacheClient.CloseAndRecv() - break - } - bytesUploaded += n - } - - if err == io.EOF || n == 0 { - uploadCacheClient.CloseAndRecv() - w.WriteHeader(http.StatusCreated) - break - } - if err != nil { - errorMsg := fmt.Sprintf("Failed read cache body! %s", err) - log.Print(errorMsg) - w.Write([]byte(errorMsg)) - w.WriteHeader(http.StatusBadRequest) - uploadCacheClient.CloseAndRecv() - break - } - } - if bytesUploaded < 1024 { - w.Write([]byte(fmt.Sprintf("Uploaded %d bytes.\n", bytesUploaded))) - } else if bytesUploaded < 1024*1024 { - w.Write([]byte(fmt.Sprintf("Uploaded %dKb.\n", bytesUploaded/1024))) - } else { - w.Write([]byte(fmt.Sprintf("Uploaded %dMb.\n", bytesUploaded/1024/1024))) + post, err := httpProxyClient.Post(response.Url, "application/octet-stream", bufio.NewReader(r.Body)) + if err != nil { + errorMsg := fmt.Sprintf("Failed to proxy upload of %s cache! %s", cacheKey, err) + log.Print(errorMsg) + w.WriteHeader(http.StatusInternalServerError) + w.Write([]byte(errorMsg)) + return } + w.WriteHeader(post.StatusCode) }