// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 // protoc v5.29.3 // source: application.proto package protobufs import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // The HypergraphPhaseSet defines the specific phase set for further operation. type HypergraphPhaseSet int32 const ( HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_ADDS HypergraphPhaseSet = 0 HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_REMOVES HypergraphPhaseSet = 1 HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_HYPEREDGE_ADDS HypergraphPhaseSet = 2 HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_HYPEREDGE_REMOVES HypergraphPhaseSet = 3 ) // Enum value maps for HypergraphPhaseSet. var ( HypergraphPhaseSet_name = map[int32]string{ 0: "HYPERGRAPH_PHASE_SET_VERTEX_ADDS", 1: "HYPERGRAPH_PHASE_SET_VERTEX_REMOVES", 2: "HYPERGRAPH_PHASE_SET_HYPEREDGE_ADDS", 3: "HYPERGRAPH_PHASE_SET_HYPEREDGE_REMOVES", } HypergraphPhaseSet_value = map[string]int32{ "HYPERGRAPH_PHASE_SET_VERTEX_ADDS": 0, "HYPERGRAPH_PHASE_SET_VERTEX_REMOVES": 1, "HYPERGRAPH_PHASE_SET_HYPEREDGE_ADDS": 2, "HYPERGRAPH_PHASE_SET_HYPEREDGE_REMOVES": 3, } ) func (x HypergraphPhaseSet) Enum() *HypergraphPhaseSet { p := new(HypergraphPhaseSet) *p = x return p } func (x HypergraphPhaseSet) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (HypergraphPhaseSet) Descriptor() protoreflect.EnumDescriptor { return file_application_proto_enumTypes[0].Descriptor() } func (HypergraphPhaseSet) Type() protoreflect.EnumType { return &file_application_proto_enumTypes[0] } func (x HypergraphPhaseSet) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use HypergraphPhaseSet.Descriptor instead. func (HypergraphPhaseSet) EnumDescriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{0} } // HypergraphSyncErrorCode enumerates possible sync errors. type HypergraphSyncErrorCode int32 const ( HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_UNKNOWN HypergraphSyncErrorCode = 0 HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_INVALID_SHARD_KEY HypergraphSyncErrorCode = 1 HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_INVALID_PATH HypergraphSyncErrorCode = 2 HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_NODE_NOT_FOUND HypergraphSyncErrorCode = 3 HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_SNAPSHOT_UNAVAILABLE HypergraphSyncErrorCode = 4 HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_INTERNAL HypergraphSyncErrorCode = 5 ) // Enum value maps for HypergraphSyncErrorCode. var ( HypergraphSyncErrorCode_name = map[int32]string{ 0: "HYPERGRAPH_SYNC_ERROR_UNKNOWN", 1: "HYPERGRAPH_SYNC_ERROR_INVALID_SHARD_KEY", 2: "HYPERGRAPH_SYNC_ERROR_INVALID_PATH", 3: "HYPERGRAPH_SYNC_ERROR_NODE_NOT_FOUND", 4: "HYPERGRAPH_SYNC_ERROR_SNAPSHOT_UNAVAILABLE", 5: "HYPERGRAPH_SYNC_ERROR_INTERNAL", } HypergraphSyncErrorCode_value = map[string]int32{ "HYPERGRAPH_SYNC_ERROR_UNKNOWN": 0, "HYPERGRAPH_SYNC_ERROR_INVALID_SHARD_KEY": 1, "HYPERGRAPH_SYNC_ERROR_INVALID_PATH": 2, "HYPERGRAPH_SYNC_ERROR_NODE_NOT_FOUND": 3, "HYPERGRAPH_SYNC_ERROR_SNAPSHOT_UNAVAILABLE": 4, "HYPERGRAPH_SYNC_ERROR_INTERNAL": 5, } ) func (x HypergraphSyncErrorCode) Enum() *HypergraphSyncErrorCode { p := new(HypergraphSyncErrorCode) *p = x return p } func (x HypergraphSyncErrorCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (HypergraphSyncErrorCode) Descriptor() protoreflect.EnumDescriptor { return file_application_proto_enumTypes[1].Descriptor() } func (HypergraphSyncErrorCode) Type() protoreflect.EnumType { return &file_application_proto_enumTypes[1] } func (x HypergraphSyncErrorCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use HypergraphSyncErrorCode.Descriptor instead. func (HypergraphSyncErrorCode) EnumDescriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{1} } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[0] 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 Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{0} } func (x *Message) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *Message) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *Message) GetPayload() []byte { if x != nil { return x.Payload } return nil } type HypersyncMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Leaves uint64 `protobuf:"varint,1,opt,name=leaves,proto3" json:"leaves,omitempty"` RootCommitment []byte `protobuf:"bytes,2,opt,name=root_commitment,json=rootCommitment,proto3" json:"root_commitment,omitempty"` } func (x *HypersyncMetadata) Reset() { *x = HypersyncMetadata{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypersyncMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypersyncMetadata) ProtoMessage() {} func (x *HypersyncMetadata) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[1] 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 HypersyncMetadata.ProtoReflect.Descriptor instead. func (*HypersyncMetadata) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{1} } func (x *HypersyncMetadata) GetLeaves() uint64 { if x != nil { return x.Leaves } return 0 } func (x *HypersyncMetadata) GetRootCommitment() []byte { if x != nil { return x.RootCommitment } return nil } // Defines the request for comparison of hypergraph data type HypergraphComparisonQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The shard to compare. ShardKey []byte `protobuf:"bytes,1,opt,name=shard_key,json=shardKey,proto3" json:"shard_key,omitempty"` // The phase set to compare. PhaseSet HypergraphPhaseSet `protobuf:"varint,2,opt,name=phase_set,json=phaseSet,proto3,enum=quilibrium.node.application.pb.HypergraphPhaseSet" json:"phase_set,omitempty"` // The branch path (sequence of nibble indices) in the vector commitment tree. Path []int32 `protobuf:"varint,3,rep,packed,name=path,proto3" json:"path,omitempty"` // The commitment for the node at this path. Commitment []byte `protobuf:"bytes,4,opt,name=commitment,proto3" json:"commitment,omitempty"` // For branch nodes, a list of its immediate children (by index) and their // commitments. When the list is empty, it means either the node is a leaf or // no children diff info is needed. Children []*BranchChild `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"` // If set, the comparison response will contain the data of leaves if present // in the results. IncludeLeafData bool `protobuf:"varint,6,opt,name=include_leaf_data,json=includeLeafData,proto3" json:"include_leaf_data,omitempty"` // The expected commit root the client wants to sync against. When set, the // server will attempt to find a snapshot with a matching commit root. If no // matching snapshot exists, the server may return the latest available. ExpectedRoot []byte `protobuf:"bytes,7,opt,name=expected_root,json=expectedRoot,proto3" json:"expected_root,omitempty"` } func (x *HypergraphComparisonQuery) Reset() { *x = HypergraphComparisonQuery{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphComparisonQuery) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphComparisonQuery) ProtoMessage() {} func (x *HypergraphComparisonQuery) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[2] 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 HypergraphComparisonQuery.ProtoReflect.Descriptor instead. func (*HypergraphComparisonQuery) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{2} } func (x *HypergraphComparisonQuery) GetShardKey() []byte { if x != nil { return x.ShardKey } return nil } func (x *HypergraphComparisonQuery) GetPhaseSet() HypergraphPhaseSet { if x != nil { return x.PhaseSet } return HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_ADDS } func (x *HypergraphComparisonQuery) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *HypergraphComparisonQuery) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } func (x *HypergraphComparisonQuery) GetChildren() []*BranchChild { if x != nil { return x.Children } return nil } func (x *HypergraphComparisonQuery) GetIncludeLeafData() bool { if x != nil { return x.IncludeLeafData } return false } func (x *HypergraphComparisonQuery) GetExpectedRoot() []byte { if x != nil { return x.ExpectedRoot } return nil } // Defines the response containing the commitment for a node and (optionally) // its immediate children. The children are identified by their index (0–63) and // their commitments. type HypergraphComparisonResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The branch path for this node. Path []int32 `protobuf:"varint,1,rep,packed,name=path,proto3" json:"path,omitempty"` // The commitment for the node at this path. Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` // If non-empty, a list of children for which the node can report commitments. // (For instance, if the node is a branch you may want to send the commitment // for each child.) Children []*BranchChild `protobuf:"bytes,3,rep,name=children,proto3" json:"children,omitempty"` // If set, indicates the response is for the root of the given set tree. IsRoot bool `protobuf:"varint,4,opt,name=is_root,json=isRoot,proto3" json:"is_root,omitempty"` } func (x *HypergraphComparisonResponse) Reset() { *x = HypergraphComparisonResponse{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphComparisonResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphComparisonResponse) ProtoMessage() {} func (x *HypergraphComparisonResponse) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[3] 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 HypergraphComparisonResponse.ProtoReflect.Descriptor instead. func (*HypergraphComparisonResponse) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{3} } func (x *HypergraphComparisonResponse) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *HypergraphComparisonResponse) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } func (x *HypergraphComparisonResponse) GetChildren() []*BranchChild { if x != nil { return x.Children } return nil } func (x *HypergraphComparisonResponse) GetIsRoot() bool { if x != nil { return x.IsRoot } return false } // Defines the child commitment. type BranchChild struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The index on the branch's children. Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // The commitment of the data. Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` } func (x *BranchChild) Reset() { *x = BranchChild{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BranchChild) String() string { return protoimpl.X.MessageStringOf(x) } func (*BranchChild) ProtoMessage() {} func (x *BranchChild) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[4] 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 BranchChild.ProtoReflect.Descriptor instead. func (*BranchChild) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{4} } func (x *BranchChild) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *BranchChild) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } // Defines the data of the leaf. type LeafData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The full key of the leaf. Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The value for the leaf. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // The hash target if any. HashTarget []byte `protobuf:"bytes,3,opt,name=hash_target,json=hashTarget,proto3" json:"hash_target,omitempty"` // The size, represented as big endian unsigned bytes. Size []byte `protobuf:"bytes,4,opt,name=size,proto3" json:"size,omitempty"` // The underlying data backing the leaf, if a vertex. UnderlyingData []byte `protobuf:"bytes,5,opt,name=underlying_data,json=underlyingData,proto3" json:"underlying_data,omitempty"` } func (x *LeafData) Reset() { *x = LeafData{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeafData) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeafData) ProtoMessage() {} func (x *LeafData) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[5] 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 LeafData.ProtoReflect.Descriptor instead. func (*LeafData) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{5} } func (x *LeafData) GetKey() []byte { if x != nil { return x.Key } return nil } func (x *LeafData) GetValue() []byte { if x != nil { return x.Value } return nil } func (x *LeafData) GetHashTarget() []byte { if x != nil { return x.HashTarget } return nil } func (x *LeafData) GetSize() []byte { if x != nil { return x.Size } return nil } func (x *LeafData) GetUnderlyingData() []byte { if x != nil { return x.UnderlyingData } return nil } // Defines the bidirectional sync payload options. type HypergraphComparison struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Payload: // // *HypergraphComparison_Query // *HypergraphComparison_Response // *HypergraphComparison_LeafData // *HypergraphComparison_Metadata Payload isHypergraphComparison_Payload `protobuf_oneof:"payload"` } func (x *HypergraphComparison) Reset() { *x = HypergraphComparison{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphComparison) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphComparison) ProtoMessage() {} func (x *HypergraphComparison) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[6] 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 HypergraphComparison.ProtoReflect.Descriptor instead. func (*HypergraphComparison) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{6} } func (m *HypergraphComparison) GetPayload() isHypergraphComparison_Payload { if m != nil { return m.Payload } return nil } func (x *HypergraphComparison) GetQuery() *HypergraphComparisonQuery { if x, ok := x.GetPayload().(*HypergraphComparison_Query); ok { return x.Query } return nil } func (x *HypergraphComparison) GetResponse() *HypergraphComparisonResponse { if x, ok := x.GetPayload().(*HypergraphComparison_Response); ok { return x.Response } return nil } func (x *HypergraphComparison) GetLeafData() *LeafData { if x, ok := x.GetPayload().(*HypergraphComparison_LeafData); ok { return x.LeafData } return nil } func (x *HypergraphComparison) GetMetadata() *HypersyncMetadata { if x, ok := x.GetPayload().(*HypergraphComparison_Metadata); ok { return x.Metadata } return nil } type isHypergraphComparison_Payload interface { isHypergraphComparison_Payload() } type HypergraphComparison_Query struct { Query *HypergraphComparisonQuery `protobuf:"bytes,1,opt,name=query,proto3,oneof"` } type HypergraphComparison_Response struct { Response *HypergraphComparisonResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof"` } type HypergraphComparison_LeafData struct { LeafData *LeafData `protobuf:"bytes,3,opt,name=leaf_data,json=leafData,proto3,oneof"` } type HypergraphComparison_Metadata struct { Metadata *HypersyncMetadata `protobuf:"bytes,4,opt,name=metadata,proto3,oneof"` } func (*HypergraphComparison_Query) isHypergraphComparison_Payload() {} func (*HypergraphComparison_Response) isHypergraphComparison_Payload() {} func (*HypergraphComparison_LeafData) isHypergraphComparison_Payload() {} func (*HypergraphComparison_Metadata) isHypergraphComparison_Payload() {} // Multiproof contains the cryptographic proof data type Multiproof struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Multicommitment []byte `protobuf:"bytes,1,opt,name=multicommitment,proto3" json:"multicommitment,omitempty"` Proof []byte `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` } func (x *Multiproof) Reset() { *x = Multiproof{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Multiproof) String() string { return protoimpl.X.MessageStringOf(x) } func (*Multiproof) ProtoMessage() {} func (x *Multiproof) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[7] 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 Multiproof.ProtoReflect.Descriptor instead. func (*Multiproof) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{7} } func (x *Multiproof) GetMulticommitment() []byte { if x != nil { return x.Multicommitment } return nil } func (x *Multiproof) GetProof() []byte { if x != nil { return x.Proof } return nil } // Path represents a sequence of indices through the tree type Path struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Indices []uint64 `protobuf:"varint,1,rep,packed,name=indices,proto3" json:"indices,omitempty"` } func (x *Path) Reset() { *x = Path{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Path) String() string { return protoimpl.X.MessageStringOf(x) } func (*Path) ProtoMessage() {} func (x *Path) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[8] 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 Path.ProtoReflect.Descriptor instead. func (*Path) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{8} } func (x *Path) GetIndices() []uint64 { if x != nil { return x.Indices } return nil } // TraversalSubProof contains proof data for a single path traversal type TraversalSubProof struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Commits [][]byte `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"` Ys [][]byte `protobuf:"bytes,2,rep,name=ys,proto3" json:"ys,omitempty"` Paths []*Path `protobuf:"bytes,3,rep,name=paths,proto3" json:"paths,omitempty"` } func (x *TraversalSubProof) Reset() { *x = TraversalSubProof{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TraversalSubProof) String() string { return protoimpl.X.MessageStringOf(x) } func (*TraversalSubProof) ProtoMessage() {} func (x *TraversalSubProof) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[9] 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 TraversalSubProof.ProtoReflect.Descriptor instead. func (*TraversalSubProof) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{9} } func (x *TraversalSubProof) GetCommits() [][]byte { if x != nil { return x.Commits } return nil } func (x *TraversalSubProof) GetYs() [][]byte { if x != nil { return x.Ys } return nil } func (x *TraversalSubProof) GetPaths() []*Path { if x != nil { return x.Paths } return nil } // TraversalProof is the main proof structure for tree traversals type TraversalProof struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Multiproof *Multiproof `protobuf:"bytes,1,opt,name=multiproof,proto3" json:"multiproof,omitempty"` SubProofs []*TraversalSubProof `protobuf:"bytes,2,rep,name=sub_proofs,json=subProofs,proto3" json:"sub_proofs,omitempty"` } func (x *TraversalProof) Reset() { *x = TraversalProof{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TraversalProof) String() string { return protoimpl.X.MessageStringOf(x) } func (*TraversalProof) ProtoMessage() {} func (x *TraversalProof) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[10] 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 TraversalProof.ProtoReflect.Descriptor instead. func (*TraversalProof) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{10} } func (x *TraversalProof) GetMultiproof() *Multiproof { if x != nil { return x.Multiproof } return nil } func (x *TraversalProof) GetSubProofs() []*TraversalSubProof { if x != nil { return x.SubProofs } return nil } type GetChildrenForPathRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The shard key ShardKey []byte `protobuf:"bytes,1,opt,name=shard_key,json=shardKey,proto3" json:"shard_key,omitempty"` // The path to request Path []uint32 `protobuf:"varint,2,rep,packed,name=path,proto3" json:"path,omitempty"` // The phase set to compare. PhaseSet HypergraphPhaseSet `protobuf:"varint,3,opt,name=phase_set,json=phaseSet,proto3,enum=quilibrium.node.application.pb.HypergraphPhaseSet" json:"phase_set,omitempty"` } func (x *GetChildrenForPathRequest) Reset() { *x = GetChildrenForPathRequest{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetChildrenForPathRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetChildrenForPathRequest) ProtoMessage() {} func (x *GetChildrenForPathRequest) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[11] 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 GetChildrenForPathRequest.ProtoReflect.Descriptor instead. func (*GetChildrenForPathRequest) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{11} } func (x *GetChildrenForPathRequest) GetShardKey() []byte { if x != nil { return x.ShardKey } return nil } func (x *GetChildrenForPathRequest) GetPath() []uint32 { if x != nil { return x.Path } return nil } func (x *GetChildrenForPathRequest) GetPhaseSet() HypergraphPhaseSet { if x != nil { return x.PhaseSet } return HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_ADDS } type TreePathLeaf struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The key associated with the leaf Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The raw value associated with the leaf Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // The hash target of the leaf, if applicable HashTarget []byte `protobuf:"bytes,3,opt,name=hash_target,json=hashTarget,proto3" json:"hash_target,omitempty"` // The commitment of the leaf Commitment []byte `protobuf:"bytes,4,opt,name=commitment,proto3" json:"commitment,omitempty"` // The big endian encoded size of the leaf Size []byte `protobuf:"bytes,5,opt,name=size,proto3" json:"size,omitempty"` } func (x *TreePathLeaf) Reset() { *x = TreePathLeaf{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TreePathLeaf) String() string { return protoimpl.X.MessageStringOf(x) } func (*TreePathLeaf) ProtoMessage() {} func (x *TreePathLeaf) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[12] 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 TreePathLeaf.ProtoReflect.Descriptor instead. func (*TreePathLeaf) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{12} } func (x *TreePathLeaf) GetKey() []byte { if x != nil { return x.Key } return nil } func (x *TreePathLeaf) GetValue() []byte { if x != nil { return x.Value } return nil } func (x *TreePathLeaf) GetHashTarget() []byte { if x != nil { return x.HashTarget } return nil } func (x *TreePathLeaf) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } func (x *TreePathLeaf) GetSize() []byte { if x != nil { return x.Size } return nil } type TreePathBranch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The prefix segment of the branch that exists only within the branch Prefix []uint32 `protobuf:"varint,1,rep,packed,name=prefix,proto3" json:"prefix,omitempty"` // The commitment of the branch Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` // The big endian encoded size of the branch Size []byte `protobuf:"bytes,3,opt,name=size,proto3" json:"size,omitempty"` // The number of leaves under the branch LeafCount uint64 `protobuf:"varint,4,opt,name=leaf_count,json=leafCount,proto3" json:"leaf_count,omitempty"` // The longest branch length under the branch LongestBranch uint32 `protobuf:"varint,5,opt,name=longest_branch,json=longestBranch,proto3" json:"longest_branch,omitempty"` // The full path prefix to the branch FullPrefix []uint32 `protobuf:"varint,6,rep,packed,name=full_prefix,json=fullPrefix,proto3" json:"full_prefix,omitempty"` } func (x *TreePathBranch) Reset() { *x = TreePathBranch{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TreePathBranch) String() string { return protoimpl.X.MessageStringOf(x) } func (*TreePathBranch) ProtoMessage() {} func (x *TreePathBranch) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[13] 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 TreePathBranch.ProtoReflect.Descriptor instead. func (*TreePathBranch) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{13} } func (x *TreePathBranch) GetPrefix() []uint32 { if x != nil { return x.Prefix } return nil } func (x *TreePathBranch) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } func (x *TreePathBranch) GetSize() []byte { if x != nil { return x.Size } return nil } func (x *TreePathBranch) GetLeafCount() uint64 { if x != nil { return x.LeafCount } return 0 } func (x *TreePathBranch) GetLongestBranch() uint32 { if x != nil { return x.LongestBranch } return 0 } func (x *TreePathBranch) GetFullPrefix() []uint32 { if x != nil { return x.FullPrefix } return nil } type TreePathSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // Types that are assignable to Segment: // // *TreePathSegment_Leaf // *TreePathSegment_Branch Segment isTreePathSegment_Segment `protobuf_oneof:"segment"` } func (x *TreePathSegment) Reset() { *x = TreePathSegment{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TreePathSegment) String() string { return protoimpl.X.MessageStringOf(x) } func (*TreePathSegment) ProtoMessage() {} func (x *TreePathSegment) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[14] 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 TreePathSegment.ProtoReflect.Descriptor instead. func (*TreePathSegment) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{14} } func (x *TreePathSegment) GetIndex() uint32 { if x != nil { return x.Index } return 0 } func (m *TreePathSegment) GetSegment() isTreePathSegment_Segment { if m != nil { return m.Segment } return nil } func (x *TreePathSegment) GetLeaf() *TreePathLeaf { if x, ok := x.GetSegment().(*TreePathSegment_Leaf); ok { return x.Leaf } return nil } func (x *TreePathSegment) GetBranch() *TreePathBranch { if x, ok := x.GetSegment().(*TreePathSegment_Branch); ok { return x.Branch } return nil } type isTreePathSegment_Segment interface { isTreePathSegment_Segment() } type TreePathSegment_Leaf struct { Leaf *TreePathLeaf `protobuf:"bytes,2,opt,name=leaf,proto3,oneof"` } type TreePathSegment_Branch struct { Branch *TreePathBranch `protobuf:"bytes,3,opt,name=branch,proto3,oneof"` } func (*TreePathSegment_Leaf) isTreePathSegment_Segment() {} func (*TreePathSegment_Branch) isTreePathSegment_Segment() {} type TreePathSegments struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Segments []*TreePathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } func (x *TreePathSegments) Reset() { *x = TreePathSegments{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TreePathSegments) String() string { return protoimpl.X.MessageStringOf(x) } func (*TreePathSegments) ProtoMessage() {} func (x *TreePathSegments) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[15] 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 TreePathSegments.ProtoReflect.Descriptor instead. func (*TreePathSegments) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{15} } func (x *TreePathSegments) GetSegments() []*TreePathSegment { if x != nil { return x.Segments } return nil } type GetChildrenForPathResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PathSegments []*TreePathSegments `protobuf:"bytes,1,rep,name=path_segments,json=pathSegments,proto3" json:"path_segments,omitempty"` } func (x *GetChildrenForPathResponse) Reset() { *x = GetChildrenForPathResponse{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetChildrenForPathResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetChildrenForPathResponse) ProtoMessage() {} func (x *GetChildrenForPathResponse) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[16] 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 GetChildrenForPathResponse.ProtoReflect.Descriptor instead. func (*GetChildrenForPathResponse) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{16} } func (x *GetChildrenForPathResponse) GetPathSegments() []*TreePathSegments { if x != nil { return x.PathSegments } return nil } // HypergraphSyncQuery wraps request types for the client-driven sync RPC. type HypergraphSyncQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Request: // // *HypergraphSyncQuery_GetBranch // *HypergraphSyncQuery_GetLeaves Request isHypergraphSyncQuery_Request `protobuf_oneof:"request"` } func (x *HypergraphSyncQuery) Reset() { *x = HypergraphSyncQuery{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncQuery) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncQuery) ProtoMessage() {} func (x *HypergraphSyncQuery) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[17] 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 HypergraphSyncQuery.ProtoReflect.Descriptor instead. func (*HypergraphSyncQuery) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{17} } func (m *HypergraphSyncQuery) GetRequest() isHypergraphSyncQuery_Request { if m != nil { return m.Request } return nil } func (x *HypergraphSyncQuery) GetGetBranch() *HypergraphSyncGetBranchRequest { if x, ok := x.GetRequest().(*HypergraphSyncQuery_GetBranch); ok { return x.GetBranch } return nil } func (x *HypergraphSyncQuery) GetGetLeaves() *HypergraphSyncGetLeavesRequest { if x, ok := x.GetRequest().(*HypergraphSyncQuery_GetLeaves); ok { return x.GetLeaves } return nil } type isHypergraphSyncQuery_Request interface { isHypergraphSyncQuery_Request() } type HypergraphSyncQuery_GetBranch struct { GetBranch *HypergraphSyncGetBranchRequest `protobuf:"bytes,1,opt,name=get_branch,json=getBranch,proto3,oneof"` } type HypergraphSyncQuery_GetLeaves struct { GetLeaves *HypergraphSyncGetLeavesRequest `protobuf:"bytes,2,opt,name=get_leaves,json=getLeaves,proto3,oneof"` } func (*HypergraphSyncQuery_GetBranch) isHypergraphSyncQuery_Request() {} func (*HypergraphSyncQuery_GetLeaves) isHypergraphSyncQuery_Request() {} // HypergraphSyncResponse wraps response types for the client-driven sync RPC. type HypergraphSyncResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Response: // // *HypergraphSyncResponse_Branch // *HypergraphSyncResponse_Leaves // *HypergraphSyncResponse_Error Response isHypergraphSyncResponse_Response `protobuf_oneof:"response"` } func (x *HypergraphSyncResponse) Reset() { *x = HypergraphSyncResponse{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncResponse) ProtoMessage() {} func (x *HypergraphSyncResponse) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[18] 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 HypergraphSyncResponse.ProtoReflect.Descriptor instead. func (*HypergraphSyncResponse) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{18} } func (m *HypergraphSyncResponse) GetResponse() isHypergraphSyncResponse_Response { if m != nil { return m.Response } return nil } func (x *HypergraphSyncResponse) GetBranch() *HypergraphSyncBranchResponse { if x, ok := x.GetResponse().(*HypergraphSyncResponse_Branch); ok { return x.Branch } return nil } func (x *HypergraphSyncResponse) GetLeaves() *HypergraphSyncLeavesResponse { if x, ok := x.GetResponse().(*HypergraphSyncResponse_Leaves); ok { return x.Leaves } return nil } func (x *HypergraphSyncResponse) GetError() *HypergraphSyncError { if x, ok := x.GetResponse().(*HypergraphSyncResponse_Error); ok { return x.Error } return nil } type isHypergraphSyncResponse_Response interface { isHypergraphSyncResponse_Response() } type HypergraphSyncResponse_Branch struct { Branch *HypergraphSyncBranchResponse `protobuf:"bytes,1,opt,name=branch,proto3,oneof"` } type HypergraphSyncResponse_Leaves struct { Leaves *HypergraphSyncLeavesResponse `protobuf:"bytes,2,opt,name=leaves,proto3,oneof"` } type HypergraphSyncResponse_Error struct { Error *HypergraphSyncError `protobuf:"bytes,3,opt,name=error,proto3,oneof"` } func (*HypergraphSyncResponse_Branch) isHypergraphSyncResponse_Response() {} func (*HypergraphSyncResponse_Leaves) isHypergraphSyncResponse_Response() {} func (*HypergraphSyncResponse_Error) isHypergraphSyncResponse_Response() {} // HypergraphSyncGetBranchRequest queries for branch information at a path. type HypergraphSyncGetBranchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The shard key (35 bytes: L1 bloom filter (3) + L2 app address (32)). ShardKey []byte `protobuf:"bytes,1,opt,name=shard_key,json=shardKey,proto3" json:"shard_key,omitempty"` // The phase set to query. PhaseSet HypergraphPhaseSet `protobuf:"varint,2,opt,name=phase_set,json=phaseSet,proto3,enum=quilibrium.node.application.pb.HypergraphPhaseSet" json:"phase_set,omitempty"` // The path to query. Empty path queries the root. Path []int32 `protobuf:"varint,3,rep,packed,name=path,proto3" json:"path,omitempty"` // The expected root commitment the client wants to sync against. When set, // the server will attempt to find a snapshot with a matching root. If empty, // the server uses the latest available snapshot. ExpectedRoot []byte `protobuf:"bytes,4,opt,name=expected_root,json=expectedRoot,proto3" json:"expected_root,omitempty"` } func (x *HypergraphSyncGetBranchRequest) Reset() { *x = HypergraphSyncGetBranchRequest{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncGetBranchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncGetBranchRequest) ProtoMessage() {} func (x *HypergraphSyncGetBranchRequest) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[19] 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 HypergraphSyncGetBranchRequest.ProtoReflect.Descriptor instead. func (*HypergraphSyncGetBranchRequest) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{19} } func (x *HypergraphSyncGetBranchRequest) GetShardKey() []byte { if x != nil { return x.ShardKey } return nil } func (x *HypergraphSyncGetBranchRequest) GetPhaseSet() HypergraphPhaseSet { if x != nil { return x.PhaseSet } return HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_ADDS } func (x *HypergraphSyncGetBranchRequest) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *HypergraphSyncGetBranchRequest) GetExpectedRoot() []byte { if x != nil { return x.ExpectedRoot } return nil } // HypergraphSyncBranchResponse contains branch information at the queried path. type HypergraphSyncBranchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The full path to this node, including any compressed prefix. // This may be longer than the requested path due to path compression. FullPath []int32 `protobuf:"varint,1,rep,packed,name=full_path,json=fullPath,proto3" json:"full_path,omitempty"` // The commitment (hash) for this node. Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` // Child information. Empty if this is a leaf node. Children []*HypergraphSyncChildInfo `protobuf:"bytes,3,rep,name=children,proto3" json:"children,omitempty"` // True if this node is a leaf (has no children). IsLeaf bool `protobuf:"varint,4,opt,name=is_leaf,json=isLeaf,proto3" json:"is_leaf,omitempty"` // The number of leaves under this node (for progress estimation). LeafCount uint64 `protobuf:"varint,5,opt,name=leaf_count,json=leafCount,proto3" json:"leaf_count,omitempty"` } func (x *HypergraphSyncBranchResponse) Reset() { *x = HypergraphSyncBranchResponse{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncBranchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncBranchResponse) ProtoMessage() {} func (x *HypergraphSyncBranchResponse) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[20] 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 HypergraphSyncBranchResponse.ProtoReflect.Descriptor instead. func (*HypergraphSyncBranchResponse) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{20} } func (x *HypergraphSyncBranchResponse) GetFullPath() []int32 { if x != nil { return x.FullPath } return nil } func (x *HypergraphSyncBranchResponse) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } func (x *HypergraphSyncBranchResponse) GetChildren() []*HypergraphSyncChildInfo { if x != nil { return x.Children } return nil } func (x *HypergraphSyncBranchResponse) GetIsLeaf() bool { if x != nil { return x.IsLeaf } return false } func (x *HypergraphSyncBranchResponse) GetLeafCount() uint64 { if x != nil { return x.LeafCount } return 0 } // HypergraphSyncChildInfo contains summary information about a child node. type HypergraphSyncChildInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The child index (0-63 for a 64-ary tree). Index int32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // The commitment (hash) for this child. Commitment []byte `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` } func (x *HypergraphSyncChildInfo) Reset() { *x = HypergraphSyncChildInfo{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncChildInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncChildInfo) ProtoMessage() {} func (x *HypergraphSyncChildInfo) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[21] 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 HypergraphSyncChildInfo.ProtoReflect.Descriptor instead. func (*HypergraphSyncChildInfo) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{21} } func (x *HypergraphSyncChildInfo) GetIndex() int32 { if x != nil { return x.Index } return 0 } func (x *HypergraphSyncChildInfo) GetCommitment() []byte { if x != nil { return x.Commitment } return nil } // HypergraphSyncGetLeavesRequest requests all leaves under a subtree. type HypergraphSyncGetLeavesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The shard key. ShardKey []byte `protobuf:"bytes,1,opt,name=shard_key,json=shardKey,proto3" json:"shard_key,omitempty"` // The phase set to query. PhaseSet HypergraphPhaseSet `protobuf:"varint,2,opt,name=phase_set,json=phaseSet,proto3,enum=quilibrium.node.application.pb.HypergraphPhaseSet" json:"phase_set,omitempty"` // The path to the subtree root. Path []int32 `protobuf:"varint,3,rep,packed,name=path,proto3" json:"path,omitempty"` // Maximum number of leaves to return (0 = server default). MaxLeaves uint32 `protobuf:"varint,4,opt,name=max_leaves,json=maxLeaves,proto3" json:"max_leaves,omitempty"` // Continuation token for pagination. Empty for first request. ContinuationToken []byte `protobuf:"bytes,5,opt,name=continuation_token,json=continuationToken,proto3" json:"continuation_token,omitempty"` // The expected root commitment the client wants to sync against. When set, // the server will attempt to find a snapshot with a matching root. If empty, // the server uses the latest available snapshot. ExpectedRoot []byte `protobuf:"bytes,6,opt,name=expected_root,json=expectedRoot,proto3" json:"expected_root,omitempty"` } func (x *HypergraphSyncGetLeavesRequest) Reset() { *x = HypergraphSyncGetLeavesRequest{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncGetLeavesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncGetLeavesRequest) ProtoMessage() {} func (x *HypergraphSyncGetLeavesRequest) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HypergraphSyncGetLeavesRequest.ProtoReflect.Descriptor instead. func (*HypergraphSyncGetLeavesRequest) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{22} } func (x *HypergraphSyncGetLeavesRequest) GetShardKey() []byte { if x != nil { return x.ShardKey } return nil } func (x *HypergraphSyncGetLeavesRequest) GetPhaseSet() HypergraphPhaseSet { if x != nil { return x.PhaseSet } return HypergraphPhaseSet_HYPERGRAPH_PHASE_SET_VERTEX_ADDS } func (x *HypergraphSyncGetLeavesRequest) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *HypergraphSyncGetLeavesRequest) GetMaxLeaves() uint32 { if x != nil { return x.MaxLeaves } return 0 } func (x *HypergraphSyncGetLeavesRequest) GetContinuationToken() []byte { if x != nil { return x.ContinuationToken } return nil } func (x *HypergraphSyncGetLeavesRequest) GetExpectedRoot() []byte { if x != nil { return x.ExpectedRoot } return nil } // HypergraphSyncLeavesResponse contains leaves from the requested subtree. type HypergraphSyncLeavesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Echoed path from the request. Path []int32 `protobuf:"varint,1,rep,packed,name=path,proto3" json:"path,omitempty"` // The leaves under this path (reuses existing LeafData message). Leaves []*LeafData `protobuf:"bytes,2,rep,name=leaves,proto3" json:"leaves,omitempty"` // Continuation token if more leaves remain. Empty if this is the last batch. ContinuationToken []byte `protobuf:"bytes,3,opt,name=continuation_token,json=continuationToken,proto3" json:"continuation_token,omitempty"` // Total number of leaves under this path (for progress tracking). TotalLeaves uint64 `protobuf:"varint,4,opt,name=total_leaves,json=totalLeaves,proto3" json:"total_leaves,omitempty"` } func (x *HypergraphSyncLeavesResponse) Reset() { *x = HypergraphSyncLeavesResponse{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncLeavesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncLeavesResponse) ProtoMessage() {} func (x *HypergraphSyncLeavesResponse) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HypergraphSyncLeavesResponse.ProtoReflect.Descriptor instead. func (*HypergraphSyncLeavesResponse) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{23} } func (x *HypergraphSyncLeavesResponse) GetPath() []int32 { if x != nil { return x.Path } return nil } func (x *HypergraphSyncLeavesResponse) GetLeaves() []*LeafData { if x != nil { return x.Leaves } return nil } func (x *HypergraphSyncLeavesResponse) GetContinuationToken() []byte { if x != nil { return x.ContinuationToken } return nil } func (x *HypergraphSyncLeavesResponse) GetTotalLeaves() uint64 { if x != nil { return x.TotalLeaves } return 0 } // HypergraphSyncError reports an error during sync. type HypergraphSyncError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Error code for programmatic handling. Code HypergraphSyncErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=quilibrium.node.application.pb.HypergraphSyncErrorCode" json:"code,omitempty"` // Human-readable error message. Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` // The path where the error occurred, if applicable. Path []int32 `protobuf:"varint,3,rep,packed,name=path,proto3" json:"path,omitempty"` } func (x *HypergraphSyncError) Reset() { *x = HypergraphSyncError{} if protoimpl.UnsafeEnabled { mi := &file_application_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HypergraphSyncError) String() string { return protoimpl.X.MessageStringOf(x) } func (*HypergraphSyncError) ProtoMessage() {} func (x *HypergraphSyncError) ProtoReflect() protoreflect.Message { mi := &file_application_proto_msgTypes[24] 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 HypergraphSyncError.ProtoReflect.Descriptor instead. func (*HypergraphSyncError) Descriptor() ([]byte, []int) { return file_application_proto_rawDescGZIP(), []int{24} } func (x *HypergraphSyncError) GetCode() HypergraphSyncErrorCode { if x != nil { return x.Code } return HypergraphSyncErrorCode_HYPERGRAPH_SYNC_ERROR_UNKNOWN } func (x *HypergraphSyncError) GetMessage() string { if x != nil { return x.Message } return "" } func (x *HypergraphSyncError) GetPath() []int32 { if x != nil { return x.Path } return nil } var File_application_proto protoreflect.FileDescriptor var file_application_proto_rawDesc = []byte{ 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x22, 0x51, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x54, 0x0a, 0x11, 0x48, 0x79, 0x70, 0x65, 0x72, 0x73, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xd7, 0x02, 0x0a, 0x19, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x65, 0x61, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x1c, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x43, 0x0a, 0x0b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x4c, 0x65, 0x61, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0xea, 0x02, 0x0a, 0x14, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x65, 0x61, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x73, 0x79, 0x6e, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4c, 0x0a, 0x0a, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x20, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x02, 0x79, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x50, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x09, 0x73, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x42, 0x0a, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x61, 0x66, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x12, 0x48, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x10, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5f, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x5f, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa1, 0x02, 0x0a, 0x16, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x56, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x1e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0xe8, 0x01, 0x0a, 0x1c, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x02, 0x0a, 0x1e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x1c, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x65, 0x61, 0x66, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x2a, 0xb8, 0x01, 0x0a, 0x12, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x50, 0x68, 0x61, 0x73, 0x65, 0x53, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x20, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x41, 0x44, 0x44, 0x53, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x53, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x48, 0x59, 0x50, 0x45, 0x52, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x53, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x48, 0x59, 0x50, 0x45, 0x52, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x53, 0x10, 0x03, 0x2a, 0x8f, 0x02, 0x0a, 0x17, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x54, 0x48, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x2e, 0x0a, 0x2a, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x59, 0x50, 0x45, 0x52, 0x47, 0x52, 0x41, 0x50, 0x48, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x05, 0x32, 0xaa, 0x03, 0x0a, 0x1b, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7d, 0x0a, 0x0b, 0x48, 0x79, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x34, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x1a, 0x34, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x28, 0x01, 0x30, 0x01, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x39, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7e, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x33, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x36, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x79, 0x70, 0x65, 0x72, 0x67, 0x72, 0x61, 0x70, 0x68, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x3a, 0x5a, 0x38, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x71, 0x75, 0x69, 0x6c, 0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_application_proto_rawDescOnce sync.Once file_application_proto_rawDescData = file_application_proto_rawDesc ) func file_application_proto_rawDescGZIP() []byte { file_application_proto_rawDescOnce.Do(func() { file_application_proto_rawDescData = protoimpl.X.CompressGZIP(file_application_proto_rawDescData) }) return file_application_proto_rawDescData } var file_application_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_application_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_application_proto_goTypes = []interface{}{ (HypergraphPhaseSet)(0), // 0: quilibrium.node.application.pb.HypergraphPhaseSet (HypergraphSyncErrorCode)(0), // 1: quilibrium.node.application.pb.HypergraphSyncErrorCode (*Message)(nil), // 2: quilibrium.node.application.pb.Message (*HypersyncMetadata)(nil), // 3: quilibrium.node.application.pb.HypersyncMetadata (*HypergraphComparisonQuery)(nil), // 4: quilibrium.node.application.pb.HypergraphComparisonQuery (*HypergraphComparisonResponse)(nil), // 5: quilibrium.node.application.pb.HypergraphComparisonResponse (*BranchChild)(nil), // 6: quilibrium.node.application.pb.BranchChild (*LeafData)(nil), // 7: quilibrium.node.application.pb.LeafData (*HypergraphComparison)(nil), // 8: quilibrium.node.application.pb.HypergraphComparison (*Multiproof)(nil), // 9: quilibrium.node.application.pb.Multiproof (*Path)(nil), // 10: quilibrium.node.application.pb.Path (*TraversalSubProof)(nil), // 11: quilibrium.node.application.pb.TraversalSubProof (*TraversalProof)(nil), // 12: quilibrium.node.application.pb.TraversalProof (*GetChildrenForPathRequest)(nil), // 13: quilibrium.node.application.pb.GetChildrenForPathRequest (*TreePathLeaf)(nil), // 14: quilibrium.node.application.pb.TreePathLeaf (*TreePathBranch)(nil), // 15: quilibrium.node.application.pb.TreePathBranch (*TreePathSegment)(nil), // 16: quilibrium.node.application.pb.TreePathSegment (*TreePathSegments)(nil), // 17: quilibrium.node.application.pb.TreePathSegments (*GetChildrenForPathResponse)(nil), // 18: quilibrium.node.application.pb.GetChildrenForPathResponse (*HypergraphSyncQuery)(nil), // 19: quilibrium.node.application.pb.HypergraphSyncQuery (*HypergraphSyncResponse)(nil), // 20: quilibrium.node.application.pb.HypergraphSyncResponse (*HypergraphSyncGetBranchRequest)(nil), // 21: quilibrium.node.application.pb.HypergraphSyncGetBranchRequest (*HypergraphSyncBranchResponse)(nil), // 22: quilibrium.node.application.pb.HypergraphSyncBranchResponse (*HypergraphSyncChildInfo)(nil), // 23: quilibrium.node.application.pb.HypergraphSyncChildInfo (*HypergraphSyncGetLeavesRequest)(nil), // 24: quilibrium.node.application.pb.HypergraphSyncGetLeavesRequest (*HypergraphSyncLeavesResponse)(nil), // 25: quilibrium.node.application.pb.HypergraphSyncLeavesResponse (*HypergraphSyncError)(nil), // 26: quilibrium.node.application.pb.HypergraphSyncError } var file_application_proto_depIdxs = []int32{ 0, // 0: quilibrium.node.application.pb.HypergraphComparisonQuery.phase_set:type_name -> quilibrium.node.application.pb.HypergraphPhaseSet 6, // 1: quilibrium.node.application.pb.HypergraphComparisonQuery.children:type_name -> quilibrium.node.application.pb.BranchChild 6, // 2: quilibrium.node.application.pb.HypergraphComparisonResponse.children:type_name -> quilibrium.node.application.pb.BranchChild 4, // 3: quilibrium.node.application.pb.HypergraphComparison.query:type_name -> quilibrium.node.application.pb.HypergraphComparisonQuery 5, // 4: quilibrium.node.application.pb.HypergraphComparison.response:type_name -> quilibrium.node.application.pb.HypergraphComparisonResponse 7, // 5: quilibrium.node.application.pb.HypergraphComparison.leaf_data:type_name -> quilibrium.node.application.pb.LeafData 3, // 6: quilibrium.node.application.pb.HypergraphComparison.metadata:type_name -> quilibrium.node.application.pb.HypersyncMetadata 10, // 7: quilibrium.node.application.pb.TraversalSubProof.paths:type_name -> quilibrium.node.application.pb.Path 9, // 8: quilibrium.node.application.pb.TraversalProof.multiproof:type_name -> quilibrium.node.application.pb.Multiproof 11, // 9: quilibrium.node.application.pb.TraversalProof.sub_proofs:type_name -> quilibrium.node.application.pb.TraversalSubProof 0, // 10: quilibrium.node.application.pb.GetChildrenForPathRequest.phase_set:type_name -> quilibrium.node.application.pb.HypergraphPhaseSet 14, // 11: quilibrium.node.application.pb.TreePathSegment.leaf:type_name -> quilibrium.node.application.pb.TreePathLeaf 15, // 12: quilibrium.node.application.pb.TreePathSegment.branch:type_name -> quilibrium.node.application.pb.TreePathBranch 16, // 13: quilibrium.node.application.pb.TreePathSegments.segments:type_name -> quilibrium.node.application.pb.TreePathSegment 17, // 14: quilibrium.node.application.pb.GetChildrenForPathResponse.path_segments:type_name -> quilibrium.node.application.pb.TreePathSegments 21, // 15: quilibrium.node.application.pb.HypergraphSyncQuery.get_branch:type_name -> quilibrium.node.application.pb.HypergraphSyncGetBranchRequest 24, // 16: quilibrium.node.application.pb.HypergraphSyncQuery.get_leaves:type_name -> quilibrium.node.application.pb.HypergraphSyncGetLeavesRequest 22, // 17: quilibrium.node.application.pb.HypergraphSyncResponse.branch:type_name -> quilibrium.node.application.pb.HypergraphSyncBranchResponse 25, // 18: quilibrium.node.application.pb.HypergraphSyncResponse.leaves:type_name -> quilibrium.node.application.pb.HypergraphSyncLeavesResponse 26, // 19: quilibrium.node.application.pb.HypergraphSyncResponse.error:type_name -> quilibrium.node.application.pb.HypergraphSyncError 0, // 20: quilibrium.node.application.pb.HypergraphSyncGetBranchRequest.phase_set:type_name -> quilibrium.node.application.pb.HypergraphPhaseSet 23, // 21: quilibrium.node.application.pb.HypergraphSyncBranchResponse.children:type_name -> quilibrium.node.application.pb.HypergraphSyncChildInfo 0, // 22: quilibrium.node.application.pb.HypergraphSyncGetLeavesRequest.phase_set:type_name -> quilibrium.node.application.pb.HypergraphPhaseSet 7, // 23: quilibrium.node.application.pb.HypergraphSyncLeavesResponse.leaves:type_name -> quilibrium.node.application.pb.LeafData 1, // 24: quilibrium.node.application.pb.HypergraphSyncError.code:type_name -> quilibrium.node.application.pb.HypergraphSyncErrorCode 8, // 25: quilibrium.node.application.pb.HypergraphComparisonService.HyperStream:input_type -> quilibrium.node.application.pb.HypergraphComparison 13, // 26: quilibrium.node.application.pb.HypergraphComparisonService.GetChildrenForPath:input_type -> quilibrium.node.application.pb.GetChildrenForPathRequest 19, // 27: quilibrium.node.application.pb.HypergraphComparisonService.PerformSync:input_type -> quilibrium.node.application.pb.HypergraphSyncQuery 8, // 28: quilibrium.node.application.pb.HypergraphComparisonService.HyperStream:output_type -> quilibrium.node.application.pb.HypergraphComparison 18, // 29: quilibrium.node.application.pb.HypergraphComparisonService.GetChildrenForPath:output_type -> quilibrium.node.application.pb.GetChildrenForPathResponse 20, // 30: quilibrium.node.application.pb.HypergraphComparisonService.PerformSync:output_type -> quilibrium.node.application.pb.HypergraphSyncResponse 28, // [28:31] is the sub-list for method output_type 25, // [25:28] is the sub-list for method input_type 25, // [25:25] is the sub-list for extension type_name 25, // [25:25] is the sub-list for extension extendee 0, // [0:25] is the sub-list for field type_name } func init() { file_application_proto_init() } func file_application_proto_init() { if File_application_proto != nil { return } if !protoimpl.UnsafeEnabled { file_application_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypersyncMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphComparisonQuery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphComparisonResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BranchChild); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeafData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphComparison); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Multiproof); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Path); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TraversalSubProof); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TraversalProof); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChildrenForPathRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreePathLeaf); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreePathBranch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreePathSegment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TreePathSegments); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChildrenForPathResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncQuery); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncGetBranchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncBranchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncChildInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncGetLeavesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncLeavesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_application_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HypergraphSyncError); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_application_proto_msgTypes[6].OneofWrappers = []interface{}{ (*HypergraphComparison_Query)(nil), (*HypergraphComparison_Response)(nil), (*HypergraphComparison_LeafData)(nil), (*HypergraphComparison_Metadata)(nil), } file_application_proto_msgTypes[14].OneofWrappers = []interface{}{ (*TreePathSegment_Leaf)(nil), (*TreePathSegment_Branch)(nil), } file_application_proto_msgTypes[17].OneofWrappers = []interface{}{ (*HypergraphSyncQuery_GetBranch)(nil), (*HypergraphSyncQuery_GetLeaves)(nil), } file_application_proto_msgTypes[18].OneofWrappers = []interface{}{ (*HypergraphSyncResponse_Branch)(nil), (*HypergraphSyncResponse_Leaves)(nil), (*HypergraphSyncResponse_Error)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_application_proto_rawDesc, NumEnums: 2, NumMessages: 25, NumExtensions: 0, NumServices: 1, }, GoTypes: file_application_proto_goTypes, DependencyIndexes: file_application_proto_depIdxs, EnumInfos: file_application_proto_enumTypes, MessageInfos: file_application_proto_msgTypes, }.Build() File_application_proto = out.File file_application_proto_rawDesc = nil file_application_proto_goTypes = nil file_application_proto_depIdxs = nil }