diff --git a/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto b/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto index 5f9719f68..0141f3954 100644 --- a/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto +++ b/clientlib/src/main/proto/yelp/nrtsearch/luceneserver.proto @@ -264,6 +264,13 @@ service LuceneServer { }; } + /** Get information about this node */ + rpc nodeInfo (NodeInfoRequest) returns (NodeInfoResponse) { + option (google.api.http) = { + get: "/v1/node_info" + }; + } + /* Get the global state of the cluster */ rpc globalState (GlobalStateRequest) returns (GlobalStateResponse) { option (google.api.http) = { @@ -875,6 +882,22 @@ message RestoreIndex { bool deleteExistingData = 3; // delete any existing data for the index } +message NodeInfoRequest { +} + +message NodeInfoResponse { + // node name + string node_name = 1; + // service name + string service_name = 2; + // host name + string host_name = 3; + // nrtsearch version + string version = 4; + // node ephemeral id + string ephemeral_id = 5; +} + message GlobalStateRequest { } diff --git a/grpc-gateway/luceneserver.pb.go b/grpc-gateway/luceneserver.pb.go index 3e4b03e8d..fac8ae7c8 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{74, 0} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{76, 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{76, 0} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78, 0} } // Input to createIndex @@ -3848,6 +3848,128 @@ func (x *RestoreIndex) GetDeleteExistingData() bool { return false } +type NodeInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeInfoRequest) Reset() { + *x = NodeInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfoRequest) ProtoMessage() {} + +func (x *NodeInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfoRequest.ProtoReflect.Descriptor instead. +func (*NodeInfoRequest) Descriptor() ([]byte, []int) { + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{49} +} + +type NodeInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // node name + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + // service name + ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + // host name + HostName string `protobuf:"bytes,3,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"` + // nrtsearch version + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + // node ephemeral id + EphemeralId string `protobuf:"bytes,5,opt,name=ephemeral_id,json=ephemeralId,proto3" json:"ephemeral_id,omitempty"` +} + +func (x *NodeInfoResponse) Reset() { + *x = NodeInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfoResponse) ProtoMessage() {} + +func (x *NodeInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfoResponse.ProtoReflect.Descriptor instead. +func (*NodeInfoResponse) Descriptor() ([]byte, []int) { + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{50} +} + +func (x *NodeInfoResponse) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" +} + +func (x *NodeInfoResponse) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *NodeInfoResponse) GetHostName() string { + if x != nil { + return x.HostName + } + return "" +} + +func (x *NodeInfoResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *NodeInfoResponse) GetEphemeralId() string { + if x != nil { + return x.EphemeralId + } + return "" +} + type GlobalStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3857,7 +3979,7 @@ type GlobalStateRequest struct { func (x *GlobalStateRequest) Reset() { *x = GlobalStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[49] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3870,7 +3992,7 @@ func (x *GlobalStateRequest) String() string { func (*GlobalStateRequest) ProtoMessage() {} func (x *GlobalStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[49] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3883,7 +4005,7 @@ func (x *GlobalStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GlobalStateRequest.ProtoReflect.Descriptor instead. func (*GlobalStateRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{49} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{51} } type GlobalStateResponse struct { @@ -3898,7 +4020,7 @@ type GlobalStateResponse struct { func (x *GlobalStateResponse) Reset() { *x = GlobalStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[50] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3911,7 +4033,7 @@ func (x *GlobalStateResponse) String() string { func (*GlobalStateResponse) ProtoMessage() {} func (x *GlobalStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[50] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3924,7 +4046,7 @@ func (x *GlobalStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GlobalStateResponse.ProtoReflect.Descriptor instead. func (*GlobalStateResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{50} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{52} } func (x *GlobalStateResponse) GetGlobalState() *GlobalStateInfo { @@ -3945,7 +4067,7 @@ type StateRequest struct { func (x *StateRequest) Reset() { *x = StateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[51] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3958,7 +4080,7 @@ func (x *StateRequest) String() string { func (*StateRequest) ProtoMessage() {} func (x *StateRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[51] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3971,7 +4093,7 @@ func (x *StateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StateRequest.ProtoReflect.Descriptor instead. func (*StateRequest) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{51} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{53} } func (x *StateRequest) GetIndexName() string { @@ -3992,7 +4114,7 @@ type StateResponse struct { func (x *StateResponse) Reset() { *x = StateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[52] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4005,7 +4127,7 @@ func (x *StateResponse) String() string { func (*StateResponse) ProtoMessage() {} func (x *StateResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[52] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4018,7 +4140,7 @@ func (x *StateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StateResponse.ProtoReflect.Descriptor instead. func (*StateResponse) Descriptor() ([]byte, []int) { - return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{52} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{54} } func (x *StateResponse) GetResponse() string { @@ -4045,7 +4167,7 @@ type AddReplicaRequest struct { func (x *AddReplicaRequest) Reset() { *x = AddReplicaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[53] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4058,7 +4180,7 @@ func (x *AddReplicaRequest) String() string { func (*AddReplicaRequest) ProtoMessage() {} func (x *AddReplicaRequest) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[53] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4071,7 +4193,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{53} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{55} } func (x *AddReplicaRequest) GetMagicNumber() int32 { @@ -4127,7 +4249,7 @@ type AddReplicaResponse struct { func (x *AddReplicaResponse) Reset() { *x = AddReplicaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[54] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4140,7 +4262,7 @@ func (x *AddReplicaResponse) String() string { func (*AddReplicaResponse) ProtoMessage() {} func (x *AddReplicaResponse) ProtoReflect() protoreflect.Message { - mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[54] + mi := &file_yelp_nrtsearch_luceneserver_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4153,7 +4275,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{54} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{56} } func (x *AddReplicaResponse) GetOk() string { @@ -4182,7 +4304,7 @@ type CopyState struct { func (x *CopyState) Reset() { *x = CopyState{} 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) } @@ -4195,7 +4317,7 @@ func (x *CopyState) String() string { func (*CopyState) ProtoMessage() {} func (x *CopyState) 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 { @@ -4208,7 +4330,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{55} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{57} } func (x *CopyState) GetInfoBytesLength() int32 { @@ -4279,7 +4401,7 @@ type FilesMetadata struct { func (x *FilesMetadata) Reset() { *x = FilesMetadata{} 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) } @@ -4292,7 +4414,7 @@ func (x *FilesMetadata) String() string { func (*FilesMetadata) ProtoMessage() {} func (x *FilesMetadata) 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 { @@ -4305,7 +4427,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{56} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{58} } func (x *FilesMetadata) GetNumFiles() int32 { @@ -4339,7 +4461,7 @@ type FileMetadata struct { func (x *FileMetadata) Reset() { *x = FileMetadata{} 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) } @@ -4352,7 +4474,7 @@ func (x *FileMetadata) String() string { func (*FileMetadata) ProtoMessage() {} func (x *FileMetadata) 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 { @@ -4365,7 +4487,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{57} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{59} } func (x *FileMetadata) GetFileName() string { @@ -4434,7 +4556,7 @@ type CopyFiles struct { func (x *CopyFiles) Reset() { *x = CopyFiles{} 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) } @@ -4447,7 +4569,7 @@ func (x *CopyFiles) String() string { func (*CopyFiles) ProtoMessage() {} func (x *CopyFiles) 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 { @@ -4460,7 +4582,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{58} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{60} } func (x *CopyFiles) GetMagicNumber() int32 { @@ -4514,7 +4636,7 @@ type CopyStateRequest struct { func (x *CopyStateRequest) Reset() { *x = CopyStateRequest{} 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) } @@ -4527,7 +4649,7 @@ func (x *CopyStateRequest) String() string { func (*CopyStateRequest) ProtoMessage() {} func (x *CopyStateRequest) 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 { @@ -4540,7 +4662,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{59} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{61} } func (x *CopyStateRequest) GetMagicNumber() int32 { @@ -4588,7 +4710,7 @@ type FileInfo struct { func (x *FileInfo) Reset() { *x = FileInfo{} 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) } @@ -4601,7 +4723,7 @@ func (x *FileInfo) String() string { func (*FileInfo) ProtoMessage() {} func (x *FileInfo) 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 { @@ -4614,7 +4736,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{60} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{62} } func (x *FileInfo) GetFileName() string { @@ -4667,7 +4789,7 @@ type RawFileChunk struct { func (x *RawFileChunk) Reset() { *x = RawFileChunk{} 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) } @@ -4680,7 +4802,7 @@ func (x *RawFileChunk) String() string { func (*RawFileChunk) ProtoMessage() {} func (x *RawFileChunk) 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 { @@ -4693,7 +4815,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{61} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{63} } func (x *RawFileChunk) GetContent() []byte { @@ -4728,7 +4850,7 @@ type HealthCheckRequest struct { func (x *HealthCheckRequest) Reset() { *x = HealthCheckRequest{} 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) } @@ -4741,7 +4863,7 @@ func (x *HealthCheckRequest) String() string { func (*HealthCheckRequest) ProtoMessage() {} func (x *HealthCheckRequest) 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 { @@ -4754,7 +4876,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{62} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{64} } func (x *HealthCheckRequest) GetCheck() bool { @@ -4775,7 +4897,7 @@ type HealthCheckResponse struct { func (x *HealthCheckResponse) Reset() { *x = HealthCheckResponse{} 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) } @@ -4788,7 +4910,7 @@ func (x *HealthCheckResponse) String() string { func (*HealthCheckResponse) ProtoMessage() {} func (x *HealthCheckResponse) 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 { @@ -4801,7 +4923,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{63} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{65} } func (x *HealthCheckResponse) GetHealth() TransferStatusCode { @@ -4822,7 +4944,7 @@ type ReadyCheckRequest struct { func (x *ReadyCheckRequest) Reset() { *x = ReadyCheckRequest{} 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) } @@ -4835,7 +4957,7 @@ func (x *ReadyCheckRequest) String() string { func (*ReadyCheckRequest) ProtoMessage() {} func (x *ReadyCheckRequest) 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 { @@ -4848,7 +4970,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{64} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{66} } func (x *ReadyCheckRequest) GetIndexNames() string { @@ -4870,7 +4992,7 @@ type TransferStatus struct { func (x *TransferStatus) Reset() { *x = TransferStatus{} 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) } @@ -4883,7 +5005,7 @@ func (x *TransferStatus) String() string { func (*TransferStatus) ProtoMessage() {} func (x *TransferStatus) 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 { @@ -4896,7 +5018,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{65} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{67} } func (x *TransferStatus) GetMessage() string { @@ -4929,7 +5051,7 @@ type NewNRTPoint struct { func (x *NewNRTPoint) Reset() { *x = NewNRTPoint{} 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) } @@ -4942,7 +5064,7 @@ func (x *NewNRTPoint) String() string { func (*NewNRTPoint) ProtoMessage() {} func (x *NewNRTPoint) 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 { @@ -4955,7 +5077,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{66} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{68} } func (x *NewNRTPoint) GetMagicNumber() int32 { @@ -5005,7 +5127,7 @@ type IndexName struct { func (x *IndexName) Reset() { *x = IndexName{} 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) } @@ -5018,7 +5140,7 @@ func (x *IndexName) String() string { func (*IndexName) ProtoMessage() {} func (x *IndexName) 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 { @@ -5031,7 +5153,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{67} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{69} } func (x *IndexName) GetMagicNumber() int32 { @@ -5060,7 +5182,7 @@ type SearcherVersion struct { func (x *SearcherVersion) Reset() { *x = SearcherVersion{} 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) } @@ -5073,7 +5195,7 @@ func (x *SearcherVersion) String() string { func (*SearcherVersion) ProtoMessage() {} func (x *SearcherVersion) 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 { @@ -5086,7 +5208,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{68} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{70} } func (x *SearcherVersion) GetVersion() int64 { @@ -5114,7 +5236,7 @@ type GetNodesRequest struct { func (x *GetNodesRequest) Reset() { *x = GetNodesRequest{} 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) } @@ -5127,7 +5249,7 @@ func (x *GetNodesRequest) String() string { func (*GetNodesRequest) ProtoMessage() {} func (x *GetNodesRequest) 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 { @@ -5140,7 +5262,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{69} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{71} } func (x *GetNodesRequest) GetIndexName() string { @@ -5161,7 +5283,7 @@ type GetNodesResponse struct { func (x *GetNodesResponse) Reset() { *x = GetNodesResponse{} 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) } @@ -5174,7 +5296,7 @@ func (x *GetNodesResponse) String() string { func (*GetNodesResponse) ProtoMessage() {} func (x *GetNodesResponse) 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 { @@ -5187,7 +5309,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{70} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{72} } func (x *GetNodesResponse) GetNodes() []*NodeInfo { @@ -5209,7 +5331,7 @@ type NodeInfo struct { func (x *NodeInfo) Reset() { *x = NodeInfo{} 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) } @@ -5222,7 +5344,7 @@ func (x *NodeInfo) String() string { func (*NodeInfo) ProtoMessage() {} func (x *NodeInfo) 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 { @@ -5235,7 +5357,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{71} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{73} } func (x *NodeInfo) GetHostname() string { @@ -5264,7 +5386,7 @@ type DeleteByQueryRequest struct { func (x *DeleteByQueryRequest) Reset() { *x = DeleteByQueryRequest{} 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) } @@ -5277,7 +5399,7 @@ func (x *DeleteByQueryRequest) String() string { func (*DeleteByQueryRequest) ProtoMessage() {} func (x *DeleteByQueryRequest) 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 { @@ -5290,7 +5412,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{72} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{74} } func (x *DeleteByQueryRequest) GetIndexName() string { @@ -5320,7 +5442,7 @@ type ForceMergeRequest struct { func (x *ForceMergeRequest) Reset() { *x = ForceMergeRequest{} 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) } @@ -5333,7 +5455,7 @@ func (x *ForceMergeRequest) String() string { func (*ForceMergeRequest) ProtoMessage() {} func (x *ForceMergeRequest) 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 { @@ -5346,7 +5468,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{73} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{75} } func (x *ForceMergeRequest) GetIndexName() string { @@ -5381,7 +5503,7 @@ type ForceMergeResponse struct { func (x *ForceMergeResponse) Reset() { *x = ForceMergeResponse{} 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) } @@ -5394,7 +5516,7 @@ func (x *ForceMergeResponse) String() string { func (*ForceMergeResponse) ProtoMessage() {} func (x *ForceMergeResponse) 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 { @@ -5407,7 +5529,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{74} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{76} } func (x *ForceMergeResponse) GetStatus() ForceMergeResponse_Status { @@ -5429,7 +5551,7 @@ type ForceMergeDeletesRequest struct { func (x *ForceMergeDeletesRequest) Reset() { *x = ForceMergeDeletesRequest{} 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) } @@ -5442,7 +5564,7 @@ func (x *ForceMergeDeletesRequest) String() string { func (*ForceMergeDeletesRequest) ProtoMessage() {} func (x *ForceMergeDeletesRequest) 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 { @@ -5455,7 +5577,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{75} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{77} } func (x *ForceMergeDeletesRequest) GetIndexName() string { @@ -5483,7 +5605,7 @@ type ForceMergeDeletesResponse struct { func (x *ForceMergeDeletesResponse) Reset() { *x = ForceMergeDeletesResponse{} 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) } @@ -5496,7 +5618,7 @@ func (x *ForceMergeDeletesResponse) String() string { func (*ForceMergeDeletesResponse) ProtoMessage() {} func (x *ForceMergeDeletesResponse) 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 { @@ -5509,7 +5631,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{76} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{78} } func (x *ForceMergeDeletesResponse) GetStatus() ForceMergeDeletesResponse_Status { @@ -5543,7 +5665,7 @@ type IndexSettings struct { func (x *IndexSettings) Reset() { *x = IndexSettings{} 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) } @@ -5556,7 +5678,7 @@ func (x *IndexSettings) String() string { func (*IndexSettings) ProtoMessage() {} func (x *IndexSettings) 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 { @@ -5569,7 +5691,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{77} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{79} } func (x *IndexSettings) GetNrtCachingDirectoryMaxMergeSizeMB() *wrapperspb.DoubleValue { @@ -5665,7 +5787,7 @@ type IndexLiveSettings struct { func (x *IndexLiveSettings) Reset() { *x = IndexLiveSettings{} 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) } @@ -5678,7 +5800,7 @@ func (x *IndexLiveSettings) String() string { func (*IndexLiveSettings) ProtoMessage() {} func (x *IndexLiveSettings) 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 { @@ -5691,7 +5813,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{78} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{80} } func (x *IndexLiveSettings) GetMaxRefreshSec() *wrapperspb.DoubleValue { @@ -5835,7 +5957,7 @@ type IndexStateInfo struct { func (x *IndexStateInfo) Reset() { *x = IndexStateInfo{} 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) } @@ -5848,7 +5970,7 @@ func (x *IndexStateInfo) String() string { func (*IndexStateInfo) ProtoMessage() {} func (x *IndexStateInfo) 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 { @@ -5861,7 +5983,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{79} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{81} } func (x *IndexStateInfo) GetIndexName() string { @@ -5920,7 +6042,7 @@ type IndexGlobalState struct { func (x *IndexGlobalState) Reset() { *x = IndexGlobalState{} 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) } @@ -5933,7 +6055,7 @@ func (x *IndexGlobalState) String() string { func (*IndexGlobalState) ProtoMessage() {} func (x *IndexGlobalState) 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 { @@ -5946,7 +6068,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{80} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{82} } func (x *IndexGlobalState) GetId() string { @@ -5977,7 +6099,7 @@ type GlobalStateInfo struct { func (x *GlobalStateInfo) Reset() { *x = GlobalStateInfo{} 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) } @@ -5990,7 +6112,7 @@ func (x *GlobalStateInfo) String() string { func (*GlobalStateInfo) ProtoMessage() {} func (x *GlobalStateInfo) 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 { @@ -6003,7 +6125,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{81} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{83} } func (x *GlobalStateInfo) GetGen() int64 { @@ -6033,7 +6155,7 @@ type CustomRequest struct { func (x *CustomRequest) Reset() { *x = CustomRequest{} 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) } @@ -6046,7 +6168,7 @@ func (x *CustomRequest) String() string { func (*CustomRequest) ProtoMessage() {} func (x *CustomRequest) 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 { @@ -6059,7 +6181,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{82} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{84} } func (x *CustomRequest) GetId() string { @@ -6094,7 +6216,7 @@ type CustomResponse struct { func (x *CustomResponse) Reset() { *x = CustomResponse{} 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) } @@ -6107,7 +6229,7 @@ func (x *CustomResponse) String() string { func (*CustomResponse) ProtoMessage() {} func (x *CustomResponse) 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 { @@ -6120,7 +6242,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{83} + return file_yelp_nrtsearch_luceneserver_proto_rawDescGZIP(), []int{85} } func (x *CustomResponse) GetResponse() map[string]string { @@ -6144,7 +6266,7 @@ type AddDocumentRequest_MultiValuedField struct { func (x *AddDocumentRequest_MultiValuedField) Reset() { *x = AddDocumentRequest_MultiValuedField{} 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) } @@ -6157,7 +6279,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[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 { @@ -6702,741 +6824,759 @@ var file_yelp_nrtsearch_luceneserver_proto_rawDesc = []byte{ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x57, 0x0a, 0x13, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 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, 0x52, 0x0b, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x0c, 0x53, 0x74, 0x61, - 0x74, 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, 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, 0xbb, 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, 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, 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, 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, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x11, 0x0a, 0x0f, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xac, 0x01, + 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x68, + 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x57, 0x0a, 0x13, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 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, 0x52, 0x0b, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x0c, 0x53, + 0x74, 0x61, 0x74, 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, 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, 0xbb, 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, 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, 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, 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, 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, + 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, 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, 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, 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, 0x3a, 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, 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, + 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, 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, + 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, 0x3a, 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, 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, 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, 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, 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, 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, + 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, 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, 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, + 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, 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, 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, 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, + 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, 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, 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, - 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, 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, + 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, 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, + 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, 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, + 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, - 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, + 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, - 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, 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, + 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, 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, + 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, - 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, 0xaf, 0x1e, 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, + 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, 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, 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, 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, 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, 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, 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, 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, + 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, 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, 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, + 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, 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, 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, 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, + 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, + 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, 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, - 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, + 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, 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 ( @@ -7452,7 +7592,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, 90) +var file_yelp_nrtsearch_luceneserver_proto_msgTypes = make([]protoimpl.MessageInfo, 92) var file_yelp_nrtsearch_luceneserver_proto_goTypes = []interface{}{ (FieldType)(0), // 0: luceneserver.FieldType (IndexOptions)(0), // 1: luceneserver.IndexOptions @@ -7513,90 +7653,92 @@ var file_yelp_nrtsearch_luceneserver_proto_goTypes = []interface{}{ (*IndicesResponse)(nil), // 56: luceneserver.IndicesResponse (*IndexStatsResponse)(nil), // 57: luceneserver.IndexStatsResponse (*RestoreIndex)(nil), // 58: luceneserver.RestoreIndex - (*GlobalStateRequest)(nil), // 59: luceneserver.GlobalStateRequest - (*GlobalStateResponse)(nil), // 60: luceneserver.GlobalStateResponse - (*StateRequest)(nil), // 61: luceneserver.StateRequest - (*StateResponse)(nil), // 62: luceneserver.StateResponse - (*AddReplicaRequest)(nil), // 63: luceneserver.AddReplicaRequest - (*AddReplicaResponse)(nil), // 64: luceneserver.AddReplicaResponse - (*CopyState)(nil), // 65: luceneserver.CopyState - (*FilesMetadata)(nil), // 66: luceneserver.FilesMetadata - (*FileMetadata)(nil), // 67: luceneserver.FileMetadata - (*CopyFiles)(nil), // 68: luceneserver.CopyFiles - (*CopyStateRequest)(nil), // 69: luceneserver.CopyStateRequest - (*FileInfo)(nil), // 70: luceneserver.FileInfo - (*RawFileChunk)(nil), // 71: luceneserver.RawFileChunk - (*HealthCheckRequest)(nil), // 72: luceneserver.HealthCheckRequest - (*HealthCheckResponse)(nil), // 73: luceneserver.HealthCheckResponse - (*ReadyCheckRequest)(nil), // 74: luceneserver.ReadyCheckRequest - (*TransferStatus)(nil), // 75: luceneserver.TransferStatus - (*NewNRTPoint)(nil), // 76: luceneserver.NewNRTPoint - (*IndexName)(nil), // 77: luceneserver.IndexName - (*SearcherVersion)(nil), // 78: luceneserver.SearcherVersion - (*GetNodesRequest)(nil), // 79: luceneserver.GetNodesRequest - (*GetNodesResponse)(nil), // 80: luceneserver.GetNodesResponse - (*NodeInfo)(nil), // 81: luceneserver.NodeInfo - (*DeleteByQueryRequest)(nil), // 82: luceneserver.DeleteByQueryRequest - (*ForceMergeRequest)(nil), // 83: luceneserver.ForceMergeRequest - (*ForceMergeResponse)(nil), // 84: luceneserver.ForceMergeResponse - (*ForceMergeDeletesRequest)(nil), // 85: luceneserver.ForceMergeDeletesRequest - (*ForceMergeDeletesResponse)(nil), // 86: luceneserver.ForceMergeDeletesResponse - (*IndexSettings)(nil), // 87: luceneserver.IndexSettings - (*IndexLiveSettings)(nil), // 88: luceneserver.IndexLiveSettings - (*IndexStateInfo)(nil), // 89: luceneserver.IndexStateInfo - (*IndexGlobalState)(nil), // 90: luceneserver.IndexGlobalState - (*GlobalStateInfo)(nil), // 91: luceneserver.GlobalStateInfo - (*CustomRequest)(nil), // 92: luceneserver.CustomRequest - (*CustomResponse)(nil), // 93: luceneserver.CustomResponse - (*AddDocumentRequest_MultiValuedField)(nil), // 94: luceneserver.AddDocumentRequest.MultiValuedField - nil, // 95: luceneserver.AddDocumentRequest.FieldsEntry - nil, // 96: luceneserver.IndexStateInfo.FieldsEntry - nil, // 97: luceneserver.GlobalStateInfo.IndicesEntry - nil, // 98: luceneserver.CustomRequest.ParamsEntry - nil, // 99: luceneserver.CustomResponse.ResponseEntry - (*Script)(nil), // 100: luceneserver.Script - (*Analyzer)(nil), // 101: luceneserver.Analyzer - (*structpb.Struct)(nil), // 102: google.protobuf.Struct - (*SortFields)(nil), // 103: luceneserver.SortFields - (*Query)(nil), // 104: luceneserver.Query - (*wrapperspb.DoubleValue)(nil), // 105: google.protobuf.DoubleValue - (*wrapperspb.Int32Value)(nil), // 106: google.protobuf.Int32Value - (*wrapperspb.BoolValue)(nil), // 107: google.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 108: google.protobuf.StringValue - (*wrapperspb.UInt64Value)(nil), // 109: google.protobuf.UInt64Value - (*SearchRequest)(nil), // 110: luceneserver.SearchRequest - (*emptypb.Empty)(nil), // 111: google.protobuf.Empty - (*SearchResponse)(nil), // 112: luceneserver.SearchResponse - (*anypb.Any)(nil), // 113: google.protobuf.Any - (*httpbody.HttpBody)(nil), // 114: google.api.HttpBody + (*NodeInfoRequest)(nil), // 59: luceneserver.NodeInfoRequest + (*NodeInfoResponse)(nil), // 60: luceneserver.NodeInfoResponse + (*GlobalStateRequest)(nil), // 61: luceneserver.GlobalStateRequest + (*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 } var file_yelp_nrtsearch_luceneserver_proto_depIdxs = []int32{ - 87, // 0: luceneserver.CreateIndexRequest.settings:type_name -> luceneserver.IndexSettings - 88, // 1: luceneserver.CreateIndexRequest.liveSettings:type_name -> luceneserver.IndexLiveSettings + 89, // 0: luceneserver.CreateIndexRequest.settings:type_name -> luceneserver.IndexSettings + 90, // 1: luceneserver.CreateIndexRequest.liveSettings:type_name -> luceneserver.IndexLiveSettings 16, // 2: luceneserver.CreateIndexRequest.fields:type_name -> luceneserver.Field - 88, // 3: luceneserver.LiveSettingsV2Request.liveSettings:type_name -> luceneserver.IndexLiveSettings - 88, // 4: luceneserver.LiveSettingsV2Response.liveSettings:type_name -> luceneserver.IndexLiveSettings + 90, // 3: luceneserver.LiveSettingsV2Request.liveSettings:type_name -> luceneserver.IndexLiveSettings + 90, // 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 - 100, // 7: luceneserver.Field.script:type_name -> luceneserver.Script - 101, // 8: luceneserver.Field.analyzer:type_name -> luceneserver.Analyzer - 101, // 9: luceneserver.Field.indexAnalyzer:type_name -> luceneserver.Analyzer - 101, // 10: luceneserver.Field.searchAnalyzer:type_name -> luceneserver.Analyzer + 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 2, // 11: luceneserver.Field.termVectors:type_name -> luceneserver.TermVectors 3, // 12: luceneserver.Field.facet:type_name -> luceneserver.FacetType - 102, // 13: luceneserver.Field.additionalProperties:type_name -> google.protobuf.Struct - 102, // 14: luceneserver.Field.similarityParams:type_name -> google.protobuf.Struct + 104, // 13: luceneserver.Field.additionalProperties:type_name -> google.protobuf.Struct + 104, // 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 - 103, // 20: luceneserver.SettingsRequest.indexSort:type_name -> luceneserver.SortFields - 87, // 21: luceneserver.SettingsV2Request.settings:type_name -> luceneserver.IndexSettings - 87, // 22: luceneserver.SettingsV2Response.settings:type_name -> luceneserver.IndexSettings + 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 6, // 23: luceneserver.StartIndexRequest.mode:type_name -> luceneserver.Mode 58, // 24: luceneserver.StartIndexRequest.restore:type_name -> luceneserver.RestoreIndex - 95, // 25: luceneserver.AddDocumentRequest.fields:type_name -> luceneserver.AddDocumentRequest.FieldsEntry + 97, // 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 @@ -7604,50 +7746,50 @@ 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 - 91, // 33: luceneserver.GlobalStateResponse.global_state:type_name -> luceneserver.GlobalStateInfo - 66, // 34: luceneserver.CopyState.filesMetadata:type_name -> luceneserver.FilesMetadata - 67, // 35: luceneserver.FilesMetadata.fileMetadata:type_name -> luceneserver.FileMetadata - 66, // 36: luceneserver.CopyFiles.filesMetadata:type_name -> luceneserver.FilesMetadata + 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 - 81, // 39: luceneserver.GetNodesResponse.nodes:type_name -> luceneserver.NodeInfo - 104, // 40: luceneserver.DeleteByQueryRequest.query:type_name -> luceneserver.Query + 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 - 105, // 43: luceneserver.IndexSettings.nrtCachingDirectoryMaxMergeSizeMB:type_name -> google.protobuf.DoubleValue - 105, // 44: luceneserver.IndexSettings.nrtCachingDirectoryMaxSizeMB:type_name -> google.protobuf.DoubleValue - 106, // 45: luceneserver.IndexSettings.concurrentMergeSchedulerMaxThreadCount:type_name -> google.protobuf.Int32Value - 106, // 46: luceneserver.IndexSettings.concurrentMergeSchedulerMaxMergeCount:type_name -> google.protobuf.Int32Value - 103, // 47: luceneserver.IndexSettings.indexSort:type_name -> luceneserver.SortFields - 107, // 48: luceneserver.IndexSettings.indexMergeSchedulerAutoThrottle:type_name -> google.protobuf.BoolValue - 108, // 49: luceneserver.IndexSettings.directory:type_name -> google.protobuf.StringValue - 105, // 50: luceneserver.IndexLiveSettings.maxRefreshSec:type_name -> google.protobuf.DoubleValue - 105, // 51: luceneserver.IndexLiveSettings.minRefreshSec:type_name -> google.protobuf.DoubleValue - 105, // 52: luceneserver.IndexLiveSettings.maxSearcherAgeSec:type_name -> google.protobuf.DoubleValue - 105, // 53: luceneserver.IndexLiveSettings.indexRamBufferSizeMB:type_name -> google.protobuf.DoubleValue - 106, // 54: luceneserver.IndexLiveSettings.addDocumentsMaxBufferLen:type_name -> google.protobuf.Int32Value - 106, // 55: luceneserver.IndexLiveSettings.sliceMaxDocs:type_name -> google.protobuf.Int32Value - 106, // 56: luceneserver.IndexLiveSettings.sliceMaxSegments:type_name -> google.protobuf.Int32Value - 106, // 57: luceneserver.IndexLiveSettings.virtualShards:type_name -> google.protobuf.Int32Value - 106, // 58: luceneserver.IndexLiveSettings.maxMergedSegmentMB:type_name -> google.protobuf.Int32Value - 106, // 59: luceneserver.IndexLiveSettings.segmentsPerTier:type_name -> google.protobuf.Int32Value - 105, // 60: luceneserver.IndexLiveSettings.defaultSearchTimeoutSec:type_name -> google.protobuf.DoubleValue - 106, // 61: luceneserver.IndexLiveSettings.defaultSearchTimeoutCheckEvery:type_name -> google.protobuf.Int32Value - 106, // 62: luceneserver.IndexLiveSettings.defaultTerminateAfter:type_name -> google.protobuf.Int32Value - 109, // 63: luceneserver.IndexLiveSettings.maxMergePreCopyDurationSec:type_name -> google.protobuf.UInt64Value - 107, // 64: luceneserver.IndexLiveSettings.verboseMetrics:type_name -> google.protobuf.BoolValue - 107, // 65: luceneserver.IndexLiveSettings.parallelFetchByField:type_name -> google.protobuf.BoolValue - 106, // 66: luceneserver.IndexLiveSettings.parallelFetchChunkSize:type_name -> google.protobuf.Int32Value - 87, // 67: luceneserver.IndexStateInfo.settings:type_name -> luceneserver.IndexSettings - 88, // 68: luceneserver.IndexStateInfo.liveSettings:type_name -> luceneserver.IndexLiveSettings - 96, // 69: luceneserver.IndexStateInfo.fields:type_name -> luceneserver.IndexStateInfo.FieldsEntry - 97, // 70: luceneserver.GlobalStateInfo.indices:type_name -> luceneserver.GlobalStateInfo.IndicesEntry - 98, // 71: luceneserver.CustomRequest.params:type_name -> luceneserver.CustomRequest.ParamsEntry - 99, // 72: luceneserver.CustomResponse.response:type_name -> luceneserver.CustomResponse.ResponseEntry + 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 - 94, // 74: luceneserver.AddDocumentRequest.FieldsEntry.value:type_name -> luceneserver.AddDocumentRequest.MultiValuedField + 96, // 74: luceneserver.AddDocumentRequest.FieldsEntry.value:type_name -> luceneserver.AddDocumentRequest.MultiValuedField 16, // 75: luceneserver.IndexStateInfo.FieldsEntry.value:type_name -> luceneserver.Field - 90, // 76: luceneserver.GlobalStateInfo.IndicesEntry.value:type_name -> luceneserver.IndexGlobalState + 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 @@ -7663,81 +7805,83 @@ var file_yelp_nrtsearch_luceneserver_proto_depIdxs = []int32{ 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 - 110, // 92: luceneserver.LuceneServer.search:input_type -> luceneserver.SearchRequest - 110, // 93: luceneserver.LuceneServer.searchV2:input_type -> luceneserver.SearchRequest + 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 - 82, // 95: luceneserver.LuceneServer.deleteByQuery:input_type -> luceneserver.DeleteByQueryRequest + 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.globalState:input_type -> luceneserver.GlobalStateRequest - 61, // 103: luceneserver.LuceneServer.state:input_type -> luceneserver.StateRequest - 72, // 104: luceneserver.LuceneServer.status:input_type -> luceneserver.HealthCheckRequest - 74, // 105: luceneserver.LuceneServer.ready:input_type -> luceneserver.ReadyCheckRequest - 111, // 106: luceneserver.LuceneServer.metrics:input_type -> google.protobuf.Empty - 55, // 107: luceneserver.LuceneServer.indices:input_type -> luceneserver.IndicesRequest - 83, // 108: luceneserver.LuceneServer.forceMerge:input_type -> luceneserver.ForceMergeRequest - 85, // 109: luceneserver.LuceneServer.forceMergeDeletes:input_type -> luceneserver.ForceMergeDeletesRequest - 92, // 110: luceneserver.LuceneServer.custom:input_type -> luceneserver.CustomRequest - 63, // 111: luceneserver.ReplicationServer.addReplicas:input_type -> luceneserver.AddReplicaRequest - 69, // 112: luceneserver.ReplicationServer.recvCopyState:input_type -> luceneserver.CopyStateRequest - 71, // 113: luceneserver.ReplicationServer.sendRawFile:input_type -> luceneserver.RawFileChunk - 70, // 114: luceneserver.ReplicationServer.recvRawFile:input_type -> luceneserver.FileInfo - 70, // 115: luceneserver.ReplicationServer.recvRawFileV2:input_type -> luceneserver.FileInfo - 68, // 116: luceneserver.ReplicationServer.copyFiles:input_type -> luceneserver.CopyFiles - 76, // 117: luceneserver.ReplicationServer.newNRTPoint:input_type -> luceneserver.NewNRTPoint - 77, // 118: luceneserver.ReplicationServer.writeNRTPoint:input_type -> luceneserver.IndexName - 77, // 119: luceneserver.ReplicationServer.getCurrentSearcherVersion:input_type -> luceneserver.IndexName - 79, // 120: luceneserver.ReplicationServer.getConnectedNodes:input_type -> luceneserver.GetNodesRequest - 11, // 121: luceneserver.LuceneServer.createIndex:output_type -> luceneserver.CreateIndexResponse - 13, // 122: luceneserver.LuceneServer.liveSettings:output_type -> luceneserver.LiveSettingsResponse - 15, // 123: luceneserver.LuceneServer.liveSettingsV2:output_type -> luceneserver.LiveSettingsV2Response - 19, // 124: luceneserver.LuceneServer.registerFields:output_type -> luceneserver.FieldDefResponse - 19, // 125: luceneserver.LuceneServer.updateFields:output_type -> luceneserver.FieldDefResponse - 21, // 126: luceneserver.LuceneServer.settings:output_type -> luceneserver.SettingsResponse - 23, // 127: luceneserver.LuceneServer.settingsV2:output_type -> luceneserver.SettingsV2Response - 26, // 128: luceneserver.LuceneServer.startIndex:output_type -> luceneserver.StartIndexResponse - 26, // 129: luceneserver.LuceneServer.startIndexV2:output_type -> luceneserver.StartIndexResponse - 42, // 130: luceneserver.LuceneServer.stopIndex:output_type -> luceneserver.DummyResponse - 45, // 131: luceneserver.LuceneServer.reloadState:output_type -> luceneserver.ReloadStateResponse - 29, // 132: luceneserver.LuceneServer.addDocuments:output_type -> luceneserver.AddDocumentResponse - 31, // 133: luceneserver.LuceneServer.refresh:output_type -> luceneserver.RefreshResponse - 33, // 134: luceneserver.LuceneServer.commit:output_type -> luceneserver.CommitResponse - 35, // 135: luceneserver.LuceneServer.stats:output_type -> luceneserver.StatsResponse - 112, // 136: luceneserver.LuceneServer.search:output_type -> luceneserver.SearchResponse - 113, // 137: luceneserver.LuceneServer.searchV2:output_type -> google.protobuf.Any - 29, // 138: luceneserver.LuceneServer.delete:output_type -> luceneserver.AddDocumentResponse - 29, // 139: luceneserver.LuceneServer.deleteByQuery:output_type -> luceneserver.AddDocumentResponse - 39, // 140: luceneserver.LuceneServer.deleteAll:output_type -> luceneserver.DeleteAllDocumentsResponse - 41, // 141: luceneserver.LuceneServer.deleteIndex:output_type -> luceneserver.DeleteIndexResponse - 47, // 142: luceneserver.LuceneServer.createSnapshot:output_type -> luceneserver.CreateSnapshotResponse - 50, // 143: luceneserver.LuceneServer.releaseSnapshot:output_type -> luceneserver.ReleaseSnapshotResponse - 52, // 144: luceneserver.LuceneServer.getAllSnapshotIndexGen:output_type -> luceneserver.GetAllSnapshotGenResponse - 54, // 145: luceneserver.LuceneServer.backupWarmingQueries:output_type -> luceneserver.BackupWarmingQueriesResponse - 60, // 146: luceneserver.LuceneServer.globalState:output_type -> luceneserver.GlobalStateResponse - 62, // 147: luceneserver.LuceneServer.state:output_type -> luceneserver.StateResponse - 73, // 148: luceneserver.LuceneServer.status:output_type -> luceneserver.HealthCheckResponse - 73, // 149: luceneserver.LuceneServer.ready:output_type -> luceneserver.HealthCheckResponse - 114, // 150: luceneserver.LuceneServer.metrics:output_type -> google.api.HttpBody - 56, // 151: luceneserver.LuceneServer.indices:output_type -> luceneserver.IndicesResponse - 84, // 152: luceneserver.LuceneServer.forceMerge:output_type -> luceneserver.ForceMergeResponse - 86, // 153: luceneserver.LuceneServer.forceMergeDeletes:output_type -> luceneserver.ForceMergeDeletesResponse - 93, // 154: luceneserver.LuceneServer.custom:output_type -> luceneserver.CustomResponse - 64, // 155: luceneserver.ReplicationServer.addReplicas:output_type -> luceneserver.AddReplicaResponse - 65, // 156: luceneserver.ReplicationServer.recvCopyState:output_type -> luceneserver.CopyState - 75, // 157: luceneserver.ReplicationServer.sendRawFile:output_type -> luceneserver.TransferStatus - 71, // 158: luceneserver.ReplicationServer.recvRawFile:output_type -> luceneserver.RawFileChunk - 71, // 159: luceneserver.ReplicationServer.recvRawFileV2:output_type -> luceneserver.RawFileChunk - 75, // 160: luceneserver.ReplicationServer.copyFiles:output_type -> luceneserver.TransferStatus - 75, // 161: luceneserver.ReplicationServer.newNRTPoint:output_type -> luceneserver.TransferStatus - 78, // 162: luceneserver.ReplicationServer.writeNRTPoint:output_type -> luceneserver.SearcherVersion - 78, // 163: luceneserver.ReplicationServer.getCurrentSearcherVersion:output_type -> luceneserver.SearcherVersion - 80, // 164: luceneserver.ReplicationServer.getConnectedNodes:output_type -> luceneserver.GetNodesResponse - 121, // [121:165] is the sub-list for method output_type - 77, // [77:121] is the sub-list for method input_type + 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 @@ -8340,7 +8484,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GlobalStateRequest); i { + switch v := v.(*NodeInfoRequest); i { case 0: return &v.state case 1: @@ -8352,7 +8496,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GlobalStateResponse); i { + switch v := v.(*NodeInfoResponse); i { case 0: return &v.state case 1: @@ -8364,7 +8508,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateRequest); i { + switch v := v.(*GlobalStateRequest); i { case 0: return &v.state case 1: @@ -8376,7 +8520,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateResponse); i { + switch v := v.(*GlobalStateResponse); i { case 0: return &v.state case 1: @@ -8388,7 +8532,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddReplicaRequest); i { + switch v := v.(*StateRequest); i { case 0: return &v.state case 1: @@ -8400,7 +8544,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { } } file_yelp_nrtsearch_luceneserver_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddReplicaResponse); i { + switch v := v.(*StateResponse); i { case 0: return &v.state case 1: @@ -8412,7 +8556,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.(*CopyState); i { + switch v := v.(*AddReplicaRequest); i { case 0: return &v.state case 1: @@ -8424,7 +8568,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.(*FilesMetadata); i { + switch v := v.(*AddReplicaResponse); i { case 0: return &v.state case 1: @@ -8436,7 +8580,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.(*FileMetadata); i { + switch v := v.(*CopyState); i { case 0: return &v.state case 1: @@ -8448,7 +8592,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.(*CopyFiles); i { + switch v := v.(*FilesMetadata); i { case 0: return &v.state case 1: @@ -8460,7 +8604,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.(*CopyStateRequest); i { + switch v := v.(*FileMetadata); i { case 0: return &v.state case 1: @@ -8472,7 +8616,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.(*FileInfo); i { + switch v := v.(*CopyFiles); i { case 0: return &v.state case 1: @@ -8484,7 +8628,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.(*RawFileChunk); i { + switch v := v.(*CopyStateRequest); i { case 0: return &v.state case 1: @@ -8496,7 +8640,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.(*HealthCheckRequest); i { + switch v := v.(*FileInfo); i { case 0: return &v.state case 1: @@ -8508,7 +8652,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.(*HealthCheckResponse); i { + switch v := v.(*RawFileChunk); i { case 0: return &v.state case 1: @@ -8520,7 +8664,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.(*ReadyCheckRequest); i { + switch v := v.(*HealthCheckRequest); i { case 0: return &v.state case 1: @@ -8532,7 +8676,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.(*TransferStatus); i { + switch v := v.(*HealthCheckResponse); i { case 0: return &v.state case 1: @@ -8544,7 +8688,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.(*NewNRTPoint); i { + switch v := v.(*ReadyCheckRequest); i { case 0: return &v.state case 1: @@ -8556,7 +8700,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.(*IndexName); i { + switch v := v.(*TransferStatus); i { case 0: return &v.state case 1: @@ -8568,7 +8712,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.(*SearcherVersion); i { + switch v := v.(*NewNRTPoint); i { case 0: return &v.state case 1: @@ -8580,7 +8724,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.(*GetNodesRequest); i { + switch v := v.(*IndexName); i { case 0: return &v.state case 1: @@ -8592,7 +8736,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.(*GetNodesResponse); i { + switch v := v.(*SearcherVersion); i { case 0: return &v.state case 1: @@ -8604,7 +8748,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.(*NodeInfo); i { + switch v := v.(*GetNodesRequest); i { case 0: return &v.state case 1: @@ -8616,7 +8760,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.(*DeleteByQueryRequest); i { + switch v := v.(*GetNodesResponse); i { case 0: return &v.state case 1: @@ -8628,7 +8772,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.(*ForceMergeRequest); i { + switch v := v.(*NodeInfo); i { case 0: return &v.state case 1: @@ -8640,7 +8784,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.(*ForceMergeResponse); i { + switch v := v.(*DeleteByQueryRequest); i { case 0: return &v.state case 1: @@ -8652,7 +8796,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.(*ForceMergeDeletesRequest); i { + switch v := v.(*ForceMergeRequest); i { case 0: return &v.state case 1: @@ -8664,7 +8808,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.(*ForceMergeDeletesResponse); i { + switch v := v.(*ForceMergeResponse); i { case 0: return &v.state case 1: @@ -8676,7 +8820,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.(*IndexSettings); i { + switch v := v.(*ForceMergeDeletesRequest); i { case 0: return &v.state case 1: @@ -8688,7 +8832,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.(*IndexLiveSettings); i { + switch v := v.(*ForceMergeDeletesResponse); i { case 0: return &v.state case 1: @@ -8700,7 +8844,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.(*IndexStateInfo); i { + switch v := v.(*IndexSettings); i { case 0: return &v.state case 1: @@ -8712,7 +8856,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.(*IndexGlobalState); i { + switch v := v.(*IndexLiveSettings); i { case 0: return &v.state case 1: @@ -8724,7 +8868,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.(*GlobalStateInfo); i { + switch v := v.(*IndexStateInfo); i { case 0: return &v.state case 1: @@ -8736,7 +8880,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.(*CustomRequest); i { + switch v := v.(*IndexGlobalState); i { case 0: return &v.state case 1: @@ -8748,7 +8892,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.(*CustomResponse); i { + switch v := v.(*GlobalStateInfo); i { case 0: return &v.state case 1: @@ -8760,6 +8904,30 @@ 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 { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_yelp_nrtsearch_luceneserver_proto_msgTypes[85].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[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddDocumentRequest_MultiValuedField); i { case 0: return &v.state @@ -8780,7 +8948,7 @@ func file_yelp_nrtsearch_luceneserver_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_yelp_nrtsearch_luceneserver_proto_rawDesc, NumEnums: 10, - NumMessages: 90, + NumMessages: 92, NumExtensions: 0, NumServices: 2, }, @@ -8879,6 +9047,8 @@ type LuceneServerClient interface { GetAllSnapshotIndexGen(ctx context.Context, in *GetAllSnapshotGenRequest, opts ...grpc.CallOption) (*GetAllSnapshotGenResponse, error) // Backup warming queries to S3 BackupWarmingQueries(ctx context.Context, in *BackupWarmingQueriesRequest, opts ...grpc.CallOption) (*BackupWarmingQueriesResponse, error) + // * Get information about this node + NodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfoResponse, error) // Get the global state of the cluster GlobalState(ctx context.Context, in *GlobalStateRequest, opts ...grpc.CallOption) (*GlobalStateResponse, error) // Gets the state of a started index, includes settings, live_settings, search schema @@ -9166,6 +9336,15 @@ func (c *luceneServerClient) BackupWarmingQueries(ctx context.Context, in *Backu return out, nil } +func (c *luceneServerClient) NodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfoResponse, error) { + out := new(NodeInfoResponse) + err := c.cc.Invoke(ctx, "/luceneserver.LuceneServer/nodeInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *luceneServerClient) GlobalState(ctx context.Context, in *GlobalStateRequest, opts ...grpc.CallOption) (*GlobalStateResponse, error) { out := new(GlobalStateResponse) err := c.cc.Invoke(ctx, "/luceneserver.LuceneServer/globalState", in, out, opts...) @@ -9321,6 +9500,8 @@ type LuceneServerServer interface { GetAllSnapshotIndexGen(context.Context, *GetAllSnapshotGenRequest) (*GetAllSnapshotGenResponse, error) // Backup warming queries to S3 BackupWarmingQueries(context.Context, *BackupWarmingQueriesRequest) (*BackupWarmingQueriesResponse, error) + // * Get information about this node + NodeInfo(context.Context, *NodeInfoRequest) (*NodeInfoResponse, error) // Get the global state of the cluster GlobalState(context.Context, *GlobalStateRequest) (*GlobalStateResponse, error) // Gets the state of a started index, includes settings, live_settings, search schema @@ -9429,6 +9610,9 @@ func (*UnimplementedLuceneServerServer) GetAllSnapshotIndexGen(context.Context, func (*UnimplementedLuceneServerServer) BackupWarmingQueries(context.Context, *BackupWarmingQueriesRequest) (*BackupWarmingQueriesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BackupWarmingQueries not implemented") } +func (*UnimplementedLuceneServerServer) NodeInfo(context.Context, *NodeInfoRequest) (*NodeInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeInfo not implemented") +} func (*UnimplementedLuceneServerServer) GlobalState(context.Context, *GlobalStateRequest) (*GlobalStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GlobalState not implemented") } @@ -9919,6 +10103,24 @@ func _LuceneServer_BackupWarmingQueries_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _LuceneServer_NodeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LuceneServerServer).NodeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/luceneserver.LuceneServer/NodeInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LuceneServerServer).NodeInfo(ctx, req.(*NodeInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _LuceneServer_GlobalState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GlobalStateRequest) if err := dec(in); err != nil { @@ -10181,6 +10383,10 @@ var _LuceneServer_serviceDesc = grpc.ServiceDesc{ MethodName: "backupWarmingQueries", Handler: _LuceneServer_BackupWarmingQueries_Handler, }, + { + MethodName: "nodeInfo", + Handler: _LuceneServer_NodeInfo_Handler, + }, { MethodName: "globalState", Handler: _LuceneServer_GlobalState_Handler, diff --git a/grpc-gateway/luceneserver.pb.gw.go b/grpc-gateway/luceneserver.pb.gw.go index 168c045a8..543e71e9b 100644 --- a/grpc-gateway/luceneserver.pb.gw.go +++ b/grpc-gateway/luceneserver.pb.gw.go @@ -1102,6 +1102,24 @@ func local_request_LuceneServer_BackupWarmingQueries_0(ctx context.Context, mars } +func request_LuceneServer_NodeInfo_0(ctx context.Context, marshaler runtime.Marshaler, client LuceneServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq NodeInfoRequest + var metadata runtime.ServerMetadata + + msg, err := client.NodeInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_LuceneServer_NodeInfo_0(ctx context.Context, marshaler runtime.Marshaler, server LuceneServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq NodeInfoRequest + var metadata runtime.ServerMetadata + + msg, err := server.NodeInfo(ctx, &protoReq) + return msg, metadata, err + +} + func request_LuceneServer_GlobalState_0(ctx context.Context, marshaler runtime.Marshaler, client LuceneServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GlobalStateRequest var metadata runtime.ServerMetadata @@ -2199,6 +2217,30 @@ func RegisterLuceneServerHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_LuceneServer_NodeInfo_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/NodeInfo", runtime.WithHTTPPathPattern("/v1/node_info")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_LuceneServer_NodeInfo_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_NodeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_LuceneServer_GlobalState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3092,6 +3134,27 @@ func RegisterLuceneServerHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_LuceneServer_NodeInfo_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/NodeInfo", runtime.WithHTTPPathPattern("/v1/node_info")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_LuceneServer_NodeInfo_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_NodeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_LuceneServer_GlobalState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3383,6 +3446,8 @@ var ( pattern_LuceneServer_BackupWarmingQueries_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "backup_warming_queries"}, "")) + pattern_LuceneServer_NodeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "node_info"}, "")) + pattern_LuceneServer_GlobalState_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "global_state"}, "")) pattern_LuceneServer_State_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "state"}, "")) @@ -3463,6 +3528,8 @@ var ( forward_LuceneServer_BackupWarmingQueries_0 = runtime.ForwardResponseMessage + forward_LuceneServer_NodeInfo_0 = runtime.ForwardResponseMessage + forward_LuceneServer_GlobalState_0 = runtime.ForwardResponseMessage forward_LuceneServer_State_0 = runtime.ForwardResponseMessage diff --git a/grpc-gateway/luceneserver.swagger.json b/grpc-gateway/luceneserver.swagger.json index 7d5dfaae1..a9708e93d 100644 --- a/grpc-gateway/luceneserver.swagger.json +++ b/grpc-gateway/luceneserver.swagger.json @@ -579,6 +579,29 @@ ] } }, + "/v1/node_info": { + "get": { + "summary": "* Get information about this node", + "operationId": "LuceneServer_nodeInfo", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/luceneserverNodeInfoResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "tags": [ + "LuceneServer" + ] + } + }, "/v1/ready": { "get": { "summary": "Checks if a node is ready to receive traffic by checking if all the indices (which can be preloaded)\nare started. Can specify comma-separated list of index name to only check specific indices if needed.", @@ -4118,6 +4141,31 @@ } } }, + "luceneserverNodeInfoResponse": { + "type": "object", + "properties": { + "nodeName": { + "type": "string", + "title": "node name" + }, + "serviceName": { + "type": "string", + "title": "service name" + }, + "hostName": { + "type": "string", + "title": "host name" + }, + "version": { + "type": "string", + "title": "nrtsearch version" + }, + "ephemeralId": { + "type": "string", + "title": "node ephemeral id" + } + } + }, "luceneserverNumericRangeType": { "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 cd8b81917..44a726f06 100644 --- a/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java +++ b/src/main/java/com/yelp/nrtsearch/server/grpc/NrtsearchServer.java @@ -49,11 +49,13 @@ import com.yelp.nrtsearch.server.handler.GetNodesInfoHandler; 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.IndicesHandler; import com.yelp.nrtsearch.server.handler.LiveSettingsHandler; import com.yelp.nrtsearch.server.handler.LiveSettingsV2Handler; import com.yelp.nrtsearch.server.handler.MetricsHandler; import com.yelp.nrtsearch.server.handler.NewNRTPointHandler; +import com.yelp.nrtsearch.server.handler.NodeInfoHandler; import com.yelp.nrtsearch.server.handler.ReadyHandler; import com.yelp.nrtsearch.server.handler.RecvCopyStateHandler; import com.yelp.nrtsearch.server.handler.RecvRawFileHandler; @@ -336,6 +338,7 @@ static class LuceneServerImpl extends LuceneServerGrpc.LuceneServerImplBase { private final LiveSettingsHandler liveSettingsHandler; private final LiveSettingsV2Handler liveSettingsV2Handler; private final MetricsHandler metricsHandler; + private final NodeInfoHandler nodeInfoHandler; private final ReadyHandler readyHandler; private final RefreshHandler refreshHandler; private final RegisterFieldsHandler registerFieldsHandler; @@ -399,6 +402,7 @@ static class LuceneServerImpl extends LuceneServerGrpc.LuceneServerImplBase { liveSettingsHandler = new LiveSettingsHandler(globalState); liveSettingsV2Handler = new LiveSettingsV2Handler(globalState); metricsHandler = new MetricsHandler(prometheusRegistry); + nodeInfoHandler = new NodeInfoHandler(globalState); readyHandler = new ReadyHandler(globalState); refreshHandler = new RefreshHandler(globalState); registerFieldsHandler = new RegisterFieldsHandler(globalState); @@ -637,6 +641,12 @@ public void indices(IndicesRequest request, StreamObserver resp indicesHandler.handle(request, responseObserver); } + @Override + public void nodeInfo( + NodeInfoRequest request, StreamObserver responseStreamObserver) { + Handler.handleUnaryRequest("nodeInfo", request, responseStreamObserver, nodeInfoHandler); + } + @Override public void globalState( GlobalStateRequest request, StreamObserver responseObserver) { diff --git a/src/main/java/com/yelp/nrtsearch/server/handler/Handler.java b/src/main/java/com/yelp/nrtsearch/server/handler/Handler.java index 87e512090..3547f81d0 100644 --- a/src/main/java/com/yelp/nrtsearch/server/handler/Handler.java +++ b/src/main/java/com/yelp/nrtsearch/server/handler/Handler.java @@ -17,11 +17,14 @@ import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.GeneratedMessageV3; +import com.google.protobuf.InvalidProtocolBufferException; import com.yelp.nrtsearch.server.grpc.LuceneServerStubBuilder; import com.yelp.nrtsearch.server.grpc.NrtsearchServer; import com.yelp.nrtsearch.server.grpc.ReplicationServerClient; import com.yelp.nrtsearch.server.state.GlobalState; +import com.yelp.nrtsearch.server.utils.ProtoMessagePrinter; import io.grpc.Status; +import io.grpc.StatusRuntimeException; import io.grpc.stub.ServerCallStreamObserver; import io.grpc.stub.StreamObserver; import org.slf4j.Logger; @@ -55,10 +58,51 @@ public void handle(T protoRequest, StreamObserver responseObserver) { throw new UnsupportedOperationException("This method is not supported"); } + public S handle(T protoRequest) { + throw new UnsupportedOperationException("This method is not supported"); + } + public StreamObserver handle(StreamObserver responseObserver) { throw new UnsupportedOperationException("This method is not supported"); } + /** + * Handle a unary request, catching any exceptions and returning an error status to the client. + * + * @param name name of the request + * @param protoRequest request object + * @param responseObserver observer to send response to + * @param handler handler to process the request + * @param request type + * @param response type + */ + public static + void handleUnaryRequest( + String name, T protoRequest, StreamObserver responseObserver, Handler handler) { + try { + S response = handler.handle(protoRequest); + responseObserver.onNext(response); + responseObserver.onCompleted(); + } catch (Exception e) { + String requestStr; + try { + requestStr = ProtoMessagePrinter.omittingInsignificantWhitespace().print(protoRequest); + } catch (InvalidProtocolBufferException ignore) { + requestStr = protoRequest.toString(); + } + logger.warn("Error handling " + name + " request: " + requestStr, e); + if (e instanceof StatusRuntimeException) { + responseObserver.onError(e); + } else { + responseObserver.onError( + Status.INTERNAL + .withDescription("Error handling " + name + " request") + .augmentDescription(e.getMessage()) + .asException()); + } + } + } + /** * Set response compression on the provided {@link StreamObserver}. Should be a valid compression * type from the {@link LuceneServerStubBuilder#COMPRESSOR_REGISTRY}, or empty string for default. diff --git a/src/main/java/com/yelp/nrtsearch/server/handler/NodeInfoHandler.java b/src/main/java/com/yelp/nrtsearch/server/handler/NodeInfoHandler.java new file mode 100644 index 000000000..271d0394f --- /dev/null +++ b/src/main/java/com/yelp/nrtsearch/server/handler/NodeInfoHandler.java @@ -0,0 +1,40 @@ +/* + * 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.Version; +import com.yelp.nrtsearch.server.grpc.NodeInfoRequest; +import com.yelp.nrtsearch.server.grpc.NodeInfoResponse; +import com.yelp.nrtsearch.server.state.GlobalState; + +public class NodeInfoHandler extends Handler { + public NodeInfoHandler(GlobalState globalState) { + super(globalState); + } + + @Override + public NodeInfoResponse handle(NodeInfoRequest request) { + GlobalState globalState = getGlobalState(); + NodeInfoResponse.Builder builder = NodeInfoResponse.newBuilder(); + builder.setNodeName(globalState.getNodeName()); + builder.setServiceName(globalState.getServiceName()); + builder.setHostName(globalState.getHostName()); + builder.setVersion(Version.CURRENT.toString()); + builder.setEphemeralId(globalState.getEphemeralId()); + + return builder.build(); + } +} diff --git a/src/main/java/com/yelp/nrtsearch/server/state/GlobalState.java b/src/main/java/com/yelp/nrtsearch/server/state/GlobalState.java index e60bb1364..ccc621bcb 100644 --- a/src/main/java/com/yelp/nrtsearch/server/state/GlobalState.java +++ b/src/main/java/com/yelp/nrtsearch/server/state/GlobalState.java @@ -53,6 +53,7 @@ public abstract class GlobalState implements Closeable { private final long generation = System.currentTimeMillis(); private final String nodeName; + private final String serviceName; private final NrtsearchConfig configuration; @@ -79,6 +80,7 @@ protected GlobalState(NrtsearchConfig luceneServerConfiguration, RemoteBackend r throws IOException { this.remoteBackend = remoteBackend; this.nodeName = luceneServerConfiguration.getNodeName(); + this.serviceName = luceneServerConfiguration.getServiceName(); this.stateDir = Paths.get(luceneServerConfiguration.getStateDir()); this.indexDirBase = Paths.get(luceneServerConfiguration.getIndexDir()); this.hostName = luceneServerConfiguration.getHostName(); @@ -106,6 +108,15 @@ public String getNodeName() { return nodeName; } + /** + * Get the service name. + * + * @return service name + */ + public String getServiceName() { + return serviceName; + } + public String getHostName() { return hostName; } diff --git a/src/test/java/com/yelp/nrtsearch/server/handler/NodeInfoHandlerTest.java b/src/test/java/com/yelp/nrtsearch/server/handler/NodeInfoHandlerTest.java new file mode 100644 index 000000000..3592a00f3 --- /dev/null +++ b/src/test/java/com/yelp/nrtsearch/server/handler/NodeInfoHandlerTest.java @@ -0,0 +1,47 @@ +/* + * 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 static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import com.yelp.nrtsearch.server.Version; +import com.yelp.nrtsearch.server.grpc.NodeInfoRequest; +import com.yelp.nrtsearch.server.grpc.NodeInfoResponse; +import com.yelp.nrtsearch.server.state.GlobalState; +import org.junit.Test; + +public class NodeInfoHandlerTest { + + @Test + public void testNodeInfoHandler() { + GlobalState mockGlobalState = mock(GlobalState.class); + when(mockGlobalState.getNodeName()).thenReturn("nodeName"); + when(mockGlobalState.getServiceName()).thenReturn("serviceName"); + when(mockGlobalState.getHostName()).thenReturn("hostName"); + when(mockGlobalState.getEphemeralId()).thenReturn("ephemeralId"); + NodeInfoHandler nodeInfoHandler = new NodeInfoHandler(mockGlobalState); + + NodeInfoResponse response = nodeInfoHandler.handle(NodeInfoRequest.newBuilder().build()); + + assertEquals("nodeName", response.getNodeName()); + assertEquals("serviceName", response.getServiceName()); + assertEquals("hostName", response.getHostName()); + assertEquals("ephemeralId", response.getEphemeralId()); + assertEquals(Version.CURRENT.toString(), response.getVersion()); + } +}