diff --git a/hotshot_query_service/availability/index.html b/hotshot_query_service/availability/index.html index 608750099..1ff588653 100644 --- a/hotshot_query_service/availability/index.html +++ b/hotshot_query_service/availability/index.html @@ -1,5 +1,5 @@ hotshot_query_service::availability - Rust -
Expand description

Queries for HotShot chain state.

+
Expand description

Queries for HotShot chain state.

The availability API provides an objective view of the HotShot blockchain. It provides access only to normative data: that is, data which is agreed upon by all honest consensus nodes and which is immutable. This means access to core consensus data structures including leaves, diff --git a/hotshot_query_service/availability/trait.AvailabilityDataSource.html b/hotshot_query_service/availability/trait.AvailabilityDataSource.html index 22d7a86f1..43c733683 100644 --- a/hotshot_query_service/availability/trait.AvailabilityDataSource.html +++ b/hotshot_query_service/availability/trait.AvailabilityDataSource.html @@ -204,7 +204,7 @@ from: usize ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>

where Self: Sync + 'async_trait, - 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

§

type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> + 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

§

type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> where R: RangeBounds<usize> + Send

§

type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> where diff --git a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html index a24765d89..d949c1955 100644 --- a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html +++ b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html @@ -38,10 +38,10 @@ share: Option<VidShare> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Implementors§

source§

impl UpdateAvailabilityData<MockTypes> for DataSource

source§

impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
where + 'life0: 'async_trait,

Implementors§

source§

impl UpdateAvailabilityData<MockTypes> for DataSource

source§

impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
where D: UpdateAvailabilityData<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where + Types: NodeType,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where Types: NodeType, Payload<Types>: QueryablePayload, Header<Types>: QueryableHeader<Types>,

source§

impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
where diff --git a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html index 940891d5b..cb9644f7c 100644 --- a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html +++ b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html @@ -385,5 +385,5 @@ [WithDispatch] wrapper. Read more

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T
where +WithDispatch wrapper. Read more

source§

impl<T> TestableDataSource for T

\ No newline at end of file diff --git a/hotshot_query_service/data_source/sql/macro.include_migrations.html b/hotshot_query_service/data_source/sql/macro.include_migrations.html index b2b1d54c7..1808df267 100644 --- a/hotshot_query_service/data_source/sql/macro.include_migrations.html +++ b/hotshot_query_service/data_source/sql/macro.include_migrations.html @@ -1,5 +1,5 @@ include_migrations in hotshot_query_service::data_source::sql - Rust -
macro_rules! include_migrations {
+    
macro_rules! include_migrations {
     ($dir:tt) => { ... };
 }
Expand description

Embed migrations from the given directory into the current binary.

The macro invocation include_migrations!(path) evaluates to an expression of type impl Iterator<Item = Migration>. Each migration must be a text file which is an immediate child of diff --git a/hotshot_query_service/data_source/sql/type.SqlDataSource.html b/hotshot_query_service/data_source/sql/type.SqlDataSource.html index 210a2339c..057110c52 100644 --- a/hotshot_query_service/data_source/sql/type.SqlDataSource.html +++ b/hotshot_query_service/data_source/sql/type.SqlDataSource.html @@ -212,8 +212,8 @@

Composition

) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
source§

fn setup<'life0, 'async_trait>( - _network: &'life0 MockNetwork<Self> + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
source§

impl<Types, P: Send + Sync> Query for SqlDataSource<Types, P>
where @@ -221,7 +221,7 @@

Composition

&'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -232,14 +232,14 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -250,7 +250,7 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -258,7 +258,7 @@

Composition

Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -269,7 +269,7 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/data_source/storage/no_storage/index.html b/hotshot_query_service/data_source/storage/no_storage/index.html index 691ba0b58..48f298cb7 100644 --- a/hotshot_query_service/data_source/storage/no_storage/index.html +++ b/hotshot_query_service/data_source/storage/no_storage/index.html @@ -1,2 +1,2 @@ hotshot_query_service::data_source::storage::no_storage - Rust -

Modules

Structs

  • Mock storage implementation which doesn’t actually store anything.
\ No newline at end of file +

Modules

Structs

  • Mock storage implementation which doesn’t actually store anything.
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html b/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html index d6b0c50e1..425c069a0 100644 --- a/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html @@ -1,8 +1,8 @@ DataSource in hotshot_query_service::data_source::storage::no_storage::testing - Rust -
pub enum DataSource {
+    

Variants§

Trait Implementations§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

source§

fn get_block_with_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<MockTypes> ) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<MockTypes>, TransactionIndex<MockTypes>)>> + Send + 'async_trait>>
where @@ -17,49 +17,49 @@ where R: RangeBounds<usize> + Send

§

type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

source§

fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

source§

fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<LeafId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
where @@ -85,60 +85,60 @@ from: usize ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, - 'life0: 'async_trait,

source§

impl DataSourceLifeCycle for DataSource

§

type Storage = Storage

Backing storage for the data source. Read more
source§

fn create<'async_trait>( + 'life0: 'async_trait,

source§

impl DataSourceLifeCycle for DataSource

§

type Storage = Storage

Backing storage for the data source. Read more
source§

fn create<'async_trait>( node_id: usize ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
where - Self: 'async_trait,

source§

fn connect<'life0, 'async_trait>( + Self: 'async_trait,

source§

fn connect<'life0, 'async_trait>( db: &'life0 Self::Storage ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn reset<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn reset<'life0, 'async_trait>( db: &'life0 Self::Storage ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn setup<'life0, 'async_trait>( - network: &'life0 MockNetwork<Self> + 'life0: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
source§

fn handle_event<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
source§

fn handle_event<'life0, 'life1, 'async_trait>( &'life0 mut self, event: &'life1 Event<MockTypes> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

impl NodeDataSource<MockTypes> for DataSource

source§

fn block_height<'life0, 'async_trait>( + 'life1: 'async_trait,

source§

impl NodeDataSource<MockTypes> for DataSource

source§

fn block_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64 ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<MockTypes>>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl StatusDataSource for DataSource

source§

fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl StatusDataSource for DataSource

source§

fn block_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

fn elapsed_time_since_last_decide<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

fn elapsed_time_since_last_decide<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<u64>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, @@ -150,27 +150,27 @@ &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, - 'life0: 'async_trait,

source§

impl UpdateAvailabilityData<MockTypes> for DataSource

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl UpdateAvailabilityData<MockTypes> for DataSource

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<MockTypes> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( &'life0 mut self, block: BlockQueryData<MockTypes> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( &'life0 mut self, common: VidCommonQueryData<MockTypes>, share: Option<VidShare> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl VersionedDataSource for DataSource

§

type Error = QueryError

source§

fn commit<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl VersionedDataSource for DataSource

§

type Error = QueryError

source§

fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( + 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, @@ -301,5 +301,5 @@ [WithDispatch] wrapper. Read more

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T
where +WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html index 8d03fa62f..71171bf24 100644 --- a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html @@ -1,5 +1,5 @@ Storage in hotshot_query_service::data_source::storage::no_storage::testing - Rust -
pub enum Storage {
+    
pub enum Storage {
     Sql(TmpDb),
     NoStorage {
         fetch_from_port: u16,
diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html
index 0a7bc4bc8..b31aa4861 100644
--- a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html
+++ b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html
@@ -19,5 +19,5 @@
     &'life0 mut self
 ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Self::Error>> + Send + 'async_trait>>
where Self: Send + 'async_trait, - 'life0: 'async_trait,

Implementors§

source§

impl PruneStorage for NoStorage

source§

impl PruneStorage for SqlStorage

source§

impl<Types: NodeType> PruneStorage for FileSystemStorage<Types>
where + 'life0: 'async_trait,

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html b/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html index cee8a8537..779925b0c 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html @@ -23,5 +23,5 @@ &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Self::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, - 'life0: 'async_trait,

Implementors§

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html index 03586bf53..c0f9f6149 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html @@ -3,5 +3,5 @@ // Provided methods fn set_pruning_config(&mut self, _cfg: PrunerCfg) { ... } fn get_pruning_config(&self) -> Option<PrunerCfg> { ... } -}

Provided Methods§

Implementors§

source§

impl PrunerConfig for NoStorage

source§

impl PrunerConfig for SqlStorage

source§

impl<Types: NodeType> PrunerConfig for FileSystemStorage<Types>
where +}

Provided Methods§

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html b/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html index 48bb74c4d..7c3d13ae8 100644 --- a/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html +++ b/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html @@ -1,3 +1,3 @@ default_migrations in hotshot_query_service::data_source::storage::sql - Rust -
pub fn default_migrations() -> Vec<Migration>
Expand description

The migrations requied to build the default schema for this version of SqlStorage.

+
pub fn default_migrations() -> Vec<Migration>
Expand description

The migrations requied to build the default schema for this version of SqlStorage.

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/index.html b/hotshot_query_service/data_source/storage/sql/index.html index c66b796b0..94ea2db1a 100644 --- a/hotshot_query_service/data_source/storage/sql/index.html +++ b/hotshot_query_service/data_source/storage/sql/index.html @@ -1,4 +1,4 @@ hotshot_query_service::data_source::storage::sql - Rust -

Re-exports

  • pub use tokio_postgres as postgres;

Modules

Macros

Structs

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Config

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Config

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<Config> for Config

source§

fn from(pgcfg: Config) -> Self

Converts to this type from the input type.
source§

impl FromStr for Config

§

type Err = <Config as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html index a01428d67..efb1cec9f 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html +++ b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html @@ -1,115 +1,115 @@ -SqlStorage in hotshot_query_service::data_source::storage::sql - Rust -
pub struct SqlStorage { /* private fields */ }
Expand description

Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.

-

Implementations§

source§

impl SqlStorage

source

pub async fn connect(config: Config) -> Result<Self, Error>

Connect to a remote database.

-
source

pub async fn transaction(&mut self) -> QueryResult<Transaction<'_>>

Access the transaction which is accumulating all uncommitted changes to the data source.

-

Trait Implementations§

source§

impl<Types> AvailabilityStorage<Types> for SqlStorage
where +SqlStorage in hotshot_query_service::data_source::storage::sql - Rust +
pub struct SqlStorage { /* private fields */ }
Expand description

Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.

+

Implementations§

source§

impl SqlStorage

source

pub async fn connect(config: Config) -> Result<Self, Error>

Connect to a remote database.

+
source

pub async fn transaction(&mut self) -> QueryResult<Transaction<'_>>

Access the transaction which is accumulating all uncommitted changes to the data source.

+

Trait Implementations§

source§

impl<Types> AvailabilityStorage<Types> for SqlStorage
where Types: NodeType, Payload<Types>: QueryablePayload, - Header<Types>: QueryableHeader<Types>,

source§

fn get_leaf<'life0, 'async_trait>( + Header<Types>: QueryableHeader<Types>,

source§

fn get_leaf<'life0, 'async_trait>( &'life0 self, id: LeafId<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<LeafQueryData<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait>( &'life0 self, id: BlockId<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<BlockQueryData<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_header<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_header<'life0, 'async_trait>( &'life0 self, id: BlockId<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<Header<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait>( &'life0 self, id: BlockId<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait>( &'life0 self, id: BlockId<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block_with_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_block_with_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl Debug for SqlStorage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for SqlStorage

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<Types> NodeDataSource<Types> for SqlStorage
where - Types: NodeType,

source§

fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl Debug for SqlStorage

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types> NodeDataSource<Types> for SqlStorage
where + Types: NodeType,

source§

fn block_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64 ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl PruneStorage for SqlStorage

source§

fn get_disk_usage<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl PruneStorage for SqlStorage

source§

fn get_disk_usage<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<u64>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn prune<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn prune<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, QueryError>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl PrunedHeightStorage for SqlStorage

§

type Error = QueryError

source§

fn save_pruned_height<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl PrunedHeightStorage for SqlStorage

§

type Error = QueryError

source§

fn save_pruned_height<'life0, 'async_trait>( &'life0 mut self, height: u64 ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn load_pruned_height<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn load_pruned_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl PrunerConfig for SqlStorage

source§

impl Query for SqlStorage

source§

fn client<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl PrunerConfig for SqlStorage

source§

impl Query for SqlStorage

source§

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -120,14 +120,14 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -138,7 +138,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -146,7 +146,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -157,37 +157,37 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning zero or one results.
source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where + 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning zero or one results.
source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where Types: NodeType, Payload<Types>: QueryablePayload, - Header<Types>: QueryableHeader<Types>,

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( + Header<Types>: QueryableHeader<Types>,

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( &'life0 mut self, block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( &'life0 mut self, common: VidCommonQueryData<Types>, share: Option<VidShare> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl VersionedDataSource for SqlStorage

§

type Error = Error

source§

fn commit<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

impl VersionedDataSource for SqlStorage

§

type Error = Error

source§

fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( + 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, @@ -276,7 +276,7 @@ Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where +function.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, diff --git a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html index df512a687..a8cb84465 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html @@ -1,6 +1,6 @@ Transaction in hotshot_query_service::data_source::storage::sql - Rust -
pub struct Transaction<'a> { /* private fields */ }
Expand description

An atomic SQL transaction.

-

Implementations§

source§

impl<'a> Transaction<'a>

source

pub async fn execute<T, P>( +
pub struct Transaction<'a> { /* private fields */ }
Expand description

An atomic SQL transaction.

+

Implementations§

source§

impl<'a> Transaction<'a>

source

pub async fn execute<T, P>( &mut self, statement: &T, params: P @@ -12,7 +12,7 @@

The results of the statement will be reflected immediately in future statements made within this transaction, but will not be reflected in the underlying database until the transaction is committed with commit.

-

source

pub async fn execute_one<T, P>( +

source

pub async fn execute_one<T, P>( &mut self, statement: &T, params: P @@ -22,7 +22,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify exactly one row.

Returns an error if the database is not modified.

-
source

pub async fn execute_one_with_retries<T, P>( +

source

pub async fn execute_one_with_retries<T, P>( &mut self, statement: &T, params: P @@ -32,7 +32,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify exactly one row.

Returns an error if the database is not modified. Retries several times before failing.

-
source

pub async fn execute_many<T, P>( +

source

pub async fn execute_many<T, P>( &mut self, statement: &T, params: P @@ -42,7 +42,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify at least one row.

Returns an error if the database is not modified.

-
source

pub async fn execute_many_with_retries<T, P>( +

source

pub async fn execute_many_with_retries<T, P>( &mut self, statement: &T, params: P @@ -52,21 +52,21 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify at least one row.

Returns an error if the database is not modified. Retries several times before failing.

-
source

pub async fn upsert<const N: usize, P>( +
source

pub async fn upsert<const N: usize, P>( &mut self, table: &str, columns: [&str; N], pk: impl IntoIterator<Item = &str>, rows: impl IntoIterator<Item = [P; N]> ) -> QueryResult<()>
where - P: BorrowToSql + Clone,

Trait Implementations§

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

+ P: BorrowToSql + Clone,

Trait Implementations§

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

The results will reflect the state after the statements thus far added to this transaction have been applied, even though those effects have not been committed to the database yet.

-
source§

fn client<'life0, 'async_trait>( +

source§

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -77,14 +77,14 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -95,7 +95,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -103,7 +103,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -114,7 +114,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/data_source/storage/sql/testing/index.html b/hotshot_query_service/data_source/storage/sql/testing/index.html index 6aa1bd24f..ae83d2ecc 100644 --- a/hotshot_query_service/data_source/storage/sql/testing/index.html +++ b/hotshot_query_service/data_source/storage/sql/testing/index.html @@ -1,2 +1,2 @@ hotshot_query_service::data_source::storage::sql::testing - Rust -
\ No newline at end of file +
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html index 7cc38e5e8..581c08915 100644 --- a/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html +++ b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html @@ -1,5 +1,5 @@ TmpDb in hotshot_query_service::data_source::storage::sql::testing - Rust -
pub struct TmpDb { /* private fields */ }

Implementations§

source§

impl TmpDb

source

pub async fn init() -> Self

source

pub fn host(&self) -> String

source

pub fn port(&self) -> u16

source

pub fn config(&self) -> Config

Trait Implementations§

source§

impl Debug for TmpDb

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TmpDb

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for TmpDb

§

impl Send for TmpDb

§

impl Sync for TmpDb

§

impl Unpin for TmpDb

§

impl UnwindSafe for TmpDb

Blanket Implementations§

source§

impl<T> Any for T
where +
pub struct TmpDb { /* private fields */ }

Implementations§

source§

impl TmpDb

source

pub async fn init() -> Self

source

pub fn host(&self) -> String

source

pub fn port(&self) -> u16

source

pub fn config(&self) -> Config

Trait Implementations§

source§

impl Debug for TmpDb

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for TmpDb

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for TmpDb

§

impl Send for TmpDb

§

impl Sync for TmpDb

§

impl Unpin for TmpDb

§

impl UnwindSafe for TmpDb

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/data_source/storage/sql/trait.Query.html b/hotshot_query_service/data_source/storage/sql/trait.Query.html index 44e13dd05..ce098a06c 100644 --- a/hotshot_query_service/data_source/storage/sql/trait.Query.html +++ b/hotshot_query_service/data_source/storage/sql/trait.Query.html @@ -1,5 +1,5 @@ Query in hotshot_query_service::data_source::storage::sql - Rust -
pub trait Query {
+    
pub trait Query {
     // Required method
     fn client<'life0, 'async_trait>(
         &'life0 self
@@ -68,11 +68,11 @@
              Self: Sync + 'async_trait,
              'life0: 'async_trait,
              'life1: 'async_trait { ... }
-}

Required Methods§

source

fn client<'life0, 'async_trait>( +}

Required Methods§

source

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Provided Methods§

source

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

Provided Methods§

source

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -83,7 +83,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where @@ -91,7 +91,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters.

-
source

fn query_one<'life0, 'life1, 'async_trait, T, P>( +

source

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -103,7 +103,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.

-
source

fn query_one_static<'life0, 'life1, 'async_trait, T>( +

source

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -112,7 +112,7 @@ 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or failing.

-
source

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +

source

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -124,7 +124,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.

-
source

fn query_opt_static<'life0, 'life1, 'async_trait, T>( +

source

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where @@ -132,7 +132,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning zero or one results.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Query for SqlStorage

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Query for SqlStorage

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

The results will reflect the state after the statements thus far added to this transaction have been applied, even though those effects have not been committed to the database yet.

source§

impl<Types, P: Send + Sync> Query for SqlDataSource<Types, P>
where diff --git a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html index 96c281cde..c6f72a81c 100644 --- a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html +++ b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html @@ -133,7 +133,7 @@ hash: TransactionHash<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Types> AvailabilityStorage<Types> for SqlStorage
where + 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Types> AvailabilityStorage<Types> for SqlStorage
where Types: NodeType, Payload<Types>: QueryablePayload, Header<Types>: QueryableHeader<Types>,

source§

impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>
where diff --git a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html index 7485697eb..5e383ecf2 100644 --- a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html +++ b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html @@ -135,8 +135,8 @@ ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( - _network: &'life0 MockNetwork<Self> + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
source§

impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
where @@ -357,5 +357,5 @@ [WithDispatch] wrapper. Read more

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T
where +WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T

\ No newline at end of file diff --git a/hotshot_query_service/data_source/struct.MetricsDataSource.html b/hotshot_query_service/data_source/struct.MetricsDataSource.html index 3fa74b43e..19d20b003 100644 --- a/hotshot_query_service/data_source/struct.MetricsDataSource.html +++ b/hotshot_query_service/data_source/struct.MetricsDataSource.html @@ -34,8 +34,8 @@ ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
source§

fn setup<'life0, 'async_trait>( - _network: &'life0 MockNetwork<Self> + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
source§

impl Debug for MetricsDataSource

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MetricsDataSource

source§

fn default() -> MetricsDataSource

Returns the “default value” for a type. Read more
source§

impl StatusDataSource for MetricsDataSource

source§

fn block_height<'life0, 'async_trait>( diff --git a/hotshot_query_service/data_source/trait.VersionedDataSource.html b/hotshot_query_service/data_source/trait.VersionedDataSource.html index 175c61961..7f70b012a 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -38,7 +38,7 @@ 'life0: 'async_trait,

Erase all oustanding modifications to the data.

This function must not return if it has failed to revert changes. Inability to revert changes to the database is considered a fatal error, and this function may panic.

-

Implementors§

source§

impl VersionedDataSource for DataSource

source§

impl VersionedDataSource for NoStorage

source§

impl VersionedDataSource for SqlStorage

§

type Error = Error

source§

impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>
where +

Implementors§

source§

impl VersionedDataSource for DataSource

source§

impl VersionedDataSource for NoStorage

source§

impl VersionedDataSource for SqlStorage

§

type Error = Error

source§

impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>
where D: VersionedDataSource + Send, U: Send,

source§

impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
where Types: NodeType, diff --git a/hotshot_query_service/data_source/type.FileSystemDataSource.html b/hotshot_query_service/data_source/type.FileSystemDataSource.html index 35da70319..fa9c5885d 100644 --- a/hotshot_query_service/data_source/type.FileSystemDataSource.html +++ b/hotshot_query_service/data_source/type.FileSystemDataSource.html @@ -125,7 +125,7 @@

Composition

commit or, if there are no outstanding changes, skip_version.

Trait Implementations§

source§

impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

§

type Storage = TempDir

Backing storage for the data source. Read more
source§

fn create<'async_trait>( - _node_id: usize + node_id: usize ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
where Self: 'async_trait,

source§

fn connect<'life0, 'async_trait>( storage: &'life0 Self::Storage @@ -141,8 +141,8 @@

Composition

) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
source§

fn setup<'life0, 'async_trait>( - _network: &'life0 MockNetwork<Self> + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
\ No newline at end of file diff --git a/hotshot_query_service/enum.QueryError.html b/hotshot_query_service/enum.QueryError.html index 60855fefa..5078f4071 100644 --- a/hotshot_query_service/enum.QueryError.html +++ b/hotshot_query_service/enum.QueryError.html @@ -1,5 +1,5 @@ QueryError in hotshot_query_service - Rust -
pub enum QueryError {
+    
pub enum QueryError {
     NotFound,
     Missing,
     Error {
@@ -9,16 +9,16 @@
 
§

Missing

The requested resource exists but is not currently available.

In most cases a missing resource can be recovered from DA.

§

Error

Fields

§message: String

There was an error while trying to fetch the requested resource.

-

Implementations§

source§

impl QueryError

source

pub fn status(&self) -> StatusCode

Trait Implementations§

source§

impl Clone for QueryError

source§

fn clone(&self) -> QueryError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for QueryError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for QueryError

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for QueryError

source§

fn fmt(&self, __snafu_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for QueryError
where - Self: Debug + Display,

source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl ErrorCompat for QueryError

source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a Backtrace that may be printed.
§

fn iter_chain(&self) -> ChainCompat<'_>
where +

Implementations§

source§

impl QueryError

source

pub fn status(&self) -> StatusCode

Trait Implementations§

source§

impl Clone for QueryError

source§

fn clone(&self) -> QueryError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for QueryError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for QueryError

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for QueryError

source§

fn fmt(&self, __snafu_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for QueryError
where + Self: Debug + Display,

source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl ErrorCompat for QueryError

source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a Backtrace that may be printed.
§

fn iter_chain(&self) -> ChainCompat<'_>
where Self: AsErrorSource,

Returns an iterator for traversing the chain of errors, starting with the current error -and continuing with recursive calls to Error::source. Read more
source§

impl From<QueryError> for Error

source§

fn from(original: QueryError) -> Error

Converts to this type from the input type.
source§

impl IntoError<QueryError> for MissingSnafu
where - QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl IntoError<QueryError> for NotFoundSnafu
where - QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl<__T0> IntoError<QueryError> for Snafu<__T0>
where +and continuing with recursive calls to Error::source. Read more

source§

impl From<QueryError> for Error

source§

fn from(original: QueryError) -> Error

Converts to this type from the input type.
source§

impl IntoError<QueryError> for MissingSnafu
where + QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl IntoError<QueryError> for NotFoundSnafu
where + QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl<__T0> IntoError<QueryError> for Snafu<__T0>
where QueryError: Error + ErrorCompat, - __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Serialize for QueryError

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Serialize for QueryError

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method diff --git a/hotshot_query_service/fn.run_standalone_service.html b/hotshot_query_service/fn.run_standalone_service.html index e36012d5a..d812946d3 100644 --- a/hotshot_query_service/fn.run_standalone_service.html +++ b/hotshot_query_service/fn.run_standalone_service.html @@ -1,5 +1,5 @@ run_standalone_service in hotshot_query_service - Rust -
pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D>(
+    
pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D>(
     options: Options,
     data_source: D,
     hotshot: SystemContextHandle<Types, I>
diff --git a/hotshot_query_service/index.html b/hotshot_query_service/index.html
index 54daf762c..4f1de12fc 100644
--- a/hotshot_query_service/index.html
+++ b/hotshot_query_service/index.html
@@ -1,6 +1,6 @@
 hotshot_query_service - Rust
-    
Expand description

The HotShot Query Service is a minimal, generic query service that can be integrated into any +

Expand description

The HotShot Query Service is a minimal, generic query service that can be integrated into any decentralized application running on the [hotshot] consensus layer. It provides all the features that HotShot itself expects of a query service (such as providing consensus-related data for catchup and synchronization) as well as some application-level features that deal only with diff --git a/hotshot_query_service/macro.include_migrations.html b/hotshot_query_service/macro.include_migrations.html index 1e60a3cff..bcd7824b3 100644 --- a/hotshot_query_service/macro.include_migrations.html +++ b/hotshot_query_service/macro.include_migrations.html @@ -1,5 +1,5 @@ include_migrations in hotshot_query_service - Rust

-
macro_rules! include_migrations {
+    
macro_rules! include_migrations {
     ($dir:tt) => { ... };
 }
Expand description

Embed migrations from the given directory into the current binary.

The macro invocation include_migrations!(path) evaluates to an expression of type impl Iterator<Item = Migration>. Each migration must be a text file which is an immediate child of diff --git a/hotshot_query_service/node/index.html b/hotshot_query_service/node/index.html index dcd152faa..c3e86f22a 100644 --- a/hotshot_query_service/node/index.html +++ b/hotshot_query_service/node/index.html @@ -1,5 +1,5 @@ hotshot_query_service::node - Rust

-
Expand description

A node’s view of a HotShot chain

+
Expand description

A node’s view of a HotShot chain

The node API provides a subjective view of the HotShot blockchain, from the perspective of one particular node. It provides access to information that the availability API does not, because this information depends on the diff --git a/hotshot_query_service/node/trait.NodeDataSource.html b/hotshot_query_service/node/trait.NodeDataSource.html index 0a813fc9a..8fdbafb3c 100644 --- a/hotshot_query_service/node/trait.NodeDataSource.html +++ b/hotshot_query_service/node/trait.NodeDataSource.html @@ -63,10 +63,10 @@ end: u64 ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>

where Self: 'async_trait, - 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl NodeDataSource<MockTypes> for DataSource

source§

impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
where + 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl NodeDataSource<MockTypes> for DataSource

source§

impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
where D: NodeDataSource<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

source§

impl<Types> NodeDataSource<Types> for SqlStorage
where + Types: NodeType,

source§

impl<Types> NodeDataSource<Types> for SqlStorage
where Types: NodeType,

source§

impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
where Types: NodeType, S: NodeDataSource<Types> + Send + Sync, diff --git a/hotshot_query_service/status/index.html b/hotshot_query_service/status/index.html index b26fce5b2..17cbe47c0 100644 --- a/hotshot_query_service/status/index.html +++ b/hotshot_query_service/status/index.html @@ -1,5 +1,5 @@ hotshot_query_service::status - Rust -
Expand description

Queries for node-specific state and uncommitted data.

+
Expand description

Queries for node-specific state and uncommitted data.

Unlike the availability and node APIs, which deal only with committed data (albeit with different consistency properties), the status API offers a glimpse into internal consensus state and uncommitted data. Here you can find low-level diff --git a/hotshot_query_service/status/trait.StatusDataSource.html b/hotshot_query_service/status/trait.StatusDataSource.html index 30353306e..95deb0e25 100644 --- a/hotshot_query_service/status/trait.StatusDataSource.html +++ b/hotshot_query_service/status/trait.StatusDataSource.html @@ -41,7 +41,7 @@ &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>

where Self: Sync + 'async_trait, - 'life0: 'async_trait,

Implementors§

Implementors§

source§

impl StatusDataSource for DataSource

source§

impl StatusDataSource for MetricsDataSource

source§

impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
where D: StatusDataSource + Send + Sync, U: Send + Sync,

source§

impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
where Types: NodeType, diff --git a/hotshot_query_service/struct.MissingSnafu.html b/hotshot_query_service/struct.MissingSnafu.html index 4adc8e0ef..0389ca37b 100644 --- a/hotshot_query_service/struct.MissingSnafu.html +++ b/hotshot_query_service/struct.MissingSnafu.html @@ -1,9 +1,9 @@ MissingSnafu in hotshot_query_service - Rust -
pub struct MissingSnafu;
Expand description

SNAFU context selector for the QueryError::Missing variant

-

Implementations§

source§

impl MissingSnafu

source

pub fn build(self) -> QueryError

Consume the selector and return the associated error

-
source

pub fn fail<__T>(self) -> Result<__T, QueryError>

Consume the selector and return a Result with the associated error

-

Trait Implementations§

source§

impl Clone for MissingSnafu

source§

fn clone(&self) -> MissingSnafu

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MissingSnafu

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl IntoError<QueryError> for MissingSnafu
where - QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Copy for MissingSnafu

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +
pub struct MissingSnafu;
Expand description

SNAFU context selector for the QueryError::Missing variant

+

Implementations§

source§

impl MissingSnafu

source

pub fn build(self) -> QueryError

Consume the selector and return the associated error

+
source

pub fn fail<__T>(self) -> Result<__T, QueryError>

Consume the selector and return a Result with the associated error

+

Trait Implementations§

source§

impl Clone for MissingSnafu

source§

fn clone(&self) -> MissingSnafu

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MissingSnafu

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl IntoError<QueryError> for MissingSnafu
where + QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Copy for MissingSnafu

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/struct.NotFoundSnafu.html b/hotshot_query_service/struct.NotFoundSnafu.html index dc88b0dd8..c8c0b6df2 100644 --- a/hotshot_query_service/struct.NotFoundSnafu.html +++ b/hotshot_query_service/struct.NotFoundSnafu.html @@ -1,9 +1,9 @@ NotFoundSnafu in hotshot_query_service - Rust -
pub struct NotFoundSnafu;
Expand description

SNAFU context selector for the QueryError::NotFound variant

-

Implementations§

source§

impl NotFoundSnafu

source

pub fn build(self) -> QueryError

Consume the selector and return the associated error

-
source

pub fn fail<__T>(self) -> Result<__T, QueryError>

Consume the selector and return a Result with the associated error

-

Trait Implementations§

source§

impl Clone for NotFoundSnafu

source§

fn clone(&self) -> NotFoundSnafu

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NotFoundSnafu

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl IntoError<QueryError> for NotFoundSnafu
where - QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Copy for NotFoundSnafu

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +
pub struct NotFoundSnafu;
Expand description

SNAFU context selector for the QueryError::NotFound variant

+

Implementations§

source§

impl NotFoundSnafu

source

pub fn build(self) -> QueryError

Consume the selector and return the associated error

+
source

pub fn fail<__T>(self) -> Result<__T, QueryError>

Consume the selector and return a Result with the associated error

+

Trait Implementations§

source§

impl Clone for NotFoundSnafu

source§

fn clone(&self) -> NotFoundSnafu

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for NotFoundSnafu

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl IntoError<QueryError> for NotFoundSnafu
where + QueryError: Error + ErrorCompat,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl Copy for NotFoundSnafu

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/struct.Options.html b/hotshot_query_service/struct.Options.html index 925df882a..ae3502069 100644 --- a/hotshot_query_service/struct.Options.html +++ b/hotshot_query_service/struct.Options.html @@ -1,15 +1,15 @@ Options in hotshot_query_service - Rust -
pub struct Options {
+    
pub struct Options {
     pub availability: Options,
     pub node: Options,
     pub status: Options,
     pub port: u16,
-}

Fields§

§availability: Options§node: Options§status: Options§port: u16

Trait Implementations§

source§

impl Args for Options

source§

fn group_id() -> Option<Id>

Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate Self. Read more
source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to [Command] so it can update self. Read more
source§

impl Default for Options

source§

fn default() -> Options

Returns the “default value” for a type. Read more
source§

impl FromArgMatches for Options

source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn from_arg_matches_mut( +}

Fields§

§availability: Options§node: Options§status: Options§port: u16

Trait Implementations§

source§

impl Args for Options

source§

fn group_id() -> Option<Id>

Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate Self. Read more
source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to [Command] so it can update self. Read more
source§

impl Default for Options

source§

fn default() -> Options

Returns the “default value” for a type. Read more
source§

impl FromArgMatches for Options

source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn update_from_arg_matches( +) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches -) -> Result<(), Error>

Assign values from ArgMatches to self.
source§

fn update_from_arg_matches_mut( +) -> Result<(), Error>

Assign values from ArgMatches to self.
source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches ) -> Result<(), Error>

Assign values from ArgMatches to self.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/hotshot_query_service/struct.Snafu.html b/hotshot_query_service/struct.Snafu.html index 637cd9b0a..1d3ec2cc6 100644 --- a/hotshot_query_service/struct.Snafu.html +++ b/hotshot_query_service/struct.Snafu.html @@ -1,14 +1,14 @@ Snafu in hotshot_query_service - Rust -
pub struct Snafu<__T0> {
+    
pub struct Snafu<__T0> {
     pub message: __T0,
 }
Expand description

SNAFU context selector for the QueryError::Error variant

-

Fields§

§message: __T0

Implementations§

source§

impl<__T0> Snafu<__T0>

source

pub fn build(self) -> QueryError
where +

Fields§

§message: __T0

Implementations§

source§

impl<__T0> Snafu<__T0>

source

pub fn build(self) -> QueryError
where __T0: Into<String>,

Consume the selector and return the associated error

-
source

pub fn fail<__T>(self) -> Result<__T, QueryError>
where +

source

pub fn fail<__T>(self) -> Result<__T, QueryError>
where __T0: Into<String>,

Consume the selector and return a Result with the associated error

-

Trait Implementations§

source§

impl<__T0: Clone> Clone for Snafu<__T0>

source§

fn clone(&self) -> Snafu<__T0>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<__T0: Debug> Debug for Snafu<__T0>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<__T0> IntoError<QueryError> for Snafu<__T0>
where +

Trait Implementations§

source§

impl<__T0: Clone> Clone for Snafu<__T0>

source§

fn clone(&self) -> Snafu<__T0>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<__T0: Debug> Debug for Snafu<__T0>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<__T0> IntoError<QueryError> for Snafu<__T0>
where QueryError: Error + ErrorCompat, - __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl<__T0: Copy> Copy for Snafu<__T0>

Auto Trait Implementations§

§

impl<__T0> RefUnwindSafe for Snafu<__T0>
where + __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> QueryError

Combine the information to produce the error
source§

impl<__T0: Copy> Copy for Snafu<__T0>

Auto Trait Implementations§

§

impl<__T0> RefUnwindSafe for Snafu<__T0>
where __T0: RefUnwindSafe,

§

impl<__T0> Send for Snafu<__T0>
where __T0: Send,

§

impl<__T0> Sync for Snafu<__T0>
where __T0: Sync,

§

impl<__T0> Unpin for Snafu<__T0>
where diff --git a/hotshot_query_service/testing/consensus/constant.NUM_NODES.html b/hotshot_query_service/testing/consensus/constant.NUM_NODES.html index 7e7425dde..60472720d 100644 --- a/hotshot_query_service/testing/consensus/constant.NUM_NODES.html +++ b/hotshot_query_service/testing/consensus/constant.NUM_NODES.html @@ -1,2 +1,2 @@ NUM_NODES in hotshot_query_service::testing::consensus - Rust -
pub const NUM_NODES: usize = 2;
\ No newline at end of file +
pub const NUM_NODES: usize = 2;
\ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/index.html b/hotshot_query_service/testing/consensus/index.html index d9379870e..28b24468c 100644 --- a/hotshot_query_service/testing/consensus/index.html +++ b/hotshot_query_service/testing/consensus/index.html @@ -1,2 +1,2 @@ hotshot_query_service::testing::consensus - Rust -
\ No newline at end of file +
\ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/struct.MockNetwork.html b/hotshot_query_service/testing/consensus/struct.MockNetwork.html index bf7d8e846..e0861a578 100644 --- a/hotshot_query_service/testing/consensus/struct.MockNetwork.html +++ b/hotshot_query_service/testing/consensus/struct.MockNetwork.html @@ -1,5 +1,5 @@ -MockNetwork in hotshot_query_service::testing::consensus - Rust -
pub struct MockNetwork<D: DataSourceLifeCycle> { /* private fields */ }

Implementations§

source§

impl<D: DataSourceLifeCycle + UpdateStatusData> MockNetwork<D>

source

pub async fn init() -> Self

source§

impl<D: DataSourceLifeCycle> MockNetwork<D>

source

pub fn handle(&self) -> SystemContextHandle<MockTypes, MockNodeImpl>

source

pub async fn submit_transaction(&self, tx: MockTransaction)

source

pub fn num_nodes(&self) -> usize

source

pub fn proposer(&self, i: usize) -> SignatureKey<MockTypes>

source

pub fn data_source_index(&self, i: usize) -> Arc<RwLock<D>>

source

pub fn data_source(&self) -> Arc<RwLock<D>>

source

pub fn storage(&self) -> &D::Storage

source

pub async fn shut_down(self)

source§

impl<D: DataSourceLifeCycle> MockNetwork<D>

source

pub async fn start(&mut self)

Trait Implementations§

source§

impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<D> !RefUnwindSafe for MockNetwork<D>

§

impl<D> Send for MockNetwork<D>

§

impl<D> Sync for MockNetwork<D>

§

impl<D> Unpin for MockNetwork<D>
where +MockNetwork in hotshot_query_service::testing::consensus - Rust +
pub struct MockNetwork<D: DataSourceLifeCycle> { /* private fields */ }

Implementations§

source§

impl<D: DataSourceLifeCycle + UpdateStatusData> MockNetwork<D>

source

pub async fn init() -> Self

source§

impl<D: DataSourceLifeCycle> MockNetwork<D>

source

pub fn handle(&self) -> SystemContextHandle<MockTypes, MockNodeImpl>

source

pub async fn submit_transaction(&self, tx: MockTransaction)

source

pub fn num_nodes(&self) -> usize

source

pub fn proposer(&self, i: usize) -> SignatureKey<MockTypes>

source

pub fn data_source_index(&self, i: usize) -> Arc<RwLock<D>>

source

pub fn data_source(&self) -> Arc<RwLock<D>>

source

pub fn storage(&self) -> &D::Storage

source

pub fn spawn(&mut self, name: impl Display, task: impl Future + Send + 'static)

source

pub async fn shut_down(self)

source§

impl<D: DataSourceLifeCycle> MockNetwork<D>

source

pub async fn start(&mut self)

Trait Implementations§

source§

impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<D> !RefUnwindSafe for MockNetwork<D>

§

impl<D> Send for MockNetwork<D>

§

impl<D> Sync for MockNetwork<D>

§

impl<D> Unpin for MockNetwork<D>

§

impl<D> !UnwindSafe for MockNetwork<D>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html index 45502d07a..eca5f18b2 100644 --- a/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html +++ b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html @@ -1,5 +1,5 @@ DataSourceLifeCycle in hotshot_query_service::testing::consensus - Rust -
pub trait DataSourceLifeCycle: Send + Sync + Sized + 'static {
+    
pub trait DataSourceLifeCycle: Send + Sync + Sized + 'static {
     type Storage: Send + Sync;
 
     // Required methods
@@ -27,35 +27,35 @@
 
     // Provided method
     fn setup<'life0, 'async_trait>(
-        _network: &'life0 MockNetwork<Self>
+        _network: &'life0 mut MockNetwork<Self>
     ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
        where Self: 'async_trait,
              'life0: 'async_trait { ... }
-}

Required Associated Types§

source

type Storage: Send + Sync

Backing storage for the data source.

+}

Required Associated Types§

source

type Storage: Send + Sync

Backing storage for the data source.

This can be used to connect to data sources to the same underlying data. It must be kept alive as long as the related data sources are open.

-

Required Methods§

source

fn create<'async_trait>( +

Required Methods§

source

fn create<'async_trait>( node_id: usize ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
where - Self: 'async_trait,

source

fn connect<'life0, 'async_trait>( + Self: 'async_trait,

source

fn connect<'life0, 'async_trait>( storage: &'life0 Self::Storage ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source

fn reset<'life0, 'async_trait>( + 'life0: 'async_trait,

source

fn reset<'life0, 'async_trait>( storage: &'life0 Self::Storage ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source

fn handle_event<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

source

fn handle_event<'life0, 'life1, 'async_trait>( &'life0 mut self, event: &'life1 Event<MockTypes> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Provided Methods§

source

fn setup<'life0, 'async_trait>( - _network: &'life0 MockNetwork<Self> + 'life1: 'async_trait,

Provided Methods§

source

fn setup<'life0, 'async_trait>( + _network: &'life0 mut MockNetwork<Self> ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.

-

Object Safety§

This trait is not object safe.

Implementors§

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/trait.TestableDataSource.html b/hotshot_query_service/testing/consensus/trait.TestableDataSource.html index 8192bcefe..fdbf52770 100644 --- a/hotshot_query_service/testing/consensus/trait.TestableDataSource.html +++ b/hotshot_query_service/testing/consensus/trait.TestableDataSource.html @@ -1,3 +1,3 @@ TestableDataSource in hotshot_query_service::testing::consensus - Rust -
pub trait TestableDataSource: DataSourceLifeCycle + AvailabilityDataSource<MockTypes> + NodeDataSource<MockTypes> + StatusDataSource + UpdateDataSource<MockTypes> + VersionedDataSource { }

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> TestableDataSource for T
where +
\ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/type.MockDataSource.html b/hotshot_query_service/testing/consensus/type.MockDataSource.html index 8c1be42b3..c72999c96 100644 --- a/hotshot_query_service/testing/consensus/type.MockDataSource.html +++ b/hotshot_query_service/testing/consensus/type.MockDataSource.html @@ -1,2 +1,2 @@ MockDataSource in hotshot_query_service::testing::consensus - Rust -
pub type MockDataSource = FileSystemDataSource<MockTypes, NoFetching>;

Aliased Type§

struct MockDataSource { /* private fields */ }
\ No newline at end of file +
pub type MockDataSource = FileSystemDataSource<MockTypes, NoFetching>;

Aliased Type§

struct MockDataSource { /* private fields */ }
\ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/struct.MockTypes.html b/hotshot_query_service/testing/mocks/struct.MockTypes.html index a744a8a53..e14868ed4 100644 --- a/hotshot_query_service/testing/mocks/struct.MockTypes.html +++ b/hotshot_query_service/testing/mocks/struct.MockTypes.html @@ -1,5 +1,5 @@ MockTypes in hotshot_query_service::testing::mocks - Rust -
pub struct MockTypes;

Trait Implementations§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

source§

fn get_block_with_transaction<'life0, 'async_trait>( +
pub struct MockTypes;

Trait Implementations§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

source§

fn get_block_with_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<MockTypes> ) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<MockTypes>, TransactionIndex<MockTypes>)>> + Send + 'async_trait>>
where @@ -14,49 +14,49 @@ where R: RangeBounds<usize> + Send

§

type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

source§

fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

source§

fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<LeafId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<MockTypes>>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
where @@ -85,29 +85,29 @@ 'life0: 'async_trait,

source§

impl Clone for MockTypes

source§

fn clone(&self) -> MockTypes

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MockTypes

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MockTypes

source§

fn default() -> MockTypes

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for MockTypes

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Hash for MockTypes

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl NodeDataSource<MockTypes> for DataSource

source§

fn block_height<'life0, 'async_trait>( + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl NodeDataSource<MockTypes> for DataSource

source§

fn block_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

source§

fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64 @@ -121,17 +121,17 @@ sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for MockTypes

source§

fn partial_cmp(&self, other: &MockTypes) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl QueryableHeader<MockTypes> for MockHeader

source§

fn timestamp(&self) -> u64

source§

impl Serialize for MockTypes

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl UpdateAvailabilityData<MockTypes> for DataSource

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl UpdateAvailabilityData<MockTypes> for DataSource

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<MockTypes> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( &'life0 mut self, block: BlockQueryData<MockTypes> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn insert_vid<'life0, 'async_trait>( &'life0 mut self, common: VidCommonQueryData<MockTypes>, share: Option<VidShare> diff --git a/hotshot_query_service/type.Header.html b/hotshot_query_service/type.Header.html index e45750345..c60f463ac 100644 --- a/hotshot_query_service/type.Header.html +++ b/hotshot_query_service/type.Header.html @@ -1,2 +1,2 @@ Header in hotshot_query_service - Rust -

Type Alias hotshot_query_service::Header

source ·
pub type Header<Types> = <Types as NodeType>::BlockHeader;
\ No newline at end of file +

Type Alias hotshot_query_service::Header

source ·
pub type Header<Types> = <Types as NodeType>::BlockHeader;
\ No newline at end of file diff --git a/hotshot_query_service/type.Metadata.html b/hotshot_query_service/type.Metadata.html index 3f4b86288..38d469225 100644 --- a/hotshot_query_service/type.Metadata.html +++ b/hotshot_query_service/type.Metadata.html @@ -1,2 +1,2 @@ Metadata in hotshot_query_service - Rust -
pub type Metadata<Types> = <Payload<Types> as BlockPayload>::Metadata;
\ No newline at end of file +
pub type Metadata<Types> = <Payload<Types> as BlockPayload>::Metadata;
\ No newline at end of file diff --git a/hotshot_query_service/type.Payload.html b/hotshot_query_service/type.Payload.html index 48d73178c..9a142b127 100644 --- a/hotshot_query_service/type.Payload.html +++ b/hotshot_query_service/type.Payload.html @@ -1,2 +1,2 @@ Payload in hotshot_query_service - Rust -
pub type Payload<Types> = <Types as NodeType>::BlockPayload;
\ No newline at end of file +
pub type Payload<Types> = <Types as NodeType>::BlockPayload;
\ No newline at end of file diff --git a/hotshot_query_service/type.QueryResult.html b/hotshot_query_service/type.QueryResult.html index a40adf249..9e52c39b2 100644 --- a/hotshot_query_service/type.QueryResult.html +++ b/hotshot_query_service/type.QueryResult.html @@ -1,5 +1,5 @@ QueryResult in hotshot_query_service - Rust -
pub type QueryResult<T> = Result<T, QueryError>;

Aliased Type§

enum QueryResult<T> {
+    
pub type QueryResult<T> = Result<T, QueryError>;

Aliased Type§

enum QueryResult<T> {
     Ok(T),
     Err(QueryError),
 }

Variants§

§1.0.0

Ok(T)

Contains the success value

diff --git a/hotshot_query_service/type.SignatureKey.html b/hotshot_query_service/type.SignatureKey.html index ae622bb35..aaa8e8d92 100644 --- a/hotshot_query_service/type.SignatureKey.html +++ b/hotshot_query_service/type.SignatureKey.html @@ -1,2 +1,2 @@ SignatureKey in hotshot_query_service - Rust -
pub type SignatureKey<Types> = <Types as NodeType>::SignatureKey;
\ No newline at end of file +
pub type SignatureKey<Types> = <Types as NodeType>::SignatureKey;
\ No newline at end of file diff --git a/hotshot_query_service/type.Transaction.html b/hotshot_query_service/type.Transaction.html index d3d22eec7..052ad8c68 100644 --- a/hotshot_query_service/type.Transaction.html +++ b/hotshot_query_service/type.Transaction.html @@ -1,3 +1,3 @@ Transaction in hotshot_query_service - Rust -
pub type Transaction<Types> = <Payload<Types> as BlockPayload>::Transaction;
Expand description

Item within a Payload.

+
pub type Transaction<Types> = <Payload<Types> as BlockPayload>::Transaction;
Expand description

Item within a Payload.

\ No newline at end of file diff --git a/search-index.js b/search-index.js index aaf76b787..faa7d9c38 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["hotshot_query_service",{"doc":"The HotShot Query Service is a minimal, generic query …","t":"PPPGPIFIPFPPFPFIGIKIFPIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCOOOOHNNNNNCNNOCNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNCNNONNNNNNNOOOOOOKIGFRFPFGRGPFPFPFPPRFPFRIGFRPPFPFRPKKPPFIIIIRFFKFRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNMMMMMMNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOMNNONNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNONNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOERFEIFEKKNNNNNNNNNNCNNNNNNNNNNNMNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNMNNCCCNNNNNNNNNMNNNHHKFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHHHHHIEFFEIENNNNNQENCNEHKEEECMMMMMMMMMMCCCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNGPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNORKKFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNNNCCMMNNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFGPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONMOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGPFFPKKNNNNONNNNNNNNNNMNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNMNMNNNNNNNNNONNNNNNNNNNNNNNOOCCHHKIFSRKNNNNMMNNNNNNNNMNNNNNNNNMNNNNNNNNNIIIFIIIFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONHNNOONNONONNNONNNNNNOONNKM","n":["Availability","Custom","Err","Error","Error","Header","Leaf","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","availability","availability","backtrace","backtrace","block_header","block_payload","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","catch_all","cause","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commitment","commitment","create_random_transaction","data_source","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fail","fail","fail","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_stored_view","genesis","get_block_header","get_block_payload","get_hash","get_height","get_justify_qc","get_parent_commitment","get_payload_commitment","get_proposer_id","get_view_number","group_id","hash","header","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","init","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","justify_qc","message","metrics","node","node","parent_commitment","port","proposer_id","run_standalone_service","serialize","serialize","serialize","source","source","status","status","status","status","testing","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","types","update_from_arg_matches","update_from_arg_matches_mut","view_number","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonQueryData","VidCommonRange","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","backtrace","backtrace","block_hash","block_hash","block_hash","block_hash","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","by_hash","by_hash","cause","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","common","compare","compare","context","data","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","fetch_timeout","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","genesis","genesis","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","group_id","hash","hash","hash","hash","hash","hash","hash","header","header","header","header","header","header","header","height","height","height","height","height","height","height","in_current_span","in_current_span","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","insert_block","insert_leaf","insert_vid","internal","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","into_error","into_future","is_empty","is_empty","is_empty","iter","leaf","leaf","len","len","map","message","metadata","new","new","new","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","num_transactions","num_transactions","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","payload_hash","proof","proof","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","size","size","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","subscribe_payloads","subscribe_payloads","subscribe_vid_common","subscribe_vid_common","timestamp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transaction","transaction","transaction","transaction","transaction_by_hash","transaction_by_hash","transaction_by_hash","transaction_by_hash_with_proof","transaction_by_hash_with_proof","transaction_with_proof","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","with_timeout","height","index","message","resource","resource","resource","source","status","AvailabilityProvider","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_mut","as_ref","availability_tests","block_height","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit","connect","connect","connect","count_transactions","create","create","create","create","create_with_store","default","deref","deref","deref_mut","deref_mut","drop","drop","fetching","fmt","fmt","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","handle_event","handle_event","handle_event","init","init","inner","inner_mut","insert_block","insert_leaf","insert_vid","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","metrics","new","node_tests","open","open_with_store","payload_size","persistence_tests","populate_metrics","populate_metrics","reset","reset","reset","revert","revert","skip_version","sql","status_tests","storage","sync_status","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update","vid_share","vzip","vzip","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","StorageReadGuard","StorageWriteGuard","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone_into","clone_into","commit","connect","count_transactions","create","create_with_store","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","disable_proactive_fetching","drop","drop","drop","drop","drop","fmt","fmt","from","from","from","from","from","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","init","init","init","init","insert_block","insert_leaf","insert_vid","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","metrics","new","open","open_with_store","payload_size","populate_metrics","revert","skip_version","storage","storage_mut","sync_status","to_owned","to_owned","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vid_share","vzip","vzip","vzip","vzip","vzip","with_major_scan_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_retry_delay","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_reset","test_revert","Builder","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","connect","create","handle_event","include_migrations","postgres","reset","testing","transaction","TmpDb","test_metrics","AvailabilityStorage","FileSystemStorage","NoStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","no_storage","pruning","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_transactions","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","insert_block","insert_leaf","insert_vid","into","into_any","into_any_arc","into_any_rc","open","open_with_store","payload_size","revert","skip_version","sync_status","try_from","try_into","type_id","vid_share","vzip","NoStorage","__clone_box","__clone_box","as_any","as_any_mut","block_height","borrow","borrow_mut","clone","clone_into","commit","count_transactions","default","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","insert_block","insert_leaf","insert_vid","into","into_any","into_any_arc","into_any_rc","payload_size","revert","sync_status","testing","to_owned","try_from","try_into","type_id","vid_share","vzip","DataSource","NoStorage","NoStorage","Sql","Sql","Storage","as_any","as_any","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","commit","connect","count_transactions","create","deref","deref","deref_mut","deref_mut","drop","drop","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","handle_event","init","init","insert_block","insert_leaf","insert_vid","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","payload_size","populate_metrics","reset","revert","setup","sync_status","try_from","try_from","try_into","try_into","type_id","type_id","vid_share","vzip","vzip","fetch_from_port","Error","PruneStorage","PrunedHeightStorage","PrunerCfg","PrunerConfig","__clone_box","__clone_box","as_any","as_any_mut","batch_size","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","into_any","into_any_arc","into_any_rc","load_pruned_height","max_usage","minimum_retention","new","prune","pruning_threshold","save_pruned_height","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","Config","Error","Migration","Query","SqlStorage","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","applied_on","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","as_ref","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","builder","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_transactions","database","default","default_migrations","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_ref","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","execute","execute_many","execute_many_with_retries","execute_one","execute_one_with_retries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_str","get_block","get_block_range","get_block_with_transaction","get_disk_usage","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_pruning_config","get_vid_common","get_vid_common_range","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","insert_vid","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","load_pruned_height","migrations","msg","name","new","no_migrations","partial_cmp","password","payload_size","port","postgres","prefix","prune","pruner_cfg","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","save_pruned_height","schema","set_pruning_config","sql","sync_status","testing","tls","to_owned","to_owned","to_string","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unapplied","upsert","user","version","vid_share","vzip","vzip","vzip","vzip","vzip","TmpDb","as_any","as_any_mut","borrow","borrow_mut","config","deref","deref_mut","drop","drop","fmt","from","host","init","init","into","into_any","into_any_arc","into_any_rc","port","try_from","try_into","type_id","vzip","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","init","into","into_any","into_any_arc","into_any_rc","provider","request","run","run","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fail","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","new","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unblock","unfail","vzip","vzip","vzip","vzip","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","get_hash","get_hash","get_hash","hash","hash","hash","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Counter","Gauge","Histogram","Label","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add_point","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","backtrace","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","create_counter","create_gauge","create_histogram","create_label","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","drop","drop","drop","drop","drop","drop","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get","get","get","get_counter","get_gauge","get_histogram","get_label","get_subgroup","header","in_current_span","init","init","init","init","init","init","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","mean","sample_count","set","set","source","subgroup","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","vzip","label","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","count_transactions","default","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","fully_synced","get_hash","get_header_window","group_id","hash","header","in_current_span","init","init","init","init","init","init","init","init","init","init","internal","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","is_fully_synced","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","prev","pruned_height","serialize","serialize","serialize","source","start","status","status","sync_status","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vid_share","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","window","block","end","message","source","source","source","source","start","status","Error","Internal","MempoolQueryData","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone_into","clone_into","cmp","compare","consensus_metrics","consensus_metrics","default","default","define_api","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","elapsed_time_since_last_decide","elapsed_time_since_last_decide","eq","equivalent","equivalent","equivalent","equivalent","extensions","fmt","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","group_id","hash","header","in_current_span","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","memory_footprint","mempool_info","mempool_info","metrics","partial_cmp","populate_metrics","serialize","serialize","source","status","success_rate","success_rate","to_owned","to_owned","to_string","transaction_count","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","reason","source","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","NUM_NODES","Storage","TestableDataSource","as_any","as_any_mut","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","drop","drop","from","handle","handle_event","init","init","into","into_any","into_any_arc","into_any_rc","num_nodes","proposer","reset","setup","shut_down","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockHeader","MockMembership","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockTransaction","MockTypes","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","block_header","block_number","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","default","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","get_hash","get_hash","hash","hash","height","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","iter","justify_qc","len","mock_transaction","partial_cmp","partial_cmp","payload_commitment","proposer_id","serialize","serialize","timeout_certificate","timestamp","timestamp","to_owned","to_owned","transaction_with_proof","transactions","try_from","try_from","try_into","try_into","type_id","type_id","upgrade_certificate","view_number","vzip","vzip","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[284,"hotshot_query_service::Error"],[289,"hotshot_query_service::QueryError"],[290,"hotshot_query_service::availability"],[1002,"hotshot_query_service::availability::Error"],[1010,"hotshot_query_service::data_source"],[1124,"hotshot_query_service::data_source::availability_tests"],[1126,"hotshot_query_service::data_source::fetching"],[1275,"hotshot_query_service::data_source::node_tests"],[1281,"hotshot_query_service::data_source::persistence_tests"],[1283,"hotshot_query_service::data_source::sql"],[1300,"hotshot_query_service::data_source::sql::testing"],[1301,"hotshot_query_service::data_source::status_tests"],[1302,"hotshot_query_service::data_source::storage"],[1320,"hotshot_query_service::data_source::storage::fs"],[1365,"hotshot_query_service::data_source::storage::no_storage"],[1412,"hotshot_query_service::data_source::storage::no_storage::testing"],[1480,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1481,"hotshot_query_service::data_source::storage::pruning"],[1530,"hotshot_query_service::data_source::storage::sql"],[1739,"hotshot_query_service::data_source::storage::sql::testing"],[1763,"hotshot_query_service::fetching"],[1798,"hotshot_query_service::fetching::provider"],[1916,"hotshot_query_service::fetching::request"],[2012,"hotshot_query_service::metrics"],[2187,"hotshot_query_service::metrics::MetricsError"],[2191,"hotshot_query_service::node"],[2513,"hotshot_query_service::node::Error"],[2522,"hotshot_query_service::status"],[2643,"hotshot_query_service::status::Error"],[2645,"hotshot_query_service::testing"],[2649,"hotshot_query_service::testing::consensus"],[2688,"hotshot_query_service::testing::mocks"],[2784,"hotshot_query_service::types"],[2786,"dyn_clone::sealed"],[2787,"dyn_clone::sealed"],[2788,"core::error"],[2789,"clap_builder::builder::command"],[2790,"snafu::backtrace_shim"],[2791,"core::option"],[2792,"alloc::string"],[2793,"core::convert"],[2794,"tide_disco::status"],[2795,"core::clone"],[2796,"hotshot_types::traits::node_implementation"],[2797,"commit"],[2798,"commit"],[2799,"core::result"],[2800,"serde::de"],[2801,"hotshot_types::data"],[2802,"core::fmt"],[2803,"core::fmt"],[2804,"clap_builder"],[2805,"hotshot_types::traits::storage"],[2806,"core::hash"],[2807,"core::marker"],[2808,"core::hash"],[2809,"hotshot_types::simple_certificate"],[2810,"hotshot_types::simple_certificate"],[2811,"core::hash"],[2812,"core::fmt"],[2813,"alloc::sync"],[2814,"alloc::rc"],[2815,"hotshot::types::handle"],[2816,"hotshot_types::traits::node_implementation"],[2817,"serde::ser"],[2818,"core::cmp"],[2819,"core::cmp"],[2820,"snafu"],[2821,"tide_disco::api"],[2822,"tide_disco::request"],[2823,"core::future::future"],[2824,"core::pin"],[2825,"futures_core::stream"],[2826,"core::marker"],[2827,"core::ops::function"],[2828,"hotshot_types::simple_certificate"],[2829,"std::path"],[2830,"anyhow"],[2831,"atomic_store::atomic_store"],[2832,"hotshot_types::event"],[2833,"core::default"],[2834,"hotshot_types::traits::metrics"],[2835,"async_lock::rwlock"],[2836,"async_lock::rwlock"],[2837,"time::offset_date_time"],[2838,"std::backtrace"],[2839,"anyhow"],[2840,"tokio_postgres::to_statement"],[2841,"core::iter::traits::collect"],[2842,"tokio_postgres::config"],[2843,"refinery_core::runner"],[2844,"refinery_core::error"],[2845,"postgres_types"],[2846,"url"],[2847,"hotshot_types::traits::metrics"],[2848,"serde::de"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","This is the consensus-internal analogous concept to a …","","The requested resource exists but is not currently …","SNAFU context selector for the QueryError::Missing variant","","The requested resource does not exist or is not known to …","SNAFU context selector for the QueryError::NotFound variant","Contains the success value","","","","","A reference to a T which can be resolved into a whole T.","","SNAFU context selector for the QueryError::Error variant","","Item within a Payload.","VID commitment type","VID common type","VID share type","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","Block header.","Optional block payload.","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","Get a commitment to the underlying object.","","","Persistent storage and sources of data consumed by APIs.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Fetching missing data from remote providers.","Fill this leaf with the block payload.","Fill this leaf with the block payload, without checking …","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Create a leaf from information stored about a view.","Create a new leaf from its components.","The block header contained in this leaf.","Optional block payload.","","Height of this leaf in the chain.","The QC linking this leaf to its parent in the chain.","Commitment to this leaf’s parent.","A commitment to the block payload contained in this leaf.","Identity of the network participant who proposed this leaf.","Time when this leaf was created.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Per spec, justification","","","A node’s view of a HotShot chain","","The hash of the parent Leaf So we can ask if it extends","","the proposer id of the leaf","Run an instance of the HotShot Query service with no …","","","","","","Queries for node-specific state and uncommitted data.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the underlying object if it is available without …","","","","","","","","","Common functionality provided by types used in this crate.","","","CurView from leader when proposing leaf","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","","SNAFU context selector for the Error::Custom variant","","","An in-progress request to fetch some data.","","SNAFU context selector for the Error::FetchBlock variant","","SNAFU context selector for the Error::FetchLeaf variant","","SNAFU context selector for the Error::FetchTransaction …","","","A proof that a certain transaction exists in the block.","","","SNAFU context selector for the …","Enumerate the transactions in this block.","","","","","","","","","","","","","A block payload whose contents (e.g. individual …","","","SNAFU context selector for the Error::Request variant","","","","","An index which can be used to efficiently retrieve a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Get the index of the transaction with a given hash, if it …","Get the index of the transaction with a given hash, if it …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enumerate the transactions in the block with their indices.","Enumerate the transactions in the block with their indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Timeout for failing requests due to missing data.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether this block is empty of transactions.","Whether this block is empty of transactions.","","List the transaction indices in the block.","","","The number of transactions in the block.","","Transform the result of this fetch.","","","Collect information about a Leaf.","","","Get the index of the nth transaction.","Get the index of the nth transaction.","Get the nth transaction.","Get the nth transaction.","Get the nth transaction, along with an inclusion proof.","Get the nth transaction, along with an inclusion proof.","","","","","","","","","Get an inclusion proof for a transaction with a given …","Get an inclusion proof for a transaction with a given …","","","Wait for the data to become available, if it is not …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a transaction by its block-specific index.","Get a transaction by its block-specific index.","","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","Get a transaction by its block-specific index, along with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the requested data if it is available immediately.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","Wait for the requested data to become available, but only …","","","","","","","","","","","Wrapper to add extensibility to an existing data source.","","A data source for the APIs provided in this crate, backed …","A minimal data source for the status API provided in this …","","An extension trait for types which implement the update …","A data source with an atomic transaction-based …","","","","","","","","","","","Generic tests we can instantiate for all the availability …","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","","","","","Create a new FileSystemDataSource with storage at path.","","","Create a new FileSystemDataSource using a persistent …","","","","","","","","Asynchronous retrieval of missing data.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Generic tests we can instantiate for all the node data …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","Generic tests we can instantiate for any data source with …","","","","","","Erase all oustanding modifications to the data.","","Advance the version of the persistent store without …","","Generic tests we can instantiate for all the status data …","Persistent storage for data sources.","","","","","","","","","","Update query state based on a new consensus event.","","","","","","A provider which can be used as a fetcher by the …","Builder for FetchingDataSource with configuration.","The most basic kind of data source.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a FetchingDataSource with these options.","Build a FetchingDataSource with the given storage and …","","","","","","Connect to a remote database.","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","Run without proactive fetching.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Construct a new builder with the given storage and fetcher …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","","","Advance the version of the persistent store without …","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","","","","","","","Set the interval (denominated in minor scans) between …","Set the time interval between minor proactive fetching …","Set the number of items to process at a time when scanning …","Set the number of items to process at a time when loading …","Set the maximum delay between retries of fetches.","","","","","","","","","","","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","A data source for the APIs provided in this crate, backed …","","","","Connect to a remote database.","","","Embed migrations from the given directory into the current …","","","","Access the transaction which is accumulating all …","","","Persistent storage for a HotShot blockchain.","","","","","","","","","","","","","","","","","","Storage for the APIs provided in this crate, backed by a …","","","","","","","","Create a new FileSystemStorage with storage at path.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","","","","Open an existing FileSystemStorage from storage at path.","Open an existing FileSystemStorage using a persistent …","","","Advance the version of the persistent store without …","","","","","","","Mock storage implementation which doesn’t actually store …","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Either Postgres or no storage.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Number of blocks to remove in a single pruning operation.","","","","","","","","","","Returns the argument unchanged.","","","","Pruning interval","Calls U::from(self).","","","","","Maximum disk usage (in basis points).","Minimum data retention period","","","Disk space threshold (in bytes).","","","Target data retention period","","","","","","","","","","","","","Postgres client config.","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","Storage for the APIs provided in this crate, backed by a …","An atomic SQL transaction.","","","","","Get the timestamp from when the Migration was applied. None…","","","","","","","","","","","","","Get the backtrace for this Error.","","","","","","","","","","","","Connect to the database, setting options on the underlying …","An iterator of the chain of source errors contained by …","Get the Migration checksum. Checksum is formed from the …","","","","","","","","","","","Connect to the database with this config.","Connect to a remote database.","Wrap the error value with additional context.","","Set the name of the database to connect to.","","The migrations requied to build the default schema for …","","","","","","","","","","","","","Attempt to downcast the error object to a concrete type.","Downcast this error object by mutable reference.","Downcast this error object by reference.","","","","","","","","","","","","","Execute a statement against the underlying database.","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify exactly one …","Execute a statement that is expected to modify exactly one …","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Set the hostname of the database server.","Embed the contents of a directory in your crate.","Embed migrations from the given directory into the current …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns true if E is the type held by this error object.","","Add custom migrations to run when connecting to the …","Create a new error object from a printable error message.","Get the Migration Name","Create a new error object from any error type.","Skip all migrations when connecting to the database.","","Set a password for connecting to the database.","","Set the port on which to connect to the database.","","Get the Prefix","","","","Query the underlying SQL database, returning exactly one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database, returning zero or one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database with no parameters.","Reset the schema on connection.","","The lowest level cause of this error — this error’s …","","Set the name of the schema to use for queries.","","","","","Use TLS for an encrypted connection to the database.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","Create an unapplied migration, name and version are parsed …","","Set the DB user to connect as.","Get the Migration version","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","A callback to process the result of a request.","Management of concurrent requests to fetch resources.","A callback to process the result of a request.","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","Asynchronous fetching from external data availability …","Requests for fetching resources.","","","Fetch a resource, if it is not already being fetched.","","","","","","","Adaptor combining multiple data availability providers.","Trivial Provider where fetching always fails.","A provider which is able to satisfy requests for data of …","Data availability provider backed by another instance of …","Adaptor to add test-only functionality to an existing …","","","","","","","","","","","","","","","","","Delay fetch requests until unblock.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cause subsequent requests to fail.","Fetch a resource.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allow blocked fetch requests to proceed.","Stop requests from failing as a result of a previous call …","","","","","Add a sub-provider which fetches blocks.","Add a sub-provider which fetches leaves.","Add a sub-provider which fetches both blocks and leaves.","Add a sub-provider which fetches VID common data.","A request for a leaf with a given height.","A request for a payload with a given commitment.","A request for a resource.","The type of resource that will be returned as a successful …","A request for VID common data.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","A Counter metric.","A Gauge metric.","A Histogram metric.","A Label metric.","","","","","A Prometheus-based implementation of a Metrics registry.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Get a counter in this sub-group by name.","Get a gauge in this sub-group by name.","Get a histogram in this sub-group by name.","Get a label in this sub-group by name.","Get a (possibly nested) subgroup of this group by its path.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for the Error::Custom variant","","","","","","","SNAFU context selector for the Error::Query variant","","SNAFU context selector for the Error::QueryVid variant","","SNAFU context selector for the Error::QueryWindow variant","","SNAFU context selector for the Error::Request variant","","","Response to a /:resource/window query.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","The block height of the block that starts the window.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Backing storage for the data source.","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","Setup runs after setting up the network but before …","","","","","","","","","","","","","","","","","","","","","","","","","The block header to append","Block number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Per spec, justification","","","","","VID commitment to the payload.","the propser id","","","Possible timeout certificate. Only present if the …","","Timestamp when this header was created.","","","","List of transactions.","","","","","","","Possible upgrade certificate, which the leader may …","CurView from leader when proposing leaf","","","Types which have a notion of “height” within a chain.",""],"i":[7,7,159,0,10,0,0,0,10,0,7,10,0,159,0,0,0,0,0,0,0,7,0,0,0,0,17,17,7,7,11,11,12,12,13,13,10,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,25,25,0,25,7,10,17,17,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,21,17,17,0,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,17,7,10,17,7,11,12,13,10,25,17,17,17,17,17,11,12,13,0,17,17,17,17,7,7,11,12,13,10,10,17,7,7,7,7,7,11,12,13,10,25,25,25,17,17,17,17,17,17,17,17,17,17,17,25,17,17,7,10,7,10,0,17,7,11,12,13,10,25,0,0,0,0,0,7,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,17,13,0,0,25,17,25,17,0,17,7,10,7,10,0,7,10,25,0,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,21,17,17,7,11,12,13,10,25,0,25,25,17,17,7,11,12,13,10,25,233,234,235,236,233,237,0,0,0,0,58,0,36,0,0,123,0,36,0,36,0,36,0,88,89,81,0,36,0,81,0,0,0,58,88,89,0,89,0,58,96,0,0,96,36,0,0,0,0,0,81,0,0,0,0,58,88,88,89,89,68,68,67,67,90,90,70,70,71,71,72,72,91,91,92,92,93,93,73,73,74,74,75,75,76,76,77,77,36,36,102,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,67,36,102,102,67,36,68,70,71,72,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,73,74,75,76,77,81,81,67,36,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,71,88,89,96,70,102,0,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,67,36,68,90,70,71,72,91,92,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,81,81,90,88,89,68,90,70,71,72,91,92,88,88,88,88,89,89,89,89,68,68,68,68,90,90,90,90,70,70,70,70,71,71,71,71,72,72,72,72,91,91,91,91,92,92,92,92,102,73,74,75,76,77,102,88,88,89,89,68,67,67,90,70,71,72,91,92,93,73,74,75,76,77,36,36,96,88,88,88,89,89,89,68,67,90,70,70,71,72,91,91,92,102,93,73,74,75,76,77,36,36,36,102,102,68,90,70,71,58,58,58,88,89,58,58,58,58,58,58,102,88,89,68,90,70,72,91,88,89,68,67,90,91,36,68,90,70,71,72,91,76,67,36,76,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,123,123,123,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,93,73,74,75,76,77,96,81,81,90,81,68,67,81,90,96,77,90,68,90,71,81,81,81,81,81,81,90,91,88,89,90,68,90,71,81,81,68,67,96,73,74,75,68,90,70,71,72,91,92,36,90,70,91,67,36,36,77,58,58,58,58,58,58,58,58,129,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,67,36,81,81,90,72,81,81,90,81,81,81,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,102,102,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,96,238,238,239,240,241,242,243,239,0,62,0,0,0,0,0,0,0,131,131,132,132,131,132,131,132,131,131,0,131,131,132,131,132,131,132,131,132,131,132,62,131,134,131,132,131,134,134,131,132,134,132,131,132,131,132,131,132,0,131,132,131,132,131,131,131,131,131,131,131,131,131,131,134,131,132,131,132,131,131,131,131,131,131,132,131,132,131,132,131,132,131,132,131,0,134,134,131,0,131,132,134,131,132,62,131,134,0,0,0,131,131,132,131,132,131,132,131,132,61,131,131,132,0,0,0,0,0,0,0,0,145,145,148,148,146,145,148,153,154,146,145,148,153,154,145,145,146,145,148,153,154,146,145,148,153,154,146,145,145,148,145,148,145,145,145,145,145,146,145,148,153,153,154,154,146,145,148,153,154,154,146,146,145,148,153,154,145,148,146,145,148,153,153,154,154,145,145,145,145,145,145,145,145,145,145,146,145,148,153,154,145,145,145,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,145,146,145,145,145,145,145,145,145,145,145,145,148,145,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,145,146,145,148,153,154,146,146,146,146,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,160,160,160,160,0,0,160,0,160,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,0,0,0,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,0,162,162,162,162,162,162,0,244,163,244,163,0,244,163,244,163,163,163,244,163,244,163,163,163,163,163,244,163,244,163,244,163,244,163,163,163,163,163,163,163,163,163,163,163,163,244,163,163,163,163,244,163,244,163,244,163,244,163,163,163,163,163,163,163,163,244,163,244,163,244,163,163,244,163,245,168,0,0,0,0,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,166,167,165,165,165,165,165,165,168,165,165,165,166,165,168,167,165,165,165,165,165,165,165,165,165,165,165,165,165,0,0,0,0,0,0,170,170,149,149,170,151,170,158,149,157,151,170,158,149,157,151,151,151,157,151,170,158,149,157,151,170,158,149,157,149,151,170,174,158,157,170,149,170,149,170,157,170,149,157,151,157,149,149,0,151,151,170,158,149,157,151,151,170,158,149,157,151,151,151,151,151,170,158,149,157,157,170,170,170,170,170,158,158,158,158,158,151,151,170,170,149,157,151,151,151,170,158,149,149,157,149,157,157,157,157,157,157,157,157,157,157,157,157,157,151,170,149,0,0,151,170,158,149,157,157,157,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,151,157,149,151,170,151,149,170,149,157,149,0,170,157,149,174,174,174,174,174,174,149,157,151,157,149,157,170,157,0,149,170,149,151,170,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,170,158,149,170,157,151,170,158,149,157,0,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,0,0,0,0,0,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,0,0,187,188,186,186,186,186,186,186,186,0,0,0,0,0,192,192,193,193,191,191,194,194,192,193,191,194,192,193,191,194,191,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,194,192,193,191,194,192,193,191,194,192,193,191,194,191,190,192,192,192,193,193,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,193,191,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,191,191,192,193,191,194,192,192,192,192,0,0,0,189,0,195,195,196,196,197,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,195,195,195,196,196,196,196,197,197,197,197,195,196,197,195,196,197,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,0,0,0,0,0,202,202,202,0,143,143,199,199,203,203,200,200,204,204,199,200,202,143,199,203,200,204,202,143,199,203,200,204,202,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,143,199,203,200,204,143,143,143,143,143,202,143,199,203,200,204,202,143,199,203,200,204,202,202,143,199,203,200,204,143,202,202,143,199,203,200,204,202,202,143,199,203,200,204,199,203,204,143,143,143,143,143,202,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,200,200,203,204,202,143,200,143,199,203,200,204,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,203,202,143,199,203,200,204,246,246,247,248,0,0,37,0,0,138,138,0,0,37,0,37,0,37,0,37,0,0,138,0,0,138,138,212,212,213,213,214,214,215,215,216,216,217,217,211,211,37,37,218,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,37,218,218,37,216,59,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,211,37,138,212,213,214,215,216,217,211,37,138,212,213,214,215,216,217,211,37,212,212,59,213,218,0,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,37,212,213,37,138,212,213,218,214,215,216,217,211,37,217,212,213,212,212,212,212,213,213,213,213,218,211,138,212,213,214,215,216,217,211,37,37,138,138,212,213,213,218,214,215,216,217,211,37,37,37,37,218,218,212,212,59,218,212,37,37,138,212,213,218,214,215,216,217,211,37,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,214,215,216,217,211,212,211,212,212,212,212,213,212,59,213,212,212,213,37,37,217,37,211,59,138,212,213,214,215,216,217,211,37,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,218,218,59,138,212,213,218,214,215,216,217,211,37,213,249,250,251,252,253,249,250,250,251,0,38,0,0,38,0,0,221,221,38,38,222,221,222,38,221,222,38,38,222,222,38,60,221,222,38,221,222,38,38,221,38,221,38,221,221,60,60,221,222,0,221,222,38,221,222,38,38,221,38,221,222,38,60,60,221,221,221,221,221,222,221,38,38,221,222,38,38,38,222,222,221,222,221,38,38,221,222,38,221,222,38,221,222,38,221,222,38,221,222,38,221,60,60,60,221,223,221,38,38,38,60,60,221,38,38,221,221,222,38,221,222,38,221,222,38,222,222,221,222,38,254,255,0,0,0,0,0,0,0,0,225,0,164,164,164,164,225,225,164,164,164,164,164,164,164,164,225,164,164,164,164,164,164,164,164,225,225,164,164,164,164,164,164,164,164,0,0,0,0,0,0,0,0,139,139,226,226,139,226,139,226,256,230,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,139,139,139,226,226,226,226,139,226,139,226,139,226,139,226,230,139,226,139,226,139,226,139,226,139,226,231,256,231,0,139,226,230,256,139,226,256,230,230,139,226,231,231,139,226,139,226,139,226,256,256,139,226,0,220],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],0,0,[7,[[9,[8]]]],[10,[[9,[8]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],[[16,14],7],[7,[[9,[5]]]],[10,[[9,[5]]]],[[[17,[-1]]],[[17,[-1]]],[18,19]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],18],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[21,[[20,[-1]]],22],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],23,24],[],19],0,[[],25],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[7,27],[10,27],[-1,[[28,[[17,[-2]]]]],29,19],[-1,[[28,[7]]],29],[-1,[[28,[10]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[17,[-1]],[17,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[11,[[28,[-1,10]]],[]],[12,[[28,[-1,10]]],[]],[[[13,[-1]]],[[28,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],26],[[28,[2,31]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],32],[[28,[2,33]]],[34,19]],[[[17,[-1]],32],[[28,[2,33]]],19],[[7,32],35],[[7,32],35],[[11,32],35],[[12,32],35],[[[13,[-1]],32],35,34],[[10,32],35],[[10,32],35],[-1,-1,[]],[-1,-1,[]],[36,7],[37,7],[[[2,[14,16]]],7],[38,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[39,[[28,[25,40]]]],[39,[[28,[25,40]]]],[[[41,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],24,[42,43],44],[[[17,[-1]]],24,19],[[[17,[-1]]],[[47,[-1,[45,[-1]],46]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[],[[9,[48]]]],[[[17,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],0,0,0,0,0,[-1,7,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[11,-1],10,[]],[[12,-1],10,[]],[[[13,[-1]],-2],10,[[15,[14]]],[]],0,0,0,0,0,0,0,0,[[25,-2,[57,[-1,-3]]],[[28,[2,7]]],19,[[58,[-1]],[59,[-1]],60,[61,[-1]],62,52,53],[[63,[-1]]]],[[[17,[-1]],-2],28,[19,64],65],[[7,-1],28,65],[[10,-1],28,65],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[21,[[28,[-1,21]]],22],[-1,[[28,[-2,-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],0,[[25,39],[[28,[2,40]]]],[[25,39],[[28,[2,40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],[[[67,[-1]]],[[9,[8]]],19],[36,[[9,[8]]]],[[[68,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],[[69,[-1]]],19],[[[71,[-1]]],[[69,[-1]]],19],[[[72,[-1]]],[[69,[-1]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[73,[-1]]],36,[[15,[14]]]],[[[74,[-1]]],36,[[15,[14]]]],[[[75,[-1]]],36,[[15,[14]]]],[[[76,[-1,-2]]],36,[[15,[24]]],[[15,[24]]]],[[[77,[-1,-2]]],36,[[15,[14]]],[[15,[16]]]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[67,[-1]]],[[9,[5]]],19],[36,[[9,[5]]]],[[[88,[-1]]],[[88,[-1]]],19],[[[89,[-1]]],[[89,[-1]]],19],[[[68,[-1]]],[[68,[-1]]],[18,19]],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[90,[-1]]],[[90,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[[[71,[-1]]],[[71,[-1]]],[18,19]],[[[72,[-1]]],[[72,[-1]]],[18,19]],[[[91,[-1]]],[[91,[-1]]],[18,19]],[[[92,[-1]]],[[92,[-1]]],[18,19]],[93,93],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1]]],[[74,[-1]]],18],[[[75,[-1]]],[[75,[-1]]],18],[[[76,[-1,-2]]],[[76,[-1,-2]]],18,18],[[[77,[-1,-2]]],[[77,[-1,-2]]],18,18],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[88,[-1]],[88,[-1]]],94,19],[[[89,[-1]],[89,[-1]]],94,19],[[[71,[-1]]],95,19],[[-1,-2],94,[],[]],[[-1,-2],94,[],[]],[[[96,[-1]],-3],[[28,[-1,-2]]],[],[5,97],[[100,[-2],[[98,[99]]]]]],[[[70,[-1]]],[[101,[-1]]],19],[[],102],[102,[[28,[[103,[-1,36]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[67,[-1]]],27,19],[36,27],[-1,[[28,[[68,[-2]]]]],29,19],[-1,[[28,[[90,[-2]]]]],29,19],[-1,[[28,[[70,[-2]]]]],29,19],[-1,[[28,[[71,[-2]]]]],29,19],[-1,[[28,[[72,[-2]]]]],29,19],[-1,[[28,[[91,[-2]]]]],29,19],[-1,[[28,[[92,[-2]]]]],29,19],[-1,[[28,[36]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],[[54,[87]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],[[54,[87]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],[[0,[[87,[],[[86,[[2,[[106,[-1]],[107,[-1]]]]]]]]]]],19],[[[88,[-1]],[88,[-1]]],30,19],[[[89,[-1]],[89,[-1]]],30,19],[[[68,[-1]],[68,[-1]]],30,[82,19]],[[[90,[-1]],[90,[-1]]],30,[82,19]],[[[70,[-1]],[70,[-1]]],30,[82,19]],[[[71,[-1]],[71,[-1]]],30,[82,19]],[[[72,[-1]],[72,[-1]]],30,[82,19]],[[[91,[-1]],[91,[-1]]],30,[82,19]],[[[92,[-1]],[92,[-1]]],30,[82,19]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[73,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[74,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[75,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[76,[-1,-2]]],[[28,[-3,36]]],[[15,[24]]],[[15,[24]]],[]],[[[77,[-1,-2]]],[[28,[-3,36]]],[[15,[14]]],[[15,[16]]],[]],0,[[[88,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[89,[-1]],32],35,19],[[[89,[-1]],32],35,19],[[[68,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,19],[[[67,[-1]],32],35,[34,19]],[[[90,[-1]],32],35,[34,19]],[[[70,[-1]],32],35,[34,19]],[[[71,[-1]],32],35,[34,19]],[[[72,[-1]],32],35,[34,19]],[[[91,[-1]],32],35,[34,19]],[[[92,[-1]],32],35,[34,19]],[[93,32],35],[[[73,[-1]],32],35,34],[[[74,[-1]],32],35,34],[[[75,[-1]],32],35,34],[[[76,[-1,-2]],32],35,34,34],[[[77,[-1,-2]],32],35,34,34],[[36,32],35],[[36,32],35],[-1,-1,[]],[-1,-1,[]],[26,[[88,[-1]]],19],[[[108,[-1]]],[[88,[-1]]],19],[26,[[89,[-1]]],19],[[[69,[-1]]],[[89,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[90,[-1]]],[[70,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[90,[-1]]],[[91,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[109,36],[[[2,[14,16]]],36],[-1,-1,[]],[39,[[28,[102,40]]]],[39,[[28,[102,40]]]],[[],[[68,[-1]]],19],[[],[[90,[-1]]],19],[[],[[70,[-1]]],19],[[],[[71,[-1]]],19],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],[119,[-2]]],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[],[[9,[48]]]],[[[88,[-1]],-2],2,19,49],[[[89,[-1]],-2],2,19,49],[[[68,[-1]]],[[108,[-1]]],19],[[[90,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],120,19],[[[72,[-1]]],[[119,[-1]]],19],[[[91,[-1]]],[[69,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],[[121,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[90,[-1]]],[[121,[-1]]],19],[[[91,[-1]]],[[121,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],24,19],[[[90,[-1]]],24,19],[[[70,[-1]]],24,19],[[[71,[-1]]],24,19],[[[72,[-1]]],24,19],[[[91,[-1]]],24,19],0,[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[123,[],[[122,[-1]]]],[90,[-2]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[[[123,[],[[122,[-1]]]],[68,[-2]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[[[123,[],[[122,[-1]]]],[71,[-2]],[9,[124]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[-1,36,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[93,-1],36,[]],[[[73,[-1]],-2],36,[[15,[14]]],[]],[[[74,[-1]],-2],36,[[15,[14]]],[]],[[[75,[-1]],-2],36,[[15,[14]]],[]],[[[76,[-1,-2]],-3],36,[[15,[24]]],[[15,[24]]],[]],[[[77,[-1,-2]],-3],36,[[15,[14]]],[[15,[16]]],[]],[[[96,[-1]]],-2,52,[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],30,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],30,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],30,19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],-2,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[68,[-1]]],[[17,[-1]]],19],0,[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],26,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],26,19],[[[96,[-1]],-3],[[96,[-2]]],[],[],[52,[126,[-1],[[125,[-2]]]]]],0,[[[90,[-1]]],[[127,[-1]]],19],[[[17,[-1]],[128,[-1]]],[[28,[[68,[-1]],[67,[-1]]]]],19],[[[121,[-1]],[101,[-1]]],[[90,[-1]]],19],[[[121,[-1]],95],[[71,[-1]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]]],24,19],[[[91,[-1]]],24,19],[[[88,[-1]],[88,[-1]]],[[9,[94]]],19],[[[89,[-1]],[89,[-1]]],[[9,[94]]],19],[[[90,[-1]]],[[101,[-1]]],19],[[[68,[-1]]],120,19],[[[90,[-1]]],120,19],[[[71,[-1]]],120,19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-3]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-3]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[68,[-1]]],[[128,[-1]]],19],0,[[[96,[-1]]],-1,52],0,0,0,[[[68,[-1]],-2],28,19,65],[[[90,[-1]],-2],28,19,65],[[[70,[-1]],-2],28,19,65],[[[71,[-1]],-2],28,19,65],[[[72,[-1]],-2],28,19,65],[[[91,[-1]],-2],28,19,65],[[[92,[-1]],-2],28,19,65],[[36,-1],28,65],[[[90,[-1]]],24,19],[[[70,[-1]]],24,19],[[[91,[-1]]],24,19],[[[67,[-1]]],[[9,[5]]],19],[36,[[9,[5]]]],[36,16],0,[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[129,24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]],[106,[-1]]],[[9,[[72,[-1]]]]],19],[[[72,[-1]]],[[107,[-1]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]],[20,[[107,[-1]]]]],[[9,[[106,[-1]]]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[[[96,[-1]]],[[28,[-1,[96,[-1]]]]],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[102,39],[[28,[2,40]]]],[[102,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1]],-4],[[28,[-1,-2]]],[],[5,97],[[100,[-2],[[98,[99]]]]],[[126,[],[[125,[-3]]]]]],[[[96,[-1]],130],[[9,[-1]]],52],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[131,[-1,-2]]],-2,[],[]],[[[131,[-1,-2]]],-2,[],[]],0,[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[60,52,53],[52,53]],[132,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[131,[-1,-2]]],[[131,[-1,-2]]],18,18],[132,132],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[62,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[62,52],52],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[26,[[115,[[54,[114]]]]]],[[133,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[26,[[115,[[54,[114]]]]]],[26,[[115,[[54,[114]]]]]],[[137,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[],132],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],0,[[[131,[-1,-2]],32],35,34,34],[[132,32],35],[-1,-1,[]],[-1,-1,[]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],[119,[-1]]],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53]],[[[131,[-2,-3]],-4,24],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[138,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[134,[139,-1]],[140,[139]]],[[115,[[54,[114]]]]],[[136,[139]],141]],[[[131,[-1,-2]],[140,[139]]],[[115,[[54,[114]]]]],142,[141,52,53]],[[132,[140,[139]]],[[115,[[54,[114]]]]]],[[],26],[[],26],[[[131,[-1,-2]]],-1,[],[]],[[[131,[-1,-2]]],-1,[],[]],[[[131,[-2,-3]],[90,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[131,[-2,-3]],[68,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[131,[-2,-3]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[131,[-1,-2]]],143,[60,52,53],[52,53]],[132,143],[[-1,-2],[[131,[-1,-2]]],[],[]],0,[[133,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],0,[-1,[[54,[144]]],[]],[-1,[[54,[144]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[[[62,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[62,52],52],[[[134,[-1,-2]]],[[135,[2]]],19,[[136,[-1]]]],0,0,0,[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[61,[140,[-1]]],[[115,[[54,[114]]]]],19],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[],2],[[],2],0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1,-2,-3]]],[[135,[[145,[-1,-2,-3]]]]],19,[[59,[-1]],[147,[-1]]],[[136,[-1]]]],[[-2,-3],[[146,[-1,-2,-3]]],19,[[59,[-1]],[147,[-1]]],[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[145,[-1,-2,-3]]],19,[],[]],[[[148,[-1,-2,-3]]],[[148,[-1,-2,-3]]],19,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[62,52,53],[52,53]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[133,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[153,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[154,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[154,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[146,[-1,-2,-3]]],[[146,[-1,-2,-3]]],[],[],[]],[26,2],[26,2],[26,2],[26,2],[26,2],[[[145,[-1,-2,-3]],32],35,19,34,34],[[[148,[-1,-2,-3]],32],35,19,34,34],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[155,[[0,[-1,-2]]]]],[[153,[-1,-2]]],19,[]],[[[156,[[0,[-1,-2]]]]],[[154,[-1,-2]]],19,[]],[-1,-1,[]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],[119,[-1]]],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]]],[[[145,[-1,-2,-3]],-4,24],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[138,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[],26],[[],26],[[],26],[[],26],[[],26],[[[145,[-1,-2,-3]],[90,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]],[68,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[145,[-1,-2,-3]]],143,19,[[59,[-1]],52,53],[52,53]],[[-1,-2],[[146,[-3,-1,-2]]],[],[],[]],[[133,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,[[54,[144]]],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[62,52,53],[52,53]],[[[145,[-1,[152,[-1]],-2]]],[[135,[2]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[153,[-1,-2]]],19,[],[]],[[[145,[-1,-2,-3]]],[[154,[-1,-2]]],19,[],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[145,[-1,157,-2]]],[[159,[158]]],19,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],130],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],130],[[146,[-1,-2,-3]]],[],[],[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],0,0,0,0,0,0,0,[[[160,[-1,-2]]],[[115,[[54,[114]]]]],19,[52,53]],[-1,[[115,[[54,[114]]]]],[]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[26,[[115,[[54,[114]]]]]],[[[160,[139,-1]],[140,[139]]],[[115,[[54,[114]]]]],[[136,[139]],141]],0,0,[-1,[[115,[[54,[114]]]]],[]],0,[[[160,[-1,-2]]],[[159,[158]]],19,[]],0,[[],2],0,0,0,0,0,[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[119,[-1]]],[[115,[[54,[114]]]]],19],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,[88,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],0,0,0,0,[-1,4,[]],[-1,4,[]],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[133,[[28,[[152,[-1]],161]]],19],[137,[[28,[[152,[-1]],161]]],19],[26,-1,[]],[26,-1,[]],[26,2],[[[152,[-1]],32],35,19],[-1,-1,[]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[119,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[[152,[-1]],[88,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[],26],[[[152,[-1]],[90,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[68,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[133,[[28,[[152,[-1]],161]]],19],[137,[[28,[[152,[-1]],161]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[28,[2,161]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[162,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[162,162],[[-1,-2],2,[],[]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],[[],162],[26,-1,[]],[26,-1,[]],[26,2],[[162,32],35],[-1,-1,[]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[119,[-1]]],[[115,[[54,[114]]]]],19],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[162,[88,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[],26],[[162,[90,[-1]]],[[115,[[54,[114]]]]],19],[[162,[68,[-1]]],[[115,[[54,[114]]]]],19],[[162,[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],0,[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[[162,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[163,[[115,[[54,[114]]]]]],[163,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[163,[[115,[[54,[114]]]]]],[-1,[[115,[[54,[114]]]]],[]],[163,[[115,[[54,[114]]]]]],[26,[[115,[[54,[114]]]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[-1,-1,[]],[-1,-1,[]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,[119,[139]]],[[115,[[54,[114]]]]]],[[163,-1,24],[[115,[[54,[114]]]]],[[15,[[138,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[88,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,[140,[139]]],[[115,[[54,[114]]]]]],[[],26],[[],26],[[163,[90,[139]]],[[115,[[54,[114]]]]]],[[163,[68,[139]]],[[115,[[54,[114]]]]]],[[163,[71,[139]],[9,[124]]],[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[163,143],[163,[[115,[[54,[114]]]]]],[-1,[[54,[144]]],[]],[-1,[[115,[[54,[114]]]]],[]],[163,[[115,[[54,[114]]]]]],[[[164,[163]]],[[115,[[54,[114]]]]]],[163,[[115,[[54,[114]]]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[165,24],[-1,-2,[],[]],[-1,-2,[],[]],[165,165],[[-1,-2],2,[],[]],[[],165],[26,-1,[]],[26,-1,[]],[26,2],[[165,32],35],[-1,-1,[]],[166,[[115,[[54,[114]]]]]],[167,[[9,[165]]]],[[],26],[165,130],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[168,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[165,169],[165,130],[[],165],[166,[[115,[[54,[114]]]]]],[165,[[9,[24]]]],[[[168,[],[[122,[-1]]]],24],[[115,[[54,[114]]]]],[5,34,52,53]],[[167,165],2],[165,130],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[165,[[135,[2]]]],[-1,-2,[],[]],[[165,24],165],[[165,130],165],[[165,169],165],[[165,130],165],[[165,24],165],[[165,130],165],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[170,[[9,[171]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[151,5],[151,5],[151,172],[157,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[151,173],[170,24],[174,[[115,[[54,[114]]]]]],[158,[[115,[[54,[114]]]]]],[157,[[115,[[54,[114]]]]]],[170,170],[149,149],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[170,170],94],[157,[[115,[[54,[114]]]]]],[[-1,-2],94,[],[]],[[149,-2],[[28,[[160,[-1,-2]],151]]],19,[[136,[-1]]]],[149,[[28,[157,151]]]],[[151,-1],151,[51,52,53]],[157,[[115,[[54,[114]]]]]],[[149,27],149],[[],149],[[],[[175,[170]]]],[26,-1,[]],[151],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[151],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[151,[[28,[-1,151]]],[51,34,52,53]],[151,[[9,[-1]]],[51,34,52,53]],[151,[[9,[-1]]],[51,34,52,53]],[151,2],[26,2],[26,2],[26,2],[26,2],[157,2],[26,2],[[170,170],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[158,-1,-2],[[159,[24]]],[43,176],177],[[158,-1,-2],[[159,[24]]],[43,176,51],177],[[158,-1,-2],[[159,[24]]],[43,176,51],[177,18]],[[158,-1,-2],[[159,[2]]],[43,176,51],177],[[158,-1,-2],[[159,[2]]],[43,176,51],[177,18]],[[151,32],[[28,[2,33]]]],[[151,32],[[28,[2,33]]]],[[170,32],[[28,[2,33]]]],[[170,32],[[28,[2,33]]]],[[149,32],35],[[157,32],35],[178,-1,[]],[-1,-1,[]],[-1,151,[5,52,53]],[-1,-1,[]],[-1,-1,[]],[179,149],[-1,-1,[]],[-1,-1,[]],[27,[[28,[149,-1]]],[]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[157,[119,[-1]]],[[115,[[54,[114]]]]],19],[157,[[115,[[54,[114]]]]]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[157,[88,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[157,[[9,[165]]]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[149,-1],149,[[15,[14]]]],0,0,[[],26],[[],26],[[],26],[[],26],[[],26],[[157,[90,[-1]]],[[115,[[54,[114]]]]],19],[[157,[68,[-1]]],[[115,[[54,[114]]]]],19],[[157,[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[151,30],[157,[[115,[[54,[114]]]]]],[[149,-1],149,[[177,[],[[86,[170]]]]]],[-1,151,[51,34,52,53]],[170,27],[-1,151,[5,52,53]],[149,149],[[170,170],[[9,[94]]]],[[149,27],149],[157,[[115,[[54,[114]]]]]],[[149,169],149],0,[170,180],[157,[[115,[[54,[114]]]]]],[[149,165],[[28,[149,151]]]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[149,149],[157,[[115,[[54,[114]]]]]],[151,5],[[157,24],[[115,[[54,[114]]]]]],[[149,-1],149,[[15,[14]]]],[[157,165],2],[170,[[9,[27]]]],[157,[[115,[[54,[114]]]]]],0,[149,149],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[157,[[159,[158]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[27,27],[[28,[170,181]]]],[[158,27,[182,[27]],-1,-3],[[159,[2]]],[[177,[],[[86,[27]]]]],[183,18],[[177,[],[[86,[[182,[-2]]]]]]]],[[149,27],149],[170,184],[[157,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[185,149],[26,-1,[]],[26,-1,[]],[185,2],[26,2],[[185,32],35],[-1,-1,[]],[185,14],[[],185],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[185,169],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[186,[-1,-2]]],[[186,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[186,[-1,-2]]],[],[]],[26,-1,[]],[26,-1,[]],[26,2],[[[186,[-1,-2]],32],35,[],[]],[-1,-1,[]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,0,[[187,-1],2,[]],[[188,-1],[[0,[[114,[],[[125,[2]]]],52]]],[]],[[[186,[-2,-3]],-2,-4,-5],2,[],[[189,[-1]]],188,[[190,[-1,-2]]],[[177,[],[[86,[-3]]]],52]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],[[[186,[-1,-2]],130],[[186,[-1,-2]]],[],[]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[191,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[192,[-1]]],19],[193,193],[[[191,[-1]]],[[191,[-1]]],[]],[194,194],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],[[192,[-1]]],19],[[],194],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[26,2],[[[191,[-1]]],2,[]],[[190,-2],[[115,[[54,[114]]]]],[],[[189,[-1]]]],[[[192,[-1]],195],[[115,[[54,[114]]]]],19],[[[192,[-1]],196],[[115,[[54,[114]]]]],19],[[[192,[-1]],197],[[115,[[54,[114]]]]],19],[[193,197],[[115,[[54,[114]]]]]],[[193,195],[[115,[[54,[114]]]]]],[[193,196],[[115,[[54,[114]]]]]],[[[191,[-3]],-2],[[115,[[54,[114]]]]],19,[[189,[-1]]],[[190,[-1,-2]],53]],[[194,-2],[[115,[[54,[114]]]]],[],[52,[189,[-1]]]],[[[192,[-1]],32],35,19],[[193,32],35],[[[191,[-1]],32],35,34],[[194,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[198,193],[-1,[[191,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[[191,[-1]]],2,[]],[[[191,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,195]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,197]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[136,[-1]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,196]],34]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[195,195],[196,196],[197,197],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[[195,195],30],[[196,196],30],[[197,197],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[195,32],35],[[196,32],35],[[197,32],35],[-1,-1,[]],[-1,-1,[]],[26,197],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[195,-1],2,49],[[196,-1],2,49],[[197,-1],2,49],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[199,26],2],[[200,201],2],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[202,[[9,[8]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[202,[[9,[5]]]],[143,143],[199,199],[203,203],[200,200],[204,204],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[143,14,[9,[14]]],[[54,[205]]]],[[143,14,[9,[14]]],[[54,[206]]]],[[143,14,[9,[14]]],[[54,[207]]]],[[143,14],[[54,[208]]]],[[],143],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[202,27],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[143,[[28,[14,-1]]],[]],[[202,32],35],[[202,32],35],[[143,32],35],[[199,32],35],[[203,32],35],[[200,32],35],[[204,32],35],[-1,-1,[]],[209,202],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[199,26],[203,26],[204,14],[[143,27],[[28,[199,202]]]],[[143,27],[[28,[203,202]]]],[[143,27],[[28,[200,202]]]],[[143,27],[[28,[204,202]]]],[[143,-1],[[28,[143,202]]],177],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[200,201],[200,26],[[203,26],2],[[204,14],2],[202,[[9,[5]]]],[[143,14],[[54,[144]]]],[200,201],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[203,210],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[37,[[9,[8]]]],0,[59,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[211,[-1,-2]]],37,[[15,[14]]],[[15,[16]]]],[37,[[9,[5]]]],[[[138,[-1]]],[[138,[-1]]],19],[212,212],[[[213,[-1]]],[[213,[-1]]],18],[214,214],[215,215],[[[216,[-1]]],[[216,[-1]]],18],[[[217,[-1,-2]]],[[217,[-1,-2]]],18,18],[[[211,[-1,-2]]],[[211,[-1,-2]]],18,18],[37,37],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[212,212],94],[[-1,-2],94,[],[]],[59,[[115,[[54,[114]]]]]],[[],[[213,[-1]]],[]],[[],218],[218,[[28,[[103,[-1,37]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[37,27],[-1,[[28,[212]]],29],[-1,[[28,[[213,[-2]]]]],29,219],[-1,[[28,[37]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],0,[[212,212],30],[[[213,[-1]],[213,[-1]]],30,82],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[211,[-1,-2]]],[[28,[-3,37]]],[[15,[14]]],[[15,[16]]],[]],[[[138,[-1]],32],35,19],[[212,32],35],[[[213,[-1]],32],35,34],[[214,32],35],[[215,32],35],[[[216,[-1]],32],35,34],[[[217,[-1,-2]],32],35,34,34],[[[211,[-1,-2]],32],35,34,34],[[37,32],35],[[37,32],35],[-1,-1,[]],[[[69,[-1]]],[[138,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[[[213,[-1]]],[[9,[24]]],220],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[109,37],[[[2,[14,16]]],37],[10,37],[-1,-1,[]],[39,[[28,[218,40]]]],[39,[[28,[218,40]]]],[[],212],[[-1,-2],24,[42,43],44],[[59,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[],[[9,[48]]]],[[212,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,37,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[214,-1],37,[]],[[215,-1],37,[]],[[[216,[-1]],-2],37,[[15,[14]]],[]],[[[217,[-1,-2]],-3],37,[[15,[14]]],[[15,[24]]],[]],[[[211,[-1,-2]],-3],37,[[15,[14]]],[[15,[16]]],[]],[212,30],0,0,0,0,0,0,[[212,212],[[9,[94]]]],[59,[[115,[[54,[114]]]]]],0,0,[[212,-1],28,65],[[[213,[-1]],-2],28,64,65],[[37,-1],28,65],[37,[[9,[5]]]],0,[37,16],0,[59,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[218,39],[[28,[2,40]]]],[[218,39],[[28,[2,40]]]],[[59,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[38,[[9,[8]]]],[60,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,[[9,[5]]]],[221,221],[38,38],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[221,221],94],[[-1,-2],94,[],[]],[60,[[159,[143]]]],[60,[[159,[143]]]],[[],221],[[],222],[222,[[28,[[103,[-1,38]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[38,27],[-1,[[28,[221]]],29],[-1,[[28,[38]]],29],[26,2],[26,2],[26,2],[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[[221,221],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[221,32],35],[[38,32],35],[[38,32],35],[-1,-1,[]],[-1,-1,[]],[14,38],[-1,-1,[]],[109,38],[39,[[28,[222,40]]]],[39,[[28,[222,40]]]],[[-1,-2],24,[42,43],44],[[],[[9,[48]]]],[[221,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[60,143],[[221,221],[[9,[94]]]],[223,[[54,[144]]]],[[221,-1],28,65],[[38,-1],28,65],[38,[[9,[5]]]],[38,16],[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[222,39],[[28,[2,40]]]],[[222,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[],2],[130,2],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[115,[[54,[114]]]]],[]],[26,[[115,[[54,[114]]]]]],[[[164,[-1]]],[[55,[[224,[-1]]]]],225],[[[164,[-1]],26],[[55,[[224,[-1]]]]],225],[26,-1,[]],[26,-1,[]],[[[164,[-1]]],2,225],[26,2],[-1,-1,[]],[[[164,[-1]]],[[57,[139,226]]],225],[[[225,[],[[227,[-1]]]],[140,[139]]],[[115,[[54,[114]]]]],[52,53]],[[],[[164,[-1]]],[225,223]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[164,[-1]]],26,225],[[[164,[-1]],26],[[228,[139]]],225],[-1,[[115,[[54,[114]]]]],[]],[[[164,[[225,[],[[227,[-1]]]]]]],[[115,[[54,[114]]]]],[52,53]],[[[164,[-1]]],2,225],[[[164,[-1]]],2,225],[[[164,[-1]]],[],225],[[[164,[-1]],229],2,225],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[139,139],[226,226],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[139,139],94],[[226,226],94],[[-1,-2],94,[],[]],[[-1,-2],94,[],[]],[[],139],[[],226],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[-1,[[28,[139]]],29],[-1,[[28,[226]]],29],[26,2],[26,2],[[139,139],30],[[226,226],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[139,32],35],[[226,32],35],[-1,-1,[]],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[139,-1],2,49],[[226,-1],2,49],[230,24],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[231,-1],-2,[],[]],0,[[231,-1],26,[]],[[[175,[232]]],229],[[139,139],[[9,[94]]]],[[226,226],[[9,[94]]]],0,0,[[139,-1],28,65],[[226,-1],28,65],0,[230,24],0,[-1,-2,[],[]],[-1,-2,[],[]],[[231,-1,-2],[[9,[[2,[-3,-4]]]]],[],[],[],[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[220,24]],"c":[],"p":[[5,"Private",2786],[1,"tuple"],[5,"Private",2786],[10,"Any",2787],[10,"Error",2788],[5,"Command",2789],[6,"Error",0],[5,"Backtrace",2790],[6,"Option",2791],[6,"QueryError",0],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"Snafu",0],[5,"String",2792],[10,"Into",2793],[6,"StatusCode",2794],[5,"Leaf",0],[10,"Clone",2795],[10,"NodeType",2796],[5,"Commitment",2797],[10,"Resolvable",0],[10,"Committable",2797],[10,"RngCore",2798],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",2799],[10,"Deserializer",2800],[1,"bool"],[6,"BlockError",2801],[5,"Formatter",2802],[5,"Error",2802],[10,"Debug",2802],[8,"Result",2802],[6,"Error",290],[6,"Error",2191],[6,"Error",2522],[5,"ArgMatches",2803],[8,"Error",2804],[5,"StoredView",2805],[10,"Hash",2806],[10,"Sized",2807],[10,"BuildHasher",2806],[5,"QuorumData",2808],[5,"SuccessThreshold",2809],[5,"SimpleCertificate",2809],[5,"Id",2810],[10,"Hasher",2806],[5,"IndentedSection",2811],[10,"Display",2802],[10,"Send",2807],[10,"Sync",2807],[5,"Box",2812],[5,"Arc",2813],[5,"Rc",2814],[5,"SystemContextHandle",2815],[10,"AvailabilityDataSource",290],[10,"NodeDataSource",2191],[10,"StatusDataSource",2522],[10,"UpdateDataSource",1010],[10,"VersionedDataSource",1010],[10,"NodeImplementation",2796],[10,"Serialize",2816],[10,"Serializer",2816],[5,"TypeId",2787],[5,"InconsistentLeafError",290],[5,"LeafQueryData",290],[8,"BlockHash",290],[5,"PayloadQueryData",290],[5,"VidCommonQueryData",290],[5,"TransactionQueryData",290],[5,"FetchLeafSnafu",290],[5,"FetchBlockSnafu",290],[5,"FetchTransactionSnafu",290],[5,"InvalidTransactionIndexSnafu",290],[5,"CustomSnafu",290],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",290],[10,"PartialEq",2817],[10,"Eq",2817],[10,"Ord",2817],[10,"DeserializeOwned",2800],[17,"Item"],[10,"Iterator",2818],[6,"LeafId",290],[6,"BlockId",290],[5,"BlockQueryData",290],[5,"BlockSummaryQueryData",290],[5,"TransactionSummaryQueryData",290],[5,"RequestSnafu",290],[6,"Ordering",2817],[8,"VidCommon",0],[6,"Fetch",290],[10,"ErrorCompat",2819],[17,"Source"],[5,"NoneError",2819],[10,"IntoError",2819],[8,"Payload",0],[5,"Options",290],[5,"Api",2820],[6,"ApiError",2820],[10,"ReadState",2821],[8,"TransactionIndex",290],[8,"Transaction",0],[8,"LeafHash",290],[6,"RequestError",2822],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"VidCommonRange"],[10,"Future",2823],[5,"Pin",2824],[10,"Stream",2825],[10,"Unpin",2807],[10,"RangeBounds",2826],[8,"TransactionHash",290],[8,"VidCommitment",0],[8,"Header",0],[17,"Error"],[10,"UpdateAvailabilityData",290],[8,"VidShare",0],[17,"Output"],[10,"FnOnce",2827],[8,"Metadata",0],[8,"QuorumCertificate",2809],[10,"QueryableHeader",290],[5,"Duration",2828],[5,"ExtensibleDataSource",1010],[5,"MetricsDataSource",1010],[5,"Path",2829],[8,"FileSystemDataSource",1010],[8,"Result",2830],[10,"AvailabilityProvider",1126],[5,"AtomicStoreLoader",2831],[6,"WindowStart",2191],[5,"MockTypes",2688],[5,"Event",2832],[10,"Default",2833],[10,"TestableDataSource",2649],[5,"PrometheusMetrics",2012],[10,"Metrics",2834],[5,"FetchingDataSource",1126],[5,"Builder",1126],[10,"AvailabilityStorage",1302],[5,"Pruner",1126],[5,"Config",1530],[8,"Builder",1283],[5,"Error",1530],[5,"FileSystemStorage",1320],[5,"StorageReadGuard",1126],[5,"StorageWriteGuard",1126],[5,"RwLockReadGuard",2835],[5,"RwLockWriteGuard",2835],[5,"SqlStorage",1530],[5,"Transaction",1530],[8,"QueryResult",0],[8,"SqlDataSource",1283],[6,"PersistenceError",2836],[5,"NoStorage",1365],[6,"DataSource",1412],[5,"MockNetwork",2649],[5,"PrunerCfg",1481],[10,"PruneStorage",1481],[10,"PrunerConfig",1481],[10,"PrunedHeightStorage",1481],[1,"u16"],[5,"Migration",1530],[5,"OffsetDateTime",2837],[5,"Backtrace",2838],[5,"Chain",2830],[10,"Query",1530],[5,"Vec",2839],[10,"ToStatement",2840],[10,"IntoIterator",2841],[1,"never"],[5,"Config",2842],[6,"Type",2843],[5,"Error",2844],[1,"array"],[10,"BorrowToSql",2845],[1,"u32"],[5,"TmpDb",1739],[5,"Fetcher",1763],[10,"LocalCallback",1763],[10,"Callback",1763],[10,"Request",1916],[10,"Provider",1798],[5,"TestProvider",1798],[5,"AnyProvider",1798],[5,"QueryServiceProvider",1798],[5,"NoFetching",1798],[5,"PayloadRequest",1916],[5,"VidCommonRequest",1916],[5,"LeafRequest",1916],[5,"Url",2846],[5,"Counter",2012],[5,"Histogram",2012],[1,"f64"],[6,"MetricsError",2012],[5,"Gauge",2012],[5,"Label",2012],[10,"Counter",2834],[10,"Gauge",2834],[10,"Histogram",2834],[10,"Label",2834],[6,"Error",2847],[1,"i64"],[5,"CustomSnafu",2191],[5,"SyncStatus",2191],[5,"TimeWindowQueryData",2191],[5,"RequestSnafu",2191],[5,"QuerySnafu",2191],[5,"QueryVidSnafu",2191],[5,"QueryWindowSnafu",2191],[5,"Options",2191],[10,"Deserialize",2800],[10,"HeightIndexed",2784],[5,"MempoolQueryData",2522],[5,"Options",2522],[10,"UpdateStatusData",2522],[5,"RwLock",2835],[10,"DataSourceLifeCycle",2649],[5,"MockNodeImpl",2688],[17,"Storage"],[8,"SignatureKey",0],[8,"MockTransaction",2688],[8,"MockHeader",2688],[8,"MockPayload",2688],[1,"u8"],[15,"Custom",284],[15,"Availability",284],[15,"Node",284],[15,"Status",284],[15,"Error",289],[15,"InvalidTransactionIndex",1002],[15,"Custom",1002],[15,"FetchLeaf",1002],[15,"FetchBlock",1002],[15,"FetchTransaction",1002],[15,"Request",1002],[6,"Storage",1412],[15,"NoStorage",1480],[15,"NoSuchMetric",2187],[15,"NoSuchSubgroup",2187],[15,"Prometheus",2187],[15,"QueryVid",2513],[15,"QueryWindow",2513],[15,"Custom",2513],[15,"Request",2513],[15,"Query",2513],[15,"Internal",2643],[15,"Request",2643],[8,"MockQuorumProposal",2688]],"b":[[137,"impl-Debug-for-Leaf%3CTYPES%3E"],[138,"impl-Display-for-Leaf%3CTYPES%3E"],[139,"impl-Display-for-Error"],[140,"impl-Debug-for-Error"],[144,"impl-Display-for-QueryError"],[145,"impl-Debug-for-QueryError"],[148,"impl-From%3CError%3E-for-Error"],[149,"impl-From%3CError%3E-for-Error"],[150,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[151,"impl-From%3CError%3E-for-Error"],[635,"impl-Display-for-LeafId%3CTypes%3E"],[636,"impl-Debug-for-LeafId%3CTypes%3E"],[637,"impl-Debug-for-BlockId%3CTypes%3E"],[638,"impl-Display-for-BlockId%3CTypes%3E"],[640,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[641,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[654,"impl-Debug-for-Error"],[655,"impl-Display-for-Error"],[658,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[659,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[660,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[661,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[680,"impl-From%3CRequestError%3E-for-Error"],[681,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1030,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1031,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1047,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1048,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1146,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1147,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1291,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1292,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1422,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1423,"impl-StatusDataSource-for-DataSource"],[1551,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1552,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1617,"impl-Display-for-Error"],[1618,"impl-Debug-for-Error"],[1619,"impl-Display-for-Migration"],[1620,"impl-Debug-for-Migration"],[1852,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[1853,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[1854,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[1855,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1856,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[1857,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider"],[2095,"impl-Display-for-MetricsError"],[2096,"impl-Debug-for-MetricsError"],[2358,"impl-Debug-for-Error"],[2359,"impl-Display-for-Error"],[2371,"impl-From%3CRequestError%3E-for-Error"],[2372,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[2373,"impl-From%3CQueryError%3E-for-Error"],[2584,"impl-Debug-for-Error"],[2585,"impl-Display-for-Error"],[2588,"impl-From%3CString%3E-for-Error"],[2590,"impl-From%3CRequestError%3E-for-Error"]]}]\ +["hotshot_query_service",{"doc":"The HotShot Query Service is a minimal, generic query …","t":"PPPGPIFIPFPPFPFIGIKIFPIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCOOOOHNNNNNCNNOCNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNCNNONNNNNNNOOOOOOKIGFRFPFGRGPFPFPFPPRFPFRIGFRPPFPFRPKKPPFIIIIRFFKFRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNMMMMMMNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOMNNONNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNONNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOERFEIFEKKNNNNNNNNNNCNNNNNNNNNNNMNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNMNNCCCNNNNNNNNNMNNNHHKFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHHHHHIEFFEIENNNNNQENCNEHKEEECMMMMMMMMMMCCCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNGPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNORKKFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNNNCCMMNNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFGPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONMOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGPFFPKKNNNNONNNNNNNNNNMNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNMNMNNNNNNNNNONNNNNNNNNNNNNNOOCCHHKIFSRKNNNNMMNNNNNNNNMNNNNNNNNMNNNNNNNNNNIIIFIIIFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONHNNOONNONONNNONNNNNNOONNKM","n":["Availability","Custom","Err","Error","Error","Header","Leaf","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","availability","availability","backtrace","backtrace","block_header","block_payload","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","catch_all","cause","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commitment","commitment","create_random_transaction","data_source","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fail","fail","fail","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_stored_view","genesis","get_block_header","get_block_payload","get_hash","get_height","get_justify_qc","get_parent_commitment","get_payload_commitment","get_proposer_id","get_view_number","group_id","hash","header","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","init","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","justify_qc","message","metrics","node","node","parent_commitment","port","proposer_id","run_standalone_service","serialize","serialize","serialize","source","source","status","status","status","status","testing","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","types","update_from_arg_matches","update_from_arg_matches_mut","view_number","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonQueryData","VidCommonRange","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","backtrace","backtrace","block_hash","block_hash","block_hash","block_hash","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","by_hash","by_hash","cause","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","common","compare","compare","context","data","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","fetch_timeout","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","genesis","genesis","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","group_id","hash","hash","hash","hash","hash","hash","hash","header","header","header","header","header","header","header","height","height","height","height","height","height","height","in_current_span","in_current_span","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","insert_block","insert_leaf","insert_vid","internal","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","into_error","into_future","is_empty","is_empty","is_empty","iter","leaf","leaf","len","len","map","message","metadata","new","new","new","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","num_transactions","num_transactions","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","payload_hash","proof","proof","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","size","size","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","subscribe_payloads","subscribe_payloads","subscribe_vid_common","subscribe_vid_common","timestamp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transaction","transaction","transaction","transaction","transaction_by_hash","transaction_by_hash","transaction_by_hash","transaction_by_hash_with_proof","transaction_by_hash_with_proof","transaction_with_proof","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","with_timeout","height","index","message","resource","resource","resource","source","status","AvailabilityProvider","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_mut","as_ref","availability_tests","block_height","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit","connect","connect","connect","count_transactions","create","create","create","create","create_with_store","default","deref","deref","deref_mut","deref_mut","drop","drop","fetching","fmt","fmt","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","handle_event","handle_event","handle_event","init","init","inner","inner_mut","insert_block","insert_leaf","insert_vid","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","metrics","new","node_tests","open","open_with_store","payload_size","persistence_tests","populate_metrics","populate_metrics","reset","reset","reset","revert","revert","skip_version","sql","status_tests","storage","sync_status","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update","vid_share","vzip","vzip","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","StorageReadGuard","StorageWriteGuard","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone_into","clone_into","commit","connect","count_transactions","create","create_with_store","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","disable_proactive_fetching","drop","drop","drop","drop","drop","fmt","fmt","from","from","from","from","from","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","init","init","init","init","insert_block","insert_leaf","insert_vid","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","metrics","new","open","open_with_store","payload_size","populate_metrics","revert","skip_version","storage","storage_mut","sync_status","to_owned","to_owned","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vid_share","vzip","vzip","vzip","vzip","vzip","with_major_scan_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_retry_delay","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_reset","test_revert","Builder","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","connect","create","handle_event","include_migrations","postgres","reset","testing","transaction","TmpDb","test_metrics","AvailabilityStorage","FileSystemStorage","NoStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","no_storage","pruning","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_transactions","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","insert_block","insert_leaf","insert_vid","into","into_any","into_any_arc","into_any_rc","open","open_with_store","payload_size","revert","skip_version","sync_status","try_from","try_into","type_id","vid_share","vzip","NoStorage","__clone_box","__clone_box","as_any","as_any_mut","block_height","borrow","borrow_mut","clone","clone_into","commit","count_transactions","default","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","init","insert_block","insert_leaf","insert_vid","into","into_any","into_any_arc","into_any_rc","payload_size","revert","sync_status","testing","to_owned","try_from","try_into","type_id","vid_share","vzip","DataSource","NoStorage","NoStorage","Sql","Sql","Storage","as_any","as_any","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","commit","connect","count_transactions","create","deref","deref","deref_mut","deref_mut","drop","drop","from","from","get_block","get_block_range","get_block_with_transaction","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_vid_common","get_vid_common_range","handle_event","init","init","insert_block","insert_leaf","insert_vid","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","payload_size","populate_metrics","reset","revert","setup","sync_status","try_from","try_from","try_into","try_into","type_id","type_id","vid_share","vzip","vzip","fetch_from_port","Error","PruneStorage","PrunedHeightStorage","PrunerCfg","PrunerConfig","__clone_box","__clone_box","as_any","as_any_mut","batch_size","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","into_any","into_any_arc","into_any_rc","load_pruned_height","max_usage","minimum_retention","new","prune","pruning_threshold","save_pruned_height","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","Config","Error","Migration","Query","SqlStorage","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","applied_on","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","as_ref","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","builder","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_transactions","database","default","default_migrations","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_ref","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","execute","execute_many","execute_many_with_retries","execute_one","execute_one_with_retries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_str","get_block","get_block_range","get_block_with_transaction","get_disk_usage","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_pruning_config","get_vid_common","get_vid_common_range","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","insert_vid","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","load_pruned_height","migrations","msg","name","new","no_migrations","partial_cmp","password","payload_size","port","postgres","prefix","prune","pruner_cfg","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","save_pruned_height","schema","set_pruning_config","sql","sync_status","testing","tls","to_owned","to_owned","to_string","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unapplied","upsert","user","version","vid_share","vzip","vzip","vzip","vzip","vzip","TmpDb","as_any","as_any_mut","borrow","borrow_mut","config","deref","deref_mut","drop","drop","fmt","from","host","init","init","into","into_any","into_any_arc","into_any_rc","port","try_from","try_into","type_id","vzip","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","init","into","into_any","into_any_arc","into_any_rc","provider","request","run","run","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fail","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","new","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unblock","unfail","vzip","vzip","vzip","vzip","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","get_hash","get_hash","get_hash","hash","hash","hash","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Counter","Gauge","Histogram","Label","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add_point","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","backtrace","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","create_counter","create_gauge","create_histogram","create_label","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","drop","drop","drop","drop","drop","drop","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get","get","get","get_counter","get_gauge","get_histogram","get_label","get_subgroup","header","in_current_span","init","init","init","init","init","init","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","mean","sample_count","set","set","source","subgroup","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","vzip","label","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","count_transactions","default","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","fully_synced","get_hash","get_header_window","group_id","hash","header","in_current_span","init","init","init","init","init","init","init","init","init","init","internal","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","is_fully_synced","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","prev","pruned_height","serialize","serialize","serialize","source","start","status","status","sync_status","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vid_share","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","window","block","end","message","source","source","source","source","start","status","Error","Internal","MempoolQueryData","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone_into","clone_into","cmp","compare","consensus_metrics","consensus_metrics","default","default","define_api","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","elapsed_time_since_last_decide","elapsed_time_since_last_decide","eq","equivalent","equivalent","equivalent","equivalent","extensions","fmt","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","group_id","hash","header","in_current_span","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","memory_footprint","mempool_info","mempool_info","metrics","partial_cmp","populate_metrics","serialize","serialize","source","status","success_rate","success_rate","to_owned","to_owned","to_string","transaction_count","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","reason","source","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","NUM_NODES","Storage","TestableDataSource","as_any","as_any_mut","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","drop","drop","from","handle","handle_event","init","init","into","into_any","into_any_arc","into_any_rc","num_nodes","proposer","reset","setup","shut_down","spawn","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockHeader","MockMembership","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockTransaction","MockTypes","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","block_header","block_number","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","default","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","get_hash","get_hash","hash","hash","height","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","iter","justify_qc","len","mock_transaction","partial_cmp","partial_cmp","payload_commitment","proposer_id","serialize","serialize","timeout_certificate","timestamp","timestamp","to_owned","to_owned","transaction_with_proof","transactions","try_from","try_from","try_into","try_into","type_id","type_id","upgrade_certificate","view_number","vzip","vzip","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[284,"hotshot_query_service::Error"],[289,"hotshot_query_service::QueryError"],[290,"hotshot_query_service::availability"],[1002,"hotshot_query_service::availability::Error"],[1010,"hotshot_query_service::data_source"],[1124,"hotshot_query_service::data_source::availability_tests"],[1126,"hotshot_query_service::data_source::fetching"],[1275,"hotshot_query_service::data_source::node_tests"],[1281,"hotshot_query_service::data_source::persistence_tests"],[1283,"hotshot_query_service::data_source::sql"],[1300,"hotshot_query_service::data_source::sql::testing"],[1301,"hotshot_query_service::data_source::status_tests"],[1302,"hotshot_query_service::data_source::storage"],[1320,"hotshot_query_service::data_source::storage::fs"],[1365,"hotshot_query_service::data_source::storage::no_storage"],[1412,"hotshot_query_service::data_source::storage::no_storage::testing"],[1480,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1481,"hotshot_query_service::data_source::storage::pruning"],[1530,"hotshot_query_service::data_source::storage::sql"],[1738,"hotshot_query_service::data_source::storage::sql::testing"],[1762,"hotshot_query_service::fetching"],[1797,"hotshot_query_service::fetching::provider"],[1915,"hotshot_query_service::fetching::request"],[2011,"hotshot_query_service::metrics"],[2186,"hotshot_query_service::metrics::MetricsError"],[2190,"hotshot_query_service::node"],[2512,"hotshot_query_service::node::Error"],[2521,"hotshot_query_service::status"],[2642,"hotshot_query_service::status::Error"],[2644,"hotshot_query_service::testing"],[2648,"hotshot_query_service::testing::consensus"],[2688,"hotshot_query_service::testing::mocks"],[2784,"hotshot_query_service::types"],[2786,"dyn_clone::sealed"],[2787,"dyn_clone::sealed"],[2788,"core::error"],[2789,"clap_builder::builder::command"],[2790,"snafu::backtrace_shim"],[2791,"core::option"],[2792,"alloc::string"],[2793,"core::convert"],[2794,"tide_disco::status"],[2795,"core::clone"],[2796,"hotshot_types::traits::node_implementation"],[2797,"commit"],[2798,"commit"],[2799,"core::result"],[2800,"serde::de"],[2801,"hotshot_types::data"],[2802,"core::fmt"],[2803,"core::fmt"],[2804,"clap_builder"],[2805,"hotshot_types::traits::storage"],[2806,"core::hash"],[2807,"core::marker"],[2808,"core::hash"],[2809,"hotshot_types::simple_certificate"],[2810,"hotshot_types::simple_certificate"],[2811,"core::hash"],[2812,"core::fmt"],[2813,"alloc::sync"],[2814,"alloc::rc"],[2815,"hotshot::types::handle"],[2816,"hotshot_types::traits::node_implementation"],[2817,"serde::ser"],[2818,"core::cmp"],[2819,"core::cmp"],[2820,"snafu"],[2821,"tide_disco::api"],[2822,"tide_disco::request"],[2823,"core::future::future"],[2824,"core::pin"],[2825,"futures_core::stream"],[2826,"core::marker"],[2827,"core::ops::function"],[2828,"hotshot_types::simple_certificate"],[2829,"std::path"],[2830,"anyhow"],[2831,"atomic_store::atomic_store"],[2832,"hotshot_types::event"],[2833,"core::default"],[2834,"hotshot_types::traits::metrics"],[2835,"async_lock::rwlock"],[2836,"async_lock::rwlock"],[2837,"time::offset_date_time"],[2838,"std::backtrace"],[2839,"anyhow"],[2840,"tokio_postgres::to_statement"],[2841,"core::iter::traits::collect"],[2842,"tokio_postgres::config"],[2843,"refinery_core::runner"],[2844,"refinery_core::error"],[2845,"postgres_types"],[2846,"url"],[2847,"hotshot_types::traits::metrics"],[2848,"serde::de"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","This is the consensus-internal analogous concept to a …","","The requested resource exists but is not currently …","SNAFU context selector for the QueryError::Missing variant","","The requested resource does not exist or is not known to …","SNAFU context selector for the QueryError::NotFound variant","Contains the success value","","","","","A reference to a T which can be resolved into a whole T.","","SNAFU context selector for the QueryError::Error variant","","Item within a Payload.","VID commitment type","VID common type","VID share type","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","Block header.","Optional block payload.","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","Get a commitment to the underlying object.","","","Persistent storage and sources of data consumed by APIs.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Fetching missing data from remote providers.","Fill this leaf with the block payload.","Fill this leaf with the block payload, without checking …","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Create a leaf from information stored about a view.","Create a new leaf from its components.","The block header contained in this leaf.","Optional block payload.","","Height of this leaf in the chain.","The QC linking this leaf to its parent in the chain.","Commitment to this leaf’s parent.","A commitment to the block payload contained in this leaf.","Identity of the network participant who proposed this leaf.","Time when this leaf was created.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Per spec, justification","","","A node’s view of a HotShot chain","","The hash of the parent Leaf So we can ask if it extends","","the proposer id of the leaf","Run an instance of the HotShot Query service with no …","","","","","","Queries for node-specific state and uncommitted data.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the underlying object if it is available without …","","","","","","","","","Common functionality provided by types used in this crate.","","","CurView from leader when proposing leaf","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","","SNAFU context selector for the Error::Custom variant","","","An in-progress request to fetch some data.","","SNAFU context selector for the Error::FetchBlock variant","","SNAFU context selector for the Error::FetchLeaf variant","","SNAFU context selector for the Error::FetchTransaction …","","","A proof that a certain transaction exists in the block.","","","SNAFU context selector for the …","Enumerate the transactions in this block.","","","","","","","","","","","","","A block payload whose contents (e.g. individual …","","","SNAFU context selector for the Error::Request variant","","","","","An index which can be used to efficiently retrieve a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Get the index of the transaction with a given hash, if it …","Get the index of the transaction with a given hash, if it …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enumerate the transactions in the block with their indices.","Enumerate the transactions in the block with their indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Timeout for failing requests due to missing data.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether this block is empty of transactions.","Whether this block is empty of transactions.","","List the transaction indices in the block.","","","The number of transactions in the block.","","Transform the result of this fetch.","","","Collect information about a Leaf.","","","Get the index of the nth transaction.","Get the index of the nth transaction.","Get the nth transaction.","Get the nth transaction.","Get the nth transaction, along with an inclusion proof.","Get the nth transaction, along with an inclusion proof.","","","","","","","","","Get an inclusion proof for a transaction with a given …","Get an inclusion proof for a transaction with a given …","","","Wait for the data to become available, if it is not …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a transaction by its block-specific index.","Get a transaction by its block-specific index.","","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","Get a transaction by its block-specific index, along with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the requested data if it is available immediately.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","Wait for the requested data to become available, but only …","","","","","","","","","","","Wrapper to add extensibility to an existing data source.","","A data source for the APIs provided in this crate, backed …","A minimal data source for the status API provided in this …","","An extension trait for types which implement the update …","A data source with an atomic transaction-based …","","","","","","","","","","","Generic tests we can instantiate for all the availability …","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","","","","Create a new FileSystemDataSource with storage at path.","","","","Create a new FileSystemDataSource using a persistent …","","","","","","","","Asynchronous retrieval of missing data.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Generic tests we can instantiate for all the node data …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","Generic tests we can instantiate for any data source with …","","","","","","Erase all oustanding modifications to the data.","","Advance the version of the persistent store without …","","Generic tests we can instantiate for all the status data …","Persistent storage for data sources.","","","","","","","","","","Update query state based on a new consensus event.","","","","","","A provider which can be used as a fetcher by the …","Builder for FetchingDataSource with configuration.","The most basic kind of data source.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a FetchingDataSource with these options.","Build a FetchingDataSource with the given storage and …","","","","","","Connect to a remote database.","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","Run without proactive fetching.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Construct a new builder with the given storage and fetcher …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","","","Advance the version of the persistent store without …","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","","","","","","","Set the interval (denominated in minor scans) between …","Set the time interval between minor proactive fetching …","Set the number of items to process at a time when scanning …","Set the number of items to process at a time when loading …","Set the maximum delay between retries of fetches.","","","","","","","","","","","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","A data source for the APIs provided in this crate, backed …","","","Connect to a remote database.","","","","Embed migrations from the given directory into the current …","","","","Access the transaction which is accumulating all …","","","Persistent storage for a HotShot blockchain.","","","","","","","","","","","","","","","","","","Storage for the APIs provided in this crate, backed by a …","","","","","","","","Create a new FileSystemStorage with storage at path.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","","","","Open an existing FileSystemStorage from storage at path.","Open an existing FileSystemStorage using a persistent …","","","Advance the version of the persistent store without …","","","","","","","Mock storage implementation which doesn’t actually store …","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Either Postgres or no storage.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Number of blocks to remove in a single pruning operation.","","","","","","","","","","Returns the argument unchanged.","","","","Pruning interval","Calls U::from(self).","","","","","Maximum disk usage (in basis points).","Minimum data retention period","","","Disk space threshold (in bytes).","","","Target data retention period","","","","","","","","","","","","","Postgres client config.","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","Storage for the APIs provided in this crate, backed by a …","An atomic SQL transaction.","","","","","Get the timestamp from when the Migration was applied. None…","","","","","","","","","","","","","Get the backtrace for this Error.","","","","","","","","","","","","Connect to the database, setting options on the underlying …","An iterator of the chain of source errors contained by …","Get the Migration checksum. Checksum is formed from the …","","","","","","","","","","","Connect to the database with this config.","Connect to a remote database.","Wrap the error value with additional context.","","Set the name of the database to connect to.","","The migrations requied to build the default schema for …","","","","","","","","","","","","","Attempt to downcast the error object to a concrete type.","Downcast this error object by mutable reference.","Downcast this error object by reference.","","","","","","","","","","","","Execute a statement against the underlying database.","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify exactly one …","Execute a statement that is expected to modify exactly one …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Set the hostname of the database server.","Embed the contents of a directory in your crate.","Embed migrations from the given directory into the current …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns true if E is the type held by this error object.","","Add custom migrations to run when connecting to the …","Create a new error object from a printable error message.","Get the Migration Name","Create a new error object from any error type.","Skip all migrations when connecting to the database.","","Set a password for connecting to the database.","","Set the port on which to connect to the database.","","Get the Prefix","","","","Query the underlying SQL database, returning exactly one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database, returning zero or one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database with no parameters.","Reset the schema on connection.","","The lowest level cause of this error — this error’s …","","Set the name of the schema to use for queries.","","","","","Use TLS for an encrypted connection to the database.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","Create an unapplied migration, name and version are parsed …","","Set the DB user to connect as.","Get the Migration version","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","A callback to process the result of a request.","Management of concurrent requests to fetch resources.","A callback to process the result of a request.","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","Asynchronous fetching from external data availability …","Requests for fetching resources.","","","Fetch a resource, if it is not already being fetched.","","","","","","","Adaptor combining multiple data availability providers.","Trivial Provider where fetching always fails.","A provider which is able to satisfy requests for data of …","Data availability provider backed by another instance of …","Adaptor to add test-only functionality to an existing …","","","","","","","","","","","","","","","","","Delay fetch requests until unblock.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cause subsequent requests to fail.","Fetch a resource.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allow blocked fetch requests to proceed.","Stop requests from failing as a result of a previous call …","","","","","Add a sub-provider which fetches blocks.","Add a sub-provider which fetches leaves.","Add a sub-provider which fetches both blocks and leaves.","Add a sub-provider which fetches VID common data.","A request for a leaf with a given height.","A request for a payload with a given commitment.","A request for a resource.","The type of resource that will be returned as a successful …","A request for VID common data.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","A Counter metric.","A Gauge metric.","A Histogram metric.","A Label metric.","","","","","A Prometheus-based implementation of a Metrics registry.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Get a counter in this sub-group by name.","Get a gauge in this sub-group by name.","Get a histogram in this sub-group by name.","Get a label in this sub-group by name.","Get a (possibly nested) subgroup of this group by its path.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for the Error::Custom variant","","","","","","","SNAFU context selector for the Error::Query variant","","SNAFU context selector for the Error::QueryVid variant","","SNAFU context selector for the Error::QueryWindow variant","","SNAFU context selector for the Error::Request variant","","","Response to a /:resource/window query.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The block height of the block that starts the window.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Backing storage for the data source.","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","Setup runs after setting up the network but before …","","","","","","","","","","","","","","","","","","","","","","","","","","The block header to append","Block number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Per spec, justification","","","","","VID commitment to the payload.","the propser id","","","Possible timeout certificate. Only present if the …","","Timestamp when this header was created.","","","","List of transactions.","","","","","","","Possible upgrade certificate, which the leader may …","CurView from leader when proposing leaf","","","Types which have a notion of “height” within a chain.",""],"i":[7,7,159,0,10,0,0,0,10,0,7,10,0,159,0,0,0,0,0,0,0,7,0,0,0,0,17,17,7,7,11,11,12,12,13,13,10,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,25,25,0,25,7,10,17,17,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,21,17,17,0,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,17,7,10,17,7,11,12,13,10,25,17,17,17,17,17,11,12,13,0,17,17,17,17,7,7,11,12,13,10,10,17,7,7,7,7,7,11,12,13,10,25,25,25,17,17,17,17,17,17,17,17,17,17,17,25,17,17,7,10,7,10,0,17,7,11,12,13,10,25,0,0,0,0,0,7,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,17,13,0,0,25,17,25,17,0,17,7,10,7,10,0,7,10,25,0,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,21,17,17,7,11,12,13,10,25,0,25,25,17,17,7,11,12,13,10,25,233,234,235,236,233,237,0,0,0,0,58,0,36,0,0,123,0,36,0,36,0,36,0,88,89,81,0,36,0,81,0,0,0,58,88,89,0,89,0,58,96,0,0,96,36,0,0,0,0,0,81,0,0,0,0,58,88,88,89,89,68,68,67,67,90,90,70,70,71,71,72,72,91,91,92,92,93,93,73,73,74,74,75,75,76,76,77,77,36,36,102,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,67,36,102,102,67,36,68,70,71,72,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,73,74,75,76,77,81,81,67,36,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,71,88,89,96,70,102,0,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,67,36,68,90,70,71,72,91,92,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,81,81,90,88,89,68,90,70,71,72,91,92,88,88,88,88,89,89,89,89,68,68,68,68,90,90,90,90,70,70,70,70,71,71,71,71,72,72,72,72,91,91,91,91,92,92,92,92,102,73,74,75,76,77,102,88,88,89,89,68,67,67,90,70,71,72,91,92,93,73,74,75,76,77,36,36,96,88,88,88,89,89,89,68,67,90,70,70,71,72,91,91,92,102,93,73,74,75,76,77,36,36,36,102,102,68,90,70,71,58,58,58,88,89,58,58,58,58,58,58,102,88,89,68,90,70,72,91,88,89,68,67,90,91,36,68,90,70,71,72,91,76,67,36,76,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,123,123,123,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,93,73,74,75,76,77,96,81,81,90,81,68,67,81,90,96,77,90,68,90,71,81,81,81,81,81,81,90,91,88,89,90,68,90,71,81,81,68,67,96,73,74,75,68,90,70,71,72,91,92,36,90,70,91,67,36,36,77,58,58,58,58,58,58,58,58,129,88,89,68,67,90,70,71,72,91,92,93,73,74,75,76,77,36,88,89,67,36,81,81,90,72,81,81,90,81,81,81,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,102,102,96,88,89,68,67,90,70,71,72,91,92,102,93,73,74,75,76,77,36,96,96,238,238,239,240,241,242,243,239,0,62,0,0,0,0,0,0,0,131,131,132,132,131,132,131,132,131,131,0,131,131,132,131,132,131,132,131,132,131,132,62,131,134,131,132,131,134,134,131,132,134,132,131,132,131,132,131,132,0,131,132,131,132,131,131,131,131,131,131,131,131,131,131,134,131,132,131,132,131,131,131,131,131,131,132,131,132,131,132,131,132,131,132,131,0,134,134,131,0,131,132,134,131,132,62,131,134,0,0,0,131,131,132,131,132,131,132,131,132,61,131,131,132,0,0,0,0,0,0,0,0,145,145,148,148,146,145,148,153,154,146,145,148,153,154,145,145,146,145,148,153,154,146,145,148,153,154,146,145,145,148,145,148,145,145,145,145,145,146,145,148,153,153,154,154,146,145,148,153,154,154,146,146,145,148,153,154,145,148,146,145,148,153,153,154,154,145,145,145,145,145,145,145,145,145,145,146,145,148,153,154,145,145,145,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,145,146,145,145,145,145,145,145,145,145,145,145,148,145,146,145,148,153,154,146,145,148,153,154,146,145,148,153,154,145,146,145,148,153,154,146,146,146,146,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,160,160,160,160,0,0,160,0,160,0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,0,0,0,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,0,162,162,162,162,162,162,0,244,163,244,163,0,244,163,244,163,163,163,244,163,244,163,163,163,163,163,244,163,244,163,244,163,244,163,163,163,163,163,163,163,163,163,163,163,163,244,163,163,163,163,244,163,244,163,244,163,244,163,163,163,163,163,163,163,163,244,163,244,163,244,163,163,244,163,245,168,0,0,0,0,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,166,167,165,165,165,165,165,165,168,165,165,165,166,165,168,167,165,165,165,165,165,165,165,165,165,165,165,165,165,0,0,0,0,0,0,170,170,149,149,170,151,170,158,149,157,151,170,158,149,157,151,151,151,157,151,170,158,149,157,151,170,158,149,157,149,151,170,174,158,157,170,149,170,149,170,157,170,149,157,151,157,149,149,0,151,151,170,158,149,157,151,151,170,158,149,157,151,151,151,151,151,170,158,149,157,170,170,170,170,170,158,158,158,158,158,151,151,170,170,149,157,151,151,151,170,158,149,149,157,149,157,157,157,157,157,157,157,157,157,157,157,157,157,151,170,149,0,0,151,170,158,149,157,157,157,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,151,157,149,151,170,151,149,170,149,157,149,0,170,157,149,174,174,174,174,174,174,149,157,151,157,149,157,170,157,0,149,170,149,151,170,157,151,170,158,149,157,151,170,158,149,157,151,170,158,149,157,170,158,149,170,157,151,170,158,149,157,0,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,0,0,0,0,0,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,0,0,187,188,186,186,186,186,186,186,186,0,0,0,0,0,192,192,193,193,191,191,194,194,192,193,191,194,192,193,191,194,191,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,194,192,193,191,194,192,193,191,194,192,193,191,194,191,190,192,192,192,193,193,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,193,191,192,193,191,194,192,193,191,194,192,193,191,194,192,193,191,194,191,191,192,193,191,194,192,192,192,192,0,0,0,189,0,197,197,195,195,196,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,197,197,197,195,195,195,195,196,196,196,196,197,195,196,197,195,196,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,0,0,0,0,0,202,202,202,0,143,143,199,199,203,203,200,200,204,204,199,200,202,143,199,203,200,204,202,143,199,203,200,204,202,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,143,199,203,200,204,143,143,143,143,143,202,143,199,203,200,204,202,143,199,203,200,204,202,202,143,199,203,200,204,143,202,202,143,199,203,200,204,202,202,143,199,203,200,204,199,203,204,143,143,143,143,143,202,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,200,200,203,204,202,143,200,143,199,203,200,204,202,202,143,199,203,200,204,202,143,199,203,200,204,202,143,199,203,200,204,203,202,143,199,203,200,204,246,246,247,248,0,0,37,0,0,138,138,0,0,37,0,37,0,37,0,37,0,0,138,0,0,138,138,212,212,213,213,214,214,215,215,216,216,217,217,211,211,37,37,218,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,37,218,218,37,216,59,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,211,37,138,212,213,214,215,216,217,211,37,138,212,213,214,215,216,217,211,37,212,212,59,213,218,0,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,37,212,213,37,138,212,213,218,214,215,216,217,211,37,217,212,213,212,212,212,212,213,213,213,213,218,211,138,212,213,214,215,216,217,211,37,37,138,138,212,213,213,218,214,215,216,217,211,37,37,37,37,218,218,212,212,59,218,212,37,37,138,212,213,218,214,215,216,217,211,37,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,214,215,216,217,211,212,211,212,212,212,212,213,212,59,213,212,212,213,37,37,217,37,211,59,138,212,213,214,215,216,217,211,37,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,138,212,213,218,214,215,216,217,211,37,218,218,59,138,212,213,218,214,215,216,217,211,37,213,249,250,251,252,253,249,250,250,251,0,38,0,0,38,0,0,221,221,38,38,222,221,222,38,221,222,38,38,222,222,38,60,221,222,38,221,222,38,38,221,38,221,38,221,221,60,60,221,222,0,221,222,38,221,222,38,38,221,38,221,222,38,60,60,221,221,221,221,221,222,221,38,38,221,222,38,38,38,222,222,221,222,221,38,38,221,222,38,221,222,38,221,222,38,221,222,38,221,222,38,221,60,60,60,221,223,221,38,38,38,60,60,221,38,38,221,221,222,38,221,222,38,221,222,38,222,222,221,222,38,254,255,0,0,0,0,0,0,0,0,225,0,164,164,164,164,225,225,164,164,164,164,164,164,164,164,225,164,164,164,164,164,164,164,164,225,225,164,164,164,164,164,164,164,164,164,0,0,0,0,0,0,0,0,139,139,226,226,139,226,139,226,256,230,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,226,139,139,139,139,226,226,226,226,139,226,139,226,139,226,139,226,230,139,226,139,226,139,226,139,226,139,226,231,256,231,0,139,226,230,256,139,226,256,230,230,139,226,231,231,139,226,139,226,139,226,256,256,139,226,0,220],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],0,0,[7,[[9,[8]]]],[10,[[9,[8]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],[[16,14],7],[7,[[9,[5]]]],[10,[[9,[5]]]],[[[17,[-1]]],[[17,[-1]]],[18,19]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],18],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[21,[[20,[-1]]],22],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],23,24],[],19],0,[[],25],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[7,27],[10,27],[-1,[[28,[[17,[-2]]]]],29,19],[-1,[[28,[7]]],29],[-1,[[28,[10]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[17,[-1]],[17,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[11,[[28,[-1,10]]],[]],[12,[[28,[-1,10]]],[]],[[[13,[-1]]],[[28,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],26],[[28,[2,31]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],32],[[28,[2,33]]],[34,19]],[[[17,[-1]],32],[[28,[2,33]]],19],[[7,32],35],[[7,32],35],[[11,32],35],[[12,32],35],[[[13,[-1]],32],35,34],[[10,32],35],[[10,32],35],[-1,-1,[]],[36,7],[-1,-1,[]],[37,7],[38,7],[[[2,[14,16]]],7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[39,[[28,[25,40]]]],[39,[[28,[25,40]]]],[[[41,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],24,[42,43],44],[[[17,[-1]]],24,19],[[[17,[-1]]],[[47,[-1,[45,[-1]],46]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[],[[9,[48]]]],[[[17,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],0,0,0,0,0,[-1,7,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[11,-1],10,[]],[[12,-1],10,[]],[[[13,[-1]],-2],10,[[15,[14]]],[]],0,0,0,0,0,0,0,0,[[25,-2,[57,[-1,-3]]],[[28,[2,7]]],19,[[58,[-1]],[59,[-1]],60,[61,[-1]],62,52,53],[[63,[-1]]]],[[[17,[-1]],-2],28,[19,64],65],[[7,-1],28,65],[[10,-1],28,65],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[21,[[28,[-1,21]]],22],[-1,[[28,[-2,-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],0,[[25,39],[[28,[2,40]]]],[[25,39],[[28,[2,40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],[[[67,[-1]]],[[9,[8]]],19],[36,[[9,[8]]]],[[[68,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],[[69,[-1]]],19],[[[71,[-1]]],[[69,[-1]]],19],[[[72,[-1]]],[[69,[-1]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[73,[-1]]],36,[[15,[14]]]],[[[74,[-1]]],36,[[15,[14]]]],[[[75,[-1]]],36,[[15,[14]]]],[[[76,[-1,-2]]],36,[[15,[24]]],[[15,[24]]]],[[[77,[-1,-2]]],36,[[15,[14]]],[[15,[16]]]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[67,[-1]]],[[9,[5]]],19],[36,[[9,[5]]]],[[[88,[-1]]],[[88,[-1]]],19],[[[89,[-1]]],[[89,[-1]]],19],[[[68,[-1]]],[[68,[-1]]],[18,19]],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[90,[-1]]],[[90,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[[[71,[-1]]],[[71,[-1]]],[18,19]],[[[72,[-1]]],[[72,[-1]]],[18,19]],[[[91,[-1]]],[[91,[-1]]],[18,19]],[[[92,[-1]]],[[92,[-1]]],[18,19]],[93,93],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1]]],[[74,[-1]]],18],[[[75,[-1]]],[[75,[-1]]],18],[[[76,[-1,-2]]],[[76,[-1,-2]]],18,18],[[[77,[-1,-2]]],[[77,[-1,-2]]],18,18],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[88,[-1]],[88,[-1]]],94,19],[[[89,[-1]],[89,[-1]]],94,19],[[[71,[-1]]],95,19],[[-1,-2],94,[],[]],[[-1,-2],94,[],[]],[[[96,[-1]],-3],[[28,[-1,-2]]],[],[5,97],[[100,[-2],[[98,[99]]]]]],[[[70,[-1]]],[[101,[-1]]],19],[[],102],[102,[[28,[[103,[-1,36]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[67,[-1]]],27,19],[36,27],[-1,[[28,[[68,[-2]]]]],29,19],[-1,[[28,[[90,[-2]]]]],29,19],[-1,[[28,[[70,[-2]]]]],29,19],[-1,[[28,[[71,[-2]]]]],29,19],[-1,[[28,[[72,[-2]]]]],29,19],[-1,[[28,[[91,[-2]]]]],29,19],[-1,[[28,[[92,[-2]]]]],29,19],[-1,[[28,[36]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],[[54,[87]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],[[54,[87]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],[[0,[[87,[],[[86,[[2,[[106,[-1]],[107,[-1]]]]]]]]]]],19],[[[88,[-1]],[88,[-1]]],30,19],[[[89,[-1]],[89,[-1]]],30,19],[[[68,[-1]],[68,[-1]]],30,[82,19]],[[[90,[-1]],[90,[-1]]],30,[82,19]],[[[70,[-1]],[70,[-1]]],30,[82,19]],[[[71,[-1]],[71,[-1]]],30,[82,19]],[[[72,[-1]],[72,[-1]]],30,[82,19]],[[[91,[-1]],[91,[-1]]],30,[82,19]],[[[92,[-1]],[92,[-1]]],30,[82,19]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[73,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[74,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[75,[-1]]],[[28,[-2,36]]],[[15,[14]]],[]],[[[76,[-1,-2]]],[[28,[-3,36]]],[[15,[24]]],[[15,[24]]],[]],[[[77,[-1,-2]]],[[28,[-3,36]]],[[15,[14]]],[[15,[16]]],[]],0,[[[88,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[89,[-1]],32],35,19],[[[89,[-1]],32],35,19],[[[68,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,19],[[[90,[-1]],32],35,[34,19]],[[[70,[-1]],32],35,[34,19]],[[[71,[-1]],32],35,[34,19]],[[[72,[-1]],32],35,[34,19]],[[[91,[-1]],32],35,[34,19]],[[[92,[-1]],32],35,[34,19]],[[93,32],35],[[[73,[-1]],32],35,34],[[[74,[-1]],32],35,34],[[[75,[-1]],32],35,34],[[[76,[-1,-2]],32],35,34,34],[[[77,[-1,-2]],32],35,34,34],[[36,32],35],[[36,32],35],[-1,-1,[]],[[[108,[-1]]],[[88,[-1]]],19],[-1,-1,[]],[26,[[88,[-1]]],19],[26,[[89,[-1]]],19],[[[69,[-1]]],[[89,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[90,[-1]]],[[70,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[[[90,[-1]]],[[91,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[109,36],[-1,-1,[]],[[[2,[14,16]]],36],[39,[[28,[102,40]]]],[39,[[28,[102,40]]]],[[],[[68,[-1]]],19],[[],[[90,[-1]]],19],[[],[[70,[-1]]],19],[[],[[71,[-1]]],19],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],[119,[-2]]],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[15,[[89,[-2]]]],52,53]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],-6],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52],[[118,[26]],52]],[[],[[9,[48]]]],[[[88,[-1]],-2],2,19,49],[[[89,[-1]],-2],2,19,49],[[[68,[-1]]],[[108,[-1]]],19],[[[90,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],120,19],[[[72,[-1]]],[[119,[-1]]],19],[[[91,[-1]]],[[69,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],[[121,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[90,[-1]]],[[121,[-1]]],19],[[[91,[-1]]],[[121,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],24,19],[[[90,[-1]]],24,19],[[[70,[-1]]],24,19],[[[71,[-1]]],24,19],[[[72,[-1]]],24,19],[[[91,[-1]]],24,19],0,[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[123,[],[[122,[-1]]]],[90,[-2]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[[[123,[],[[122,[-1]]]],[68,[-2]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[[[123,[],[[122,[-1]]]],[71,[-2]],[9,[124]]],[[115,[[54,[114]]]]],[5,34,52,53],19],[-1,36,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[93,-1],36,[]],[[[73,[-1]],-2],36,[[15,[14]]],[]],[[[74,[-1]],-2],36,[[15,[14]]],[]],[[[75,[-1]],-2],36,[[15,[14]]],[]],[[[76,[-1,-2]],-3],36,[[15,[24]]],[[15,[24]]],[]],[[[77,[-1,-2]],-3],36,[[15,[14]]],[[15,[16]]],[]],[[[96,[-1]]],-2,52,[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],30,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],30,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],30,19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],-2,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[68,[-1]]],[[17,[-1]]],19],0,[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4],26,[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[90,[-1]]],26,19],[[[96,[-1]],-3],[[96,[-2]]],[],[],[52,[126,[-1],[[125,[-2]]]]]],0,[[[90,[-1]]],[[127,[-1]]],19],[[[17,[-1]],[128,[-1]]],[[28,[[68,[-1]],[67,[-1]]]]],19],[[[121,[-1]],[101,[-1]]],[[90,[-1]]],19],[[[121,[-1]],95],[[71,[-1]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-1]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]]],24,19],[[[91,[-1]]],24,19],[[[88,[-1]],[88,[-1]]],[[9,[94]]],19],[[[89,[-1]],[89,[-1]]],[[9,[94]]],19],[[[90,[-1]]],[[101,[-1]]],19],[[[68,[-1]]],120,19],[[[90,[-1]]],120,19],[[[71,[-1]]],120,19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-3]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-3]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[]],[[[68,[-1]]],[[128,[-1]]],19],0,[[[96,[-1]]],-1,52],0,0,0,[[[68,[-1]],-2],28,19,65],[[[90,[-1]],-2],28,19,65],[[[70,[-1]],-2],28,19,65],[[[71,[-1]],-2],28,19,65],[[[72,[-1]],-2],28,19,65],[[[91,[-1]],-2],28,19,65],[[[92,[-1]],-2],28,19,65],[[36,-1],28,65],[[[90,[-1]]],24,19],[[[70,[-1]]],24,19],[[[91,[-1]]],24,19],[[[67,[-1]]],[[9,[5]]],19],[36,[[9,[5]]]],[36,16],0,[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[[[58,[],[[110,[-1]],[111,[-3]],[112,[-4]],[113,[-5]]]],26],[[115,[[54,[114]]]]],[[116,[],[[86,[[96,[[68,[-2]]]]]]]],117,52],19,[[116,[],[[86,[[96,[[90,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[70,[-2]]]]]]]],117,52],[[116,[],[[86,[[96,[[71,[-2]]]]]]]],117,52]],[129,24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]],[106,[-1]]],[[9,[[72,[-1]]]]],19],[[[72,[-1]]],[[107,[-1]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[90,[-1]],[20,[[107,[-1]]]]],[[9,[[106,[-1]]]]],19],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[[[81,[],[[78,[-1]],[79,[-2]],[80,[-3]]]],-4,-1],[[9,[[2,[-5,-3]]]]],[18,34,82,83,84,64,85,52,53],[[87,[],[[86,[-1]]]]],[18,34,82,83,64,85],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[[[96,[-1]]],[[28,[-1,[96,[-1]]]]],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[102,39],[[28,[2,40]]]],[[102,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1]],-4],[[28,[-1,-2]]],[],[5,97],[[100,[-2],[[98,[99]]]]],[[126,[],[[125,[-3]]]]]],[[[96,[-1]],130],[[9,[-1]]],52],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[131,[-1,-2]]],-2,[],[]],[[[131,[-1,-2]]],-2,[],[]],0,[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[60,52,53],[52,53]],[132,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[131,[-1,-2]]],[[131,[-1,-2]]],18,18],[132,132],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[62,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[62,52],52],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[133,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[26,[[115,[[54,[114]]]]]],[26,[[115,[[54,[114]]]]]],[26,[[115,[[54,[114]]]]]],[[137,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[],132],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],0,[[[131,[-1,-2]],32],35,34,34],[[132,32],35],[-1,-1,[]],[-1,-1,[]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],[119,[-1]]],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53]],[[[131,[-2,-3]],-4,24],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[138,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[58,[-1]],52,53],[52,53],[[118,[26]],52]],[[[134,[139,-1]],[140,[139]]],[[115,[[54,[114]]]]],[[136,[139]],141]],[[[131,[-1,-2]],[140,[139]]],[[115,[[54,[114]]]]],142,[141,52,53]],[[132,[140,[139]]],[[115,[[54,[114]]]]]],[[],26],[[],26],[[[131,[-1,-2]]],-1,[],[]],[[[131,[-1,-2]]],-1,[],[]],[[[131,[-2,-3]],[90,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[131,[-2,-3]],[68,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[131,[-2,-3]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[131,[-1,-2]]],143,[60,52,53],[52,53]],[132,143],[[-1,-2],[[131,[-1,-2]]],[],[]],0,[[133,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[134,[-1,-2]]]]],19,[[136,[-1]]]],[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],0,[-1,[[54,[144]]],[]],[-1,[[54,[144]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[-1,[[115,[[54,[114]]]]],[]],[[[62,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[[[131,[-1,-2]]],[[115,[[54,[114]]]]],[62,52],52],[[[134,[-1,-2]]],[[135,[2]]],19,[[136,[-1]]]],0,0,0,[[[131,[-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[61,[140,[-1]]],[[115,[[54,[114]]]]],19],[[[131,[-2,-3]],-4],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[],2],[[],2],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1,-2,-3]]],[[135,[[145,[-1,-2,-3]]]]],19,[[59,[-1]],[147,[-1]]],[[136,[-1]]]],[[-2,-3],[[146,[-1,-2,-3]]],19,[[59,[-1]],[147,[-1]]],[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[145,[-1,-2,-3]]],19,[],[]],[[[148,[-1,-2,-3]]],[[148,[-1,-2,-3]]],19,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[62,52,53],[52,53]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[[133,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[153,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[154,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[154,[-1,-2]]],-3,19,[],[]],[[[146,[-1,-2,-3]]],[[146,[-1,-2,-3]]],[],[],[]],[26,2],[26,2],[26,2],[26,2],[26,2],[[[145,[-1,-2,-3]],32],35,19,34,34],[[[148,[-1,-2,-3]],32],35,19,34,34],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[155,[[0,[-1,-2]]]]],[[153,[-1,-2]]],19,[]],[-1,-1,[]],[-1,-1,[]],[[[156,[[0,[-1,-2]]]]],[[154,[-1,-2]]],19,[]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],[119,[-1]]],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]]],[[[145,[-1,-2,-3]],-4,24],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[138,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[15,[[89,[-1]]]],52,53]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[147,[-1]]],[[136,[-1]]],[[118,[26]],52]],[[],26],[[],26],[[],26],[[],26],[[],26],[[[145,[-1,-2,-3]],[90,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]],[68,[-1]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[[[145,[-1,-2,-3]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19,[[123,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[145,[-1,-2,-3]]],143,19,[[59,[-1]],52,53],[52,53]],[[-1,-2],[[146,[-3,-1,-2]]],[],[],[]],[[133,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[137,-2],[[135,[[145,[-1,[152,[-1]],-2]]]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,[[54,[144]]],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[62,52,53],[52,53]],[[[145,[-1,[152,[-1]],-2]]],[[135,[2]]],19,[[136,[-1]]]],[[[145,[-1,-2,-3]]],[[153,[-1,-2]]],19,[],[]],[[[145,[-1,-2,-3]]],[[154,[-1,-2]]],19,[],[]],[[[145,[-1,-2,-3]]],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[145,[-1,157,-2]]],[[159,[158]]],19,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[[145,[-1,-2,-3]],-4],[[115,[[54,[114]]]]],19,[[59,[-1]],52,53],[52,53],[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],130],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],26],[[146,[-1,-2,-3]]],[],[],[]],[[[146,[-1,-2,-3]],130],[[146,[-1,-2,-3]]],[],[],[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],0,0,0,0,0,0,0,[[[160,[-1,-2]]],[[115,[[54,[114]]]]],19,[52,53]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[-1,[[115,[[54,[114]]]]],[]],[26,[[115,[[54,[114]]]]]],[[[160,[139,-1]],[140,[139]]],[[115,[[54,[114]]]]],[[136,[139]],141]],0,0,[-1,[[115,[[54,[114]]]]],[]],0,[[[160,[-1,-2]]],[[159,[158]]],19,[]],0,[[],2],0,0,0,0,0,[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[119,[-1]]],[[115,[[54,[114]]]]],19],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,[88,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[147,[89,[-1]]],[[115,[[54,[114]]]]],19],[[147,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],0,0,0,0,[-1,4,[]],[-1,4,[]],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[133,[[28,[[152,[-1]],161]]],19],[137,[[28,[[152,[-1]],161]]],19],[26,-1,[]],[26,-1,[]],[26,2],[[[152,[-1]],32],35,19],[-1,-1,[]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[119,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[[152,[-1]],[88,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[[152,[-1]],[89,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[118,[26]],52]],[[],26],[[[152,[-1]],[90,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[68,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]],[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[133,[[28,[[152,[-1]],161]]],19],[137,[[28,[[152,[-1]],161]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[[[152,[-1]]],[[28,[2,161]]],19],[[[152,[-1]]],[[115,[[54,[114]]]]],19],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[[[152,[-1]],-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[162,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[162,162],[[-1,-2],2,[],[]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],[[],162],[26,-1,[]],[26,-1,[]],[26,2],[[162,32],35],[-1,-1,[]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[119,[-1]]],[[115,[[54,[114]]]]],19],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[162,[88,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[162,[89,[-1]]],[[115,[[54,[114]]]]],19],[[162,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[],26],[[162,[90,[-1]]],[[115,[[54,[114]]]]],19],[[162,[68,[-1]]],[[115,[[54,[114]]]]],19],[[162,[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],[162,[[115,[[54,[114]]]]]],0,[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[[162,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[163,[[115,[[54,[114]]]]]],[163,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[163,[[115,[[54,[114]]]]]],[-1,[[115,[[54,[114]]]]],[]],[163,[[115,[[54,[114]]]]]],[26,[[115,[[54,[114]]]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[-1,-1,[]],[-1,-1,[]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,[119,[139]]],[[115,[[54,[114]]]]]],[[163,-1,24],[[115,[[54,[114]]]]],[[15,[[138,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[88,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[[163,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[163,[140,[139]]],[[115,[[54,[114]]]]]],[[],26],[[],26],[[163,[90,[139]]],[[115,[[54,[114]]]]]],[[163,[68,[139]]],[[115,[[54,[114]]]]]],[[163,[71,[139]],[9,[124]]],[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[163,143],[163,[[115,[[54,[114]]]]]],[-1,[[54,[144]]],[]],[-1,[[115,[[54,[114]]]]],[]],[163,[[115,[[54,[114]]]]]],[[[164,[163]]],[[115,[[54,[114]]]]]],[163,[[115,[[54,[114]]]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[163,-1],[[115,[[54,[114]]]]],[[15,[[89,[139]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[165,24],[-1,-2,[],[]],[-1,-2,[],[]],[165,165],[[-1,-2],2,[],[]],[[],165],[26,-1,[]],[26,-1,[]],[26,2],[[165,32],35],[-1,-1,[]],[166,[[115,[[54,[114]]]]]],[167,[[9,[165]]]],[[],26],[165,130],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[168,[],[[122,[-1]]]]],[[115,[[54,[114]]]]],[5,34,52,53]],[165,169],[165,130],[[],165],[166,[[115,[[54,[114]]]]]],[165,[[9,[24]]]],[[[168,[],[[122,[-1]]]],24],[[115,[[54,[114]]]]],[5,34,52,53]],[[167,165],2],[165,130],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[165,[[135,[2]]]],[-1,-2,[],[]],[[165,24],165],[[165,130],165],[[165,169],165],[[165,130],165],[[165,24],165],[[165,130],165],0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[170,[[9,[171]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[151,5],[151,5],[151,172],[157,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[149,-2],[[28,[[150,[-1,-2]],151]]],19,[[136,[-1]]]],[151,173],[170,24],[174,[[115,[[54,[114]]]]]],[158,[[115,[[54,[114]]]]]],[157,[[115,[[54,[114]]]]]],[170,170],[149,149],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[170,170],94],[157,[[115,[[54,[114]]]]]],[[-1,-2],94,[],[]],[[149,-2],[[28,[[160,[-1,-2]],151]]],19,[[136,[-1]]]],[149,[[28,[157,151]]]],[[151,-1],151,[51,52,53]],[157,[[115,[[54,[114]]]]]],[[149,27],149],[[],149],[[],[[175,[170]]]],[26,-1,[]],[151],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[151],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[151,[[28,[-1,151]]],[51,34,52,53]],[151,[[9,[-1]]],[51,34,52,53]],[151,[[9,[-1]]],[51,34,52,53]],[26,2],[151,2],[26,2],[26,2],[26,2],[26,2],[[170,170],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[158,-1,-2],[[159,[24]]],[43,176],177],[[158,-1,-2],[[159,[24]]],[43,176,51],177],[[158,-1,-2],[[159,[24]]],[43,176,51],[177,18]],[[158,-1,-2],[[159,[2]]],[43,176,51],177],[[158,-1,-2],[[159,[2]]],[43,176,51],[177,18]],[[151,32],[[28,[2,33]]]],[[151,32],[[28,[2,33]]]],[[170,32],[[28,[2,33]]]],[[170,32],[[28,[2,33]]]],[[149,32],35],[[157,32],35],[178,-1,[]],[-1,151,[5,52,53]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[179,149],[-1,-1,[]],[27,[[28,[149,-1]]],[]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[157,[119,[-1]]],[[115,[[54,[114]]]]],19],[157,[[115,[[54,[114]]]]]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[157,[88,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[157,[[9,[165]]]],[[157,[89,[-1]]],[[115,[[54,[114]]]]],19],[[157,-1],[[115,[[54,[114]]]]],[[118,[26]],52]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[149,-1],149,[[15,[14]]]],0,0,[[],26],[[],26],[[],26],[[],26],[[],26],[[157,[90,[-1]]],[[115,[[54,[114]]]]],19],[[157,[68,[-1]]],[[115,[[54,[114]]]]],19],[[157,[71,[-1]],[9,[124]]],[[115,[[54,[114]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[151,30],[157,[[115,[[54,[114]]]]]],[[149,-1],149,[[177,[],[[86,[170]]]]]],[-1,151,[51,34,52,53]],[170,27],[-1,151,[5,52,53]],[149,149],[[170,170],[[9,[94]]]],[[149,27],149],[157,[[115,[[54,[114]]]]]],[[149,169],149],0,[170,180],[157,[[115,[[54,[114]]]]]],[[149,165],[[28,[149,151]]]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[[174,-1,-2],[[115,[[54,[114]]]]],[43,176,53],[177,52]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[[174,-1],[[115,[[54,[114]]]]],[43,176,53]],[149,149],[157,[[115,[[54,[114]]]]]],[151,5],[[157,24],[[115,[[54,[114]]]]]],[[149,-1],149,[[15,[14]]]],[[157,165],2],[170,[[9,[27]]]],[157,[[115,[[54,[114]]]]]],0,[149,149],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[157,[[159,[158]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[27,27],[[28,[170,181]]]],[[158,27,[182,[27]],-1,-3],[[159,[2]]],[[177,[],[[86,[27]]]]],[183,18],[[177,[],[[86,[[182,[-2]]]]]]]],[[149,27],149],[170,184],[[157,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[185,149],[26,-1,[]],[26,-1,[]],[26,2],[185,2],[[185,32],35],[-1,-1,[]],[185,14],[[],185],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[185,169],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[186,[-1,-2]]],[[186,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[186,[-1,-2]]],[],[]],[26,-1,[]],[26,-1,[]],[26,2],[[[186,[-1,-2]],32],35,[],[]],[-1,-1,[]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,0,[[187,-1],2,[]],[[188,-1],[[0,[[114,[],[[125,[2]]]],52]]],[]],[[[186,[-2,-3]],-2,-4,-5],2,[],[[189,[-1]]],188,[[190,[-1,-2]]],[[177,[],[[86,[-3]]]],52]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],[[[186,[-1,-2]],130],[[186,[-1,-2]]],[],[]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[191,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]]],[[192,[-1]]],19],[193,193],[[[191,[-1]]],[[191,[-1]]],[]],[194,194],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],[[192,[-1]]],19],[[],194],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[26,2],[[[191,[-1]]],2,[]],[[190,-2],[[115,[[54,[114]]]]],[],[[189,[-1]]]],[[[192,[-1]],195],[[115,[[54,[114]]]]],19],[[[192,[-1]],196],[[115,[[54,[114]]]]],19],[[[192,[-1]],197],[[115,[[54,[114]]]]],19],[[193,196],[[115,[[54,[114]]]]]],[[193,195],[[115,[[54,[114]]]]]],[[193,197],[[115,[[54,[114]]]]]],[[[191,[-3]],-2],[[115,[[54,[114]]]]],19,[[189,[-1]]],[[190,[-1,-2]],53]],[[194,-2],[[115,[[54,[114]]]]],[],[52,[189,[-1]]]],[[[192,[-1]],32],35,19],[[193,32],35],[[[191,[-1]],32],35,34],[[194,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[198,193],[-1,[[191,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[[191,[-1]]],2,[]],[[[191,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,197]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,196]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[136,[-1]],34]],[[[192,[-1]],-2],[[192,[-1]]],19,[[190,[-1,195]],34]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[197,197],[195,195],[196,196],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[[197,197],30],[[195,195],30],[[196,196],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[197,32],35],[[195,32],35],[[196,32],35],[-1,-1,[]],[-1,-1,[]],[26,196],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[197,-1],2,49],[[195,-1],2,49],[[196,-1],2,49],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[199,26],2],[[200,201],2],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[202,[[9,[8]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[202,[[9,[5]]]],[143,143],[199,199],[203,203],[200,200],[204,204],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[143,14,[9,[14]]],[[54,[205]]]],[[143,14,[9,[14]]],[[54,[206]]]],[[143,14,[9,[14]]],[[54,[207]]]],[[143,14],[[54,[208]]]],[[],143],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[202,27],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[143,[[28,[14,-1]]],[]],[[202,32],35],[[202,32],35],[[143,32],35],[[199,32],35],[[203,32],35],[[200,32],35],[[204,32],35],[-1,-1,[]],[209,202],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[199,26],[203,26],[204,14],[[143,27],[[28,[199,202]]]],[[143,27],[[28,[203,202]]]],[[143,27],[[28,[200,202]]]],[[143,27],[[28,[204,202]]]],[[143,-1],[[28,[143,202]]],177],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[200,201],[200,26],[[203,26],2],[[204,14],2],[202,[[9,[5]]]],[[143,14],[[54,[144]]]],[200,201],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[203,210],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[37,[[9,[8]]]],0,[59,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[211,[-1,-2]]],37,[[15,[14]]],[[15,[16]]]],[37,[[9,[5]]]],[[[138,[-1]]],[[138,[-1]]],19],[212,212],[[[213,[-1]]],[[213,[-1]]],18],[214,214],[215,215],[[[216,[-1]]],[[216,[-1]]],18],[[[217,[-1,-2]]],[[217,[-1,-2]]],18,18],[[[211,[-1,-2]]],[[211,[-1,-2]]],18,18],[37,37],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[212,212],94],[[-1,-2],94,[],[]],[59,[[115,[[54,[114]]]]]],[[],[[213,[-1]]],[]],[[],218],[218,[[28,[[103,[-1,37]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[37,27],[-1,[[28,[212]]],29],[-1,[[28,[[213,[-2]]]]],29,219],[-1,[[28,[37]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],0,[[212,212],30],[[[213,[-1]],[213,[-1]]],30,82],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[211,[-1,-2]]],[[28,[-3,37]]],[[15,[14]]],[[15,[16]]],[]],[[[138,[-1]],32],35,19],[[212,32],35],[[[213,[-1]],32],35,34],[[214,32],35],[[215,32],35],[[[216,[-1]],32],35,34],[[[217,[-1,-2]],32],35,34,34],[[[211,[-1,-2]],32],35,34,34],[[37,32],35],[[37,32],35],[[[69,[-1]]],[[138,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[213,[-1]]],[[9,[24]]],220],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],37],[10,37],[109,37],[39,[[28,[218,40]]]],[39,[[28,[218,40]]]],[[],212],[[-1,-2],24,[42,43],44],[[59,-2,24],[[115,[[54,[114]]]]],19,[[15,[[138,[-1]]]],52,53]],[[],[[9,[48]]]],[[212,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,37,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[214,-1],37,[]],[[215,-1],37,[]],[[[216,[-1]],-2],37,[[15,[14]]],[]],[[[217,[-1,-2]],-3],37,[[15,[14]]],[[15,[24]]],[]],[[[211,[-1,-2]],-3],37,[[15,[14]]],[[15,[16]]],[]],[212,30],0,0,0,0,0,0,[[212,212],[[9,[94]]]],[59,[[115,[[54,[114]]]]]],0,0,[[212,-1],28,65],[[[213,[-1]],-2],28,64,65],[[37,-1],28,65],[37,[[9,[5]]]],0,[37,16],0,[59,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[218,39],[[28,[2,40]]]],[[218,39],[[28,[2,40]]]],[[59,-2],[[115,[[54,[114]]]]],19,[[15,[[89,[-1]]]],52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[38,[[9,[8]]]],[60,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,[[9,[5]]]],[221,221],[38,38],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[221,221],94],[[-1,-2],94,[],[]],[60,[[159,[143]]]],[60,[[159,[143]]]],[[],221],[[],222],[222,[[28,[[103,[-1,38]],104]]],[52,53,105]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[38,27],[-1,[[28,[221]]],29],[-1,[[28,[38]]],29],[26,2],[26,2],[26,2],[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[[221,221],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[221,32],35],[[38,32],35],[[38,32],35],[-1,-1,[]],[-1,-1,[]],[109,38],[14,38],[-1,-1,[]],[39,[[28,[222,40]]]],[39,[[28,[222,40]]]],[[-1,-2],24,[42,43],44],[[],[[9,[48]]]],[[221,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[60,143],[[221,221],[[9,[94]]]],[223,[[54,[144]]]],[[221,-1],28,65],[[38,-1],28,65],[38,[[9,[5]]]],[38,16],[60,[[115,[[54,[114]]]]]],[60,[[115,[[54,[114]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[222,39],[[28,[2,40]]]],[[222,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[],2],[130,2],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[115,[[54,[114]]]]],[]],[26,[[115,[[54,[114]]]]]],[[[164,[-1]]],[[55,[[224,[-1]]]]],225],[[[164,[-1]],26],[[55,[[224,[-1]]]]],225],[26,-1,[]],[26,-1,[]],[[[164,[-1]]],2,225],[26,2],[-1,-1,[]],[[[164,[-1]]],[[57,[139,226]]],225],[[[225,[],[[227,[-1]]]],[140,[139]]],[[115,[[54,[114]]]]],[52,53]],[[],26],[[],[[164,[-1]]],[225,223]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[164,[-1]]],26,225],[[[164,[-1]],26],[[228,[139]]],225],[-1,[[115,[[54,[114]]]]],[]],[[[164,[[225,[],[[227,[-1]]]]]]],[[115,[[54,[114]]]]],[52,53]],[[[164,[-1]]],2,225],[[[164,[-1]],-2,-3],2,225,51,[114,52]],[[[164,[-1]]],2,225],[[[164,[-1]]],[],225],[[[164,[-1]],229],2,225],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[139,139],[226,226],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[139,139],94],[[226,226],94],[[-1,-2],94,[],[]],[[-1,-2],94,[],[]],[[],139],[[],226],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[-1,[[28,[139]]],29],[-1,[[28,[226]]],29],[26,2],[26,2],[[139,139],30],[[226,226],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[139,32],35],[[226,32],35],[-1,-1,[]],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[139,-1],2,49],[[226,-1],2,49],[230,24],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[231,-1],-2,[],[]],0,[[231,-1],26,[]],[[[175,[232]]],229],[[139,139],[[9,[94]]]],[[226,226],[[9,[94]]]],0,0,[[139,-1],28,65],[[226,-1],28,65],0,[230,24],0,[-1,-2,[],[]],[-1,-2,[],[]],[[231,-1,-2],[[9,[[2,[-3,-4]]]]],[],[],[],[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[220,24]],"c":[],"p":[[5,"Private",2786],[1,"tuple"],[5,"Private",2786],[10,"Any",2787],[10,"Error",2788],[5,"Command",2789],[6,"Error",0],[5,"Backtrace",2790],[6,"Option",2791],[6,"QueryError",0],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"Snafu",0],[5,"String",2792],[10,"Into",2793],[6,"StatusCode",2794],[5,"Leaf",0],[10,"Clone",2795],[10,"NodeType",2796],[5,"Commitment",2797],[10,"Resolvable",0],[10,"Committable",2797],[10,"RngCore",2798],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",2799],[10,"Deserializer",2800],[1,"bool"],[6,"BlockError",2801],[5,"Formatter",2802],[5,"Error",2802],[10,"Debug",2802],[8,"Result",2802],[6,"Error",290],[6,"Error",2190],[6,"Error",2521],[5,"ArgMatches",2803],[8,"Error",2804],[5,"StoredView",2805],[10,"Hash",2806],[10,"Sized",2807],[10,"BuildHasher",2806],[5,"QuorumData",2808],[5,"SuccessThreshold",2809],[5,"SimpleCertificate",2809],[5,"Id",2810],[10,"Hasher",2806],[5,"IndentedSection",2811],[10,"Display",2802],[10,"Send",2807],[10,"Sync",2807],[5,"Box",2812],[5,"Arc",2813],[5,"Rc",2814],[5,"SystemContextHandle",2815],[10,"AvailabilityDataSource",290],[10,"NodeDataSource",2190],[10,"StatusDataSource",2521],[10,"UpdateDataSource",1010],[10,"VersionedDataSource",1010],[10,"NodeImplementation",2796],[10,"Serialize",2816],[10,"Serializer",2816],[5,"TypeId",2787],[5,"InconsistentLeafError",290],[5,"LeafQueryData",290],[8,"BlockHash",290],[5,"PayloadQueryData",290],[5,"VidCommonQueryData",290],[5,"TransactionQueryData",290],[5,"FetchLeafSnafu",290],[5,"FetchBlockSnafu",290],[5,"FetchTransactionSnafu",290],[5,"InvalidTransactionIndexSnafu",290],[5,"CustomSnafu",290],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",290],[10,"PartialEq",2817],[10,"Eq",2817],[10,"Ord",2817],[10,"DeserializeOwned",2800],[17,"Item"],[10,"Iterator",2818],[6,"LeafId",290],[6,"BlockId",290],[5,"BlockQueryData",290],[5,"BlockSummaryQueryData",290],[5,"TransactionSummaryQueryData",290],[5,"RequestSnafu",290],[6,"Ordering",2817],[8,"VidCommon",0],[6,"Fetch",290],[10,"ErrorCompat",2819],[17,"Source"],[5,"NoneError",2819],[10,"IntoError",2819],[8,"Payload",0],[5,"Options",290],[5,"Api",2820],[6,"ApiError",2820],[10,"ReadState",2821],[8,"TransactionIndex",290],[8,"Transaction",0],[8,"LeafHash",290],[6,"RequestError",2822],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"VidCommonRange"],[10,"Future",2823],[5,"Pin",2824],[10,"Stream",2825],[10,"Unpin",2807],[10,"RangeBounds",2826],[8,"TransactionHash",290],[8,"VidCommitment",0],[8,"Header",0],[17,"Error"],[10,"UpdateAvailabilityData",290],[8,"VidShare",0],[17,"Output"],[10,"FnOnce",2827],[8,"Metadata",0],[8,"QuorumCertificate",2809],[10,"QueryableHeader",290],[5,"Duration",2828],[5,"ExtensibleDataSource",1010],[5,"MetricsDataSource",1010],[5,"Path",2829],[8,"FileSystemDataSource",1010],[8,"Result",2830],[10,"AvailabilityProvider",1126],[5,"AtomicStoreLoader",2831],[6,"WindowStart",2190],[5,"MockTypes",2688],[5,"Event",2832],[10,"Default",2833],[10,"TestableDataSource",2648],[5,"PrometheusMetrics",2011],[10,"Metrics",2834],[5,"FetchingDataSource",1126],[5,"Builder",1126],[10,"AvailabilityStorage",1302],[5,"Pruner",1126],[5,"Config",1530],[8,"Builder",1283],[5,"Error",1530],[5,"FileSystemStorage",1320],[5,"StorageReadGuard",1126],[5,"StorageWriteGuard",1126],[5,"RwLockReadGuard",2835],[5,"RwLockWriteGuard",2835],[5,"SqlStorage",1530],[5,"Transaction",1530],[8,"QueryResult",0],[8,"SqlDataSource",1283],[6,"PersistenceError",2836],[5,"NoStorage",1365],[6,"DataSource",1412],[5,"MockNetwork",2648],[5,"PrunerCfg",1481],[10,"PruneStorage",1481],[10,"PrunerConfig",1481],[10,"PrunedHeightStorage",1481],[1,"u16"],[5,"Migration",1530],[5,"OffsetDateTime",2837],[5,"Backtrace",2838],[5,"Chain",2830],[10,"Query",1530],[5,"Vec",2839],[10,"ToStatement",2840],[10,"IntoIterator",2841],[1,"never"],[5,"Config",2842],[6,"Type",2843],[5,"Error",2844],[1,"array"],[10,"BorrowToSql",2845],[1,"u32"],[5,"TmpDb",1738],[5,"Fetcher",1762],[10,"LocalCallback",1762],[10,"Callback",1762],[10,"Request",1915],[10,"Provider",1797],[5,"TestProvider",1797],[5,"AnyProvider",1797],[5,"QueryServiceProvider",1797],[5,"NoFetching",1797],[5,"VidCommonRequest",1915],[5,"LeafRequest",1915],[5,"PayloadRequest",1915],[5,"Url",2846],[5,"Counter",2011],[5,"Histogram",2011],[1,"f64"],[6,"MetricsError",2011],[5,"Gauge",2011],[5,"Label",2011],[10,"Counter",2834],[10,"Gauge",2834],[10,"Histogram",2834],[10,"Label",2834],[6,"Error",2847],[1,"i64"],[5,"CustomSnafu",2190],[5,"SyncStatus",2190],[5,"TimeWindowQueryData",2190],[5,"RequestSnafu",2190],[5,"QuerySnafu",2190],[5,"QueryVidSnafu",2190],[5,"QueryWindowSnafu",2190],[5,"Options",2190],[10,"Deserialize",2800],[10,"HeightIndexed",2784],[5,"MempoolQueryData",2521],[5,"Options",2521],[10,"UpdateStatusData",2521],[5,"RwLock",2835],[10,"DataSourceLifeCycle",2648],[5,"MockNodeImpl",2688],[17,"Storage"],[8,"SignatureKey",0],[8,"MockTransaction",2688],[8,"MockHeader",2688],[8,"MockPayload",2688],[1,"u8"],[15,"Custom",284],[15,"Availability",284],[15,"Node",284],[15,"Status",284],[15,"Error",289],[15,"InvalidTransactionIndex",1002],[15,"Custom",1002],[15,"FetchLeaf",1002],[15,"FetchBlock",1002],[15,"FetchTransaction",1002],[15,"Request",1002],[6,"Storage",1412],[15,"NoStorage",1480],[15,"NoSuchMetric",2186],[15,"NoSuchSubgroup",2186],[15,"Prometheus",2186],[15,"QueryVid",2512],[15,"QueryWindow",2512],[15,"Custom",2512],[15,"Request",2512],[15,"Query",2512],[15,"Internal",2642],[15,"Request",2642],[8,"MockQuorumProposal",2688]],"b":[[137,"impl-Debug-for-Leaf%3CTYPES%3E"],[138,"impl-Display-for-Leaf%3CTYPES%3E"],[139,"impl-Debug-for-Error"],[140,"impl-Display-for-Error"],[144,"impl-Display-for-QueryError"],[145,"impl-Debug-for-QueryError"],[147,"impl-From%3CError%3E-for-Error"],[149,"impl-From%3CError%3E-for-Error"],[150,"impl-From%3CError%3E-for-Error"],[151,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[635,"impl-Display-for-LeafId%3CTypes%3E"],[636,"impl-Debug-for-LeafId%3CTypes%3E"],[637,"impl-Debug-for-BlockId%3CTypes%3E"],[638,"impl-Display-for-BlockId%3CTypes%3E"],[640,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[641,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[654,"impl-Display-for-Error"],[655,"impl-Debug-for-Error"],[657,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[659,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[660,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[661,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[680,"impl-From%3CRequestError%3E-for-Error"],[682,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1030,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1031,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1047,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1048,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1146,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1147,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1291,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1292,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1422,"impl-StatusDataSource-for-DataSource"],[1423,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1551,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1552,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1616,"impl-Debug-for-Error"],[1617,"impl-Display-for-Error"],[1618,"impl-Debug-for-Migration"],[1619,"impl-Display-for-Migration"],[1851,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[1852,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[1853,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[1854,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1855,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider"],[1856,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[2094,"impl-Debug-for-MetricsError"],[2095,"impl-Display-for-MetricsError"],[2357,"impl-Debug-for-Error"],[2358,"impl-Display-for-Error"],[2371,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[2372,"impl-From%3CQueryError%3E-for-Error"],[2373,"impl-From%3CRequestError%3E-for-Error"],[2583,"impl-Debug-for-Error"],[2584,"impl-Display-for-Error"],[2587,"impl-From%3CRequestError%3E-for-Error"],[2588,"impl-From%3CString%3E-for-Error"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/src/hotshot_query_service/availability.rs.html b/src/hotshot_query_service/availability.rs.html index 01abe2edd..1796c5b17 100644 --- a/src/hotshot_query_service/availability.rs.html +++ b/src/hotshot_query_service/availability.rs.html @@ -955,6 +955,7 @@ 954 955 956 +957
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1439,6 +1440,7 @@
     use crate::{
         data_source::{storage::no_storage, ExtensibleDataSource},
         status::StatusDataSource,
+        task::BackgroundTask,
         testing::{
             consensus::{MockDataSource, MockNetwork, TestableDataSource},
             mocks::{mock_transaction, MockHeader, MockPayload, MockTypes},
@@ -1447,7 +1449,7 @@
         types::HeightIndexed,
         Error, Header,
     };
-    use async_std::{sync::RwLock, task::spawn};
+    use async_std::sync::RwLock;
     use commit::Committable;
     use futures::future::FutureExt;
     use hotshot_example_types::state_types::TestInstanceState;
@@ -1749,7 +1751,7 @@
             .unwrap(),
         )
         .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        network.spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         // Start a client.
         let client = Client::<Error>::new(
@@ -1827,7 +1829,7 @@
     async fn test_extensions() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_availability_extensions").unwrap();
         let mut data_source = ExtensibleDataSource::new(
             MockDataSource::create(dir.path(), Default::default())
                 .await
@@ -1886,7 +1888,7 @@
         app.register_module("availability", api).unwrap();
 
         let port = pick_unused_port().unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        let _server = BackgroundTask::spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         let client = Client::<Error>::new(
             format!("http://localhost:{}/availability", port)
diff --git a/src/hotshot_query_service/data_source/fs.rs.html b/src/hotshot_query_service/data_source/fs.rs.html
index 5eee7497e..0a3c941b7 100644
--- a/src/hotshot_query_service/data_source/fs.rs.html
+++ b/src/hotshot_query_service/data_source/fs.rs.html
@@ -525,8 +525,8 @@
     {
         type Storage = TempDir;
 
-        async fn create(_node_id: usize) -> Self::Storage {
-            TempDir::new().unwrap()
+        async fn create(node_id: usize) -> Self::Storage {
+            TempDir::with_prefix(format!("file_system_data_source_{node_id}")).unwrap()
         }
 
         async fn connect(storage: &Self::Storage) -> Self {
diff --git a/src/hotshot_query_service/data_source/storage/ledger_log.rs.html b/src/hotshot_query_service/data_source/storage/ledger_log.rs.html
index 224101fca..12377f6cf 100644
--- a/src/hotshot_query_service/data_source/storage/ledger_log.rs.html
+++ b/src/hotshot_query_service/data_source/storage/ledger_log.rs.html
@@ -655,7 +655,7 @@
     async fn test_ledger_log_creation() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_ledger_log").unwrap();
 
         // Create and populuate a log.
         {
@@ -685,7 +685,7 @@
     async fn test_ledger_log_insert() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_ledger_log").unwrap();
         let mut loader = AtomicStoreLoader::create(dir.path(), "test_ledger_log").unwrap();
         let mut log = LedgerLog::<u64>::create(&mut loader, "ledger", 3).unwrap();
         let mut store = AtomicStore::open(loader).unwrap();
@@ -729,7 +729,7 @@
     async fn test_ledger_log_iter() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_ledger_log").unwrap();
         let mut loader = AtomicStoreLoader::create(dir.path(), "test_ledger_log").unwrap();
         let mut log = LedgerLog::<u64>::create(&mut loader, "ledger", 3).unwrap();
         let mut store = AtomicStore::open(loader).unwrap();
diff --git a/src/hotshot_query_service/data_source/storage/no_storage.rs.html b/src/hotshot_query_service/data_source/storage/no_storage.rs.html
index 381eae6e5..6ccba5352 100644
--- a/src/hotshot_query_service/data_source/storage/no_storage.rs.html
+++ b/src/hotshot_query_service/data_source/storage/no_storage.rs.html
@@ -570,7 +570,6 @@
 569
 570
 571
-572
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -778,7 +777,6 @@
         },
         Error,
     };
-    use async_std::task::spawn;
     use futures::stream::{BoxStream, StreamExt};
     use hotshot::types::Event;
     use portpicker::pick_unused_port;
@@ -863,7 +861,7 @@
             }
         }
 
-        async fn setup(network: &MockNetwork<Self>) {
+        async fn setup(network: &mut MockNetwork<Self>) {
             // Spawn the web server on node 1 that node 0 will use to fetch missing data.
             let Storage::NoStorage { fetch_from_port } = network.storage() else {
                 panic!("node 0 should always be NoStorage node");
@@ -873,7 +871,7 @@
             let mut app = App::<_, Error>::with_state(api_data_source);
             app.register_module("availability", define_api(&Default::default()).unwrap())
                 .unwrap();
-            spawn(app.serve(format!("0.0.0.0:{fetch_from_port}")));
+            network.spawn("server", app.serve(format!("0.0.0.0:{fetch_from_port}")));
         }
 
         async fn handle_event(&mut self, event: &Event<MockTypes>) {
diff --git a/src/hotshot_query_service/data_source/storage/sql.rs.html b/src/hotshot_query_service/data_source/storage/sql.rs.html
index 7dbbeefc5..4361bdf19 100644
--- a/src/hotshot_query_service/data_source/storage/sql.rs.html
+++ b/src/hotshot_query_service/data_source/storage/sql.rs.html
@@ -2213,33 +2213,6 @@
 2212
 2213
 2214
-2215
-2216
-2217
-2218
-2219
-2220
-2221
-2222
-2223
-2224
-2225
-2226
-2227
-2228
-2229
-2230
-2231
-2232
-2233
-2234
-2235
-2236
-2237
-2238
-2239
-2240
-2241
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -2265,17 +2238,11 @@
 };
 
 pub use anyhow::Error;
-use async_std::{
-    net::ToSocketAddrs,
-    sync::Arc,
-    task::{sleep, spawn},
-};
+use async_std::{net::ToSocketAddrs, sync::Arc, task::sleep};
 use async_trait::async_trait;
 use chrono::Utc;
 use commit::Committable;
 use futures::{
-    channel::oneshot,
-    future::{select, Either, FutureExt},
     stream::{BoxStream, StreamExt, TryStreamExt},
     task::{Context, Poll},
     AsyncRead, AsyncWrite,
@@ -2316,6 +2283,7 @@
         VersionedDataSource,
     },
     node::{NodeDataSource, SyncStatus, TimeWindowQueryData, WindowStart},
+    task::BackgroundTask,
     types::HeightIndexed,
     Header, Leaf, MissingSnafu, NotFoundSnafu, Payload, QueryError, QueryResult, VidShare,
 };
@@ -2581,8 +2549,8 @@
 pub struct SqlStorage {
     client: Arc<Client>,
     tx_in_progress: bool,
-    kill: Option<oneshot::Sender<()>>,
     pruner_cfg: Option<PrunerCfg>,
+    _connection: BackgroundTask,
 }
 
 impl SqlStorage {
@@ -2592,7 +2560,7 @@
         let tcp = TcpStream::connect((config.host.as_str(), config.port)).await?;
 
         // Convert the TCP connection into a postgres connection.
-        let (mut client, kill) = if config.tls {
+        let (mut client, connection) = if config.tls {
             let tls = TlsConnector::new(native_tls::TlsConnector::new()?, config.host.as_str());
             connect(config.pgcfg, tcp, tls).await?
         } else {
@@ -2647,8 +2615,8 @@
         Ok(Self {
             client: Arc::new(client),
             tx_in_progress: false,
-            kill: Some(kill),
             pruner_cfg: config.pruner_cfg,
+            _connection: connection,
         })
     }
 
@@ -2853,15 +2821,6 @@
     }
 }
 
-impl Drop for SqlStorage {
-    fn drop(&mut self) {
-        if let Some(kill) = self.kill.take() {
-            // Ignore errors, they just mean the task has already exited.
-            kill.send(()).ok();
-        }
-    }
-}
-
 #[async_trait]
 impl VersionedDataSource for SqlStorage {
     type Error = postgres::error::Error;
@@ -4008,35 +3967,22 @@
 
 /// Connect to a Postgres database with a TLS implementation.
 ///
-/// Spawns a background task to run the connection. Returns a client and a channel to kill the
-/// connection task.
+/// Spawns a background task to run the connection. Returns a client and a handle to the spawned
+/// task.
 async fn connect<T>(
     pgcfg: postgres::Config,
     tcp: TcpStream,
     tls: T,
-) -> anyhow::Result<(Client, oneshot::Sender<()>)>
+) -> anyhow::Result<(Client, BackgroundTask)>
 where
     T: TlsConnect<TcpStream>,
     T::Stream: Send + 'static,
 {
     let (client, connection) = pgcfg.connect_raw(tcp, tls).await?;
-
-    // Spawn a task to drive the connection, with a channel to kill it when this data source is
-    // dropped.
-    let (kill, killed) = oneshot::channel();
-    spawn(select(killed, connection).inspect(|res| {
-        if let Either::Right((res, _)) = res {
-            // If we were killed, do nothing. That is the normal shutdown path. But if the `select`
-            // returned because the `connection` terminated, we should log something, as that is
-            // unusual.
-            match res {
-                Ok(()) => tracing::warn!("postgres connection terminated unexpectedly"),
-                Err(err) => tracing::error!("postgres connection closed with error: {err}"),
-            }
-        }
-    }));
-
-    Ok((client, kill))
+    Ok((
+        client,
+        BackgroundTask::spawn("postgres connection", connection),
+    ))
 }
 
 fn sql_param<T: ToSql + Sync>(param: &T) -> &(dyn ToSql + Sync) {
diff --git a/src/hotshot_query_service/fetching/provider/any.rs.html b/src/hotshot_query_service/fetching/provider/any.rs.html
index 0b7889ade..6a6cc3647 100644
--- a/src/hotshot_query_service/fetching/provider/any.rs.html
+++ b/src/hotshot_query_service/fetching/provider/any.rs.html
@@ -481,6 +481,7 @@
         availability::{define_api, AvailabilityDataSource, UpdateAvailabilityData},
         data_source::{storage::sql::testing::TmpDb, VersionedDataSource},
         fetching::provider::{NoFetching, QueryServiceProvider},
+        task::BackgroundTask,
         testing::{
             consensus::{MockDataSource, MockNetwork},
             mocks::MockTypes,
@@ -489,7 +490,6 @@
         types::HeightIndexed,
         Error,
     };
-    use async_std::task::spawn;
     use futures::stream::StreamExt;
     use portpicker::pick_unused_port;
     use tide_disco::App;
@@ -508,7 +508,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        let _server = BackgroundTask::spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
diff --git a/src/hotshot_query_service/fetching/provider/query_service.rs.html b/src/hotshot_query_service/fetching/provider/query_service.rs.html
index 9ed910542..e8897122f 100644
--- a/src/hotshot_query_service/fetching/provider/query_service.rs.html
+++ b/src/hotshot_query_service/fetching/provider/query_service.rs.html
@@ -849,7 +849,6 @@
 848
 849
 850
-851
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1033,7 +1032,6 @@
         types::HeightIndexed,
         VidCommitment,
     };
-    use async_std::task::spawn;
     use commit::Committable;
     use futures::{
         future::{join, FutureExt},
@@ -1083,7 +1081,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
@@ -1303,7 +1301,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
@@ -1355,7 +1353,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
@@ -1411,7 +1409,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
@@ -1464,7 +1462,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
@@ -1518,7 +1516,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus. We don't give it a
         // fetcher since transactions are always fetched passively anyways.
@@ -1586,7 +1584,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("availability", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{port}")));
+        network.spawn("server", app.serve(format!("0.0.0.0:{port}")));
 
         // Start a data source which is not receiving events from consensus.
         let db = TmpDb::init().await;
diff --git a/src/hotshot_query_service/lib.rs.html b/src/hotshot_query_service/lib.rs.html
index 51176a13c..a4aed3470 100644
--- a/src/hotshot_query_service/lib.rs.html
+++ b/src/hotshot_query_service/lib.rs.html
@@ -794,8 +794,6 @@
 793
 794
 795
-796
-797
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1214,10 +1212,7 @@
 pub use error::Error;
 pub use resolvable::Resolvable;
 
-use async_std::{
-    sync::{Arc, RwLock},
-    task::spawn,
-};
+use async_std::sync::{Arc, RwLock};
 use futures::StreamExt;
 use hotshot::types::SystemContextHandle;
 use hotshot_types::traits::{
@@ -1226,6 +1221,7 @@
 };
 use serde::{Deserialize, Serialize};
 use snafu::Snafu;
+use task::BackgroundTask;
 use tide_disco::{App, StatusCode};
 
 pub use hotshot_types::{
@@ -1313,7 +1309,7 @@
 
     // Serve app.
     let url = format!("0.0.0.0:{}", options.port);
-    spawn(async move { app.serve(&url).await });
+    let _server = BackgroundTask::spawn("server", async move { app.serve(&url).await });
 
     // Subscribe to events before starting consensus, so we don't miss any events.
     let mut events = hotshot.get_event_stream();
@@ -1349,7 +1345,7 @@
             mocks::{MockHeader, MockPayload, MockTypes},
         },
     };
-    use async_std::{sync::RwLock, task::spawn};
+    use async_std::sync::RwLock;
     use async_trait::async_trait;
     use atomic_store::{load_store::BincodeLoadStore, AtomicStore, AtomicStoreLoader, RollingLog};
 
@@ -1495,7 +1491,7 @@
 
     #[async_std::test]
     async fn test_composition() {
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_composition").unwrap();
         let mut loader = AtomicStoreLoader::create(dir.path(), "test_composition").unwrap();
         let mut hotshot_qs = MockDataSource::create_with_store(&mut loader, Default::default())
             .await
@@ -1563,7 +1559,7 @@
         .unwrap();
 
         let port = pick_unused_port().unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        let _server = BackgroundTask::spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         let client = Client::<Error>::new(format!("http://localhost:{}", port).parse().unwrap());
         assert!(client.connect(Some(Duration::from_secs(60))).await);
diff --git a/src/hotshot_query_service/node.rs.html b/src/hotshot_query_service/node.rs.html
index b2928c04e..cbac3f19e 100644
--- a/src/hotshot_query_service/node.rs.html
+++ b/src/hotshot_query_service/node.rs.html
@@ -404,8 +404,6 @@
 403
 404
 405
-406
-407
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -577,6 +575,7 @@
     use super::*;
     use crate::{
         data_source::ExtensibleDataSource,
+        task::BackgroundTask,
         testing::{
             consensus::{MockDataSource, MockNetwork},
             mocks::MockTypes,
@@ -584,10 +583,7 @@
         },
         Error, Header, VidShare,
     };
-    use async_std::{
-        sync::RwLock,
-        task::{sleep, spawn},
-    };
+    use async_std::{sync::RwLock, task::sleep};
     use commit::Committable;
     use futures::{FutureExt, StreamExt};
     use hotshot_types::event::EventType;
@@ -612,7 +608,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("node", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        network.spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         // Start a client.
         let client =
@@ -755,7 +751,7 @@
     async fn test_extensions() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_node_extensions").unwrap();
         let data_source = ExtensibleDataSource::new(
             MockDataSource::create(dir.path(), Default::default())
                 .await
@@ -798,7 +794,7 @@
         app.register_module("node", api).unwrap();
 
         let port = pick_unused_port().unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        let _server = BackgroundTask::spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         let client =
             Client::<Error>::new(format!("http://localhost:{}/node", port).parse().unwrap());
diff --git a/src/hotshot_query_service/status.rs.html b/src/hotshot_query_service/status.rs.html
index e32659122..25bac2303 100644
--- a/src/hotshot_query_service/status.rs.html
+++ b/src/hotshot_query_service/status.rs.html
@@ -296,6 +296,7 @@
 295
 296
 297
+298
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -416,6 +417,7 @@
     use super::*;
     use crate::{
         data_source::ExtensibleDataSource,
+        task::BackgroundTask,
         testing::{
             consensus::{MockDataSource, MockNetwork},
             mocks::MockTransaction,
@@ -423,7 +425,7 @@
         },
         Error,
     };
-    use async_std::{sync::RwLock, task::spawn};
+    use async_std::sync::RwLock;
     use bincode::Options as _;
     use futures::FutureExt;
     use hotshot_utils::bincode::bincode_opts;
@@ -447,7 +449,7 @@
         let mut app = App::<_, Error>::with_state(network.data_source());
         app.register_module("status", define_api(&Default::default()).unwrap())
             .unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        network.spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         // Start a client.
         let url = Url::from_str(&format!("http://localhost:{}/status", port)).unwrap();
@@ -538,7 +540,7 @@
     async fn test_extensions() {
         setup_test();
 
-        let dir = TempDir::new().unwrap();
+        let dir = TempDir::with_prefix("test_status_extensions").unwrap();
         let data_source = ExtensibleDataSource::new(
             MockDataSource::create(dir.path(), Default::default())
                 .await
@@ -579,7 +581,7 @@
         app.register_module("status", api).unwrap();
 
         let port = pick_unused_port().unwrap();
-        spawn(app.serve(format!("0.0.0.0:{}", port)));
+        let _server = BackgroundTask::spawn("server", app.serve(format!("0.0.0.0:{}", port)));
 
         let client =
             Client::<Error>::new(format!("http://localhost:{}/status", port).parse().unwrap());
diff --git a/src/hotshot_query_service/task.rs.html b/src/hotshot_query_service/task.rs.html
index ac49378e7..841e6b86f 100644
--- a/src/hotshot_query_service/task.rs.html
+++ b/src/hotshot_query_service/task.rs.html
@@ -76,6 +76,18 @@
 75
 76
 77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -96,6 +108,7 @@
 };
 use futures::future::Future;
 use std::fmt::Display;
+use tracing::{info_span, Instrument};
 
 #[derive(Debug)]
 struct BackgroundTaskInner {
@@ -118,18 +131,28 @@
 
 impl BackgroundTask {
     /// Spawn a background task, which will be cancelled when every clone is dropped.
+    ///
+    /// The caller should ensure that `future` yields back to the executor fairly frequently, to
+    /// ensure timely cancellation in case the task is dropped. If an operation in `future` may run
+    /// for a long time without blocking or yielding, consider using
+    /// [`yield_now`](async_std::task::yield_now) periodically, or using
+    /// [`spawn`](async_std::task::spawn) or [`spawn_blocking`](async_std::task::spawn_blocking) to
+    /// run long operations in a sub-task.
     pub fn spawn<F>(name: impl Display, future: F) -> Self
     where
         F: Future + Send + 'static,
     {
         let name = name.to_string();
         let handle = {
-            let name = name.clone();
-            spawn(async move {
-                tracing::info!("spawning background task {name}");
-                future.await;
-                tracing::info!("background task {name} completed");
-            })
+            let span = info_span!("task", name);
+            spawn(
+                async move {
+                    tracing::info!("spawning background task");
+                    future.await;
+                    tracing::info!("completed background task");
+                }
+                .instrument(span),
+            )
         };
 
         Self {
@@ -147,8 +170,9 @@
             // Check if this is the last instance of the [`Arc`] and, if so, cancel the underlying
             // task.
             if let Some(inner) = Arc::into_inner(inner) {
-                tracing::info!("cancelling background task {}", inner.name);
+                tracing::info!(name = inner.name, "cancelling background task");
                 async_std::task::block_on(inner.handle.cancel());
+                tracing::info!(name = inner.name, "cancelled background task");
             }
         }
     }
diff --git a/src/hotshot_query_service/testing/consensus.rs.html b/src/hotshot_query_service/testing/consensus.rs.html
index cfe795a0d..b2b9ecd6b 100644
--- a/src/hotshot_query_service/testing/consensus.rs.html
+++ b/src/hotshot_query_service/testing/consensus.rs.html
@@ -276,6 +276,26 @@
 275
 276
 277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -295,14 +315,15 @@
     fetching::provider::NoFetching,
     node::NodeDataSource,
     status::{StatusDataSource, UpdateStatusData},
+    task::BackgroundTask,
     SignatureKey,
 };
-use async_std::{
-    sync::{Arc, RwLock},
-    task::spawn,
-};
+use async_std::sync::{Arc, RwLock};
 use async_trait::async_trait;
-use futures::{future::join_all, stream::StreamExt};
+use futures::{
+    future::{join_all, Future},
+    stream::StreamExt,
+};
 use hotshot::{
     traits::implementations::{MasterMap, MemoryNetwork, MemoryStorage, NetworkingMetricsValue},
     types::{Event, SystemContextHandle},
@@ -316,8 +337,10 @@
     traits::{election::Membership, signature_key::SignatureKey as _},
     ExecutionType, HotShotConfig, PeerConfig, ValidatorConfig,
 };
+use std::fmt::Display;
 use std::num::NonZeroUsize;
 use std::time::Duration;
+use tracing::{info_span, Instrument};
 
 struct MockNode<D: DataSourceLifeCycle> {
     hotshot: SystemContextHandle<MockTypes, MockNodeImpl>,
@@ -326,6 +349,7 @@
 }
 
 pub struct MockNetwork<D: DataSourceLifeCycle> {
+    tasks: Vec<BackgroundTask>,
     nodes: Vec<MockNode<D>>,
     pub_keys: Vec<BLSPubKey>,
 }
@@ -389,6 +413,7 @@
                     let election_config =
                         MockMembership::default_election_config(total_nodes.get() as u64);
 
+                    let span = info_span!("initialize node", node_id);
                     async move {
                         let storage = D::create(node_id).await;
                         let data_source = D::connect(&storage).await;
@@ -437,12 +462,17 @@
                             storage,
                         }
                     }
+                    .instrument(span)
                 }),
         )
         .await;
 
-        let network = Self { nodes, pub_keys };
-        D::setup(&network).await;
+        let mut network = Self {
+            nodes,
+            pub_keys,
+            tasks: Default::default(),
+        };
+        D::setup(&mut network).await;
         network
     }
 }
@@ -476,12 +506,16 @@
         &self.nodes[0].storage
     }
 
+    pub fn spawn(&mut self, name: impl Display, task: impl Future + Send + 'static) {
+        self.tasks.push(BackgroundTask::spawn(name, task));
+    }
+
     pub async fn shut_down(mut self) {
         self.shut_down_impl().await
     }
 
     async fn shut_down_impl(&mut self) {
-        for mut node in std::mem::take(&mut self.nodes) {
+        for node in &mut self.nodes {
             node.hotshot.shut_down().await;
         }
     }
@@ -493,13 +527,19 @@
         for (i, node) in self.nodes.iter_mut().enumerate() {
             let ds = node.data_source.clone();
             let mut events = node.hotshot.get_event_stream();
-            spawn(async move {
-                while let Some(event) = events.next().await {
-                    tracing::info!(node = i, event = ?event.event, "EVENT");
-                    let mut ds = ds.write().await;
-                    ds.handle_event(&event).await;
-                }
-            });
+            self.tasks.push(BackgroundTask::spawn(
+                format!("update node {i}"),
+                async move {
+                    while let Some(event) = events.next().await {
+                        tracing::info!(node = i, event = ?event.event, "EVENT");
+                        {
+                            let mut ds = ds.write().await;
+                            ds.handle_event(&event).await;
+                        }
+                        async_std::task::yield_now().await;
+                    }
+                },
+            ));
         }
 
         join_all(
@@ -531,7 +571,7 @@
     async fn handle_event(&mut self, event: &Event<MockTypes>);
 
     /// Setup runs after setting up the network but before starting a test.
-    async fn setup(_network: &MockNetwork<Self>) {}
+    async fn setup(_network: &mut MockNetwork<Self>) {}
 }
 
 pub trait TestableDataSource:
diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
index c8c95dee8..c267da697 100644
--- a/trait.impl/core/clone/trait.Clone.js
+++ b/trait.impl/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"hotshot_query_service":[["impl Clone for Error"],["impl<P> Clone for TestProvider<P>"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Clone for NoFetching"],["impl Clone for RequestSnafu"],["impl Clone for MockTypes"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl Clone for PrunerCfg"],["impl Clone for RequestSnafu"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl Clone for MetricsDataSource"],["impl Clone for LeafRequest"],["impl Clone for PrometheusMetrics"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl Clone for VidCommonRequest"],["impl Clone for SyncStatus"],["impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>"],["impl Clone for QueryServiceProvider"],["impl Clone for Counter"],["impl Clone for Error"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
where\n Payload<Types>: QueryablePayload,
"],["impl Clone for MissingSnafu"],["impl Clone for Gauge"],["impl Clone for Error"],["impl<__T0: Clone> Clone for QueryVidSnafu<__T0>"],["impl Clone for PayloadRequest"],["impl<T: Clone> Clone for TimeWindowQueryData<T>"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
where\n Types: NodeType,
"],["impl<Types> Clone for AnyProvider<Types>
where\n Types: NodeType,
"],["impl<Types: NodeType> Clone for WindowStart<Types>"],["impl Clone for QuerySnafu"],["impl Clone for NotFoundSnafu"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for MockNodeImpl"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl<Types, S, P> Clone for Pruner<Types, S, P>
where\n Types: NodeType,
"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl Clone for Error"],["impl Clone for NoStorage"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl Clone for MempoolQueryData"],["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl Clone for QueryError"],["impl Clone for Config"],["impl Clone for Label"],["impl<__T0: Clone, __T1: Clone> Clone for QueryWindowSnafu<__T0, __T1>"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl Clone for Histogram"]] +"hotshot_query_service":[["impl Clone for Error"],["impl<P> Clone for TestProvider<P>"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Clone for NoFetching"],["impl Clone for RequestSnafu"],["impl Clone for MockTypes"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl Clone for PrunerCfg"],["impl Clone for RequestSnafu"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl Clone for MetricsDataSource"],["impl Clone for LeafRequest"],["impl Clone for PrometheusMetrics"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl Clone for VidCommonRequest"],["impl Clone for SyncStatus"],["impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>"],["impl Clone for QueryServiceProvider"],["impl Clone for Counter"],["impl Clone for Error"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
where\n Payload<Types>: QueryablePayload,
"],["impl Clone for MissingSnafu"],["impl Clone for Gauge"],["impl Clone for Error"],["impl<__T0: Clone> Clone for QueryVidSnafu<__T0>"],["impl Clone for PayloadRequest"],["impl<T: Clone> Clone for TimeWindowQueryData<T>"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl Clone for Config"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
where\n Types: NodeType,
"],["impl<Types> Clone for AnyProvider<Types>
where\n Types: NodeType,
"],["impl<Types: NodeType> Clone for WindowStart<Types>"],["impl Clone for QuerySnafu"],["impl Clone for NotFoundSnafu"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for MockNodeImpl"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl<Types, S, P> Clone for Pruner<Types, S, P>
where\n Types: NodeType,
"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl Clone for Error"],["impl Clone for NoStorage"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl Clone for MempoolQueryData"],["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl Clone for QueryError"],["impl Clone for Label"],["impl<__T0: Clone, __T1: Clone> Clone for QueryWindowSnafu<__T0, __T1>"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl Clone for Histogram"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index d01a3b601..f6b47f23b 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Debug for NoFetching"],["impl Debug for Error"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<T: Debug> Debug for TimeWindowQueryData<T>"],["impl<Types: NodeType> Debug for FileSystemStorage<Types>
where\n Payload<Types>: QueryablePayload,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,\n LedgerLog<(VidCommonQueryData<Types>, Option<VidShare>)>: Debug,
"],["impl<__T0: Debug> Debug for QueryVidSnafu<__T0>"],["impl Debug for Config"],["impl<__T0: Debug> Debug for Snafu<__T0>"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl Debug for Histogram"],["impl Debug for MetricsError"],["impl<T, C> Debug for Fetcher<T, C>"],["impl Debug for SyncStatus"],["impl Debug for PayloadRequest"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl Debug for MockNodeImpl"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for NoStorage"],["impl Debug for RequestSnafu"],["impl<Types, S, P> Debug for Pruner<Types, S, P>
where\n Types: NodeType,\n S: Debug,\n P: Debug,
"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl Debug for TmpDb"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl Debug for RequestSnafu"],["impl<P> Debug for TestProvider<P>
where\n P: Debug,
"],["impl Debug for NotFoundSnafu"],["impl<Types> Debug for AnyProvider<Types>
where\n Types: NodeType,
"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl Debug for VidCommonRequest"],["impl Debug for Error"],["impl Debug for LeafRequest"],["impl Debug for QuerySnafu"],["impl<__T0: Debug, __T1: Debug> Debug for QueryWindowSnafu<__T0, __T1>"],["impl Debug for MempoolQueryData"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl Debug for MissingSnafu"],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
where\n Types: NodeType,\n S: Debug,\n P: Debug,
"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl Debug for Gauge"],["impl Debug for Counter"],["impl Debug for Error"],["impl Debug for QueryError"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
where\n Payload<Types>: QueryablePayload,
"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl Debug for QueryServiceProvider"],["impl<Types: NodeType> Debug for WindowStart<Types>"],["impl Debug for SqlStorage"],["impl Debug for PrometheusMetrics"],["impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>"],["impl Debug for MockTypes"],["impl Debug for MetricsDataSource"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Debug for Label"],["impl Debug for PrunerCfg"],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl Debug for Error"]] +"hotshot_query_service":[["impl Debug for NoFetching"],["impl Debug for Error"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<T: Debug> Debug for TimeWindowQueryData<T>"],["impl<Types: NodeType> Debug for FileSystemStorage<Types>
where\n Payload<Types>: QueryablePayload,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,\n LedgerLog<(VidCommonQueryData<Types>, Option<VidShare>)>: Debug,
"],["impl<__T0: Debug> Debug for QueryVidSnafu<__T0>"],["impl Debug for SqlStorage"],["impl<__T0: Debug> Debug for Snafu<__T0>"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl Debug for Histogram"],["impl Debug for MetricsError"],["impl<T, C> Debug for Fetcher<T, C>"],["impl Debug for SyncStatus"],["impl Debug for PayloadRequest"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl Debug for MockNodeImpl"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for NoStorage"],["impl Debug for RequestSnafu"],["impl<Types, S, P> Debug for Pruner<Types, S, P>
where\n Types: NodeType,\n S: Debug,\n P: Debug,
"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl Debug for TmpDb"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl Debug for RequestSnafu"],["impl<P> Debug for TestProvider<P>
where\n P: Debug,
"],["impl Debug for NotFoundSnafu"],["impl<Types> Debug for AnyProvider<Types>
where\n Types: NodeType,
"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl Debug for VidCommonRequest"],["impl Debug for Error"],["impl Debug for LeafRequest"],["impl Debug for QuerySnafu"],["impl<__T0: Debug, __T1: Debug> Debug for QueryWindowSnafu<__T0, __T1>"],["impl Debug for MempoolQueryData"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl Debug for MissingSnafu"],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
where\n Types: NodeType,\n S: Debug,\n P: Debug,
"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl Debug for Gauge"],["impl Debug for Counter"],["impl Debug for Error"],["impl Debug for QueryError"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
where\n Payload<Types>: QueryablePayload,
"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl Debug for QueryServiceProvider"],["impl Debug for Config"],["impl<Types: NodeType> Debug for WindowStart<Types>"],["impl Debug for PrometheusMetrics"],["impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>"],["impl Debug for MockTypes"],["impl Debug for MetricsDataSource"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Debug for Label"],["impl Debug for PrunerCfg"],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl Debug for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/ops/drop/trait.Drop.js b/trait.impl/core/ops/drop/trait.Drop.js index 9aac3accb..591d4ebfd 100644 --- a/trait.impl/core/ops/drop/trait.Drop.js +++ b/trait.impl/core/ops/drop/trait.Drop.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Drop for TmpDb"],["impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>"],["impl Drop for SqlStorage"]] +"hotshot_query_service":[["impl Drop for TmpDb"],["impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js b/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js index 00a932209..f4d037834 100644 --- a/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js +++ b/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"hotshot_query_service":[["
source§

impl<Types: NodeType, P> FileSystemDataSource<Types, P>
where\n Payload<Types>: QueryablePayload,\n Header<Types>: QueryableHeader<Types>,\n P: AvailabilityProvider<Types>,

source

pub async fn create(path: &Path, provider: P) -> Result<Self>

Create a new FileSystemDataSource with storage at path.

\n

If there is already data at path, it will be archived.

\n

The FileSystemDataSource will manage its own persistence synchronization.

\n
source

pub async fn open(path: &Path, provider: P) -> Result<Self>

Open an existing FileSystemDataSource from storage at path.

\n

If there is no data at path, a new store will be created.

\n

The FileSystemDataSource will manage its own persistence synchronization.

\n
source

pub async fn create_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

Create a new FileSystemDataSource using a persistent storage loader.

\n

If there is existing data corresponding to the FileSystemDataSource data structures, it\nwill be archived.

\n

The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

\n
source

pub async fn open_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

Open an existing FileSystemDataSource using a persistent storage loader.

\n

If there is no existing data corresponding to the FileSystemDataSource data structures, a\nnew store will be created.

\n

The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

\n
source

pub async fn skip_version(&mut self) -> Result<()>

Advance the version of the persistent store without committing changes to persistent state.

\n

This function is useful when the AtomicStore synchronizing\nstorage for this FileSystemDataSource is being managed by the caller. The caller may want\nto persist some changes to other modules whose state is managed by the same\nAtomicStore. In order to call\nAtomicStore::commit_version, the version of\nthis FileSystemDataSource must be advanced, either by\ncommit or, if there are no outstanding changes,\nskip_version.

\n
",0,"hotshot_query_service::testing::consensus::MockDataSource"],["
source§

impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

§

type Storage = TempDir

Backing storage for the data source. Read more
source§

fn create<'async_trait>(\n _node_id: usize\n) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
where\n Self: 'async_trait,

source§

fn connect<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

source§

fn reset<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

source§

fn handle_event<'life0, 'life1, 'async_trait>(\n &'life0 mut self,\n event: &'life1 Event<MockTypes>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>(\n _network: &'life0 MockNetwork<Self>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
","DataSourceLifeCycle","hotshot_query_service::testing::consensus::MockDataSource"]] +"hotshot_query_service":[["
source§

impl<Types: NodeType, P> FileSystemDataSource<Types, P>
where\n Payload<Types>: QueryablePayload,\n Header<Types>: QueryableHeader<Types>,\n P: AvailabilityProvider<Types>,

source

pub async fn create(path: &Path, provider: P) -> Result<Self>

Create a new FileSystemDataSource with storage at path.

\n

If there is already data at path, it will be archived.

\n

The FileSystemDataSource will manage its own persistence synchronization.

\n
source

pub async fn open(path: &Path, provider: P) -> Result<Self>

Open an existing FileSystemDataSource from storage at path.

\n

If there is no data at path, a new store will be created.

\n

The FileSystemDataSource will manage its own persistence synchronization.

\n
source

pub async fn create_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

Create a new FileSystemDataSource using a persistent storage loader.

\n

If there is existing data corresponding to the FileSystemDataSource data structures, it\nwill be archived.

\n

The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

\n
source

pub async fn open_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

Open an existing FileSystemDataSource using a persistent storage loader.

\n

If there is no existing data corresponding to the FileSystemDataSource data structures, a\nnew store will be created.

\n

The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

\n
source

pub async fn skip_version(&mut self) -> Result<()>

Advance the version of the persistent store without committing changes to persistent state.

\n

This function is useful when the AtomicStore synchronizing\nstorage for this FileSystemDataSource is being managed by the caller. The caller may want\nto persist some changes to other modules whose state is managed by the same\nAtomicStore. In order to call\nAtomicStore::commit_version, the version of\nthis FileSystemDataSource must be advanced, either by\ncommit or, if there are no outstanding changes,\nskip_version.

\n
",0,"hotshot_query_service::testing::consensus::MockDataSource"],["
source§

impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

§

type Storage = TempDir

Backing storage for the data source. Read more
source§

fn create<'async_trait>(\n node_id: usize\n) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
where\n Self: 'async_trait,

source§

fn connect<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

source§

fn reset<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

source§

fn handle_event<'life0, 'life1, 'async_trait>(\n &'life0 mut self,\n event: &'life1 Event<MockTypes>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>(\n _network: &'life0 mut MockNetwork<Self>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where\n Self: 'async_trait,\n 'life0: 'async_trait,

Setup runs after setting up the network but before starting a test.
","DataSourceLifeCycle","hotshot_query_service::testing::consensus::MockDataSource"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file