From b3fb57a00d930650fc57f3b02abd93ccdfd126d3 Mon Sep 17 00:00:00 2001 From: Andrew Prudhomme Date: Wed, 30 Oct 2024 10:33:18 -0700 Subject: [PATCH] Add indexState endpoint (#775) * Add indexState endpoint * Add test --- .../proto/yelp/nrtsearch/luceneserver.proto | 21 + grpc-gateway/luceneserver.pb.go | 2269 +++++++++-------- grpc-gateway/luceneserver.pb.gw.go | 184 ++ grpc-gateway/luceneserver.swagger.json | 116 + .../server/grpc/NrtsearchServer.java | 9 + .../server/handler/IndexStateHandler.java | 34 + .../server/index/BackendStateManager.java | 16 +- .../server/index/ImmutableIndexState.java | 3 +- .../nrtsearch/server/index/IndexState.java | 3 + .../tools/cli/IndexStateCommand.java | 55 + .../tools/cli/NrtsearchClientCommand.java | 1 + .../server/grpc/NrtsearchServerTest.java | 15 + .../server/index/BackendStateManagerTest.java | 66 +- .../server/index/ImmutableIndexStateTest.java | 2 +- .../state/GetRemoteStateCommandTest.java | 4 +- .../state/PutRemoteStateCommandTest.java | 8 +- .../state/StateCommandUtilsTest.java | 6 +- 17 files changed, 1716 insertions(+), 1096 deletions(-) create mode 100644 src/main/java/com/yelp/nrtsearch/server/handler/IndexStateHandler.java create mode 100644 src/main/java/com/yelp/nrtsearch/tools/cli/IndexStateCommand.java diff --git a/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto b/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto index e4904c105..b082469e1 100644 --- a/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto +++ b/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto @@ -290,6 +290,17 @@ service LuceneServer { }; } + /* Gets the state information for an index, includes settings, live_settings, search schema */ + rpc indexState (IndexStateRequest) returns (IndexStateResponse) { + option (google.api.http) = { + post: "/v1/index_state" + body: "*" + additional_bindings { + get: "/v1/index_state/{index_name}" + } + }; + } + //GET methods /* healthcheck */ rpc status (HealthCheckRequest) returns (HealthCheckResponse) { @@ -914,6 +925,16 @@ message StateResponse { string response = 1; //json string of the current index state } +message IndexStateRequest { + // index name + string index_name = 1; +} + +message IndexStateResponse { + // index state + IndexStateInfo index_state = 1; +} + message AddReplicaRequest { int32 magicNumber = 1; //magic number send on all requests since these are meant for internal communication only string indexName = 2; //index name diff --git a/grpc-gateway/luceneserver.pb.go b/grpc-gateway/luceneserver.pb.go index 7b606c25f..400cc1427 100644 --- a/grpc-gateway/luceneserver.pb.go +++ b/grpc-gateway/luceneserver.pb.go @@ -543,7 +543,7 @@ func (x ForceMergeResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use ForceMergeResponse_Status.Descriptor instead. func (ForceMergeResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{76, 0} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78, 0} } type ForceMergeDeletesResponse_Status int32 @@ -589,7 +589,7 @@ func (x ForceMergeDeletesResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use ForceMergeDeletesResponse_Status.Descriptor instead. func (ForceMergeDeletesResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78, 0} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{80, 0} } // Input to createIndex @@ -4150,6 +4150,102 @@ func (x *StateResponse) GetResponse() string { return "" } +type IndexStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // index name + IndexName string `protobuf:"bytes,1,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"` +} + +func (x *IndexStateRequest) Reset() { + *x = IndexStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexStateRequest) ProtoMessage() {} + +func (x *IndexStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexStateRequest.ProtoReflect.Descriptor instead. +func (*IndexStateRequest) Descriptor() ([]byte, []int) { + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{55} +} + +func (x *IndexStateRequest) GetIndexName() string { + if x != nil { + return x.IndexName + } + return "" +} + +type IndexStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // index state + IndexState *IndexStateInfo `protobuf:"bytes,1,opt,name=index_state,json=indexState,proto3" json:"index_state,omitempty"` +} + +func (x *IndexStateResponse) Reset() { + *x = IndexStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexStateResponse) ProtoMessage() {} + +func (x *IndexStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexStateResponse.ProtoReflect.Descriptor instead. +func (*IndexStateResponse) Descriptor() ([]byte, []int) { + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{56} +} + +func (x *IndexStateResponse) GetIndexState() *IndexStateInfo { + if x != nil { + return x.IndexState + } + return nil +} + type AddReplicaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4170,7 +4266,7 @@ type AddReplicaRequest struct { func (x *AddReplicaRequest) Reset() { *x = AddReplicaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4183,7 +4279,7 @@ func (x *AddReplicaRequest) String() string { func (*AddReplicaRequest) ProtoMessage() {} func (x *AddReplicaRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4196,7 +4292,7 @@ func (x *AddReplicaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddReplicaRequest.ProtoReflect.Descriptor instead. func (*AddReplicaRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{55} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{57} } func (x *AddReplicaRequest) GetMagicNumber() int32 { @@ -4260,7 +4356,7 @@ type AddReplicaResponse struct { func (x *AddReplicaResponse) Reset() { *x = AddReplicaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4273,7 +4369,7 @@ func (x *AddReplicaResponse) String() string { func (*AddReplicaResponse) ProtoMessage() {} func (x *AddReplicaResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4286,7 +4382,7 @@ func (x *AddReplicaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddReplicaResponse.ProtoReflect.Descriptor instead. func (*AddReplicaResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{56} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{58} } func (x *AddReplicaResponse) GetOk() string { @@ -4315,7 +4411,7 @@ type CopyState struct { func (x *CopyState) Reset() { *x = CopyState{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[57] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4328,7 +4424,7 @@ func (x *CopyState) String() string { func (*CopyState) ProtoMessage() {} func (x *CopyState) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[57] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4341,7 +4437,7 @@ func (x *CopyState) ProtoReflect() protoreflect.Message { // Deprecated: Use CopyState.ProtoReflect.Descriptor instead. func (*CopyState) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{57} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{59} } func (x *CopyState) GetInfoBytesLength() int32 { @@ -4412,7 +4508,7 @@ type FilesMetadata struct { func (x *FilesMetadata) Reset() { *x = FilesMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[58] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4425,7 +4521,7 @@ func (x *FilesMetadata) String() string { func (*FilesMetadata) ProtoMessage() {} func (x *FilesMetadata) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[58] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4438,7 +4534,7 @@ func (x *FilesMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use FilesMetadata.ProtoReflect.Descriptor instead. func (*FilesMetadata) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{58} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{60} } func (x *FilesMetadata) GetNumFiles() int32 { @@ -4472,7 +4568,7 @@ type FileMetadata struct { func (x *FileMetadata) Reset() { *x = FileMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[59] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4485,7 +4581,7 @@ func (x *FileMetadata) String() string { func (*FileMetadata) ProtoMessage() {} func (x *FileMetadata) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[59] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4498,7 +4594,7 @@ func (x *FileMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use FileMetadata.ProtoReflect.Descriptor instead. func (*FileMetadata) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{59} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{61} } func (x *FileMetadata) GetFileName() string { @@ -4567,7 +4663,7 @@ type CopyFiles struct { func (x *CopyFiles) Reset() { *x = CopyFiles{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[60] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4580,7 +4676,7 @@ func (x *CopyFiles) String() string { func (*CopyFiles) ProtoMessage() {} func (x *CopyFiles) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[60] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4593,7 +4689,7 @@ func (x *CopyFiles) ProtoReflect() protoreflect.Message { // Deprecated: Use CopyFiles.ProtoReflect.Descriptor instead. func (*CopyFiles) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{60} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{62} } func (x *CopyFiles) GetMagicNumber() int32 { @@ -4647,7 +4743,7 @@ type CopyStateRequest struct { func (x *CopyStateRequest) Reset() { *x = CopyStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[61] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4660,7 +4756,7 @@ func (x *CopyStateRequest) String() string { func (*CopyStateRequest) ProtoMessage() {} func (x *CopyStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[61] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4673,7 +4769,7 @@ func (x *CopyStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CopyStateRequest.ProtoReflect.Descriptor instead. func (*CopyStateRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{61} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{63} } func (x *CopyStateRequest) GetMagicNumber() int32 { @@ -4721,7 +4817,7 @@ type FileInfo struct { func (x *FileInfo) Reset() { *x = FileInfo{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[62] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4734,7 +4830,7 @@ func (x *FileInfo) String() string { func (*FileInfo) ProtoMessage() {} func (x *FileInfo) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[62] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4747,7 +4843,7 @@ func (x *FileInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FileInfo.ProtoReflect.Descriptor instead. func (*FileInfo) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{62} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{64} } func (x *FileInfo) GetFileName() string { @@ -4800,7 +4896,7 @@ type RawFileChunk struct { func (x *RawFileChunk) Reset() { *x = RawFileChunk{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[63] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4813,7 +4909,7 @@ func (x *RawFileChunk) String() string { func (*RawFileChunk) ProtoMessage() {} func (x *RawFileChunk) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[63] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4826,7 +4922,7 @@ func (x *RawFileChunk) ProtoReflect() protoreflect.Message { // Deprecated: Use RawFileChunk.ProtoReflect.Descriptor instead. func (*RawFileChunk) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{63} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{65} } func (x *RawFileChunk) GetContent() []byte { @@ -4861,7 +4957,7 @@ type HealthCheckRequest struct { func (x *HealthCheckRequest) Reset() { *x = HealthCheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[64] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4874,7 +4970,7 @@ func (x *HealthCheckRequest) String() string { func (*HealthCheckRequest) ProtoMessage() {} func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[64] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4887,7 +4983,7 @@ func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCheckRequest.ProtoReflect.Descriptor instead. func (*HealthCheckRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{64} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{66} } func (x *HealthCheckRequest) GetCheck() bool { @@ -4908,7 +5004,7 @@ type HealthCheckResponse struct { func (x *HealthCheckResponse) Reset() { *x = HealthCheckResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[65] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4921,7 +5017,7 @@ func (x *HealthCheckResponse) String() string { func (*HealthCheckResponse) ProtoMessage() {} func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[65] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4934,7 +5030,7 @@ func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCheckResponse.ProtoReflect.Descriptor instead. func (*HealthCheckResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{65} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{67} } func (x *HealthCheckResponse) GetHealth() TransferStatusCode { @@ -4955,7 +5051,7 @@ type ReadyCheckRequest struct { func (x *ReadyCheckRequest) Reset() { *x = ReadyCheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[66] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4968,7 +5064,7 @@ func (x *ReadyCheckRequest) String() string { func (*ReadyCheckRequest) ProtoMessage() {} func (x *ReadyCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[66] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4981,7 +5077,7 @@ func (x *ReadyCheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadyCheckRequest.ProtoReflect.Descriptor instead. func (*ReadyCheckRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{66} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{68} } func (x *ReadyCheckRequest) GetIndexNames() string { @@ -5003,7 +5099,7 @@ type TransferStatus struct { func (x *TransferStatus) Reset() { *x = TransferStatus{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[67] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5016,7 +5112,7 @@ func (x *TransferStatus) String() string { func (*TransferStatus) ProtoMessage() {} func (x *TransferStatus) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[67] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5029,7 +5125,7 @@ func (x *TransferStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use TransferStatus.ProtoReflect.Descriptor instead. func (*TransferStatus) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{67} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{69} } func (x *TransferStatus) GetMessage() string { @@ -5062,7 +5158,7 @@ type NewNRTPoint struct { func (x *NewNRTPoint) Reset() { *x = NewNRTPoint{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[68] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5075,7 +5171,7 @@ func (x *NewNRTPoint) String() string { func (*NewNRTPoint) ProtoMessage() {} func (x *NewNRTPoint) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[68] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5088,7 +5184,7 @@ func (x *NewNRTPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use NewNRTPoint.ProtoReflect.Descriptor instead. func (*NewNRTPoint) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{68} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{70} } func (x *NewNRTPoint) GetMagicNumber() int32 { @@ -5138,7 +5234,7 @@ type IndexName struct { func (x *IndexName) Reset() { *x = IndexName{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[69] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5151,7 +5247,7 @@ func (x *IndexName) String() string { func (*IndexName) ProtoMessage() {} func (x *IndexName) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[69] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5164,7 +5260,7 @@ func (x *IndexName) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexName.ProtoReflect.Descriptor instead. func (*IndexName) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{69} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{71} } func (x *IndexName) GetMagicNumber() int32 { @@ -5193,7 +5289,7 @@ type SearcherVersion struct { func (x *SearcherVersion) Reset() { *x = SearcherVersion{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[70] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5206,7 +5302,7 @@ func (x *SearcherVersion) String() string { func (*SearcherVersion) ProtoMessage() {} func (x *SearcherVersion) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[70] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5219,7 +5315,7 @@ func (x *SearcherVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use SearcherVersion.ProtoReflect.Descriptor instead. func (*SearcherVersion) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{70} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{72} } func (x *SearcherVersion) GetVersion() int64 { @@ -5247,7 +5343,7 @@ type GetNodesRequest struct { func (x *GetNodesRequest) Reset() { *x = GetNodesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[71] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5260,7 +5356,7 @@ func (x *GetNodesRequest) String() string { func (*GetNodesRequest) ProtoMessage() {} func (x *GetNodesRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[71] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5273,7 +5369,7 @@ func (x *GetNodesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodesRequest.ProtoReflect.Descriptor instead. func (*GetNodesRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{71} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{73} } func (x *GetNodesRequest) GetIndexName() string { @@ -5294,7 +5390,7 @@ type GetNodesResponse struct { func (x *GetNodesResponse) Reset() { *x = GetNodesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[72] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5307,7 +5403,7 @@ func (x *GetNodesResponse) String() string { func (*GetNodesResponse) ProtoMessage() {} func (x *GetNodesResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[72] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5320,7 +5416,7 @@ func (x *GetNodesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodesResponse.ProtoReflect.Descriptor instead. func (*GetNodesResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{72} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{74} } func (x *GetNodesResponse) GetNodes() []*NodeInfo { @@ -5343,7 +5439,7 @@ type NodeInfo struct { func (x *NodeInfo) Reset() { *x = NodeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[73] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5356,7 +5452,7 @@ func (x *NodeInfo) String() string { func (*NodeInfo) ProtoMessage() {} func (x *NodeInfo) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[73] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5369,7 +5465,7 @@ func (x *NodeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. func (*NodeInfo) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{73} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{75} } func (x *NodeInfo) GetHostname() string { @@ -5405,7 +5501,7 @@ type DeleteByQueryRequest struct { func (x *DeleteByQueryRequest) Reset() { *x = DeleteByQueryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[74] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5418,7 +5514,7 @@ func (x *DeleteByQueryRequest) String() string { func (*DeleteByQueryRequest) ProtoMessage() {} func (x *DeleteByQueryRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[74] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5431,7 +5527,7 @@ func (x *DeleteByQueryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteByQueryRequest.ProtoReflect.Descriptor instead. func (*DeleteByQueryRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{74} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{76} } func (x *DeleteByQueryRequest) GetIndexName() string { @@ -5461,7 +5557,7 @@ type ForceMergeRequest struct { func (x *ForceMergeRequest) Reset() { *x = ForceMergeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[75] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5474,7 +5570,7 @@ func (x *ForceMergeRequest) String() string { func (*ForceMergeRequest) ProtoMessage() {} func (x *ForceMergeRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[75] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5487,7 +5583,7 @@ func (x *ForceMergeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ForceMergeRequest.ProtoReflect.Descriptor instead. func (*ForceMergeRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{75} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{77} } func (x *ForceMergeRequest) GetIndexName() string { @@ -5522,7 +5618,7 @@ type ForceMergeResponse struct { func (x *ForceMergeResponse) Reset() { *x = ForceMergeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[76] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5535,7 +5631,7 @@ func (x *ForceMergeResponse) String() string { func (*ForceMergeResponse) ProtoMessage() {} func (x *ForceMergeResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[76] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5548,7 +5644,7 @@ func (x *ForceMergeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ForceMergeResponse.ProtoReflect.Descriptor instead. func (*ForceMergeResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{76} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78} } func (x *ForceMergeResponse) GetStatus() ForceMergeResponse_Status { @@ -5570,7 +5666,7 @@ type ForceMergeDeletesRequest struct { func (x *ForceMergeDeletesRequest) Reset() { *x = ForceMergeDeletesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[77] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5583,7 +5679,7 @@ func (x *ForceMergeDeletesRequest) String() string { func (*ForceMergeDeletesRequest) ProtoMessage() {} func (x *ForceMergeDeletesRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[77] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5596,7 +5692,7 @@ func (x *ForceMergeDeletesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ForceMergeDeletesRequest.ProtoReflect.Descriptor instead. func (*ForceMergeDeletesRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{77} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{79} } func (x *ForceMergeDeletesRequest) GetIndexName() string { @@ -5624,7 +5720,7 @@ type ForceMergeDeletesResponse struct { func (x *ForceMergeDeletesResponse) Reset() { *x = ForceMergeDeletesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[78] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5637,7 +5733,7 @@ func (x *ForceMergeDeletesResponse) String() string { func (*ForceMergeDeletesResponse) ProtoMessage() {} func (x *ForceMergeDeletesResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[78] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5650,7 +5746,7 @@ func (x *ForceMergeDeletesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ForceMergeDeletesResponse.ProtoReflect.Descriptor instead. func (*ForceMergeDeletesResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{80} } func (x *ForceMergeDeletesResponse) GetStatus() ForceMergeDeletesResponse_Status { @@ -5684,7 +5780,7 @@ type IndexSettings struct { func (x *IndexSettings) Reset() { *x = IndexSettings{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[79] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5697,7 +5793,7 @@ func (x *IndexSettings) String() string { func (*IndexSettings) ProtoMessage() {} func (x *IndexSettings) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[79] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5710,7 +5806,7 @@ func (x *IndexSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexSettings.ProtoReflect.Descriptor instead. func (*IndexSettings) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{79} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{81} } func (x *IndexSettings) GetNrtCachingDirectoryMaxMergeSizeMB() *wrapperspb.DoubleValue { @@ -5806,7 +5902,7 @@ type IndexLiveSettings struct { func (x *IndexLiveSettings) Reset() { *x = IndexLiveSettings{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[80] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5819,7 +5915,7 @@ func (x *IndexLiveSettings) String() string { func (*IndexLiveSettings) ProtoMessage() {} func (x *IndexLiveSettings) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[80] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5832,7 +5928,7 @@ func (x *IndexLiveSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexLiveSettings.ProtoReflect.Descriptor instead. func (*IndexLiveSettings) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{80} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{82} } func (x *IndexLiveSettings) GetMaxRefreshSec() *wrapperspb.DoubleValue { @@ -5976,7 +6072,7 @@ type IndexStateInfo struct { func (x *IndexStateInfo) Reset() { *x = IndexStateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[81] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5989,7 +6085,7 @@ func (x *IndexStateInfo) String() string { func (*IndexStateInfo) ProtoMessage() {} func (x *IndexStateInfo) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[81] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6002,7 +6098,7 @@ func (x *IndexStateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexStateInfo.ProtoReflect.Descriptor instead. func (*IndexStateInfo) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{81} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{83} } func (x *IndexStateInfo) GetIndexName() string { @@ -6061,7 +6157,7 @@ type IndexGlobalState struct { func (x *IndexGlobalState) Reset() { *x = IndexGlobalState{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[82] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6074,7 +6170,7 @@ func (x *IndexGlobalState) String() string { func (*IndexGlobalState) ProtoMessage() {} func (x *IndexGlobalState) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[82] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6087,7 +6183,7 @@ func (x *IndexGlobalState) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexGlobalState.ProtoReflect.Descriptor instead. func (*IndexGlobalState) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{82} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{84} } func (x *IndexGlobalState) GetId() string { @@ -6118,7 +6214,7 @@ type GlobalStateInfo struct { func (x *GlobalStateInfo) Reset() { *x = GlobalStateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[83] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6131,7 +6227,7 @@ func (x *GlobalStateInfo) String() string { func (*GlobalStateInfo) ProtoMessage() {} func (x *GlobalStateInfo) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[83] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6144,7 +6240,7 @@ func (x *GlobalStateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GlobalStateInfo.ProtoReflect.Descriptor instead. func (*GlobalStateInfo) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{83} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{85} } func (x *GlobalStateInfo) GetGen() int64 { @@ -6174,7 +6270,7 @@ type CustomRequest struct { func (x *CustomRequest) Reset() { *x = CustomRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[84] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6187,7 +6283,7 @@ func (x *CustomRequest) String() string { func (*CustomRequest) ProtoMessage() {} func (x *CustomRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[84] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6200,7 +6296,7 @@ func (x *CustomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomRequest.ProtoReflect.Descriptor instead. func (*CustomRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{84} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{86} } func (x *CustomRequest) GetId() string { @@ -6235,7 +6331,7 @@ type CustomResponse struct { func (x *CustomResponse) Reset() { *x = CustomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[85] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6248,7 +6344,7 @@ func (x *CustomResponse) String() string { func (*CustomResponse) ProtoMessage() {} func (x *CustomResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[85] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6261,7 +6357,7 @@ func (x *CustomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomResponse.ProtoReflect.Descriptor instead. func (*CustomResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{85} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{87} } func (x *CustomResponse) GetResponse() map[string]string { @@ -6285,7 +6381,7 @@ type AddDocumentRequest_MultiValuedField struct { func (x *AddDocumentRequest_MultiValuedField) Reset() { *x = AddDocumentRequest_MultiValuedField{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[86] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6298,7 +6394,7 @@ func (x *AddDocumentRequest_MultiValuedField) String() string { func (*AddDocumentRequest_MultiValuedField) ProtoMessage() {} func (x *AddDocumentRequest_MultiValuedField) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[86] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6868,738 +6964,756 @@ var file_yelp_nrtsearch_luceneserver_proto_rawDesc = []byte{ 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2b, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, - 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xce, 0x02, 0x0a, 0x09, 0x43, - 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x66, 0x6f, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x67, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, - 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x38, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x22, 0x6b, 0x0a, 0x0d, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, - 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, - 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, - 0x22, 0x0a, 0x0c, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x22, 0xc8, 0x01, 0x0a, 0x09, - 0x43, 0x6f, 0x70, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, - 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x70, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, - 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x49, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x66, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, - 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x4e, - 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x0c, - 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x63, 0x6b, - 0x22, 0x2a, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x4f, 0x0a, 0x13, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x22, 0x33, 0x0a, - 0x11, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x60, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x77, 0x4e, 0x52, 0x54, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x47, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x09, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x11, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0xdb, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, - 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x64, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x64, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x22, 0x2f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, - 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x71, - 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4e, 0x75, - 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x57, - 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x6f, 0x57, 0x61, 0x69, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x52, - 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x55, - 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x50, 0x0a, 0x18, 0x46, 0x6f, 0x72, - 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x57, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x6f, 0x57, 0x61, 0x69, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x19, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, + 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, + 0x12, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x6f, 0x6b, 0x22, 0xce, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x6f, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, + 0x65, 0x72, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, + 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x47, 0x65, 0x6e, 0x22, 0x6b, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xd0, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x65, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x6f, 0x6f, 0x74, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x6f, + 0x6f, 0x74, 0x65, 0x72, 0x22, 0xc8, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, + 0x65, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, + 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, + 0x8a, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, 0x96, 0x01, 0x0a, + 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x0c, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, + 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x63, 0x6b, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x63, 0x6b, 0x22, 0x2a, 0x0a, 0x12, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x4f, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x22, 0x33, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x60, 0x0a, 0x0e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa1, 0x01, + 0x0a, 0x0b, 0x4e, 0x65, 0x77, 0x4e, 0x52, 0x54, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x47, 0x65, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, + 0x64, 0x22, 0x4b, 0x0a, 0x09, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4b, + 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x69, 0x64, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x64, 0x69, 0x64, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x22, 0x2f, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2c, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x56, + 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, + 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, + 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x42, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x75, + 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x71, 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, + 0x78, 0x4e, 0x75, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x57, 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x64, 0x6f, 0x57, 0x61, 0x69, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x12, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x3e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, + 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x4f, 0x52, 0x43, 0x45, + 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, + 0x10, 0x01, 0x22, 0x50, 0x0a, 0x18, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x64, 0x6f, 0x57, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x6f, + 0x57, 0x61, 0x69, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x19, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x4e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x46, - 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, - 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, - 0x0a, 0x1d, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x44, 0x45, - 0x4c, 0x45, 0x54, 0x45, 0x53, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x22, 0x9f, 0x05, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x6a, 0x0a, 0x21, 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4e, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x45, + 0x52, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, + 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x4f, 0x52, 0x43, 0x45, + 0x5f, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x53, 0x5f, 0x53, + 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x22, 0x9f, 0x05, 0x0a, 0x0d, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x6a, 0x0a, 0x21, + 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, + 0x42, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x72, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x12, 0x60, 0x0a, 0x1c, 0x6e, 0x72, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4d, + 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x6e, 0x72, + 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x12, - 0x60, 0x0a, 0x1c, 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x79, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x12, 0x73, 0x0a, 0x26, 0x63, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x26, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x71, 0x0a, 0x25, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, + 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, + 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x25, 0x63, 0x6f, 0x6e, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6f, 0x72, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6f, 0x72, 0x74, 0x12, 0x64, 0x0a, 0x1f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x72, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xca, 0x0a, 0x0a, + 0x11, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x53, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x12, 0x4a, 0x0a, 0x11, 0x6d, 0x61, + 0x78, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x6e, 0x72, 0x74, 0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x4d, - 0x42, 0x12, 0x73, 0x0a, 0x26, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, - 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x26, - 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x54, 0x68, 0x72, 0x65, 0x61, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x71, 0x0a, 0x25, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x25, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x72, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4d, - 0x65, 0x72, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x53, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x6f, 0x72, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6f, 0x72, - 0x74, 0x12, 0x64, 0x0a, 0x1f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x6f, - 0x74, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x72, - 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x54, - 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x79, 0x22, 0xca, 0x0a, 0x0a, 0x11, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x76, - 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x61, 0x78, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, - 0x6d, 0x61, 0x78, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x12, 0x42, 0x0a, - 0x0d, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, 0x63, 0x18, 0x02, + 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, + 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x12, 0x50, 0x0a, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x61, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x65, - 0x63, 0x12, 0x4a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, - 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x12, 0x50, 0x0a, - 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, - 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x61, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x12, - 0x57, 0x0a, 0x18, 0x61, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, - 0x61, 0x78, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, - 0x61, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x61, 0x78, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x6c, 0x69, 0x63, - 0x65, 0x4d, 0x61, 0x78, 0x44, 0x6f, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x75, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6d, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x42, 0x12, 0x57, 0x0a, 0x18, 0x61, 0x64, 0x64, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x4c, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x61, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x61, 0x78, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x65, + 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x6f, 0x63, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x6f, + 0x63, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x4d, 0x61, 0x78, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x4b, + 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x42, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, + 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x42, 0x12, 0x45, 0x0a, 0x0f, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x54, 0x69, 0x65, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x54, 0x69, + 0x65, 0x72, 0x12, 0x56, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x1e, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x72, 0x79, 0x12, + 0x51, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x6c, 0x69, - 0x63, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x73, 0x6c, 0x69, - 0x63, 0x65, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x10, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, - 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x42, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, - 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x42, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x65, - 0x72, 0x54, 0x69, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x50, 0x65, 0x72, 0x54, 0x69, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x17, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x53, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, - 0x63, 0x12, 0x63, 0x0a, 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x76, - 0x65, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x45, 0x76, 0x65, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1a, 0x6d, 0x61, 0x78, - 0x4d, 0x65, 0x72, 0x67, 0x65, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x6d, 0x61, 0x78, - 0x4d, 0x65, 0x72, 0x67, 0x65, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x62, 0x6f, - 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x76, 0x65, 0x72, - 0x62, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x70, - 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x42, 0x79, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x46, - 0x65, 0x74, 0x63, 0x68, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x53, 0x0a, 0x16, 0x70, - 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x68, 0x75, 0x6e, - 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, - 0x65, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, - 0x22, 0xee, 0x02, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x67, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x64, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x69, - 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x0c, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x40, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x1a, 0x4e, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x3c, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, - 0xc5, 0x01, 0x0a, 0x0f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x67, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x5a, 0x0a, 0x0c, 0x49, - 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x50, 0x72, + 0x65, 0x43, 0x6f, 0x70, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x50, 0x72, + 0x65, 0x43, 0x6f, 0x70, 0x79, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, + 0x12, 0x42, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x46, 0x65, 0x74, 0x63, 0x68, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, + 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x42, 0x79, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x12, 0x53, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x16, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, + 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x0e, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3f, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x39, - 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 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, 0x2a, 0xe9, 0x01, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x08, 0x0a, 0x04, 0x41, 0x54, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, - 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, - 0x54, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, - 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, - 0x54, 0x5f, 0x4c, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x54, 0x49, 0x4d, 0x45, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, - 0x4c, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, - 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x0b, 0x12, 0x07, 0x0a, - 0x03, 0x5f, 0x49, 0x44, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x4f, 0x4c, 0x59, 0x47, 0x4f, - 0x4e, 0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x0e, 0x12, - 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x43, - 0x4f, 0x4e, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x55, 0x47, 0x47, 0x45, 0x53, 0x54, 0x10, 0x10, - 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x11, 0x2a, 0x71, 0x0a, - 0x0c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x0a, - 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, - 0x43, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x4f, 0x43, 0x53, 0x5f, 0x46, 0x52, 0x45, - 0x51, 0x53, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x4f, 0x43, 0x53, 0x5f, 0x46, 0x52, 0x45, - 0x51, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x20, - 0x0a, 0x1c, 0x44, 0x4f, 0x43, 0x53, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x53, 0x5f, 0x50, 0x4f, 0x53, - 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x10, 0x04, - 0x2a, 0x84, 0x01, 0x0a, 0x0b, 0x54, 0x65, 0x72, 0x6d, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x56, 0x45, 0x43, 0x54, 0x4f, - 0x52, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x10, 0x01, 0x12, - 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x53, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x5f, 0x50, 0x4f, - 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x10, - 0x03, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, - 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, - 0x4c, 0x4f, 0x41, 0x44, 0x53, 0x10, 0x04, 0x2a, 0x61, 0x0a, 0x09, 0x46, 0x61, 0x63, 0x65, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x46, 0x41, 0x43, 0x45, 0x54, - 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x4c, 0x41, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x48, 0x49, 0x45, 0x52, 0x41, 0x52, 0x43, 0x48, 0x59, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, - 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, 0x12, - 0x19, 0x0a, 0x15, 0x53, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x4f, - 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x10, 0x04, 0x2a, 0x7b, 0x0a, 0x11, 0x54, 0x65, - 0x78, 0x74, 0x44, 0x6f, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x24, 0x0a, 0x20, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, - 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x4f, - 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, - 0x4e, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, - 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x11, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, - 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, - 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x10, 0x01, 0x2a, - 0x30, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x4e, 0x44, - 0x41, 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, - 0x52, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, - 0x02, 0x2a, 0x44, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x6e, - 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x32, 0x91, 0x1f, 0x0a, 0x0c, 0x4c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x6f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x0c, 0x6c, 0x69, 0x76, - 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9a, - 0x01, 0x0a, 0x0e, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, - 0x32, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x37, 0x22, 0x11, 0x2f, 0x76, 0x32, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x76, - 0x32, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, - 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6f, 0x0a, 0x0e, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x6b, 0x0a, 0x0c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, - 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x44, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x08, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x78, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, + 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4c, 0x69, + 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0c, 0x6c, 0x69, 0x76, 0x65, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x4e, 0x0a, 0x0b, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x10, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x0f, 0x47, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x67, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x65, 0x6e, 0x12, 0x44, + 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, + 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x65, 0x73, 0x1a, 0x5a, 0x0a, 0x0c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x3b, 0x0a, + 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x2a, 0xe9, 0x01, 0x0a, 0x09, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x54, 0x4f, 0x4d, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x4e, + 0x47, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, + 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, + 0x54, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x41, 0x54, 0x5f, 0x4c, 0x4f, 0x4e, 0x10, 0x07, + 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x08, 0x12, + 0x0b, 0x0a, 0x07, 0x56, 0x49, 0x52, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x5f, 0x49, 0x44, 0x10, 0x0c, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x4f, 0x4c, 0x59, 0x47, 0x4f, 0x4e, 0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x43, 0x54, + 0x4f, 0x52, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x58, 0x54, 0x5f, + 0x53, 0x55, 0x47, 0x47, 0x45, 0x53, 0x54, 0x10, 0x10, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, + 0x54, 0x49, 0x4d, 0x45, 0x10, 0x11, 0x2a, 0x71, 0x0a, 0x0c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, + 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x43, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x4f, 0x43, 0x53, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x53, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x44, 0x4f, 0x43, 0x53, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, + 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x43, 0x53, 0x5f, + 0x46, 0x52, 0x45, 0x51, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, + 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x10, 0x04, 0x2a, 0x84, 0x01, 0x0a, 0x0b, 0x54, 0x65, + 0x72, 0x6d, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, + 0x54, 0x45, 0x52, 0x4d, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x45, 0x52, 0x4d, + 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x02, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x45, 0x52, 0x4d, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, + 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x53, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x45, + 0x52, 0x4d, 0x53, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x4f, 0x46, + 0x46, 0x53, 0x45, 0x54, 0x53, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x53, 0x10, 0x04, + 0x2a, 0x61, 0x0a, 0x09, 0x46, 0x61, 0x63, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x4f, 0x5f, 0x46, 0x41, 0x43, 0x45, 0x54, 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x46, 0x4c, 0x41, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x49, 0x45, 0x52, 0x41, 0x52, + 0x43, 0x48, 0x59, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, + 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x4f, 0x52, 0x54, + 0x45, 0x44, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x53, 0x10, 0x04, 0x2a, 0x7b, 0x0a, 0x11, 0x54, 0x65, 0x78, 0x74, 0x44, 0x6f, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x45, 0x58, 0x54, + 0x5f, 0x44, 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, + 0x0a, 0x1b, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, + 0x1f, 0x0a, 0x1b, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x4f, 0x43, 0x5f, 0x56, 0x41, 0x4c, 0x55, + 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, + 0x2a, 0x46, 0x0a, 0x11, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, + 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x10, 0x01, 0x2a, 0x30, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x02, 0x2a, 0x44, 0x0a, 0x12, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0x03, + 0x32, 0x9f, 0x20, 0x0a, 0x0c, 0x4c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x6f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, + 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x0c, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x6c, 0x69, 0x76, 0x65, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4c, + 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x11, 0x2f, + 0x76, 0x32, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x3a, 0x01, 0x2a, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x32, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, + 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6f, 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x6b, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, - 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x12, 0x1f, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, + 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x3a, + 0x01, 0x2a, 0x12, 0x62, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, + 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x0c, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x32, 0x2f, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, - 0x2a, 0x12, 0x6f, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, - 0x32, 0x12, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, - 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, - 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, - 0x74, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, - 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x6f, 0x61, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x44, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, - 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x64, 0x5f, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x12, 0x5e, 0x0a, - 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, - 0x76, 0x31, 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x5a, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x27, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x3a, 0x01, - 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x5a, 0x0a, 0x06, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x54, 0x0a, 0x08, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, - 0x76, 0x32, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x64, 0x0a, 0x06, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, - 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x79, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x12, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x62, - 0x79, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x09, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, - 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, - 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, 0x7b, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x56, 0x32, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, + 0x22, 0x0c, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, + 0x2a, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x6b, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x2e, 0x6c, 0x75, + 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x56, 0x32, 0x12, 0x21, 0x2e, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x09, 0x73, + 0x74, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x75, 0x6d, 0x6d, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, + 0x12, 0x6f, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, + 0x2a, 0x12, 0x73, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x64, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x3a, 0x01, 0x2a, 0x28, 0x01, 0x12, 0x5e, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x12, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x5a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x12, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x3a, + 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x75, + 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x09, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0x5a, 0x0a, 0x06, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1b, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, + 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, + 0x54, 0x0a, 0x08, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x6c, 0x75, + 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x22, 0x15, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x64, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, + 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x0a, 0x2f, 0x76, + 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x0d, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x22, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x41, 0x64, 0x64, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x3a, 0x01, 0x2a, 0x12, 0x7f, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x47, 0x65, 0x6e, 0x12, - 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x47, 0x65, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x47, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, - 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x67, 0x65, 0x6e, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, - 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x29, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x57, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x61, - 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, - 0x31, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, - 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x60, 0x0a, 0x08, 0x6e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, - 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x6f, 0x0a, - 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6f, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, - 0x61, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, - 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x78, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f, 0x2e, 0x6c, 0x75, - 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x79, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2f, - 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x7d, 0x12, 0x50, 0x0a, 0x07, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, - 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5b, - 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x12, 0x6b, 0x0a, 0x0a, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, - 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, - 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, - 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, - 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x12, 0x26, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, - 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, - 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, - 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x3a, 0x01, 0x2a, 0x32, 0x9c, 0x06, 0x0a, 0x11, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x12, 0x52, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, + 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, + 0x12, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6c, 0x75, 0x63, 0x65, + 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6c, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x76, 0x31, + 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x6f, + 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x01, 0x2a, 0x12, + 0x7b, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x7f, 0x0a, 0x0f, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, + 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, + 0x0a, 0x16, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x47, 0x65, 0x6e, 0x12, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x47, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x47, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x67, 0x65, + 0x6e, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x94, 0x01, + 0x0a, 0x14, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x51, + 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x61, 0x72, 0x6d, + 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x51, 0x75, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x5f, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x60, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x6f, 0x0a, 0x0b, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x15, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x27, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x5a, + 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x8b, 0x01, 0x0a, 0x0a, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x34, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x1e, 0x12, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x61, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x78, 0x0a, 0x05, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x09, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x7d, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x17, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5b, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, + 0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x6b, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x76, 0x43, 0x6f, 0x70, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x00, 0x12, 0x4b, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0x1c, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x28, 0x01, 0x12, 0x45, - 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x76, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, + 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x22, 0x0f, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, + 0x88, 0x01, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x3a, + 0x01, 0x2a, 0x32, 0x9c, 0x06, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0d, + 0x72, 0x65, 0x63, 0x76, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, + 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, + 0x75, 0x6e, 0x6b, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x00, 0x28, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x76, 0x52, 0x61, 0x77, + 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x6c, + 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x61, 0x77, 0x46, + 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x00, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0d, + 0x72, 0x65, 0x63, 0x76, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, - 0x6b, 0x22, 0x00, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x76, 0x52, 0x61, 0x77, - 0x46, 0x69, 0x6c, 0x65, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, - 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x61, - 0x77, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, - 0x12, 0x46, 0x0a, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x17, 0x2e, - 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, - 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x4e, - 0x52, 0x54, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x77, 0x4e, 0x52, 0x54, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4e, 0x52, 0x54, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x6c, - 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x55, 0x0a, - 0x19, 0x67, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x6c, 0x75, 0x63, + 0x6b, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x17, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x1c, 0x2e, + 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x30, 0x01, 0x12, + 0x48, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x4e, 0x52, 0x54, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, + 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4e, 0x65, + 0x77, 0x4e, 0x52, 0x54, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x65, + 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x4e, 0x52, 0x54, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, - 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x56, 0x0a, 0x1e, 0x63, 0x6f, - 0x6d, 0x2e, 0x79, 0x65, 0x6c, 0x70, 0x2e, 0x6e, 0x72, 0x74, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x42, 0x11, 0x4c, 0x75, - 0x63, 0x65, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x19, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x59, 0x65, - 0x6c, 0x70, 0x2f, 0x6e, 0x72, 0x74, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0xa2, 0x02, 0x03, 0x48, - 0x4c, 0x57, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x17, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x1d, 0x2e, 0x6c, 0x75, 0x63, + 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x67, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x56, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x79, 0x65, 0x6c, 0x70, 0x2e, 0x6e, 0x72, + 0x74, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, + 0x72, 0x70, 0x63, 0x42, 0x11, 0x4c, 0x75, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x19, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x59, 0x65, 0x6c, 0x70, 0x2f, 0x6e, 0x72, 0x74, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0xa2, 0x02, 0x03, 0x48, 0x4c, 0x57, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -7615,7 +7729,7 @@ func file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP() []byte { } var file_yelp_nrtsearch_luceneserver_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_yelp_nrtsearch_luceneserver_proto_msgTypes = make([]protoimpl.MessageInfo, 92) +var file_yelp_nrtsearch_luceneserver_proto_msgTypes = make([]protoimpl.MessageInfo, 94) var file_yelp_nrtsearch_luceneserver_proto_goTypes = []interface{}{ (FieldType)(0), // 0: luceneserver.FieldType (IndexOptions)(0), // 1: luceneserver.IndexOptions @@ -7682,86 +7796,88 @@ var file_yelp_nrtsearch_luceneserver_proto_goTypes = []interface{}{ (*GlobalStateResponse)(nil), // 62: luceneserver.GlobalStateResponse (*StateRequest)(nil), // 63: luceneserver.StateRequest (*StateResponse)(nil), // 64: luceneserver.StateResponse - (*AddReplicaRequest)(nil), // 65: luceneserver.AddReplicaRequest - (*AddReplicaResponse)(nil), // 66: luceneserver.AddReplicaResponse - (*CopyState)(nil), // 67: luceneserver.CopyState - (*FilesMetadata)(nil), // 68: luceneserver.FilesMetadata - (*FileMetadata)(nil), // 69: luceneserver.FileMetadata - (*CopyFiles)(nil), // 70: luceneserver.CopyFiles - (*CopyStateRequest)(nil), // 71: luceneserver.CopyStateRequest - (*FileInfo)(nil), // 72: luceneserver.FileInfo - (*RawFileChunk)(nil), // 73: luceneserver.RawFileChunk - (*HealthCheckRequest)(nil), // 74: luceneserver.HealthCheckRequest - (*HealthCheckResponse)(nil), // 75: luceneserver.HealthCheckResponse - (*ReadyCheckRequest)(nil), // 76: luceneserver.ReadyCheckRequest - (*TransferStatus)(nil), // 77: luceneserver.TransferStatus - (*NewNRTPoint)(nil), // 78: luceneserver.NewNRTPoint - (*IndexName)(nil), // 79: luceneserver.IndexName - (*SearcherVersion)(nil), // 80: luceneserver.SearcherVersion - (*GetNodesRequest)(nil), // 81: luceneserver.GetNodesRequest - (*GetNodesResponse)(nil), // 82: luceneserver.GetNodesResponse - (*NodeInfo)(nil), // 83: luceneserver.NodeInfo - (*DeleteByQueryRequest)(nil), // 84: luceneserver.DeleteByQueryRequest - (*ForceMergeRequest)(nil), // 85: luceneserver.ForceMergeRequest - (*ForceMergeResponse)(nil), // 86: luceneserver.ForceMergeResponse - (*ForceMergeDeletesRequest)(nil), // 87: luceneserver.ForceMergeDeletesRequest - (*ForceMergeDeletesResponse)(nil), // 88: luceneserver.ForceMergeDeletesResponse - (*IndexSettings)(nil), // 89: luceneserver.IndexSettings - (*IndexLiveSettings)(nil), // 90: luceneserver.IndexLiveSettings - (*IndexStateInfo)(nil), // 91: luceneserver.IndexStateInfo - (*IndexGlobalState)(nil), // 92: luceneserver.IndexGlobalState - (*GlobalStateInfo)(nil), // 93: luceneserver.GlobalStateInfo - (*CustomRequest)(nil), // 94: luceneserver.CustomRequest - (*CustomResponse)(nil), // 95: luceneserver.CustomResponse - (*AddDocumentRequest_MultiValuedField)(nil), // 96: luceneserver.AddDocumentRequest.MultiValuedField - nil, // 97: luceneserver.AddDocumentRequest.FieldsEntry - nil, // 98: luceneserver.IndexStateInfo.FieldsEntry - nil, // 99: luceneserver.GlobalStateInfo.IndicesEntry - nil, // 100: luceneserver.CustomRequest.ParamsEntry - nil, // 101: luceneserver.CustomResponse.ResponseEntry - (*Script)(nil), // 102: luceneserver.Script - (*Analyzer)(nil), // 103: luceneserver.Analyzer - (*structpb.Struct)(nil), // 104: google.protobuf.Struct - (*SortFields)(nil), // 105: luceneserver.SortFields - (*Query)(nil), // 106: luceneserver.Query - (*wrapperspb.DoubleValue)(nil), // 107: google.protobuf.DoubleValue - (*wrapperspb.Int32Value)(nil), // 108: google.protobuf.Int32Value - (*wrapperspb.BoolValue)(nil), // 109: google.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 110: google.protobuf.StringValue - (*wrapperspb.UInt64Value)(nil), // 111: google.protobuf.UInt64Value - (*SearchRequest)(nil), // 112: luceneserver.SearchRequest - (*emptypb.Empty)(nil), // 113: google.protobuf.Empty - (*SearchResponse)(nil), // 114: luceneserver.SearchResponse - (*anypb.Any)(nil), // 115: google.protobuf.Any - (*httpbody.HttpBody)(nil), // 116: google.api.HttpBody + (*IndexStateRequest)(nil), // 65: luceneserver.IndexStateRequest + (*IndexStateResponse)(nil), // 66: luceneserver.IndexStateResponse + (*AddReplicaRequest)(nil), // 67: luceneserver.AddReplicaRequest + (*AddReplicaResponse)(nil), // 68: luceneserver.AddReplicaResponse + (*CopyState)(nil), // 69: luceneserver.CopyState + (*FilesMetadata)(nil), // 70: luceneserver.FilesMetadata + (*FileMetadata)(nil), // 71: luceneserver.FileMetadata + (*CopyFiles)(nil), // 72: luceneserver.CopyFiles + (*CopyStateRequest)(nil), // 73: luceneserver.CopyStateRequest + (*FileInfo)(nil), // 74: luceneserver.FileInfo + (*RawFileChunk)(nil), // 75: luceneserver.RawFileChunk + (*HealthCheckRequest)(nil), // 76: luceneserver.HealthCheckRequest + (*HealthCheckResponse)(nil), // 77: luceneserver.HealthCheckResponse + (*ReadyCheckRequest)(nil), // 78: luceneserver.ReadyCheckRequest + (*TransferStatus)(nil), // 79: luceneserver.TransferStatus + (*NewNRTPoint)(nil), // 80: luceneserver.NewNRTPoint + (*IndexName)(nil), // 81: luceneserver.IndexName + (*SearcherVersion)(nil), // 82: luceneserver.SearcherVersion + (*GetNodesRequest)(nil), // 83: luceneserver.GetNodesRequest + (*GetNodesResponse)(nil), // 84: luceneserver.GetNodesResponse + (*NodeInfo)(nil), // 85: luceneserver.NodeInfo + (*DeleteByQueryRequest)(nil), // 86: luceneserver.DeleteByQueryRequest + (*ForceMergeRequest)(nil), // 87: luceneserver.ForceMergeRequest + (*ForceMergeResponse)(nil), // 88: luceneserver.ForceMergeResponse + (*ForceMergeDeletesRequest)(nil), // 89: luceneserver.ForceMergeDeletesRequest + (*ForceMergeDeletesResponse)(nil), // 90: luceneserver.ForceMergeDeletesResponse + (*IndexSettings)(nil), // 91: luceneserver.IndexSettings + (*IndexLiveSettings)(nil), // 92: luceneserver.IndexLiveSettings + (*IndexStateInfo)(nil), // 93: luceneserver.IndexStateInfo + (*IndexGlobalState)(nil), // 94: luceneserver.IndexGlobalState + (*GlobalStateInfo)(nil), // 95: luceneserver.GlobalStateInfo + (*CustomRequest)(nil), // 96: luceneserver.CustomRequest + (*CustomResponse)(nil), // 97: luceneserver.CustomResponse + (*AddDocumentRequest_MultiValuedField)(nil), // 98: luceneserver.AddDocumentRequest.MultiValuedField + nil, // 99: luceneserver.AddDocumentRequest.FieldsEntry + nil, // 100: luceneserver.IndexStateInfo.FieldsEntry + nil, // 101: luceneserver.GlobalStateInfo.IndicesEntry + nil, // 102: luceneserver.CustomRequest.ParamsEntry + nil, // 103: luceneserver.CustomResponse.ResponseEntry + (*Script)(nil), // 104: luceneserver.Script + (*Analyzer)(nil), // 105: luceneserver.Analyzer + (*structpb.Struct)(nil), // 106: google.protobuf.Struct + (*SortFields)(nil), // 107: luceneserver.SortFields + (*Query)(nil), // 108: luceneserver.Query + (*wrapperspb.DoubleValue)(nil), // 109: google.protobuf.DoubleValue + (*wrapperspb.Int32Value)(nil), // 110: google.protobuf.Int32Value + (*wrapperspb.BoolValue)(nil), // 111: google.protobuf.BoolValue + (*wrapperspb.StringValue)(nil), // 112: google.protobuf.StringValue + (*wrapperspb.UInt64Value)(nil), // 113: google.protobuf.UInt64Value + (*SearchRequest)(nil), // 114: luceneserver.SearchRequest + (*emptypb.Empty)(nil), // 115: google.protobuf.Empty + (*SearchResponse)(nil), // 116: luceneserver.SearchResponse + (*anypb.Any)(nil), // 117: google.protobuf.Any + (*httpbody.HttpBody)(nil), // 118: google.api.HttpBody } var file_yelp_nrtsearch_luceneserver_proto_depIdxs = []int32{ - 89, // 0: luceneserver.CreateIndexRequest.settings:type_name -> luceneserver.IndexSettings - 90, // 1: luceneserver.CreateIndexRequest.liveSettings:type_name -> luceneserver.IndexLiveSettings + 91, // 0: luceneserver.CreateIndexRequest.settings:type_name -> luceneserver.IndexSettings + 92, // 1: luceneserver.CreateIndexRequest.liveSettings:type_name -> luceneserver.IndexLiveSettings 16, // 2: luceneserver.CreateIndexRequest.fields:type_name -> luceneserver.Field - 90, // 3: luceneserver.LiveSettingsV2Request.liveSettings:type_name -> luceneserver.IndexLiveSettings - 90, // 4: luceneserver.LiveSettingsV2Response.liveSettings:type_name -> luceneserver.IndexLiveSettings + 92, // 3: luceneserver.LiveSettingsV2Request.liveSettings:type_name -> luceneserver.IndexLiveSettings + 92, // 4: luceneserver.LiveSettingsV2Response.liveSettings:type_name -> luceneserver.IndexLiveSettings 0, // 5: luceneserver.Field.type:type_name -> luceneserver.FieldType 1, // 6: luceneserver.Field.indexOptions:type_name -> luceneserver.IndexOptions - 102, // 7: luceneserver.Field.script:type_name -> luceneserver.Script - 103, // 8: luceneserver.Field.analyzer:type_name -> luceneserver.Analyzer - 103, // 9: luceneserver.Field.indexAnalyzer:type_name -> luceneserver.Analyzer - 103, // 10: luceneserver.Field.searchAnalyzer:type_name -> luceneserver.Analyzer + 104, // 7: luceneserver.Field.script:type_name -> luceneserver.Script + 105, // 8: luceneserver.Field.analyzer:type_name -> luceneserver.Analyzer + 105, // 9: luceneserver.Field.indexAnalyzer:type_name -> luceneserver.Analyzer + 105, // 10: luceneserver.Field.searchAnalyzer:type_name -> luceneserver.Analyzer 2, // 11: luceneserver.Field.termVectors:type_name -> luceneserver.TermVectors 3, // 12: luceneserver.Field.facet:type_name -> luceneserver.FacetType - 104, // 13: luceneserver.Field.additionalProperties:type_name -> google.protobuf.Struct - 104, // 14: luceneserver.Field.similarityParams:type_name -> google.protobuf.Struct + 106, // 13: luceneserver.Field.additionalProperties:type_name -> google.protobuf.Struct + 106, // 14: luceneserver.Field.similarityParams:type_name -> google.protobuf.Struct 16, // 15: luceneserver.Field.childFields:type_name -> luceneserver.Field 17, // 16: luceneserver.Field.vectorIndexingOptions:type_name -> luceneserver.VectorIndexingOptions 4, // 17: luceneserver.Field.textDocValuesType:type_name -> luceneserver.TextDocValuesType 5, // 18: luceneserver.Field.vectorElementType:type_name -> luceneserver.VectorElementType 16, // 19: luceneserver.FieldDefRequest.field:type_name -> luceneserver.Field - 105, // 20: luceneserver.SettingsRequest.indexSort:type_name -> luceneserver.SortFields - 89, // 21: luceneserver.SettingsV2Request.settings:type_name -> luceneserver.IndexSettings - 89, // 22: luceneserver.SettingsV2Response.settings:type_name -> luceneserver.IndexSettings + 107, // 20: luceneserver.SettingsRequest.indexSort:type_name -> luceneserver.SortFields + 91, // 21: luceneserver.SettingsV2Request.settings:type_name -> luceneserver.IndexSettings + 91, // 22: luceneserver.SettingsV2Response.settings:type_name -> luceneserver.IndexSettings 6, // 23: luceneserver.StartIndexRequest.mode:type_name -> luceneserver.Mode 58, // 24: luceneserver.StartIndexRequest.restore:type_name -> luceneserver.RestoreIndex - 97, // 25: luceneserver.AddDocumentRequest.fields:type_name -> luceneserver.AddDocumentRequest.FieldsEntry + 99, // 25: luceneserver.AddDocumentRequest.fields:type_name -> luceneserver.AddDocumentRequest.FieldsEntry 36, // 26: luceneserver.StatsResponse.taxonomy:type_name -> luceneserver.Taxonomy 37, // 27: luceneserver.StatsResponse.searchers:type_name -> luceneserver.Searcher 37, // 28: luceneserver.StatsResponse.currentSearcher:type_name -> luceneserver.Searcher @@ -7769,145 +7885,148 @@ var file_yelp_nrtsearch_luceneserver_proto_depIdxs = []int32{ 48, // 30: luceneserver.ReleaseSnapshotRequest.snapshotId:type_name -> luceneserver.SnapshotId 57, // 31: luceneserver.IndicesResponse.indicesResponse:type_name -> luceneserver.IndexStatsResponse 35, // 32: luceneserver.IndexStatsResponse.statsResponse:type_name -> luceneserver.StatsResponse - 93, // 33: luceneserver.GlobalStateResponse.global_state:type_name -> luceneserver.GlobalStateInfo - 68, // 34: luceneserver.CopyState.filesMetadata:type_name -> luceneserver.FilesMetadata - 69, // 35: luceneserver.FilesMetadata.fileMetadata:type_name -> luceneserver.FileMetadata - 68, // 36: luceneserver.CopyFiles.filesMetadata:type_name -> luceneserver.FilesMetadata - 7, // 37: luceneserver.HealthCheckResponse.health:type_name -> luceneserver.TransferStatusCode - 7, // 38: luceneserver.TransferStatus.Code:type_name -> luceneserver.TransferStatusCode - 83, // 39: luceneserver.GetNodesResponse.nodes:type_name -> luceneserver.NodeInfo - 106, // 40: luceneserver.DeleteByQueryRequest.query:type_name -> luceneserver.Query - 8, // 41: luceneserver.ForceMergeResponse.status:type_name -> luceneserver.ForceMergeResponse.Status - 9, // 42: luceneserver.ForceMergeDeletesResponse.status:type_name -> luceneserver.ForceMergeDeletesResponse.Status - 107, // 43: luceneserver.IndexSettings.nrtCachingDirectoryMaxMergeSizeMB:type_name -> google.protobuf.DoubleValue - 107, // 44: luceneserver.IndexSettings.nrtCachingDirectoryMaxSizeMB:type_name -> google.protobuf.DoubleValue - 108, // 45: luceneserver.IndexSettings.concurrentMergeSchedulerMaxThreadCount:type_name -> google.protobuf.Int32Value - 108, // 46: luceneserver.IndexSettings.concurrentMergeSchedulerMaxMergeCount:type_name -> google.protobuf.Int32Value - 105, // 47: luceneserver.IndexSettings.indexSort:type_name -> luceneserver.SortFields - 109, // 48: luceneserver.IndexSettings.indexMergeSchedulerAutoThrottle:type_name -> google.protobuf.BoolValue - 110, // 49: luceneserver.IndexSettings.directory:type_name -> google.protobuf.StringValue - 107, // 50: luceneserver.IndexLiveSettings.maxRefreshSec:type_name -> google.protobuf.DoubleValue - 107, // 51: luceneserver.IndexLiveSettings.minRefreshSec:type_name -> google.protobuf.DoubleValue - 107, // 52: luceneserver.IndexLiveSettings.maxSearcherAgeSec:type_name -> google.protobuf.DoubleValue - 107, // 53: luceneserver.IndexLiveSettings.indexRamBufferSizeMB:type_name -> google.protobuf.DoubleValue - 108, // 54: luceneserver.IndexLiveSettings.addDocumentsMaxBufferLen:type_name -> google.protobuf.Int32Value - 108, // 55: luceneserver.IndexLiveSettings.sliceMaxDocs:type_name -> google.protobuf.Int32Value - 108, // 56: luceneserver.IndexLiveSettings.sliceMaxSegments:type_name -> google.protobuf.Int32Value - 108, // 57: luceneserver.IndexLiveSettings.virtualShards:type_name -> google.protobuf.Int32Value - 108, // 58: luceneserver.IndexLiveSettings.maxMergedSegmentMB:type_name -> google.protobuf.Int32Value - 108, // 59: luceneserver.IndexLiveSettings.segmentsPerTier:type_name -> google.protobuf.Int32Value - 107, // 60: luceneserver.IndexLiveSettings.defaultSearchTimeoutSec:type_name -> google.protobuf.DoubleValue - 108, // 61: luceneserver.IndexLiveSettings.defaultSearchTimeoutCheckEvery:type_name -> google.protobuf.Int32Value - 108, // 62: luceneserver.IndexLiveSettings.defaultTerminateAfter:type_name -> google.protobuf.Int32Value - 111, // 63: luceneserver.IndexLiveSettings.maxMergePreCopyDurationSec:type_name -> google.protobuf.UInt64Value - 109, // 64: luceneserver.IndexLiveSettings.verboseMetrics:type_name -> google.protobuf.BoolValue - 109, // 65: luceneserver.IndexLiveSettings.parallelFetchByField:type_name -> google.protobuf.BoolValue - 108, // 66: luceneserver.IndexLiveSettings.parallelFetchChunkSize:type_name -> google.protobuf.Int32Value - 89, // 67: luceneserver.IndexStateInfo.settings:type_name -> luceneserver.IndexSettings - 90, // 68: luceneserver.IndexStateInfo.liveSettings:type_name -> luceneserver.IndexLiveSettings - 98, // 69: luceneserver.IndexStateInfo.fields:type_name -> luceneserver.IndexStateInfo.FieldsEntry - 99, // 70: luceneserver.GlobalStateInfo.indices:type_name -> luceneserver.GlobalStateInfo.IndicesEntry - 100, // 71: luceneserver.CustomRequest.params:type_name -> luceneserver.CustomRequest.ParamsEntry - 101, // 72: luceneserver.CustomResponse.response:type_name -> luceneserver.CustomResponse.ResponseEntry - 28, // 73: luceneserver.AddDocumentRequest.MultiValuedField.faceHierarchyPaths:type_name -> luceneserver.FacetHierarchyPath - 96, // 74: luceneserver.AddDocumentRequest.FieldsEntry.value:type_name -> luceneserver.AddDocumentRequest.MultiValuedField - 16, // 75: luceneserver.IndexStateInfo.FieldsEntry.value:type_name -> luceneserver.Field - 92, // 76: luceneserver.GlobalStateInfo.IndicesEntry.value:type_name -> luceneserver.IndexGlobalState - 10, // 77: luceneserver.LuceneServer.createIndex:input_type -> luceneserver.CreateIndexRequest - 12, // 78: luceneserver.LuceneServer.liveSettings:input_type -> luceneserver.LiveSettingsRequest - 14, // 79: luceneserver.LuceneServer.liveSettingsV2:input_type -> luceneserver.LiveSettingsV2Request - 18, // 80: luceneserver.LuceneServer.registerFields:input_type -> luceneserver.FieldDefRequest - 18, // 81: luceneserver.LuceneServer.updateFields:input_type -> luceneserver.FieldDefRequest - 20, // 82: luceneserver.LuceneServer.settings:input_type -> luceneserver.SettingsRequest - 22, // 83: luceneserver.LuceneServer.settingsV2:input_type -> luceneserver.SettingsV2Request - 24, // 84: luceneserver.LuceneServer.startIndex:input_type -> luceneserver.StartIndexRequest - 25, // 85: luceneserver.LuceneServer.startIndexV2:input_type -> luceneserver.StartIndexV2Request - 43, // 86: luceneserver.LuceneServer.stopIndex:input_type -> luceneserver.StopIndexRequest - 44, // 87: luceneserver.LuceneServer.reloadState:input_type -> luceneserver.ReloadStateRequest - 27, // 88: luceneserver.LuceneServer.addDocuments:input_type -> luceneserver.AddDocumentRequest - 30, // 89: luceneserver.LuceneServer.refresh:input_type -> luceneserver.RefreshRequest - 32, // 90: luceneserver.LuceneServer.commit:input_type -> luceneserver.CommitRequest - 34, // 91: luceneserver.LuceneServer.stats:input_type -> luceneserver.StatsRequest - 112, // 92: luceneserver.LuceneServer.search:input_type -> luceneserver.SearchRequest - 112, // 93: luceneserver.LuceneServer.searchV2:input_type -> luceneserver.SearchRequest - 27, // 94: luceneserver.LuceneServer.delete:input_type -> luceneserver.AddDocumentRequest - 84, // 95: luceneserver.LuceneServer.deleteByQuery:input_type -> luceneserver.DeleteByQueryRequest - 38, // 96: luceneserver.LuceneServer.deleteAll:input_type -> luceneserver.DeleteAllDocumentsRequest - 40, // 97: luceneserver.LuceneServer.deleteIndex:input_type -> luceneserver.DeleteIndexRequest - 46, // 98: luceneserver.LuceneServer.createSnapshot:input_type -> luceneserver.CreateSnapshotRequest - 49, // 99: luceneserver.LuceneServer.releaseSnapshot:input_type -> luceneserver.ReleaseSnapshotRequest - 51, // 100: luceneserver.LuceneServer.getAllSnapshotIndexGen:input_type -> luceneserver.GetAllSnapshotGenRequest - 53, // 101: luceneserver.LuceneServer.backupWarmingQueries:input_type -> luceneserver.BackupWarmingQueriesRequest - 59, // 102: luceneserver.LuceneServer.nodeInfo:input_type -> luceneserver.NodeInfoRequest - 61, // 103: luceneserver.LuceneServer.globalState:input_type -> luceneserver.GlobalStateRequest - 63, // 104: luceneserver.LuceneServer.state:input_type -> luceneserver.StateRequest - 74, // 105: luceneserver.LuceneServer.status:input_type -> luceneserver.HealthCheckRequest - 76, // 106: luceneserver.LuceneServer.ready:input_type -> luceneserver.ReadyCheckRequest - 113, // 107: luceneserver.LuceneServer.metrics:input_type -> google.protobuf.Empty - 55, // 108: luceneserver.LuceneServer.indices:input_type -> luceneserver.IndicesRequest - 85, // 109: luceneserver.LuceneServer.forceMerge:input_type -> luceneserver.ForceMergeRequest - 87, // 110: luceneserver.LuceneServer.forceMergeDeletes:input_type -> luceneserver.ForceMergeDeletesRequest - 94, // 111: luceneserver.LuceneServer.custom:input_type -> luceneserver.CustomRequest - 65, // 112: luceneserver.ReplicationServer.addReplicas:input_type -> luceneserver.AddReplicaRequest - 71, // 113: luceneserver.ReplicationServer.recvCopyState:input_type -> luceneserver.CopyStateRequest - 73, // 114: luceneserver.ReplicationServer.sendRawFile:input_type -> luceneserver.RawFileChunk - 72, // 115: luceneserver.ReplicationServer.recvRawFile:input_type -> luceneserver.FileInfo - 72, // 116: luceneserver.ReplicationServer.recvRawFileV2:input_type -> luceneserver.FileInfo - 70, // 117: luceneserver.ReplicationServer.copyFiles:input_type -> luceneserver.CopyFiles - 78, // 118: luceneserver.ReplicationServer.newNRTPoint:input_type -> luceneserver.NewNRTPoint - 79, // 119: luceneserver.ReplicationServer.writeNRTPoint:input_type -> luceneserver.IndexName - 79, // 120: luceneserver.ReplicationServer.getCurrentSearcherVersion:input_type -> luceneserver.IndexName - 81, // 121: luceneserver.ReplicationServer.getConnectedNodes:input_type -> luceneserver.GetNodesRequest - 11, // 122: luceneserver.LuceneServer.createIndex:output_type -> luceneserver.CreateIndexResponse - 13, // 123: luceneserver.LuceneServer.liveSettings:output_type -> luceneserver.LiveSettingsResponse - 15, // 124: luceneserver.LuceneServer.liveSettingsV2:output_type -> luceneserver.LiveSettingsV2Response - 19, // 125: luceneserver.LuceneServer.registerFields:output_type -> luceneserver.FieldDefResponse - 19, // 126: luceneserver.LuceneServer.updateFields:output_type -> luceneserver.FieldDefResponse - 21, // 127: luceneserver.LuceneServer.settings:output_type -> luceneserver.SettingsResponse - 23, // 128: luceneserver.LuceneServer.settingsV2:output_type -> luceneserver.SettingsV2Response - 26, // 129: luceneserver.LuceneServer.startIndex:output_type -> luceneserver.StartIndexResponse - 26, // 130: luceneserver.LuceneServer.startIndexV2:output_type -> luceneserver.StartIndexResponse - 42, // 131: luceneserver.LuceneServer.stopIndex:output_type -> luceneserver.DummyResponse - 45, // 132: luceneserver.LuceneServer.reloadState:output_type -> luceneserver.ReloadStateResponse - 29, // 133: luceneserver.LuceneServer.addDocuments:output_type -> luceneserver.AddDocumentResponse - 31, // 134: luceneserver.LuceneServer.refresh:output_type -> luceneserver.RefreshResponse - 33, // 135: luceneserver.LuceneServer.commit:output_type -> luceneserver.CommitResponse - 35, // 136: luceneserver.LuceneServer.stats:output_type -> luceneserver.StatsResponse - 114, // 137: luceneserver.LuceneServer.search:output_type -> luceneserver.SearchResponse - 115, // 138: luceneserver.LuceneServer.searchV2:output_type -> google.protobuf.Any - 29, // 139: luceneserver.LuceneServer.delete:output_type -> luceneserver.AddDocumentResponse - 29, // 140: luceneserver.LuceneServer.deleteByQuery:output_type -> luceneserver.AddDocumentResponse - 39, // 141: luceneserver.LuceneServer.deleteAll:output_type -> luceneserver.DeleteAllDocumentsResponse - 41, // 142: luceneserver.LuceneServer.deleteIndex:output_type -> luceneserver.DeleteIndexResponse - 47, // 143: luceneserver.LuceneServer.createSnapshot:output_type -> luceneserver.CreateSnapshotResponse - 50, // 144: luceneserver.LuceneServer.releaseSnapshot:output_type -> luceneserver.ReleaseSnapshotResponse - 52, // 145: luceneserver.LuceneServer.getAllSnapshotIndexGen:output_type -> luceneserver.GetAllSnapshotGenResponse - 54, // 146: luceneserver.LuceneServer.backupWarmingQueries:output_type -> luceneserver.BackupWarmingQueriesResponse - 60, // 147: luceneserver.LuceneServer.nodeInfo:output_type -> luceneserver.NodeInfoResponse - 62, // 148: luceneserver.LuceneServer.globalState:output_type -> luceneserver.GlobalStateResponse - 64, // 149: luceneserver.LuceneServer.state:output_type -> luceneserver.StateResponse - 75, // 150: luceneserver.LuceneServer.status:output_type -> luceneserver.HealthCheckResponse - 75, // 151: luceneserver.LuceneServer.ready:output_type -> luceneserver.HealthCheckResponse - 116, // 152: luceneserver.LuceneServer.metrics:output_type -> google.api.HttpBody - 56, // 153: luceneserver.LuceneServer.indices:output_type -> luceneserver.IndicesResponse - 86, // 154: luceneserver.LuceneServer.forceMerge:output_type -> luceneserver.ForceMergeResponse - 88, // 155: luceneserver.LuceneServer.forceMergeDeletes:output_type -> luceneserver.ForceMergeDeletesResponse - 95, // 156: luceneserver.LuceneServer.custom:output_type -> luceneserver.CustomResponse - 66, // 157: luceneserver.ReplicationServer.addReplicas:output_type -> luceneserver.AddReplicaResponse - 67, // 158: luceneserver.ReplicationServer.recvCopyState:output_type -> luceneserver.CopyState - 77, // 159: luceneserver.ReplicationServer.sendRawFile:output_type -> luceneserver.TransferStatus - 73, // 160: luceneserver.ReplicationServer.recvRawFile:output_type -> luceneserver.RawFileChunk - 73, // 161: luceneserver.ReplicationServer.recvRawFileV2:output_type -> luceneserver.RawFileChunk - 77, // 162: luceneserver.ReplicationServer.copyFiles:output_type -> luceneserver.TransferStatus - 77, // 163: luceneserver.ReplicationServer.newNRTPoint:output_type -> luceneserver.TransferStatus - 80, // 164: luceneserver.ReplicationServer.writeNRTPoint:output_type -> luceneserver.SearcherVersion - 80, // 165: luceneserver.ReplicationServer.getCurrentSearcherVersion:output_type -> luceneserver.SearcherVersion - 82, // 166: luceneserver.ReplicationServer.getConnectedNodes:output_type -> luceneserver.GetNodesResponse - 122, // [122:167] is the sub-list for method output_type - 77, // [77:122] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 95, // 33: luceneserver.GlobalStateResponse.global_state:type_name -> luceneserver.GlobalStateInfo + 93, // 34: luceneserver.IndexStateResponse.index_state:type_name -> luceneserver.IndexStateInfo + 70, // 35: luceneserver.CopyState.filesMetadata:type_name -> luceneserver.FilesMetadata + 71, // 36: luceneserver.FilesMetadata.fileMetadata:type_name -> luceneserver.FileMetadata + 70, // 37: luceneserver.CopyFiles.filesMetadata:type_name -> luceneserver.FilesMetadata + 7, // 38: luceneserver.HealthCheckResponse.health:type_name -> luceneserver.TransferStatusCode + 7, // 39: luceneserver.TransferStatus.Code:type_name -> luceneserver.TransferStatusCode + 85, // 40: luceneserver.GetNodesResponse.nodes:type_name -> luceneserver.NodeInfo + 108, // 41: luceneserver.DeleteByQueryRequest.query:type_name -> luceneserver.Query + 8, // 42: luceneserver.ForceMergeResponse.status:type_name -> luceneserver.ForceMergeResponse.Status + 9, // 43: luceneserver.ForceMergeDeletesResponse.status:type_name -> luceneserver.ForceMergeDeletesResponse.Status + 109, // 44: luceneserver.IndexSettings.nrtCachingDirectoryMaxMergeSizeMB:type_name -> google.protobuf.DoubleValue + 109, // 45: luceneserver.IndexSettings.nrtCachingDirectoryMaxSizeMB:type_name -> google.protobuf.DoubleValue + 110, // 46: luceneserver.IndexSettings.concurrentMergeSchedulerMaxThreadCount:type_name -> google.protobuf.Int32Value + 110, // 47: luceneserver.IndexSettings.concurrentMergeSchedulerMaxMergeCount:type_name -> google.protobuf.Int32Value + 107, // 48: luceneserver.IndexSettings.indexSort:type_name -> luceneserver.SortFields + 111, // 49: luceneserver.IndexSettings.indexMergeSchedulerAutoThrottle:type_name -> google.protobuf.BoolValue + 112, // 50: luceneserver.IndexSettings.directory:type_name -> google.protobuf.StringValue + 109, // 51: luceneserver.IndexLiveSettings.maxRefreshSec:type_name -> google.protobuf.DoubleValue + 109, // 52: luceneserver.IndexLiveSettings.minRefreshSec:type_name -> google.protobuf.DoubleValue + 109, // 53: luceneserver.IndexLiveSettings.maxSearcherAgeSec:type_name -> google.protobuf.DoubleValue + 109, // 54: luceneserver.IndexLiveSettings.indexRamBufferSizeMB:type_name -> google.protobuf.DoubleValue + 110, // 55: luceneserver.IndexLiveSettings.addDocumentsMaxBufferLen:type_name -> google.protobuf.Int32Value + 110, // 56: luceneserver.IndexLiveSettings.sliceMaxDocs:type_name -> google.protobuf.Int32Value + 110, // 57: luceneserver.IndexLiveSettings.sliceMaxSegments:type_name -> google.protobuf.Int32Value + 110, // 58: luceneserver.IndexLiveSettings.virtualShards:type_name -> google.protobuf.Int32Value + 110, // 59: luceneserver.IndexLiveSettings.maxMergedSegmentMB:type_name -> google.protobuf.Int32Value + 110, // 60: luceneserver.IndexLiveSettings.segmentsPerTier:type_name -> google.protobuf.Int32Value + 109, // 61: luceneserver.IndexLiveSettings.defaultSearchTimeoutSec:type_name -> google.protobuf.DoubleValue + 110, // 62: luceneserver.IndexLiveSettings.defaultSearchTimeoutCheckEvery:type_name -> google.protobuf.Int32Value + 110, // 63: luceneserver.IndexLiveSettings.defaultTerminateAfter:type_name -> google.protobuf.Int32Value + 113, // 64: luceneserver.IndexLiveSettings.maxMergePreCopyDurationSec:type_name -> google.protobuf.UInt64Value + 111, // 65: luceneserver.IndexLiveSettings.verboseMetrics:type_name -> google.protobuf.BoolValue + 111, // 66: luceneserver.IndexLiveSettings.parallelFetchByField:type_name -> google.protobuf.BoolValue + 110, // 67: luceneserver.IndexLiveSettings.parallelFetchChunkSize:type_name -> google.protobuf.Int32Value + 91, // 68: luceneserver.IndexStateInfo.settings:type_name -> luceneserver.IndexSettings + 92, // 69: luceneserver.IndexStateInfo.liveSettings:type_name -> luceneserver.IndexLiveSettings + 100, // 70: luceneserver.IndexStateInfo.fields:type_name -> luceneserver.IndexStateInfo.FieldsEntry + 101, // 71: luceneserver.GlobalStateInfo.indices:type_name -> luceneserver.GlobalStateInfo.IndicesEntry + 102, // 72: luceneserver.CustomRequest.params:type_name -> luceneserver.CustomRequest.ParamsEntry + 103, // 73: luceneserver.CustomResponse.response:type_name -> luceneserver.CustomResponse.ResponseEntry + 28, // 74: luceneserver.AddDocumentRequest.MultiValuedField.faceHierarchyPaths:type_name -> luceneserver.FacetHierarchyPath + 98, // 75: luceneserver.AddDocumentRequest.FieldsEntry.value:type_name -> luceneserver.AddDocumentRequest.MultiValuedField + 16, // 76: luceneserver.IndexStateInfo.FieldsEntry.value:type_name -> luceneserver.Field + 94, // 77: luceneserver.GlobalStateInfo.IndicesEntry.value:type_name -> luceneserver.IndexGlobalState + 10, // 78: luceneserver.LuceneServer.createIndex:input_type -> luceneserver.CreateIndexRequest + 12, // 79: luceneserver.LuceneServer.liveSettings:input_type -> luceneserver.LiveSettingsRequest + 14, // 80: luceneserver.LuceneServer.liveSettingsV2:input_type -> luceneserver.LiveSettingsV2Request + 18, // 81: luceneserver.LuceneServer.registerFields:input_type -> luceneserver.FieldDefRequest + 18, // 82: luceneserver.LuceneServer.updateFields:input_type -> luceneserver.FieldDefRequest + 20, // 83: luceneserver.LuceneServer.settings:input_type -> luceneserver.SettingsRequest + 22, // 84: luceneserver.LuceneServer.settingsV2:input_type -> luceneserver.SettingsV2Request + 24, // 85: luceneserver.LuceneServer.startIndex:input_type -> luceneserver.StartIndexRequest + 25, // 86: luceneserver.LuceneServer.startIndexV2:input_type -> luceneserver.StartIndexV2Request + 43, // 87: luceneserver.LuceneServer.stopIndex:input_type -> luceneserver.StopIndexRequest + 44, // 88: luceneserver.LuceneServer.reloadState:input_type -> luceneserver.ReloadStateRequest + 27, // 89: luceneserver.LuceneServer.addDocuments:input_type -> luceneserver.AddDocumentRequest + 30, // 90: luceneserver.LuceneServer.refresh:input_type -> luceneserver.RefreshRequest + 32, // 91: luceneserver.LuceneServer.commit:input_type -> luceneserver.CommitRequest + 34, // 92: luceneserver.LuceneServer.stats:input_type -> luceneserver.StatsRequest + 114, // 93: luceneserver.LuceneServer.search:input_type -> luceneserver.SearchRequest + 114, // 94: luceneserver.LuceneServer.searchV2:input_type -> luceneserver.SearchRequest + 27, // 95: luceneserver.LuceneServer.delete:input_type -> luceneserver.AddDocumentRequest + 86, // 96: luceneserver.LuceneServer.deleteByQuery:input_type -> luceneserver.DeleteByQueryRequest + 38, // 97: luceneserver.LuceneServer.deleteAll:input_type -> luceneserver.DeleteAllDocumentsRequest + 40, // 98: luceneserver.LuceneServer.deleteIndex:input_type -> luceneserver.DeleteIndexRequest + 46, // 99: luceneserver.LuceneServer.createSnapshot:input_type -> luceneserver.CreateSnapshotRequest + 49, // 100: luceneserver.LuceneServer.releaseSnapshot:input_type -> luceneserver.ReleaseSnapshotRequest + 51, // 101: luceneserver.LuceneServer.getAllSnapshotIndexGen:input_type -> luceneserver.GetAllSnapshotGenRequest + 53, // 102: luceneserver.LuceneServer.backupWarmingQueries:input_type -> luceneserver.BackupWarmingQueriesRequest + 59, // 103: luceneserver.LuceneServer.nodeInfo:input_type -> luceneserver.NodeInfoRequest + 61, // 104: luceneserver.LuceneServer.globalState:input_type -> luceneserver.GlobalStateRequest + 63, // 105: luceneserver.LuceneServer.state:input_type -> luceneserver.StateRequest + 65, // 106: luceneserver.LuceneServer.indexState:input_type -> luceneserver.IndexStateRequest + 76, // 107: luceneserver.LuceneServer.status:input_type -> luceneserver.HealthCheckRequest + 78, // 108: luceneserver.LuceneServer.ready:input_type -> luceneserver.ReadyCheckRequest + 115, // 109: luceneserver.LuceneServer.metrics:input_type -> google.protobuf.Empty + 55, // 110: luceneserver.LuceneServer.indices:input_type -> luceneserver.IndicesRequest + 87, // 111: luceneserver.LuceneServer.forceMerge:input_type -> luceneserver.ForceMergeRequest + 89, // 112: luceneserver.LuceneServer.forceMergeDeletes:input_type -> luceneserver.ForceMergeDeletesRequest + 96, // 113: luceneserver.LuceneServer.custom:input_type -> luceneserver.CustomRequest + 67, // 114: luceneserver.ReplicationServer.addReplicas:input_type -> luceneserver.AddReplicaRequest + 73, // 115: luceneserver.ReplicationServer.recvCopyState:input_type -> luceneserver.CopyStateRequest + 75, // 116: luceneserver.ReplicationServer.sendRawFile:input_type -> luceneserver.RawFileChunk + 74, // 117: luceneserver.ReplicationServer.recvRawFile:input_type -> luceneserver.FileInfo + 74, // 118: luceneserver.ReplicationServer.recvRawFileV2:input_type -> luceneserver.FileInfo + 72, // 119: luceneserver.ReplicationServer.copyFiles:input_type -> luceneserver.CopyFiles + 80, // 120: luceneserver.ReplicationServer.newNRTPoint:input_type -> luceneserver.NewNRTPoint + 81, // 121: luceneserver.ReplicationServer.writeNRTPoint:input_type -> luceneserver.IndexName + 81, // 122: luceneserver.ReplicationServer.getCurrentSearcherVersion:input_type -> luceneserver.IndexName + 83, // 123: luceneserver.ReplicationServer.getConnectedNodes:input_type -> luceneserver.GetNodesRequest + 11, // 124: luceneserver.LuceneServer.createIndex:output_type -> luceneserver.CreateIndexResponse + 13, // 125: luceneserver.LuceneServer.liveSettings:output_type -> luceneserver.LiveSettingsResponse + 15, // 126: luceneserver.LuceneServer.liveSettingsV2:output_type -> luceneserver.LiveSettingsV2Response + 19, // 127: luceneserver.LuceneServer.registerFields:output_type -> luceneserver.FieldDefResponse + 19, // 128: luceneserver.LuceneServer.updateFields:output_type -> luceneserver.FieldDefResponse + 21, // 129: luceneserver.LuceneServer.settings:output_type -> luceneserver.SettingsResponse + 23, // 130: luceneserver.LuceneServer.settingsV2:output_type -> luceneserver.SettingsV2Response + 26, // 131: luceneserver.LuceneServer.startIndex:output_type -> luceneserver.StartIndexResponse + 26, // 132: luceneserver.LuceneServer.startIndexV2:output_type -> luceneserver.StartIndexResponse + 42, // 133: luceneserver.LuceneServer.stopIndex:output_type -> luceneserver.DummyResponse + 45, // 134: luceneserver.LuceneServer.reloadState:output_type -> luceneserver.ReloadStateResponse + 29, // 135: luceneserver.LuceneServer.addDocuments:output_type -> luceneserver.AddDocumentResponse + 31, // 136: luceneserver.LuceneServer.refresh:output_type -> luceneserver.RefreshResponse + 33, // 137: luceneserver.LuceneServer.commit:output_type -> luceneserver.CommitResponse + 35, // 138: luceneserver.LuceneServer.stats:output_type -> luceneserver.StatsResponse + 116, // 139: luceneserver.LuceneServer.search:output_type -> luceneserver.SearchResponse + 117, // 140: luceneserver.LuceneServer.searchV2:output_type -> google.protobuf.Any + 29, // 141: luceneserver.LuceneServer.delete:output_type -> luceneserver.AddDocumentResponse + 29, // 142: luceneserver.LuceneServer.deleteByQuery:output_type -> luceneserver.AddDocumentResponse + 39, // 143: luceneserver.LuceneServer.deleteAll:output_type -> luceneserver.DeleteAllDocumentsResponse + 41, // 144: luceneserver.LuceneServer.deleteIndex:output_type -> luceneserver.DeleteIndexResponse + 47, // 145: luceneserver.LuceneServer.createSnapshot:output_type -> luceneserver.CreateSnapshotResponse + 50, // 146: luceneserver.LuceneServer.releaseSnapshot:output_type -> luceneserver.ReleaseSnapshotResponse + 52, // 147: luceneserver.LuceneServer.getAllSnapshotIndexGen:output_type -> luceneserver.GetAllSnapshotGenResponse + 54, // 148: luceneserver.LuceneServer.backupWarmingQueries:output_type -> luceneserver.BackupWarmingQueriesResponse + 60, // 149: luceneserver.LuceneServer.nodeInfo:output_type -> luceneserver.NodeInfoResponse + 62, // 150: luceneserver.LuceneServer.globalState:output_type -> luceneserver.GlobalStateResponse + 64, // 151: luceneserver.LuceneServer.state:output_type -> luceneserver.StateResponse + 66, // 152: luceneserver.LuceneServer.indexState:output_type -> luceneserver.IndexStateResponse + 77, // 153: luceneserver.LuceneServer.status:output_type -> luceneserver.HealthCheckResponse + 77, // 154: luceneserver.LuceneServer.ready:output_type -> luceneserver.HealthCheckResponse + 118, // 155: luceneserver.LuceneServer.metrics:output_type -> google.api.HttpBody + 56, // 156: luceneserver.LuceneServer.indices:output_type -> luceneserver.IndicesResponse + 88, // 157: luceneserver.LuceneServer.forceMerge:output_type -> luceneserver.ForceMergeResponse + 90, // 158: luceneserver.LuceneServer.forceMergeDeletes:output_type -> luceneserver.ForceMergeDeletesResponse + 97, // 159: luceneserver.LuceneServer.custom:output_type -> luceneserver.CustomResponse + 68, // 160: luceneserver.ReplicationServer.addReplicas:output_type -> luceneserver.AddReplicaResponse + 69, // 161: luceneserver.ReplicationServer.recvCopyState:output_type -> luceneserver.CopyState + 79, // 162: luceneserver.ReplicationServer.sendRawFile:output_type -> luceneserver.TransferStatus + 75, // 163: luceneserver.ReplicationServer.recvRawFile:output_type -> luceneserver.RawFileChunk + 75, // 164: luceneserver.ReplicationServer.recvRawFileV2:output_type -> luceneserver.RawFileChunk + 79, // 165: luceneserver.ReplicationServer.copyFiles:output_type -> luceneserver.TransferStatus + 79, // 166: luceneserver.ReplicationServer.newNRTPoint:output_type -> luceneserver.TransferStatus + 82, // 167: luceneserver.ReplicationServer.writeNRTPoint:output_type -> luceneserver.SearcherVersion + 82, // 168: luceneserver.ReplicationServer.getCurrentSearcherVersion:output_type -> luceneserver.SearcherVersion + 84, // 169: luceneserver.ReplicationServer.getConnectedNodes:output_type -> luceneserver.GetNodesResponse + 124, // [124:170] is the sub-list for method output_type + 78, // [78:124] is the sub-list for method input_type + 78, // [78:78] is the sub-list for extension type_name + 78, // [78:78] is the sub-list for extension extendee + 0, // [0:78] is the sub-list for field type_name } func init() { file_yelp_nrtsearch_luceneserver_proto_init() } @@ -8579,7 +8698,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddReplicaRequest); i { + switch v := v.(*IndexStateRequest); i { case 0: return &v.state case 1: @@ -8591,7 +8710,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddReplicaResponse); i { + switch v := v.(*IndexStateResponse); i { case 0: return &v.state case 1: @@ -8603,7 +8722,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CopyState); i { + switch v := v.(*AddReplicaRequest); i { case 0: return &v.state case 1: @@ -8615,7 +8734,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FilesMetadata); i { + switch v := v.(*AddReplicaResponse); i { case 0: return &v.state case 1: @@ -8627,7 +8746,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileMetadata); i { + switch v := v.(*CopyState); i { case 0: return &v.state case 1: @@ -8639,7 +8758,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CopyFiles); i { + switch v := v.(*FilesMetadata); i { case 0: return &v.state case 1: @@ -8651,7 +8770,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CopyStateRequest); i { + switch v := v.(*FileMetadata); i { case 0: return &v.state case 1: @@ -8663,7 +8782,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FileInfo); i { + switch v := v.(*CopyFiles); i { case 0: return &v.state case 1: @@ -8675,7 +8794,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RawFileChunk); i { + switch v := v.(*CopyStateRequest); i { case 0: return &v.state case 1: @@ -8687,7 +8806,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckRequest); i { + switch v := v.(*FileInfo); i { case 0: return &v.state case 1: @@ -8699,7 +8818,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckResponse); i { + switch v := v.(*RawFileChunk); i { case 0: return &v.state case 1: @@ -8711,7 +8830,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReadyCheckRequest); i { + switch v := v.(*HealthCheckRequest); i { case 0: return &v.state case 1: @@ -8723,7 +8842,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferStatus); i { + switch v := v.(*HealthCheckResponse); i { case 0: return &v.state case 1: @@ -8735,7 +8854,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NewNRTPoint); i { + switch v := v.(*ReadyCheckRequest); i { case 0: return &v.state case 1: @@ -8747,7 +8866,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexName); i { + switch v := v.(*TransferStatus); i { case 0: return &v.state case 1: @@ -8759,7 +8878,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearcherVersion); i { + switch v := v.(*NewNRTPoint); i { case 0: return &v.state case 1: @@ -8771,7 +8890,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodesRequest); i { + switch v := v.(*IndexName); i { case 0: return &v.state case 1: @@ -8783,7 +8902,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodesResponse); i { + switch v := v.(*SearcherVersion); i { case 0: return &v.state case 1: @@ -8795,7 +8914,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeInfo); i { + switch v := v.(*GetNodesRequest); i { case 0: return &v.state case 1: @@ -8807,7 +8926,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteByQueryRequest); i { + switch v := v.(*GetNodesResponse); i { case 0: return &v.state case 1: @@ -8819,7 +8938,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForceMergeRequest); i { + switch v := v.(*NodeInfo); i { case 0: return &v.state case 1: @@ -8831,7 +8950,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForceMergeResponse); i { + switch v := v.(*DeleteByQueryRequest); i { case 0: return &v.state case 1: @@ -8843,7 +8962,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForceMergeDeletesRequest); i { + switch v := v.(*ForceMergeRequest); i { case 0: return &v.state case 1: @@ -8855,7 +8974,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForceMergeDeletesResponse); i { + switch v := v.(*ForceMergeResponse); i { case 0: return &v.state case 1: @@ -8867,7 +8986,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexSettings); i { + switch v := v.(*ForceMergeDeletesRequest); i { case 0: return &v.state case 1: @@ -8879,7 +8998,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexLiveSettings); i { + switch v := v.(*ForceMergeDeletesResponse); i { case 0: return &v.state case 1: @@ -8891,7 +9010,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexStateInfo); i { + switch v := v.(*IndexSettings); i { case 0: return &v.state case 1: @@ -8903,7 +9022,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IndexGlobalState); i { + switch v := v.(*IndexLiveSettings); i { case 0: return &v.state case 1: @@ -8915,7 +9034,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GlobalStateInfo); i { + switch v := v.(*IndexStateInfo); i { case 0: return &v.state case 1: @@ -8927,7 +9046,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CustomRequest); i { + switch v := v.(*IndexGlobalState); i { case 0: return &v.state case 1: @@ -8939,7 +9058,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CustomResponse); i { + switch v := v.(*GlobalStateInfo); i { case 0: return &v.state case 1: @@ -8951,6 +9070,30 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_yelp_nrtsearch_luceneserver_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_yelp_nrtsearch_luceneserver_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddDocumentRequest_MultiValuedField); i { case 0: return &v.state @@ -8971,7 +9114,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_yelp_nrtsearch_luceneserver_proto_rawDesc, NumEnums: 10, - NumMessages: 92, + NumMessages: 94, NumExtensions: 0, NumServices: 2, }, @@ -9076,6 +9219,8 @@ type LuceneServerClient interface { GlobalState(ctx context.Context, in *GlobalStateRequest, opts ...grpc.CallOption) (*GlobalStateResponse, error) // Gets the state of a started index, includes settings, live_settings, search schema State(ctx context.Context, in *StateRequest, opts ...grpc.CallOption) (*StateResponse, error) + // Gets the state information for an index, includes settings, live_settings, search schema + IndexState(ctx context.Context, in *IndexStateRequest, opts ...grpc.CallOption) (*IndexStateResponse, error) // healthcheck Status(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) // Checks if a node is ready to receive traffic by checking if all the indices (which can be preloaded) @@ -9386,6 +9531,15 @@ func (c *luceneServerClient) State(ctx context.Context, in *StateRequest, opts . return out, nil } +func (c *luceneServerClient) IndexState(ctx context.Context, in *IndexStateRequest, opts ...grpc.CallOption) (*IndexStateResponse, error) { + out := new(IndexStateResponse) + err := c.cc.Invoke(ctx, "/luceneserver.LuceneServer/indexState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *luceneServerClient) Status(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) { out := new(HealthCheckResponse) err := c.cc.Invoke(ctx, "/luceneserver.LuceneServer/status", in, out, opts...) @@ -9529,6 +9683,8 @@ type LuceneServerServer interface { GlobalState(context.Context, *GlobalStateRequest) (*GlobalStateResponse, error) // Gets the state of a started index, includes settings, live_settings, search schema State(context.Context, *StateRequest) (*StateResponse, error) + // Gets the state information for an index, includes settings, live_settings, search schema + IndexState(context.Context, *IndexStateRequest) (*IndexStateResponse, error) // healthcheck Status(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) // Checks if a node is ready to receive traffic by checking if all the indices (which can be preloaded) @@ -9642,6 +9798,9 @@ func (*UnimplementedLuceneServerServer) GlobalState(context.Context, *GlobalStat func (*UnimplementedLuceneServerServer) State(context.Context, *StateRequest) (*StateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method State not implemented") } +func (*UnimplementedLuceneServerServer) IndexState(context.Context, *IndexStateRequest) (*IndexStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IndexState not implemented") +} func (*UnimplementedLuceneServerServer) Status(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") } @@ -10180,6 +10339,24 @@ func _LuceneServer_State_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _LuceneServer_IndexState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IndexStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LuceneServerServer).IndexState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/luceneserver.LuceneServer/IndexState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LuceneServerServer).IndexState(ctx, req.(*IndexStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _LuceneServer_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(HealthCheckRequest) if err := dec(in); err != nil { @@ -10418,6 +10595,10 @@ var _LuceneServer_serviceDesc = grpc.ServiceDesc{ MethodName: "state", Handler: _LuceneServer_State_Handler, }, + { + MethodName: "indexState", + Handler: _LuceneServer_IndexState_Handler, + }, { MethodName: "status", Handler: _LuceneServer_Status_Handler, diff --git a/grpc-gateway/luceneserver.pb.gw.go b/grpc-gateway/luceneserver.pb.gw.go index 543e71e9b..41319fe7e 100644 --- a/grpc-gateway/luceneserver.pb.gw.go +++ b/grpc-gateway/luceneserver.pb.gw.go @@ -1240,6 +1240,92 @@ func local_request_LuceneServer_State_1(ctx context.Context, marshaler runtime.M } +func request_LuceneServer_IndexState_0(ctx context.Context, marshaler runtime.Marshaler, client LuceneServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IndexStateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.IndexState(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_LuceneServer_IndexState_0(ctx context.Context, marshaler runtime.Marshaler, server LuceneServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IndexStateRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.IndexState(ctx, &protoReq) + return msg, metadata, err + +} + +func request_LuceneServer_IndexState_1(ctx context.Context, marshaler runtime.Marshaler, client LuceneServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IndexStateRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["index_name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_name") + } + + protoReq.IndexName, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_name", err) + } + + msg, err := client.IndexState(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_LuceneServer_IndexState_1(ctx context.Context, marshaler runtime.Marshaler, server LuceneServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq IndexStateRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["index_name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "index_name") + } + + protoReq.IndexName, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "index_name", err) + } + + msg, err := server.IndexState(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_LuceneServer_Status_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -2313,6 +2399,54 @@ func RegisterLuceneServerHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_LuceneServer_IndexState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/luceneserver.LuceneServer/IndexState", runtime.WithHTTPPathPattern("/v1/index_state")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_LuceneServer_IndexState_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_LuceneServer_IndexState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_LuceneServer_IndexState_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/luceneserver.LuceneServer/IndexState", runtime.WithHTTPPathPattern("/v1/index_state/{index_name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_LuceneServer_IndexState_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_LuceneServer_IndexState_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_LuceneServer_Status_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3218,6 +3352,48 @@ func RegisterLuceneServerHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_LuceneServer_IndexState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/luceneserver.LuceneServer/IndexState", runtime.WithHTTPPathPattern("/v1/index_state")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_LuceneServer_IndexState_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_LuceneServer_IndexState_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_LuceneServer_IndexState_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/luceneserver.LuceneServer/IndexState", runtime.WithHTTPPathPattern("/v1/index_state/{index_name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_LuceneServer_IndexState_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_LuceneServer_IndexState_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_LuceneServer_Status_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3454,6 +3630,10 @@ var ( pattern_LuceneServer_State_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "state", "indexName"}, "")) + pattern_LuceneServer_IndexState_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "index_state"}, "")) + + pattern_LuceneServer_IndexState_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2}, []string{"v1", "index_state", "index_name"}, "")) + pattern_LuceneServer_Status_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "status"}, "")) pattern_LuceneServer_Ready_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "ready"}, "")) @@ -3536,6 +3716,10 @@ var ( forward_LuceneServer_State_1 = runtime.ForwardResponseMessage + forward_LuceneServer_IndexState_0 = runtime.ForwardResponseMessage + + forward_LuceneServer_IndexState_1 = runtime.ForwardResponseMessage + forward_LuceneServer_Status_0 = runtime.ForwardResponseMessage forward_LuceneServer_Ready_0 = runtime.ForwardResponseMessage diff --git a/grpc-gateway/luceneserver.swagger.json b/grpc-gateway/luceneserver.swagger.json index bebac98b6..29d9cfd4a 100644 --- a/grpc-gateway/luceneserver.swagger.json +++ b/grpc-gateway/luceneserver.swagger.json @@ -523,6 +523,71 @@ ] } }, + "/v1/index_state": { + "post": { + "summary": "Gets the state information for an index, includes settings, live_settings, search schema", + "operationId": "LuceneServer_indexState", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/luceneserverIndexStateResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/luceneserverIndexStateRequest" + } + } + ], + "tags": [ + "LuceneServer" + ] + } + }, + "/v1/index_state/{indexName}": { + "get": { + "summary": "Gets the state information for an index, includes settings, live_settings, search schema", + "operationId": "LuceneServer_indexState2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/luceneserverIndexStateResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "parameters": [ + { + "name": "indexName", + "description": "index name", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "LuceneServer" + ] + } + }, "/v1/indices": { "get": { "summary": "indices", @@ -3635,6 +3700,57 @@ } } }, + "luceneserverIndexStateInfo": { + "type": "object", + "properties": { + "indexName": { + "type": "string", + "title": "Name of the index" + }, + "gen": { + "type": "string", + "format": "int64", + "title": "State version generation" + }, + "committed": { + "type": "boolean", + "title": "If this index has ever been committed" + }, + "settings": { + "$ref": "#/definitions/luceneserverIndexSettings", + "title": "Index settings" + }, + "liveSettings": { + "$ref": "#/definitions/luceneserverIndexLiveSettings", + "title": "Index live settings" + }, + "fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/luceneserverField" + }, + "title": "Registered fields" + } + } + }, + "luceneserverIndexStateRequest": { + "type": "object", + "properties": { + "indexName": { + "type": "string", + "title": "index name" + } + } + }, + "luceneserverIndexStateResponse": { + "type": "object", + "properties": { + "indexState": { + "$ref": "#/definitions/luceneserverIndexStateInfo", + "title": "index state" + } + } + }, "luceneserverIndexStatsResponse": { "type": "object", "properties": { diff --git a/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java b/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java index 8b064b685..db361dfa3 100644 --- a/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java +++ b/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java @@ -50,6 +50,7 @@ import com.yelp.nrtsearch.server.handler.GetStateHandler; import com.yelp.nrtsearch.server.handler.GlobalStateHandler; import com.yelp.nrtsearch.server.handler.Handler; +import com.yelp.nrtsearch.server.handler.IndexStateHandler; import com.yelp.nrtsearch.server.handler.IndicesHandler; import com.yelp.nrtsearch.server.handler.LiveSettingsHandler; import com.yelp.nrtsearch.server.handler.LiveSettingsV2Handler; @@ -334,6 +335,7 @@ static class LuceneServerImpl extends LuceneServerGrpc.LuceneServerImplBase { private final GetAllSnapshotIndexGenHandler getAllSnapshotIndexGenHandler; private final GetStateHandler getStateHandler; private final GlobalStateHandler globalStateHandler; + private final IndexStateHandler indexStateHandler; private final IndicesHandler indicesHandler; private final LiveSettingsHandler liveSettingsHandler; private final LiveSettingsV2Handler liveSettingsV2Handler; @@ -398,6 +400,7 @@ static class LuceneServerImpl extends LuceneServerGrpc.LuceneServerImplBase { getAllSnapshotIndexGenHandler = new GetAllSnapshotIndexGenHandler(globalState); getStateHandler = new GetStateHandler(globalState); globalStateHandler = new GlobalStateHandler(globalState); + indexStateHandler = new IndexStateHandler(globalState); indicesHandler = new IndicesHandler(globalState); liveSettingsHandler = new LiveSettingsHandler(globalState); liveSettingsV2Handler = new LiveSettingsV2Handler(globalState); @@ -672,6 +675,12 @@ public void state(StateRequest request, StreamObserver responseOb Handler.handleUnaryRequest("state", request, responseObserver, getStateHandler); } + @Override + public void indexState( + IndexStateRequest request, StreamObserver responseStreamObserver) { + Handler.handleUnaryRequest("indexState", request, responseStreamObserver, indexStateHandler); + } + @Override public void forceMerge( ForceMergeRequest forceMergeRequest, StreamObserver responseObserver) { diff --git a/src/main/java/com/yelp/nrtsearch/server/handler/IndexStateHandler.java b/src/main/java/com/yelp/nrtsearch/server/handler/IndexStateHandler.java new file mode 100644 index 000000000..cb96c986f --- /dev/null +++ b/src/main/java/com/yelp/nrtsearch/server/handler/IndexStateHandler.java @@ -0,0 +1,34 @@ +/* + * Copyright 2024 Yelp Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.yelp.nrtsearch.server.handler; + +import com.yelp.nrtsearch.server.grpc.IndexStateRequest; +import com.yelp.nrtsearch.server.grpc.IndexStateResponse; +import com.yelp.nrtsearch.server.index.IndexState; +import com.yelp.nrtsearch.server.state.GlobalState; + +public class IndexStateHandler extends Handler { + public IndexStateHandler(GlobalState globalState) { + super(globalState); + } + + @Override + public IndexStateResponse handle(IndexStateRequest request) throws Exception { + IndexState indexState = getIndexState(request.getIndexName()); + + return IndexStateResponse.newBuilder().setIndexState(indexState.getIndexStateInfo()).build(); + } +} diff --git a/src/main/java/com/yelp/nrtsearch/server/index/BackendStateManager.java b/src/main/java/com/yelp/nrtsearch/server/index/BackendStateManager.java index f516356eb..5ad759c34 100644 --- a/src/main/java/com/yelp/nrtsearch/server/index/BackendStateManager.java +++ b/src/main/java/com/yelp/nrtsearch/server/index/BackendStateManager.java @@ -144,7 +144,7 @@ public synchronized IndexSettings updateSettings(IndexSettings settings) throws if (currentState.isStarted()) { throw new IllegalStateException("Cannot change setting for started index: " + indexName); } - IndexStateInfo updatedStateInfo = mergeSettings(currentState.getCurrentStateInfo(), settings); + IndexStateInfo updatedStateInfo = mergeSettings(currentState.getIndexStateInfo(), settings); ImmutableIndexState updatedIndexState = createIndexState( updatedStateInfo, currentState.getFieldAndFacetState(), liveSettingsOverrides); @@ -175,13 +175,13 @@ public synchronized IndexLiveSettings updateLiveSettings( ImmutableIndexState.mergeLiveSettings(liveSettingsOverrides, liveSettings); updatedIndexState = createIndexState( - currentState.getCurrentStateInfo(), + currentState.getIndexStateInfo(), currentState.getFieldAndFacetState(), updatedLiveSettingsOverrides); liveSettingsOverrides = updatedLiveSettingsOverrides; } else { IndexStateInfo updatedStateInfo = - mergeLiveSettings(currentState.getCurrentStateInfo(), liveSettings); + mergeLiveSettings(currentState.getIndexStateInfo(), liveSettings); updatedIndexState = createIndexState( updatedStateInfo, currentState.getFieldAndFacetState(), liveSettingsOverrides); @@ -202,10 +202,10 @@ public synchronized String updateFields(List fields) throws IOException { UpdatedFieldInfo updatedFieldInfo = FieldUpdateUtils.updateFields( currentState.getFieldAndFacetState(), - currentState.getCurrentStateInfo().getFieldsMap(), + currentState.getIndexStateInfo().getFieldsMap(), fields); IndexStateInfo updatedStateInfo = - replaceFields(currentState.getCurrentStateInfo(), updatedFieldInfo.fields); + replaceFields(currentState.getIndexStateInfo(), updatedFieldInfo.fields); ImmutableIndexState updatedIndexState = createIndexState( updatedStateInfo, updatedFieldInfo.fieldAndFacetState, liveSettingsOverrides); @@ -228,13 +228,13 @@ public synchronized void start( throw new IllegalStateException("Index already started: " + indexName); } currentState.start(serverMode, nrtDataManager, primaryGen, primaryClient); - if (serverMode != Mode.REPLICA && !currentState.getCurrentStateInfo().getCommitted()) { + if (serverMode != Mode.REPLICA && !currentState.getIndexStateInfo().getCommitted()) { logger.info("Doing initial commit for index: " + indexName); currentState.commit(); IndexStateInfo updatedStateInfo = - currentState.getCurrentStateInfo().toBuilder() + currentState.getIndexStateInfo().toBuilder() .setCommitted(true) - .setGen(currentState.getCurrentStateInfo().getGen() + 1) + .setGen(currentState.getIndexStateInfo().getGen() + 1) .build(); ImmutableIndexState updatedIndexState = createIndexState( diff --git a/src/main/java/com/yelp/nrtsearch/server/index/ImmutableIndexState.java b/src/main/java/com/yelp/nrtsearch/server/index/ImmutableIndexState.java index 8fbaffe34..533d78067 100644 --- a/src/main/java/com/yelp/nrtsearch/server/index/ImmutableIndexState.java +++ b/src/main/java/com/yelp/nrtsearch/server/index/ImmutableIndexState.java @@ -360,7 +360,8 @@ public static IndexLiveSettings mergeLiveSettings( } /** Get the current index state message representation. */ - public IndexStateInfo getCurrentStateInfo() { + @Override + public IndexStateInfo getIndexStateInfo() { return currentStateInfo; } diff --git a/src/main/java/com/yelp/nrtsearch/server/index/IndexState.java b/src/main/java/com/yelp/nrtsearch/server/index/IndexState.java index b39458718..ba1663b30 100644 --- a/src/main/java/com/yelp/nrtsearch/server/index/IndexState.java +++ b/src/main/java/com/yelp/nrtsearch/server/index/IndexState.java @@ -323,6 +323,9 @@ public String resolveQueryNestedPath(String path) { throw new IllegalArgumentException("Nested path is not a nested object field: " + path); } + /** Get index state info. */ + public abstract IndexStateInfo getIndexStateInfo(); + /** Get if the index is started. */ public abstract boolean isStarted(); diff --git a/src/main/java/com/yelp/nrtsearch/tools/cli/IndexStateCommand.java b/src/main/java/com/yelp/nrtsearch/tools/cli/IndexStateCommand.java new file mode 100644 index 000000000..9f161265d --- /dev/null +++ b/src/main/java/com/yelp/nrtsearch/tools/cli/IndexStateCommand.java @@ -0,0 +1,55 @@ +/* + * Copyright 2024 Yelp Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.yelp.nrtsearch.tools.cli; + +import com.yelp.nrtsearch.server.grpc.IndexStateRequest; +import com.yelp.nrtsearch.server.grpc.IndexStateResponse; +import com.yelp.nrtsearch.server.grpc.NrtsearchClient; +import java.util.concurrent.Callable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import picocli.CommandLine; + +@CommandLine.Command( + name = IndexStateCommand.INDEX_STATE, + description = "Get the state for an index") +public class IndexStateCommand implements Callable { + public static final String INDEX_STATE = "indexState"; + private static final Logger logger = LoggerFactory.getLogger(IndexStateCommand.class); + + @CommandLine.ParentCommand private NrtsearchClientCommand baseCmd; + + @CommandLine.Option( + names = {"-i", "--indexName"}, + description = "Name of the index to get the state for", + required = true) + private String indexName; + + @Override + public Integer call() throws Exception { + NrtsearchClient client = baseCmd.getClient(); + try { + IndexStateResponse response = + client + .getBlockingStub() + .indexState(IndexStateRequest.newBuilder().setIndexName(indexName).build()); + logger.info("Server returned index state: {}", response); + } finally { + client.shutdown(); + } + return 0; + } +} diff --git a/src/main/java/com/yelp/nrtsearch/tools/cli/NrtsearchClientCommand.java b/src/main/java/com/yelp/nrtsearch/tools/cli/NrtsearchClientCommand.java index f02042a31..553e778e6 100644 --- a/src/main/java/com/yelp/nrtsearch/tools/cli/NrtsearchClientCommand.java +++ b/src/main/java/com/yelp/nrtsearch/tools/cli/NrtsearchClientCommand.java @@ -36,6 +36,7 @@ DeleteIndexCommand.class, ForceMergeCommand.class, ForceMergeDeletesCommand.class, + IndexStateCommand.class, IndicesCommand.class, LiveSettingsV2Command.class, ReadyCommand.class, diff --git a/src/test/java/com/yelp/nrtsearch/server/grpc/NrtsearchServerTest.java b/src/test/java/com/yelp/nrtsearch/server/grpc/NrtsearchServerTest.java index 6b47d8ac1..242145b4d 100644 --- a/src/test/java/com/yelp/nrtsearch/server/grpc/NrtsearchServerTest.java +++ b/src/test/java/com/yelp/nrtsearch/server/grpc/NrtsearchServerTest.java @@ -1025,6 +1025,21 @@ public void testMetrics() { assertEquals(expectedSampleNames, labelsHelp); } + @Test + public void testIndexState() throws IOException, InterruptedException { + GrpcServer.TestServer testAddDocs = + new GrpcServer.TestServer(grpcServer, true, Mode.STANDALONE); + testAddDocs.addDocuments(); + IndexStateResponse indexStateResponse = + grpcServer + .getBlockingStub() + .indexState( + IndexStateRequest.newBuilder().setIndexName(grpcServer.getTestIndex()).build()); + assertEquals( + grpcServer.getGlobalState().getIndex(grpcServer.getTestIndex()).getIndexStateInfo(), + indexStateResponse.getIndexState()); + } + @Test public void testForceMerge() throws IOException, InterruptedException { GrpcServer.TestServer testAddDocs = diff --git a/src/test/java/com/yelp/nrtsearch/server/index/BackendStateManagerTest.java b/src/test/java/com/yelp/nrtsearch/server/index/BackendStateManagerTest.java index 45b62df07..9ce75f43b 100644 --- a/src/test/java/com/yelp/nrtsearch/server/index/BackendStateManagerTest.java +++ b/src/test/java/com/yelp/nrtsearch/server/index/BackendStateManagerTest.java @@ -372,7 +372,7 @@ public void testUpdateSettingsNoop() throws IOException { ImmutableIndexState mockState = mock(ImmutableIndexState.class); when(mockState.isStarted()).thenReturn(false); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -397,7 +397,7 @@ public void testUpdateSettingsNoop() throws IOException { .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); verify(mockState, times(1)).isStarted(); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedSettings(); @@ -422,7 +422,7 @@ public void testUpdateEmptySettings() throws IOException { ImmutableIndexState mockState = mock(ImmutableIndexState.class); when(mockState.isStarted()).thenReturn(false); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -459,7 +459,7 @@ public void testUpdateEmptySettings() throws IOException { .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); verify(mockState, times(1)).isStarted(); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedSettings(); @@ -492,7 +492,7 @@ public void testUpdateExistingSettings() throws IOException { ImmutableIndexState mockState = mock(ImmutableIndexState.class); when(mockState.isStarted()).thenReturn(false); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -539,7 +539,7 @@ public void testUpdateExistingSettings() throws IOException { .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); verify(mockState, times(1)).isStarted(); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedSettings(); @@ -573,7 +573,7 @@ public void testUpdateExistingSettings_liveSettingsOverride() throws IOException ImmutableIndexState mockState = mock(ImmutableIndexState.class); when(mockState.isStarted()).thenReturn(false); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -622,7 +622,7 @@ public void testUpdateExistingSettings_liveSettingsOverride() throws IOException .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); verify(mockState, times(1)).isStarted(); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedSettings(); @@ -800,7 +800,7 @@ public void testUpdateLiveSettingsNoop() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -829,7 +829,7 @@ public void testUpdateLiveSettingsNoop() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(false); verify(mockState2, times(1)).getShards(); @@ -855,7 +855,7 @@ public void testUpdateEmptyLiveSettings() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -895,7 +895,7 @@ public void testUpdateEmptyLiveSettings() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(false); verify(mockState2, times(1)).getShards(); @@ -926,7 +926,7 @@ public void testUpdateExistingLiveSettings() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -976,7 +976,7 @@ public void testUpdateExistingLiveSettings() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(false); verify(mockState2, times(1)).getShards(); @@ -1008,7 +1008,7 @@ public void testUpdateExistingLiveSettings_liveSettingsOverride() throws IOExcep .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1060,7 +1060,7 @@ public void testUpdateExistingLiveSettings_liveSettingsOverride() throws IOExcep verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedStateInfo); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(false); verify(mockState2, times(1)).getShards(); @@ -1109,7 +1109,7 @@ public void testUpdateLocalLiveSettings_noInitialOverride() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1148,7 +1148,7 @@ public void testUpdateLocalLiveSettings_noInitialOverride() throws IOException { verify(mockBackend, times(1)) .loadIndexState(BackendGlobalState.getUniqueIndexName("test_index", "test_id")); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(true); verify(mockState2, times(1)).getShards(); @@ -1180,7 +1180,7 @@ public void testUpdateLocalLiveSettings_withInitialOverride() throws IOException .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(mock(FieldAndFacetState.class)); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1224,7 +1224,7 @@ public void testUpdateLocalLiveSettings_withInitialOverride() throws IOException verify(mockBackend, times(1)) .loadIndexState(BackendGlobalState.getUniqueIndexName("test_index", "test_id")); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getMergedLiveSettings(true); verify(mockState2, times(1)).getShards(); @@ -1246,7 +1246,7 @@ public void testUpdateFields() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(new FieldAndFacetState()); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1297,7 +1297,7 @@ public void testUpdateFields() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedState); - verify(mockState, times(2)).getCurrentStateInfo(); + verify(mockState, times(2)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getAllFieldsJSON(); @@ -1318,7 +1318,7 @@ public void testUpdateFields_liveSettingsOverride() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(new FieldAndFacetState()); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1371,7 +1371,7 @@ public void testUpdateFields_liveSettingsOverride() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedState); - verify(mockState, times(2)).getCurrentStateInfo(); + verify(mockState, times(2)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getAllFieldsJSON(); @@ -1410,7 +1410,7 @@ public void testUpdateFieldsAddToExisting() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(new FieldAndFacetState()); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1470,7 +1470,7 @@ public void testUpdateFieldsAddToExisting() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), expectedState); - verify(mockState, times(2)).getCurrentStateInfo(); + verify(mockState, times(2)).getIndexStateInfo(); verify(mockState, times(1)).getFieldAndFacetState(); verify(mockState2, times(1)).getAllFieldsJSON(); @@ -1512,7 +1512,7 @@ public void testLoadFields() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.getFieldAndFacetState()).thenReturn(new FieldAndFacetState()); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1564,7 +1564,7 @@ public void testStartIndex() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.isStarted()).thenReturn(false); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1578,7 +1578,7 @@ public void testStartIndex() throws IOException { verify(mockBackend, times(1)) .loadIndexState(BackendGlobalState.getUniqueIndexName("test_index", "test_id")); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).isStarted(); verify(mockState, times(1)).start(Mode.PRIMARY, mockDataManager, 1, mockReplicationClient); @@ -1599,7 +1599,7 @@ public void testStartIndex_liveSettingsOverride() throws IOException { .thenReturn(initialState); ImmutableIndexState mockState = mock(ImmutableIndexState.class); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.isStarted()).thenReturn(false); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1614,7 +1614,7 @@ public void testStartIndex_liveSettingsOverride() throws IOException { verify(mockBackend, times(1)) .loadIndexState(BackendGlobalState.getUniqueIndexName("test_index", "test_id")); - verify(mockState, times(1)).getCurrentStateInfo(); + verify(mockState, times(1)).getIndexStateInfo(); verify(mockState, times(1)).isStarted(); verify(mockState, times(1)).start(Mode.PRIMARY, mockDataManager, 1, mockReplicationClient); @@ -1667,7 +1667,7 @@ public void testStartIndexInitialCommit() throws IOException { ImmutableIndexState mockState = mock(ImmutableIndexState.class); when(mockState.getFieldAndFacetState()).thenReturn(new FieldAndFacetState()); - when(mockState.getCurrentStateInfo()).thenReturn(initialState); + when(mockState.getIndexStateInfo()).thenReturn(initialState); when(mockState.isStarted()).thenReturn(false); MockStateManager.nextState = mockState; MockStateManager.expectedState = initialState; @@ -1690,7 +1690,7 @@ public void testStartIndexInitialCommit() throws IOException { verify(mockBackend, times(1)) .commitIndexState( BackendGlobalState.getUniqueIndexName("test_index", "test_id"), updatedState); - verify(mockState, times(3)).getCurrentStateInfo(); + verify(mockState, times(3)).getIndexStateInfo(); verify(mockState, times(1)).isStarted(); verify(mockState, times(1)).start(Mode.PRIMARY, mockDataManager, 1, mockReplicationClient); verify(mockState, times(1)).commit(); diff --git a/src/test/java/com/yelp/nrtsearch/server/index/ImmutableIndexStateTest.java b/src/test/java/com/yelp/nrtsearch/server/index/ImmutableIndexStateTest.java index bd86bf3d7..152f8c96c 100644 --- a/src/test/java/com/yelp/nrtsearch/server/index/ImmutableIndexStateTest.java +++ b/src/test/java/com/yelp/nrtsearch/server/index/ImmutableIndexStateTest.java @@ -902,7 +902,7 @@ public void testParallelFetchConfig_maxParallelism() throws IOException { public void testGetCurrentStateInfo() throws IOException { IndexStateInfo indexStateInfo = getEmptyState(); ImmutableIndexState indexState = getIndexState(indexStateInfo); - assertSame(indexStateInfo, indexState.getCurrentStateInfo()); + assertSame(indexStateInfo, indexState.getIndexStateInfo()); } @Test diff --git a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/GetRemoteStateCommandTest.java b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/GetRemoteStateCommandTest.java index 575e685b4..116fc7327 100644 --- a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/GetRemoteStateCommandTest.java +++ b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/GetRemoteStateCommandTest.java @@ -154,7 +154,7 @@ public void testGetIndexState() throws IOException { IndexStateInfo stateInfo = builder.build(); IndexStateInfo expected = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(expected, stateInfo); } @@ -180,7 +180,7 @@ public void testGetIndexStateExact() throws IOException { IndexStateInfo stateInfo = builder.build(); IndexStateInfo expected = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(expected, stateInfo); } } diff --git a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/PutRemoteStateCommandTest.java b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/PutRemoteStateCommandTest.java index ede7619a9..552823660 100644 --- a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/PutRemoteStateCommandTest.java +++ b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/PutRemoteStateCommandTest.java @@ -118,7 +118,7 @@ public void testPutIndexState() throws IOException { TestServer server = getTestServer(); IndexStateInfo currentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); IndexStateInfo updatedState = currentState.toBuilder() .setLiveSettings( @@ -142,7 +142,7 @@ public void testPutIndexState() throws IOException { server.restart(); IndexStateInfo newCurrentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(updatedState, newCurrentState); assertNotEquals(currentState, newCurrentState); } @@ -152,7 +152,7 @@ public void testPutIndexStateExact() throws IOException { TestServer server = getTestServer(); IndexStateInfo currentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); IndexStateInfo updatedState = currentState.toBuilder() .setLiveSettings( @@ -177,7 +177,7 @@ public void testPutIndexStateExact() throws IOException { server.restart(); IndexStateInfo newCurrentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(updatedState, newCurrentState); assertNotEquals(currentState, newCurrentState); } diff --git a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/StateCommandUtilsTest.java b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/StateCommandUtilsTest.java index f6a004f00..4df204169 100644 --- a/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/StateCommandUtilsTest.java +++ b/src/test/java/com/yelp/nrtsearch/tools/nrt_utils/state/StateCommandUtilsTest.java @@ -145,7 +145,7 @@ public void testGetIndexStateFileContents() throws IOException { IndexStateInfo stateInfo = builder.build(); IndexStateInfo expected = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(expected, stateInfo); } @@ -186,7 +186,7 @@ public void testWriteIndexStateDataToBackend() throws IOException { TestServer server = getTestServer(); IndexStateInfo currentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); IndexStateInfo updatedState = currentState.toBuilder() .setLiveSettings( @@ -204,7 +204,7 @@ public void testWriteIndexStateDataToBackend() throws IOException { server.restart(); IndexStateInfo newCurrentState = ((ImmutableIndexState) server.getGlobalState().getIndexOrThrow("test_index")) - .getCurrentStateInfo(); + .getIndexStateInfo(); assertEquals(updatedState, newCurrentState); assertNotEquals(currentState, newCurrentState); }