diff --git a/abci/types/types.pb.go b/abci/types/types.pb.go
index f60329ec9..8f7432f1a 100644
--- a/abci/types/types.pb.go
+++ b/abci/types/types.pb.go
@@ -124,7 +124,7 @@ func (x ResponseOfferSnapshot_Result) String() string {
}
func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{25, 0}
+ return fileDescriptor_252557cfdd89a31a, []int{26, 0}
}
type ResponseApplySnapshotChunk_Result int32
@@ -164,7 +164,7 @@ func (x ResponseApplySnapshotChunk_Result) String() string {
}
func (ResponseApplySnapshotChunk_Result) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{27, 0}
+ return fileDescriptor_252557cfdd89a31a, []int{28, 0}
}
type ResponseProcessProposal_ProposalStatus int32
@@ -192,7 +192,7 @@ func (x ResponseProcessProposal_ProposalStatus) String() string {
}
func (ResponseProcessProposal_ProposalStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{29, 0}
+ return fileDescriptor_252557cfdd89a31a, []int{31, 0}
}
type ResponseVerifyVoteExtension_VerifyStatus int32
@@ -220,7 +220,7 @@ func (x ResponseVerifyVoteExtension_VerifyStatus) String() string {
}
func (ResponseVerifyVoteExtension_VerifyStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{32, 0}
+ return fileDescriptor_252557cfdd89a31a, []int{34, 0}
}
// TxAction contains App-provided information on what to do with a transaction that is part of a raw proposal
@@ -255,7 +255,7 @@ func (x TxRecord_TxAction) String() string {
}
func (TxRecord_TxAction) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{39, 0}
+ return fileDescriptor_252557cfdd89a31a, []int{41, 0}
}
// Request types
@@ -271,6 +271,7 @@ type Request struct {
// *Request_OfferSnapshot
// *Request_LoadSnapshotChunk
// *Request_ApplySnapshotChunk
+ // *Request_FinalizeSnapshotSync
// *Request_PrepareProposal
// *Request_ProcessProposal
// *Request_ExtendVote
@@ -348,6 +349,9 @@ type Request_LoadSnapshotChunk struct {
type Request_ApplySnapshotChunk struct {
ApplySnapshotChunk *RequestApplySnapshotChunk `protobuf:"bytes,14,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
}
+type Request_FinalizeSnapshotSync struct {
+ FinalizeSnapshotSync *RequestFinalizeSnapshotSync `protobuf:"bytes,20,opt,name=finalize_snapshot_sync,json=finalizeSnapshotSync,proto3,oneof" json:"finalize_snapshot_sync,omitempty"`
+}
type Request_PrepareProposal struct {
PrepareProposal *RequestPrepareProposal `protobuf:"bytes,15,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"`
}
@@ -364,21 +368,22 @@ type Request_FinalizeBlock struct {
FinalizeBlock *RequestFinalizeBlock `protobuf:"bytes,19,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"`
}
-func (*Request_Echo) isRequest_Value() {}
-func (*Request_Flush) isRequest_Value() {}
-func (*Request_Info) isRequest_Value() {}
-func (*Request_InitChain) isRequest_Value() {}
-func (*Request_Query) isRequest_Value() {}
-func (*Request_CheckTx) isRequest_Value() {}
-func (*Request_ListSnapshots) isRequest_Value() {}
-func (*Request_OfferSnapshot) isRequest_Value() {}
-func (*Request_LoadSnapshotChunk) isRequest_Value() {}
-func (*Request_ApplySnapshotChunk) isRequest_Value() {}
-func (*Request_PrepareProposal) isRequest_Value() {}
-func (*Request_ProcessProposal) isRequest_Value() {}
-func (*Request_ExtendVote) isRequest_Value() {}
-func (*Request_VerifyVoteExtension) isRequest_Value() {}
-func (*Request_FinalizeBlock) isRequest_Value() {}
+func (*Request_Echo) isRequest_Value() {}
+func (*Request_Flush) isRequest_Value() {}
+func (*Request_Info) isRequest_Value() {}
+func (*Request_InitChain) isRequest_Value() {}
+func (*Request_Query) isRequest_Value() {}
+func (*Request_CheckTx) isRequest_Value() {}
+func (*Request_ListSnapshots) isRequest_Value() {}
+func (*Request_OfferSnapshot) isRequest_Value() {}
+func (*Request_LoadSnapshotChunk) isRequest_Value() {}
+func (*Request_ApplySnapshotChunk) isRequest_Value() {}
+func (*Request_FinalizeSnapshotSync) isRequest_Value() {}
+func (*Request_PrepareProposal) isRequest_Value() {}
+func (*Request_ProcessProposal) isRequest_Value() {}
+func (*Request_ExtendVote) isRequest_Value() {}
+func (*Request_VerifyVoteExtension) isRequest_Value() {}
+func (*Request_FinalizeBlock) isRequest_Value() {}
func (m *Request) GetValue() isRequest_Value {
if m != nil {
@@ -457,6 +462,13 @@ func (m *Request) GetApplySnapshotChunk() *RequestApplySnapshotChunk {
return nil
}
+func (m *Request) GetFinalizeSnapshotSync() *RequestFinalizeSnapshotSync {
+ if x, ok := m.GetValue().(*Request_FinalizeSnapshotSync); ok {
+ return x.FinalizeSnapshotSync
+ }
+ return nil
+}
+
func (m *Request) GetPrepareProposal() *RequestPrepareProposal {
if x, ok := m.GetValue().(*Request_PrepareProposal); ok {
return x.PrepareProposal
@@ -505,6 +517,7 @@ func (*Request) XXX_OneofWrappers() []interface{} {
(*Request_OfferSnapshot)(nil),
(*Request_LoadSnapshotChunk)(nil),
(*Request_ApplySnapshotChunk)(nil),
+ (*Request_FinalizeSnapshotSync)(nil),
(*Request_PrepareProposal)(nil),
(*Request_ProcessProposal)(nil),
(*Request_ExtendVote)(nil),
@@ -1161,6 +1174,63 @@ func (m *RequestApplySnapshotChunk) GetSender() string {
return ""
}
+// After snapshot sync, Tenderdash calls this to finalize the snapshot sync.
+// It includes the light block committed at the synced height, which Tenderdash uses
+// to reconstruct its own state.
+type RequestFinalizeSnapshotSync struct {
+ // light block committed at the synced height
+ LightBlock *types1.LightBlock `protobuf:"bytes,1,opt,name=light_block,json=lightBlock,proto3" json:"light_block,omitempty"`
+ // commit fot the `light_block`
+ Commit *types1.Commit `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"`
+}
+
+func (m *RequestFinalizeSnapshotSync) Reset() { *m = RequestFinalizeSnapshotSync{} }
+func (m *RequestFinalizeSnapshotSync) String() string { return proto.CompactTextString(m) }
+func (*RequestFinalizeSnapshotSync) ProtoMessage() {}
+func (*RequestFinalizeSnapshotSync) Descriptor() ([]byte, []int) {
+ return fileDescriptor_252557cfdd89a31a, []int{11}
+}
+func (m *RequestFinalizeSnapshotSync) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RequestFinalizeSnapshotSync) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RequestFinalizeSnapshotSync.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RequestFinalizeSnapshotSync) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequestFinalizeSnapshotSync.Merge(m, src)
+}
+func (m *RequestFinalizeSnapshotSync) XXX_Size() int {
+ return m.Size()
+}
+func (m *RequestFinalizeSnapshotSync) XXX_DiscardUnknown() {
+ xxx_messageInfo_RequestFinalizeSnapshotSync.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RequestFinalizeSnapshotSync proto.InternalMessageInfo
+
+func (m *RequestFinalizeSnapshotSync) GetLightBlock() *types1.LightBlock {
+ if m != nil {
+ return m.LightBlock
+ }
+ return nil
+}
+
+func (m *RequestFinalizeSnapshotSync) GetCommit() *types1.Commit {
+ if m != nil {
+ return m.Commit
+ }
+ return nil
+}
+
// Prepare new block proposal, potentially altering list of transactions.
//
// #### Usage
@@ -1280,7 +1350,7 @@ func (m *RequestPrepareProposal) Reset() { *m = RequestPrepareProposal{}
func (m *RequestPrepareProposal) String() string { return proto.CompactTextString(m) }
func (*RequestPrepareProposal) ProtoMessage() {}
func (*RequestPrepareProposal) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{11}
+ return fileDescriptor_252557cfdd89a31a, []int{12}
}
func (m *RequestPrepareProposal) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1480,7 +1550,7 @@ func (m *RequestProcessProposal) Reset() { *m = RequestProcessProposal{}
func (m *RequestProcessProposal) String() string { return proto.CompactTextString(m) }
func (*RequestProcessProposal) ProtoMessage() {}
func (*RequestProcessProposal) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{12}
+ return fileDescriptor_252557cfdd89a31a, []int{13}
}
func (m *RequestProcessProposal) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1652,7 +1722,7 @@ func (m *RequestExtendVote) Reset() { *m = RequestExtendVote{} }
func (m *RequestExtendVote) String() string { return proto.CompactTextString(m) }
func (*RequestExtendVote) ProtoMessage() {}
func (*RequestExtendVote) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{13}
+ return fileDescriptor_252557cfdd89a31a, []int{14}
}
func (m *RequestExtendVote) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1747,7 +1817,7 @@ func (m *RequestVerifyVoteExtension) Reset() { *m = RequestVerifyVoteExt
func (m *RequestVerifyVoteExtension) String() string { return proto.CompactTextString(m) }
func (*RequestVerifyVoteExtension) ProtoMessage() {}
func (*RequestVerifyVoteExtension) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{14}
+ return fileDescriptor_252557cfdd89a31a, []int{15}
}
func (m *RequestVerifyVoteExtension) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1858,7 +1928,7 @@ func (m *RequestFinalizeBlock) Reset() { *m = RequestFinalizeBlock{} }
func (m *RequestFinalizeBlock) String() string { return proto.CompactTextString(m) }
func (*RequestFinalizeBlock) ProtoMessage() {}
func (*RequestFinalizeBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{15}
+ return fileDescriptor_252557cfdd89a31a, []int{16}
}
func (m *RequestFinalizeBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1950,6 +2020,7 @@ type Response struct {
// *Response_OfferSnapshot
// *Response_LoadSnapshotChunk
// *Response_ApplySnapshotChunk
+ // *Response_FinalizeSnapshotSync
// *Response_PrepareProposal
// *Response_ProcessProposal
// *Response_ExtendVote
@@ -1962,7 +2033,7 @@ func (m *Response) Reset() { *m = Response{} }
func (m *Response) String() string { return proto.CompactTextString(m) }
func (*Response) ProtoMessage() {}
func (*Response) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{16}
+ return fileDescriptor_252557cfdd89a31a, []int{17}
}
func (m *Response) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2030,6 +2101,9 @@ type Response_LoadSnapshotChunk struct {
type Response_ApplySnapshotChunk struct {
ApplySnapshotChunk *ResponseApplySnapshotChunk `protobuf:"bytes,11,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
}
+type Response_FinalizeSnapshotSync struct {
+ FinalizeSnapshotSync *ResponseFinalizeSnapshotSync `protobuf:"bytes,17,opt,name=finalize_snapshot_sync,json=finalizeSnapshotSync,proto3,oneof" json:"finalize_snapshot_sync,omitempty"`
+}
type Response_PrepareProposal struct {
PrepareProposal *ResponsePrepareProposal `protobuf:"bytes,12,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"`
}
@@ -2046,22 +2120,23 @@ type Response_FinalizeBlock struct {
FinalizeBlock *ResponseFinalizeBlock `protobuf:"bytes,16,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"`
}
-func (*Response_Exception) isResponse_Value() {}
-func (*Response_Echo) isResponse_Value() {}
-func (*Response_Flush) isResponse_Value() {}
-func (*Response_Info) isResponse_Value() {}
-func (*Response_InitChain) isResponse_Value() {}
-func (*Response_Query) isResponse_Value() {}
-func (*Response_CheckTx) isResponse_Value() {}
-func (*Response_ListSnapshots) isResponse_Value() {}
-func (*Response_OfferSnapshot) isResponse_Value() {}
-func (*Response_LoadSnapshotChunk) isResponse_Value() {}
-func (*Response_ApplySnapshotChunk) isResponse_Value() {}
-func (*Response_PrepareProposal) isResponse_Value() {}
-func (*Response_ProcessProposal) isResponse_Value() {}
-func (*Response_ExtendVote) isResponse_Value() {}
-func (*Response_VerifyVoteExtension) isResponse_Value() {}
-func (*Response_FinalizeBlock) isResponse_Value() {}
+func (*Response_Exception) isResponse_Value() {}
+func (*Response_Echo) isResponse_Value() {}
+func (*Response_Flush) isResponse_Value() {}
+func (*Response_Info) isResponse_Value() {}
+func (*Response_InitChain) isResponse_Value() {}
+func (*Response_Query) isResponse_Value() {}
+func (*Response_CheckTx) isResponse_Value() {}
+func (*Response_ListSnapshots) isResponse_Value() {}
+func (*Response_OfferSnapshot) isResponse_Value() {}
+func (*Response_LoadSnapshotChunk) isResponse_Value() {}
+func (*Response_ApplySnapshotChunk) isResponse_Value() {}
+func (*Response_FinalizeSnapshotSync) isResponse_Value() {}
+func (*Response_PrepareProposal) isResponse_Value() {}
+func (*Response_ProcessProposal) isResponse_Value() {}
+func (*Response_ExtendVote) isResponse_Value() {}
+func (*Response_VerifyVoteExtension) isResponse_Value() {}
+func (*Response_FinalizeBlock) isResponse_Value() {}
func (m *Response) GetValue() isResponse_Value {
if m != nil {
@@ -2147,6 +2222,13 @@ func (m *Response) GetApplySnapshotChunk() *ResponseApplySnapshotChunk {
return nil
}
+func (m *Response) GetFinalizeSnapshotSync() *ResponseFinalizeSnapshotSync {
+ if x, ok := m.GetValue().(*Response_FinalizeSnapshotSync); ok {
+ return x.FinalizeSnapshotSync
+ }
+ return nil
+}
+
func (m *Response) GetPrepareProposal() *ResponsePrepareProposal {
if x, ok := m.GetValue().(*Response_PrepareProposal); ok {
return x.PrepareProposal
@@ -2196,6 +2278,7 @@ func (*Response) XXX_OneofWrappers() []interface{} {
(*Response_OfferSnapshot)(nil),
(*Response_LoadSnapshotChunk)(nil),
(*Response_ApplySnapshotChunk)(nil),
+ (*Response_FinalizeSnapshotSync)(nil),
(*Response_PrepareProposal)(nil),
(*Response_ProcessProposal)(nil),
(*Response_ExtendVote)(nil),
@@ -2213,7 +2296,7 @@ func (m *ResponseException) Reset() { *m = ResponseException{} }
func (m *ResponseException) String() string { return proto.CompactTextString(m) }
func (*ResponseException) ProtoMessage() {}
func (*ResponseException) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{17}
+ return fileDescriptor_252557cfdd89a31a, []int{18}
}
func (m *ResponseException) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2257,7 +2340,7 @@ func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
func (*ResponseEcho) ProtoMessage() {}
func (*ResponseEcho) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{18}
+ return fileDescriptor_252557cfdd89a31a, []int{19}
}
func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2300,7 +2383,7 @@ func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
func (*ResponseFlush) ProtoMessage() {}
func (*ResponseFlush) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{19}
+ return fileDescriptor_252557cfdd89a31a, []int{20}
}
func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2341,7 +2424,7 @@ func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
func (*ResponseInfo) ProtoMessage() {}
func (*ResponseInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{20}
+ return fileDescriptor_252557cfdd89a31a, []int{21}
}
func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2426,7 +2509,7 @@ func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
func (*ResponseInitChain) ProtoMessage() {}
func (*ResponseInitChain) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{21}
+ return fileDescriptor_252557cfdd89a31a, []int{22}
}
func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2543,7 +2626,7 @@ func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
func (*ResponseQuery) ProtoMessage() {}
func (*ResponseQuery) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{22}
+ return fileDescriptor_252557cfdd89a31a, []int{23}
}
func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2649,7 +2732,7 @@ func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
func (*ResponseCheckTx) ProtoMessage() {}
func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{23}
+ return fileDescriptor_252557cfdd89a31a, []int{24}
}
func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2735,7 +2818,7 @@ func (m *ResponseListSnapshots) Reset() { *m = ResponseListSnapshots{} }
func (m *ResponseListSnapshots) String() string { return proto.CompactTextString(m) }
func (*ResponseListSnapshots) ProtoMessage() {}
func (*ResponseListSnapshots) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{24}
+ return fileDescriptor_252557cfdd89a31a, []int{25}
}
func (m *ResponseListSnapshots) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2779,7 +2862,7 @@ func (m *ResponseOfferSnapshot) Reset() { *m = ResponseOfferSnapshot{} }
func (m *ResponseOfferSnapshot) String() string { return proto.CompactTextString(m) }
func (*ResponseOfferSnapshot) ProtoMessage() {}
func (*ResponseOfferSnapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{25}
+ return fileDescriptor_252557cfdd89a31a, []int{26}
}
func (m *ResponseOfferSnapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2825,7 +2908,7 @@ func (m *ResponseLoadSnapshotChunk) Reset() { *m = ResponseLoadSnapshotC
func (m *ResponseLoadSnapshotChunk) String() string { return proto.CompactTextString(m) }
func (*ResponseLoadSnapshotChunk) ProtoMessage() {}
func (*ResponseLoadSnapshotChunk) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{26}
+ return fileDescriptor_252557cfdd89a31a, []int{27}
}
func (m *ResponseLoadSnapshotChunk) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2878,7 +2961,7 @@ func (m *ResponseApplySnapshotChunk) Reset() { *m = ResponseApplySnapsho
func (m *ResponseApplySnapshotChunk) String() string { return proto.CompactTextString(m) }
func (*ResponseApplySnapshotChunk) ProtoMessage() {}
func (*ResponseApplySnapshotChunk) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{27}
+ return fileDescriptor_252557cfdd89a31a, []int{28}
}
func (m *ResponseApplySnapshotChunk) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2935,6 +3018,43 @@ func (m *ResponseApplySnapshotChunk) GetNextChunks() [][]byte {
return nil
}
+// The response to a `RequestPrepareSnapshot` message.
+type ResponseFinalizeSnapshotSync struct {
+}
+
+func (m *ResponseFinalizeSnapshotSync) Reset() { *m = ResponseFinalizeSnapshotSync{} }
+func (m *ResponseFinalizeSnapshotSync) String() string { return proto.CompactTextString(m) }
+func (*ResponseFinalizeSnapshotSync) ProtoMessage() {}
+func (*ResponseFinalizeSnapshotSync) Descriptor() ([]byte, []int) {
+ return fileDescriptor_252557cfdd89a31a, []int{29}
+}
+func (m *ResponseFinalizeSnapshotSync) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ResponseFinalizeSnapshotSync) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ResponseFinalizeSnapshotSync.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ResponseFinalizeSnapshotSync) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ResponseFinalizeSnapshotSync.Merge(m, src)
+}
+func (m *ResponseFinalizeSnapshotSync) XXX_Size() int {
+ return m.Size()
+}
+func (m *ResponseFinalizeSnapshotSync) XXX_DiscardUnknown() {
+ xxx_messageInfo_ResponseFinalizeSnapshotSync.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResponseFinalizeSnapshotSync proto.InternalMessageInfo
+
type ResponsePrepareProposal struct {
// Possibly modified list of transactions that have been picked as part of the proposed block.
TxRecords []*TxRecord `protobuf:"bytes,1,rep,name=tx_records,json=txRecords,proto3" json:"tx_records,omitempty"`
@@ -2956,7 +3076,7 @@ func (m *ResponsePrepareProposal) Reset() { *m = ResponsePrepareProposal
func (m *ResponsePrepareProposal) String() string { return proto.CompactTextString(m) }
func (*ResponsePrepareProposal) ProtoMessage() {}
func (*ResponsePrepareProposal) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{28}
+ return fileDescriptor_252557cfdd89a31a, []int{30}
}
func (m *ResponsePrepareProposal) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3053,7 +3173,7 @@ func (m *ResponseProcessProposal) Reset() { *m = ResponseProcessProposal
func (m *ResponseProcessProposal) String() string { return proto.CompactTextString(m) }
func (*ResponseProcessProposal) ProtoMessage() {}
func (*ResponseProcessProposal) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{29}
+ return fileDescriptor_252557cfdd89a31a, []int{31}
}
func (m *ResponseProcessProposal) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3143,7 +3263,7 @@ func (m *ExtendVoteExtension) Reset() { *m = ExtendVoteExtension{} }
func (m *ExtendVoteExtension) String() string { return proto.CompactTextString(m) }
func (*ExtendVoteExtension) ProtoMessage() {}
func (*ExtendVoteExtension) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{30}
+ return fileDescriptor_252557cfdd89a31a, []int{32}
}
func (m *ExtendVoteExtension) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3227,7 +3347,7 @@ func (m *ResponseExtendVote) Reset() { *m = ResponseExtendVote{} }
func (m *ResponseExtendVote) String() string { return proto.CompactTextString(m) }
func (*ResponseExtendVote) ProtoMessage() {}
func (*ResponseExtendVote) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{31}
+ return fileDescriptor_252557cfdd89a31a, []int{33}
}
func (m *ResponseExtendVote) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3271,7 +3391,7 @@ func (m *ResponseVerifyVoteExtension) Reset() { *m = ResponseVerifyVoteE
func (m *ResponseVerifyVoteExtension) String() string { return proto.CompactTextString(m) }
func (*ResponseVerifyVoteExtension) ProtoMessage() {}
func (*ResponseVerifyVoteExtension) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{32}
+ return fileDescriptor_252557cfdd89a31a, []int{34}
}
func (m *ResponseVerifyVoteExtension) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3316,7 +3436,7 @@ func (m *ResponseFinalizeBlock) Reset() { *m = ResponseFinalizeBlock{} }
func (m *ResponseFinalizeBlock) String() string { return proto.CompactTextString(m) }
func (*ResponseFinalizeBlock) ProtoMessage() {}
func (*ResponseFinalizeBlock) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{33}
+ return fileDescriptor_252557cfdd89a31a, []int{35}
}
func (m *ResponseFinalizeBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3363,7 +3483,7 @@ func (m *CommitInfo) Reset() { *m = CommitInfo{} }
func (m *CommitInfo) String() string { return proto.CompactTextString(m) }
func (*CommitInfo) ProtoMessage() {}
func (*CommitInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{34}
+ return fileDescriptor_252557cfdd89a31a, []int{36}
}
func (m *CommitInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3434,7 +3554,7 @@ func (m *Event) Reset() { *m = Event{} }
func (m *Event) String() string { return proto.CompactTextString(m) }
func (*Event) ProtoMessage() {}
func (*Event) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{35}
+ return fileDescriptor_252557cfdd89a31a, []int{37}
}
func (m *Event) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3488,7 +3608,7 @@ func (m *EventAttribute) Reset() { *m = EventAttribute{} }
func (m *EventAttribute) String() string { return proto.CompactTextString(m) }
func (*EventAttribute) ProtoMessage() {}
func (*EventAttribute) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{36}
+ return fileDescriptor_252557cfdd89a31a, []int{38}
}
func (m *EventAttribute) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3554,7 +3674,7 @@ func (m *ExecTxResult) Reset() { *m = ExecTxResult{} }
func (m *ExecTxResult) String() string { return proto.CompactTextString(m) }
func (*ExecTxResult) ProtoMessage() {}
func (*ExecTxResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{37}
+ return fileDescriptor_252557cfdd89a31a, []int{39}
}
func (m *ExecTxResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3646,7 +3766,7 @@ func (m *TxResult) Reset() { *m = TxResult{} }
func (m *TxResult) String() string { return proto.CompactTextString(m) }
func (*TxResult) ProtoMessage() {}
func (*TxResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{38}
+ return fileDescriptor_252557cfdd89a31a, []int{40}
}
func (m *TxResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3712,7 +3832,7 @@ func (m *TxRecord) Reset() { *m = TxRecord{} }
func (m *TxRecord) String() string { return proto.CompactTextString(m) }
func (*TxRecord) ProtoMessage() {}
func (*TxRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{39}
+ return fileDescriptor_252557cfdd89a31a, []int{41}
}
func (m *TxRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3765,7 +3885,7 @@ func (m *Validator) Reset() { *m = Validator{} }
func (m *Validator) String() string { return proto.CompactTextString(m) }
func (*Validator) ProtoMessage() {}
func (*Validator) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{40}
+ return fileDescriptor_252557cfdd89a31a, []int{42}
}
func (m *Validator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3823,7 +3943,7 @@ func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
func (*ValidatorUpdate) ProtoMessage() {}
func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{41}
+ return fileDescriptor_252557cfdd89a31a, []int{43}
}
func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3905,7 +4025,7 @@ func (m *ValidatorSetUpdate) Reset() { *m = ValidatorSetUpdate{} }
func (m *ValidatorSetUpdate) String() string { return proto.CompactTextString(m) }
func (*ValidatorSetUpdate) ProtoMessage() {}
func (*ValidatorSetUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{42}
+ return fileDescriptor_252557cfdd89a31a, []int{44}
}
func (m *ValidatorSetUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3963,7 +4083,7 @@ func (m *ThresholdPublicKeyUpdate) Reset() { *m = ThresholdPublicKeyUpda
func (m *ThresholdPublicKeyUpdate) String() string { return proto.CompactTextString(m) }
func (*ThresholdPublicKeyUpdate) ProtoMessage() {}
func (*ThresholdPublicKeyUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{43}
+ return fileDescriptor_252557cfdd89a31a, []int{45}
}
func (m *ThresholdPublicKeyUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4007,7 +4127,7 @@ func (m *QuorumHashUpdate) Reset() { *m = QuorumHashUpdate{} }
func (m *QuorumHashUpdate) String() string { return proto.CompactTextString(m) }
func (*QuorumHashUpdate) ProtoMessage() {}
func (*QuorumHashUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{44}
+ return fileDescriptor_252557cfdd89a31a, []int{46}
}
func (m *QuorumHashUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4053,7 +4173,7 @@ func (m *VoteInfo) Reset() { *m = VoteInfo{} }
func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
func (*VoteInfo) ProtoMessage() {}
func (*VoteInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{45}
+ return fileDescriptor_252557cfdd89a31a, []int{47}
}
func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4110,7 +4230,7 @@ func (m *ExtendedVoteInfo) Reset() { *m = ExtendedVoteInfo{} }
func (m *ExtendedVoteInfo) String() string { return proto.CompactTextString(m) }
func (*ExtendedVoteInfo) ProtoMessage() {}
func (*ExtendedVoteInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{46}
+ return fileDescriptor_252557cfdd89a31a, []int{48}
}
func (m *ExtendedVoteInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4178,7 +4298,7 @@ func (m *Misbehavior) Reset() { *m = Misbehavior{} }
func (m *Misbehavior) String() string { return proto.CompactTextString(m) }
func (*Misbehavior) ProtoMessage() {}
func (*Misbehavior) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{47}
+ return fileDescriptor_252557cfdd89a31a, []int{49}
}
func (m *Misbehavior) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4253,7 +4373,7 @@ func (m *Snapshot) Reset() { *m = Snapshot{} }
func (m *Snapshot) String() string { return proto.CompactTextString(m) }
func (*Snapshot) ProtoMessage() {}
func (*Snapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{48}
+ return fileDescriptor_252557cfdd89a31a, []int{50}
}
func (m *Snapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -4329,6 +4449,7 @@ func init() {
proto.RegisterType((*RequestOfferSnapshot)(nil), "tendermint.abci.RequestOfferSnapshot")
proto.RegisterType((*RequestLoadSnapshotChunk)(nil), "tendermint.abci.RequestLoadSnapshotChunk")
proto.RegisterType((*RequestApplySnapshotChunk)(nil), "tendermint.abci.RequestApplySnapshotChunk")
+ proto.RegisterType((*RequestFinalizeSnapshotSync)(nil), "tendermint.abci.RequestFinalizeSnapshotSync")
proto.RegisterType((*RequestPrepareProposal)(nil), "tendermint.abci.RequestPrepareProposal")
proto.RegisterType((*RequestProcessProposal)(nil), "tendermint.abci.RequestProcessProposal")
proto.RegisterType((*RequestExtendVote)(nil), "tendermint.abci.RequestExtendVote")
@@ -4346,6 +4467,7 @@ func init() {
proto.RegisterType((*ResponseOfferSnapshot)(nil), "tendermint.abci.ResponseOfferSnapshot")
proto.RegisterType((*ResponseLoadSnapshotChunk)(nil), "tendermint.abci.ResponseLoadSnapshotChunk")
proto.RegisterType((*ResponseApplySnapshotChunk)(nil), "tendermint.abci.ResponseApplySnapshotChunk")
+ proto.RegisterType((*ResponseFinalizeSnapshotSync)(nil), "tendermint.abci.ResponseFinalizeSnapshotSync")
proto.RegisterType((*ResponsePrepareProposal)(nil), "tendermint.abci.ResponsePrepareProposal")
proto.RegisterType((*ResponseProcessProposal)(nil), "tendermint.abci.ResponseProcessProposal")
proto.RegisterType((*ExtendVoteExtension)(nil), "tendermint.abci.ExtendVoteExtension")
@@ -4372,239 +4494,245 @@ func init() {
func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) }
var fileDescriptor_252557cfdd89a31a = []byte{
- // 3712 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5b, 0xcb, 0x73, 0x1b, 0x47,
- 0x73, 0xc7, 0xe2, 0x8d, 0xc6, 0x6b, 0x39, 0xa4, 0x24, 0x08, 0x92, 0x48, 0x7a, 0x15, 0x5b, 0xb2,
- 0x6c, 0x93, 0xb6, 0x14, 0x5b, 0x76, 0xec, 0xa4, 0x0a, 0x04, 0xa1, 0x80, 0x14, 0x45, 0xd2, 0x4b,
- 0x90, 0x2e, 0xc7, 0xb1, 0xb7, 0x96, 0xc0, 0x90, 0x58, 0x0b, 0xc0, 0xae, 0x77, 0x17, 0x14, 0xe8,
- 0x6b, 0xe2, 0xaa, 0x94, 0x4f, 0xfe, 0x07, 0x7c, 0x4b, 0x8e, 0xb9, 0xe7, 0x94, 0x54, 0x4e, 0x71,
- 0x2a, 0x17, 0x1f, 0x53, 0x95, 0x8a, 0xe2, 0x92, 0x6f, 0xb9, 0xf9, 0xf4, 0x5d, 0xbe, 0xc3, 0x57,
- 0xf3, 0xd8, 0x27, 0xb0, 0x78, 0x58, 0xae, 0xfa, 0xea, 0xbb, 0x61, 0x7a, 0xba, 0x7b, 0xe7, 0xd1,
- 0xd3, 0xdd, 0xf3, 0xeb, 0x01, 0xdc, 0xb0, 0xf1, 0xa0, 0x83, 0xcd, 0xbe, 0x36, 0xb0, 0x37, 0xd5,
- 0xd3, 0xb6, 0xb6, 0x69, 0x5f, 0x1a, 0xd8, 0xda, 0x30, 0x4c, 0xdd, 0xd6, 0x51, 0xd9, 0xeb, 0xdc,
- 0x20, 0x9d, 0xd5, 0x5b, 0x3e, 0xee, 0xb6, 0x79, 0x69, 0xd8, 0xfa, 0xa6, 0x61, 0xea, 0xfa, 0x19,
- 0xe3, 0xaf, 0xfa, 0x95, 0x51, 0x3d, 0x9b, 0x1d, 0xd5, 0xea, 0xf2, 0xce, 0x9b, 0x63, 0x9d, 0xa7,
- 0x3d, 0xbd, 0xfd, 0x34, 0xb2, 0xd7, 0x37, 0x90, 0x40, 0x2f, 0xff, 0xee, 0x53, 0x7c, 0xe9, 0xf4,
- 0xde, 0x1a, 0x93, 0x35, 0x54, 0x53, 0xed, 0x3b, 0xdd, 0xab, 0xbe, 0xee, 0x0b, 0x6c, 0x5a, 0x9a,
- 0x3e, 0x08, 0x28, 0x5f, 0x3b, 0xd7, 0xf5, 0xf3, 0x1e, 0xde, 0xa4, 0xad, 0xd3, 0xe1, 0xd9, 0xa6,
- 0xad, 0xf5, 0xb1, 0x65, 0xab, 0x7d, 0x83, 0x33, 0xac, 0x9c, 0xeb, 0xe7, 0x3a, 0xfd, 0xb9, 0x49,
- 0x7e, 0x31, 0xaa, 0xf4, 0x4d, 0x0e, 0x32, 0x32, 0xfe, 0x6a, 0x88, 0x2d, 0x1b, 0xdd, 0x87, 0x24,
- 0x6e, 0x77, 0xf5, 0x8a, 0xb0, 0x2e, 0xdc, 0xcd, 0xdf, 0xbf, 0xb9, 0x11, 0x5a, 0xb7, 0x0d, 0xce,
- 0xd7, 0x68, 0x77, 0xf5, 0x66, 0x4c, 0xa6, 0xbc, 0xe8, 0x5d, 0x48, 0x9d, 0xf5, 0x86, 0x56, 0xb7,
- 0x12, 0xa7, 0x42, 0xb7, 0xa2, 0x84, 0x1e, 0x11, 0xa6, 0x66, 0x4c, 0x66, 0xdc, 0xe4, 0x53, 0xda,
- 0xe0, 0x4c, 0xaf, 0x24, 0xa6, 0x7f, 0x6a, 0x67, 0x70, 0x46, 0x3f, 0x45, 0x78, 0xd1, 0x16, 0x80,
- 0x36, 0xd0, 0x6c, 0xa5, 0xdd, 0x55, 0xb5, 0x41, 0x25, 0x49, 0x25, 0x5f, 0x89, 0x96, 0xd4, 0xec,
- 0x3a, 0x61, 0x6c, 0xc6, 0xe4, 0x9c, 0xe6, 0x34, 0xc8, 0x70, 0xbf, 0x1a, 0x62, 0xf3, 0xb2, 0x92,
- 0x9a, 0x3e, 0xdc, 0x8f, 0x09, 0x13, 0x19, 0x2e, 0xe5, 0x46, 0x1f, 0x41, 0xb6, 0xdd, 0xc5, 0xed,
- 0xa7, 0x8a, 0x3d, 0xaa, 0x64, 0xa8, 0xe4, 0x5a, 0x94, 0x64, 0x9d, 0xf0, 0xb5, 0x46, 0xcd, 0x98,
- 0x9c, 0x69, 0xb3, 0x9f, 0x68, 0x1f, 0x4a, 0x3d, 0xcd, 0xb2, 0x15, 0x6b, 0xa0, 0x1a, 0x56, 0x57,
- 0xb7, 0xad, 0x4a, 0x9e, 0xea, 0x78, 0x35, 0x4a, 0xc7, 0x9e, 0x66, 0xd9, 0x47, 0x0e, 0x73, 0x33,
- 0x26, 0x17, 0x7b, 0x7e, 0x02, 0xd1, 0xa7, 0x9f, 0x9d, 0x61, 0xd3, 0x55, 0x58, 0x29, 0x4c, 0xd7,
- 0x77, 0x40, 0xb8, 0x1d, 0x79, 0xa2, 0x4f, 0xf7, 0x13, 0xd0, 0x67, 0xb0, 0xdc, 0xd3, 0xd5, 0x8e,
- 0xab, 0x4e, 0x69, 0x77, 0x87, 0x83, 0xa7, 0x95, 0x22, 0x55, 0xfa, 0x7a, 0xe4, 0x20, 0x75, 0xb5,
- 0xe3, 0xa8, 0xa8, 0x13, 0x81, 0x66, 0x4c, 0x5e, 0xea, 0x85, 0x89, 0xe8, 0x0b, 0x58, 0x51, 0x0d,
- 0xa3, 0x77, 0x19, 0xd6, 0x5e, 0xa2, 0xda, 0xef, 0x45, 0x69, 0xaf, 0x11, 0x99, 0xb0, 0x7a, 0xa4,
- 0x8e, 0x51, 0x51, 0x0b, 0x44, 0xc3, 0xc4, 0x86, 0x6a, 0x62, 0xc5, 0x30, 0x75, 0x43, 0xb7, 0xd4,
- 0x5e, 0xa5, 0x4c, 0x75, 0xdf, 0x89, 0xd2, 0x7d, 0xc8, 0xf8, 0x0f, 0x39, 0x7b, 0x33, 0x26, 0x97,
- 0x8d, 0x20, 0x89, 0x69, 0xd5, 0xdb, 0xd8, 0xb2, 0x3c, 0xad, 0xe2, 0x2c, 0xad, 0x94, 0x3f, 0xa8,
- 0x35, 0x40, 0x42, 0x0d, 0xc8, 0xe3, 0x11, 0x11, 0x57, 0x2e, 0x74, 0x1b, 0x57, 0x96, 0xa8, 0x42,
- 0x29, 0xf2, 0x9c, 0x51, 0xd6, 0x13, 0xdd, 0xc6, 0xcd, 0x98, 0x0c, 0xd8, 0x6d, 0x21, 0x15, 0xae,
- 0x5c, 0x60, 0x53, 0x3b, 0xbb, 0xa4, 0x6a, 0x14, 0xda, 0x43, 0xfc, 0x41, 0x05, 0x51, 0x85, 0x6f,
- 0x44, 0x29, 0x3c, 0xa1, 0x42, 0x44, 0x45, 0xc3, 0x11, 0x69, 0xc6, 0xe4, 0xe5, 0x8b, 0x71, 0x32,
- 0x31, 0xb1, 0x33, 0x6d, 0xa0, 0xf6, 0xb4, 0xaf, 0xb1, 0x42, 0x1d, 0x5c, 0x65, 0x79, 0xba, 0x89,
- 0x3d, 0xe2, 0xdc, 0x5b, 0x84, 0x99, 0x98, 0xd8, 0x99, 0x9f, 0xb0, 0x95, 0x81, 0xd4, 0x85, 0xda,
- 0x1b, 0xe2, 0xdd, 0x64, 0x36, 0x2d, 0x66, 0x76, 0x93, 0xd9, 0xac, 0x98, 0xdb, 0x4d, 0x66, 0x73,
- 0x22, 0xec, 0x26, 0xb3, 0x20, 0xe6, 0xa5, 0x3b, 0x90, 0xf7, 0xb9, 0x17, 0x54, 0x81, 0x4c, 0x1f,
- 0x5b, 0x96, 0x7a, 0x8e, 0xa9, 0x37, 0xca, 0xc9, 0x4e, 0x53, 0x2a, 0x41, 0xc1, 0xef, 0x52, 0xa4,
- 0xef, 0x04, 0x57, 0x92, 0x78, 0x0b, 0x22, 0xc9, 0xdd, 0xa3, 0x23, 0xc9, 0x9b, 0xe8, 0x36, 0x14,
- 0xe9, 0x54, 0x14, 0xa7, 0x9f, 0xb8, 0xac, 0xa4, 0x5c, 0xa0, 0xc4, 0x13, 0xce, 0xb4, 0x06, 0x79,
- 0xe3, 0xbe, 0xe1, 0xb2, 0x24, 0x28, 0x0b, 0x18, 0xf7, 0x0d, 0x87, 0xe1, 0x15, 0x28, 0x90, 0x79,
- 0xbb, 0x1c, 0x49, 0xfa, 0x91, 0x3c, 0xa1, 0x71, 0x16, 0xe9, 0xef, 0x13, 0x20, 0x86, 0xdd, 0x10,
- 0x7a, 0x1f, 0x92, 0xc4, 0x23, 0x73, 0xe7, 0x5a, 0xdd, 0x60, 0xee, 0x7a, 0xc3, 0x71, 0xd7, 0x1b,
- 0x2d, 0xc7, 0x5d, 0x6f, 0x65, 0x7f, 0x78, 0xbe, 0x16, 0xfb, 0xee, 0xff, 0xd6, 0x04, 0x99, 0x4a,
- 0xa0, 0xeb, 0xc4, 0xf9, 0xa8, 0xda, 0x40, 0xd1, 0x3a, 0x74, 0xc8, 0x39, 0xe2, 0x59, 0x54, 0x6d,
- 0xb0, 0xd3, 0x41, 0x7b, 0x20, 0xb6, 0xf5, 0x81, 0x85, 0x07, 0xd6, 0xd0, 0x52, 0x58, 0xb8, 0xe0,
- 0x2e, 0x35, 0xe0, 0x18, 0x59, 0x9c, 0xa8, 0x3b, 0x9c, 0x87, 0x94, 0x51, 0x2e, 0xb7, 0x83, 0x04,
- 0xb4, 0x0f, 0xc5, 0x0b, 0xb5, 0xa7, 0x75, 0x54, 0x5b, 0x37, 0x15, 0x0b, 0xdb, 0xdc, 0xc7, 0xde,
- 0x1e, 0xdb, 0xf3, 0x13, 0x87, 0xeb, 0x08, 0xdb, 0xc7, 0x46, 0x47, 0xb5, 0xf1, 0x56, 0xf2, 0x87,
- 0xe7, 0x6b, 0x82, 0x5c, 0xb8, 0xf0, 0xf5, 0xa0, 0xd7, 0xa0, 0xac, 0x1a, 0x86, 0x62, 0xd9, 0xaa,
- 0x8d, 0x95, 0xd3, 0x4b, 0x1b, 0x5b, 0xd4, 0xed, 0x16, 0xe4, 0xa2, 0x6a, 0x18, 0x47, 0x84, 0xba,
- 0x45, 0x88, 0xe8, 0x55, 0x28, 0x11, 0x0f, 0xad, 0xa9, 0x3d, 0xa5, 0x8b, 0xb5, 0xf3, 0xae, 0x5d,
- 0x49, 0xaf, 0x0b, 0x77, 0x13, 0x72, 0x91, 0x53, 0x9b, 0x94, 0x88, 0x36, 0x60, 0xd9, 0x61, 0x6b,
- 0xeb, 0x26, 0x76, 0x78, 0x89, 0x3f, 0x2e, 0xca, 0x4b, 0xbc, 0xab, 0xae, 0x9b, 0x98, 0xf1, 0x4b,
- 0x1d, 0xd7, 0x52, 0xa8, 0x37, 0x47, 0x08, 0x92, 0x1d, 0xd5, 0x56, 0xe9, 0x0e, 0x14, 0x64, 0xfa,
- 0x9b, 0xd0, 0x0c, 0xd5, 0xee, 0xf2, 0x75, 0xa5, 0xbf, 0xd1, 0x55, 0x48, 0x73, 0xd5, 0x09, 0x3a,
- 0x0c, 0xde, 0x42, 0x2b, 0x90, 0x32, 0x4c, 0xfd, 0x02, 0xd3, 0x65, 0xc9, 0xca, 0xac, 0x21, 0xc9,
- 0x50, 0x0a, 0x7a, 0x7e, 0x54, 0x82, 0xb8, 0x3d, 0xe2, 0x5f, 0x89, 0xdb, 0x23, 0xf4, 0x36, 0x24,
- 0xc9, 0x06, 0xd0, 0x6f, 0x94, 0x26, 0xc4, 0x3a, 0x2e, 0xd7, 0xba, 0x34, 0xb0, 0x4c, 0x39, 0xa5,
- 0xab, 0xb0, 0x32, 0x29, 0x12, 0x48, 0x5d, 0x97, 0x1e, 0xf0, 0xe8, 0xe8, 0x5d, 0xc8, 0xba, 0xa1,
- 0x80, 0xd9, 0xd7, 0xf5, 0xb1, 0xaf, 0x38, 0xcc, 0xb2, 0xcb, 0x4a, 0x0c, 0x8b, 0xec, 0x4f, 0x57,
- 0xe5, 0xe1, 0xbb, 0x20, 0x67, 0x54, 0xc3, 0x68, 0xaa, 0x56, 0x57, 0x3a, 0x87, 0x4a, 0x94, 0x9b,
- 0xf7, 0xad, 0x8f, 0x40, 0x4f, 0x87, 0xb3, 0x3e, 0xbe, 0x93, 0x17, 0xa7, 0x7b, 0xe2, 0x9e, 0x3c,
- 0x6a, 0xc1, 0xc3, 0xc1, 0x53, 0x62, 0xc1, 0x09, 0xf6, 0x21, 0xda, 0xde, 0xe9, 0x48, 0x1d, 0xb8,
- 0x1e, 0xe9, 0xf1, 0x03, 0x72, 0x42, 0x40, 0x8e, 0x6c, 0x06, 0x8b, 0x23, 0x6c, 0xe0, 0xac, 0x41,
- 0x86, 0x66, 0xd1, 0x79, 0xd3, 0xcf, 0xe4, 0x64, 0xde, 0x92, 0x7e, 0x49, 0xc2, 0xd5, 0xc9, 0xce,
- 0x1f, 0xad, 0x43, 0xa1, 0xaf, 0x8e, 0x14, 0x7b, 0xc4, 0x2d, 0x54, 0xa0, 0x7b, 0x0e, 0x7d, 0x75,
- 0xd4, 0x1a, 0x31, 0xf3, 0x14, 0x21, 0x61, 0x8f, 0xac, 0x4a, 0x7c, 0x3d, 0x71, 0xb7, 0x20, 0x93,
- 0x9f, 0xe8, 0x09, 0x2c, 0xf5, 0xf4, 0xb6, 0xda, 0x53, 0x7a, 0xaa, 0x65, 0x2b, 0x6d, 0xbd, 0xdf,
- 0xd7, 0x6c, 0x7e, 0xee, 0x6e, 0x8c, 0x6f, 0x2f, 0xed, 0x26, 0xbe, 0x89, 0x1e, 0x92, 0x98, 0x5c,
- 0xa6, 0xb2, 0x7b, 0xaa, 0x65, 0xb3, 0x2e, 0xb4, 0x0d, 0xf9, 0xbe, 0x66, 0x9d, 0xe2, 0xae, 0x7a,
- 0xa1, 0xe9, 0x66, 0x25, 0xb9, 0x9e, 0x98, 0x98, 0x13, 0x3d, 0xf1, 0x78, 0xb8, 0x26, 0xbf, 0x98,
- 0x6f, 0x5b, 0x52, 0x01, 0xb3, 0x75, 0x1c, 0x4f, 0x7a, 0x61, 0xc7, 0xf3, 0x36, 0xac, 0x0c, 0xf0,
- 0xc8, 0x56, 0xdc, 0x43, 0x6d, 0x31, 0x5b, 0xc9, 0xd0, 0x25, 0x47, 0xa4, 0xcf, 0xf5, 0x04, 0x16,
- 0x31, 0x1b, 0xb2, 0x2b, 0xa6, 0x3e, 0x1c, 0x74, 0x2a, 0xd9, 0x75, 0xe1, 0x6e, 0x4a, 0x66, 0x0d,
- 0xf4, 0x10, 0x2a, 0xf4, 0xc0, 0x32, 0x2f, 0x46, 0xbc, 0x2d, 0xee, 0x38, 0xa7, 0x37, 0x47, 0x2d,
- 0xe5, 0x0a, 0xe9, 0xa7, 0x7e, 0x72, 0x8f, 0xf6, 0xf2, 0x13, 0xbf, 0x09, 0x2b, 0x2c, 0xfa, 0x62,
- 0x93, 0x84, 0x61, 0xb2, 0x49, 0x74, 0x00, 0x40, 0x07, 0xb0, 0xe4, 0xf4, 0x1d, 0x9a, 0x7a, 0x6b,
- 0x44, 0xbf, 0xff, 0xb6, 0x2b, 0xd0, 0x51, 0x88, 0x69, 0x3b, 0xf6, 0x98, 0xa7, 0x86, 0x8a, 0x9c,
- 0xbe, 0x9a, 0xe1, 0xba, 0xf3, 0x87, 0x9e, 0xd1, 0x16, 0xc6, 0x53, 0x42, 0xde, 0xe5, 0xb9, 0x4e,
- 0xcf, 0xa6, 0xd7, 0x20, 0xff, 0xd5, 0x50, 0x37, 0x87, 0x7d, 0x36, 0xa4, 0x22, 0x1d, 0x12, 0x30,
- 0x12, 0x3d, 0x42, 0xff, 0x96, 0xf2, 0xd9, 0x5c, 0x30, 0x0f, 0xe0, 0x16, 0x25, 0x78, 0x16, 0x75,
- 0xe4, 0x1b, 0xb8, 0xdf, 0xa8, 0xe2, 0xf3, 0x1a, 0x95, 0x3b, 0xb7, 0x68, 0xbb, 0x4a, 0xfc, 0x3a,
- 0xbb, 0x42, 0x90, 0xa4, 0x33, 0x4c, 0x32, 0xb7, 0x49, 0x7e, 0x47, 0xda, 0x9a, 0xbb, 0xff, 0x69,
- 0xff, 0xfe, 0x3b, 0x16, 0x98, 0xf9, 0xcd, 0x2c, 0x30, 0x1b, 0x69, 0x81, 0xbf, 0xda, 0xd6, 0x5a,
- 0x70, 0x35, 0x24, 0xa8, 0x0c, 0x69, 0x68, 0xa3, 0xd6, 0x16, 0x4a, 0xf8, 0x9d, 0x80, 0xea, 0x53,
- 0x24, 0x2f, 0x07, 0xf4, 0xb2, 0xb0, 0x18, 0x69, 0xc1, 0xf9, 0x45, 0x2d, 0xb8, 0x30, 0x8f, 0x05,
- 0x17, 0x5f, 0xc6, 0x82, 0x4b, 0x63, 0x16, 0x7c, 0x0c, 0x4b, 0x63, 0xa9, 0xa8, 0x6b, 0x0e, 0xc2,
- 0x44, 0x73, 0x88, 0x4f, 0x36, 0x87, 0x84, 0xcf, 0x1c, 0xa4, 0x9f, 0x04, 0xa8, 0x46, 0x67, 0xa4,
- 0x13, 0x3f, 0xf0, 0x0e, 0x5c, 0xf1, 0x32, 0x13, 0xff, 0x3a, 0x32, 0xef, 0x8f, 0xdc, 0x4e, 0x6f,
- 0x21, 0xa7, 0x44, 0x71, 0x36, 0xa6, 0xa4, 0xdf, 0x44, 0x9f, 0x40, 0x39, 0x98, 0x4b, 0x93, 0x54,
- 0x85, 0x1c, 0x97, 0x3f, 0x1b, 0x3b, 0x2e, 0xde, 0x5a, 0xb8, 0x63, 0x96, 0x4b, 0x17, 0xfe, 0xa6,
- 0x25, 0xfd, 0x57, 0xdc, 0x8d, 0xd4, 0x81, 0xc4, 0x18, 0x7d, 0x00, 0x69, 0x7e, 0xb2, 0x85, 0x79,
- 0x4f, 0x36, 0x17, 0x08, 0x9f, 0xe6, 0xf8, 0xcb, 0x9d, 0xe6, 0xc4, 0xc4, 0xed, 0x4b, 0x4e, 0x5e,
- 0xaa, 0x94, 0x7f, 0xa9, 0xde, 0x82, 0x14, 0xbb, 0x11, 0xb0, 0x80, 0x72, 0x6d, 0xfc, 0x5c, 0xd0,
- 0xa9, 0xca, 0x8c, 0x0b, 0xd5, 0x20, 0xcb, 0xb2, 0x6e, 0xad, 0xc3, 0x1d, 0xc0, 0xf5, 0x08, 0x89,
- 0x9d, 0xed, 0xad, 0xfc, 0x8b, 0xe7, 0x6b, 0x19, 0xde, 0x90, 0x33, 0x54, 0x6e, 0xa7, 0x23, 0xfd,
- 0x7b, 0x0e, 0xb2, 0x32, 0xb6, 0x0c, 0x62, 0xc2, 0x68, 0x0b, 0x72, 0x78, 0xd4, 0xc6, 0x86, 0xed,
- 0x64, 0xf8, 0x93, 0x6f, 0x50, 0x8c, 0xbb, 0xe1, 0x70, 0x36, 0x63, 0xb2, 0x27, 0x86, 0x1e, 0x70,
- 0xa0, 0x23, 0x1a, 0xb3, 0xe0, 0xe2, 0x7e, 0xa4, 0xe3, 0x3d, 0x07, 0xe9, 0x60, 0x81, 0x7e, 0x35,
- 0x52, 0x2a, 0x04, 0x75, 0x3c, 0xe0, 0x50, 0x47, 0x72, 0xc6, 0xc7, 0x02, 0x58, 0x47, 0x3d, 0x80,
- 0x75, 0xa4, 0x66, 0x4c, 0x33, 0x02, 0xec, 0x78, 0xcf, 0x01, 0x3b, 0xd2, 0x33, 0x46, 0x1c, 0x42,
- 0x3b, 0xfe, 0x72, 0x0c, 0xed, 0x58, 0x8f, 0x14, 0x9d, 0x00, 0x77, 0x1c, 0x8c, 0xc1, 0x1d, 0x59,
- 0xaa, 0xe4, 0xb5, 0x48, 0x25, 0x33, 0xf0, 0x8e, 0x83, 0x31, 0xbc, 0x23, 0x37, 0x43, 0xe1, 0x0c,
- 0xc0, 0xe3, 0x6f, 0x27, 0x03, 0x1e, 0x10, 0x09, 0x49, 0xf0, 0x61, 0xce, 0x87, 0x78, 0x28, 0x11,
- 0x88, 0x47, 0x3e, 0xf2, 0x76, 0xce, 0xd4, 0xcf, 0x0d, 0x79, 0x1c, 0x4f, 0x80, 0x3c, 0x58, 0xf2,
- 0x72, 0x37, 0x52, 0xf9, 0x1c, 0x98, 0xc7, 0xf1, 0x04, 0xcc, 0xa3, 0x38, 0x53, 0xed, 0x4c, 0xd0,
- 0xe3, 0x51, 0x10, 0xf4, 0x28, 0x45, 0xdc, 0x29, 0xbd, 0x23, 0x1b, 0x81, 0x7a, 0x9c, 0x46, 0xa1,
- 0x1e, 0x0c, 0xed, 0x79, 0x33, 0x52, 0xe3, 0x02, 0xb0, 0xc7, 0xc1, 0x18, 0xec, 0x21, 0xce, 0xb0,
- 0xb4, 0x39, 0x71, 0x0f, 0xe9, 0x75, 0x12, 0x4b, 0x43, 0x4e, 0x89, 0x38, 0x58, 0x6c, 0x9a, 0xba,
- 0xc9, 0x91, 0x0a, 0xd6, 0x90, 0xee, 0x92, 0x7b, 0xab, 0xe7, 0x80, 0xa6, 0x60, 0x21, 0x65, 0x28,
- 0x06, 0x9c, 0x8e, 0xf4, 0x2f, 0x82, 0x27, 0x4b, 0xd1, 0x10, 0xff, 0x9d, 0x37, 0xc7, 0xef, 0xbc,
- 0xa1, 0x7b, 0x5a, 0x2e, 0x90, 0x11, 0xf8, 0x73, 0x0e, 0x0e, 0x7e, 0xa8, 0x5e, 0xae, 0x71, 0x0f,
- 0x96, 0x68, 0x76, 0xca, 0x3c, 0x7a, 0x20, 0x68, 0x94, 0x49, 0x07, 0x5b, 0x05, 0x16, 0x3d, 0xde,
- 0x82, 0x65, 0x1f, 0xaf, 0x7b, 0xd1, 0x64, 0x08, 0x80, 0xe8, 0x72, 0xd7, 0xf8, 0x8d, 0xf3, 0x3f,
- 0x12, 0xde, 0x0a, 0x79, 0xa8, 0xc9, 0x24, 0x80, 0x43, 0xf8, 0xd5, 0x00, 0x47, 0xf4, 0x85, 0x17,
- 0x7d, 0x06, 0x2b, 0x01, 0xec, 0xc3, 0x49, 0xfe, 0x12, 0x8b, 0x41, 0x20, 0x31, 0x5f, 0x2e, 0xe2,
- 0xf6, 0xa0, 0xcf, 0xe1, 0x06, 0x4d, 0x63, 0x23, 0x12, 0xcc, 0xe4, 0x7c, 0x09, 0xe6, 0x35, 0xa2,
- 0xa3, 0x3e, 0x21, 0xc9, 0x8c, 0x00, 0x46, 0x52, 0x11, 0xc0, 0x08, 0xda, 0x83, 0xc2, 0x39, 0x1e,
- 0x60, 0x4b, 0xb3, 0x94, 0x05, 0x6e, 0x86, 0x02, 0xc9, 0xcb, 0x9b, 0x31, 0x39, 0xcf, 0x65, 0x49,
- 0xef, 0x3f, 0x08, 0xc2, 0x56, 0x19, 0x8a, 0x8a, 0x5f, 0x9d, 0xf4, 0x3b, 0xc1, 0x33, 0x4b, 0x17,
- 0x79, 0x69, 0xeb, 0x1d, 0x66, 0xbe, 0x45, 0x99, 0xfe, 0x26, 0x77, 0xa0, 0x9e, 0x7e, 0xce, 0x2d,
- 0x90, 0xfc, 0x24, 0x5c, 0x6e, 0x4d, 0x20, 0xc7, 0xe3, 0xe0, 0x0a, 0xa4, 0xb4, 0x41, 0x07, 0x8f,
- 0xb8, 0x91, 0xb1, 0x06, 0x91, 0x7d, 0x8a, 0x2f, 0xb9, 0x29, 0x91, 0x9f, 0x84, 0x8f, 0x9e, 0x33,
- 0x3a, 0x97, 0x82, 0xcc, 0x1a, 0xe8, 0x7d, 0xc8, 0xd1, 0xc2, 0x8e, 0xa2, 0x1b, 0x16, 0x8f, 0x64,
- 0x81, 0x84, 0x8b, 0x15, 0x61, 0x36, 0x0e, 0x09, 0xcf, 0x81, 0x61, 0xc9, 0x59, 0x83, 0xff, 0xf2,
- 0xa5, 0x44, 0xd9, 0x40, 0x4a, 0x74, 0x13, 0x72, 0x64, 0xf4, 0x96, 0xa1, 0xb6, 0x31, 0x8d, 0x42,
- 0x39, 0xd9, 0x23, 0x48, 0xff, 0x2a, 0x40, 0x39, 0x14, 0x18, 0x27, 0xce, 0xdd, 0x39, 0x95, 0xf1,
- 0x20, 0x12, 0x35, 0x36, 0xfb, 0x5b, 0x00, 0xe7, 0xaa, 0xa5, 0x3c, 0x53, 0x07, 0x36, 0xee, 0xf0,
- 0x25, 0xc8, 0x9d, 0xab, 0xd6, 0x27, 0x94, 0x10, 0x1c, 0x4c, 0x2a, 0x34, 0x18, 0x1f, 0x16, 0x92,
- 0xf6, 0x63, 0x21, 0xa8, 0x0a, 0x59, 0xc3, 0xd4, 0x74, 0x53, 0xb3, 0x2f, 0xe9, 0x9a, 0x24, 0x64,
- 0xb7, 0x2d, 0x1d, 0xc2, 0x95, 0x89, 0x31, 0x19, 0x3d, 0x84, 0x9c, 0x17, 0xce, 0x05, 0x9a, 0x7a,
- 0x4e, 0x81, 0x98, 0x3c, 0x5e, 0xb2, 0x24, 0x57, 0x26, 0x46, 0x65, 0xd4, 0x80, 0xb4, 0x89, 0xad,
- 0x61, 0x8f, 0xa5, 0xc2, 0xa5, 0xfb, 0x6f, 0xcd, 0x17, 0xcd, 0x09, 0x75, 0xd8, 0xb3, 0x65, 0x2e,
- 0x2c, 0x7d, 0x01, 0x69, 0x46, 0x41, 0x79, 0xc8, 0x1c, 0xef, 0x3f, 0xde, 0x3f, 0xf8, 0x64, 0x5f,
- 0x8c, 0x21, 0x80, 0x74, 0xad, 0x5e, 0x6f, 0x1c, 0xb6, 0x44, 0x01, 0xe5, 0x20, 0x55, 0xdb, 0x3a,
- 0x90, 0x5b, 0x62, 0x9c, 0x90, 0xe5, 0xc6, 0x6e, 0xa3, 0xde, 0x12, 0x13, 0x68, 0x09, 0x8a, 0xec,
- 0xb7, 0xf2, 0xe8, 0x40, 0x7e, 0x52, 0x6b, 0x89, 0x49, 0x1f, 0xe9, 0xa8, 0xb1, 0xbf, 0xdd, 0x90,
- 0xc5, 0x94, 0xf4, 0x0e, 0x5c, 0x8f, 0x8c, 0xff, 0x1e, 0x0a, 0x25, 0xf8, 0x50, 0x28, 0xe9, 0xc7,
- 0x38, 0xb9, 0xe0, 0x44, 0x05, 0x75, 0xb4, 0x1b, 0x9a, 0xf8, 0xfd, 0x05, 0x32, 0x82, 0xd0, 0xec,
- 0xd1, 0xab, 0x50, 0x32, 0xf1, 0x19, 0xb6, 0xdb, 0x5d, 0x96, 0x64, 0x38, 0x30, 0x55, 0x91, 0x53,
- 0xa9, 0x90, 0xc5, 0xd8, 0xbe, 0xc4, 0x6d, 0x5b, 0x61, 0x46, 0x60, 0x51, 0x30, 0x20, 0x47, 0xd8,
- 0x08, 0xf5, 0x88, 0x11, 0x89, 0xff, 0x67, 0x7e, 0x8a, 0xa9, 0x4a, 0x52, 0x55, 0x40, 0xdd, 0x0e,
- 0xa5, 0x48, 0xcf, 0x16, 0x5a, 0xec, 0x1c, 0xa4, 0xe4, 0x46, 0x4b, 0xfe, 0x54, 0x4c, 0x20, 0x04,
- 0x25, 0xfa, 0x53, 0x39, 0xda, 0xaf, 0x1d, 0x1e, 0x35, 0x0f, 0xc8, 0x62, 0x2f, 0x43, 0xd9, 0x59,
- 0x6c, 0x87, 0x98, 0x42, 0x57, 0x60, 0xa9, 0x7e, 0xf0, 0xe4, 0x70, 0xaf, 0xd1, 0x6a, 0x78, 0xe4,
- 0xb4, 0xf4, 0x3f, 0x09, 0xb8, 0x16, 0x91, 0xca, 0xa0, 0xf7, 0x01, 0xec, 0x91, 0x62, 0xe2, 0xb6,
- 0x6e, 0x76, 0xa2, 0x8d, 0xb3, 0x35, 0x92, 0x29, 0x87, 0x9c, 0xb3, 0xf9, 0xaf, 0xa9, 0xf1, 0xe0,
- 0x23, 0xae, 0x94, 0x4c, 0xd6, 0xe2, 0xd0, 0xc9, 0xad, 0x09, 0x77, 0x41, 0xdc, 0x26, 0x8a, 0xe9,
- 0x9e, 0x50, 0xc5, 0x94, 0x1f, 0x7d, 0x0a, 0xd7, 0x42, 0x61, 0x8b, 0xfb, 0x7a, 0x6b, 0x52, 0xdd,
- 0x72, 0x72, 0xf4, 0xba, 0x12, 0x8c, 0x5e, 0xcc, 0xd7, 0x5b, 0x53, 0x70, 0x8a, 0xd4, 0x4b, 0xe0,
- 0x14, 0x51, 0xe1, 0x2f, 0xbd, 0x68, 0x05, 0x60, 0x52, 0xf8, 0x0b, 0xa5, 0x15, 0x99, 0x70, 0x5a,
- 0x21, 0xfd, 0x3e, 0xb0, 0xbb, 0xc1, 0xf4, 0xf1, 0x00, 0xd2, 0x96, 0xad, 0xda, 0x43, 0x8b, 0x9f,
- 0x96, 0x87, 0xf3, 0xe6, 0xa2, 0x1b, 0xce, 0x8f, 0x23, 0x2a, 0x2e, 0x73, 0x35, 0x7f, 0x92, 0x9b,
- 0x1e, 0xb5, 0x3d, 0xa9, 0xdf, 0x62, 0x7b, 0x9a, 0x90, 0xc6, 0x17, 0x78, 0x60, 0x5b, 0x95, 0x34,
- 0x9d, 0xf1, 0xd5, 0xf1, 0x19, 0x93, 0xee, 0xad, 0x0a, 0xc9, 0x6f, 0xfe, 0xff, 0xf9, 0x9a, 0xc8,
- 0xb8, 0xdf, 0xd4, 0xfb, 0x9a, 0x8d, 0xfb, 0x86, 0x7d, 0x29, 0x73, 0x79, 0xe9, 0x5d, 0x28, 0x05,
- 0x17, 0x3d, 0xda, 0x4d, 0x78, 0x8e, 0x38, 0x2e, 0xfd, 0xb3, 0x00, 0xcb, 0x13, 0x50, 0x15, 0xf4,
- 0x90, 0x17, 0x4e, 0xd8, 0xc6, 0xdf, 0x1e, 0x5f, 0xbd, 0x00, 0xbb, 0x57, 0x3f, 0x21, 0x81, 0xd1,
- 0xbb, 0x1e, 0xb0, 0x3d, 0xf6, 0x08, 0xe8, 0x0d, 0x28, 0x5b, 0xda, 0xf9, 0x40, 0x31, 0x19, 0x40,
- 0xe3, 0x16, 0x25, 0x48, 0xf6, 0x4e, 0x3a, 0x9c, 0xd2, 0x5d, 0x87, 0x64, 0x37, 0x08, 0x44, 0x25,
- 0xc4, 0x2d, 0xb5, 0x01, 0x8d, 0xdf, 0x56, 0x26, 0x41, 0x48, 0xc2, 0x4b, 0x40, 0x48, 0xff, 0x24,
- 0xc0, 0x8d, 0x29, 0x37, 0x18, 0xf4, 0x71, 0xe8, 0x5c, 0x7c, 0xb0, 0xc8, 0xfd, 0x67, 0x83, 0xd1,
- 0x82, 0x27, 0x43, 0x7a, 0x00, 0x05, 0x3f, 0x7d, 0xbe, 0xcd, 0xdb, 0xf5, 0xe2, 0x7b, 0x10, 0xea,
- 0xba, 0x0d, 0x45, 0x13, 0xdb, 0xc4, 0x49, 0x05, 0xb0, 0xc1, 0x02, 0x23, 0xb2, 0x54, 0x74, 0x37,
- 0x99, 0x15, 0xc4, 0xb8, 0x6b, 0x3f, 0xff, 0x29, 0x00, 0x78, 0xf8, 0x97, 0x87, 0x3f, 0x09, 0x7e,
- 0xfc, 0x29, 0x04, 0x5b, 0xc6, 0xc3, 0xb0, 0x25, 0xba, 0x03, 0x65, 0x76, 0xe7, 0x20, 0xfb, 0xa6,
- 0xda, 0x43, 0x13, 0x73, 0xb4, 0xab, 0x44, 0xc9, 0x47, 0x0e, 0x15, 0x7d, 0x06, 0xd7, 0xed, 0xae,
- 0x89, 0xad, 0xae, 0xde, 0xeb, 0x28, 0xe1, 0xbd, 0x63, 0x55, 0x98, 0xb5, 0x19, 0x46, 0x27, 0x5f,
- 0x73, 0x35, 0x9c, 0x04, 0xf7, 0xef, 0x6b, 0x48, 0xd1, 0x63, 0x43, 0x12, 0x3b, 0xd7, 0x8a, 0x73,
- 0xdc, 0x40, 0x3f, 0x07, 0x50, 0x6d, 0xdb, 0xd4, 0x4e, 0x87, 0xc4, 0x3b, 0xc4, 0xc7, 0x3f, 0xe5,
- 0x1d, 0xbb, 0x9a, 0xc3, 0xb7, 0x75, 0x93, 0x9f, 0xbf, 0x15, 0x4f, 0xd4, 0x77, 0x06, 0x7d, 0x0a,
- 0xa5, 0x7d, 0x28, 0x05, 0x65, 0x9d, 0x8c, 0x99, 0x8d, 0x21, 0x98, 0x31, 0xb3, 0x0c, 0x9c, 0x67,
- 0xcc, 0x6e, 0xbe, 0x9d, 0x60, 0x35, 0x4e, 0xda, 0x90, 0x7e, 0x11, 0xa0, 0xe0, 0xf7, 0x7a, 0x73,
- 0x27, 0xb5, 0x3c, 0xc9, 0x4f, 0x8c, 0x27, 0xf9, 0x49, 0x5f, 0x9a, 0x7b, 0x1d, 0xb2, 0x24, 0xcd,
- 0x1d, 0x5a, 0xb8, 0xc3, 0x2b, 0xbf, 0x99, 0x73, 0xd5, 0x3a, 0xb6, 0x70, 0xc7, 0xe7, 0x9b, 0x32,
- 0x2f, 0xe7, 0x9b, 0x82, 0xc9, 0x72, 0x36, 0x94, 0x2c, 0xef, 0x26, 0xb3, 0x29, 0x31, 0x2d, 0xfb,
- 0xb2, 0x6d, 0xe9, 0x1b, 0x01, 0xb2, 0xee, 0x7c, 0x83, 0x25, 0xcf, 0x00, 0x42, 0xca, 0x96, 0x8b,
- 0x15, 0x3c, 0xf9, 0xf5, 0x84, 0x15, 0x80, 0x13, 0x6e, 0x01, 0xf8, 0x43, 0x37, 0xe1, 0x8b, 0xc2,
- 0x00, 0xfd, 0x8b, 0xeb, 0xc0, 0xbe, 0x3c, 0xbf, 0xfd, 0x47, 0x3e, 0x0e, 0x92, 0xb1, 0xa0, 0xbf,
- 0x80, 0xb4, 0xda, 0x76, 0x91, 0xcf, 0xd2, 0x04, 0x48, 0xd0, 0x61, 0xdd, 0x68, 0x8d, 0x6a, 0x94,
- 0x53, 0xe6, 0x12, 0x7c, 0x54, 0x71, 0x67, 0x54, 0xd2, 0x1e, 0xd1, 0xcb, 0x78, 0x82, 0x27, 0xbd,
- 0x04, 0x70, 0xbc, 0xff, 0xe4, 0x60, 0x7b, 0xe7, 0xd1, 0x4e, 0x63, 0x9b, 0x67, 0x74, 0xdb, 0xdb,
- 0x8d, 0x6d, 0x31, 0x4e, 0xf8, 0xe4, 0xc6, 0x93, 0x83, 0x93, 0xc6, 0xb6, 0x98, 0x20, 0x8d, 0xed,
- 0xc6, 0x5e, 0xed, 0xd3, 0xc6, 0xb6, 0x98, 0x94, 0x6a, 0x90, 0x73, 0x83, 0x0e, 0xad, 0x94, 0xeb,
- 0xcf, 0xb0, 0xc9, 0x57, 0x8b, 0x35, 0xd0, 0x2a, 0xe4, 0xc7, 0xa1, 0x7b, 0x72, 0x41, 0x63, 0x88,
- 0x3d, 0x09, 0x03, 0x65, 0x57, 0x07, 0x8f, 0x4d, 0x1f, 0x42, 0xc6, 0x18, 0x9e, 0x2a, 0x8e, 0xed,
- 0x86, 0x00, 0x6f, 0xe7, 0xfe, 0x36, 0x3c, 0xed, 0x69, 0xed, 0xc7, 0xf8, 0x92, 0x07, 0xb9, 0xb4,
- 0x31, 0x3c, 0x7d, 0xcc, 0x4c, 0x9c, 0x0d, 0x23, 0x3e, 0x65, 0x18, 0x89, 0xd0, 0x30, 0xd0, 0x1d,
- 0x28, 0x0c, 0xf4, 0x0e, 0x56, 0xd4, 0x4e, 0xc7, 0xc4, 0x16, 0x8b, 0xdd, 0x39, 0xae, 0x39, 0x4f,
- 0x7a, 0x6a, 0xac, 0x43, 0xfa, 0x49, 0x00, 0x34, 0x1e, 0x68, 0xd1, 0x11, 0x2c, 0x79, 0xb1, 0xda,
- 0x49, 0x00, 0x58, 0x24, 0x58, 0x8f, 0x0e, 0xd4, 0x01, 0x0c, 0x41, 0xbc, 0x08, 0x92, 0x49, 0xd6,
- 0xb7, 0xe2, 0xb9, 0x2a, 0x83, 0xce, 0x97, 0x2e, 0x4a, 0x7c, 0xce, 0x45, 0x89, 0xc9, 0xc8, 0x95,
- 0x77, 0x7b, 0xc2, 0xae, 0x34, 0x31, 0x56, 0x01, 0x32, 0xa0, 0xd2, 0x1a, 0x13, 0xe3, 0xf3, 0x8c,
- 0x1a, 0x92, 0xf0, 0x32, 0x43, 0x92, 0x1e, 0x80, 0xf8, 0xb1, 0xfb, 0x7d, 0x2f, 0x7f, 0xf4, 0x0f,
- 0x53, 0x18, 0x1b, 0xe6, 0x05, 0x64, 0x89, 0xf7, 0xa5, 0x41, 0xe3, 0xaf, 0x20, 0xe7, 0xae, 0x9e,
- 0xfb, 0xd8, 0x26, 0x72, 0xd9, 0xf9, 0x48, 0x3c, 0x11, 0x74, 0x0f, 0x96, 0x48, 0xdc, 0x70, 0xea,
- 0xb0, 0x0c, 0x05, 0x8c, 0x53, 0x6f, 0x58, 0x66, 0x1d, 0x7b, 0x0e, 0x74, 0x45, 0x62, 0xb4, 0xc8,
- 0x62, 0x39, 0xee, 0xfc, 0x31, 0x06, 0x40, 0xee, 0x75, 0x21, 0x30, 0x94, 0xed, 0x61, 0x31, 0x90,
- 0x4c, 0x48, 0x7f, 0x17, 0x87, 0xbc, 0xaf, 0x2e, 0x84, 0xfe, 0x3c, 0x90, 0x58, 0xad, 0x4f, 0xab,
- 0x21, 0xf9, 0xb2, 0xaa, 0xc0, 0xc4, 0xe2, 0x8b, 0x4f, 0x2c, 0xaa, 0x22, 0xe7, 0x94, 0x87, 0x93,
- 0x0b, 0x97, 0x87, 0xdf, 0x04, 0x64, 0xeb, 0xb6, 0xda, 0x23, 0xc1, 0x5b, 0x1b, 0x9c, 0x2b, 0xec,
- 0xb4, 0xb3, 0x92, 0xb4, 0x48, 0x7b, 0x4e, 0x68, 0xc7, 0x21, 0xa1, 0x4b, 0x3d, 0xc8, 0xba, 0xe0,
- 0xc3, 0xe2, 0x6f, 0x58, 0x26, 0x95, 0xc1, 0xab, 0x90, 0xed, 0x63, 0x5b, 0xa5, 0x61, 0x8f, 0x81,
- 0x51, 0x6e, 0xfb, 0xde, 0x07, 0x90, 0xf7, 0x3d, 0xec, 0x21, 0x91, 0x70, 0xbf, 0xf1, 0x89, 0x18,
- 0xab, 0x66, 0xbe, 0xfd, 0x7e, 0x3d, 0xb1, 0x8f, 0x9f, 0x91, 0x4f, 0xc9, 0x8d, 0x7a, 0xb3, 0x51,
- 0x7f, 0x2c, 0x0a, 0xd5, 0xfc, 0xb7, 0xdf, 0xaf, 0x67, 0x64, 0x4c, 0x4b, 0x28, 0xf7, 0x1e, 0x43,
- 0x39, 0xb4, 0x03, 0x41, 0x07, 0x8d, 0xa0, 0xb4, 0x7d, 0x7c, 0xb8, 0xb7, 0x53, 0xaf, 0xb5, 0x1a,
- 0xca, 0xc9, 0x41, 0xab, 0x21, 0x0a, 0xe8, 0x1a, 0x2c, 0xef, 0xed, 0xfc, 0x75, 0xb3, 0xa5, 0xd4,
- 0xf7, 0x76, 0x1a, 0xfb, 0x2d, 0xa5, 0xd6, 0x6a, 0xd5, 0xea, 0x8f, 0xc5, 0xf8, 0xfd, 0xff, 0x05,
- 0x28, 0xd7, 0xb6, 0xea, 0x3b, 0x35, 0xc3, 0xe8, 0x69, 0x6d, 0x95, 0xba, 0xfb, 0x3a, 0x24, 0x29,
- 0xb2, 0x3c, 0xf5, 0x89, 0x6f, 0x75, 0x7a, 0x5d, 0x0c, 0x3d, 0x82, 0x14, 0x05, 0x9d, 0xd1, 0xf4,
- 0x37, 0xbf, 0xd5, 0x19, 0x85, 0x32, 0x32, 0x18, 0x7a, 0x6e, 0xa6, 0x3e, 0x02, 0xae, 0x4e, 0xaf,
- 0x9b, 0xa1, 0x3d, 0xc8, 0x38, 0x80, 0xdb, 0xac, 0x97, 0xb9, 0xd5, 0x99, 0xc5, 0x2c, 0x32, 0x35,
- 0x06, 0x5c, 0x4e, 0x7f, 0x1f, 0x5c, 0x9d, 0x51, 0x51, 0x43, 0x32, 0xe4, 0x3c, 0x28, 0x7b, 0xf6,
- 0x53, 0xe5, 0xea, 0x1c, 0x15, 0x3e, 0xf4, 0x05, 0x14, 0x83, 0xd0, 0xdc, 0x7c, 0xaf, 0x88, 0xab,
- 0x73, 0x56, 0xdf, 0x88, 0xfe, 0x20, 0x4e, 0x37, 0xdf, 0xab, 0xe2, 0xea, 0x9c, 0xc5, 0x38, 0xf4,
- 0x25, 0x2c, 0x8d, 0xe3, 0x68, 0xf3, 0x3f, 0x32, 0xae, 0x2e, 0x50, 0x9e, 0x43, 0x7d, 0x40, 0x13,
- 0xf0, 0xb7, 0x05, 0xde, 0x1c, 0x57, 0x17, 0xa9, 0xd6, 0xa1, 0x0e, 0x94, 0xc3, 0xd8, 0xd4, 0xbc,
- 0x6f, 0x90, 0xab, 0x73, 0x57, 0xee, 0xd8, 0x57, 0x82, 0x18, 0xc9, 0xbc, 0x6f, 0x92, 0xab, 0x73,
- 0x17, 0xf2, 0xd0, 0x31, 0x80, 0xef, 0x6e, 0x3b, 0xc7, 0x1b, 0xe5, 0xea, 0x3c, 0x25, 0x3d, 0x64,
- 0xc0, 0xf2, 0xa4, 0xcb, 0xec, 0x22, 0x4f, 0x96, 0xab, 0x0b, 0x55, 0xfa, 0x88, 0x3d, 0x07, 0xef,
- 0xa5, 0xf3, 0x3d, 0x61, 0xae, 0xce, 0x59, 0xf2, 0xdb, 0xda, 0xfa, 0xe1, 0xc5, 0xaa, 0xf0, 0xe3,
- 0x8b, 0x55, 0xe1, 0xa7, 0x17, 0xab, 0xc2, 0x77, 0x3f, 0xaf, 0xc6, 0x7e, 0xfc, 0x79, 0x35, 0xf6,
- 0xdf, 0x3f, 0xaf, 0xc6, 0xfe, 0xe6, 0xee, 0xb9, 0x66, 0x77, 0x87, 0xa7, 0x1b, 0x6d, 0xbd, 0x4f,
- 0xff, 0x41, 0x62, 0xa8, 0x97, 0x9b, 0x4c, 0x27, 0x69, 0xf9, 0xfe, 0xa7, 0x72, 0x9a, 0xa6, 0xb1,
- 0xee, 0xc1, 0x1f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x71, 0x2a, 0xdd, 0xc7, 0x32, 0x00, 0x00,
+ // 3807 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5b, 0xcb, 0x6f, 0x1b, 0x57,
+ 0x77, 0xe7, 0xf0, 0xcd, 0xc3, 0xd7, 0xe8, 0x4a, 0xb6, 0x69, 0xda, 0x96, 0xf4, 0x8d, 0x9b, 0xd8,
+ 0x71, 0x12, 0xc9, 0xb1, 0x9b, 0x38, 0x69, 0x92, 0x02, 0x14, 0x45, 0x97, 0x92, 0x65, 0x49, 0x19,
+ 0x51, 0x0a, 0xd2, 0x34, 0x19, 0x8c, 0xc8, 0x2b, 0x71, 0x62, 0x92, 0x33, 0x99, 0x19, 0xca, 0x54,
+ 0xb6, 0x6d, 0x81, 0x22, 0x8b, 0x22, 0xff, 0x40, 0x76, 0x2d, 0xd0, 0x4d, 0xf7, 0x5d, 0xb5, 0xcb,
+ 0xa6, 0xe8, 0x26, 0xcb, 0x02, 0x45, 0xdd, 0xc0, 0xd9, 0xb5, 0xab, 0xac, 0xba, 0xe9, 0xa2, 0xb8,
+ 0x8f, 0x79, 0x91, 0x33, 0x7c, 0xc4, 0x01, 0x8a, 0x6f, 0xc7, 0x7b, 0xee, 0x39, 0xe7, 0xbe, 0xce,
+ 0x3d, 0xe7, 0xdc, 0xdf, 0x19, 0xc2, 0x0d, 0x1b, 0x0f, 0x3a, 0xd8, 0xec, 0x6b, 0x03, 0x7b, 0x53,
+ 0x3d, 0x6d, 0x6b, 0x9b, 0xf6, 0xa5, 0x81, 0xad, 0x0d, 0xc3, 0xd4, 0x6d, 0x1d, 0x95, 0xbd, 0xce,
+ 0x0d, 0xd2, 0x59, 0xbd, 0xe5, 0xe3, 0x6e, 0x9b, 0x97, 0x86, 0xad, 0x6f, 0x1a, 0xa6, 0xae, 0x9f,
+ 0x31, 0xfe, 0xaa, 0x5f, 0x19, 0xd5, 0xb3, 0xd9, 0x51, 0xad, 0x2e, 0xef, 0xbc, 0x39, 0xd1, 0x79,
+ 0xda, 0xd3, 0xdb, 0xcf, 0x22, 0x7b, 0x7d, 0x13, 0x09, 0xf4, 0xf2, 0x71, 0x9f, 0xe1, 0x4b, 0xa7,
+ 0xf7, 0xd6, 0x84, 0xac, 0xa1, 0x9a, 0x6a, 0xdf, 0xe9, 0x5e, 0xf5, 0x75, 0x5f, 0x60, 0xd3, 0xd2,
+ 0xf4, 0x41, 0x40, 0xf9, 0xda, 0xb9, 0xae, 0x9f, 0xf7, 0xf0, 0x26, 0x6d, 0x9d, 0x0e, 0xcf, 0x36,
+ 0x6d, 0xad, 0x8f, 0x2d, 0x5b, 0xed, 0x1b, 0x9c, 0x61, 0xe5, 0x5c, 0x3f, 0xd7, 0xe9, 0xcf, 0x4d,
+ 0xf2, 0x8b, 0x51, 0xa5, 0xff, 0xce, 0x41, 0x46, 0xc6, 0x5f, 0x0f, 0xb1, 0x65, 0xa3, 0x07, 0x90,
+ 0xc4, 0xed, 0xae, 0x5e, 0x11, 0xd6, 0x85, 0xbb, 0xf9, 0x07, 0x37, 0x37, 0xc6, 0xf6, 0x6d, 0x83,
+ 0xf3, 0x35, 0xda, 0x5d, 0xbd, 0x19, 0x93, 0x29, 0x2f, 0x7a, 0x17, 0x52, 0x67, 0xbd, 0xa1, 0xd5,
+ 0xad, 0xc4, 0xa9, 0xd0, 0xad, 0x28, 0xa1, 0xc7, 0x84, 0xa9, 0x19, 0x93, 0x19, 0x37, 0x19, 0x4a,
+ 0x1b, 0x9c, 0xe9, 0x95, 0xc4, 0xf4, 0xa1, 0x76, 0x06, 0x67, 0x74, 0x28, 0xc2, 0x8b, 0xb6, 0x00,
+ 0xb4, 0x81, 0x66, 0x2b, 0xed, 0xae, 0xaa, 0x0d, 0x2a, 0x49, 0x2a, 0xf9, 0xbb, 0x68, 0x49, 0xcd,
+ 0xae, 0x13, 0xc6, 0x66, 0x4c, 0xce, 0x69, 0x4e, 0x83, 0x4c, 0xf7, 0xeb, 0x21, 0x36, 0x2f, 0x2b,
+ 0xa9, 0xe9, 0xd3, 0xfd, 0x84, 0x30, 0x91, 0xe9, 0x52, 0x6e, 0xf4, 0x11, 0x64, 0xdb, 0x5d, 0xdc,
+ 0x7e, 0xa6, 0xd8, 0xa3, 0x4a, 0x86, 0x4a, 0xae, 0x45, 0x49, 0xd6, 0x09, 0x5f, 0x6b, 0xd4, 0x8c,
+ 0xc9, 0x99, 0x36, 0xfb, 0x89, 0xf6, 0xa1, 0xd4, 0xd3, 0x2c, 0x5b, 0xb1, 0x06, 0xaa, 0x61, 0x75,
+ 0x75, 0xdb, 0xaa, 0xe4, 0xa9, 0x8e, 0xd7, 0xa2, 0x74, 0xec, 0x69, 0x96, 0x7d, 0xe4, 0x30, 0x37,
+ 0x63, 0x72, 0xb1, 0xe7, 0x27, 0x10, 0x7d, 0xfa, 0xd9, 0x19, 0x36, 0x5d, 0x85, 0x95, 0xc2, 0x74,
+ 0x7d, 0x07, 0x84, 0xdb, 0x91, 0x27, 0xfa, 0x74, 0x3f, 0x01, 0x7d, 0x0e, 0xcb, 0x3d, 0x5d, 0xed,
+ 0xb8, 0xea, 0x94, 0x76, 0x77, 0x38, 0x78, 0x56, 0x29, 0x52, 0xa5, 0x6f, 0x44, 0x4e, 0x52, 0x57,
+ 0x3b, 0x8e, 0x8a, 0x3a, 0x11, 0x68, 0xc6, 0xe4, 0xa5, 0xde, 0x38, 0x11, 0x7d, 0x09, 0x2b, 0xaa,
+ 0x61, 0xf4, 0x2e, 0xc7, 0xb5, 0x97, 0xa8, 0xf6, 0x7b, 0x51, 0xda, 0x6b, 0x44, 0x66, 0x5c, 0x3d,
+ 0x52, 0x27, 0xa8, 0xa8, 0x03, 0x57, 0xcf, 0xb4, 0x81, 0xda, 0xd3, 0xbe, 0xc1, 0xde, 0x10, 0xd6,
+ 0xe5, 0xa0, 0x5d, 0x59, 0xa1, 0x23, 0xbc, 0x15, 0x69, 0x91, 0x5c, 0xca, 0x51, 0x77, 0x74, 0x39,
+ 0x68, 0x37, 0x63, 0xf2, 0xca, 0x59, 0x08, 0x1d, 0xb5, 0x40, 0x34, 0x4c, 0x6c, 0xa8, 0x26, 0x56,
+ 0x0c, 0x53, 0x37, 0x74, 0x4b, 0xed, 0x55, 0xca, 0x54, 0xff, 0x9d, 0x28, 0xfd, 0x87, 0x8c, 0xff,
+ 0x90, 0xb3, 0x37, 0x63, 0x72, 0xd9, 0x08, 0x92, 0x98, 0x56, 0xbd, 0x8d, 0x2d, 0xcb, 0xd3, 0x2a,
+ 0xce, 0xd2, 0x4a, 0xf9, 0x83, 0x5a, 0x03, 0x24, 0xd4, 0x80, 0x3c, 0x1e, 0x11, 0x71, 0xe5, 0x42,
+ 0xb7, 0x71, 0x65, 0x89, 0x2a, 0x94, 0x22, 0x6f, 0x33, 0x65, 0x3d, 0xd1, 0x6d, 0xdc, 0x8c, 0xc9,
+ 0x80, 0xdd, 0x16, 0x52, 0xe1, 0xca, 0x05, 0x36, 0xb5, 0xb3, 0x4b, 0xaa, 0x46, 0xa1, 0x3d, 0xc4,
+ 0xeb, 0x54, 0x10, 0x55, 0xf8, 0x66, 0x94, 0xc2, 0x13, 0x2a, 0x44, 0x54, 0x34, 0x1c, 0x91, 0x66,
+ 0x4c, 0x5e, 0xbe, 0x98, 0x24, 0x13, 0x43, 0x76, 0xcf, 0x8e, 0xba, 0xd1, 0xca, 0xf2, 0x74, 0x43,
+ 0x76, 0xce, 0x6c, 0x8b, 0x30, 0x13, 0x43, 0x3e, 0xf3, 0x13, 0xb6, 0x32, 0x90, 0xba, 0x50, 0x7b,
+ 0x43, 0xbc, 0x9b, 0xcc, 0xa6, 0xc5, 0xcc, 0x6e, 0x32, 0x9b, 0x15, 0x73, 0xbb, 0xc9, 0x6c, 0x4e,
+ 0x84, 0xdd, 0x64, 0x16, 0xc4, 0xbc, 0x74, 0x07, 0xf2, 0x3e, 0x27, 0x86, 0x2a, 0x90, 0xe9, 0x63,
+ 0xcb, 0x52, 0xcf, 0x31, 0xf5, 0x79, 0x39, 0xd9, 0x69, 0x4a, 0x25, 0x28, 0xf8, 0x1d, 0x97, 0xf4,
+ 0x9d, 0xe0, 0x4a, 0x12, 0x9f, 0x44, 0x24, 0xb9, 0x13, 0x76, 0x24, 0x79, 0x13, 0xdd, 0x86, 0x22,
+ 0x5d, 0x8a, 0xe2, 0xf4, 0x13, 0xc7, 0x98, 0x94, 0x0b, 0x94, 0x78, 0xc2, 0x99, 0xd6, 0x20, 0x6f,
+ 0x3c, 0x30, 0x5c, 0x96, 0x04, 0x65, 0x01, 0xe3, 0x81, 0xe1, 0x30, 0xfc, 0x0e, 0x0a, 0x64, 0xdd,
+ 0x2e, 0x47, 0x92, 0x0e, 0x92, 0x27, 0x34, 0xce, 0x22, 0xfd, 0x45, 0x02, 0xc4, 0x71, 0x67, 0x87,
+ 0xde, 0x87, 0x24, 0xf1, 0xfb, 0xdc, 0x85, 0x57, 0x37, 0x58, 0x50, 0xd8, 0x70, 0x82, 0xc2, 0x46,
+ 0xcb, 0x09, 0x0a, 0x5b, 0xd9, 0x1f, 0x5e, 0xac, 0xc5, 0xbe, 0xfb, 0xcf, 0x35, 0x41, 0xa6, 0x12,
+ 0xe8, 0x3a, 0x71, 0x71, 0xaa, 0x36, 0x50, 0xb4, 0x0e, 0x9d, 0x72, 0x8e, 0xf8, 0x2f, 0x55, 0x1b,
+ 0xec, 0x74, 0xd0, 0x1e, 0x88, 0x6d, 0x7d, 0x60, 0xe1, 0x81, 0x35, 0xb4, 0x14, 0x16, 0x94, 0xb8,
+ 0xe3, 0x0e, 0xb8, 0x5f, 0x16, 0x8d, 0xea, 0x0e, 0xe7, 0x21, 0x65, 0x94, 0xcb, 0xed, 0x20, 0x01,
+ 0xed, 0x43, 0xf1, 0x42, 0xed, 0x69, 0x1d, 0xd5, 0xd6, 0x4d, 0xc5, 0xc2, 0x36, 0xf7, 0xe4, 0xb7,
+ 0x27, 0xce, 0xfc, 0xc4, 0xe1, 0x3a, 0xc2, 0xf6, 0xb1, 0xd1, 0x51, 0x6d, 0xbc, 0x95, 0xfc, 0xe1,
+ 0xc5, 0x9a, 0x20, 0x17, 0x2e, 0x7c, 0x3d, 0xe8, 0x75, 0x28, 0xab, 0x86, 0xa1, 0x58, 0xb6, 0x6a,
+ 0x63, 0xe5, 0xf4, 0xd2, 0xc6, 0x16, 0x75, 0xee, 0x05, 0xb9, 0xa8, 0x1a, 0xc6, 0x11, 0xa1, 0x6e,
+ 0x11, 0x22, 0x7a, 0x0d, 0x4a, 0x24, 0x0e, 0x68, 0x6a, 0x4f, 0xe9, 0x62, 0xed, 0xbc, 0x6b, 0x57,
+ 0xd2, 0xeb, 0xc2, 0xdd, 0x84, 0x5c, 0xe4, 0xd4, 0x26, 0x25, 0xa2, 0x0d, 0x58, 0x76, 0xd8, 0xda,
+ 0xba, 0x89, 0x1d, 0x5e, 0xe2, 0xf5, 0x8b, 0xf2, 0x12, 0xef, 0xaa, 0xeb, 0x26, 0x66, 0xfc, 0x52,
+ 0xc7, 0xb5, 0x14, 0x1a, 0x33, 0x10, 0x82, 0x64, 0x47, 0xb5, 0x55, 0x7a, 0x02, 0x05, 0x99, 0xfe,
+ 0x26, 0x34, 0x43, 0xb5, 0xbb, 0x7c, 0x5f, 0xe9, 0x6f, 0x74, 0x15, 0xd2, 0x5c, 0x75, 0x82, 0x4e,
+ 0x83, 0xb7, 0xd0, 0x0a, 0xa4, 0x0c, 0x53, 0xbf, 0xc0, 0x74, 0x5b, 0xb2, 0x32, 0x6b, 0x48, 0x32,
+ 0x94, 0x82, 0xf1, 0x05, 0x95, 0x20, 0x6e, 0x8f, 0xf8, 0x28, 0x71, 0x7b, 0x84, 0xee, 0x43, 0x92,
+ 0x1c, 0x00, 0x1d, 0xa3, 0x14, 0x12, 0x51, 0xb9, 0x5c, 0xeb, 0xd2, 0xc0, 0x32, 0xe5, 0x94, 0xae,
+ 0xc2, 0x4a, 0x58, 0xbc, 0x91, 0xba, 0x2e, 0x3d, 0x10, 0x37, 0xd0, 0xbb, 0x90, 0x75, 0x03, 0x0e,
+ 0xb3, 0xaf, 0xeb, 0x13, 0xa3, 0x38, 0xcc, 0xb2, 0xcb, 0x4a, 0x0c, 0x8b, 0x9c, 0x4f, 0x57, 0xe5,
+ 0x49, 0x42, 0x41, 0xce, 0xa8, 0x86, 0xd1, 0x54, 0xad, 0xae, 0x74, 0x0e, 0x95, 0xa8, 0x60, 0xe2,
+ 0xdb, 0x1f, 0x81, 0xde, 0x0e, 0x67, 0x7f, 0x7c, 0x37, 0x2f, 0x4e, 0xcf, 0xc4, 0xbd, 0x79, 0xd4,
+ 0x82, 0x87, 0x83, 0x67, 0xc4, 0x82, 0x13, 0x6c, 0x20, 0xda, 0xde, 0xe9, 0x48, 0x1d, 0xb8, 0x1e,
+ 0x19, 0x57, 0x02, 0x72, 0x42, 0x40, 0x8e, 0x1c, 0x06, 0x8b, 0x56, 0x6c, 0xe2, 0xac, 0x41, 0xa6,
+ 0x66, 0xd1, 0x75, 0xd3, 0x61, 0x72, 0x32, 0x6f, 0x49, 0x7f, 0x2d, 0xc0, 0x8d, 0x29, 0xc1, 0x05,
+ 0x7d, 0x0c, 0xf9, 0x1e, 0x59, 0x03, 0xf7, 0x75, 0x21, 0x69, 0x16, 0xbb, 0x42, 0x7b, 0x84, 0x89,
+ 0x7a, 0x34, 0x19, 0x7a, 0xee, 0x6f, 0x74, 0x1f, 0xd2, 0x6d, 0xbd, 0xdf, 0xd7, 0x6c, 0x9e, 0x6b,
+ 0x55, 0xc2, 0x2e, 0x1f, 0xe9, 0x97, 0x39, 0x9f, 0xf4, 0x4b, 0x12, 0xae, 0x86, 0x47, 0x23, 0xb4,
+ 0x0e, 0x85, 0xbe, 0x3a, 0x52, 0xec, 0x11, 0xbf, 0x32, 0x02, 0x35, 0x42, 0xe8, 0xab, 0xa3, 0xd6,
+ 0x88, 0xdd, 0x17, 0x11, 0x12, 0xf6, 0xc8, 0xaa, 0xc4, 0xd7, 0x13, 0x77, 0x0b, 0x32, 0xf9, 0x89,
+ 0x9e, 0xc2, 0x52, 0x4f, 0x6f, 0xab, 0x3d, 0xa5, 0xa7, 0x5a, 0xb6, 0xc2, 0xe7, 0xc2, 0x1c, 0xc1,
+ 0x8d, 0x49, 0x7b, 0xa3, 0xdd, 0xc4, 0x59, 0xd2, 0x5b, 0x1b, 0x93, 0xcb, 0x54, 0x76, 0x4f, 0xb5,
+ 0x6c, 0xd6, 0x85, 0xb6, 0x21, 0xdf, 0xd7, 0xac, 0x53, 0xdc, 0x55, 0x2f, 0x34, 0xdd, 0xac, 0x24,
+ 0xd7, 0x13, 0xa1, 0xa9, 0xe0, 0x53, 0x8f, 0x87, 0x6b, 0xf2, 0x8b, 0xf9, 0xec, 0x24, 0x15, 0xb8,
+ 0x47, 0x8e, 0x27, 0x4c, 0x2f, 0xec, 0x09, 0xef, 0xc3, 0xca, 0x00, 0x8f, 0x6c, 0xc5, 0xf5, 0x32,
+ 0x16, 0x33, 0xde, 0x0c, 0xb5, 0x01, 0x44, 0xfa, 0x5c, 0xd7, 0x64, 0x11, 0x3b, 0x26, 0x66, 0x62,
+ 0xea, 0xc3, 0x41, 0xa7, 0x92, 0x5d, 0x17, 0xee, 0xa6, 0x64, 0xd6, 0x40, 0x8f, 0xa0, 0x42, 0x3d,
+ 0x08, 0x73, 0xab, 0xe4, 0x08, 0x71, 0xc7, 0x71, 0x27, 0x39, 0x6a, 0xba, 0x57, 0x48, 0x3f, 0x75,
+ 0xdc, 0x7b, 0xb4, 0x97, 0xbb, 0xa0, 0x4d, 0x58, 0x61, 0xe9, 0x00, 0x36, 0x49, 0x5e, 0x40, 0x0e,
+ 0x89, 0x4e, 0x00, 0xe8, 0x04, 0x96, 0x9c, 0xbe, 0x43, 0x53, 0x6f, 0x8d, 0xe8, 0xf8, 0xf7, 0x5d,
+ 0x81, 0x8e, 0x42, 0xee, 0x9a, 0x73, 0x41, 0xf2, 0xf4, 0xe6, 0x20, 0xa7, 0xaf, 0x66, 0xb8, 0xf1,
+ 0xe5, 0x91, 0x77, 0x8b, 0x0a, 0x93, 0x99, 0x30, 0xef, 0xf2, 0x7c, 0xb9, 0x77, 0xc9, 0xd6, 0x20,
+ 0xff, 0xf5, 0x50, 0x37, 0x87, 0x7d, 0x36, 0xa5, 0x22, 0x9d, 0x12, 0x30, 0x12, 0xbd, 0xd3, 0xff,
+ 0x94, 0xf2, 0xd9, 0x5c, 0x30, 0x31, 0xe1, 0x16, 0x25, 0x78, 0x16, 0x75, 0xe4, 0x9b, 0xb8, 0xdf,
+ 0xa8, 0xe2, 0xf3, 0x1a, 0x95, 0xbb, 0xb6, 0x68, 0xbb, 0x4a, 0xfc, 0x3a, 0xbb, 0x42, 0x90, 0xa4,
+ 0x2b, 0x4c, 0x32, 0x3f, 0x4e, 0x7e, 0x47, 0xda, 0x9a, 0x7b, 0xfe, 0x69, 0xff, 0xf9, 0x3b, 0x16,
+ 0x98, 0xf9, 0xcd, 0x2c, 0x30, 0x1b, 0x69, 0x81, 0xbf, 0xda, 0xd6, 0x5a, 0x70, 0x75, 0x4c, 0x50,
+ 0x19, 0xd2, 0x58, 0x4b, 0xad, 0x6d, 0xec, 0x9d, 0xe3, 0x38, 0x19, 0x9f, 0x22, 0x79, 0x39, 0xa0,
+ 0x97, 0xc5, 0xe9, 0x48, 0x0b, 0xce, 0x2f, 0x6a, 0xc1, 0x85, 0x79, 0x2c, 0xb8, 0xf8, 0x2a, 0x16,
+ 0x5c, 0x9a, 0xb0, 0xe0, 0x63, 0x58, 0x9a, 0xc8, 0x8d, 0x5d, 0x73, 0x10, 0x42, 0xcd, 0x21, 0x1e,
+ 0x6e, 0x0e, 0x09, 0x9f, 0x39, 0x48, 0x3f, 0x09, 0x50, 0x8d, 0x4e, 0x91, 0x43, 0x07, 0x78, 0x07,
+ 0xae, 0x78, 0xa9, 0x92, 0x7f, 0x1f, 0x59, 0x38, 0x42, 0x6e, 0xa7, 0xb7, 0x91, 0x53, 0xd2, 0x0a,
+ 0x36, 0xa7, 0xa4, 0xdf, 0x44, 0x9f, 0x42, 0x39, 0x98, 0xdc, 0x93, 0xdc, 0x89, 0x5c, 0x97, 0x3f,
+ 0x98, 0xb8, 0x2e, 0xde, 0x5e, 0xb8, 0x73, 0x96, 0x4b, 0x17, 0xfe, 0xa6, 0x25, 0xfd, 0x6b, 0xdc,
+ 0x4d, 0x1d, 0x02, 0x99, 0x3a, 0xfa, 0xc0, 0x0d, 0x5d, 0xc2, 0xbc, 0x37, 0x9b, 0x0b, 0x8c, 0xdf,
+ 0xe6, 0xf8, 0xab, 0xdd, 0xe6, 0x44, 0xe8, 0xf1, 0x25, 0xc3, 0xb7, 0x2a, 0xe5, 0xdf, 0xaa, 0xb7,
+ 0x21, 0xc5, 0xc2, 0x36, 0x0b, 0x28, 0xd7, 0x26, 0xef, 0x05, 0x8b, 0xd8, 0x8c, 0x0b, 0xd5, 0x20,
+ 0xcb, 0x9e, 0x01, 0x5a, 0x87, 0x3b, 0x80, 0xeb, 0x11, 0x12, 0x3b, 0xdb, 0x5b, 0xf9, 0x97, 0x2f,
+ 0xd6, 0x32, 0xbc, 0x21, 0x67, 0xa8, 0xdc, 0x4e, 0x47, 0xfa, 0x3b, 0x80, 0xac, 0x8c, 0x2d, 0x83,
+ 0x98, 0x30, 0xda, 0x82, 0x1c, 0x1e, 0xb5, 0xb1, 0x61, 0x3b, 0x4f, 0x8e, 0xf0, 0x27, 0x1d, 0xe3,
+ 0x6e, 0x38, 0x9c, 0xcd, 0x98, 0xec, 0x89, 0xa1, 0x87, 0x1c, 0xdf, 0x89, 0x86, 0x6a, 0xb8, 0xb8,
+ 0x1f, 0xe0, 0x79, 0xcf, 0x01, 0x78, 0x58, 0xa0, 0x5f, 0x8d, 0x94, 0x1a, 0x43, 0x78, 0x1e, 0x72,
+ 0x84, 0x27, 0x39, 0x63, 0xb0, 0x00, 0xc4, 0x53, 0x0f, 0x40, 0x3c, 0xa9, 0x19, 0xcb, 0x8c, 0xc0,
+ 0x78, 0xde, 0x73, 0x30, 0x9e, 0xf4, 0x8c, 0x19, 0x8f, 0x81, 0x3c, 0x1f, 0x4f, 0x80, 0x3c, 0xeb,
+ 0x91, 0xa2, 0x21, 0x28, 0xcf, 0xc1, 0x04, 0xca, 0x93, 0xa5, 0x4a, 0x5e, 0x8f, 0x54, 0x32, 0x03,
+ 0xe6, 0x39, 0x98, 0x80, 0x79, 0x72, 0x33, 0x14, 0xce, 0xc0, 0x79, 0xfe, 0x2c, 0x1c, 0xe7, 0x81,
+ 0x48, 0x24, 0x86, 0x4f, 0x73, 0x3e, 0xa0, 0x47, 0x89, 0x00, 0x7a, 0xf2, 0x91, 0x70, 0x01, 0x53,
+ 0x3f, 0x37, 0xd2, 0x83, 0x23, 0x91, 0x1e, 0x06, 0x71, 0xbc, 0x1d, 0x6d, 0x9a, 0x8b, 0x40, 0x3d,
+ 0xc7, 0x21, 0x50, 0x0f, 0xcb, 0x91, 0xee, 0x46, 0x0e, 0x30, 0x07, 0xd6, 0x73, 0x1c, 0x82, 0xf5,
+ 0x14, 0x67, 0xaa, 0x9d, 0x09, 0xf6, 0x3c, 0x0e, 0x82, 0x3d, 0xa5, 0x88, 0xb7, 0xb4, 0xe7, 0x19,
+ 0x22, 0xd0, 0x9e, 0xd3, 0x28, 0xb4, 0xa7, 0x1c, 0x89, 0xa2, 0x31, 0x8d, 0x0b, 0xc0, 0x3d, 0x07,
+ 0x13, 0x70, 0x8f, 0x38, 0xc3, 0xa0, 0xe7, 0xc4, 0x7b, 0xa4, 0x37, 0x48, 0xc8, 0x1e, 0xf3, 0x7d,
+ 0xc4, 0x8f, 0x63, 0xd3, 0xd4, 0x4d, 0x8e, 0xd0, 0xb0, 0x86, 0x74, 0x97, 0xbc, 0xd7, 0x3d, 0x3f,
+ 0x37, 0x05, 0x03, 0x2a, 0x43, 0x31, 0xe0, 0xdb, 0xa4, 0x7f, 0x10, 0x3c, 0x59, 0x8a, 0x02, 0xf9,
+ 0xdf, 0xfa, 0x39, 0xfe, 0xd6, 0x1f, 0x7b, 0x9f, 0xe6, 0x02, 0x89, 0x87, 0x3f, 0xb5, 0xe1, 0xa0,
+ 0x8f, 0xea, 0xa5, 0x34, 0xf7, 0x60, 0x89, 0x26, 0xc1, 0x2c, 0x70, 0x04, 0x62, 0x53, 0x99, 0x74,
+ 0xb0, 0x5d, 0x60, 0x41, 0xea, 0x6d, 0x58, 0xf6, 0xf1, 0xba, 0x0f, 0x6c, 0x86, 0x7c, 0x88, 0x2e,
+ 0x77, 0x8d, 0xbf, 0xb4, 0xff, 0x39, 0xe1, 0xed, 0x90, 0x87, 0x16, 0x85, 0x01, 0x3b, 0xc2, 0xaf,
+ 0x06, 0x76, 0xa2, 0x1f, 0xfa, 0xe8, 0x73, 0x58, 0x09, 0x60, 0x3e, 0x4e, 0x8e, 0x99, 0x58, 0x0c,
+ 0xfa, 0x89, 0xf9, 0x52, 0x1e, 0xb7, 0x07, 0x7d, 0x01, 0x37, 0x68, 0xb6, 0x1c, 0x91, 0xc7, 0x26,
+ 0xe7, 0xcb, 0x63, 0xaf, 0x11, 0x1d, 0xf5, 0x90, 0x5c, 0x36, 0x02, 0x10, 0x4a, 0x45, 0x00, 0x42,
+ 0x68, 0x0f, 0x0a, 0xe7, 0x78, 0x80, 0x2d, 0xcd, 0x52, 0x16, 0x78, 0x80, 0x0a, 0x24, 0xfd, 0x6f,
+ 0xc6, 0xe4, 0x3c, 0x97, 0x25, 0xbd, 0x7f, 0x25, 0x08, 0x5b, 0x65, 0x28, 0x2a, 0x7e, 0x75, 0xd2,
+ 0xff, 0x08, 0x9e, 0x59, 0xba, 0x88, 0x53, 0x5b, 0xef, 0x30, 0xf3, 0x2d, 0xca, 0xf4, 0x37, 0x79,
+ 0x6a, 0xf5, 0xf4, 0x73, 0x6e, 0x81, 0xe4, 0x27, 0xe1, 0x72, 0x2b, 0x2e, 0x39, 0x1e, 0x6e, 0x57,
+ 0x20, 0xa5, 0x0d, 0x3a, 0x78, 0xc4, 0x8d, 0x8c, 0x35, 0x88, 0xec, 0x33, 0x7c, 0xc9, 0x4d, 0x89,
+ 0xfc, 0x24, 0x7c, 0xf4, 0x9e, 0xd1, 0xb5, 0x14, 0x64, 0xd6, 0x40, 0xef, 0x43, 0x8e, 0x96, 0xcd,
+ 0x14, 0xdd, 0xb0, 0x78, 0xc0, 0x0c, 0xe4, 0x75, 0xac, 0xc4, 0xb5, 0x71, 0x48, 0x78, 0x0e, 0x0c,
+ 0x4b, 0xce, 0x1a, 0xfc, 0x97, 0x2f, 0xf3, 0xca, 0x06, 0x32, 0xaf, 0x9b, 0x90, 0x23, 0xb3, 0xb7,
+ 0x0c, 0xb5, 0x8d, 0x69, 0xb0, 0xcb, 0xc9, 0x1e, 0x41, 0xfa, 0x47, 0x01, 0xca, 0x63, 0xf1, 0x37,
+ 0x74, 0xed, 0xce, 0xad, 0x8c, 0x07, 0x11, 0xb8, 0x89, 0xd5, 0xdf, 0x02, 0x38, 0x57, 0x2d, 0xe5,
+ 0xb9, 0x3a, 0xb0, 0x71, 0x87, 0x6f, 0x41, 0xee, 0x5c, 0xb5, 0x3e, 0xa5, 0x84, 0xe0, 0x64, 0x52,
+ 0x63, 0x93, 0xf1, 0x61, 0x40, 0x69, 0x3f, 0x06, 0x84, 0xaa, 0x90, 0x35, 0x4c, 0x4d, 0x37, 0x35,
+ 0xfb, 0x92, 0xee, 0x49, 0x42, 0x76, 0xdb, 0xd2, 0x21, 0x5c, 0x09, 0x0d, 0xfd, 0xe8, 0x11, 0xe4,
+ 0xbc, 0xac, 0x41, 0xa0, 0x19, 0xee, 0x14, 0x68, 0xcd, 0xe3, 0x25, 0x5b, 0x72, 0x25, 0x34, 0xf8,
+ 0xa3, 0x06, 0xa4, 0x4d, 0x6c, 0x0d, 0x7b, 0x2c, 0xe3, 0x2e, 0x4d, 0x09, 0x8e, 0x01, 0x39, 0x42,
+ 0x1d, 0xf6, 0x6c, 0x99, 0x0b, 0x4b, 0x5f, 0x42, 0x9a, 0x51, 0x50, 0x1e, 0x32, 0xc7, 0xfb, 0x4f,
+ 0xf6, 0x0f, 0x3e, 0xdd, 0x17, 0x63, 0x08, 0x20, 0x5d, 0xab, 0xd7, 0x1b, 0x87, 0x2d, 0x51, 0x40,
+ 0x39, 0x48, 0xd5, 0xb6, 0x0e, 0xe4, 0x96, 0x18, 0x27, 0x64, 0xb9, 0xb1, 0xdb, 0xa8, 0xb7, 0xc4,
+ 0x04, 0x5a, 0x82, 0x22, 0xfb, 0xad, 0x3c, 0x3e, 0x90, 0x9f, 0xd6, 0x5a, 0x62, 0xd2, 0x47, 0x3a,
+ 0x6a, 0xec, 0x6f, 0x37, 0x64, 0x31, 0x25, 0xbd, 0x03, 0xd7, 0x23, 0xd3, 0x0c, 0x0f, 0x7d, 0x13,
+ 0x7c, 0xe8, 0x9b, 0xf4, 0x63, 0x9c, 0xbc, 0xa3, 0xa2, 0x72, 0x07, 0xb4, 0x3b, 0xb6, 0xf0, 0x07,
+ 0x0b, 0x24, 0x1e, 0x63, 0xab, 0x47, 0xaf, 0x41, 0xc9, 0xc4, 0x67, 0xd8, 0x6e, 0x77, 0x59, 0x2e,
+ 0xe3, 0xa0, 0x61, 0x45, 0x4e, 0xa5, 0x42, 0x16, 0x63, 0xfb, 0x0a, 0xb7, 0x6d, 0x85, 0x19, 0x81,
+ 0x45, 0x31, 0x87, 0x1c, 0x61, 0x23, 0xd4, 0x23, 0x46, 0x24, 0xfe, 0x9f, 0xf9, 0x29, 0xa6, 0x2a,
+ 0x49, 0x55, 0x01, 0x75, 0x3b, 0x94, 0x22, 0x3d, 0x5f, 0x68, 0xb3, 0x73, 0x90, 0x92, 0x1b, 0x2d,
+ 0xf9, 0x33, 0x31, 0x81, 0x10, 0x94, 0xe8, 0x4f, 0xe5, 0x68, 0xbf, 0x76, 0x78, 0xd4, 0x3c, 0x20,
+ 0x9b, 0xbd, 0x0c, 0x65, 0x67, 0xb3, 0x1d, 0x62, 0x0a, 0x5d, 0x81, 0xa5, 0xfa, 0xc1, 0xd3, 0xc3,
+ 0xbd, 0x46, 0xab, 0xe1, 0x91, 0xd3, 0xd2, 0x2a, 0xdc, 0x9c, 0x96, 0x2a, 0x49, 0xff, 0x9e, 0x80,
+ 0x6b, 0x11, 0xa9, 0x0e, 0x7a, 0x1f, 0xc0, 0x1e, 0x29, 0x26, 0x6e, 0xeb, 0x66, 0x27, 0xda, 0x78,
+ 0x5b, 0x23, 0x99, 0x72, 0xc8, 0x39, 0x9b, 0xff, 0x9a, 0x1a, 0x2f, 0x3e, 0xe2, 0x4a, 0xc9, 0x66,
+ 0x58, 0x1c, 0xc1, 0xb9, 0x15, 0xf2, 0x24, 0xc5, 0x6d, 0xa2, 0x98, 0x9e, 0x19, 0x55, 0x4c, 0xf9,
+ 0xd1, 0x67, 0x70, 0x6d, 0x2c, 0xac, 0xf1, 0x58, 0x60, 0x85, 0x55, 0x8d, 0xc3, 0xa3, 0xdb, 0x95,
+ 0x60, 0x74, 0x63, 0xb1, 0xc0, 0x9a, 0x02, 0x97, 0xa4, 0x5e, 0x01, 0x2e, 0x89, 0x0a, 0x8f, 0xe9,
+ 0x45, 0x2b, 0x23, 0x61, 0xe1, 0x71, 0x2c, 0xed, 0xc8, 0x8c, 0xa7, 0x1d, 0xd2, 0xff, 0x06, 0x4e,
+ 0x37, 0x98, 0x5e, 0x1e, 0x40, 0xda, 0xb2, 0x55, 0x7b, 0x68, 0xf1, 0xdb, 0xf4, 0x68, 0xde, 0x5c,
+ 0x75, 0xc3, 0xf9, 0x71, 0x44, 0xc5, 0x65, 0xae, 0xe6, 0xf7, 0xf2, 0xd0, 0xa3, 0x8e, 0x27, 0xf5,
+ 0x5b, 0x1c, 0x4f, 0x13, 0xd2, 0xf8, 0x02, 0x0f, 0x6c, 0xab, 0x92, 0xa6, 0x2b, 0xbe, 0x3a, 0xb9,
+ 0x62, 0xd2, 0xbd, 0x55, 0x21, 0xf9, 0xcf, 0x7f, 0xbd, 0x58, 0x13, 0x19, 0xf7, 0x5b, 0x7a, 0x5f,
+ 0xb3, 0x71, 0xdf, 0xb0, 0x2f, 0x65, 0x2e, 0x2f, 0xbd, 0x0b, 0xa5, 0xe0, 0xa6, 0x47, 0xbb, 0x11,
+ 0xcf, 0x51, 0xc7, 0xa5, 0xbf, 0x17, 0x60, 0x39, 0x04, 0xdc, 0x41, 0x8f, 0x78, 0x41, 0x89, 0x1d,
+ 0xfc, 0xed, 0xc9, 0xdd, 0x0b, 0xb0, 0x7b, 0x75, 0x25, 0x12, 0x38, 0xbd, 0xe7, 0x03, 0x3b, 0x63,
+ 0x8f, 0x80, 0xde, 0x84, 0xb2, 0xa5, 0x9d, 0x0f, 0x14, 0x93, 0xe1, 0x44, 0x6e, 0xb1, 0x86, 0x64,
+ 0xf7, 0xa4, 0xc3, 0x29, 0x69, 0x76, 0x48, 0xf6, 0x83, 0x40, 0x54, 0xc6, 0xb8, 0xa5, 0x36, 0xa0,
+ 0xc9, 0xd7, 0x4c, 0x18, 0x92, 0x25, 0xbc, 0x02, 0x92, 0xf5, 0xb7, 0xb4, 0x94, 0x13, 0xf9, 0xc2,
+ 0x41, 0x9f, 0x8c, 0xdd, 0x8b, 0x0f, 0x16, 0x79, 0x1f, 0x6d, 0x30, 0x5a, 0xf0, 0x66, 0x48, 0x0f,
+ 0xa1, 0xe0, 0xa7, 0xcf, 0x77, 0x78, 0xbb, 0x5e, 0xfc, 0x0f, 0x22, 0x6e, 0xb7, 0xa1, 0x68, 0x62,
+ 0x9b, 0x38, 0xa9, 0x00, 0x44, 0x59, 0x60, 0x44, 0x96, 0xaa, 0xee, 0x26, 0xb3, 0x82, 0x18, 0x77,
+ 0xed, 0xe7, 0x5f, 0x04, 0x00, 0x0f, 0x86, 0xf3, 0x60, 0x30, 0xc1, 0x0f, 0x83, 0x8d, 0xa1, 0xa7,
+ 0xf1, 0x71, 0xf4, 0x14, 0xdd, 0x81, 0x32, 0x7b, 0x93, 0x90, 0x73, 0x53, 0xed, 0xa1, 0x89, 0x39,
+ 0xe8, 0x56, 0xa2, 0xe4, 0x23, 0x87, 0x8a, 0x3e, 0x87, 0xeb, 0x76, 0xd7, 0xc4, 0x56, 0x57, 0xef,
+ 0x75, 0x94, 0xf1, 0xb3, 0x63, 0xc5, 0xa0, 0xb5, 0x19, 0x46, 0x27, 0x5f, 0x73, 0x35, 0x9c, 0x04,
+ 0xcf, 0xef, 0x1b, 0x48, 0xd1, 0x6b, 0x43, 0x12, 0x3f, 0xd7, 0x8a, 0x73, 0xdc, 0x40, 0xbf, 0x00,
+ 0x50, 0x6d, 0xdb, 0xd4, 0x4e, 0x87, 0xc4, 0x3b, 0xc4, 0x27, 0x87, 0xf2, 0xae, 0x5d, 0xcd, 0xe1,
+ 0xdb, 0xba, 0xc9, 0xef, 0xdf, 0x8a, 0x27, 0xea, 0xbb, 0x83, 0x3e, 0x85, 0xd2, 0x3e, 0x94, 0x82,
+ 0xb2, 0x4e, 0x46, 0xcd, 0xe6, 0x10, 0xcc, 0xa8, 0x59, 0x86, 0xce, 0x33, 0x6a, 0x37, 0x1f, 0x4f,
+ 0xb0, 0xda, 0x2f, 0x6d, 0x48, 0xbf, 0x08, 0x50, 0xf0, 0x7b, 0xbd, 0xb9, 0x93, 0x5e, 0xfe, 0x08,
+ 0x48, 0x4c, 0x3e, 0x02, 0x92, 0xbe, 0x34, 0xf8, 0x3a, 0x64, 0x49, 0x1a, 0x3c, 0xb4, 0x70, 0x87,
+ 0x57, 0xc4, 0x33, 0xe7, 0xaa, 0x75, 0x6c, 0xe1, 0x8e, 0xcf, 0x37, 0x65, 0x5e, 0xcd, 0x37, 0x05,
+ 0x93, 0xe9, 0xec, 0x58, 0x32, 0xbd, 0x9b, 0xcc, 0xa6, 0xc4, 0xb4, 0xec, 0xcb, 0xc6, 0xa5, 0xbf,
+ 0x14, 0x20, 0xeb, 0xae, 0x37, 0x58, 0x0a, 0x0e, 0x00, 0xb5, 0x6c, 0xbb, 0x58, 0x21, 0x98, 0x3f,
+ 0x5f, 0x58, 0x61, 0x3c, 0xe1, 0x16, 0xc6, 0x3f, 0x74, 0x13, 0xc2, 0x28, 0x28, 0xd2, 0xbf, 0xb9,
+ 0x0e, 0xfa, 0xcc, 0xf3, 0xdf, 0xbf, 0xe1, 0xf3, 0x20, 0x19, 0x0b, 0xfa, 0x23, 0x48, 0xab, 0x6d,
+ 0x17, 0x80, 0x2d, 0x85, 0x20, 0x93, 0x0e, 0xeb, 0x46, 0x6b, 0x54, 0xa3, 0x9c, 0x32, 0x97, 0xe0,
+ 0xb3, 0x8a, 0x3b, 0xb3, 0x92, 0xf6, 0x88, 0x5e, 0xc6, 0x13, 0xbc, 0xe9, 0x25, 0x80, 0xe3, 0xfd,
+ 0xa7, 0x07, 0xdb, 0x3b, 0x8f, 0x77, 0x1a, 0xdb, 0x3c, 0xe3, 0xdb, 0xde, 0x6e, 0x6c, 0x8b, 0x71,
+ 0xc2, 0x27, 0x37, 0x9e, 0x1e, 0x9c, 0x34, 0xb6, 0xc5, 0x04, 0x69, 0x6c, 0x37, 0xf6, 0x6a, 0x9f,
+ 0x35, 0xb6, 0xc5, 0xa4, 0x54, 0x83, 0x9c, 0x1b, 0x74, 0xe8, 0x17, 0x04, 0xfa, 0x73, 0x6c, 0xf2,
+ 0xdd, 0x62, 0x0d, 0xb4, 0x0a, 0xf9, 0xc9, 0x0a, 0x02, 0x79, 0xc0, 0xb1, 0xc2, 0x01, 0x09, 0x03,
+ 0x65, 0x57, 0x07, 0x8f, 0x4d, 0x1f, 0x42, 0xc6, 0x18, 0x9e, 0x2a, 0x8e, 0xed, 0x8e, 0xe1, 0xee,
+ 0xce, 0xfb, 0x6e, 0x78, 0xda, 0xd3, 0xda, 0x4f, 0xf0, 0x25, 0x0f, 0x72, 0x69, 0x63, 0x78, 0xfa,
+ 0x84, 0x99, 0x38, 0x9b, 0x46, 0x7c, 0xca, 0x34, 0x12, 0x63, 0xd3, 0x40, 0x77, 0xa0, 0x30, 0xd0,
+ 0x3b, 0x58, 0x51, 0x3b, 0x1d, 0x13, 0x5b, 0x2c, 0x76, 0xe7, 0xb8, 0xe6, 0x3c, 0xe9, 0xa9, 0xb1,
+ 0x0e, 0xe9, 0x27, 0x01, 0xd0, 0x64, 0xa0, 0x45, 0x47, 0xb0, 0xe4, 0xc5, 0x6a, 0x27, 0x01, 0x60,
+ 0x91, 0x60, 0x3d, 0x3a, 0x50, 0x07, 0x30, 0x06, 0xf1, 0x22, 0x48, 0x26, 0x59, 0xdf, 0x8a, 0xe7,
+ 0xaa, 0x0c, 0xba, 0x5e, 0xba, 0x29, 0xf1, 0x39, 0x37, 0x25, 0x26, 0x23, 0x57, 0xde, 0xed, 0x19,
+ 0x77, 0xa5, 0x89, 0x89, 0x42, 0x94, 0x01, 0x95, 0xd6, 0x84, 0x18, 0x5f, 0x67, 0xd4, 0x94, 0x84,
+ 0x57, 0x99, 0x92, 0xf4, 0x10, 0xc4, 0x4f, 0xdc, 0xf1, 0xbd, 0xfc, 0xd1, 0x3f, 0x4d, 0x61, 0x62,
+ 0x9a, 0x17, 0x90, 0x25, 0xde, 0x97, 0x06, 0x8d, 0x3f, 0x86, 0x9c, 0xbb, 0x7b, 0xee, 0x47, 0x48,
+ 0x91, 0xdb, 0xce, 0x67, 0xe2, 0x89, 0xa0, 0x7b, 0xb0, 0x44, 0xe2, 0x86, 0x53, 0x0e, 0x66, 0x28,
+ 0x61, 0x9c, 0x7a, 0xc3, 0x32, 0xeb, 0xd8, 0x73, 0xa0, 0x2d, 0x12, 0xa3, 0x45, 0x16, 0xcb, 0x71,
+ 0xe7, 0xff, 0x63, 0x02, 0xe4, 0xdd, 0x37, 0x06, 0x96, 0xb2, 0x33, 0x2c, 0x06, 0x92, 0x09, 0xe9,
+ 0xcf, 0xe3, 0x90, 0xf7, 0x95, 0xa7, 0xd0, 0x1f, 0x06, 0x12, 0xab, 0xf5, 0x69, 0xa5, 0x2c, 0x5f,
+ 0x56, 0x15, 0x58, 0x58, 0x7c, 0xf1, 0x85, 0x45, 0x15, 0x06, 0x9d, 0x2a, 0x75, 0x72, 0xe1, 0x2a,
+ 0xf5, 0x5b, 0x80, 0x6c, 0xdd, 0x56, 0x7b, 0x24, 0x78, 0x6b, 0x83, 0x73, 0x85, 0xdd, 0x76, 0x56,
+ 0x19, 0x17, 0x69, 0xcf, 0x09, 0xed, 0x38, 0x24, 0x74, 0xa9, 0x07, 0x59, 0x17, 0x9c, 0x58, 0xfc,
+ 0xdb, 0x9e, 0xb0, 0x6a, 0x7c, 0x15, 0xb2, 0x7d, 0x6c, 0xab, 0x34, 0xec, 0x31, 0xb0, 0xca, 0x6d,
+ 0xdf, 0xfb, 0x00, 0xf2, 0xbe, 0x0f, 0x9e, 0x48, 0x24, 0xdc, 0x6f, 0x7c, 0x2a, 0xc6, 0xaa, 0x99,
+ 0x6f, 0xbf, 0x5f, 0x4f, 0xec, 0xe3, 0xe7, 0x64, 0x28, 0xb9, 0x51, 0x6f, 0x36, 0xea, 0x4f, 0x44,
+ 0xa1, 0x9a, 0xff, 0xf6, 0xfb, 0xf5, 0x8c, 0x8c, 0x69, 0x25, 0xe7, 0xde, 0x13, 0x28, 0x8f, 0x9d,
+ 0x40, 0xd0, 0x41, 0x23, 0x28, 0x6d, 0x1f, 0x1f, 0xee, 0xed, 0xd4, 0x6b, 0xad, 0x86, 0x72, 0x72,
+ 0xd0, 0x6a, 0x88, 0x02, 0xba, 0x06, 0xcb, 0x7b, 0x3b, 0x7f, 0xd2, 0x6c, 0x29, 0xf5, 0xbd, 0x9d,
+ 0xc6, 0x7e, 0x4b, 0xa9, 0xb5, 0x5a, 0xb5, 0xfa, 0x13, 0x31, 0xfe, 0xe0, 0x3f, 0x00, 0xca, 0xb5,
+ 0xad, 0xfa, 0x4e, 0xcd, 0x30, 0x7a, 0x5a, 0x5b, 0xa5, 0xee, 0xbe, 0x0e, 0x49, 0x8a, 0x3c, 0x4f,
+ 0xfd, 0xc0, 0xba, 0x3a, 0xbd, 0x3c, 0x87, 0x1e, 0x43, 0x8a, 0x82, 0xd2, 0x68, 0xfa, 0x17, 0xd7,
+ 0xd5, 0x19, 0xf5, 0x3a, 0x32, 0x19, 0x7a, 0x6f, 0xa6, 0x7e, 0x82, 0x5d, 0x9d, 0x5e, 0xbe, 0x43,
+ 0x7b, 0x90, 0x71, 0x00, 0xb9, 0x59, 0xdf, 0x45, 0x57, 0x67, 0xd6, 0xd4, 0xc8, 0xd2, 0x18, 0xb0,
+ 0x39, 0xfd, 0xeb, 0xec, 0xea, 0x8c, 0xc2, 0x1e, 0x92, 0x21, 0xe7, 0x41, 0xdd, 0xb3, 0x3f, 0x14,
+ 0xaf, 0xce, 0x51, 0x68, 0x44, 0x5f, 0x42, 0x31, 0x08, 0xdd, 0xcd, 0xf7, 0x0d, 0x77, 0x75, 0xce,
+ 0x22, 0x20, 0xd1, 0x1f, 0xc4, 0xf1, 0xe6, 0xfb, 0xa6, 0xbb, 0x3a, 0x67, 0x4d, 0x10, 0x7d, 0x05,
+ 0x4b, 0x93, 0x38, 0xdb, 0xfc, 0x9f, 0x78, 0x57, 0x17, 0xa8, 0x12, 0xa2, 0x3e, 0xa0, 0x10, 0x7c,
+ 0x6e, 0x81, 0x2f, 0xbe, 0xab, 0x8b, 0x14, 0x0d, 0x51, 0x07, 0xca, 0xe3, 0xd8, 0xd4, 0xbc, 0xdf,
+ 0x66, 0x57, 0xe7, 0xae, 0xec, 0xb1, 0x51, 0x82, 0x18, 0xc9, 0xbc, 0xdf, 0x6a, 0x57, 0xe7, 0x2e,
+ 0xf4, 0xa1, 0x63, 0x00, 0xdf, 0xdb, 0x76, 0x8e, 0x6f, 0xb7, 0xab, 0xf3, 0x94, 0xfc, 0x90, 0x01,
+ 0xcb, 0x61, 0x8f, 0xd9, 0x45, 0x3e, 0xe5, 0xae, 0x2e, 0x54, 0x09, 0x24, 0xf6, 0x1c, 0x7c, 0x97,
+ 0xce, 0xf7, 0x69, 0x77, 0x75, 0xce, 0x92, 0xe0, 0xd6, 0xd6, 0x0f, 0x2f, 0x57, 0x85, 0x1f, 0x5f,
+ 0xae, 0x0a, 0x3f, 0xbd, 0x5c, 0x15, 0xbe, 0xfb, 0x79, 0x35, 0xf6, 0xe3, 0xcf, 0xab, 0xb1, 0x7f,
+ 0xfb, 0x79, 0x35, 0xf6, 0xa7, 0x77, 0xcf, 0x35, 0xbb, 0x3b, 0x3c, 0xdd, 0x68, 0xeb, 0x7d, 0xfa,
+ 0xff, 0x1d, 0x43, 0xbd, 0xdc, 0x64, 0x3a, 0x49, 0xcb, 0xf7, 0x2f, 0xa1, 0xd3, 0x34, 0x8d, 0x75,
+ 0x0f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x24, 0x0e, 0x7f, 0x45, 0x34, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -5548,6 +5676,29 @@ func (m *Request_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
return len(dAtA) - i, nil
}
+func (m *Request_FinalizeSnapshotSync) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Request_FinalizeSnapshotSync) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.FinalizeSnapshotSync != nil {
+ {
+ size, err := m.FinalizeSnapshotSync.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa2
+ }
+ return len(dAtA) - i, nil
+}
func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -5716,12 +5867,12 @@ func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
- n18, err18 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err18 != nil {
- return 0, err18
+ n19, err19 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err19 != nil {
+ return 0, err19
}
- i -= n18
- i = encodeVarintTypes(dAtA, i, uint64(n18))
+ i -= n19
+ i = encodeVarintTypes(dAtA, i, uint64(n19))
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
@@ -5963,6 +6114,53 @@ func (m *RequestApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
+func (m *RequestFinalizeSnapshotSync) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RequestFinalizeSnapshotSync) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RequestFinalizeSnapshotSync) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Commit != nil {
+ {
+ size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.LightBlock != nil {
+ {
+ size, err := m.LightBlock.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *RequestPrepareProposal) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -6031,12 +6229,12 @@ func (m *RequestPrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error)
i--
dAtA[i] = 0x3a
}
- n21, err21 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err21 != nil {
- return 0, err21
+ n24, err24 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err24 != nil {
+ return 0, err24
}
- i -= n21
- i = encodeVarintTypes(dAtA, i, uint64(n21))
+ i -= n24
+ i = encodeVarintTypes(dAtA, i, uint64(n24))
i--
dAtA[i] = 0x32
if m.Height != 0 {
@@ -6160,12 +6358,12 @@ func (m *RequestProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error)
i--
dAtA[i] = 0x42
}
- n25, err25 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err25 != nil {
- return 0, err25
+ n28, err28 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err28 != nil {
+ return 0, err28
}
- i -= n25
- i = encodeVarintTypes(dAtA, i, uint64(n25))
+ i -= n28
+ i = encodeVarintTypes(dAtA, i, uint64(n28))
i--
dAtA[i] = 0x3a
if m.Round != 0 {
@@ -6780,6 +6978,29 @@ func (m *Response_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error)
}
return len(dAtA) - i, nil
}
+func (m *Response_FinalizeSnapshotSync) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Response_FinalizeSnapshotSync) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.FinalizeSnapshotSync != nil {
+ {
+ size, err := m.FinalizeSnapshotSync.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x8a
+ }
+ return len(dAtA) - i, nil
+}
func (m *ResponseException) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -7003,12 +7224,12 @@ func (m *ResponseInitChain_GenesisTime) MarshalTo(dAtA []byte) (int, error) {
func (m *ResponseInitChain_GenesisTime) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
if m.GenesisTime != nil {
- n49, err49 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.GenesisTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.GenesisTime):])
- if err49 != nil {
- return 0, err49
+ n53, err53 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.GenesisTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.GenesisTime):])
+ if err53 != nil {
+ return 0, err53
}
- i -= n49
- i = encodeVarintTypes(dAtA, i, uint64(n49))
+ i -= n53
+ i = encodeVarintTypes(dAtA, i, uint64(n53))
i--
dAtA[i] = 0x32
}
@@ -7315,6 +7536,29 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
+func (m *ResponseFinalizeSnapshotSync) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ResponseFinalizeSnapshotSync) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ResponseFinalizeSnapshotSync) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
func (m *ResponsePrepareProposal) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -8285,12 +8529,12 @@ func (m *Misbehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x28
}
- n62, err62 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err62 != nil {
- return 0, err62
+ n66, err66 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err66 != nil {
+ return 0, err66
}
- i -= n62
- i = encodeVarintTypes(dAtA, i, uint64(n62))
+ i -= n66
+ i = encodeVarintTypes(dAtA, i, uint64(n66))
i--
dAtA[i] = 0x22
if m.Height != 0 {
@@ -8566,6 +8810,18 @@ func (m *Request_FinalizeBlock) Size() (n int) {
}
return n
}
+func (m *Request_FinalizeSnapshotSync) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.FinalizeSnapshotSync != nil {
+ l = m.FinalizeSnapshotSync.Size()
+ n += 2 + l + sovTypes(uint64(l))
+ }
+ return n
+}
func (m *RequestEcho) Size() (n int) {
if m == nil {
return 0
@@ -8749,6 +9005,23 @@ func (m *RequestApplySnapshotChunk) Size() (n int) {
return n
}
+func (m *RequestFinalizeSnapshotSync) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.LightBlock != nil {
+ l = m.LightBlock.Size()
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ if m.Commit != nil {
+ l = m.Commit.Size()
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ return n
+}
+
func (m *RequestPrepareProposal) Size() (n int) {
if m == nil {
return 0
@@ -9153,6 +9426,18 @@ func (m *Response_FinalizeBlock) Size() (n int) {
}
return n
}
+func (m *Response_FinalizeSnapshotSync) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.FinalizeSnapshotSync != nil {
+ l = m.FinalizeSnapshotSync.Size()
+ n += 2 + l + sovTypes(uint64(l))
+ }
+ return n
+}
func (m *ResponseException) Size() (n int) {
if m == nil {
return 0
@@ -9402,6 +9687,15 @@ func (m *ResponseApplySnapshotChunk) Size() (n int) {
return n
}
+func (m *ResponseFinalizeSnapshotSync) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
func (m *ResponsePrepareProposal) Size() (n int) {
if m == nil {
return 0
@@ -10409,6 +10703,41 @@ func (m *Request) Unmarshal(dAtA []byte) error {
}
m.Value = &Request_FinalizeBlock{v}
iNdEx = postIndex
+ case 20:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FinalizeSnapshotSync", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthTypes
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &RequestFinalizeSnapshotSync{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &Request_FinalizeSnapshotSync{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@@ -11673,6 +12002,128 @@ func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *RequestFinalizeSnapshotSync) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: RequestFinalizeSnapshotSync: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RequestFinalizeSnapshotSync: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field LightBlock", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthTypes
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.LightBlock == nil {
+ m.LightBlock = &types1.LightBlock{}
+ }
+ if err := m.LightBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthTypes
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Commit == nil {
+ m.Commit = &types1.Commit{}
+ }
+ if err := m.Commit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTypes(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *RequestPrepareProposal) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -13716,6 +14167,41 @@ func (m *Response) Unmarshal(dAtA []byte) error {
}
m.Value = &Response_FinalizeBlock{v}
iNdEx = postIndex
+ case 17:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FinalizeSnapshotSync", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthTypes
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &ResponseFinalizeSnapshotSync{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &Response_FinalizeSnapshotSync{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@@ -15326,6 +15812,56 @@ func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ResponseFinalizeSnapshotSync) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTypes
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ResponseFinalizeSnapshotSync: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ResponseFinalizeSnapshotSync: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTypes(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ResponsePrepareProposal) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/light/example_test.go b/light/example_test.go
index 55b93feda..74fcf6b41 100644
--- a/light/example_test.go
+++ b/light/example_test.go
@@ -2,6 +2,7 @@ package light_test
import (
"context"
+ "encoding/hex"
"testing"
"time"
@@ -113,3 +114,93 @@ func TestExampleClient(t *testing.T) {
logger.Info("verified light block", "light-block", lb)
}
+
+// Manually getting light blocks and verifying them.
+func TestClientLocalDevnet(t *testing.T) {
+ const CHAINID = "dashmate_local_12"
+
+ if testing.Short() {
+ t.Skip("skipping test in short mode")
+ }
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ logger, err := log.NewDefaultLogger(log.LogFormatPlain, log.LogLevelTrace)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // Start a test application
+ // app, err := kvstore.NewMemoryApp()
+ // require.NoError(t, err)
+
+ primary, err := httpp.New(CHAINID, "10.56.229.104:34657")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // give Tendermint time to generate some blocks
+ time.Sleep(5 * time.Second)
+
+ _, err = primary.LightBlock(ctx, 1)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ db := dbm.NewMemDB()
+
+ // pv, err := privval.LoadOrGenFilePV(conf.PrivValidator.KeyFile(), conf.PrivValidator.StateFile())
+ require.NoError(t, err)
+ coreClient, err := dashcore.NewRPCClient("10.56.229.104:30002",
+ "tenderdash", "IAzIcGlDfuow",
+ logger)
+ require.NoError(t, err)
+
+ trusted, err := hex.DecodeString("5EA22033B1855219F7579554EE75CBB48C25CDF7DF2AD6C1FD5428C1BA74CFE4")
+ require.NoError(t, err)
+
+ c, err := light.NewClientAtHeight(
+ ctx,
+ 1,
+ trusted,
+ CHAINID,
+ primary,
+ nil,
+ dbs.New(db),
+ coreClient,
+ light.Logger(logger),
+ )
+
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer func() {
+ if err := c.Cleanup(); err != nil {
+ t.Fatal(err)
+ }
+ }()
+
+ // wait for a few more blocks to be produced
+ time.Sleep(2 * time.Second)
+
+ // verify the block at height 3
+ _, err = c.VerifyLightBlockAtHeight(ctx, 3, time.Now())
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // retrieve light block at height 3
+ _, err = c.TrustedLightBlock(3)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // update to the latest height
+ lb, err := c.Update(ctx, time.Now())
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ logger.Info("verified light block", "light-block", lb)
+}
diff --git a/proto/tendermint/abci/types.proto b/proto/tendermint/abci/types.proto
index 3453c1ce4..70b2755b8 100644
--- a/proto/tendermint/abci/types.proto
+++ b/proto/tendermint/abci/types.proto
@@ -22,21 +22,22 @@ import "gogoproto/gogo.proto";
// Request types
message Request {
oneof value {
- RequestEcho echo = 1;
- RequestFlush flush = 2;
- RequestInfo info = 3;
- RequestInitChain init_chain = 4;
- RequestQuery query = 5;
- RequestCheckTx check_tx = 7;
- RequestListSnapshots list_snapshots = 11;
- RequestOfferSnapshot offer_snapshot = 12;
- RequestLoadSnapshotChunk load_snapshot_chunk = 13;
- RequestApplySnapshotChunk apply_snapshot_chunk = 14;
- RequestPrepareProposal prepare_proposal = 15;
- RequestProcessProposal process_proposal = 16;
- RequestExtendVote extend_vote = 17;
- RequestVerifyVoteExtension verify_vote_extension = 18;
- RequestFinalizeBlock finalize_block = 19;
+ RequestEcho echo = 1;
+ RequestFlush flush = 2;
+ RequestInfo info = 3;
+ RequestInitChain init_chain = 4;
+ RequestQuery query = 5;
+ RequestCheckTx check_tx = 7;
+ RequestListSnapshots list_snapshots = 11;
+ RequestOfferSnapshot offer_snapshot = 12;
+ RequestLoadSnapshotChunk load_snapshot_chunk = 13;
+ RequestApplySnapshotChunk apply_snapshot_chunk = 14;
+ RequestFinalizeSnapshotSync finalize_snapshot_sync = 20;
+ RequestPrepareProposal prepare_proposal = 15;
+ RequestProcessProposal process_proposal = 16;
+ RequestExtendVote extend_vote = 17;
+ RequestVerifyVoteExtension verify_vote_extension = 18;
+ RequestFinalizeBlock finalize_block = 19;
}
reserved 6, 8, 9, 10; // RequestBeginBlock, RequestDeliverTx, RequestEndBlock, RequestCommit
}
@@ -183,6 +184,16 @@ message RequestApplySnapshotChunk {
string sender = 3; // The P2P ID of the node who sent this chunk.
}
+// After snapshot sync, Tenderdash calls this to finalize the snapshot sync.
+// It includes the light block committed at the synced height, which Tenderdash uses
+// to reconstruct its own state.
+message RequestFinalizeSnapshotSync {
+ // light block committed at the synced height
+ tendermint.types.LightBlock light_block = 1;
+ // commit fot the `light_block`
+ tendermint.types.Commit commit = 2;
+}
+
// Prepare new block proposal, potentially altering list of transactions.
//
// #### Usage
@@ -503,22 +514,23 @@ message RequestFinalizeBlock {
message Response {
oneof value {
- ResponseException exception = 1;
- ResponseEcho echo = 2;
- ResponseFlush flush = 3;
- ResponseInfo info = 4;
- ResponseInitChain init_chain = 5;
- ResponseQuery query = 6;
- ResponseCheckTx check_tx = 7;
- ResponseListSnapshots list_snapshots = 8;
- ResponseOfferSnapshot offer_snapshot = 9;
- ResponseLoadSnapshotChunk load_snapshot_chunk = 10;
- ResponseApplySnapshotChunk apply_snapshot_chunk = 11;
- ResponsePrepareProposal prepare_proposal = 12;
- ResponseProcessProposal process_proposal = 13;
- ResponseExtendVote extend_vote = 14;
- ResponseVerifyVoteExtension verify_vote_extension = 15;
- ResponseFinalizeBlock finalize_block = 16;
+ ResponseException exception = 1;
+ ResponseEcho echo = 2;
+ ResponseFlush flush = 3;
+ ResponseInfo info = 4;
+ ResponseInitChain init_chain = 5;
+ ResponseQuery query = 6;
+ ResponseCheckTx check_tx = 7;
+ ResponseListSnapshots list_snapshots = 8;
+ ResponseOfferSnapshot offer_snapshot = 9;
+ ResponseLoadSnapshotChunk load_snapshot_chunk = 10;
+ ResponseApplySnapshotChunk apply_snapshot_chunk = 11;
+ ResponseFinalizeSnapshotSync finalize_snapshot_sync = 17;
+ ResponsePrepareProposal prepare_proposal = 12;
+ ResponseProcessProposal process_proposal = 13;
+ ResponseExtendVote extend_vote = 14;
+ ResponseVerifyVoteExtension verify_vote_extension = 15;
+ ResponseFinalizeBlock finalize_block = 16;
}
}
@@ -629,6 +641,10 @@ message ResponseApplySnapshotChunk {
}
}
+// The response to a `RequestPrepareSnapshot` message.
+message ResponseFinalizeSnapshotSync {
+}
+
message ResponsePrepareProposal {
// Possibly modified list of transactions that have been picked as part of the proposed block.
repeated TxRecord tx_records = 1;
diff --git a/spec/abci++/api.md b/spec/abci++/api.md
index 6162aaf3b..9945f1071 100644
--- a/spec/abci++/api.md
+++ b/spec/abci++/api.md
@@ -18,6 +18,7 @@
- [RequestEcho](#tendermint-abci-RequestEcho)
- [RequestExtendVote](#tendermint-abci-RequestExtendVote)
- [RequestFinalizeBlock](#tendermint-abci-RequestFinalizeBlock)
+ - [RequestFinalizeSnapshotSync](#tendermint-abci-RequestFinalizeSnapshotSync)
- [RequestFlush](#tendermint-abci-RequestFlush)
- [RequestInfo](#tendermint-abci-RequestInfo)
- [RequestInitChain](#tendermint-abci-RequestInitChain)
@@ -35,6 +36,7 @@
- [ResponseException](#tendermint-abci-ResponseException)
- [ResponseExtendVote](#tendermint-abci-ResponseExtendVote)
- [ResponseFinalizeBlock](#tendermint-abci-ResponseFinalizeBlock)
+ - [ResponseFinalizeSnapshotSync](#tendermint-abci-ResponseFinalizeSnapshotSync)
- [ResponseFlush](#tendermint-abci-ResponseFlush)
- [ResponseInfo](#tendermint-abci-ResponseInfo)
- [ResponseInitChain](#tendermint-abci-ResponseInitChain)
@@ -247,6 +249,7 @@ Request types
| offer_snapshot | [RequestOfferSnapshot](#tendermint-abci-RequestOfferSnapshot) | | |
| load_snapshot_chunk | [RequestLoadSnapshotChunk](#tendermint-abci-RequestLoadSnapshotChunk) | | |
| apply_snapshot_chunk | [RequestApplySnapshotChunk](#tendermint-abci-RequestApplySnapshotChunk) | | |
+| finalize_snapshot_sync | [RequestFinalizeSnapshotSync](#tendermint-abci-RequestFinalizeSnapshotSync) | | |
| prepare_proposal | [RequestPrepareProposal](#tendermint-abci-RequestPrepareProposal) | | |
| process_proposal | [RequestProcessProposal](#tendermint-abci-RequestProcessProposal) | | |
| extend_vote | [RequestExtendVote](#tendermint-abci-RequestExtendVote) | | |
@@ -423,6 +426,24 @@ Finalize newly decided block.
+
+
+### RequestFinalizeSnapshotSync
+After snapshot sync, Tenderdash calls this to finalize the snapshot sync.
+It includes the light block committed at the synced height, which Tenderdash uses
+to reconstruct its own state.
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| light_block | [tendermint.types.LightBlock](#tendermint-types-LightBlock) | | light block committed at the synced height |
+| commit | [tendermint.types.Commit](#tendermint-types-Commit) | | commit fot the `light_block` |
+
+
+
+
+
+
### RequestFlush
@@ -809,6 +830,7 @@ from this condition, but not sure), and _p_ receives a Precommit message for rou
| offer_snapshot | [ResponseOfferSnapshot](#tendermint-abci-ResponseOfferSnapshot) | | |
| load_snapshot_chunk | [ResponseLoadSnapshotChunk](#tendermint-abci-ResponseLoadSnapshotChunk) | | |
| apply_snapshot_chunk | [ResponseApplySnapshotChunk](#tendermint-abci-ResponseApplySnapshotChunk) | | |
+| finalize_snapshot_sync | [ResponseFinalizeSnapshotSync](#tendermint-abci-ResponseFinalizeSnapshotSync) | | |
| prepare_proposal | [ResponsePrepareProposal](#tendermint-abci-ResponsePrepareProposal) | | |
| process_proposal | [ResponseProcessProposal](#tendermint-abci-ResponseProcessProposal) | | |
| extend_vote | [ResponseExtendVote](#tendermint-abci-ResponseExtendVote) | | |
@@ -919,6 +941,16 @@ nondeterministic
+
+
+### ResponseFinalizeSnapshotSync
+The response to a `RequestPrepareSnapshot` message.
+
+
+
+
+
+
### ResponseFlush