From e60e493f111dfebfb4339c86a7fe0aca7e94e808 Mon Sep 17 00:00:00 2001 From: monkey92t Date: Sat, 15 Aug 2026 22:16:51 +0800 Subject: [PATCH] feat: add OpenCSG download support Co-Authored-By: monkey92t --- Cargo.lock | 2 +- Cargo.toml | 2 +- pkg/apis/common/v2/common.pb.go | 510 +++-- pkg/apis/common/v2/common.pb.validate.go | 190 ++ pkg/apis/common/v2/common.proto | 21 + pkg/apis/dfdaemon/v2/dfdaemon.pb.go | 2135 +++++++++--------- pkg/apis/dfdaemon/v2/dfdaemon.pb.validate.go | 33 + pkg/apis/dfdaemon/v2/dfdaemon.proto | 2 + proto/common.proto | 13 + proto/dfdaemon.proto | 2 + python/dragonfly_api/common_pb2.py | 46 +- python/dragonfly_api/common_pb2.pyi | 16 +- python/dragonfly_api/dfdaemon_pb2.py | 184 +- python/dragonfly_api/dfdaemon_pb2.pyi | 6 +- src/common.v2.rs | 18 + src/descriptor.bin | Bin 211731 -> 212641 bytes src/dfdaemon.v2.rs | 3 + 17 files changed, 1801 insertions(+), 1382 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 69539d41..aaba16cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,7 +119,7 @@ dependencies = [ [[package]] name = "dragonfly-api" -version = "2.3.0" +version = "2.3.1" dependencies = [ "prost", "prost-types", diff --git a/Cargo.toml b/Cargo.toml index 91d500c2..7f5d53a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dragonfly-api" -version = "2.3.0" +version = "2.3.1" authors = ["Gaius "] edition = "2021" license = "Apache-2.0" diff --git a/pkg/apis/common/v2/common.pb.go b/pkg/apis/common/v2/common.pb.go index 428924ca..b6f9d0cd 100644 --- a/pkg/apis/common/v2/common.pb.go +++ b/pkg/apis/common/v2/common.pb.go @@ -2719,6 +2719,8 @@ type Download struct { // If metadata_only is true, the peer registers with the scheduler only to report // the metadata of the task, no need to be scheduled for downloading pieces. MetadataOnly bool `protobuf:"varint,33,opt,name=metadata_only,json=metadataOnly,proto3" json:"metadata_only,omitempty"` + // OpenCSG protocol information. + OpenCsg *OpenCSG `protobuf:"bytes,34,opt,name=open_csg,json=openCsg,proto3,oneof" json:"open_csg,omitempty"` } func (x *Download) Reset() { @@ -2977,6 +2979,13 @@ func (x *Download) GetMetadataOnly() bool { return false } +func (x *Download) GetOpenCsg() *OpenCSG { + if x != nil { + return x.OpenCsg + } + return nil +} + // Object Storage related information. type ObjectStorage struct { state protoimpl.MessageState @@ -3283,6 +3292,74 @@ func (x *ModelScope) GetBaseUrl() string { return "" } +// OpenCSG related information. +type OpenCSG struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Access token for OpenCSG Hub. + Token *string `protobuf:"bytes,1,opt,name=token,proto3,oneof" json:"token,omitempty"` + // Revision of the OpenCSG repository. It can be a branch name, tag name, or commit hash. This field must not be empty. + // Clients should use "main" when the user does not specify a revision. + Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"` + // Base URL of OpenCSG Hub. If not specified, it defaults to https://hub.opencsg.com/csg/. + BaseUrl *string `protobuf:"bytes,3,opt,name=base_url,json=baseUrl,proto3,oneof" json:"base_url,omitempty"` +} + +func (x *OpenCSG) Reset() { + *x = OpenCSG{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OpenCSG) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OpenCSG) ProtoMessage() {} + +func (x *OpenCSG) ProtoReflect() protoreflect.Message { + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OpenCSG.ProtoReflect.Descriptor instead. +func (*OpenCSG) Descriptor() ([]byte, []int) { + return file_pkg_apis_common_v2_common_proto_rawDescGZIP(), []int{23} +} + +func (x *OpenCSG) GetToken() string { + if x != nil && x.Token != nil { + return *x.Token + } + return "" +} + +func (x *OpenCSG) GetRevision() string { + if x != nil { + return x.Revision + } + return "" +} + +func (x *OpenCSG) GetBaseUrl() string { + if x != nil && x.BaseUrl != nil { + return *x.BaseUrl + } + return "" +} + // Range represents download range. type Range struct { state protoimpl.MessageState @@ -3298,7 +3375,7 @@ type Range struct { func (x *Range) Reset() { *x = Range{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_apis_common_v2_common_proto_msgTypes[23] + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3311,7 +3388,7 @@ func (x *Range) String() string { func (*Range) ProtoMessage() {} func (x *Range) ProtoReflect() protoreflect.Message { - mi := &file_pkg_apis_common_v2_common_proto_msgTypes[23] + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3324,7 +3401,7 @@ func (x *Range) ProtoReflect() protoreflect.Message { // Deprecated: Use Range.ProtoReflect.Descriptor instead. func (*Range) Descriptor() ([]byte, []int) { - return file_pkg_apis_common_v2_common_proto_rawDescGZIP(), []int{23} + return file_pkg_apis_common_v2_common_proto_rawDescGZIP(), []int{24} } func (x *Range) GetStart() uint64 { @@ -3370,7 +3447,7 @@ type Piece struct { func (x *Piece) Reset() { *x = Piece{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_apis_common_v2_common_proto_msgTypes[24] + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3383,7 +3460,7 @@ func (x *Piece) String() string { func (*Piece) ProtoMessage() {} func (x *Piece) ProtoReflect() protoreflect.Message { - mi := &file_pkg_apis_common_v2_common_proto_msgTypes[24] + mi := &file_pkg_apis_common_v2_common_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3396,7 +3473,7 @@ func (x *Piece) ProtoReflect() protoreflect.Message { // Deprecated: Use Piece.ProtoReflect.Descriptor instead. func (*Piece) Descriptor() ([]byte, []int) { - return file_pkg_apis_common_v2_common_proto_rawDescGZIP(), []int{24} + return file_pkg_apis_common_v2_common_proto_rawDescGZIP(), []int{25} } func (x *Piece) GetNumber() uint32 { @@ -4016,7 +4093,7 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{ 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xd0, 0x10, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x91, 0x11, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, @@ -4125,78 +4202,92 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{ 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, - 0x6e, 0x6c, 0x79, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, - 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x61, - 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, - 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x52, 0x0d, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, - 0x6f, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x22, 0x8d, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x65, 0x67, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, - 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, - 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x30, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, - 0x02, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x38, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x03, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, - 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x04, - 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, - 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x70, - 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, 0x20, + 0x6e, 0x6c, 0x79, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x73, 0x67, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x53, 0x47, 0x48, 0x11, 0x52, 0x07, 0x6f, 0x70, 0x65, + 0x6e, 0x43, 0x73, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, + 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, + 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, + 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, + 0x63, 0x73, 0x67, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x52, 0x0d, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x22, 0x8d, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, + 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, + 0x01, 0x48, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x48, 0x02, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x03, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, - 0x06, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, - 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x69, - 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x22, 0x57, 0x0a, 0x04, 0x48, 0x44, 0x46, 0x53, 0x12, - 0x3a, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, - 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x9d, 0x01, 0x0a, 0x0b, 0x48, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x65, + 0x04, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, + 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, + 0x48, 0x06, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x07, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, + 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x12, 0x69, 0x6e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, + 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x22, 0x57, 0x0a, 0x04, 0x48, 0x44, 0x46, 0x53, + 0x12, 0x3a, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, + 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x0b, 0x48, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, + 0x65, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, + 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, + 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, + 0x6c, 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, @@ -4206,78 +4297,78 @@ var file_pkg_apis_common_v2_common_proto_rawDesc = []byte{ 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, - 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, - 0x25, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, - 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, - 0x73, 0x65, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, - 0x35, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbe, 0x04, 0x0a, 0x05, 0x50, 0x69, 0x65, 0x63, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0xab, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, 0x01, 0x72, 0x8b, - 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, - 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, - 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, - 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, - 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, - 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x62, 0x6c, - 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, - 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, - 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x7a, 0x04, 0x10, 0x01, 0x70, 0x01, - 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, - 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x0b, - 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, - 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, - 0x01, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, - 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2a, 0x43, 0x0a, 0x09, 0x53, 0x69, 0x7a, 0x65, 0x53, - 0x63, 0x6f, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, - 0x49, 0x4e, 0x59, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, - 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x10, 0x04, 0x2a, 0x49, 0x0a, 0x08, - 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, - 0x44, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, - 0x54, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, - 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, - 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x03, 0x2a, 0x42, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, - 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, - 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, - 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x08, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x30, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x31, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4c, - 0x45, 0x56, 0x45, 0x4c, 0x33, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x34, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x35, 0x10, 0x05, 0x12, - 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x36, 0x10, 0x06, 0x42, 0x29, 0x5a, 0x27, 0x64, - 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, - 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x22, 0x99, 0x01, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x53, 0x47, 0x12, 0x25, 0x0a, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, + 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, + 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x35, 0x0a, 0x05, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xbe, 0x04, 0x0a, 0x05, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, + 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0xab, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, + 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, + 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, + 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, + 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, + 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, + 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x62, 0x6c, 0x61, 0x6b, 0x65, + 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, + 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, + 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x12, 0x28, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x7a, 0x04, 0x10, 0x01, 0x70, 0x01, 0x48, 0x01, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x0b, 0x74, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, + 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x04, + 0x63, 0x6f, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x2a, 0x43, 0x0a, 0x09, 0x53, 0x69, 0x7a, 0x65, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x49, 0x4e, 0x59, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x10, 0x04, 0x2a, 0x49, 0x0a, 0x08, 0x54, 0x61, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, + 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, + 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, + 0x54, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x41, 0x43, + 0x48, 0x45, 0x10, 0x03, 0x2a, 0x42, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x43, 0x41, + 0x4c, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x30, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x31, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x32, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, + 0x4c, 0x33, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x34, 0x10, 0x04, + 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x35, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x36, 0x10, 0x06, 0x42, 0x29, 0x5a, 0x27, 0x64, 0x37, 0x79, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4293,7 +4384,7 @@ func file_pkg_apis_common_v2_common_proto_rawDescGZIP() []byte { } var file_pkg_apis_common_v2_common_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_pkg_apis_common_v2_common_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_pkg_apis_common_v2_common_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_pkg_apis_common_v2_common_proto_goTypes = []interface{}{ (SizeScope)(0), // 0: common.v2.SizeScope (TaskType)(0), // 1: common.v2.TaskType @@ -4322,59 +4413,60 @@ var file_pkg_apis_common_v2_common_proto_goTypes = []interface{}{ (*HDFS)(nil), // 24: common.v2.HDFS (*HuggingFace)(nil), // 25: common.v2.HuggingFace (*ModelScope)(nil), // 26: common.v2.ModelScope - (*Range)(nil), // 27: common.v2.Range - (*Piece)(nil), // 28: common.v2.Piece - nil, // 29: common.v2.Task.RequestHeaderEntry - nil, // 30: common.v2.CacheTask.RequestHeaderEntry - nil, // 31: common.v2.Download.RequestHeaderEntry - (*durationpb.Duration)(nil), // 32: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (*OpenCSG)(nil), // 27: common.v2.OpenCSG + (*Range)(nil), // 28: common.v2.Range + (*Piece)(nil), // 29: common.v2.Piece + nil, // 30: common.v2.Task.RequestHeaderEntry + nil, // 31: common.v2.CacheTask.RequestHeaderEntry + nil, // 32: common.v2.Download.RequestHeaderEntry + (*durationpb.Duration)(nil), // 33: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp } var file_pkg_apis_common_v2_common_proto_depIdxs = []int32{ - 27, // 0: common.v2.Peer.range:type_name -> common.v2.Range + 28, // 0: common.v2.Peer.range:type_name -> common.v2.Range 3, // 1: common.v2.Peer.priority:type_name -> common.v2.Priority - 28, // 2: common.v2.Peer.pieces:type_name -> common.v2.Piece - 32, // 3: common.v2.Peer.cost:type_name -> google.protobuf.Duration + 29, // 2: common.v2.Peer.pieces:type_name -> common.v2.Piece + 33, // 3: common.v2.Peer.cost:type_name -> google.protobuf.Duration 8, // 4: common.v2.Peer.task:type_name -> common.v2.Task 12, // 5: common.v2.Peer.host:type_name -> common.v2.Host - 33, // 6: common.v2.Peer.created_at:type_name -> google.protobuf.Timestamp - 33, // 7: common.v2.Peer.updated_at:type_name -> google.protobuf.Timestamp - 27, // 8: common.v2.CachePeer.range:type_name -> common.v2.Range + 34, // 6: common.v2.Peer.created_at:type_name -> google.protobuf.Timestamp + 34, // 7: common.v2.Peer.updated_at:type_name -> google.protobuf.Timestamp + 28, // 8: common.v2.CachePeer.range:type_name -> common.v2.Range 3, // 9: common.v2.CachePeer.priority:type_name -> common.v2.Priority - 28, // 10: common.v2.CachePeer.pieces:type_name -> common.v2.Piece - 32, // 11: common.v2.CachePeer.cost:type_name -> google.protobuf.Duration + 29, // 10: common.v2.CachePeer.pieces:type_name -> common.v2.Piece + 33, // 11: common.v2.CachePeer.cost:type_name -> google.protobuf.Duration 9, // 12: common.v2.CachePeer.task:type_name -> common.v2.CacheTask 12, // 13: common.v2.CachePeer.host:type_name -> common.v2.Host - 33, // 14: common.v2.CachePeer.created_at:type_name -> google.protobuf.Timestamp - 33, // 15: common.v2.CachePeer.updated_at:type_name -> google.protobuf.Timestamp - 32, // 16: common.v2.PersistentPeer.cost:type_name -> google.protobuf.Duration + 34, // 14: common.v2.CachePeer.created_at:type_name -> google.protobuf.Timestamp + 34, // 15: common.v2.CachePeer.updated_at:type_name -> google.protobuf.Timestamp + 33, // 16: common.v2.PersistentPeer.cost:type_name -> google.protobuf.Duration 10, // 17: common.v2.PersistentPeer.task:type_name -> common.v2.PersistentTask 12, // 18: common.v2.PersistentPeer.host:type_name -> common.v2.Host - 33, // 19: common.v2.PersistentPeer.created_at:type_name -> google.protobuf.Timestamp - 33, // 20: common.v2.PersistentPeer.updated_at:type_name -> google.protobuf.Timestamp - 32, // 21: common.v2.PersistentCachePeer.cost:type_name -> google.protobuf.Duration + 34, // 19: common.v2.PersistentPeer.created_at:type_name -> google.protobuf.Timestamp + 34, // 20: common.v2.PersistentPeer.updated_at:type_name -> google.protobuf.Timestamp + 33, // 21: common.v2.PersistentCachePeer.cost:type_name -> google.protobuf.Duration 11, // 22: common.v2.PersistentCachePeer.task:type_name -> common.v2.PersistentCacheTask 12, // 23: common.v2.PersistentCachePeer.host:type_name -> common.v2.Host - 33, // 24: common.v2.PersistentCachePeer.created_at:type_name -> google.protobuf.Timestamp - 33, // 25: common.v2.PersistentCachePeer.updated_at:type_name -> google.protobuf.Timestamp + 34, // 24: common.v2.PersistentCachePeer.created_at:type_name -> google.protobuf.Timestamp + 34, // 25: common.v2.PersistentCachePeer.updated_at:type_name -> google.protobuf.Timestamp 1, // 26: common.v2.Task.type:type_name -> common.v2.TaskType - 29, // 27: common.v2.Task.request_header:type_name -> common.v2.Task.RequestHeaderEntry + 30, // 27: common.v2.Task.request_header:type_name -> common.v2.Task.RequestHeaderEntry 0, // 28: common.v2.Task.size_scope:type_name -> common.v2.SizeScope - 28, // 29: common.v2.Task.pieces:type_name -> common.v2.Piece - 33, // 30: common.v2.Task.created_at:type_name -> google.protobuf.Timestamp - 33, // 31: common.v2.Task.updated_at:type_name -> google.protobuf.Timestamp + 29, // 29: common.v2.Task.pieces:type_name -> common.v2.Piece + 34, // 30: common.v2.Task.created_at:type_name -> google.protobuf.Timestamp + 34, // 31: common.v2.Task.updated_at:type_name -> google.protobuf.Timestamp 1, // 32: common.v2.CacheTask.type:type_name -> common.v2.TaskType - 30, // 33: common.v2.CacheTask.request_header:type_name -> common.v2.CacheTask.RequestHeaderEntry + 31, // 33: common.v2.CacheTask.request_header:type_name -> common.v2.CacheTask.RequestHeaderEntry 0, // 34: common.v2.CacheTask.size_scope:type_name -> common.v2.SizeScope - 28, // 35: common.v2.CacheTask.pieces:type_name -> common.v2.Piece - 33, // 36: common.v2.CacheTask.created_at:type_name -> google.protobuf.Timestamp - 33, // 37: common.v2.CacheTask.updated_at:type_name -> google.protobuf.Timestamp - 32, // 38: common.v2.PersistentTask.ttl:type_name -> google.protobuf.Duration - 33, // 39: common.v2.PersistentTask.created_at:type_name -> google.protobuf.Timestamp - 33, // 40: common.v2.PersistentTask.updated_at:type_name -> google.protobuf.Timestamp - 32, // 41: common.v2.PersistentCacheTask.ttl:type_name -> google.protobuf.Duration - 33, // 42: common.v2.PersistentCacheTask.created_at:type_name -> google.protobuf.Timestamp - 33, // 43: common.v2.PersistentCacheTask.updated_at:type_name -> google.protobuf.Timestamp + 29, // 35: common.v2.CacheTask.pieces:type_name -> common.v2.Piece + 34, // 36: common.v2.CacheTask.created_at:type_name -> google.protobuf.Timestamp + 34, // 37: common.v2.CacheTask.updated_at:type_name -> google.protobuf.Timestamp + 33, // 38: common.v2.PersistentTask.ttl:type_name -> google.protobuf.Duration + 34, // 39: common.v2.PersistentTask.created_at:type_name -> google.protobuf.Timestamp + 34, // 40: common.v2.PersistentTask.updated_at:type_name -> google.protobuf.Timestamp + 33, // 41: common.v2.PersistentCacheTask.ttl:type_name -> google.protobuf.Duration + 34, // 42: common.v2.PersistentCacheTask.created_at:type_name -> google.protobuf.Timestamp + 34, // 43: common.v2.PersistentCacheTask.updated_at:type_name -> google.protobuf.Timestamp 13, // 44: common.v2.Host.cpu:type_name -> common.v2.CPU 16, // 45: common.v2.Host.memory:type_name -> common.v2.Memory 18, // 46: common.v2.Host.network:type_name -> common.v2.Network @@ -4384,23 +4476,24 @@ var file_pkg_apis_common_v2_common_proto_depIdxs = []int32{ 14, // 50: common.v2.CPU.cgroup:type_name -> common.v2.CgroupCPU 17, // 51: common.v2.Memory.cgroup:type_name -> common.v2.CgroupMemory 20, // 52: common.v2.Disk.cgroup:type_name -> common.v2.CgroupDisk - 27, // 53: common.v2.Download.range:type_name -> common.v2.Range + 28, // 53: common.v2.Download.range:type_name -> common.v2.Range 1, // 54: common.v2.Download.type:type_name -> common.v2.TaskType 3, // 55: common.v2.Download.priority:type_name -> common.v2.Priority - 31, // 56: common.v2.Download.request_header:type_name -> common.v2.Download.RequestHeaderEntry - 32, // 57: common.v2.Download.timeout:type_name -> google.protobuf.Duration + 32, // 56: common.v2.Download.request_header:type_name -> common.v2.Download.RequestHeaderEntry + 33, // 57: common.v2.Download.timeout:type_name -> google.protobuf.Duration 23, // 58: common.v2.Download.object_storage:type_name -> common.v2.ObjectStorage 24, // 59: common.v2.Download.hdfs:type_name -> common.v2.HDFS 25, // 60: common.v2.Download.hugging_face:type_name -> common.v2.HuggingFace 26, // 61: common.v2.Download.model_scope:type_name -> common.v2.ModelScope - 2, // 62: common.v2.Piece.traffic_type:type_name -> common.v2.TrafficType - 32, // 63: common.v2.Piece.cost:type_name -> google.protobuf.Duration - 33, // 64: common.v2.Piece.created_at:type_name -> google.protobuf.Timestamp - 65, // [65:65] is the sub-list for method output_type - 65, // [65:65] is the sub-list for method input_type - 65, // [65:65] is the sub-list for extension type_name - 65, // [65:65] is the sub-list for extension extendee - 0, // [0:65] is the sub-list for field type_name + 27, // 62: common.v2.Download.open_csg:type_name -> common.v2.OpenCSG + 2, // 63: common.v2.Piece.traffic_type:type_name -> common.v2.TrafficType + 33, // 64: common.v2.Piece.cost:type_name -> google.protobuf.Duration + 34, // 65: common.v2.Piece.created_at:type_name -> google.protobuf.Timestamp + 66, // [66:66] is the sub-list for method output_type + 66, // [66:66] is the sub-list for method input_type + 66, // [66:66] is the sub-list for extension type_name + 66, // [66:66] is the sub-list for extension extendee + 0, // [0:66] is the sub-list for field type_name } func init() { file_pkg_apis_common_v2_common_proto_init() } @@ -4686,7 +4779,7 @@ func file_pkg_apis_common_v2_common_proto_init() { } } file_pkg_apis_common_v2_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Range); i { + switch v := v.(*OpenCSG); i { case 0: return &v.state case 1: @@ -4698,6 +4791,18 @@ func file_pkg_apis_common_v2_common_proto_init() { } } file_pkg_apis_common_v2_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Range); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_apis_common_v2_common_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Piece); i { case 0: return &v.state @@ -4726,14 +4831,15 @@ func file_pkg_apis_common_v2_common_proto_init() { file_pkg_apis_common_v2_common_proto_msgTypes[20].OneofWrappers = []interface{}{} file_pkg_apis_common_v2_common_proto_msgTypes[21].OneofWrappers = []interface{}{} file_pkg_apis_common_v2_common_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_pkg_apis_common_v2_common_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_pkg_apis_common_v2_common_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_pkg_apis_common_v2_common_proto_msgTypes[25].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_apis_common_v2_common_proto_rawDesc, NumEnums: 4, - NumMessages: 28, + NumMessages: 29, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/apis/common/v2/common.pb.validate.go b/pkg/apis/common/v2/common.pb.validate.go index 6c8cdbc9..c7775d23 100644 --- a/pkg/apis/common/v2/common.pb.validate.go +++ b/pkg/apis/common/v2/common.pb.validate.go @@ -4088,6 +4088,39 @@ func (m *Download) validate(all bool) error { } + if m.OpenCsg != nil { + + if all { + switch v := interface{}(m.GetOpenCsg()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, DownloadValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, DownloadValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetOpenCsg()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return DownloadValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if len(errors) > 0 { return DownloadMultiError(errors) } @@ -4848,6 +4881,163 @@ var _ interface { ErrorName() string } = ModelScopeValidationError{} +// Validate checks the field values on OpenCSG with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *OpenCSG) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on OpenCSG with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in OpenCSGMultiError, or nil if none found. +func (m *OpenCSG) ValidateAll() error { + return m.validate(true) +} + +func (m *OpenCSG) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetRevision()) < 1 { + err := OpenCSGValidationError{ + field: "Revision", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.Token != nil { + + if m.GetToken() != "" { + + if utf8.RuneCountInString(m.GetToken()) < 1 { + err := OpenCSGValidationError{ + field: "Token", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + } + + if m.BaseUrl != nil { + + if m.GetBaseUrl() != "" { + + if uri, err := url.Parse(m.GetBaseUrl()); err != nil { + err = OpenCSGValidationError{ + field: "BaseUrl", + reason: "value must be a valid URI", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } else if !uri.IsAbs() { + err := OpenCSGValidationError{ + field: "BaseUrl", + reason: "value must be absolute", + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + } + + if len(errors) > 0 { + return OpenCSGMultiError(errors) + } + + return nil +} + +// OpenCSGMultiError is an error wrapping multiple validation errors returned +// by OpenCSG.ValidateAll() if the designated constraints aren't met. +type OpenCSGMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m OpenCSGMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m OpenCSGMultiError) AllErrors() []error { return m } + +// OpenCSGValidationError is the validation error returned by OpenCSG.Validate +// if the designated constraints aren't met. +type OpenCSGValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e OpenCSGValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e OpenCSGValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e OpenCSGValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e OpenCSGValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e OpenCSGValidationError) ErrorName() string { return "OpenCSGValidationError" } + +// Error satisfies the builtin error interface +func (e OpenCSGValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sOpenCSG.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = OpenCSGValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = OpenCSGValidationError{} + // Validate checks the field values on Range with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. diff --git a/pkg/apis/common/v2/common.proto b/pkg/apis/common/v2/common.proto index f037b2ba..c28265e8 100644 --- a/pkg/apis/common/v2/common.proto +++ b/pkg/apis/common/v2/common.proto @@ -725,6 +725,8 @@ message Download { // If metadata_only is true, the peer registers with the scheduler only to report // the metadata of the task, no need to be scheduled for downloading pieces. bool metadata_only = 33; + // OpenCSG protocol information. + optional OpenCSG open_csg = 34; reserved 21; reserved "load_to_cache"; @@ -817,6 +819,25 @@ message ModelScope { }]; } +// OpenCSG related information. +message OpenCSG { + // Access token for OpenCSG Hub. + optional string token = 1 [(validate.rules).string = { + min_len: 1 + ignore_empty: true + }]; + // Revision of the OpenCSG repository. It can be a branch name, tag name, or commit hash. This field must not be empty. + // Clients should use "main" when the user does not specify a revision. + string revision = 2 [(validate.rules).string = { + min_len: 1 + }]; + // Base URL of OpenCSG Hub. If not specified, it defaults to https://hub.opencsg.com/csg/. + optional string base_url = 3 [(validate.rules).string = { + uri: true + ignore_empty: true + }]; +} + // Range represents download range. message Range { // Start of range. diff --git a/pkg/apis/dfdaemon/v2/dfdaemon.pb.go b/pkg/apis/dfdaemon/v2/dfdaemon.pb.go index 99e1bc6e..5945d6d1 100644 --- a/pkg/apis/dfdaemon/v2/dfdaemon.pb.go +++ b/pkg/apis/dfdaemon/v2/dfdaemon.pb.go @@ -875,6 +875,8 @@ type ListTaskEntriesRequest struct { HuggingFace *v2.HuggingFace `protobuf:"bytes,9,opt,name=hugging_face,json=huggingFace,proto3,oneof" json:"hugging_face,omitempty"` // ModelScope protocol information. ModelScope *v2.ModelScope `protobuf:"bytes,10,opt,name=model_scope,json=modelScope,proto3,oneof" json:"model_scope,omitempty"` + // OpenCSG protocol information. + OpenCsg *v2.OpenCSG `protobuf:"bytes,11,opt,name=open_csg,json=openCsg,proto3,oneof" json:"open_csg,omitempty"` } func (x *ListTaskEntriesRequest) Reset() { @@ -979,6 +981,13 @@ func (x *ListTaskEntriesRequest) GetModelScope() *v2.ModelScope { return nil } +func (x *ListTaskEntriesRequest) GetOpenCsg() *v2.OpenCSG { + if x != nil { + return x.OpenCsg + } + return nil +} + // ListTaskEntriesResponse represents response of ListTaskEntries. type ListTaskEntriesResponse struct { state protoimpl.MessageState @@ -4602,7 +4611,7 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_rawDesc = []byte{ 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0xc6, 0x05, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x87, 0x06, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, @@ -4637,232 +4646,66 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_rawDesc = []byte{ 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x48, 0x05, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, - 0x6f, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, - 0xd8, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x61, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x1a, - 0x07, 0x10, 0xd7, 0x04, 0x28, 0x64, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x65, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x64, 0x66, 0x64, - 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, - 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x05, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, - 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, - 0x44, 0x69, 0x72, 0x22, 0x71, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x76, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, - 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, - 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xe6, - 0x0b, 0x0a, 0x18, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, - 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, 0x01, 0x72, - 0x8b, 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, - 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, 0x3a, - 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, 0x7d, 0x7c, - 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, - 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, 0x5b, 0x61, - 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x62, - 0x6c, 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, - 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, - 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, - 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x01, 0x52, 0x05, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, - 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, - 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5f, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, - 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x04, 0x52, 0x0b, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, - 0x05, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x2d, 0x0a, 0x13, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, - 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x07, 0x52, 0x0d, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x08, 0x52, 0x04, - 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x65, 0x64, - 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x09, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x6c, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, - 0x48, 0x0a, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x1a, 0x40, 0x0a, - 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xfa, 0x02, 0x0a, 0x20, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x6f, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, + 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x53, 0x47, 0x48, 0x06, 0x52, 0x07, + 0x6f, 0x70, 0x65, 0x6e, 0x43, 0x73, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x68, 0x64, 0x66, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x73, 0x67, + 0x22, 0xd8, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x6a, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x64, 0x66, 0x64, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x06, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x06, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, - 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, - 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x7f, 0x0a, 0x24, 0x64, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, - 0x00, 0x52, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, - 0x01, 0x22, 0xab, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, - 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x12, 0x4d, 0x0a, 0x1e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, - 0x08, 0x01, 0x52, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, - 0x61, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x82, 0x01, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x1a, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, - 0x01, 0x52, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, + 0x67, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0c, 0xfa, 0x42, 0x09, + 0x1a, 0x07, 0x10, 0xd7, 0x04, 0x28, 0x64, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x64, 0x66, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x05, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, + 0x06, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, + 0x73, 0x44, 0x69, 0x72, 0x22, 0x71, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x76, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, + 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, + 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, + 0xe6, 0x0b, 0x0a, 0x18, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, + 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x31, @@ -4873,282 +4716,126 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_rawDesc = []byte{ 0x62, 0x6c, 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x48, 0x00, - 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, - 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x76, 0x0a, 0x16, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x69, 0x70, 0x22, 0xff, 0x03, 0x0a, 0x1d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, 0x01, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, - 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, - 0x01, 0xd0, 0x01, 0x01, 0x48, 0x03, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x4e, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9a, 0x03, 0x0a, 0x1e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x8e, 0x01, 0x0a, 0x29, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x25, 0x64, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x75, 0x0a, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, - 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x66, 0x64, + 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x01, 0x52, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, + 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x74, + 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5f, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x0c, 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x04, 0x52, + 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, + 0x48, 0x05, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, + 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x07, 0x52, 0x0d, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x08, 0x52, + 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x65, + 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x09, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, + 0x01, 0x48, 0x0a, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x1a, 0x40, + 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xfa, 0x02, 0x0a, 0x20, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x6a, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x03, 0x0a, 0x1b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, - 0x49, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x3d, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0xfa, 0x42, 0x0d, 0xaa, 0x01, - 0x0a, 0x22, 0x04, 0x08, 0x80, 0xf5, 0x24, 0x32, 0x02, 0x08, 0x3c, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x69, 0x70, 0x22, 0x9b, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, - 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, - 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, - 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, - 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x7e, 0x0a, 0x1e, 0x53, - 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, - 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, - 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x8e, 0x05, 0x0a, 0x1f, - 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x34, - 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, 0x02, - 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x02, 0x52, 0x08, 0x66, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x5d, 0x0a, 0x1f, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, - 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x66, 0x0a, 0x20, 0x4c, - 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x22, 0x7b, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, - 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, - 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, - 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x1c, 0x53, 0x79, 0x6e, - 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x74, 0x63, - 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, 0x42, - 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x00, 0x52, 0x07, - 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x71, 0x75, - 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, - 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x01, 0x52, - 0x08, 0x71, 0x75, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x71, 0x75, - 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9c, 0x04, 0x0a, 0x22, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, - 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x07, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, - 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x6b, - 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x04, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, - 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, 0x08, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6f, - 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, - 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x53, 0x0a, 0x2a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb4, 0x03, 0x0a, 0x23, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, + 0x06, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, + 0x06, 0x70, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x9e, 0x01, 0x0a, 0x2f, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x2a, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x7f, 0x0a, 0x24, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, @@ -5158,63 +4845,452 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_rawDesc = []byte{ 0x48, 0x00, 0x52, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, - 0x42, 0x01, 0x22, 0xd1, 0x04, 0x0a, 0x20, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x43, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x32, 0x04, 0x18, 0x05, 0x28, 0x01, 0x52, 0x16, 0x70, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, - 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x03, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x10, 0xfa, 0x42, 0x0d, 0xaa, 0x01, 0x0a, 0x22, 0x04, 0x08, 0x80, 0xf5, 0x24, 0x32, 0x02, - 0x08, 0x3c, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x09, + 0x42, 0x01, 0x22, 0xab, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, + 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x4d, 0x0a, 0x1e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, + 0x02, 0x08, 0x01, 0x52, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x22, 0x61, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x82, 0x01, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x1a, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, + 0x10, 0x01, 0x52, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x12, 0xb0, 0x01, 0x0a, 0x06, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa, 0x42, 0x8e, + 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b, 0x61, 0x2d, + 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73, 0x68, 0x61, + 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x34, 0x30, + 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, + 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x3a, + 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32, 0x38, 0x7d, + 0x7c, 0x62, 0x6c, 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, + 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a, 0x5b, 0x61, + 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01, 0x01, 0x48, + 0x00, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, - 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, - 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, - 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, - 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x7e, 0x0a, 0x1e, 0x53, 0x74, 0x61, - 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, - 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x83, 0x01, 0x0a, 0x23, 0x53, 0x74, + 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x76, 0x0a, + 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xff, 0x03, 0x0a, 0x1d, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0x88, 0x01, 0x01, 0xd0, 0x01, + 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, + 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x03, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x4e, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9a, 0x03, 0x0a, 0x1e, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x8e, 0x01, 0x0a, 0x29, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x25, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, + 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x75, 0x0a, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x66, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x03, 0x0a, 0x1b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x49, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0xfa, 0x42, 0x0d, 0xaa, + 0x01, 0x0a, 0x22, 0x04, 0x08, 0x80, 0xf5, 0x24, 0x32, 0x02, 0x08, 0x3c, 0x52, 0x03, 0x74, 0x74, + 0x6c, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x22, 0x9b, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, + 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x7e, 0x0a, 0x1e, + 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x8e, 0x05, 0x0a, + 0x1f, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, + 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, + 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x02, 0x52, 0x08, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x5d, 0x0a, + 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x66, 0x0a, 0x20, + 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x42, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x22, 0x7b, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, + 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x1b, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, + 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, + 0x01, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x69, 0x65, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x1c, 0x53, 0x79, + 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x74, + 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, + 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x00, 0x52, + 0x07, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x71, + 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, + 0xfa, 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x01, + 0x52, 0x08, 0x71, 0x75, 0x69, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x71, + 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9c, 0x04, 0x0a, 0x22, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, + 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6e, + 0x65, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x48, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x6e, + 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x04, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, + 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, + 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, + 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x53, 0x0a, 0x2a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb4, 0x03, 0x0a, + 0x23, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, + 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x9e, 0x01, 0x0a, 0x2f, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x2a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x20, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, + 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, + 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, + 0xf8, 0x42, 0x01, 0x22, 0xd1, 0x04, 0x0a, 0x20, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x43, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x12, 0x43, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x32, 0x04, 0x18, 0x05, 0x28, 0x01, 0x52, 0x16, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x32, 0x07, + 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x03, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0xfa, 0x42, 0x0d, 0xaa, 0x01, 0x0a, 0x22, 0x04, 0x08, 0x80, 0xf5, 0x24, 0x32, + 0x02, 0x08, 0x3c, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, + 0x01, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, + 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, + 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x7e, 0x0a, 0x1e, 0x53, 0x74, + 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, + 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, + 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x83, 0x01, 0x0a, 0x23, 0x53, + 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, + 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, + 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x22, 0x93, 0x05, 0x0a, 0x24, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x74, + 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, + 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, + 0xfa, 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, + 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, + 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x43, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x02, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x62, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x70, 0x0a, 0x25, 0x4c, 0x69, + 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x80, 0x01, 0x0a, + 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, @@ -5222,394 +5298,331 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, - 0x93, 0x05, 0x0a, 0x24, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xfa, - 0x42, 0x09, 0x32, 0x07, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, - 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, - 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x43, - 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, - 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x48, 0x02, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x62, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, - 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0x70, 0x0a, 0x25, 0x4c, 0x69, 0x73, - 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x20, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, - 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, - 0x01, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x22, 0xaa, - 0x01, 0x0a, 0x20, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0xaa, 0x01, 0x0a, 0x20, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, + 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, + 0x01, 0x02, 0x08, 0x01, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x50, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x81, 0x02, 0x0a, + 0x21, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, + 0x02, 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, + 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, + 0x03, 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x01, 0x52, 0x08, 0x71, 0x75, 0x69, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x71, 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, - 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, + 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, - 0x02, 0x08, 0x01, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, - 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x21, - 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, 0x02, - 0x69, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, 0x28, - 0x80, 0x08, 0x40, 0x01, 0x48, 0x00, 0x52, 0x07, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x30, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0e, 0xfa, 0x42, 0x0b, 0x1a, 0x09, 0x10, 0xff, 0xff, 0x03, - 0x28, 0x80, 0x08, 0x40, 0x01, 0x48, 0x01, 0x52, 0x08, 0x71, 0x75, 0x69, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x71, 0x75, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, - 0x55, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, - 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, - 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x18, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, - 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6c, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x7a, 0x02, 0x68, 0x10, 0x52, 0x03, 0x67, 0x69, - 0x64, 0x22, 0x76, 0x0a, 0x27, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, - 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x42, 0x56, - 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, - 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x28, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x08, - 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x32, 0xa9, 0x11, 0x0a, 0x0e, 0x44, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x55, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, - 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x56, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5c, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, - 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x61, 0x73, 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, 0x12, 0x4f, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, 0x65, - 0x73, 0x12, 0x1e, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x0d, 0x53, 0x74, - 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4e, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x18, 0x49, 0x42, 0x56, 0x65, 0x72, + 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x7a, 0x02, 0x68, 0x10, 0x52, 0x03, 0x67, + 0x69, 0x64, 0x22, 0x76, 0x0a, 0x27, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, + 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, + 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x42, + 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, + 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x28, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x32, 0xa9, 0x11, 0x0a, 0x0e, 0x44, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x39, 0x0a, + 0x08, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x64, 0x66, 0x64, 0x61, + 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x56, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, + 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5c, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, + 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x5e, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x64, - 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x12, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x64, 0x66, 0x64, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4f, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, + 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, - 0x65, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x16, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x0d, 0x53, + 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4e, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x5e, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x12, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x64, 0x66, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, + 0x69, 0x65, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x16, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x6d, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x58, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 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, 0x12, 0x57, 0x0a, 0x12, 0x53, 0x74, 0x61, - 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, + 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x6d, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, + 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x58, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 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, 0x12, 0x57, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x58, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, - 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 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, 0x12, 0x82, 0x01, 0x0a, - 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2f, 0x2e, 0x64, - 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x12, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x58, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 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, 0x12, 0x82, 0x01, + 0x0a, 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2f, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, - 0x01, 0x12, 0x62, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2d, - 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x66, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x62, 0x0a, - 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2d, 0x2e, 0x64, 0x66, 0x64, - 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, - 0x73, 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, 0x12, 0x7c, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, 0x2d, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x62, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x66, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x62, + 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2d, 0x2e, 0x64, 0x66, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, + 0x61, 0x73, 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, 0x12, 0x7c, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x12, + 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, - 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, - 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x3b, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x6f, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x30, 0x01, 0x12, 0x8f, 0x01, 0x0a, - 0x20, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, + 0x50, 0x69, 0x65, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x3b, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x30, 0x01, 0x12, 0x8f, 0x01, + 0x0a, 0x20, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, + 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x34, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x34, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x42, - 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x8b, - 0x10, 0x0a, 0x10, 0x44, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x20, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x56, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x64, 0x66, 0x64, 0x61, - 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, - 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, - 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, - 0x22, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, 0x66, - 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x4e, 0x0a, 0x0f, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 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, 0x12, 0x3c, 0x0a, 0x0a, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x11, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x48, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4e, 0x0a, 0x0f, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x2e, - 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x73, 0x0a, 0x16, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, + 0x42, 0x56, 0x65, 0x72, 0x62, 0x73, 0x51, 0x75, 0x65, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0x8b, 0x10, 0x0a, 0x10, 0x44, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x55, 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x20, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x53, + 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x56, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x64, 0x66, 0x64, + 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, + 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, + 0x12, 0x22, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x64, + 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x4e, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x23, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x61, 0x73, 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, 0x12, 0x3c, 0x0a, + 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x64, 0x0a, 0x11, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x25, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x48, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, + 0x73, 0x6b, 0x12, 0x21, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4e, 0x0a, 0x0f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x23, + 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 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, 0x12, 0x73, 0x0a, 0x16, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x5b, 0x0a, 0x14, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, - 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x57, 0x0a, 0x12, - 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x74, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, - 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x18, 0x4c, - 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2f, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x74, 0x1a, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x5b, 0x0a, 0x14, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x57, 0x0a, + 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x26, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x74, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2c, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2f, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6a, 0x0a, 0x19, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x83, 0x01, - 0x0a, 0x1c, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x30, - 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6a, 0x0a, 0x19, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2d, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x66, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x2b, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x83, + 0x01, 0x0a, 0x1c, 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x30, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x66, 0x64, 0x61, + 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x31, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x64, 0x66, 0x64, 0x61, 0x65, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, 0x2b, - 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2f, - 0x76, 0x32, 0x3b, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2d, 0x5a, + 0x2b, 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2f, 0x76, 0x32, 0x3b, 0x64, 0x66, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5696,14 +5709,15 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_goTypes = []interface{}{ (*v2.HDFS)(nil), // 67: common.v2.HDFS (*v2.HuggingFace)(nil), // 68: common.v2.HuggingFace (*v2.ModelScope)(nil), // 69: common.v2.ModelScope - (v2.TaskType)(0), // 70: common.v2.TaskType - (v2.Priority)(0), // 71: common.v2.Priority - (*emptypb.Empty)(nil), // 72: google.protobuf.Empty - (*v2.Task)(nil), // 73: common.v2.Task - (*v2.CacheTask)(nil), // 74: common.v2.CacheTask - (*v2.PersistentTask)(nil), // 75: common.v2.PersistentTask - (*v2.PersistentCacheTask)(nil), // 76: common.v2.PersistentCacheTask - (*v2.Host)(nil), // 77: common.v2.Host + (*v2.OpenCSG)(nil), // 70: common.v2.OpenCSG + (v2.TaskType)(0), // 71: common.v2.TaskType + (v2.Priority)(0), // 72: common.v2.Priority + (*emptypb.Empty)(nil), // 73: google.protobuf.Empty + (*v2.Task)(nil), // 74: common.v2.Task + (*v2.CacheTask)(nil), // 75: common.v2.CacheTask + (*v2.PersistentTask)(nil), // 76: common.v2.PersistentTask + (*v2.PersistentCacheTask)(nil), // 77: common.v2.PersistentCacheTask + (*v2.Host)(nil), // 78: common.v2.Host } var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_depIdxs = []int32{ 61, // 0: dfdaemon.v2.DownloadTaskRequest.download:type_name -> common.v2.Download @@ -5726,140 +5740,141 @@ var file_pkg_apis_dfdaemon_v2_dfdaemon_proto_depIdxs = []int32{ 67, // 17: dfdaemon.v2.ListTaskEntriesRequest.hdfs:type_name -> common.v2.HDFS 68, // 18: dfdaemon.v2.ListTaskEntriesRequest.hugging_face:type_name -> common.v2.HuggingFace 69, // 19: dfdaemon.v2.ListTaskEntriesRequest.model_scope:type_name -> common.v2.ModelScope - 58, // 20: dfdaemon.v2.ListTaskEntriesResponse.response_header:type_name -> dfdaemon.v2.ListTaskEntriesResponse.ResponseHeaderEntry - 13, // 21: dfdaemon.v2.ListTaskEntriesResponse.entries:type_name -> dfdaemon.v2.Entry - 62, // 22: dfdaemon.v2.DownloadCacheTaskRequest.range:type_name -> common.v2.Range - 70, // 23: dfdaemon.v2.DownloadCacheTaskRequest.type:type_name -> common.v2.TaskType - 71, // 24: dfdaemon.v2.DownloadCacheTaskRequest.priority:type_name -> common.v2.Priority - 59, // 25: dfdaemon.v2.DownloadCacheTaskRequest.request_header:type_name -> dfdaemon.v2.DownloadCacheTaskRequest.RequestHeaderEntry - 65, // 26: dfdaemon.v2.DownloadCacheTaskRequest.timeout:type_name -> google.protobuf.Duration - 66, // 27: dfdaemon.v2.DownloadCacheTaskRequest.object_storage:type_name -> common.v2.ObjectStorage - 67, // 28: dfdaemon.v2.DownloadCacheTaskRequest.hdfs:type_name -> common.v2.HDFS - 62, // 29: dfdaemon.v2.DownloadCacheTaskStartedResponse.range:type_name -> common.v2.Range - 60, // 30: dfdaemon.v2.DownloadCacheTaskStartedResponse.response_header:type_name -> dfdaemon.v2.DownloadCacheTaskStartedResponse.ResponseHeaderEntry - 63, // 31: dfdaemon.v2.DownloadCacheTaskStartedResponse.pieces:type_name -> common.v2.Piece - 17, // 32: dfdaemon.v2.DownloadCacheTaskResponse.download_cache_task_started_response:type_name -> dfdaemon.v2.DownloadCacheTaskStartedResponse - 2, // 33: dfdaemon.v2.DownloadCacheTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse - 63, // 34: dfdaemon.v2.DownloadCachePieceResponse.piece:type_name -> common.v2.Piece - 66, // 35: dfdaemon.v2.DownloadPersistentTaskRequest.object_storage:type_name -> common.v2.ObjectStorage - 65, // 36: dfdaemon.v2.DownloadPersistentTaskRequest.timeout:type_name -> google.protobuf.Duration - 26, // 37: dfdaemon.v2.DownloadPersistentTaskResponse.download_persistent_task_started_response:type_name -> dfdaemon.v2.DownloadPersistentTaskStartedResponse - 2, // 38: dfdaemon.v2.DownloadPersistentTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse - 66, // 39: dfdaemon.v2.UploadPersistentTaskRequest.object_storage:type_name -> common.v2.ObjectStorage - 65, // 40: dfdaemon.v2.UploadPersistentTaskRequest.ttl:type_name -> google.protobuf.Duration - 65, // 41: dfdaemon.v2.UploadPersistentTaskRequest.timeout:type_name -> google.protobuf.Duration - 65, // 42: dfdaemon.v2.StatLocalPersistentTaskResponse.ttl:type_name -> google.protobuf.Duration - 64, // 43: dfdaemon.v2.StatLocalPersistentTaskResponse.created_at:type_name -> google.protobuf.Timestamp - 64, // 44: dfdaemon.v2.StatLocalPersistentTaskResponse.updated_at:type_name -> google.protobuf.Timestamp - 64, // 45: dfdaemon.v2.StatLocalPersistentTaskResponse.failed_at:type_name -> google.protobuf.Timestamp - 64, // 46: dfdaemon.v2.StatLocalPersistentTaskResponse.finished_at:type_name -> google.protobuf.Timestamp - 32, // 47: dfdaemon.v2.ListLocalPersistentTasksResponse.tasks:type_name -> dfdaemon.v2.StatLocalPersistentTaskResponse - 65, // 48: dfdaemon.v2.DownloadPersistentCacheTaskRequest.timeout:type_name -> google.protobuf.Duration - 39, // 49: dfdaemon.v2.DownloadPersistentCacheTaskResponse.download_persistent_cache_task_started_response:type_name -> dfdaemon.v2.DownloadPersistentCacheTaskStartedResponse - 2, // 50: dfdaemon.v2.DownloadPersistentCacheTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse - 65, // 51: dfdaemon.v2.UploadPersistentCacheTaskRequest.ttl:type_name -> google.protobuf.Duration - 65, // 52: dfdaemon.v2.UploadPersistentCacheTaskRequest.timeout:type_name -> google.protobuf.Duration - 65, // 53: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.ttl:type_name -> google.protobuf.Duration - 64, // 54: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.created_at:type_name -> google.protobuf.Timestamp - 64, // 55: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.updated_at:type_name -> google.protobuf.Timestamp - 64, // 56: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.failed_at:type_name -> google.protobuf.Timestamp - 64, // 57: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.finished_at:type_name -> google.protobuf.Timestamp - 45, // 58: dfdaemon.v2.ListLocalPersistentCacheTasksResponse.tasks:type_name -> dfdaemon.v2.StatLocalPersistentCacheTaskResponse - 52, // 59: dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointRequest.endpoint:type_name -> dfdaemon.v2.IBVerbsQueuePairEndpoint - 52, // 60: dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointResponse.endpoint:type_name -> dfdaemon.v2.IBVerbsQueuePairEndpoint - 0, // 61: dfdaemon.v2.DfdaemonUpload.DownloadTask:input_type -> dfdaemon.v2.DownloadTaskRequest - 6, // 62: dfdaemon.v2.DfdaemonUpload.StatTask:input_type -> dfdaemon.v2.StatTaskRequest - 7, // 63: dfdaemon.v2.DfdaemonUpload.StatLocalTask:input_type -> dfdaemon.v2.StatLocalTaskRequest - 11, // 64: dfdaemon.v2.DfdaemonUpload.ListTaskEntries:input_type -> dfdaemon.v2.ListTaskEntriesRequest - 14, // 65: dfdaemon.v2.DfdaemonUpload.DeleteTask:input_type -> dfdaemon.v2.DeleteTaskRequest - 4, // 66: dfdaemon.v2.DfdaemonUpload.SyncPieces:input_type -> dfdaemon.v2.SyncPiecesRequest - 16, // 67: dfdaemon.v2.DfdaemonUpload.DownloadCacheTask:input_type -> dfdaemon.v2.DownloadCacheTaskRequest - 23, // 68: dfdaemon.v2.DfdaemonUpload.StatCacheTask:input_type -> dfdaemon.v2.StatCacheTaskRequest - 24, // 69: dfdaemon.v2.DfdaemonUpload.DeleteCacheTask:input_type -> dfdaemon.v2.DeleteCacheTaskRequest - 19, // 70: dfdaemon.v2.DfdaemonUpload.SyncCachePieces:input_type -> dfdaemon.v2.SyncCachePiecesRequest - 21, // 71: dfdaemon.v2.DfdaemonUpload.DownloadCachePiece:input_type -> dfdaemon.v2.DownloadCachePieceRequest - 25, // 72: dfdaemon.v2.DfdaemonUpload.DownloadPersistentTask:input_type -> dfdaemon.v2.DownloadPersistentTaskRequest - 36, // 73: dfdaemon.v2.DfdaemonUpload.SyncPersistentPieces:input_type -> dfdaemon.v2.SyncPersistentPiecesRequest - 29, // 74: dfdaemon.v2.DfdaemonUpload.UpdatePersistentTask:input_type -> dfdaemon.v2.UpdatePersistentTaskRequest - 30, // 75: dfdaemon.v2.DfdaemonUpload.StatPersistentTask:input_type -> dfdaemon.v2.StatPersistentTaskRequest - 35, // 76: dfdaemon.v2.DfdaemonUpload.DeletePersistentTask:input_type -> dfdaemon.v2.DeletePersistentTaskRequest - 38, // 77: dfdaemon.v2.DfdaemonUpload.DownloadPersistentCacheTask:input_type -> dfdaemon.v2.DownloadPersistentCacheTaskRequest - 42, // 78: dfdaemon.v2.DfdaemonUpload.UpdatePersistentCacheTask:input_type -> dfdaemon.v2.UpdatePersistentCacheTaskRequest - 43, // 79: dfdaemon.v2.DfdaemonUpload.StatPersistentCacheTask:input_type -> dfdaemon.v2.StatPersistentCacheTaskRequest - 48, // 80: dfdaemon.v2.DfdaemonUpload.DeletePersistentCacheTask:input_type -> dfdaemon.v2.DeletePersistentCacheTaskRequest - 49, // 81: dfdaemon.v2.DfdaemonUpload.SyncPersistentCachePieces:input_type -> dfdaemon.v2.SyncPersistentCachePiecesRequest - 51, // 82: dfdaemon.v2.DfdaemonUpload.SyncHost:input_type -> dfdaemon.v2.SyncHostRequest - 53, // 83: dfdaemon.v2.DfdaemonUpload.ExchangeIBVerbsQueuePairEndpoint:input_type -> dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointRequest - 0, // 84: dfdaemon.v2.DfdaemonDownload.DownloadTask:input_type -> dfdaemon.v2.DownloadTaskRequest - 6, // 85: dfdaemon.v2.DfdaemonDownload.StatTask:input_type -> dfdaemon.v2.StatTaskRequest - 7, // 86: dfdaemon.v2.DfdaemonDownload.StatLocalTask:input_type -> dfdaemon.v2.StatLocalTaskRequest - 9, // 87: dfdaemon.v2.DfdaemonDownload.ListLocalTasks:input_type -> dfdaemon.v2.ListLocalTasksRequest - 11, // 88: dfdaemon.v2.DfdaemonDownload.ListTaskEntries:input_type -> dfdaemon.v2.ListTaskEntriesRequest - 14, // 89: dfdaemon.v2.DfdaemonDownload.DeleteTask:input_type -> dfdaemon.v2.DeleteTaskRequest - 15, // 90: dfdaemon.v2.DfdaemonDownload.DeleteLocalTask:input_type -> dfdaemon.v2.DeleteLocalTaskRequest - 72, // 91: dfdaemon.v2.DfdaemonDownload.DeleteHost:input_type -> google.protobuf.Empty - 16, // 92: dfdaemon.v2.DfdaemonDownload.DownloadCacheTask:input_type -> dfdaemon.v2.DownloadCacheTaskRequest - 23, // 93: dfdaemon.v2.DfdaemonDownload.StatCacheTask:input_type -> dfdaemon.v2.StatCacheTaskRequest - 24, // 94: dfdaemon.v2.DfdaemonDownload.DeleteCacheTask:input_type -> dfdaemon.v2.DeleteCacheTaskRequest - 25, // 95: dfdaemon.v2.DfdaemonDownload.DownloadPersistentTask:input_type -> dfdaemon.v2.DownloadPersistentTaskRequest - 28, // 96: dfdaemon.v2.DfdaemonDownload.UploadPersistentTask:input_type -> dfdaemon.v2.UploadPersistentTaskRequest - 30, // 97: dfdaemon.v2.DfdaemonDownload.StatPersistentTask:input_type -> dfdaemon.v2.StatPersistentTaskRequest - 31, // 98: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentTask:input_type -> dfdaemon.v2.StatLocalPersistentTaskRequest - 33, // 99: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentTasks:input_type -> dfdaemon.v2.ListLocalPersistentTasksRequest - 38, // 100: dfdaemon.v2.DfdaemonDownload.DownloadPersistentCacheTask:input_type -> dfdaemon.v2.DownloadPersistentCacheTaskRequest - 41, // 101: dfdaemon.v2.DfdaemonDownload.UploadPersistentCacheTask:input_type -> dfdaemon.v2.UploadPersistentCacheTaskRequest - 43, // 102: dfdaemon.v2.DfdaemonDownload.StatPersistentCacheTask:input_type -> dfdaemon.v2.StatPersistentCacheTaskRequest - 44, // 103: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentCacheTask:input_type -> dfdaemon.v2.StatLocalPersistentCacheTaskRequest - 46, // 104: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentCacheTasks:input_type -> dfdaemon.v2.ListLocalPersistentCacheTasksRequest - 3, // 105: dfdaemon.v2.DfdaemonUpload.DownloadTask:output_type -> dfdaemon.v2.DownloadTaskResponse - 73, // 106: dfdaemon.v2.DfdaemonUpload.StatTask:output_type -> common.v2.Task - 8, // 107: dfdaemon.v2.DfdaemonUpload.StatLocalTask:output_type -> dfdaemon.v2.StatLocalTaskResponse - 12, // 108: dfdaemon.v2.DfdaemonUpload.ListTaskEntries:output_type -> dfdaemon.v2.ListTaskEntriesResponse - 72, // 109: dfdaemon.v2.DfdaemonUpload.DeleteTask:output_type -> google.protobuf.Empty - 5, // 110: dfdaemon.v2.DfdaemonUpload.SyncPieces:output_type -> dfdaemon.v2.SyncPiecesResponse - 18, // 111: dfdaemon.v2.DfdaemonUpload.DownloadCacheTask:output_type -> dfdaemon.v2.DownloadCacheTaskResponse - 74, // 112: dfdaemon.v2.DfdaemonUpload.StatCacheTask:output_type -> common.v2.CacheTask - 72, // 113: dfdaemon.v2.DfdaemonUpload.DeleteCacheTask:output_type -> google.protobuf.Empty - 20, // 114: dfdaemon.v2.DfdaemonUpload.SyncCachePieces:output_type -> dfdaemon.v2.SyncCachePiecesResponse - 22, // 115: dfdaemon.v2.DfdaemonUpload.DownloadCachePiece:output_type -> dfdaemon.v2.DownloadCachePieceResponse - 27, // 116: dfdaemon.v2.DfdaemonUpload.DownloadPersistentTask:output_type -> dfdaemon.v2.DownloadPersistentTaskResponse - 37, // 117: dfdaemon.v2.DfdaemonUpload.SyncPersistentPieces:output_type -> dfdaemon.v2.SyncPersistentPiecesResponse - 72, // 118: dfdaemon.v2.DfdaemonUpload.UpdatePersistentTask:output_type -> google.protobuf.Empty - 75, // 119: dfdaemon.v2.DfdaemonUpload.StatPersistentTask:output_type -> common.v2.PersistentTask - 72, // 120: dfdaemon.v2.DfdaemonUpload.DeletePersistentTask:output_type -> google.protobuf.Empty - 40, // 121: dfdaemon.v2.DfdaemonUpload.DownloadPersistentCacheTask:output_type -> dfdaemon.v2.DownloadPersistentCacheTaskResponse - 72, // 122: dfdaemon.v2.DfdaemonUpload.UpdatePersistentCacheTask:output_type -> google.protobuf.Empty - 76, // 123: dfdaemon.v2.DfdaemonUpload.StatPersistentCacheTask:output_type -> common.v2.PersistentCacheTask - 72, // 124: dfdaemon.v2.DfdaemonUpload.DeletePersistentCacheTask:output_type -> google.protobuf.Empty - 50, // 125: dfdaemon.v2.DfdaemonUpload.SyncPersistentCachePieces:output_type -> dfdaemon.v2.SyncPersistentCachePiecesResponse - 77, // 126: dfdaemon.v2.DfdaemonUpload.SyncHost:output_type -> common.v2.Host - 54, // 127: dfdaemon.v2.DfdaemonUpload.ExchangeIBVerbsQueuePairEndpoint:output_type -> dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointResponse - 3, // 128: dfdaemon.v2.DfdaemonDownload.DownloadTask:output_type -> dfdaemon.v2.DownloadTaskResponse - 73, // 129: dfdaemon.v2.DfdaemonDownload.StatTask:output_type -> common.v2.Task - 8, // 130: dfdaemon.v2.DfdaemonDownload.StatLocalTask:output_type -> dfdaemon.v2.StatLocalTaskResponse - 10, // 131: dfdaemon.v2.DfdaemonDownload.ListLocalTasks:output_type -> dfdaemon.v2.ListLocalTasksResponse - 12, // 132: dfdaemon.v2.DfdaemonDownload.ListTaskEntries:output_type -> dfdaemon.v2.ListTaskEntriesResponse - 72, // 133: dfdaemon.v2.DfdaemonDownload.DeleteTask:output_type -> google.protobuf.Empty - 72, // 134: dfdaemon.v2.DfdaemonDownload.DeleteLocalTask:output_type -> google.protobuf.Empty - 72, // 135: dfdaemon.v2.DfdaemonDownload.DeleteHost:output_type -> google.protobuf.Empty - 18, // 136: dfdaemon.v2.DfdaemonDownload.DownloadCacheTask:output_type -> dfdaemon.v2.DownloadCacheTaskResponse - 74, // 137: dfdaemon.v2.DfdaemonDownload.StatCacheTask:output_type -> common.v2.CacheTask - 72, // 138: dfdaemon.v2.DfdaemonDownload.DeleteCacheTask:output_type -> google.protobuf.Empty - 27, // 139: dfdaemon.v2.DfdaemonDownload.DownloadPersistentTask:output_type -> dfdaemon.v2.DownloadPersistentTaskResponse - 75, // 140: dfdaemon.v2.DfdaemonDownload.UploadPersistentTask:output_type -> common.v2.PersistentTask - 75, // 141: dfdaemon.v2.DfdaemonDownload.StatPersistentTask:output_type -> common.v2.PersistentTask - 32, // 142: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentTask:output_type -> dfdaemon.v2.StatLocalPersistentTaskResponse - 34, // 143: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentTasks:output_type -> dfdaemon.v2.ListLocalPersistentTasksResponse - 40, // 144: dfdaemon.v2.DfdaemonDownload.DownloadPersistentCacheTask:output_type -> dfdaemon.v2.DownloadPersistentCacheTaskResponse - 76, // 145: dfdaemon.v2.DfdaemonDownload.UploadPersistentCacheTask:output_type -> common.v2.PersistentCacheTask - 76, // 146: dfdaemon.v2.DfdaemonDownload.StatPersistentCacheTask:output_type -> common.v2.PersistentCacheTask - 45, // 147: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentCacheTask:output_type -> dfdaemon.v2.StatLocalPersistentCacheTaskResponse - 47, // 148: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentCacheTasks:output_type -> dfdaemon.v2.ListLocalPersistentCacheTasksResponse - 105, // [105:149] is the sub-list for method output_type - 61, // [61:105] is the sub-list for method input_type - 61, // [61:61] is the sub-list for extension type_name - 61, // [61:61] is the sub-list for extension extendee - 0, // [0:61] is the sub-list for field type_name + 70, // 20: dfdaemon.v2.ListTaskEntriesRequest.open_csg:type_name -> common.v2.OpenCSG + 58, // 21: dfdaemon.v2.ListTaskEntriesResponse.response_header:type_name -> dfdaemon.v2.ListTaskEntriesResponse.ResponseHeaderEntry + 13, // 22: dfdaemon.v2.ListTaskEntriesResponse.entries:type_name -> dfdaemon.v2.Entry + 62, // 23: dfdaemon.v2.DownloadCacheTaskRequest.range:type_name -> common.v2.Range + 71, // 24: dfdaemon.v2.DownloadCacheTaskRequest.type:type_name -> common.v2.TaskType + 72, // 25: dfdaemon.v2.DownloadCacheTaskRequest.priority:type_name -> common.v2.Priority + 59, // 26: dfdaemon.v2.DownloadCacheTaskRequest.request_header:type_name -> dfdaemon.v2.DownloadCacheTaskRequest.RequestHeaderEntry + 65, // 27: dfdaemon.v2.DownloadCacheTaskRequest.timeout:type_name -> google.protobuf.Duration + 66, // 28: dfdaemon.v2.DownloadCacheTaskRequest.object_storage:type_name -> common.v2.ObjectStorage + 67, // 29: dfdaemon.v2.DownloadCacheTaskRequest.hdfs:type_name -> common.v2.HDFS + 62, // 30: dfdaemon.v2.DownloadCacheTaskStartedResponse.range:type_name -> common.v2.Range + 60, // 31: dfdaemon.v2.DownloadCacheTaskStartedResponse.response_header:type_name -> dfdaemon.v2.DownloadCacheTaskStartedResponse.ResponseHeaderEntry + 63, // 32: dfdaemon.v2.DownloadCacheTaskStartedResponse.pieces:type_name -> common.v2.Piece + 17, // 33: dfdaemon.v2.DownloadCacheTaskResponse.download_cache_task_started_response:type_name -> dfdaemon.v2.DownloadCacheTaskStartedResponse + 2, // 34: dfdaemon.v2.DownloadCacheTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse + 63, // 35: dfdaemon.v2.DownloadCachePieceResponse.piece:type_name -> common.v2.Piece + 66, // 36: dfdaemon.v2.DownloadPersistentTaskRequest.object_storage:type_name -> common.v2.ObjectStorage + 65, // 37: dfdaemon.v2.DownloadPersistentTaskRequest.timeout:type_name -> google.protobuf.Duration + 26, // 38: dfdaemon.v2.DownloadPersistentTaskResponse.download_persistent_task_started_response:type_name -> dfdaemon.v2.DownloadPersistentTaskStartedResponse + 2, // 39: dfdaemon.v2.DownloadPersistentTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse + 66, // 40: dfdaemon.v2.UploadPersistentTaskRequest.object_storage:type_name -> common.v2.ObjectStorage + 65, // 41: dfdaemon.v2.UploadPersistentTaskRequest.ttl:type_name -> google.protobuf.Duration + 65, // 42: dfdaemon.v2.UploadPersistentTaskRequest.timeout:type_name -> google.protobuf.Duration + 65, // 43: dfdaemon.v2.StatLocalPersistentTaskResponse.ttl:type_name -> google.protobuf.Duration + 64, // 44: dfdaemon.v2.StatLocalPersistentTaskResponse.created_at:type_name -> google.protobuf.Timestamp + 64, // 45: dfdaemon.v2.StatLocalPersistentTaskResponse.updated_at:type_name -> google.protobuf.Timestamp + 64, // 46: dfdaemon.v2.StatLocalPersistentTaskResponse.failed_at:type_name -> google.protobuf.Timestamp + 64, // 47: dfdaemon.v2.StatLocalPersistentTaskResponse.finished_at:type_name -> google.protobuf.Timestamp + 32, // 48: dfdaemon.v2.ListLocalPersistentTasksResponse.tasks:type_name -> dfdaemon.v2.StatLocalPersistentTaskResponse + 65, // 49: dfdaemon.v2.DownloadPersistentCacheTaskRequest.timeout:type_name -> google.protobuf.Duration + 39, // 50: dfdaemon.v2.DownloadPersistentCacheTaskResponse.download_persistent_cache_task_started_response:type_name -> dfdaemon.v2.DownloadPersistentCacheTaskStartedResponse + 2, // 51: dfdaemon.v2.DownloadPersistentCacheTaskResponse.download_piece_finished_response:type_name -> dfdaemon.v2.DownloadPieceFinishedResponse + 65, // 52: dfdaemon.v2.UploadPersistentCacheTaskRequest.ttl:type_name -> google.protobuf.Duration + 65, // 53: dfdaemon.v2.UploadPersistentCacheTaskRequest.timeout:type_name -> google.protobuf.Duration + 65, // 54: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.ttl:type_name -> google.protobuf.Duration + 64, // 55: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.created_at:type_name -> google.protobuf.Timestamp + 64, // 56: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.updated_at:type_name -> google.protobuf.Timestamp + 64, // 57: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.failed_at:type_name -> google.protobuf.Timestamp + 64, // 58: dfdaemon.v2.StatLocalPersistentCacheTaskResponse.finished_at:type_name -> google.protobuf.Timestamp + 45, // 59: dfdaemon.v2.ListLocalPersistentCacheTasksResponse.tasks:type_name -> dfdaemon.v2.StatLocalPersistentCacheTaskResponse + 52, // 60: dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointRequest.endpoint:type_name -> dfdaemon.v2.IBVerbsQueuePairEndpoint + 52, // 61: dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointResponse.endpoint:type_name -> dfdaemon.v2.IBVerbsQueuePairEndpoint + 0, // 62: dfdaemon.v2.DfdaemonUpload.DownloadTask:input_type -> dfdaemon.v2.DownloadTaskRequest + 6, // 63: dfdaemon.v2.DfdaemonUpload.StatTask:input_type -> dfdaemon.v2.StatTaskRequest + 7, // 64: dfdaemon.v2.DfdaemonUpload.StatLocalTask:input_type -> dfdaemon.v2.StatLocalTaskRequest + 11, // 65: dfdaemon.v2.DfdaemonUpload.ListTaskEntries:input_type -> dfdaemon.v2.ListTaskEntriesRequest + 14, // 66: dfdaemon.v2.DfdaemonUpload.DeleteTask:input_type -> dfdaemon.v2.DeleteTaskRequest + 4, // 67: dfdaemon.v2.DfdaemonUpload.SyncPieces:input_type -> dfdaemon.v2.SyncPiecesRequest + 16, // 68: dfdaemon.v2.DfdaemonUpload.DownloadCacheTask:input_type -> dfdaemon.v2.DownloadCacheTaskRequest + 23, // 69: dfdaemon.v2.DfdaemonUpload.StatCacheTask:input_type -> dfdaemon.v2.StatCacheTaskRequest + 24, // 70: dfdaemon.v2.DfdaemonUpload.DeleteCacheTask:input_type -> dfdaemon.v2.DeleteCacheTaskRequest + 19, // 71: dfdaemon.v2.DfdaemonUpload.SyncCachePieces:input_type -> dfdaemon.v2.SyncCachePiecesRequest + 21, // 72: dfdaemon.v2.DfdaemonUpload.DownloadCachePiece:input_type -> dfdaemon.v2.DownloadCachePieceRequest + 25, // 73: dfdaemon.v2.DfdaemonUpload.DownloadPersistentTask:input_type -> dfdaemon.v2.DownloadPersistentTaskRequest + 36, // 74: dfdaemon.v2.DfdaemonUpload.SyncPersistentPieces:input_type -> dfdaemon.v2.SyncPersistentPiecesRequest + 29, // 75: dfdaemon.v2.DfdaemonUpload.UpdatePersistentTask:input_type -> dfdaemon.v2.UpdatePersistentTaskRequest + 30, // 76: dfdaemon.v2.DfdaemonUpload.StatPersistentTask:input_type -> dfdaemon.v2.StatPersistentTaskRequest + 35, // 77: dfdaemon.v2.DfdaemonUpload.DeletePersistentTask:input_type -> dfdaemon.v2.DeletePersistentTaskRequest + 38, // 78: dfdaemon.v2.DfdaemonUpload.DownloadPersistentCacheTask:input_type -> dfdaemon.v2.DownloadPersistentCacheTaskRequest + 42, // 79: dfdaemon.v2.DfdaemonUpload.UpdatePersistentCacheTask:input_type -> dfdaemon.v2.UpdatePersistentCacheTaskRequest + 43, // 80: dfdaemon.v2.DfdaemonUpload.StatPersistentCacheTask:input_type -> dfdaemon.v2.StatPersistentCacheTaskRequest + 48, // 81: dfdaemon.v2.DfdaemonUpload.DeletePersistentCacheTask:input_type -> dfdaemon.v2.DeletePersistentCacheTaskRequest + 49, // 82: dfdaemon.v2.DfdaemonUpload.SyncPersistentCachePieces:input_type -> dfdaemon.v2.SyncPersistentCachePiecesRequest + 51, // 83: dfdaemon.v2.DfdaemonUpload.SyncHost:input_type -> dfdaemon.v2.SyncHostRequest + 53, // 84: dfdaemon.v2.DfdaemonUpload.ExchangeIBVerbsQueuePairEndpoint:input_type -> dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointRequest + 0, // 85: dfdaemon.v2.DfdaemonDownload.DownloadTask:input_type -> dfdaemon.v2.DownloadTaskRequest + 6, // 86: dfdaemon.v2.DfdaemonDownload.StatTask:input_type -> dfdaemon.v2.StatTaskRequest + 7, // 87: dfdaemon.v2.DfdaemonDownload.StatLocalTask:input_type -> dfdaemon.v2.StatLocalTaskRequest + 9, // 88: dfdaemon.v2.DfdaemonDownload.ListLocalTasks:input_type -> dfdaemon.v2.ListLocalTasksRequest + 11, // 89: dfdaemon.v2.DfdaemonDownload.ListTaskEntries:input_type -> dfdaemon.v2.ListTaskEntriesRequest + 14, // 90: dfdaemon.v2.DfdaemonDownload.DeleteTask:input_type -> dfdaemon.v2.DeleteTaskRequest + 15, // 91: dfdaemon.v2.DfdaemonDownload.DeleteLocalTask:input_type -> dfdaemon.v2.DeleteLocalTaskRequest + 73, // 92: dfdaemon.v2.DfdaemonDownload.DeleteHost:input_type -> google.protobuf.Empty + 16, // 93: dfdaemon.v2.DfdaemonDownload.DownloadCacheTask:input_type -> dfdaemon.v2.DownloadCacheTaskRequest + 23, // 94: dfdaemon.v2.DfdaemonDownload.StatCacheTask:input_type -> dfdaemon.v2.StatCacheTaskRequest + 24, // 95: dfdaemon.v2.DfdaemonDownload.DeleteCacheTask:input_type -> dfdaemon.v2.DeleteCacheTaskRequest + 25, // 96: dfdaemon.v2.DfdaemonDownload.DownloadPersistentTask:input_type -> dfdaemon.v2.DownloadPersistentTaskRequest + 28, // 97: dfdaemon.v2.DfdaemonDownload.UploadPersistentTask:input_type -> dfdaemon.v2.UploadPersistentTaskRequest + 30, // 98: dfdaemon.v2.DfdaemonDownload.StatPersistentTask:input_type -> dfdaemon.v2.StatPersistentTaskRequest + 31, // 99: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentTask:input_type -> dfdaemon.v2.StatLocalPersistentTaskRequest + 33, // 100: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentTasks:input_type -> dfdaemon.v2.ListLocalPersistentTasksRequest + 38, // 101: dfdaemon.v2.DfdaemonDownload.DownloadPersistentCacheTask:input_type -> dfdaemon.v2.DownloadPersistentCacheTaskRequest + 41, // 102: dfdaemon.v2.DfdaemonDownload.UploadPersistentCacheTask:input_type -> dfdaemon.v2.UploadPersistentCacheTaskRequest + 43, // 103: dfdaemon.v2.DfdaemonDownload.StatPersistentCacheTask:input_type -> dfdaemon.v2.StatPersistentCacheTaskRequest + 44, // 104: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentCacheTask:input_type -> dfdaemon.v2.StatLocalPersistentCacheTaskRequest + 46, // 105: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentCacheTasks:input_type -> dfdaemon.v2.ListLocalPersistentCacheTasksRequest + 3, // 106: dfdaemon.v2.DfdaemonUpload.DownloadTask:output_type -> dfdaemon.v2.DownloadTaskResponse + 74, // 107: dfdaemon.v2.DfdaemonUpload.StatTask:output_type -> common.v2.Task + 8, // 108: dfdaemon.v2.DfdaemonUpload.StatLocalTask:output_type -> dfdaemon.v2.StatLocalTaskResponse + 12, // 109: dfdaemon.v2.DfdaemonUpload.ListTaskEntries:output_type -> dfdaemon.v2.ListTaskEntriesResponse + 73, // 110: dfdaemon.v2.DfdaemonUpload.DeleteTask:output_type -> google.protobuf.Empty + 5, // 111: dfdaemon.v2.DfdaemonUpload.SyncPieces:output_type -> dfdaemon.v2.SyncPiecesResponse + 18, // 112: dfdaemon.v2.DfdaemonUpload.DownloadCacheTask:output_type -> dfdaemon.v2.DownloadCacheTaskResponse + 75, // 113: dfdaemon.v2.DfdaemonUpload.StatCacheTask:output_type -> common.v2.CacheTask + 73, // 114: dfdaemon.v2.DfdaemonUpload.DeleteCacheTask:output_type -> google.protobuf.Empty + 20, // 115: dfdaemon.v2.DfdaemonUpload.SyncCachePieces:output_type -> dfdaemon.v2.SyncCachePiecesResponse + 22, // 116: dfdaemon.v2.DfdaemonUpload.DownloadCachePiece:output_type -> dfdaemon.v2.DownloadCachePieceResponse + 27, // 117: dfdaemon.v2.DfdaemonUpload.DownloadPersistentTask:output_type -> dfdaemon.v2.DownloadPersistentTaskResponse + 37, // 118: dfdaemon.v2.DfdaemonUpload.SyncPersistentPieces:output_type -> dfdaemon.v2.SyncPersistentPiecesResponse + 73, // 119: dfdaemon.v2.DfdaemonUpload.UpdatePersistentTask:output_type -> google.protobuf.Empty + 76, // 120: dfdaemon.v2.DfdaemonUpload.StatPersistentTask:output_type -> common.v2.PersistentTask + 73, // 121: dfdaemon.v2.DfdaemonUpload.DeletePersistentTask:output_type -> google.protobuf.Empty + 40, // 122: dfdaemon.v2.DfdaemonUpload.DownloadPersistentCacheTask:output_type -> dfdaemon.v2.DownloadPersistentCacheTaskResponse + 73, // 123: dfdaemon.v2.DfdaemonUpload.UpdatePersistentCacheTask:output_type -> google.protobuf.Empty + 77, // 124: dfdaemon.v2.DfdaemonUpload.StatPersistentCacheTask:output_type -> common.v2.PersistentCacheTask + 73, // 125: dfdaemon.v2.DfdaemonUpload.DeletePersistentCacheTask:output_type -> google.protobuf.Empty + 50, // 126: dfdaemon.v2.DfdaemonUpload.SyncPersistentCachePieces:output_type -> dfdaemon.v2.SyncPersistentCachePiecesResponse + 78, // 127: dfdaemon.v2.DfdaemonUpload.SyncHost:output_type -> common.v2.Host + 54, // 128: dfdaemon.v2.DfdaemonUpload.ExchangeIBVerbsQueuePairEndpoint:output_type -> dfdaemon.v2.ExchangeIBVerbsQueuePairEndpointResponse + 3, // 129: dfdaemon.v2.DfdaemonDownload.DownloadTask:output_type -> dfdaemon.v2.DownloadTaskResponse + 74, // 130: dfdaemon.v2.DfdaemonDownload.StatTask:output_type -> common.v2.Task + 8, // 131: dfdaemon.v2.DfdaemonDownload.StatLocalTask:output_type -> dfdaemon.v2.StatLocalTaskResponse + 10, // 132: dfdaemon.v2.DfdaemonDownload.ListLocalTasks:output_type -> dfdaemon.v2.ListLocalTasksResponse + 12, // 133: dfdaemon.v2.DfdaemonDownload.ListTaskEntries:output_type -> dfdaemon.v2.ListTaskEntriesResponse + 73, // 134: dfdaemon.v2.DfdaemonDownload.DeleteTask:output_type -> google.protobuf.Empty + 73, // 135: dfdaemon.v2.DfdaemonDownload.DeleteLocalTask:output_type -> google.protobuf.Empty + 73, // 136: dfdaemon.v2.DfdaemonDownload.DeleteHost:output_type -> google.protobuf.Empty + 18, // 137: dfdaemon.v2.DfdaemonDownload.DownloadCacheTask:output_type -> dfdaemon.v2.DownloadCacheTaskResponse + 75, // 138: dfdaemon.v2.DfdaemonDownload.StatCacheTask:output_type -> common.v2.CacheTask + 73, // 139: dfdaemon.v2.DfdaemonDownload.DeleteCacheTask:output_type -> google.protobuf.Empty + 27, // 140: dfdaemon.v2.DfdaemonDownload.DownloadPersistentTask:output_type -> dfdaemon.v2.DownloadPersistentTaskResponse + 76, // 141: dfdaemon.v2.DfdaemonDownload.UploadPersistentTask:output_type -> common.v2.PersistentTask + 76, // 142: dfdaemon.v2.DfdaemonDownload.StatPersistentTask:output_type -> common.v2.PersistentTask + 32, // 143: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentTask:output_type -> dfdaemon.v2.StatLocalPersistentTaskResponse + 34, // 144: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentTasks:output_type -> dfdaemon.v2.ListLocalPersistentTasksResponse + 40, // 145: dfdaemon.v2.DfdaemonDownload.DownloadPersistentCacheTask:output_type -> dfdaemon.v2.DownloadPersistentCacheTaskResponse + 77, // 146: dfdaemon.v2.DfdaemonDownload.UploadPersistentCacheTask:output_type -> common.v2.PersistentCacheTask + 77, // 147: dfdaemon.v2.DfdaemonDownload.StatPersistentCacheTask:output_type -> common.v2.PersistentCacheTask + 45, // 148: dfdaemon.v2.DfdaemonDownload.StatLocalPersistentCacheTask:output_type -> dfdaemon.v2.StatLocalPersistentCacheTaskResponse + 47, // 149: dfdaemon.v2.DfdaemonDownload.ListLocalPersistentCacheTasks:output_type -> dfdaemon.v2.ListLocalPersistentCacheTasksResponse + 106, // [106:150] is the sub-list for method output_type + 62, // [62:106] is the sub-list for method input_type + 62, // [62:62] is the sub-list for extension type_name + 62, // [62:62] is the sub-list for extension extendee + 0, // [0:62] is the sub-list for field type_name } func init() { file_pkg_apis_dfdaemon_v2_dfdaemon_proto_init() } diff --git a/pkg/apis/dfdaemon/v2/dfdaemon.pb.validate.go b/pkg/apis/dfdaemon/v2/dfdaemon.pb.validate.go index 919e837f..05c7fdcc 100644 --- a/pkg/apis/dfdaemon/v2/dfdaemon.pb.validate.go +++ b/pkg/apis/dfdaemon/v2/dfdaemon.pb.validate.go @@ -2030,6 +2030,39 @@ func (m *ListTaskEntriesRequest) validate(all bool) error { } + if m.OpenCsg != nil { + + if all { + switch v := interface{}(m.GetOpenCsg()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListTaskEntriesRequestValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListTaskEntriesRequestValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetOpenCsg()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListTaskEntriesRequestValidationError{ + field: "OpenCsg", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if len(errors) > 0 { return ListTaskEntriesRequestMultiError(errors) } diff --git a/pkg/apis/dfdaemon/v2/dfdaemon.proto b/pkg/apis/dfdaemon/v2/dfdaemon.proto index 8b9a2c60..eaa4c6e3 100644 --- a/pkg/apis/dfdaemon/v2/dfdaemon.proto +++ b/pkg/apis/dfdaemon/v2/dfdaemon.proto @@ -204,6 +204,8 @@ message ListTaskEntriesRequest { optional common.v2.HuggingFace hugging_face = 9; // ModelScope protocol information. optional common.v2.ModelScope model_scope = 10; + // OpenCSG protocol information. + optional common.v2.OpenCSG open_csg = 11; } // ListTaskEntriesResponse represents response of ListTaskEntries. diff --git a/proto/common.proto b/proto/common.proto index 95fb412c..7e7a4e4a 100644 --- a/proto/common.proto +++ b/proto/common.proto @@ -667,6 +667,8 @@ message Download { // If metadata_only is true, the peer registers with the scheduler only to report // the metadata of the task, no need to be scheduled for downloading pieces. bool metadata_only = 33; + // OpenCSG protocol information. + optional OpenCSG open_csg = 34; reserved 21; reserved "load_to_cache"; @@ -722,6 +724,17 @@ message ModelScope { optional string base_url = 3; } +// OpenCSG related information. +message OpenCSG { + // Access token for OpenCSG Hub. + optional string token = 1; + // Revision of the OpenCSG repository. It can be a branch name, tag name, or commit hash. This field must not be empty. + // Clients should use "main" when the user does not specify a revision. + string revision = 2; + // Base URL of OpenCSG Hub. If not specified, it defaults to https://hub.opencsg.com/csg/. + optional string base_url = 3; +} + // Range represents download range. message Range { // Start of range. diff --git a/proto/dfdaemon.proto b/proto/dfdaemon.proto index a951ccde..8cac1fc3 100644 --- a/proto/dfdaemon.proto +++ b/proto/dfdaemon.proto @@ -176,6 +176,8 @@ message ListTaskEntriesRequest { optional common.v2.HuggingFace hugging_face = 9; // ModelScope protocol information. optional common.v2.ModelScope model_scope = 10; + // OpenCSG protocol information. + optional common.v2.OpenCSG open_csg = 11; } // ListTaskEntriesResponse represents response of ListTaskEntries. diff --git a/python/dragonfly_api/common_pb2.py b/python/dragonfly_api/common_pb2.py index e07e78fc..4637ab92 100644 --- a/python/dragonfly_api/common_pb2.py +++ b/python/dragonfly_api/common_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\tcommon.v2\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbe\x03\n\x04Peer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\x1d\n\x04task\x18\x07 \x01(\x0b\x32\x0f.common.v2.Task\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xc8\x03\n\tCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\"\n\x04task\x18\x07 \x01(\x0b\x32\x14.common.v2.CacheTask\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xb0\x02\n\x0ePersistentPeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12\'\n\x04task\x18\x05 \x01(\x0b\x32\x19.common.v2.PersistentTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xba\x02\n\x13PersistentCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12,\n\x04task\x18\x05 \x01(\x0b\x32\x1e.common.v2.PersistentCacheTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xcf\x04\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12:\n\x0erequest_header\x18\x08 \x03(\x0b\x32\".common.v2.Task.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xd9\x04\n\tCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12?\n\x0erequest_header\x18\x08 \x03(\x0b\x32\'.common.v2.CacheTask.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xcb\x02\n\x0ePersistentTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x05 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\t\x12&\n\x03ttl\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x03\n\x13PersistentCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12\r\n\x05state\x18\n \x01(\t\x12&\n\x03ttl\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04_tagB\x0e\n\x0c_application\"\x94\x04\n\x04Host\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\x05\x12\x15\n\rdownload_port\x18\x06 \x01(\x05\x12\n\n\x02os\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\x12\x17\n\x0fplatform_family\x18\t \x01(\t\x12\x18\n\x10platform_version\x18\n \x01(\t\x12\x16\n\x0ekernel_version\x18\x0b \x01(\t\x12 \n\x03\x63pu\x18\x0c \x01(\x0b\x32\x0e.common.v2.CPUH\x00\x88\x01\x01\x12&\n\x06memory\x18\r \x01(\x0b\x32\x11.common.v2.MemoryH\x01\x88\x01\x01\x12(\n\x07network\x18\x0e \x01(\x0b\x32\x12.common.v2.NetworkH\x02\x88\x01\x01\x12\"\n\x04\x64isk\x18\x0f \x01(\x0b\x32\x0f.common.v2.DiskH\x03\x88\x01\x01\x12$\n\x05\x62uild\x18\x10 \x01(\x0b\x32\x10.common.v2.BuildH\x04\x88\x01\x01\x12\x1c\n\x14scheduler_cluster_id\x18\x11 \x01(\x04\x12\x16\n\x0e\x64isable_shared\x18\x12 \x01(\x08\x12\x12\n\nproxy_port\x18\x13 \x01(\x05\x12\x0c\n\x04name\x18\x14 \x01(\tB\x06\n\x04_cpuB\t\n\x07_memoryB\n\n\x08_networkB\x07\n\x05_diskB\x08\n\x06_build\"\xc7\x01\n\x03\x43PU\x12\x15\n\rlogical_count\x18\x01 \x01(\r\x12\x16\n\x0ephysical_count\x18\x02 \x01(\r\x12\x0f\n\x07percent\x18\x03 \x01(\x01\x12\x17\n\x0fprocess_percent\x18\x04 \x01(\x01\x12\'\n\x05times\x18\x05 \x01(\x0b\x32\x13.common.v2.CPUTimesH\x00\x88\x01\x01\x12)\n\x06\x63group\x18\x06 \x01(\x0b\x32\x14.common.v2.CgroupCPUH\x01\x88\x01\x01\x42\x08\n\x06_timesB\t\n\x07_cgroup\"@\n\tCgroupCPU\x12\x0e\n\x06period\x18\x01 \x01(\x04\x12\r\n\x05quota\x18\x02 \x01(\x03\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xa4\x01\n\x08\x43PUTimes\x12\x0c\n\x04user\x18\x01 \x01(\x01\x12\x0e\n\x06system\x18\x02 \x01(\x01\x12\x0c\n\x04idle\x18\x03 \x01(\x01\x12\x0c\n\x04nice\x18\x04 \x01(\x01\x12\x0e\n\x06iowait\x18\x05 \x01(\x01\x12\x0b\n\x03irq\x18\x06 \x01(\x01\x12\x0f\n\x07softirq\x18\x07 \x01(\x01\x12\r\n\x05steal\x18\x08 \x01(\x01\x12\r\n\x05guest\x18\t \x01(\x01\x12\x12\n\nguest_nice\x18\n \x01(\x01\"\xb3\x01\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tavailable\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x1c\n\x14process_used_percent\x18\x05 \x01(\x01\x12\x0c\n\x04\x66ree\x18\x06 \x01(\x04\x12,\n\x06\x63group\x18\x07 \x01(\x0b\x32\x17.common.v2.CgroupMemoryH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"B\n\x0c\x43groupMemory\x12\r\n\x05limit\x18\x01 \x01(\x03\x12\r\n\x05usage\x18\x02 \x01(\x04\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xf2\x02\n\x07Network\x12\x1c\n\x14tcp_connection_count\x18\x01 \x01(\r\x12#\n\x1bupload_tcp_connection_count\x18\x02 \x01(\r\x12\x15\n\x08location\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03idc\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x10max_rx_bandwidth\x18\t \x01(\x04\x12\x19\n\x0crx_bandwidth\x18\n \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x10max_tx_bandwidth\x18\x0b \x01(\x04\x12\x19\n\x0ctx_bandwidth\x18\x0c \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_locationB\x06\n\x04_idcB\x0f\n\r_rx_bandwidthB\x0f\n\r_tx_bandwidthJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\rdownload_rateR\x13\x64ownload_rate_limitR\x0bupload_rateR\x11upload_rate_limit\"\x8c\x02\n\x04\x44isk\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0c\n\x04\x66ree\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x14\n\x0cinodes_total\x18\x05 \x01(\x04\x12\x13\n\x0binodes_used\x18\x06 \x01(\x04\x12\x13\n\x0binodes_free\x18\x07 \x01(\x04\x12\x1b\n\x13inodes_used_percent\x18\x08 \x01(\x01\x12\x16\n\x0eread_bandwidth\x18\t \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\n \x01(\x04\x12*\n\x06\x63group\x18\x0b \x01(\x0b\x32\x15.common.v2.CgroupDiskH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"=\n\nCgroupDisk\x12\x16\n\x0eread_bandwidth\x18\x01 \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\x02 \x01(\x04\"\xbc\x01\n\x05\x42uild\x12\x13\n\x0bgit_version\x18\x01 \x01(\t\x12\x17\n\ngit_commit\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngo_version\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0crust_version\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08platform\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_git_commitB\r\n\x0b_go_versionB\x0f\n\r_rust_versionB\x0b\n\t_platform\"\x9e\x0b\n\x08\x44ownload\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12>\n\x0erequest_header\x18\t \x03(\x0b\x32&.common.v2.Download.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x16 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x17 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x18 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x19 \x01(\rH\x0b\x88\x01\x01\x12\x11\n\toverwrite\x18\x1a \x01(\x08\x12 \n\x13\x61\x63tual_piece_length\x18\x1b \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x1c \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1d \x01(\x04H\x0e\x88\x01\x01\x12(\n enable_task_id_based_blob_digest\x18\x1e \x01(\x08\x12\x31\n\x0chugging_face\x18\x1f \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x0f\x88\x01\x01\x12/\n\x0bmodel_scope\x18 \x01(\x0b\x32\x15.common.v2.ModelScopeH\x10\x88\x01\x01\x12\x15\n\rmetadata_only\x18! \x01(\x08\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_countB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scopeJ\x04\x08\x15\x10\x16R\rload_to_cache\"\xb3\x03\n\rObjectStorage\x12\x13\n\x06region\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08\x65ndpoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\raccess_key_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11\x61\x63\x63\x65ss_key_secret\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rsession_token\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0f\x63redential_path\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0epredefined_acl\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\x0esecurity_token\x18\x08 \x01(\tH\x07\x88\x01\x01\x12!\n\x14insecure_skip_verify\x18\t \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_regionB\x0b\n\t_endpointB\x10\n\x0e_access_key_idB\x14\n\x12_access_key_secretB\x10\n\x0e_session_tokenB\x12\n\x10_credential_pathB\x11\n\x0f_predefined_aclB\x11\n\x0f_security_tokenB\x17\n\x15_insecure_skip_verify\":\n\x04HDFS\x12\x1d\n\x10\x64\x65legation_token\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_delegation_token\"a\n\x0bHuggingFace\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"`\n\nModelScope\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"&\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0e\n\x06length\x18\x02 \x01(\x04\"\xac\x02\n\x05Piece\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x16\n\tparent_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0e\n\x06length\x18\x04 \x01(\x04\x12\x0e\n\x06\x64igest\x18\x05 \x01(\t\x12\x14\n\x07\x63ontent\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x31\n\x0ctraffic_type\x18\x07 \x01(\x0e\x32\x16.common.v2.TrafficTypeH\x02\x88\x01\x01\x12\'\n\x04\x63ost\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0c\n\n_parent_idB\n\n\x08_contentB\x0f\n\r_traffic_type*7\n\tSizeScope\x12\n\n\x06NORMAL\x10\x00\x12\t\n\x05SMALL\x10\x01\x12\x08\n\x04TINY\x10\x02\x12\t\n\x05\x45MPTY\x10\x03*I\n\x08TaskType\x12\x0c\n\x08STANDARD\x10\x00\x12\x0e\n\nPERSISTENT\x10\x01\x12\x14\n\x10PERSISTENT_CACHE\x10\x02\x12\t\n\x05\x43\x41\x43HE\x10\x03*B\n\x0bTrafficType\x12\x12\n\x0e\x42\x41\x43K_TO_SOURCE\x10\x00\x12\x0f\n\x0bREMOTE_PEER\x10\x01\x12\x0e\n\nLOCAL_PEER\x10\x02*^\n\x08Priority\x12\n\n\x06LEVEL0\x10\x00\x12\n\n\x06LEVEL1\x10\x01\x12\n\n\x06LEVEL2\x10\x02\x12\n\n\x06LEVEL3\x10\x03\x12\n\n\x06LEVEL4\x10\x04\x12\n\n\x06LEVEL5\x10\x05\x12\n\n\x06LEVEL6\x10\x06\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\tcommon.v2\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbe\x03\n\x04Peer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\x1d\n\x04task\x18\x07 \x01(\x0b\x32\x0f.common.v2.Task\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xc8\x03\n\tCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12%\n\x08priority\x18\x03 \x01(\x0e\x32\x13.common.v2.Priority\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\'\n\x04\x63ost\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x06 \x01(\t\x12\"\n\x04task\x18\x07 \x01(\x0b\x32\x14.common.v2.CacheTask\x12\x1d\n\x04host\x18\x08 \x01(\x0b\x32\x0f.common.v2.Host\x12\x1b\n\x13need_back_to_source\x18\t \x01(\x08\x12.\n\ncreated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x16\x63oncurrent_piece_count\x18\x0c \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_rangeB\x19\n\x17_concurrent_piece_count\"\xb0\x02\n\x0ePersistentPeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12\'\n\x04task\x18\x05 \x01(\x0b\x32\x19.common.v2.PersistentTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xba\x02\n\x13PersistentCachePeer\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\'\n\x04\x63ost\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05state\x18\x04 \x01(\t\x12,\n\x04task\x18\x05 \x01(\x0b\x32\x1e.common.v2.PersistentCacheTask\x12\x1d\n\x04host\x18\x06 \x01(\x0b\x32\x0f.common.v2.Host\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1e\n\x16\x63oncurrent_piece_count\x18\t \x01(\r\"\xcf\x04\n\x04Task\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12:\n\x0erequest_header\x18\x08 \x03(\x0b\x32\".common.v2.Task.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xd9\x04\n\tCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x04type\x18\x02 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x13\n\x06\x64igest\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03tag\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x15\x66iltered_query_params\x18\x07 \x03(\t\x12?\n\x0erequest_header\x18\x08 \x03(\x0b\x32\'.common.v2.CacheTask.RequestHeaderEntry\x12\x16\n\x0e\x63ontent_length\x18\t \x01(\x04\x12\x13\n\x0bpiece_count\x18\n \x01(\r\x12(\n\nsize_scope\x18\x0b \x01(\x0e\x32\x14.common.v2.SizeScope\x12 \n\x06pieces\x18\x0c \x03(\x0b\x32\x10.common.v2.Piece\x12\r\n\x05state\x18\r \x01(\t\x12\x12\n\npeer_count\x18\x0e \x01(\r\x12\x1a\n\x12has_available_peer\x18\x0f \x01(\x08\x12.\n\ncreated_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x06\n\x04_tagB\x0e\n\x0c_application\"\xcb\x02\n\x0ePersistentTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x05 \x01(\x04\x12\x13\n\x0bpiece_count\x18\x06 \x01(\r\x12\r\n\x05state\x18\x07 \x01(\t\x12&\n\x03ttl\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x03\n\x13PersistentCacheTask\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x18persistent_replica_count\x18\x02 \x01(\x04\x12(\n current_persistent_replica_count\x18\x03 \x01(\x04\x12\x1d\n\x15\x63urrent_replica_count\x18\x04 \x01(\x04\x12\x10\n\x03tag\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpiece_length\x18\x07 \x01(\x04\x12\x16\n\x0e\x63ontent_length\x18\x08 \x01(\x04\x12\x13\n\x0bpiece_count\x18\t \x01(\r\x12\r\n\x05state\x18\n \x01(\t\x12&\n\x03ttl\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04_tagB\x0e\n\x0c_application\"\x94\x04\n\x04Host\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x10\n\x08hostname\x18\x03 \x01(\t\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\x05\x12\x15\n\rdownload_port\x18\x06 \x01(\x05\x12\n\n\x02os\x18\x07 \x01(\t\x12\x10\n\x08platform\x18\x08 \x01(\t\x12\x17\n\x0fplatform_family\x18\t \x01(\t\x12\x18\n\x10platform_version\x18\n \x01(\t\x12\x16\n\x0ekernel_version\x18\x0b \x01(\t\x12 \n\x03\x63pu\x18\x0c \x01(\x0b\x32\x0e.common.v2.CPUH\x00\x88\x01\x01\x12&\n\x06memory\x18\r \x01(\x0b\x32\x11.common.v2.MemoryH\x01\x88\x01\x01\x12(\n\x07network\x18\x0e \x01(\x0b\x32\x12.common.v2.NetworkH\x02\x88\x01\x01\x12\"\n\x04\x64isk\x18\x0f \x01(\x0b\x32\x0f.common.v2.DiskH\x03\x88\x01\x01\x12$\n\x05\x62uild\x18\x10 \x01(\x0b\x32\x10.common.v2.BuildH\x04\x88\x01\x01\x12\x1c\n\x14scheduler_cluster_id\x18\x11 \x01(\x04\x12\x16\n\x0e\x64isable_shared\x18\x12 \x01(\x08\x12\x12\n\nproxy_port\x18\x13 \x01(\x05\x12\x0c\n\x04name\x18\x14 \x01(\tB\x06\n\x04_cpuB\t\n\x07_memoryB\n\n\x08_networkB\x07\n\x05_diskB\x08\n\x06_build\"\xc7\x01\n\x03\x43PU\x12\x15\n\rlogical_count\x18\x01 \x01(\r\x12\x16\n\x0ephysical_count\x18\x02 \x01(\r\x12\x0f\n\x07percent\x18\x03 \x01(\x01\x12\x17\n\x0fprocess_percent\x18\x04 \x01(\x01\x12\'\n\x05times\x18\x05 \x01(\x0b\x32\x13.common.v2.CPUTimesH\x00\x88\x01\x01\x12)\n\x06\x63group\x18\x06 \x01(\x0b\x32\x14.common.v2.CgroupCPUH\x01\x88\x01\x01\x42\x08\n\x06_timesB\t\n\x07_cgroup\"@\n\tCgroupCPU\x12\x0e\n\x06period\x18\x01 \x01(\x04\x12\r\n\x05quota\x18\x02 \x01(\x03\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xa4\x01\n\x08\x43PUTimes\x12\x0c\n\x04user\x18\x01 \x01(\x01\x12\x0e\n\x06system\x18\x02 \x01(\x01\x12\x0c\n\x04idle\x18\x03 \x01(\x01\x12\x0c\n\x04nice\x18\x04 \x01(\x01\x12\x0e\n\x06iowait\x18\x05 \x01(\x01\x12\x0b\n\x03irq\x18\x06 \x01(\x01\x12\x0f\n\x07softirq\x18\x07 \x01(\x01\x12\r\n\x05steal\x18\x08 \x01(\x01\x12\r\n\x05guest\x18\t \x01(\x01\x12\x12\n\nguest_nice\x18\n \x01(\x01\"\xb3\x01\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x11\n\tavailable\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x1c\n\x14process_used_percent\x18\x05 \x01(\x01\x12\x0c\n\x04\x66ree\x18\x06 \x01(\x04\x12,\n\x06\x63group\x18\x07 \x01(\x0b\x32\x17.common.v2.CgroupMemoryH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"B\n\x0c\x43groupMemory\x12\r\n\x05limit\x18\x01 \x01(\x03\x12\r\n\x05usage\x18\x02 \x01(\x04\x12\x14\n\x0cused_percent\x18\x03 \x01(\x01\"\xf2\x02\n\x07Network\x12\x1c\n\x14tcp_connection_count\x18\x01 \x01(\r\x12#\n\x1bupload_tcp_connection_count\x18\x02 \x01(\r\x12\x15\n\x08location\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03idc\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x10max_rx_bandwidth\x18\t \x01(\x04\x12\x19\n\x0crx_bandwidth\x18\n \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x10max_tx_bandwidth\x18\x0b \x01(\x04\x12\x19\n\x0ctx_bandwidth\x18\x0c \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_locationB\x06\n\x04_idcB\x0f\n\r_rx_bandwidthB\x0f\n\r_tx_bandwidthJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\rdownload_rateR\x13\x64ownload_rate_limitR\x0bupload_rateR\x11upload_rate_limit\"\x8c\x02\n\x04\x44isk\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0c\n\x04\x66ree\x18\x02 \x01(\x04\x12\x0c\n\x04used\x18\x03 \x01(\x04\x12\x14\n\x0cused_percent\x18\x04 \x01(\x01\x12\x14\n\x0cinodes_total\x18\x05 \x01(\x04\x12\x13\n\x0binodes_used\x18\x06 \x01(\x04\x12\x13\n\x0binodes_free\x18\x07 \x01(\x04\x12\x1b\n\x13inodes_used_percent\x18\x08 \x01(\x01\x12\x16\n\x0eread_bandwidth\x18\t \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\n \x01(\x04\x12*\n\x06\x63group\x18\x0b \x01(\x0b\x32\x15.common.v2.CgroupDiskH\x00\x88\x01\x01\x42\t\n\x07_cgroup\"=\n\nCgroupDisk\x12\x16\n\x0eread_bandwidth\x18\x01 \x01(\x04\x12\x17\n\x0fwrite_bandwidth\x18\x02 \x01(\x04\"\xbc\x01\n\x05\x42uild\x12\x13\n\x0bgit_version\x18\x01 \x01(\t\x12\x17\n\ngit_commit\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngo_version\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0crust_version\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08platform\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_git_commitB\r\n\x0b_go_versionB\x0f\n\r_rust_versionB\x0b\n\t_platform\"\xd6\x0b\n\x08\x44ownload\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12>\n\x0erequest_header\x18\t \x03(\x0b\x32&.common.v2.Download.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x16 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x17 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x18 \x01(\tH\n\x88\x01\x01\x12#\n\x16\x63oncurrent_piece_count\x18\x19 \x01(\rH\x0b\x88\x01\x01\x12\x11\n\toverwrite\x18\x1a \x01(\x08\x12 \n\x13\x61\x63tual_piece_length\x18\x1b \x01(\x04H\x0c\x88\x01\x01\x12\"\n\x15\x61\x63tual_content_length\x18\x1c \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12\x61\x63tual_piece_count\x18\x1d \x01(\x04H\x0e\x88\x01\x01\x12(\n enable_task_id_based_blob_digest\x18\x1e \x01(\x08\x12\x31\n\x0chugging_face\x18\x1f \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x0f\x88\x01\x01\x12/\n\x0bmodel_scope\x18 \x01(\x0b\x32\x15.common.v2.ModelScopeH\x10\x88\x01\x01\x12\x15\n\rmetadata_only\x18! \x01(\x08\x12)\n\x08open_csg\x18\" \x01(\x0b\x32\x12.common.v2.OpenCSGH\x11\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ipB\x19\n\x17_concurrent_piece_countB\x16\n\x14_actual_piece_lengthB\x18\n\x16_actual_content_lengthB\x15\n\x13_actual_piece_countB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scopeB\x0b\n\t_open_csgJ\x04\x08\x15\x10\x16R\rload_to_cache\"\xb3\x03\n\rObjectStorage\x12\x13\n\x06region\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08\x65ndpoint\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\raccess_key_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11\x61\x63\x63\x65ss_key_secret\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rsession_token\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0f\x63redential_path\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0epredefined_acl\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\x0esecurity_token\x18\x08 \x01(\tH\x07\x88\x01\x01\x12!\n\x14insecure_skip_verify\x18\t \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_regionB\x0b\n\t_endpointB\x10\n\x0e_access_key_idB\x14\n\x12_access_key_secretB\x10\n\x0e_session_tokenB\x12\n\x10_credential_pathB\x11\n\x0f_predefined_aclB\x11\n\x0f_security_tokenB\x17\n\x15_insecure_skip_verify\":\n\x04HDFS\x12\x1d\n\x10\x64\x65legation_token\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_delegation_token\"a\n\x0bHuggingFace\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"`\n\nModelScope\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"]\n\x07OpenCSG\x12\x12\n\x05token\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x15\n\x08\x62\x61se_url\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_tokenB\x0b\n\t_base_url\"&\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0e\n\x06length\x18\x02 \x01(\x04\"\xac\x02\n\x05Piece\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x16\n\tparent_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0e\n\x06length\x18\x04 \x01(\x04\x12\x0e\n\x06\x64igest\x18\x05 \x01(\t\x12\x14\n\x07\x63ontent\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12\x31\n\x0ctraffic_type\x18\x07 \x01(\x0e\x32\x16.common.v2.TrafficTypeH\x02\x88\x01\x01\x12\'\n\x04\x63ost\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0c\n\n_parent_idB\n\n\x08_contentB\x0f\n\r_traffic_type*7\n\tSizeScope\x12\n\n\x06NORMAL\x10\x00\x12\t\n\x05SMALL\x10\x01\x12\x08\n\x04TINY\x10\x02\x12\t\n\x05\x45MPTY\x10\x03*I\n\x08TaskType\x12\x0c\n\x08STANDARD\x10\x00\x12\x0e\n\nPERSISTENT\x10\x01\x12\x14\n\x10PERSISTENT_CACHE\x10\x02\x12\t\n\x05\x43\x41\x43HE\x10\x03*B\n\x0bTrafficType\x12\x12\n\x0e\x42\x41\x43K_TO_SOURCE\x10\x00\x12\x0f\n\x0bREMOTE_PEER\x10\x01\x12\x0e\n\nLOCAL_PEER\x10\x02*^\n\x08Priority\x12\n\n\x06LEVEL0\x10\x00\x12\n\n\x06LEVEL1\x10\x01\x12\n\n\x06LEVEL2\x10\x02\x12\n\n\x06LEVEL3\x10\x03\x12\n\n\x06LEVEL4\x10\x04\x12\n\n\x06LEVEL5\x10\x05\x12\n\n\x06LEVEL6\x10\x06\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,14 +39,14 @@ _globals['_CACHETASK_REQUESTHEADERENTRY']._serialized_options = b'8\001' _globals['_DOWNLOAD_REQUESTHEADERENTRY']._loaded_options = None _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_options = b'8\001' - _globals['_SIZESCOPE']._serialized_start=8182 - _globals['_SIZESCOPE']._serialized_end=8237 - _globals['_TASKTYPE']._serialized_start=8239 - _globals['_TASKTYPE']._serialized_end=8312 - _globals['_TRAFFICTYPE']._serialized_start=8314 - _globals['_TRAFFICTYPE']._serialized_end=8380 - _globals['_PRIORITY']._serialized_start=8382 - _globals['_PRIORITY']._serialized_end=8476 + _globals['_SIZESCOPE']._serialized_start=8333 + _globals['_SIZESCOPE']._serialized_end=8388 + _globals['_TASKTYPE']._serialized_start=8390 + _globals['_TASKTYPE']._serialized_end=8463 + _globals['_TRAFFICTYPE']._serialized_start=8465 + _globals['_TRAFFICTYPE']._serialized_end=8531 + _globals['_PRIORITY']._serialized_start=8533 + _globals['_PRIORITY']._serialized_end=8627 _globals['_PEER']._serialized_start=93 _globals['_PEER']._serialized_end=539 _globals['_CACHEPEER']._serialized_start=542 @@ -88,19 +88,21 @@ _globals['_BUILD']._serialized_start=5513 _globals['_BUILD']._serialized_end=5701 _globals['_DOWNLOAD']._serialized_start=5704 - _globals['_DOWNLOAD']._serialized_end=7142 + _globals['_DOWNLOAD']._serialized_end=7198 _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_start=2129 _globals['_DOWNLOAD_REQUESTHEADERENTRY']._serialized_end=2181 - _globals['_OBJECTSTORAGE']._serialized_start=7145 - _globals['_OBJECTSTORAGE']._serialized_end=7580 - _globals['_HDFS']._serialized_start=7582 - _globals['_HDFS']._serialized_end=7640 - _globals['_HUGGINGFACE']._serialized_start=7642 - _globals['_HUGGINGFACE']._serialized_end=7739 - _globals['_MODELSCOPE']._serialized_start=7741 - _globals['_MODELSCOPE']._serialized_end=7837 - _globals['_RANGE']._serialized_start=7839 - _globals['_RANGE']._serialized_end=7877 - _globals['_PIECE']._serialized_start=7880 - _globals['_PIECE']._serialized_end=8180 + _globals['_OBJECTSTORAGE']._serialized_start=7201 + _globals['_OBJECTSTORAGE']._serialized_end=7636 + _globals['_HDFS']._serialized_start=7638 + _globals['_HDFS']._serialized_end=7696 + _globals['_HUGGINGFACE']._serialized_start=7698 + _globals['_HUGGINGFACE']._serialized_end=7795 + _globals['_MODELSCOPE']._serialized_start=7797 + _globals['_MODELSCOPE']._serialized_end=7893 + _globals['_OPENCSG']._serialized_start=7895 + _globals['_OPENCSG']._serialized_end=7988 + _globals['_RANGE']._serialized_start=7990 + _globals['_RANGE']._serialized_end=8028 + _globals['_PIECE']._serialized_start=8031 + _globals['_PIECE']._serialized_end=8331 # @@protoc_insertion_point(module_scope) diff --git a/python/dragonfly_api/common_pb2.pyi b/python/dragonfly_api/common_pb2.pyi index 63ab8a55..5e0e34da 100644 --- a/python/dragonfly_api/common_pb2.pyi +++ b/python/dragonfly_api/common_pb2.pyi @@ -494,7 +494,7 @@ class Build(_message.Message): def __init__(self, git_version: _Optional[str] = ..., git_commit: _Optional[str] = ..., go_version: _Optional[str] = ..., rust_version: _Optional[str] = ..., platform: _Optional[str] = ...) -> None: ... class Download(_message.Message): - __slots__ = ("url", "digest", "range", "type", "tag", "application", "priority", "filtered_query_params", "request_header", "piece_length", "output_path", "timeout", "disable_back_to_source", "need_back_to_source", "certificate_chain", "prefetch", "object_storage", "hdfs", "is_prefetch", "need_piece_content", "force_hard_link", "content_for_calculating_task_id", "remote_ip", "concurrent_piece_count", "overwrite", "actual_piece_length", "actual_content_length", "actual_piece_count", "enable_task_id_based_blob_digest", "hugging_face", "model_scope", "metadata_only") + __slots__ = ("url", "digest", "range", "type", "tag", "application", "priority", "filtered_query_params", "request_header", "piece_length", "output_path", "timeout", "disable_back_to_source", "need_back_to_source", "certificate_chain", "prefetch", "object_storage", "hdfs", "is_prefetch", "need_piece_content", "force_hard_link", "content_for_calculating_task_id", "remote_ip", "concurrent_piece_count", "overwrite", "actual_piece_length", "actual_content_length", "actual_piece_count", "enable_task_id_based_blob_digest", "hugging_face", "model_scope", "metadata_only", "open_csg") class RequestHeaderEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -534,6 +534,7 @@ class Download(_message.Message): HUGGING_FACE_FIELD_NUMBER: _ClassVar[int] MODEL_SCOPE_FIELD_NUMBER: _ClassVar[int] METADATA_ONLY_FIELD_NUMBER: _ClassVar[int] + OPEN_CSG_FIELD_NUMBER: _ClassVar[int] url: str digest: str range: Range @@ -566,7 +567,8 @@ class Download(_message.Message): hugging_face: HuggingFace model_scope: ModelScope metadata_only: bool - def __init__(self, url: _Optional[str] = ..., digest: _Optional[str] = ..., range: _Optional[_Union[Range, _Mapping]] = ..., type: _Optional[_Union[TaskType, str]] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., priority: _Optional[_Union[Priority, str]] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., request_header: _Optional[_Mapping[str, str]] = ..., piece_length: _Optional[int] = ..., output_path: _Optional[str] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., disable_back_to_source: bool = ..., need_back_to_source: bool = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., prefetch: bool = ..., object_storage: _Optional[_Union[ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[HDFS, _Mapping]] = ..., is_prefetch: bool = ..., need_piece_content: bool = ..., force_hard_link: bool = ..., content_for_calculating_task_id: _Optional[str] = ..., remote_ip: _Optional[str] = ..., concurrent_piece_count: _Optional[int] = ..., overwrite: bool = ..., actual_piece_length: _Optional[int] = ..., actual_content_length: _Optional[int] = ..., actual_piece_count: _Optional[int] = ..., enable_task_id_based_blob_digest: bool = ..., hugging_face: _Optional[_Union[HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[ModelScope, _Mapping]] = ..., metadata_only: bool = ...) -> None: ... + open_csg: OpenCSG + def __init__(self, url: _Optional[str] = ..., digest: _Optional[str] = ..., range: _Optional[_Union[Range, _Mapping]] = ..., type: _Optional[_Union[TaskType, str]] = ..., tag: _Optional[str] = ..., application: _Optional[str] = ..., priority: _Optional[_Union[Priority, str]] = ..., filtered_query_params: _Optional[_Iterable[str]] = ..., request_header: _Optional[_Mapping[str, str]] = ..., piece_length: _Optional[int] = ..., output_path: _Optional[str] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., disable_back_to_source: bool = ..., need_back_to_source: bool = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., prefetch: bool = ..., object_storage: _Optional[_Union[ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[HDFS, _Mapping]] = ..., is_prefetch: bool = ..., need_piece_content: bool = ..., force_hard_link: bool = ..., content_for_calculating_task_id: _Optional[str] = ..., remote_ip: _Optional[str] = ..., concurrent_piece_count: _Optional[int] = ..., overwrite: bool = ..., actual_piece_length: _Optional[int] = ..., actual_content_length: _Optional[int] = ..., actual_piece_count: _Optional[int] = ..., enable_task_id_based_blob_digest: bool = ..., hugging_face: _Optional[_Union[HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[ModelScope, _Mapping]] = ..., metadata_only: bool = ..., open_csg: _Optional[_Union[OpenCSG, _Mapping]] = ...) -> None: ... class ObjectStorage(_message.Message): __slots__ = ("region", "endpoint", "access_key_id", "access_key_secret", "session_token", "credential_path", "predefined_acl", "security_token", "insecure_skip_verify") @@ -616,6 +618,16 @@ class ModelScope(_message.Message): base_url: str def __init__(self, token: _Optional[str] = ..., revision: _Optional[str] = ..., base_url: _Optional[str] = ...) -> None: ... +class OpenCSG(_message.Message): + __slots__ = ("token", "revision", "base_url") + TOKEN_FIELD_NUMBER: _ClassVar[int] + REVISION_FIELD_NUMBER: _ClassVar[int] + BASE_URL_FIELD_NUMBER: _ClassVar[int] + token: str + revision: str + base_url: str + def __init__(self, token: _Optional[str] = ..., revision: _Optional[str] = ..., base_url: _Optional[str] = ...) -> None: ... + class Range(_message.Message): __slots__ = ("start", "length") START_FIELD_NUMBER: _ClassVar[int] diff --git a/python/dragonfly_api/dfdaemon_pb2.py b/python/dragonfly_api/dfdaemon_pb2.py index bb22de36..208b5371 100644 --- a/python/dragonfly_api/dfdaemon_pb2.py +++ b/python/dragonfly_api/dfdaemon_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x64\x66\x64\x61\x65mon.proto\x12\x0b\x64\x66\x64\x61\x65mon.v2\x1a\x0c\x63ommon.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"<\n\x13\x44ownloadTaskRequest\x12%\n\x08\x64ownload\x18\x01 \x01(\x0b\x32\x13.common.v2.Download\"\xaa\x02\n\x1b\x44ownloadTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12U\n\x0fresponse_header\x18\x03 \x03(\x0b\x32<.dfdaemon.v2.DownloadTaskStartedResponse.ResponseHeaderEntry\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x0bis_finished\x18\x05 \x01(\x08\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_range\"@\n\x1d\x44ownloadPieceFinishedResponse\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"\x81\x02\n\x14\x44ownloadTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12R\n\x1e\x64ownload_task_started_response\x18\x04 \x01(\x0b\x32(.dfdaemon.v2.DownloadTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"W\n\x11SyncPiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\x9a\x01\n\x12SyncPiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"Z\n\x0fStatTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ipJ\x04\x08\x03\x10\x04R\nlocal_only\"M\n\x14StatLocalTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xef\x04\n\x15StatLocalTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12O\n\x0fresponse_header\x18\x04 \x03(\x0b\x32\x36.dfdaemon.v2.StatLocalTaskResponse.ResponseHeaderEntry\x12\x17\n\x0fuploading_count\x18\x05 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x06 \x01(\x04\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\rprefetched_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x10\n\x0e_prefetched_atB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"=\n\x15ListLocalTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"K\n\x16ListLocalTasksResponse\x12\x31\n\x05tasks\x18\x01 \x03(\x0b\x32\".dfdaemon.v2.StatLocalTaskResponse\"\xb6\x04\n\x16ListTaskEntriesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12N\n\x0erequest_header\x18\x03 \x03(\x0b\x32\x36.dfdaemon.v2.ListTaskEntriesRequest.RequestHeaderEntry\x12/\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\x05 \x03(\x0c\x12\x35\n\x0eobject_storage\x18\x06 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x01\x88\x01\x01\x12\"\n\x04hdfs\x18\x07 \x01(\x0b\x32\x0f.common.v2.HDFSH\x02\x88\x01\x01\x12\x16\n\tremote_ip\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x31\n\x0chugging_face\x18\t \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x04\x88\x01\x01\x12/\n\x0bmodel_scope\x18\n \x01(\x0b\x32\x15.common.v2.ModelScopeH\x05\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\x0c\n\n_remote_ipB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scope\"\x8a\x02\n\x17ListTaskEntriesResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12Q\n\x0fresponse_header\x18\x02 \x03(\x0b\x32\x38.dfdaemon.v2.ListTaskEntriesResponse.ResponseHeaderEntry\x12\x18\n\x0bstatus_code\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12#\n\x07\x65ntries\x18\x04 \x03(\x0b\x32\x12.dfdaemon.v2.Entry\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_status_code\"<\n\x05\x45ntry\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontent_length\x18\x02 \x01(\x04\x12\x0e\n\x06is_dir\x18\x03 \x01(\x08\"J\n\x11\x44\x65leteTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"O\n\x16\x44\x65leteLocalTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xdc\x07\n\x18\x44ownloadCacheTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12P\n\x0erequest_header\x18\t \x03(\x0b\x32\x38.dfdaemon.v2.DownloadCacheTaskRequest.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x15 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x16 \x01(\tH\n\x88\x01\x01\x12\x11\n\toverwrite\x18\x17 \x01(\x08\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ip\"\xb4\x02\n DownloadCacheTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12Z\n\x0fresponse_header\x18\x03 \x03(\x0b\x32\x41.dfdaemon.v2.DownloadCacheTaskStartedResponse.ResponseHeaderEntry\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x0bis_finished\x18\x05 \x01(\x08\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_range\"\x91\x02\n\x19\x44ownloadCacheTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12]\n$download_cache_task_started_response\x18\x04 \x01(\x0b\x32-.dfdaemon.v2.DownloadCacheTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"b\n\x16SyncCachePiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12&\n\x1einterested_cache_piece_numbers\x18\x03 \x03(\r\"I\n\x17SyncCachePiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\"S\n\x19\x44ownloadCachePieceRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x14\n\x0cpiece_number\x18\x03 \x01(\r\"]\n\x1a\x44ownloadCachePieceResponse\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_digest\"M\n\x14StatCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"O\n\x16\x44\x65leteCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe7\x02\n\x1d\x44ownloadPersistentTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x12\n\npersistent\x18\x03 \x01(\x08\x12\x18\n\x0boutput_path\x18\x04 \x01(\tH\x00\x88\x01\x01\x12/\n\x07timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12\x1a\n\x12need_piece_content\x18\x06 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x07 \x01(\x08\x12\x13\n\x06\x64igest\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tremote_ip\x18\t \x01(\tH\x03\x88\x01\x01\x12\x11\n\toverwrite\x18\n \x01(\x08\x42\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\t\n\x07_digestB\x0c\n\n_remote_ip\"?\n%DownloadPersistentTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\"\xa0\x02\n\x1e\x44ownloadPersistentTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12g\n)download_persistent_task_started_response\x18\x04 \x01(\x0b\x32\x32.dfdaemon.v2.DownloadPersistentTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"\x97\x02\n\x1bUploadPersistentTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x0c\n\x04path\x18\x03 \x01(\t\x12 \n\x18persistent_replica_count\x18\x04 \x01(\x04\x12&\n\x03ttl\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x16\n\tremote_ip\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_timeoutB\x0c\n\n_remote_ip\"h\n\x1bUpdatePersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x16\n\tremote_ip\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"R\n\x19StatPersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"W\n\x1eStatLocalPersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe3\x03\n\x1fStatLocalPersistentTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x0cpiece_length\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x05 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\x0fuploading_count\x18\x06 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x07 \x01(\x04\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"G\n\x1fListLocalPersistentTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"_\n ListLocalPersistentTasksResponse\x12;\n\x05tasks\x18\x01 \x03(\x0b\x32,.dfdaemon.v2.StatLocalPersistentTaskResponse\"T\n\x1b\x44\x65letePersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"a\n\x1bSyncPersistentPiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\xa4\x01\n\x1cSyncPersistentPiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"\x82\x03\n\"DownloadPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x10\n\x03tag\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x05 \x01(\tH\x02\x88\x01\x01\x12/\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationH\x03\x88\x01\x01\x12\x1a\n\x12need_piece_content\x18\x07 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x08 \x01(\x08\x12\x13\n\x06\x64igest\x18\t \x01(\tH\x04\x88\x01\x01\x12\x16\n\tremote_ip\x18\n \x01(\tH\x05\x88\x01\x01\x12\x11\n\toverwrite\x18\x0b \x01(\x08\x42\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\t\n\x07_digestB\x0c\n\n_remote_ip\"D\n*DownloadPersistentCacheTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\"\xb0\x02\n#DownloadPersistentCacheTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12r\n/download_persistent_cache_task_started_response\x18\x04 \x01(\x0b\x32\x37.dfdaemon.v2.DownloadPersistentCacheTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"\x9f\x03\n UploadPersistentCacheTaskRequest\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12 \n\x18persistent_replica_count\x18\x03 \x01(\x04\x12\x10\n\x03tag\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cpiece_length\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12&\n\x03ttl\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x07timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x16\n\tremote_ip\x18\t \x01(\tH\x05\x88\x01\x01\x42\"\n _content_for_calculating_task_idB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\n\n\x08_timeoutB\x0c\n\n_remote_ip\"m\n UpdatePersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x16\n\tremote_ip\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"W\n\x1eStatPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\\\n#StatLocalPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe8\x03\n$StatLocalPersistentCacheTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x0cpiece_length\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x05 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\x0fuploading_count\x18\x06 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x07 \x01(\x04\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"L\n$ListLocalPersistentCacheTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"i\n%ListLocalPersistentCacheTasksResponse\x12@\n\x05tasks\x18\x01 \x03(\x0b\x32\x31.dfdaemon.v2.StatLocalPersistentCacheTaskResponse\"Y\n DeletePersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"f\n SyncPersistentCachePiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\xa9\x01\n!SyncPersistentCachePiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"3\n\x0fSyncHostRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07peer_id\x18\x02 \x01(\t\"A\n\x18IBVerbsQueuePairEndpoint\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x0b\n\x03lid\x18\x02 \x01(\r\x12\x0b\n\x03gid\x18\x03 \x01(\x0c\x32\x97\x10\n\x0e\x44\x66\x64\x61\x65monUpload\x12U\n\x0c\x44ownloadTask\x12 .dfdaemon.v2.DownloadTaskRequest\x1a!.dfdaemon.v2.DownloadTaskResponse0\x01\x12\x39\n\x08StatTask\x12\x1c.dfdaemon.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12V\n\rStatLocalTask\x12!.dfdaemon.v2.StatLocalTaskRequest\x1a\".dfdaemon.v2.StatLocalTaskResponse\x12\\\n\x0fListTaskEntries\x12#.dfdaemon.v2.ListTaskEntriesRequest\x1a$.dfdaemon.v2.ListTaskEntriesResponse\x12\x44\n\nDeleteTask\x12\x1e.dfdaemon.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12O\n\nSyncPieces\x12\x1e.dfdaemon.v2.SyncPiecesRequest\x1a\x1f.dfdaemon.v2.SyncPiecesResponse0\x01\x12\x64\n\x11\x44ownloadCacheTask\x12%.dfdaemon.v2.DownloadCacheTaskRequest\x1a&.dfdaemon.v2.DownloadCacheTaskResponse0\x01\x12H\n\rStatCacheTask\x12!.dfdaemon.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12N\n\x0f\x44\x65leteCacheTask\x12#.dfdaemon.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fSyncCachePieces\x12#.dfdaemon.v2.SyncCachePiecesRequest\x1a$.dfdaemon.v2.SyncCachePiecesResponse0\x01\x12\x65\n\x12\x44ownloadCachePiece\x12&.dfdaemon.v2.DownloadCachePieceRequest\x1a\'.dfdaemon.v2.DownloadCachePieceResponse\x12s\n\x16\x44ownloadPersistentTask\x12*.dfdaemon.v2.DownloadPersistentTaskRequest\x1a+.dfdaemon.v2.DownloadPersistentTaskResponse0\x01\x12m\n\x14SyncPersistentPieces\x12(.dfdaemon.v2.SyncPersistentPiecesRequest\x1a).dfdaemon.v2.SyncPersistentPiecesResponse0\x01\x12X\n\x14UpdatePersistentTask\x12(.dfdaemon.v2.UpdatePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12W\n\x12StatPersistentTask\x12&.dfdaemon.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12X\n\x14\x44\x65letePersistentTask\x12(.dfdaemon.v2.DeletePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12\x82\x01\n\x1b\x44ownloadPersistentCacheTask\x12/.dfdaemon.v2.DownloadPersistentCacheTaskRequest\x1a\x30.dfdaemon.v2.DownloadPersistentCacheTaskResponse0\x01\x12\x62\n\x19UpdatePersistentCacheTask\x12-.dfdaemon.v2.UpdatePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12\x66\n\x17StatPersistentCacheTask\x12+.dfdaemon.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x62\n\x19\x44\x65letePersistentCacheTask\x12-.dfdaemon.v2.DeletePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12|\n\x19SyncPersistentCachePieces\x12-.dfdaemon.v2.SyncPersistentCachePiecesRequest\x1a..dfdaemon.v2.SyncPersistentCachePiecesResponse0\x01\x12;\n\x08SyncHost\x12\x1c.dfdaemon.v2.SyncHostRequest\x1a\x0f.common.v2.Host0\x01\x32\x8b\x10\n\x10\x44\x66\x64\x61\x65monDownload\x12U\n\x0c\x44ownloadTask\x12 .dfdaemon.v2.DownloadTaskRequest\x1a!.dfdaemon.v2.DownloadTaskResponse0\x01\x12\x39\n\x08StatTask\x12\x1c.dfdaemon.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12V\n\rStatLocalTask\x12!.dfdaemon.v2.StatLocalTaskRequest\x1a\".dfdaemon.v2.StatLocalTaskResponse\x12Y\n\x0eListLocalTasks\x12\".dfdaemon.v2.ListLocalTasksRequest\x1a#.dfdaemon.v2.ListLocalTasksResponse\x12\\\n\x0fListTaskEntries\x12#.dfdaemon.v2.ListTaskEntriesRequest\x1a$.dfdaemon.v2.ListTaskEntriesResponse\x12\x44\n\nDeleteTask\x12\x1e.dfdaemon.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12N\n\x0f\x44\x65leteLocalTask\x12#.dfdaemon.v2.DeleteLocalTaskRequest\x1a\x16.google.protobuf.Empty\x12<\n\nDeleteHost\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x64\n\x11\x44ownloadCacheTask\x12%.dfdaemon.v2.DownloadCacheTaskRequest\x1a&.dfdaemon.v2.DownloadCacheTaskResponse0\x01\x12H\n\rStatCacheTask\x12!.dfdaemon.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12N\n\x0f\x44\x65leteCacheTask\x12#.dfdaemon.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x44ownloadPersistentTask\x12*.dfdaemon.v2.DownloadPersistentTaskRequest\x1a+.dfdaemon.v2.DownloadPersistentTaskResponse0\x01\x12[\n\x14UploadPersistentTask\x12(.dfdaemon.v2.UploadPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12W\n\x12StatPersistentTask\x12&.dfdaemon.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12t\n\x17StatLocalPersistentTask\x12+.dfdaemon.v2.StatLocalPersistentTaskRequest\x1a,.dfdaemon.v2.StatLocalPersistentTaskResponse\x12w\n\x18ListLocalPersistentTasks\x12,.dfdaemon.v2.ListLocalPersistentTasksRequest\x1a-.dfdaemon.v2.ListLocalPersistentTasksResponse\x12\x82\x01\n\x1b\x44ownloadPersistentCacheTask\x12/.dfdaemon.v2.DownloadPersistentCacheTaskRequest\x1a\x30.dfdaemon.v2.DownloadPersistentCacheTaskResponse0\x01\x12j\n\x19UploadPersistentCacheTask\x12-.dfdaemon.v2.UploadPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x66\n\x17StatPersistentCacheTask\x12+.dfdaemon.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x83\x01\n\x1cStatLocalPersistentCacheTask\x12\x30.dfdaemon.v2.StatLocalPersistentCacheTaskRequest\x1a\x31.dfdaemon.v2.StatLocalPersistentCacheTaskResponse\x12\x86\x01\n\x1dListLocalPersistentCacheTasks\x12\x31.dfdaemon.v2.ListLocalPersistentCacheTasksRequest\x1a\x32.dfdaemon.v2.ListLocalPersistentCacheTasksResponseb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x64\x66\x64\x61\x65mon.proto\x12\x0b\x64\x66\x64\x61\x65mon.v2\x1a\x0c\x63ommon.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"<\n\x13\x44ownloadTaskRequest\x12%\n\x08\x64ownload\x18\x01 \x01(\x0b\x32\x13.common.v2.Download\"\xaa\x02\n\x1b\x44ownloadTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12U\n\x0fresponse_header\x18\x03 \x03(\x0b\x32<.dfdaemon.v2.DownloadTaskStartedResponse.ResponseHeaderEntry\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x0bis_finished\x18\x05 \x01(\x08\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_range\"@\n\x1d\x44ownloadPieceFinishedResponse\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\"\x81\x02\n\x14\x44ownloadTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12R\n\x1e\x64ownload_task_started_response\x18\x04 \x01(\x0b\x32(.dfdaemon.v2.DownloadTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"W\n\x11SyncPiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\x9a\x01\n\x12SyncPiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"Z\n\x0fStatTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ipJ\x04\x08\x03\x10\x04R\nlocal_only\"M\n\x14StatLocalTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xef\x04\n\x15StatLocalTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x19\n\x0cpiece_length\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12O\n\x0fresponse_header\x18\x04 \x03(\x0b\x32\x36.dfdaemon.v2.StatLocalTaskResponse.ResponseHeaderEntry\x12\x17\n\x0fuploading_count\x18\x05 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x06 \x01(\x04\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\rprefetched_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x10\n\x0e_prefetched_atB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"=\n\x15ListLocalTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"K\n\x16ListLocalTasksResponse\x12\x31\n\x05tasks\x18\x01 \x03(\x0b\x32\".dfdaemon.v2.StatLocalTaskResponse\"\xee\x04\n\x16ListTaskEntriesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12N\n\x0erequest_header\x18\x03 \x03(\x0b\x32\x36.dfdaemon.v2.ListTaskEntriesRequest.RequestHeaderEntry\x12/\n\x07timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x19\n\x11\x63\x65rtificate_chain\x18\x05 \x03(\x0c\x12\x35\n\x0eobject_storage\x18\x06 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x01\x88\x01\x01\x12\"\n\x04hdfs\x18\x07 \x01(\x0b\x32\x0f.common.v2.HDFSH\x02\x88\x01\x01\x12\x16\n\tremote_ip\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x31\n\x0chugging_face\x18\t \x01(\x0b\x32\x16.common.v2.HuggingFaceH\x04\x88\x01\x01\x12/\n\x0bmodel_scope\x18\n \x01(\x0b\x32\x15.common.v2.ModelScopeH\x05\x88\x01\x01\x12)\n\x08open_csg\x18\x0b \x01(\x0b\x32\x12.common.v2.OpenCSGH\x06\x88\x01\x01\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\x0c\n\n_remote_ipB\x0f\n\r_hugging_faceB\x0e\n\x0c_model_scopeB\x0b\n\t_open_csg\"\x8a\x02\n\x17ListTaskEntriesResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12Q\n\x0fresponse_header\x18\x02 \x03(\x0b\x32\x38.dfdaemon.v2.ListTaskEntriesResponse.ResponseHeaderEntry\x12\x18\n\x0bstatus_code\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12#\n\x07\x65ntries\x18\x04 \x03(\x0b\x32\x12.dfdaemon.v2.Entry\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_status_code\"<\n\x05\x45ntry\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontent_length\x18\x02 \x01(\x04\x12\x0e\n\x06is_dir\x18\x03 \x01(\x08\"J\n\x11\x44\x65leteTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"O\n\x16\x44\x65leteLocalTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xdc\x07\n\x18\x44ownloadCacheTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x05range\x18\x03 \x01(\x0b\x32\x10.common.v2.RangeH\x01\x88\x01\x01\x12!\n\x04type\x18\x04 \x01(\x0e\x32\x13.common.v2.TaskType\x12\x10\n\x03tag\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x08priority\x18\x07 \x01(\x0e\x32\x13.common.v2.Priority\x12\x1d\n\x15\x66iltered_query_params\x18\x08 \x03(\t\x12P\n\x0erequest_header\x18\t \x03(\x0b\x32\x38.dfdaemon.v2.DownloadCacheTaskRequest.RequestHeaderEntry\x12\x19\n\x0cpiece_length\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x0b \x01(\tH\x05\x88\x01\x01\x12/\n\x07timeout\x18\x0c \x01(\x0b\x32\x19.google.protobuf.DurationH\x06\x88\x01\x01\x12\x1e\n\x16\x64isable_back_to_source\x18\r \x01(\x08\x12\x1b\n\x13need_back_to_source\x18\x0e \x01(\x08\x12\x19\n\x11\x63\x65rtificate_chain\x18\x0f \x03(\x0c\x12\x10\n\x08prefetch\x18\x10 \x01(\x08\x12\x35\n\x0eobject_storage\x18\x11 \x01(\x0b\x32\x18.common.v2.ObjectStorageH\x07\x88\x01\x01\x12\"\n\x04hdfs\x18\x12 \x01(\x0b\x32\x0f.common.v2.HDFSH\x08\x88\x01\x01\x12\x13\n\x0bis_prefetch\x18\x13 \x01(\x08\x12\x1a\n\x12need_piece_content\x18\x14 \x01(\x08\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x15 \x01(\tH\t\x88\x01\x01\x12\x16\n\tremote_ip\x18\x16 \x01(\tH\n\x88\x01\x01\x12\x11\n\toverwrite\x18\x17 \x01(\x08\x1a\x34\n\x12RequestHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_digestB\x08\n\x06_rangeB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\x11\n\x0f_object_storageB\x07\n\x05_hdfsB\"\n _content_for_calculating_task_idB\x0c\n\n_remote_ip\"\xb4\x02\n DownloadCacheTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\x12$\n\x05range\x18\x02 \x01(\x0b\x32\x10.common.v2.RangeH\x00\x88\x01\x01\x12Z\n\x0fresponse_header\x18\x03 \x03(\x0b\x32\x41.dfdaemon.v2.DownloadCacheTaskStartedResponse.ResponseHeaderEntry\x12 \n\x06pieces\x18\x04 \x03(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x0bis_finished\x18\x05 \x01(\x08\x1a\x35\n\x13ResponseHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06_range\"\x91\x02\n\x19\x44ownloadCacheTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12]\n$download_cache_task_started_response\x18\x04 \x01(\x0b\x32-.dfdaemon.v2.DownloadCacheTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"b\n\x16SyncCachePiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12&\n\x1einterested_cache_piece_numbers\x18\x03 \x03(\r\"I\n\x17SyncCachePiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\"S\n\x19\x44ownloadCachePieceRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x14\n\x0cpiece_number\x18\x03 \x01(\r\"]\n\x1a\x44ownloadCachePieceResponse\x12\x1f\n\x05piece\x18\x01 \x01(\x0b\x32\x10.common.v2.Piece\x12\x13\n\x06\x64igest\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_digest\"M\n\x14StatCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"O\n\x16\x44\x65leteCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe7\x02\n\x1d\x44ownloadPersistentTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x12\n\npersistent\x18\x03 \x01(\x08\x12\x18\n\x0boutput_path\x18\x04 \x01(\tH\x00\x88\x01\x01\x12/\n\x07timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12\x1a\n\x12need_piece_content\x18\x06 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x07 \x01(\x08\x12\x13\n\x06\x64igest\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tremote_ip\x18\t \x01(\tH\x03\x88\x01\x01\x12\x11\n\toverwrite\x18\n \x01(\x08\x42\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\t\n\x07_digestB\x0c\n\n_remote_ip\"?\n%DownloadPersistentTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\"\xa0\x02\n\x1e\x44ownloadPersistentTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12g\n)download_persistent_task_started_response\x18\x04 \x01(\x0b\x32\x32.dfdaemon.v2.DownloadPersistentTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"\x97\x02\n\x1bUploadPersistentTaskRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x30\n\x0eobject_storage\x18\x02 \x01(\x0b\x32\x18.common.v2.ObjectStorage\x12\x0c\n\x04path\x18\x03 \x01(\t\x12 \n\x18persistent_replica_count\x18\x04 \x01(\x04\x12&\n\x03ttl\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x88\x01\x01\x12\x16\n\tremote_ip\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_timeoutB\x0c\n\n_remote_ip\"h\n\x1bUpdatePersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x16\n\tremote_ip\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"R\n\x19StatPersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"W\n\x1eStatLocalPersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe3\x03\n\x1fStatLocalPersistentTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x0cpiece_length\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x05 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\x0fuploading_count\x18\x06 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x07 \x01(\x04\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"G\n\x1fListLocalPersistentTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"_\n ListLocalPersistentTasksResponse\x12;\n\x05tasks\x18\x01 \x03(\x0b\x32,.dfdaemon.v2.StatLocalPersistentTaskResponse\"T\n\x1b\x44\x65letePersistentTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"a\n\x1bSyncPersistentPiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\xa4\x01\n\x1cSyncPersistentPiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"\x82\x03\n\"DownloadPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x10\n\x03tag\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boutput_path\x18\x05 \x01(\tH\x02\x88\x01\x01\x12/\n\x07timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationH\x03\x88\x01\x01\x12\x1a\n\x12need_piece_content\x18\x07 \x01(\x08\x12\x17\n\x0f\x66orce_hard_link\x18\x08 \x01(\x08\x12\x13\n\x06\x64igest\x18\t \x01(\tH\x04\x88\x01\x01\x12\x16\n\tremote_ip\x18\n \x01(\tH\x05\x88\x01\x01\x12\x11\n\toverwrite\x18\x0b \x01(\x08\x42\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0e\n\x0c_output_pathB\n\n\x08_timeoutB\t\n\x07_digestB\x0c\n\n_remote_ip\"D\n*DownloadPersistentCacheTaskStartedResponse\x12\x16\n\x0e\x63ontent_length\x18\x01 \x01(\x04\"\xb0\x02\n#DownloadPersistentCacheTaskResponse\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x0f\n\x07peer_id\x18\x03 \x01(\t\x12r\n/download_persistent_cache_task_started_response\x18\x04 \x01(\x0b\x32\x37.dfdaemon.v2.DownloadPersistentCacheTaskStartedResponseH\x00\x12V\n download_piece_finished_response\x18\x05 \x01(\x0b\x32*.dfdaemon.v2.DownloadPieceFinishedResponseH\x00\x42\n\n\x08response\"\x9f\x03\n UploadPersistentCacheTaskRequest\x12,\n\x1f\x63ontent_for_calculating_task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04path\x18\x02 \x01(\t\x12 \n\x18persistent_replica_count\x18\x03 \x01(\x04\x12\x10\n\x03tag\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pplication\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cpiece_length\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12&\n\x03ttl\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x07timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x16\n\tremote_ip\x18\t \x01(\tH\x05\x88\x01\x01\x42\"\n _content_for_calculating_task_idB\x06\n\x04_tagB\x0e\n\x0c_applicationB\x0f\n\r_piece_lengthB\n\n\x08_timeoutB\x0c\n\n_remote_ip\"m\n UpdatePersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x16\n\tremote_ip\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"W\n\x1eStatPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\\\n#StatLocalPersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"\xe8\x03\n$StatLocalPersistentCacheTaskResponse\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x0cpiece_length\x18\x04 \x01(\x04H\x00\x88\x01\x01\x12\x1b\n\x0e\x63ontent_length\x18\x05 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\x0fuploading_count\x18\x06 \x01(\x04\x12\x16\n\x0euploaded_count\x18\x07 \x01(\x04\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\tfailed_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x34\n\x0b\x66inished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x42\x0f\n\r_piece_lengthB\x11\n\x0f_content_lengthB\x0c\n\n_failed_atB\x0e\n\x0c_finished_at\"L\n$ListLocalPersistentCacheTasksRequest\x12\x16\n\tremote_ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"i\n%ListLocalPersistentCacheTasksResponse\x12@\n\x05tasks\x18\x01 \x03(\x0b\x32\x31.dfdaemon.v2.StatLocalPersistentCacheTaskResponse\"Y\n DeletePersistentCacheTaskRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\tremote_ip\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_remote_ip\"f\n SyncPersistentCachePiecesRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12 \n\x18interested_piece_numbers\x18\x03 \x03(\r\"\xa9\x01\n!SyncPersistentCachePiecesResponse\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0e\n\x06length\x18\x03 \x01(\x04\x12\n\n\x02ip\x18\x04 \x01(\t\x12\x15\n\x08tcp_port\x18\x05 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tquic_port\x18\x06 \x01(\x05H\x01\x88\x01\x01\x42\x0b\n\t_tcp_portB\x0c\n\n_quic_port\"3\n\x0fSyncHostRequest\x12\x0f\n\x07host_id\x18\x01 \x01(\t\x12\x0f\n\x07peer_id\x18\x02 \x01(\t\"A\n\x18IBVerbsQueuePairEndpoint\x12\x0b\n\x03num\x18\x01 \x01(\r\x12\x0b\n\x03lid\x18\x02 \x01(\r\x12\x0b\n\x03gid\x18\x03 \x01(\x0c\x32\x97\x10\n\x0e\x44\x66\x64\x61\x65monUpload\x12U\n\x0c\x44ownloadTask\x12 .dfdaemon.v2.DownloadTaskRequest\x1a!.dfdaemon.v2.DownloadTaskResponse0\x01\x12\x39\n\x08StatTask\x12\x1c.dfdaemon.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12V\n\rStatLocalTask\x12!.dfdaemon.v2.StatLocalTaskRequest\x1a\".dfdaemon.v2.StatLocalTaskResponse\x12\\\n\x0fListTaskEntries\x12#.dfdaemon.v2.ListTaskEntriesRequest\x1a$.dfdaemon.v2.ListTaskEntriesResponse\x12\x44\n\nDeleteTask\x12\x1e.dfdaemon.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12O\n\nSyncPieces\x12\x1e.dfdaemon.v2.SyncPiecesRequest\x1a\x1f.dfdaemon.v2.SyncPiecesResponse0\x01\x12\x64\n\x11\x44ownloadCacheTask\x12%.dfdaemon.v2.DownloadCacheTaskRequest\x1a&.dfdaemon.v2.DownloadCacheTaskResponse0\x01\x12H\n\rStatCacheTask\x12!.dfdaemon.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12N\n\x0f\x44\x65leteCacheTask\x12#.dfdaemon.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0fSyncCachePieces\x12#.dfdaemon.v2.SyncCachePiecesRequest\x1a$.dfdaemon.v2.SyncCachePiecesResponse0\x01\x12\x65\n\x12\x44ownloadCachePiece\x12&.dfdaemon.v2.DownloadCachePieceRequest\x1a\'.dfdaemon.v2.DownloadCachePieceResponse\x12s\n\x16\x44ownloadPersistentTask\x12*.dfdaemon.v2.DownloadPersistentTaskRequest\x1a+.dfdaemon.v2.DownloadPersistentTaskResponse0\x01\x12m\n\x14SyncPersistentPieces\x12(.dfdaemon.v2.SyncPersistentPiecesRequest\x1a).dfdaemon.v2.SyncPersistentPiecesResponse0\x01\x12X\n\x14UpdatePersistentTask\x12(.dfdaemon.v2.UpdatePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12W\n\x12StatPersistentTask\x12&.dfdaemon.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12X\n\x14\x44\x65letePersistentTask\x12(.dfdaemon.v2.DeletePersistentTaskRequest\x1a\x16.google.protobuf.Empty\x12\x82\x01\n\x1b\x44ownloadPersistentCacheTask\x12/.dfdaemon.v2.DownloadPersistentCacheTaskRequest\x1a\x30.dfdaemon.v2.DownloadPersistentCacheTaskResponse0\x01\x12\x62\n\x19UpdatePersistentCacheTask\x12-.dfdaemon.v2.UpdatePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12\x66\n\x17StatPersistentCacheTask\x12+.dfdaemon.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x62\n\x19\x44\x65letePersistentCacheTask\x12-.dfdaemon.v2.DeletePersistentCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12|\n\x19SyncPersistentCachePieces\x12-.dfdaemon.v2.SyncPersistentCachePiecesRequest\x1a..dfdaemon.v2.SyncPersistentCachePiecesResponse0\x01\x12;\n\x08SyncHost\x12\x1c.dfdaemon.v2.SyncHostRequest\x1a\x0f.common.v2.Host0\x01\x32\x8b\x10\n\x10\x44\x66\x64\x61\x65monDownload\x12U\n\x0c\x44ownloadTask\x12 .dfdaemon.v2.DownloadTaskRequest\x1a!.dfdaemon.v2.DownloadTaskResponse0\x01\x12\x39\n\x08StatTask\x12\x1c.dfdaemon.v2.StatTaskRequest\x1a\x0f.common.v2.Task\x12V\n\rStatLocalTask\x12!.dfdaemon.v2.StatLocalTaskRequest\x1a\".dfdaemon.v2.StatLocalTaskResponse\x12Y\n\x0eListLocalTasks\x12\".dfdaemon.v2.ListLocalTasksRequest\x1a#.dfdaemon.v2.ListLocalTasksResponse\x12\\\n\x0fListTaskEntries\x12#.dfdaemon.v2.ListTaskEntriesRequest\x1a$.dfdaemon.v2.ListTaskEntriesResponse\x12\x44\n\nDeleteTask\x12\x1e.dfdaemon.v2.DeleteTaskRequest\x1a\x16.google.protobuf.Empty\x12N\n\x0f\x44\x65leteLocalTask\x12#.dfdaemon.v2.DeleteLocalTaskRequest\x1a\x16.google.protobuf.Empty\x12<\n\nDeleteHost\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\x12\x64\n\x11\x44ownloadCacheTask\x12%.dfdaemon.v2.DownloadCacheTaskRequest\x1a&.dfdaemon.v2.DownloadCacheTaskResponse0\x01\x12H\n\rStatCacheTask\x12!.dfdaemon.v2.StatCacheTaskRequest\x1a\x14.common.v2.CacheTask\x12N\n\x0f\x44\x65leteCacheTask\x12#.dfdaemon.v2.DeleteCacheTaskRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16\x44ownloadPersistentTask\x12*.dfdaemon.v2.DownloadPersistentTaskRequest\x1a+.dfdaemon.v2.DownloadPersistentTaskResponse0\x01\x12[\n\x14UploadPersistentTask\x12(.dfdaemon.v2.UploadPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12W\n\x12StatPersistentTask\x12&.dfdaemon.v2.StatPersistentTaskRequest\x1a\x19.common.v2.PersistentTask\x12t\n\x17StatLocalPersistentTask\x12+.dfdaemon.v2.StatLocalPersistentTaskRequest\x1a,.dfdaemon.v2.StatLocalPersistentTaskResponse\x12w\n\x18ListLocalPersistentTasks\x12,.dfdaemon.v2.ListLocalPersistentTasksRequest\x1a-.dfdaemon.v2.ListLocalPersistentTasksResponse\x12\x82\x01\n\x1b\x44ownloadPersistentCacheTask\x12/.dfdaemon.v2.DownloadPersistentCacheTaskRequest\x1a\x30.dfdaemon.v2.DownloadPersistentCacheTaskResponse0\x01\x12j\n\x19UploadPersistentCacheTask\x12-.dfdaemon.v2.UploadPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x66\n\x17StatPersistentCacheTask\x12+.dfdaemon.v2.StatPersistentCacheTaskRequest\x1a\x1e.common.v2.PersistentCacheTask\x12\x83\x01\n\x1cStatLocalPersistentCacheTask\x12\x30.dfdaemon.v2.StatLocalPersistentCacheTaskRequest\x1a\x31.dfdaemon.v2.StatLocalPersistentCacheTaskResponse\x12\x86\x01\n\x1dListLocalPersistentCacheTasks\x12\x31.dfdaemon.v2.ListLocalPersistentCacheTasksRequest\x1a\x32.dfdaemon.v2.ListLocalPersistentCacheTasksResponseb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -74,99 +74,99 @@ _globals['_LISTLOCALTASKSRESPONSE']._serialized_start=1934 _globals['_LISTLOCALTASKSRESPONSE']._serialized_end=2009 _globals['_LISTTASKENTRIESREQUEST']._serialized_start=2012 - _globals['_LISTTASKENTRIESREQUEST']._serialized_end=2578 - _globals['_LISTTASKENTRIESREQUEST_REQUESTHEADERENTRY']._serialized_start=2439 - _globals['_LISTTASKENTRIESREQUEST_REQUESTHEADERENTRY']._serialized_end=2491 - _globals['_LISTTASKENTRIESRESPONSE']._serialized_start=2581 - _globals['_LISTTASKENTRIESRESPONSE']._serialized_end=2847 + _globals['_LISTTASKENTRIESREQUEST']._serialized_end=2634 + _globals['_LISTTASKENTRIESREQUEST_REQUESTHEADERENTRY']._serialized_start=2482 + _globals['_LISTTASKENTRIESREQUEST_REQUESTHEADERENTRY']._serialized_end=2534 + _globals['_LISTTASKENTRIESRESPONSE']._serialized_start=2637 + _globals['_LISTTASKENTRIESRESPONSE']._serialized_end=2903 _globals['_LISTTASKENTRIESRESPONSE_RESPONSEHEADERENTRY']._serialized_start=437 _globals['_LISTTASKENTRIESRESPONSE_RESPONSEHEADERENTRY']._serialized_end=490 - _globals['_ENTRY']._serialized_start=2849 - _globals['_ENTRY']._serialized_end=2909 - _globals['_DELETETASKREQUEST']._serialized_start=2911 - _globals['_DELETETASKREQUEST']._serialized_end=2985 - _globals['_DELETELOCALTASKREQUEST']._serialized_start=2987 - _globals['_DELETELOCALTASKREQUEST']._serialized_end=3066 - _globals['_DOWNLOADCACHETASKREQUEST']._serialized_start=3069 - _globals['_DOWNLOADCACHETASKREQUEST']._serialized_end=4057 - _globals['_DOWNLOADCACHETASKREQUEST_REQUESTHEADERENTRY']._serialized_start=2439 - _globals['_DOWNLOADCACHETASKREQUEST_REQUESTHEADERENTRY']._serialized_end=2491 - _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE']._serialized_start=4060 - _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE']._serialized_end=4368 + _globals['_ENTRY']._serialized_start=2905 + _globals['_ENTRY']._serialized_end=2965 + _globals['_DELETETASKREQUEST']._serialized_start=2967 + _globals['_DELETETASKREQUEST']._serialized_end=3041 + _globals['_DELETELOCALTASKREQUEST']._serialized_start=3043 + _globals['_DELETELOCALTASKREQUEST']._serialized_end=3122 + _globals['_DOWNLOADCACHETASKREQUEST']._serialized_start=3125 + _globals['_DOWNLOADCACHETASKREQUEST']._serialized_end=4113 + _globals['_DOWNLOADCACHETASKREQUEST_REQUESTHEADERENTRY']._serialized_start=2482 + _globals['_DOWNLOADCACHETASKREQUEST_REQUESTHEADERENTRY']._serialized_end=2534 + _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE']._serialized_start=4116 + _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE']._serialized_end=4424 _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE_RESPONSEHEADERENTRY']._serialized_start=437 _globals['_DOWNLOADCACHETASKSTARTEDRESPONSE_RESPONSEHEADERENTRY']._serialized_end=490 - _globals['_DOWNLOADCACHETASKRESPONSE']._serialized_start=4371 - _globals['_DOWNLOADCACHETASKRESPONSE']._serialized_end=4644 - _globals['_SYNCCACHEPIECESREQUEST']._serialized_start=4646 - _globals['_SYNCCACHEPIECESREQUEST']._serialized_end=4744 - _globals['_SYNCCACHEPIECESRESPONSE']._serialized_start=4746 - _globals['_SYNCCACHEPIECESRESPONSE']._serialized_end=4819 - _globals['_DOWNLOADCACHEPIECEREQUEST']._serialized_start=4821 - _globals['_DOWNLOADCACHEPIECEREQUEST']._serialized_end=4904 - _globals['_DOWNLOADCACHEPIECERESPONSE']._serialized_start=4906 - _globals['_DOWNLOADCACHEPIECERESPONSE']._serialized_end=4999 - _globals['_STATCACHETASKREQUEST']._serialized_start=5001 - _globals['_STATCACHETASKREQUEST']._serialized_end=5078 - _globals['_DELETECACHETASKREQUEST']._serialized_start=5080 - _globals['_DELETECACHETASKREQUEST']._serialized_end=5159 - _globals['_DOWNLOADPERSISTENTTASKREQUEST']._serialized_start=5162 - _globals['_DOWNLOADPERSISTENTTASKREQUEST']._serialized_end=5521 - _globals['_DOWNLOADPERSISTENTTASKSTARTEDRESPONSE']._serialized_start=5523 - _globals['_DOWNLOADPERSISTENTTASKSTARTEDRESPONSE']._serialized_end=5586 - _globals['_DOWNLOADPERSISTENTTASKRESPONSE']._serialized_start=5589 - _globals['_DOWNLOADPERSISTENTTASKRESPONSE']._serialized_end=5877 - _globals['_UPLOADPERSISTENTTASKREQUEST']._serialized_start=5880 - _globals['_UPLOADPERSISTENTTASKREQUEST']._serialized_end=6159 - _globals['_UPDATEPERSISTENTTASKREQUEST']._serialized_start=6161 - _globals['_UPDATEPERSISTENTTASKREQUEST']._serialized_end=6265 - _globals['_STATPERSISTENTTASKREQUEST']._serialized_start=6267 - _globals['_STATPERSISTENTTASKREQUEST']._serialized_end=6349 - _globals['_STATLOCALPERSISTENTTASKREQUEST']._serialized_start=6351 - _globals['_STATLOCALPERSISTENTTASKREQUEST']._serialized_end=6438 - _globals['_STATLOCALPERSISTENTTASKRESPONSE']._serialized_start=6441 - _globals['_STATLOCALPERSISTENTTASKRESPONSE']._serialized_end=6924 - _globals['_LISTLOCALPERSISTENTTASKSREQUEST']._serialized_start=6926 - _globals['_LISTLOCALPERSISTENTTASKSREQUEST']._serialized_end=6997 - _globals['_LISTLOCALPERSISTENTTASKSRESPONSE']._serialized_start=6999 - _globals['_LISTLOCALPERSISTENTTASKSRESPONSE']._serialized_end=7094 - _globals['_DELETEPERSISTENTTASKREQUEST']._serialized_start=7096 - _globals['_DELETEPERSISTENTTASKREQUEST']._serialized_end=7180 - _globals['_SYNCPERSISTENTPIECESREQUEST']._serialized_start=7182 - _globals['_SYNCPERSISTENTPIECESREQUEST']._serialized_end=7279 - _globals['_SYNCPERSISTENTPIECESRESPONSE']._serialized_start=7282 - _globals['_SYNCPERSISTENTPIECESRESPONSE']._serialized_end=7446 - _globals['_DOWNLOADPERSISTENTCACHETASKREQUEST']._serialized_start=7449 - _globals['_DOWNLOADPERSISTENTCACHETASKREQUEST']._serialized_end=7835 - _globals['_DOWNLOADPERSISTENTCACHETASKSTARTEDRESPONSE']._serialized_start=7837 - _globals['_DOWNLOADPERSISTENTCACHETASKSTARTEDRESPONSE']._serialized_end=7905 - _globals['_DOWNLOADPERSISTENTCACHETASKRESPONSE']._serialized_start=7908 - _globals['_DOWNLOADPERSISTENTCACHETASKRESPONSE']._serialized_end=8212 - _globals['_UPLOADPERSISTENTCACHETASKREQUEST']._serialized_start=8215 - _globals['_UPLOADPERSISTENTCACHETASKREQUEST']._serialized_end=8630 - _globals['_UPDATEPERSISTENTCACHETASKREQUEST']._serialized_start=8632 - _globals['_UPDATEPERSISTENTCACHETASKREQUEST']._serialized_end=8741 - _globals['_STATPERSISTENTCACHETASKREQUEST']._serialized_start=8743 - _globals['_STATPERSISTENTCACHETASKREQUEST']._serialized_end=8830 - _globals['_STATLOCALPERSISTENTCACHETASKREQUEST']._serialized_start=8832 - _globals['_STATLOCALPERSISTENTCACHETASKREQUEST']._serialized_end=8924 - _globals['_STATLOCALPERSISTENTCACHETASKRESPONSE']._serialized_start=8927 - _globals['_STATLOCALPERSISTENTCACHETASKRESPONSE']._serialized_end=9415 - _globals['_LISTLOCALPERSISTENTCACHETASKSREQUEST']._serialized_start=9417 - _globals['_LISTLOCALPERSISTENTCACHETASKSREQUEST']._serialized_end=9493 - _globals['_LISTLOCALPERSISTENTCACHETASKSRESPONSE']._serialized_start=9495 - _globals['_LISTLOCALPERSISTENTCACHETASKSRESPONSE']._serialized_end=9600 - _globals['_DELETEPERSISTENTCACHETASKREQUEST']._serialized_start=9602 - _globals['_DELETEPERSISTENTCACHETASKREQUEST']._serialized_end=9691 - _globals['_SYNCPERSISTENTCACHEPIECESREQUEST']._serialized_start=9693 - _globals['_SYNCPERSISTENTCACHEPIECESREQUEST']._serialized_end=9795 - _globals['_SYNCPERSISTENTCACHEPIECESRESPONSE']._serialized_start=9798 - _globals['_SYNCPERSISTENTCACHEPIECESRESPONSE']._serialized_end=9967 - _globals['_SYNCHOSTREQUEST']._serialized_start=9969 - _globals['_SYNCHOSTREQUEST']._serialized_end=10020 - _globals['_IBVERBSQUEUEPAIRENDPOINT']._serialized_start=10022 - _globals['_IBVERBSQUEUEPAIRENDPOINT']._serialized_end=10087 - _globals['_DFDAEMONUPLOAD']._serialized_start=10090 - _globals['_DFDAEMONUPLOAD']._serialized_end=12161 - _globals['_DFDAEMONDOWNLOAD']._serialized_start=12164 - _globals['_DFDAEMONDOWNLOAD']._serialized_end=14223 + _globals['_DOWNLOADCACHETASKRESPONSE']._serialized_start=4427 + _globals['_DOWNLOADCACHETASKRESPONSE']._serialized_end=4700 + _globals['_SYNCCACHEPIECESREQUEST']._serialized_start=4702 + _globals['_SYNCCACHEPIECESREQUEST']._serialized_end=4800 + _globals['_SYNCCACHEPIECESRESPONSE']._serialized_start=4802 + _globals['_SYNCCACHEPIECESRESPONSE']._serialized_end=4875 + _globals['_DOWNLOADCACHEPIECEREQUEST']._serialized_start=4877 + _globals['_DOWNLOADCACHEPIECEREQUEST']._serialized_end=4960 + _globals['_DOWNLOADCACHEPIECERESPONSE']._serialized_start=4962 + _globals['_DOWNLOADCACHEPIECERESPONSE']._serialized_end=5055 + _globals['_STATCACHETASKREQUEST']._serialized_start=5057 + _globals['_STATCACHETASKREQUEST']._serialized_end=5134 + _globals['_DELETECACHETASKREQUEST']._serialized_start=5136 + _globals['_DELETECACHETASKREQUEST']._serialized_end=5215 + _globals['_DOWNLOADPERSISTENTTASKREQUEST']._serialized_start=5218 + _globals['_DOWNLOADPERSISTENTTASKREQUEST']._serialized_end=5577 + _globals['_DOWNLOADPERSISTENTTASKSTARTEDRESPONSE']._serialized_start=5579 + _globals['_DOWNLOADPERSISTENTTASKSTARTEDRESPONSE']._serialized_end=5642 + _globals['_DOWNLOADPERSISTENTTASKRESPONSE']._serialized_start=5645 + _globals['_DOWNLOADPERSISTENTTASKRESPONSE']._serialized_end=5933 + _globals['_UPLOADPERSISTENTTASKREQUEST']._serialized_start=5936 + _globals['_UPLOADPERSISTENTTASKREQUEST']._serialized_end=6215 + _globals['_UPDATEPERSISTENTTASKREQUEST']._serialized_start=6217 + _globals['_UPDATEPERSISTENTTASKREQUEST']._serialized_end=6321 + _globals['_STATPERSISTENTTASKREQUEST']._serialized_start=6323 + _globals['_STATPERSISTENTTASKREQUEST']._serialized_end=6405 + _globals['_STATLOCALPERSISTENTTASKREQUEST']._serialized_start=6407 + _globals['_STATLOCALPERSISTENTTASKREQUEST']._serialized_end=6494 + _globals['_STATLOCALPERSISTENTTASKRESPONSE']._serialized_start=6497 + _globals['_STATLOCALPERSISTENTTASKRESPONSE']._serialized_end=6980 + _globals['_LISTLOCALPERSISTENTTASKSREQUEST']._serialized_start=6982 + _globals['_LISTLOCALPERSISTENTTASKSREQUEST']._serialized_end=7053 + _globals['_LISTLOCALPERSISTENTTASKSRESPONSE']._serialized_start=7055 + _globals['_LISTLOCALPERSISTENTTASKSRESPONSE']._serialized_end=7150 + _globals['_DELETEPERSISTENTTASKREQUEST']._serialized_start=7152 + _globals['_DELETEPERSISTENTTASKREQUEST']._serialized_end=7236 + _globals['_SYNCPERSISTENTPIECESREQUEST']._serialized_start=7238 + _globals['_SYNCPERSISTENTPIECESREQUEST']._serialized_end=7335 + _globals['_SYNCPERSISTENTPIECESRESPONSE']._serialized_start=7338 + _globals['_SYNCPERSISTENTPIECESRESPONSE']._serialized_end=7502 + _globals['_DOWNLOADPERSISTENTCACHETASKREQUEST']._serialized_start=7505 + _globals['_DOWNLOADPERSISTENTCACHETASKREQUEST']._serialized_end=7891 + _globals['_DOWNLOADPERSISTENTCACHETASKSTARTEDRESPONSE']._serialized_start=7893 + _globals['_DOWNLOADPERSISTENTCACHETASKSTARTEDRESPONSE']._serialized_end=7961 + _globals['_DOWNLOADPERSISTENTCACHETASKRESPONSE']._serialized_start=7964 + _globals['_DOWNLOADPERSISTENTCACHETASKRESPONSE']._serialized_end=8268 + _globals['_UPLOADPERSISTENTCACHETASKREQUEST']._serialized_start=8271 + _globals['_UPLOADPERSISTENTCACHETASKREQUEST']._serialized_end=8686 + _globals['_UPDATEPERSISTENTCACHETASKREQUEST']._serialized_start=8688 + _globals['_UPDATEPERSISTENTCACHETASKREQUEST']._serialized_end=8797 + _globals['_STATPERSISTENTCACHETASKREQUEST']._serialized_start=8799 + _globals['_STATPERSISTENTCACHETASKREQUEST']._serialized_end=8886 + _globals['_STATLOCALPERSISTENTCACHETASKREQUEST']._serialized_start=8888 + _globals['_STATLOCALPERSISTENTCACHETASKREQUEST']._serialized_end=8980 + _globals['_STATLOCALPERSISTENTCACHETASKRESPONSE']._serialized_start=8983 + _globals['_STATLOCALPERSISTENTCACHETASKRESPONSE']._serialized_end=9471 + _globals['_LISTLOCALPERSISTENTCACHETASKSREQUEST']._serialized_start=9473 + _globals['_LISTLOCALPERSISTENTCACHETASKSREQUEST']._serialized_end=9549 + _globals['_LISTLOCALPERSISTENTCACHETASKSRESPONSE']._serialized_start=9551 + _globals['_LISTLOCALPERSISTENTCACHETASKSRESPONSE']._serialized_end=9656 + _globals['_DELETEPERSISTENTCACHETASKREQUEST']._serialized_start=9658 + _globals['_DELETEPERSISTENTCACHETASKREQUEST']._serialized_end=9747 + _globals['_SYNCPERSISTENTCACHEPIECESREQUEST']._serialized_start=9749 + _globals['_SYNCPERSISTENTCACHEPIECESREQUEST']._serialized_end=9851 + _globals['_SYNCPERSISTENTCACHEPIECESRESPONSE']._serialized_start=9854 + _globals['_SYNCPERSISTENTCACHEPIECESRESPONSE']._serialized_end=10023 + _globals['_SYNCHOSTREQUEST']._serialized_start=10025 + _globals['_SYNCHOSTREQUEST']._serialized_end=10076 + _globals['_IBVERBSQUEUEPAIRENDPOINT']._serialized_start=10078 + _globals['_IBVERBSQUEUEPAIRENDPOINT']._serialized_end=10143 + _globals['_DFDAEMONUPLOAD']._serialized_start=10146 + _globals['_DFDAEMONUPLOAD']._serialized_end=12217 + _globals['_DFDAEMONDOWNLOAD']._serialized_start=12220 + _globals['_DFDAEMONDOWNLOAD']._serialized_end=14279 # @@protoc_insertion_point(module_scope) diff --git a/python/dragonfly_api/dfdaemon_pb2.pyi b/python/dragonfly_api/dfdaemon_pb2.pyi index 2edb44ab..90c5aaf6 100644 --- a/python/dragonfly_api/dfdaemon_pb2.pyi +++ b/python/dragonfly_api/dfdaemon_pb2.pyi @@ -147,7 +147,7 @@ class ListLocalTasksResponse(_message.Message): def __init__(self, tasks: _Optional[_Iterable[_Union[StatLocalTaskResponse, _Mapping]]] = ...) -> None: ... class ListTaskEntriesRequest(_message.Message): - __slots__ = ("task_id", "url", "request_header", "timeout", "certificate_chain", "object_storage", "hdfs", "remote_ip", "hugging_face", "model_scope") + __slots__ = ("task_id", "url", "request_header", "timeout", "certificate_chain", "object_storage", "hdfs", "remote_ip", "hugging_face", "model_scope", "open_csg") class RequestHeaderEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -165,6 +165,7 @@ class ListTaskEntriesRequest(_message.Message): REMOTE_IP_FIELD_NUMBER: _ClassVar[int] HUGGING_FACE_FIELD_NUMBER: _ClassVar[int] MODEL_SCOPE_FIELD_NUMBER: _ClassVar[int] + OPEN_CSG_FIELD_NUMBER: _ClassVar[int] task_id: str url: str request_header: _containers.ScalarMap[str, str] @@ -175,7 +176,8 @@ class ListTaskEntriesRequest(_message.Message): remote_ip: str hugging_face: _common_pb2.HuggingFace model_scope: _common_pb2.ModelScope - def __init__(self, task_id: _Optional[str] = ..., url: _Optional[str] = ..., request_header: _Optional[_Mapping[str, str]] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., object_storage: _Optional[_Union[_common_pb2.ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[_common_pb2.HDFS, _Mapping]] = ..., remote_ip: _Optional[str] = ..., hugging_face: _Optional[_Union[_common_pb2.HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[_common_pb2.ModelScope, _Mapping]] = ...) -> None: ... + open_csg: _common_pb2.OpenCSG + def __init__(self, task_id: _Optional[str] = ..., url: _Optional[str] = ..., request_header: _Optional[_Mapping[str, str]] = ..., timeout: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., certificate_chain: _Optional[_Iterable[bytes]] = ..., object_storage: _Optional[_Union[_common_pb2.ObjectStorage, _Mapping]] = ..., hdfs: _Optional[_Union[_common_pb2.HDFS, _Mapping]] = ..., remote_ip: _Optional[str] = ..., hugging_face: _Optional[_Union[_common_pb2.HuggingFace, _Mapping]] = ..., model_scope: _Optional[_Union[_common_pb2.ModelScope, _Mapping]] = ..., open_csg: _Optional[_Union[_common_pb2.OpenCSG, _Mapping]] = ...) -> None: ... class ListTaskEntriesResponse(_message.Message): __slots__ = ("content_length", "response_header", "status_code", "entries") diff --git a/src/common.v2.rs b/src/common.v2.rs index 94d20baa..50e8dbe9 100644 --- a/src/common.v2.rs +++ b/src/common.v2.rs @@ -781,6 +781,9 @@ pub struct Download { /// the metadata of the task, no need to be scheduled for downloading pieces. #[prost(bool, tag = "33")] pub metadata_only: bool, + /// OpenCSG protocol information. + #[prost(message, optional, tag = "34")] + pub open_csg: ::core::option::Option, } /// Object Storage related information. #[derive(serde::Serialize, serde::Deserialize)] @@ -852,6 +855,21 @@ pub struct ModelScope { #[prost(string, optional, tag = "3")] pub base_url: ::core::option::Option<::prost::alloc::string::String>, } +/// OpenCSG related information. +#[derive(serde::Serialize, serde::Deserialize)] +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct OpenCsg { + /// Access token for OpenCSG Hub. + #[prost(string, optional, tag = "1")] + pub token: ::core::option::Option<::prost::alloc::string::String>, + /// Revision of the OpenCSG repository. It can be a branch name, tag name, or commit hash. This field must not be empty. + /// Clients should use "main" when the user does not specify a revision. + #[prost(string, tag = "2")] + pub revision: ::prost::alloc::string::String, + /// Base URL of OpenCSG Hub. If not specified, it defaults to + #[prost(string, optional, tag = "3")] + pub base_url: ::core::option::Option<::prost::alloc::string::String>, +} /// Range represents download range. #[derive(serde::Serialize, serde::Deserialize)] #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] diff --git a/src/descriptor.bin b/src/descriptor.bin index e0772187e51d96c74200feb4caee560ca1de22be..204e9c1bfff413d79b8a2e950c704d560a1fc404 100644 GIT binary patch delta 18786 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 delta 17855 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 Mu&Pyic-@Qt58i)Ay8r+H diff --git a/src/dfdaemon.v2.rs b/src/dfdaemon.v2.rs index 882a8e65..c5a74176 100644 --- a/src/dfdaemon.v2.rs +++ b/src/dfdaemon.v2.rs @@ -221,6 +221,9 @@ pub struct ListTaskEntriesRequest { /// ModelScope protocol information. #[prost(message, optional, tag = "10")] pub model_scope: ::core::option::Option, + /// OpenCSG protocol information. + #[prost(message, optional, tag = "11")] + pub open_csg: ::core::option::Option, } /// ListTaskEntriesResponse represents response of ListTaskEntries. #[derive(serde::Serialize, serde::Deserialize)]