macro_rules! include_migrations { +include_migrations in hotshot_query_service::data_source::sql - Rust 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 typeimpl 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 d05839a58..830ef331b 100644 --- a/hotshot_query_service/data_source/sql/type.SqlDataSource.html +++ b/hotshot_query_service/data_source/sql/type.SqlDataSource.html @@ -191,7 +191,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 @@ -202,14 +202,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 @@ -220,7 +220,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 @@ -228,7 +228,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>( &'life0 self, query: &'life1 T, params: P @@ -239,7 +239,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/sql/fn.default_migrations.html b/hotshot_query_service/data_source/storage/sql/fn.default_migrations.html index ff036658d..f5b8ff278 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,2 +1,2 @@ -
default_migrations in hotshot_query_service::data_source::storage::sql - Rust Function hotshot_query_service::
source ·data_source:: storage:: sql:: default_migrations pub fn default_migrations() -> Vec<Migration>
Expand description
The migrations requied to build the default schema for this version of
+SqlStorage
.default_migrations in hotshot_query_service::data_source::storage::sql - Rust \ 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 41bb91bc2..73b0f3dda 100644 --- a/hotshot_query_service/data_source/storage/sql/index.html +++ b/hotshot_query_service/data_source/storage/sql/index.html @@ -1,3 +1,3 @@ - Function hotshot_query_service::
source ·data_source:: storage:: sql:: default_migrations pub fn default_migrations() -> Vec<Migration>
Expand description
The migrations requied to build the default schema for this version of
SqlStorage
.hotshot_query_service::data_source::storage::sql - Rust Module hotshot_query_service::
source ·data_source:: storage:: sql Re-exports
pub use tokio_postgres as postgres;
Macros
Embed the contents of a directory in your crate. Embed migrations from the given directory into the current binary.Structs
Postgres client config. TheError
type, a wrapper around a dynamic error type. Represents a schema migration to be run on the database, +hotshot_query_service::data_source::storage::sql - Rust \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/macro.include_migrations.html b/hotshot_query_service/data_source/storage/sql/macro.include_migrations.html index 19c9bd996..5bac84977 100644 --- a/hotshot_query_service/data_source/storage/sql/macro.include_migrations.html +++ b/hotshot_query_service/data_source/storage/sql/macro.include_migrations.html @@ -1,4 +1,4 @@ - Module hotshot_query_service::
source ·data_source:: storage:: sql Re-exports
pub use tokio_postgres as postgres;
Macros
Embed the contents of a directory in your crate. Embed migrations from the given directory into the current binary.Structs
Postgres client config. TheError
type, a wrapper around a dynamic error type. Represents a schema migration to be run on the database, this struct is used by theembed_migrations!
macro to gather migration files and shouldn’t be needed by the user Storage for the APIs provided in this crate, backed by a remote PostgreSQL database. An atomic SQL transaction.Traits
Functions
The migrations requied to build the default schema for this version ofSqlStorage
.include_migrations in hotshot_query_service::data_source::storage::sql - Rust macro_rules! include_migrations { +include_migrations in hotshot_query_service::data_source::storage::sql - Rust 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 typeimpl Iterator<Item = Migration>
. Each migration must be a text file which is an immediate child of diff --git a/hotshot_query_service/data_source/storage/sql/struct.Config.html b/hotshot_query_service/data_source/storage/sql/struct.Config.html index f681b3e31..be3140e64 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Config.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Config.html @@ -1,17 +1,17 @@ -Config in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: Config pub struct Config { /* private fields */ }
Expand description
Postgres client config.
+Config in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: Config pub struct Config { /* private fields */ }
Expand description
Postgres client config.
Implementations§
source§ impl Config
source pub async fn connect<Types>(self) -> Result<SqlDataSource<Types>, Error>where Types: NodeType, Payload<Types>: QueryablePayload,
Connect to the database with this config.
-
source§ impl Config
source pub fn host(self, host: impl Into<String>) -> Self
Set the hostname of the database server.
The default is
-localhost
.
source pub fn port(self, port: u16) -> Self
Set the port on which to connect to the database.
The default is 5432, the default Postgres port.
-
source pub fn schema(self, schema: impl Into<String>) -> Self
Set the name of the schema to use for queries.
+
source pub fn schema(self, schema: impl Into<String>) -> Self
Set the name of the schema to use for queries.
The default schema is named
-hotshot
and is created via the default migrations.
source pub fn reset_schema(self) -> Self
Reset the schema on connection.
+
source pub fn reset_schema(self) -> Self
Reset the schema on connection.
When this
Config
is used toconnect
aSqlDataSource
, if this option is set, the relevantschema
will first be dropped and then recreated, yielding a completely @@ -19,10 +19,10 @@This is a particularly useful capability for development and staging environments. Still, it must be used with extreme caution, as using this will irrevocably delete any data pertaining to the query service in the database.
-
source pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self
Add custom migrations to run when connecting to the database.
-
source pub fn no_migrations(self) -> Self
Skip all migrations when connecting to the database.
-Trait Implementations§
Auto Trait Implementations§
§ impl RefUnwindSafe for Config
§ impl Send for Config
§ impl Sync for Config
§ impl Unpin for Config
§ impl UnwindSafe for Config
Blanket Implementations§
source pub fn migrations(self, migrations: impl IntoIterator<Item = Migration>) -> Self
Add custom migrations to run when connecting to the database.
+
source pub fn no_migrations(self) -> Self
Skip all migrations when connecting to the database.
+Trait Implementations§
Auto Trait Implementations§
§ impl RefUnwindSafe for Config
§ impl Send for Config
§ impl Sync for Config
§ impl Unpin for Config
§ impl UnwindSafe for Config
Blanket Implementations§
§ impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,
§ impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere 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 e1b38a2fc..a0d417e66 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html +++ b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html @@ -1,58 +1,58 @@ -
SqlStorage in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: SqlStorage 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§ impl SqlStorage
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 SqlStoragewhere +
SqlStorage in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: SqlStorage 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§ impl SqlStorage
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 SqlStoragewhere Types: NodeType, - Payload<Types>: QueryablePayload,
source§ fn get_leaf<'life0, 'async_trait>( + Payload<Types>: QueryablePayload,
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_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_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§ impl Drop for SqlStorage
source§ impl<Types> NodeDataSource<Types> for SqlStoragewhere - Types: NodeType,
source§ fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,
source§ impl Debug for SqlStorage
source§ impl Drop for SqlStorage
source§ impl<Types> NodeDataSource<Types> for SqlStoragewhere + 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 get_proposals<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,
source§ fn get_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types>, limit: Option<usize> ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
source§ fn count_proposals<'life0, 'life1, 'async_trait>( + 'life1: 'async_trait,
source§ fn count_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
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 @@ -63,14 +63,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 @@ -81,7 +81,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 @@ -89,7 +89,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>( &'life0 self, query: &'life1 T, params: P @@ -100,36 +100,36 @@ 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 SqlStoragewhere + 'life1: 'async_trait,
Query the underlying SQL database with no parameters, returning zero or one results.
source§ impl<Types> UpdateAvailabilityData<Types> for SqlStoragewhere Types: NodeType, - Payload<Types>: QueryablePayload,
§ type Error = QueryError
source§ fn insert_leaf<'life0, 'async_trait>( + Payload<Types>: QueryablePayload,
§ 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§ impl<Types> UpdateNodeData<Types> for SqlStoragewhere - Types: NodeType,
§ type Error = QueryError
source§ fn insert_leaf<'life0, 'async_trait>( + 'life0: 'async_trait,
source§ impl<Types> UpdateNodeData<Types> for SqlStoragewhere + Types: NodeType,
§ 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§ impl VersionedDataSource for SqlStorage
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, 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 a8195a16e..d1df04908 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html @@ -1,9 +1,9 @@ -
Transaction in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: Transaction pub struct Transaction<'a> { /* private fields */ }
Expand description
An atomic SQL transaction.
-Implementations§
\ No newline at end of file diff --git a/hotshot_query_service/data_source/trait.VersionedDataSource.html b/hotshot_query_service/data_source/trait.VersionedDataSource.html index 52febf3d7..162ebef6c 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -37,7 +37,7 @@ 'life0: 'async_trait,
source§ impl<'a> Transaction<'a>
source pub async fn execute<T, P>( +
Transaction in hotshot_query_service::data_source::storage::sql - Rust Struct hotshot_query_service::
source ·data_source:: storage:: sql:: Transaction 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 -) -> QueryResult<()>where +) -> QueryResult<u64>where T: ?Sized + ToStatement, P: IntoIterator, P::IntoIter: ExactSizeIterator, @@ -11,19 +11,54 @@
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_many<S, T, P>(&mut self, statements: S) -> QueryResult<()>where - S: IntoIterator<Item = (T, P)>, - T: ToStatement, +
source pub async fn execute_one<T, P>( + &mut self, + statement: &T, + params: P +) -> QueryResult<()>where + T: ?Sized + ToStatement, P: IntoIterator, P::IntoIter: ExactSizeIterator, - P::Item: BorrowToSql,
Trait Implementations§
source§ impl<'a> Query for Transaction<'a>
Query the underlying SQL database.
+ 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>( + &mut self, + statement: &T, + params: P +) -> QueryResult<()>where + T: ?Sized + ToStatement, + P: IntoIterator + Clone, + 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>( + &mut self, + statement: &T, + params: P +) -> QueryResult<u64>where + T: ?Sized + ToStatement, + P: IntoIterator, + 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>( + &mut self, + statement: &T, + params: P +) -> QueryResult<u64>where + T: ?Sized + ToStatement, + P: IntoIterator + Clone, + 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.
+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>( &'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 @@ -34,14 +69,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 @@ -52,7 +87,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 @@ -60,7 +95,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>( &'life0 self, query: &'life1 T, params: P @@ -71,7 +106,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/trait.Query.html b/hotshot_query_service/data_source/storage/sql/trait.Query.html index cf00e9978..6af224c03 100644 --- a/hotshot_query_service/data_source/storage/sql/trait.Query.html +++ b/hotshot_query_service/data_source/storage/sql/trait.Query.html @@ -1,4 +1,4 @@ -
Query in hotshot_query_service::data_source::storage::sql - Rust Trait hotshot_query_service::
source ·data_source:: storage:: sql:: Query pub trait Query { +
Query in hotshot_query_service::data_source::storage::sql - Rust Trait hotshot_query_service::
source ·data_source:: storage:: sql:: Query pub trait Query { // Required method fn client<'life0, 'async_trait>( &'life0 self @@ -67,11 +67,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§
Provided Methods§
source fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -82,7 +82,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 @@ -90,7 +90,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>( &'life0 self, query: &'life1 T, params: P @@ -102,7 +102,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 @@ -111,7 +111,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>( &'life0 self, query: &'life1 T, params: P @@ -123,7 +123,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 @@ -131,7 +131,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> Query for SqlDataSource<Types>where diff --git a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html index 670f67b8a..7e448bc6e 100644 --- a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html +++ b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html @@ -73,7 +73,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 SqlStoragewhere + 'life0: 'async_trait,
Object Safety§
This trait is not object safe.Implementors§
source§ impl<Types> AvailabilityStorage<Types> for SqlStoragewhere Types: NodeType, Payload<Types>: QueryablePayload,
source§ impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>where Payload<Types>: QueryablePayload,
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 SqlStorage
source§ impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>where +
Implementors§
source§ impl VersionedDataSource for SqlStorage
source§ impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>where D: VersionedDataSource + Send, U: Send,
§ type Error = <D as VersionedDataSource>::Error
source§ impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>where Types: NodeType, diff --git a/hotshot_query_service/macro.include_migrations.html b/hotshot_query_service/macro.include_migrations.html index 602012f31..625aeef16 100644 --- a/hotshot_query_service/macro.include_migrations.html +++ b/hotshot_query_service/macro.include_migrations.html @@ -1,4 +1,4 @@ -
include_migrations in hotshot_query_service - Rust macro_rules! include_migrations { +include_migrations in hotshot_query_service - Rust 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 typeimpl Iterator<Item = Migration>
. Each migration must be a text file which is an immediate child of diff --git a/hotshot_query_service/node/trait.NodeDataSource.html b/hotshot_query_service/node/trait.NodeDataSource.html index 83c5e4978..4ebe9150e 100644 --- a/hotshot_query_service/node/trait.NodeDataSource.html +++ b/hotshot_query_service/node/trait.NodeDataSource.html @@ -40,7 +40,7 @@ 'life1: 'async_trait,Implementors§
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 SqlStoragewhere + Types: NodeType,
source§ impl<Types> NodeDataSource<Types> for SqlStoragewhere 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/node/trait.UpdateNodeData.html b/hotshot_query_service/node/trait.UpdateNodeData.html index b2f5bc285..1848a2ef1 100644 --- a/hotshot_query_service/node/trait.UpdateNodeData.html +++ b/hotshot_query_service/node/trait.UpdateNodeData.html @@ -16,7 +16,7 @@ 'life0: 'async_trait,
Implementors§
source§ impl<D, U, Types> UpdateNodeData<Types> for ExtensibleDataSource<D, U>where D: UpdateNodeData<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,
§ type Error = <D as UpdateNodeData<Types>>::Error
source§ impl<Types> UpdateNodeData<Types> for SqlStoragewhere + Types: NodeType,
§ type Error = <D as UpdateNodeData<Types>>::Error
source§ impl<Types> UpdateNodeData<Types> for SqlStoragewhere Types: NodeType,
§ type Error = QueryError
source§ impl<Types, S, P> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>where Types: NodeType, S: UpdateNodeData<Types> + Send + Sync, diff --git a/search-index.js b/search-index.js index 7832cb616..62381319b 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"hotshot_query_service":{"doc":"The HotShot Query Service is a minimal, generic query …","t":"NNNENGGNDNNDNDGEGIGDNGLLLLLLLLLLLLLLLLLLLLLLLLLLAMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOLLLLLLOLLLLLLLLLLLLLLLLLLLLLLLLLLLLMAAMMFLLLLALLMLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLMMMMMMIGGDQNDEQENDNDNDNNNQDNDQGGDQNNNDNINNDEGGGGQDILLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKLKKLLLLLLLLLLLLMLLMLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLMKLLMLLLLLLLLLLLLLLLMLMMMLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMQDDGDCIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLAALLLLLLLLLLLLLLLLLKLLLLLCDDCGCLLOCLICCAKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDENNNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMNDEQNDCIDNNDDNDILLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLFLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMENDDNIILLLLMLLLLLLLLLLKLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLKLKLLLLLLLLLMLLLLLLLLLLLLLLMM","n":["Availability","Custom","Err","Error","Error","Header","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","__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_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","borrow","borrow","borrow","borrow","borrow","borrow","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_into","clone_into","clone_into","clone_into","clone_into","commitment","data_source","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","drop","drop","drop","drop","drop","drop","fail","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","group_id","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","instantiate_data_source_tests","internal","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","into_error","into_error","into_error","message","metrics","node","node","port","run_standalone_service","serialize","serialize","source","source","status","status","status","status","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","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","try_resolve","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","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Number","Options","Pending","QueryablePayload","Ready","Request","RequestSnafu","ResourceId","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","UpdateAvailabilityData","__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_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","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","build","build","build","build","build","by_hash","by_hash","cause","cause","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","cmp","compare","context","default","define_api","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","description","description","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","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_arg_matches","from_arg_matches_mut","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_leaf","get_leaf_range","group_id","hash","hash","hash","hash","header","header","header","header","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","insert_block","insert_leaf","internal","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_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_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","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","partial_cmp","payload","proof","proof","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","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","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_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","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","height","index","message","resource","resource","resource","source","status","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__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","as_bits","as_mut","as_mut_bits","as_ref","block_height","block_height","block_height","block_height","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","commit","commit","commit","connect","count_proposals","count_proposals","create","create","create_with_store","create_with_store","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","encode_hex","encode_hex_upper","fmt","fmt","fmt","from","from","from","get_block","get_block","get_block_range","get_block_range","get_block_with_transaction","get_block_with_transaction","get_leaf","get_leaf","get_leaf_range","get_leaf_range","get_proposals","get_proposals","init","init","init","inner","inner_mut","insert_block","insert_block","insert_leaf","insert_leaf","insert_leaf","insert_leaf","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","metrics","metrics","metrics","new","new","open","open","open_with_store","open_with_store","populate_metrics","populate_metrics","populate_metrics","revert","revert","revert","skip_version","skip_version","sql","storage","storage","storage_mut","to_owned","to_owned","to_owned","transaction","try_as_bits","try_as_mut_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","update","vzip","vzip","vzip","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","include_migrations","postgres","transaction","AvailabilityStorage","FileSystemStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_proposals","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","get_proposals","init","insert_block","insert_leaf","insert_leaf","into","into_any","into_any_arc","into_any_rc","open","open_with_store","revert","skip_version","try_from","try_into","type_id","vzip","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","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_proposals","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","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_leaf","get_leaf_range","get_proposals","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","insert_leaf","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","migrations","msg","name","new","no_migrations","partial_cmp","password","port","postgres","prefix","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","schema","sql","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","user","version","vzip","vzip","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","Custom","CustomSnafu","Error","Error","InvalidSignatureKey","InvalidSignatureKeySnafu","LeafQueryData","NodeDataSource","Options","Query","QueryProposals","QueryProposalsSnafu","QuerySnafu","Request","RequestSnafu","UpdateNodeData","__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_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_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_proposals","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","drop","drop","drop","drop","drop","drop","drop","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_proposals","group_id","header","in_current_span","init","init","init","init","init","init","init","insert_leaf","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","into_error","into_error","message","proposer","serialize","source","status","status","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_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","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","proposer","source","source","source","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","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"],"q":[[0,"hotshot_query_service"],[216,"hotshot_query_service::Error"],[221,"hotshot_query_service::QueryError"],[222,"hotshot_query_service::availability"],[737,"hotshot_query_service::availability::Error"],[745,"hotshot_query_service::data_source"],[891,"hotshot_query_service::data_source::sql"],[902,"hotshot_query_service::data_source::storage"],[912,"hotshot_query_service::data_source::storage::fs"],[949,"hotshot_query_service::data_source::storage::sql"],[1137,"hotshot_query_service::metrics"],[1312,"hotshot_query_service::metrics::MetricsError"],[1316,"hotshot_query_service::node"],[1529,"hotshot_query_service::node::Error"],[1535,"hotshot_query_service::status"],[1654,"hotshot_query_service::status::Error"],[1656,"dyn_clone::sealed"],[1657,"dyn_clone::sealed"],[1658,"core::error"],[1659,"clap_builder::builder::command"],[1660,"snafu::backtrace_shim"],[1661,"core::option"],[1662,"alloc::string"],[1663,"core::convert"],[1664,"tide_disco::status"],[1665,"core::clone"],[1666,"commit"],[1667,"core::result"],[1668,"serde::de"],[1669,"core::fmt"],[1670,"core::fmt"],[1671,"clap_builder"],[1672,"clap_builder::util::id"],[1673,"color_eyre::section"],[1674,"core::fmt"],[1675,"core::marker"],[1676,"alloc::sync"],[1677,"alloc::rc"],[1678,"hotshot::types::handle"],[1679,"hotshot_types::traits::node_implementation"],[1680,"hotshot_types::traits::node_implementation"],[1681,"core::any"],[1682,"snafu"],[1683,"snafu"],[1684,"tide_disco::api"],[1685,"core::iter::traits::iterator"],[1686,"core::cmp"],[1687,"core::future::future"],[1688,"core::pin"],[1689,"core::ops::range"],[1690,"core::hash"],[1691,"core::marker"],[1692,"core::ops::function"],[1693,"hotshot_types::simple_certificate"],[1694,"bitvec::slice"],[1695,"bitvec::order"],[1696,"std::path"],[1697,"anyhow"],[1698,"atomic_store::atomic_store"],[1699,"core::iter::traits::collect"],[1700,"hotshot_types::traits::metrics"],[1701,"bitvec::ptr::span"],[1702,"hotshot_types::event"],[1703,"atomic_store::error"],[1704,"time::offset_date_time"],[1705,"std::backtrace"],[1706,"anyhow"],[1707,"tokio_postgres::to_statement"],[1708,"core::iter::traits::collect"],[1709,"refinery_core::runner"],[1710,"refinery_core::error"],[1711,"hotshot_types::traits::metrics"],[1712,"hotshot_types::traits::signature_key"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","","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 theQueryError::NotFound
variant","Contains the success value","","","","","A reference to aT
which can be resolved into a wholeT
.","","SNAFU context selector for theQueryError::Error
variant","","Item within aPayload
.","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","","","","","","","","","","","","","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 aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","A node’s view of a HotShot chain","","","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 …","","","","","","","","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","SNAFU context selector for theError::Custom
variant","","","An in-progress request to fetch some data.","","SNAFU context selector for theError::FetchBlock
variant","","SNAFU context selector for theError::FetchLeaf
variant","","SNAFU context selector for theError::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 theError::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 thisFetch
to aResult
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 aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","","","","","","","","","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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::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 aLeaf
.","Collect information about a block.","Get the index of thenth
transaction.","Get the index of thenth
transaction.","Get thenth
transaction.","Get thenth
transaction.","Get thenth
transaction, along with an inclusion proof.","Get thenth
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 thisFetch
to aResult
with the provided error …","","","","","","","","","","Wrapper to add extensibility to an existing data source.","The most basic kind of 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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","Connect to a remote database.","","","Create a new FileSystemDataSource with storage atpath
.","Create a new FileSystemDataSource with storage atpath
.","Create a new FileSystemDataSource using a persistent …","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","Create a data source with local storage and a remote data …","Open an existing FileSystemDataSource from storage atpath
.","Open an existing FileSystemDataSource from storage atpath
.","Open an existing FileSystemDataSource using a persistent …","Open an existing FileSystemDataSource using a persistent …","","","","Erase all oustanding modifications to the data.","","","Advance the version of the persistent store without …","Advance the version of the persistent store without …","","Persistent storage for data sources.","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","Update query state based on a new consensus event.","","","","","","","TheError
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 atpath
.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","CallsU::from(self)
.","","","","Open an existing FileSystemStorage from storage atpath
.","Open an existing FileSystemStorage using a persistent …","","Advance the version of the persistent store without …","","","","","Postgres client config.","TheError
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.","","","","","","","","","","","","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.","","","","","","","","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 …","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","Returns true ifE
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","","","","","","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.","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for theError::Custom
variant","","","","SNAFU context selector for theError::InvalidSignatureKey
…","","","","","","SNAFU context selector for theError::QueryProposals
…","SNAFU context selector for theError::Query
variant","","SNAFU context selector for theError::Request
variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","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.","","","","","","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[7,7,117,0,10,0,0,10,0,7,10,0,117,0,0,0,0,0,0,0,7,0,7,7,11,11,12,12,13,13,10,10,7,11,12,13,10,19,7,11,12,13,10,19,7,10,19,19,0,19,7,10,7,11,12,13,10,19,7,11,12,13,10,19,11,12,13,7,7,10,7,11,12,13,10,7,11,12,13,10,157,0,19,7,11,12,13,10,19,7,11,12,13,10,19,7,10,7,10,7,11,12,13,10,19,11,12,13,7,7,11,12,13,10,10,7,7,7,7,7,11,12,13,10,19,19,19,19,7,10,7,10,0,7,11,12,13,10,19,0,7,7,11,12,13,10,19,7,11,12,13,10,19,7,11,12,13,10,19,7,11,12,13,10,19,11,12,13,13,0,0,19,19,0,7,10,7,10,0,7,10,19,7,11,12,13,10,7,10,7,11,12,13,10,19,7,11,12,13,10,19,157,7,11,12,13,10,19,19,19,7,11,12,13,10,19,158,159,160,161,158,162,0,0,0,0,42,27,0,0,112,0,27,0,27,0,27,0,78,84,60,163,0,27,0,163,0,0,0,42,78,84,60,0,65,0,65,27,0,0,0,0,0,0,163,0,0,60,60,51,51,50,50,62,62,53,53,63,63,54,54,55,55,56,56,57,57,59,59,27,27,68,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,50,27,68,68,50,27,51,53,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,54,55,56,57,59,163,163,50,27,60,51,50,62,53,63,54,55,56,57,59,27,60,51,50,62,53,63,54,55,56,57,59,27,60,60,65,68,0,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,50,27,51,62,53,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,163,163,62,60,51,62,53,60,60,60,60,51,51,51,51,62,62,62,62,53,53,53,53,68,54,55,56,57,59,60,60,51,50,50,62,53,63,54,55,56,57,59,27,27,65,60,60,60,51,50,62,53,68,63,54,55,56,57,59,27,27,27,68,68,51,62,42,42,42,60,42,42,68,60,51,62,53,60,50,62,27,51,62,53,57,50,27,57,65,60,51,50,62,53,68,63,54,55,56,57,59,27,112,112,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,63,54,55,56,57,59,65,163,163,62,163,51,50,163,62,65,59,62,51,62,163,163,163,163,163,163,60,62,163,163,51,51,50,65,54,55,56,51,62,53,27,62,50,27,27,59,42,42,42,42,60,51,50,62,53,63,54,55,56,57,59,27,60,50,27,163,163,62,53,163,163,62,163,163,163,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,65,60,51,50,62,53,68,63,54,55,56,57,59,27,68,68,65,60,51,50,62,53,68,63,54,55,56,57,59,27,65,164,164,165,166,167,168,169,165,46,0,0,0,0,0,0,0,98,98,99,99,100,100,98,99,100,98,99,100,98,98,98,98,98,98,99,99,100,98,99,100,98,99,100,98,99,100,98,99,100,46,98,99,99,98,99,105,99,105,99,100,98,99,100,98,99,100,98,99,100,98,98,98,99,100,98,99,100,98,99,98,99,98,99,98,99,98,99,98,99,98,99,100,98,98,98,99,98,98,99,99,98,99,100,98,99,100,98,99,100,98,99,100,98,99,100,98,99,105,99,105,99,98,99,100,46,98,99,105,99,0,0,99,99,98,99,100,99,98,98,98,99,100,98,99,100,98,99,100,45,98,99,98,99,100,0,0,0,0,0,0,120,120,0,0,120,0,0,0,0,111,111,111,111,111,0,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,0,0,0,0,122,122,101,101,122,103,122,116,101,102,103,122,116,101,102,103,103,103,102,103,122,116,101,102,103,122,116,101,102,103,122,170,116,102,122,101,122,101,122,102,122,101,102,103,102,101,101,0,103,103,122,116,101,102,103,103,122,116,101,102,103,103,103,103,103,122,116,101,102,102,122,122,122,122,122,116,116,103,103,122,122,101,102,103,103,103,122,116,101,101,102,101,102,102,102,102,102,102,103,122,101,0,0,103,122,116,101,102,102,102,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,103,101,103,122,103,101,122,101,101,0,122,170,170,170,170,170,170,101,102,103,101,122,101,122,101,103,122,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,122,101,122,103,122,116,101,102,0,0,0,0,0,139,139,139,0,114,114,136,136,140,140,137,137,141,141,136,137,139,114,136,140,137,141,139,114,136,140,137,141,139,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,114,136,140,137,141,114,114,114,114,114,139,114,136,140,137,141,139,114,136,140,137,141,139,139,114,136,140,137,141,114,139,139,114,136,140,137,141,139,139,114,136,140,137,141,136,140,141,114,114,114,114,114,139,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,137,137,140,141,139,114,137,114,136,140,137,141,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,140,139,114,136,140,137,141,171,171,172,173,29,0,0,113,29,0,0,0,0,29,29,0,0,29,0,0,150,150,151,151,152,152,148,148,149,149,29,29,153,153,150,151,152,148,149,29,153,150,151,152,148,149,29,29,153,153,29,43,153,150,151,152,148,149,29,153,150,151,152,148,149,29,148,149,29,150,151,152,148,149,29,150,151,152,148,149,29,43,153,0,153,150,151,152,148,149,29,153,150,151,152,148,149,29,29,29,153,150,151,152,148,149,29,153,148,149,150,151,152,148,149,29,29,153,150,151,152,148,149,29,29,29,153,153,43,153,29,29,153,150,151,152,148,149,29,113,29,153,150,151,152,148,149,29,153,150,151,152,148,149,29,153,150,151,152,148,149,29,153,150,151,152,148,149,29,150,151,152,148,149,149,152,29,29,29,149,150,151,152,148,149,29,29,153,150,151,152,148,149,29,153,150,151,152,148,149,29,153,150,151,152,148,149,29,153,153,153,150,151,152,148,149,29,174,175,176,177,175,174,0,28,0,0,28,0,0,155,155,28,28,156,155,156,28,155,156,28,28,156,156,28,44,155,156,28,155,156,28,28,155,28,155,28,155,155,44,44,155,156,0,155,156,28,155,156,28,28,155,28,155,156,28,155,155,155,155,155,156,155,28,28,155,156,28,28,28,156,156,155,156,155,28,28,155,156,28,155,156,28,155,156,28,155,156,28,155,156,28,155,44,44,44,155,178,155,28,28,28,44,44,155,28,28,155,155,156,28,155,156,28,155,156,28,156,156,155,156,28,179,180],"f":[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,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]]]],[-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]]]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[18,[-2]]],[],[]],0,[[],19],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[7,21],[10,21],[-1,[[22,[7]]],23],[-1,[[22,[10]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[11,[[22,[-1,10]]],[]],[12,[[22,[-1,10]]],[]],[[[13,[-1]]],[[22,[-2,10]]],[[15,[14]]],[]],[[7,24],25],[[7,24],25],[[11,24],25],[[12,24],25],[[[13,[-1]],24],25,26],[[10,24],25],[[10,24],25],[27,7],[28,7],[-1,-1,[]],[[[2,[14,16]]],7],[29,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[30,[[22,[19,31]]]],[30,[[22,[19,31]]]],[[],[[9,[32]]]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[-1,[],[]],0,[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],0,[-1,7,34],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],0,0,0,0,0,[[19,-2,[40,[-1,-3]]],[[22,[2,7]]],41,[[42,[-1]],[43,[-1]],44,[45,[-1]],46,35,36],[[47,[-1]]]],[[7,-1],22,48],[[10,-1],22,48],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2,-1]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[19,30],[[22,[2,31]]]],[[19,30],[[22,[2,31]]]],[-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,[[-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,[]],[[-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,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,5,[]],[-1,5,[]],[6,6],[6,6],[[[50,[-1]]],[[9,[8]]],41],[27,[[9,[8]]]],[[[51,[-1]]],[[52,[-1]]],41],[[[53,[-1]]],[[52,[-1]]],41],[-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,[],[]],[[[54,[-1]]],27,[[15,[14]]]],[[[55,[-1]]],27,[[15,[14]]]],[[[56,[-1]]],27,[[15,[14]]]],[[[57,[-1,-2]]],27,[[15,[58]]],[[15,[58]]]],[[[59,[-1,-2]]],27,[[15,[14]]],[[15,[16]]]],[[-1,18],9,[]],[[-1,18],9,[]],[[[50,[-1]]],[[9,[5]]],41],[27,[[9,[5]]]],[[[60,[-1]]],[[60,[-1]]],61],[[[51,[-1]]],[[51,[-1]]],[17,41]],[[[50,[-1]]],[[50,[-1]]],[17,41]],[[[62,[-1]]],[[62,[-1]]],[17,41]],[[[53,[-1]]],[[53,[-1]]],[17,41]],[63,63],[[[54,[-1]]],[[54,[-1]]],17],[[[55,[-1]]],[[55,[-1]]],17],[[[56,[-1]]],[[56,[-1]]],17],[[[57,[-1,-2]]],[[57,[-1,-2]]],17,17],[[[59,[-1,-2]]],[[59,[-1,-2]]],17,17],[27,27],[[-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,[],[]],[[[60,[-1]],[60,[-1]]],64,61],[[-1,-2],64,[],[]],[[[65,[-1]],-3],[[22,[-1,-2]]],[],[5,66],[[67,[-2]]]],[[],68],[68,[[22,[[69,[-1,27]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[[[50,[-1]]],21,41],[27,21],[-1,[[22,[[51,[-2]]]]],23,41],[-1,[[22,[[62,[-2]]]]],23,41],[-1,[[22,[[53,[-2]]]]],23,41],[-1,[[22,[27]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[-1,[[37,[72]]],[]],[-1,[[37,[72]]],[]],[[[62,[-1]]],[[0,[72]]],41],[[[60,[-1]],[60,[-1]]],73,61],[[[51,[-1]],[51,[-1]]],73,[74,41]],[[[62,[-1]],[62,[-1]]],73,[74,41]],[[[53,[-1]],[53,[-1]]],73,[74,41]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],0,[[[54,[-1]]],[[22,[-2,27]]],[[15,[14]]],[]],[[[55,[-1]]],[[22,[-2,27]]],[[15,[14]]],[]],[[[56,[-1]]],[[22,[-2,27]]],[[15,[14]]],[]],[[[57,[-1,-2]]],[[22,[-3,27]]],[[15,[58]]],[[15,[58]]],[]],[[[59,[-1,-2]]],[[22,[-3,27]]],[[15,[14]]],[[15,[16]]],[]],[[[60,[-1]],24],25,61],[[[60,[-1]],24],25,61],[[[51,[-1]],24],25,[26,41]],[[[50,[-1]],24],25,41],[[[50,[-1]],24],25,[26,41]],[[[62,[-1]],24],25,[26,41]],[[[53,[-1]],24],25,[26,41]],[[63,24],25],[[[54,[-1]],24],25,26],[[[55,[-1]],24],25,26],[[[56,[-1]],24],25,26],[[[57,[-1,-2]],24],25,26,26],[[[59,[-1,-2]],24],25,26,26],[[27,24],25],[[27,24],25],[-1,-1,[]],[20,[[60,[-1]]],61],[-1,-1,[]],[[[18,[-1]]],[[60,[-1]]],61],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],27],[-1,-1,[]],[75,27],[30,[[22,[68,31]]]],[30,[[22,[68,31]]]],[[],[[51,[-1]]],41],[[],[[62,[-1]]],41],[[-1,-3],[[77,[[37,[76]]]]],[],[],[[15,[[78,[-2]]]],35,36]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[-1,[80,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],58,[81,82],83],[[-1,-3],[[77,[[37,[76]]]]],[],[],[[15,[[84,[-2]]]],35,36]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[],[[9,[32]]]],[[[60,[-1]],-2],2,61,85],[[[51,[-1]]],[[86,[-1]]],41],[[[62,[-1]]],[[52,[-1]]],41],[[[53,[-1]]],[[80,[-1]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[[62,[-1]]],[[87,[-1]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[[51,[-1]]],58,41],[[[62,[-1]]],58,41],[[[53,[-1]]],58,41],0,[-1,[],[]],[-1,[],[]],0,[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[-1,[62,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[51,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,27,34],[-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,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[63,27],[[[54,[-1]]],27,[[15,[14]]]],[[[55,[-1]]],27,[[15,[14]]]],[[[56,[-1]]],27,[[15,[14]]]],[[[57,[-1,-2]]],27,[[15,[58]]],[[15,[58]]]],[[[59,[-1,-2]]],27,[[15,[14]]],[[15,[16]]]],[[[65,[-1]]],[],35],[-1,73,[]],[-1,73,[]],[[[62,[-1]]],73,41],[-1,[],[]],[[[51,[-1]]],[[88,[-1]]],41],0,[-1,20,[]],[[[62,[-1]]],20,41],[[[65,[-1]],-2],[[65,[-3]]],[],[35,89],[]],0,[[[62,[-1]]],[[90,[-1]]],41],[[[88,[-1]],[91,[-1]]],[[22,[[51,[-1]],[50,[-1]]]]],41],[[[88,[-1]],[91,[-1]],[92,[-1]]],[[22,[[62,[-1]],[50,[-1]]]]],41],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],[[9,[2]]],[]],[[-1,20],[[9,[2]]],[]],[[[60,[-1]],[60,[-1]]],[[9,[64]]],61],[[[62,[-1]]],[[92,[-1]]],41],[-1,9,[]],[-1,9,[]],[[[51,[-1]]],[[93,[-1]]],41],[[[51,[-1]]],[[91,[-1]]],41],0,[[[65,[-1]]],-1,35],0,0,0,[[[51,[-1]],-2],22,41,48],[[[62,[-1]],-2],22,41,48],[[[53,[-1]],-2],22,41,48],[[27,-1],22,48],[[[62,[-1]]],58,41],[[[50,[-1]]],[[9,[5]]],41],[27,[[9,[5]]]],[27,16],0,[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[-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,9,[]],[-1,9,[]],[[[62,[-1]],[94,[-1]]],[[9,[[53,[-1]]]]],41],[[[53,[-1]]],[[95,[-1]]],41],[[-1,18],9,[]],[[-1,18],9,[]],[[[62,[-1]],[18,[[95,[-1]]]]],[[9,[[94,[-1]]]]],41],[[-1,18],[[9,[2]]],[]],[[-1,18],[[9,[2]]],[]],[-1,[[9,[2]]],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[[[65,[-1]]],[[22,[-1,[65,[-1]]]]],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[68,30],[[22,[2,31]]]],[[68,30],[[22,[2,31]]]],[-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,[],[]],[[[65,[-1]],-2],[[22,[-1,-3]]],[],89,[5,66]],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,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[96,[-2,-3]]],[],[],97],[[[98,[-1,-2]]],-2,[],[]],[-1,[[96,[-2,-3]]],[],[],97],[[[98,[-1,-2]]],-2,[],[]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[44,35,36],[35,36]],[[[98,[-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[100,[[77,[[37,[76]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[98,[-1,-2]]],[[98,[-1,-2]]],17,17],[[[99,[-1,-2,-3]]],[[99,[-1,-2,-3]]],41,[],[]],[100,100],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[77,[[37,[76]]]]],[]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[46,35],35],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[46,35,36],[35,36]],[101,[[22,[[99,[-1,102,2]],103]]],41],[[[98,[-2,-3]],[93,[-1]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[93,[-1]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[104,[[106,[[105,[-1]]]]],41],[104,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[108,[[106,[[105,[-1]]]]],41],[108,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[[],100],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,2],[20,2],[20,2],[-1,-2,[],[[110,[109]]]],[-1,-2,[],[[110,[109]]]],[[[98,[-1,-2]],24],25,26,26],[[[99,[-1,-2,-3]],24],25,41,26,26],[[100,24],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[15,[[78,[-1]]]],35,36]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[15,[[78,[-1]]]],35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[79,[20]],35]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[79,[20]],35]],[[[98,[-2,-3]],[80,[-1]]],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[80,[-1]]],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[15,[[84,[-1]]]],35,36]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[15,[[84,[-1]]]],35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[79,[20]],35]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[79,[20]],35]],[[[98,[-2,-3]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[],20],[[],20],[[],20],[[[98,[-1,-2]]],-1,[],[]],[[[98,[-1,-2]]],-1,[],[]],[[[98,[-2,-3]],[62,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[62,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[98,[-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[113,[-1]],35,36],[35,36]],[[[98,[-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[113,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[98,[-1,-2]]],114,[44,35,36],[35,36]],[[[99,[-1,-2,-3]]],114,41,[[43,[-1]],35,36],[35,36]],[100,114],[[-1,-2],[[98,[-1,-2]]],[],[]],[[-2,-3],[[106,[[99,[-1,-2,-3]]]]],41,[[43,[-1]],[113,[-1]],[111,[-1]],46],[35,36]],[104,[[106,[[105,[-1]]]]],41],[104,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[108,[[106,[[105,[-1]]]]],41],[108,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[-1,[[37,[115]]],[]],[-1,[[37,[115]]],[]],[-1,[[37,[115]]],[]],[-1,[[77,[[37,[76]]]]],[]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[46,35],35],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[46,35,36],[35,36]],[[[105,[-1]]],[[106,[2]]],41],[[[99,[-1,[107,[-1]],2]]],[[106,[2]]],41],0,0,[[[99,[-1,-2,-3]]],[[0,[-1,-2]]],41,[],[]],[[[99,[-1,-2,-3]]],[[0,[-1,-2]]],41,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[99,[-1,102,2]]],[[117,[116]]],41],[-1,[[22,[[96,[-2,-3]],[118,[-2]]]]],[],[],97],[-1,[[22,[[96,[-2,-3]],[118,[-2]]]]],[],[],97],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[[[120,[-1]]],[[77,[[37,[76]]]]],41],[101,[[22,[[120,[-1]],103]]],41],0,0,[[[120,[-1]]],[[117,[116]]],41],0,0,0,0,[[-1,[78,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[-1,[80,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[84,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],0,0,[-1,4,[]],[-1,4,[]],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[-1,-2,[],[]],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[93,[-1]]],[[77,[[37,[76]]]]],41],[104,[[22,[[107,[-1]],121]]],41],[108,[[22,[[107,[-1]],121]]],41],[20,-1,[]],[20,-1,[]],[20,2],[[[107,[-1]],24],25,41],[-1,-1,[]],[[[107,[-1]],[78,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],-2],[[77,[[37,[76]]]]],41,[[79,[20]],35]],[[[107,[-1]],[80,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[84,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],-2],[[77,[[37,[76]]]]],41,[[79,[20]],35]],[[[107,[-1]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41],[[],20],[[[107,[-1]],[62,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[51,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[51,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[104,[[22,[[107,[-1]],121]]],41],[108,[[22,[[107,[-1]],121]]],41],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]]],[[22,[2,121]]],41],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[122,[[9,[123]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[103,5],[103,5],[103,124],[102,[[77,[[37,[76]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[103,125],[122,58],[-1,[[77,[[37,[76]]]]],[]],[116,[[77,[[37,[76]]]]]],[102,[[77,[[37,[76]]]]]],[122,122],[101,101],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[122,122],64],[102,[[77,[[37,[76]]]]]],[[-1,-2],64,[],[]],[101,[[22,[[120,[-1]],103]]],41],[101,[[22,[102,103]]]],[[103,-1],103,[34,35,36]],[[102,[93,[-1]]],[[77,[[37,[76]]]]],41],[[101,21],101],[[],101],[[],[[126,[122]]]],[103],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[103],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[103,[[22,[-1,103]]],[34,26,35,36]],[103,[[9,[-1]]],[34,26,35,36]],[103,[[9,[-1]]],[34,26,35,36]],[103,2],[20,2],[20,2],[20,2],[20,2],[20,2],[102,2],[[122,122],73],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[116,-1,-2],[[117,[2]]],[82,127],128],[[116,-1],[[117,[2]]],128],[[103,24],[[22,[2,129]]]],[[103,24],[[22,[2,129]]]],[[122,24],[[22,[2,129]]]],[[122,24],[[22,[2,129]]]],[[101,24],25],[[102,24],25],[-1,-1,[]],[130,-1,[]],[-1,103,[5,35,36]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[131,101],[-1,-1,[]],[21,[[22,[101]]]],[[102,[78,[-1]]],[[77,[[37,[76]]]]],41],[[102,-1],[[77,[[37,[76]]]]],[[79,[20]],35]],[[102,[80,[-1]]],[[77,[[37,[76]]]]],41],[[102,[84,[-1]]],[[77,[[37,[76]]]]],41],[[102,-1],[[77,[[37,[76]]]]],[[79,[20]],35]],[[102,[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[101,-1],101,[[15,[14]]]],0,0,[[],20],[[],20],[[],20],[[],20],[[],20],[[102,[62,[-1]]],[[77,[[37,[76]]]]],41],[[102,[51,[-1]]],[[77,[[37,[76]]]]],41],[[102,[51,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[103,73],[[101,-1],101,128],[-1,103,[34,26,35,36]],[122,21],[-1,103,[5,35,36]],[101,101],[[122,122],[[9,[64]]]],[[101,21],101],[[101,132],101],0,[122,133],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[101,101],[102,[[77,[[37,[76]]]]]],[103,5],[[101,-1],101,[[15,[14]]]],[122,[[9,[21]]]],[101,101],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[102,[[117,[116]]]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[21,21],[[22,[122,134]]]],[[101,21],101],[122,135],[-1,-2,[],[]],[-1,-2,[],[]],[-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,[]],[[136,20],2],[[137,138],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,[]],[139,[[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,[],[]],[139,[[9,[5]]]],[114,114],[136,136],[140,140],[137,137],[141,141],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[114,14,[9,[14]]],[[37,[142]]]],[[114,14,[9,[14]]],[[37,[143]]]],[[114,14,[9,[14]]],[[37,[144]]]],[[114,14],[[37,[145]]]],[[],114],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[139,21],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[114,[[22,[14]]]],[[139,24],25],[[139,24],25],[[114,24],25],[[136,24],25],[[140,24],25],[[137,24],25],[[141,24],25],[-1,-1,[]],[146,139],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[136,20],[140,20],[141,14],[[114,21],[[22,[136,139]]]],[[114,21],[[22,[140,139]]]],[[114,21],[[22,[137,139]]]],[[114,21],[[22,[141,139]]]],[[114,-1],[[22,[114,139]]],128],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[137,138],[137,20],[[140,20],2],[[141,14],2],[139,[[9,[5]]]],[[114,14],[[37,[115]]]],[137,138],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[140,147],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,[[-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,[]],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,5,[]],[6,6],[6,6],[29,[[9,[8]]]],[-1,[[77,[[37,[76]]]]],[]],[-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,[],[]],[148,29],[[[149,[-1,-2]]],29,[[15,[14]]],[[15,[16]]]],[29,[[9,[5]]]],[150,150],[151,151],[[[152,[-1]]],[[152,[-1]]],17],[148,148],[[[149,[-1,-2]]],[[149,[-1,-2]]],17,17],[29,29],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,[93,[-2]]],[[77,[[37,[76]]]]],[],[]],[[],153],[153,[[22,[[69,[-1,29]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[29,21],[-1,[[22,[29]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],0,[148,[[22,[-1,29]]],[]],[[[149,[-1,-2]]],[[22,[-3,29]]],[[15,[14]]],[[15,[16]]],[]],[[150,24],25],[[151,24],25],[[[152,[-1]],24],25,26],[[148,24],25],[[[149,[-1,-2]],24],25,26,26],[[29,24],25],[[29,24],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],29],[75,29],[-1,-1,[]],[30,[[22,[153,31]]]],[30,[[22,[153,31]]]],[[-1,[93,[-2]],[9,[20]]],[[77,[[37,[76]]]]],[],[]],[[],[[9,[32]]]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[-1,[51,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,29,34],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[150,29],[151,29],[[[152,[-1]]],29,[[15,[154]]]],[148,29],[[[149,[-1,-2]]],29,[[15,[14]]],[[15,[16]]]],0,0,[[29,-1],22,48],[29,[[9,[5]]]],[29,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[153,30],[[22,[2,31]]]],[[153,30],[[22,[2,31]]]],[-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,[[-1,1],2,[]],[[-1,3],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],[28,[[9,[8]]]],[-1,[[77,[[37,[76]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,[[9,[5]]]],[155,155],[28,28],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[155,155],64],[[-1,-2],64,[],[]],[-1,[[117,[114]]],[]],[-1,[[117,[114]]],[]],[[],155],[[],156],[156,[[22,[[69,[-1,28]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[28,21],[-1,[[22,[155]]],23],[-1,[[22,[28]]],23],[20,2],[20,2],[20,2],[[155,155],73],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],0,[[155,24],25],[[28,24],25],[[28,24],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[75,28],[14,28],[30,[[22,[156,31]]]],[30,[[22,[156,31]]]],[[-1,-2],58,[81,82],83],[[],[[9,[32]]]],[[155,-1],2,85],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],0,[-1,[[77,[[37,[76]]]]],36],[-1,[[77,[[37,[76]]]]],36],[-1,114,[]],[[155,155],[[9,[64]]]],[-1,[[37,[115]]],[]],[[155,-1],22,48],[[28,-1],22,48],[28,[[9,[5]]]],[28,16],[-1,[[77,[[37,[76]]]]],36],[-1,[[77,[[37,[76]]]]],36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[156,30],[[22,[2,31]]]],[[156,30],[[22,[2,31]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0],"c":[],"p":[[3,"Private",1656],[15,"tuple"],[3,"Private",1656],[8,"Any",1657],[8,"Error",1658],[3,"Command",1659],[4,"Error",0],[3,"Backtrace",1660],[4,"Option",1661],[4,"QueryError",0],[3,"NotFoundSnafu",0],[3,"MissingSnafu",0],[3,"Snafu",0],[3,"String",1662],[8,"Into",1663],[4,"StatusCode",1664],[8,"Clone",1665],[3,"Commitment",1666],[3,"Options",0],[15,"usize"],[15,"str"],[4,"Result",1667],[8,"Deserializer",1668],[3,"Formatter",1669],[6,"Result",1669],[8,"Debug",1669],[4,"Error",222],[4,"Error",1535],[4,"Error",1316],[3,"ArgMatches",1670],[6,"Error",1671],[3,"Id",1672],[3,"IndentedSection",1673],[8,"Display",1669],[8,"Send",1674],[8,"Sync",1674],[3,"Box",1675],[3,"Arc",1676],[3,"Rc",1677],[3,"SystemContextHandle",1678],[8,"NodeType",1679],[8,"AvailabilityDataSource",222],[8,"NodeDataSource",1316],[8,"StatusDataSource",1535],[8,"UpdateDataSource",745],[8,"VersionedDataSource",745],[8,"NodeImplementation",1679],[8,"Serializer",1680],[3,"TypeId",1657],[3,"InconsistentLeafError",222],[3,"LeafQueryData",222],[6,"BlockHash",222],[3,"TransactionQueryData",222],[3,"FetchLeafSnafu",222],[3,"FetchBlockSnafu",222],[3,"FetchTransactionSnafu",222],[3,"InvalidTransactionIndexSnafu",222],[15,"u64"],[3,"CustomSnafu",222],[4,"ResourceId",222],[8,"Committable",1666],[3,"BlockQueryData",222],[3,"RequestSnafu",222],[4,"Ordering",1681],[4,"Fetch",222],[8,"ErrorCompat",1682],[8,"IntoError",1682],[3,"Options",222],[3,"Api",1683],[4,"ApiError",1683],[8,"ReadState",1684],[8,"Iterator",1685],[15,"bool"],[8,"PartialEq",1681],[4,"RequestError",1686],[8,"Future",1687],[3,"Pin",1688],[6,"BlockId",222],[8,"RangeBounds",1689],[6,"TransactionHash",222],[8,"Hash",1690],[8,"Sized",1674],[8,"BuildHasher",1690],[6,"LeafId",222],[8,"Hasher",1690],[6,"LeafHash",222],[6,"Header",0],[3,"Leaf",1691],[8,"FnOnce",1692],[6,"Metadata",0],[6,"QuorumCertificate",1693],[6,"Payload",0],[6,"SignatureKey",0],[6,"TransactionIndex",222],[6,"Transaction",0],[3,"BitSlice",1694],[8,"BitOrder",1695],[3,"ExtensibleDataSource",745],[3,"FetchingDataSource",745],[3,"MetricsDataSource",745],[3,"Config",949],[3,"SqlStorage",949],[3,"Error",949],[3,"Path",1696],[6,"FileSystemDataSource",745],[6,"Result",1697],[3,"FileSystemStorage",912],[3,"AtomicStoreLoader",1698],[15,"char"],[8,"FromIterator",1699],[8,"AvailabilityStorage",902],[8,"UpdateAvailabilityData",222],[8,"UpdateNodeData",1316],[3,"PrometheusMetrics",1137],[8,"Metrics",1700],[3,"Transaction",949],[6,"QueryResult",0],[4,"BitSpanError",1701],[3,"Event",1702],[6,"SqlDataSource",891],[4,"PersistenceError",1703],[3,"Migration",949],[3,"OffsetDateTime",1704],[3,"Backtrace",1705],[3,"Chain",1697],[3,"Vec",1706],[8,"ToStatement",1707],[8,"IntoIterator",1699],[3,"Error",1669],[15,"never"],[3,"Config",1708],[15,"u16"],[4,"Type",1709],[3,"Error",1710],[15,"u32"],[3,"Counter",1137],[3,"Histogram",1137],[15,"f64"],[4,"MetricsError",1137],[3,"Gauge",1137],[3,"Label",1137],[8,"Counter",1700],[8,"Gauge",1700],[8,"Histogram",1700],[8,"Label",1700],[4,"Error",1711],[15,"i64"],[3,"InvalidSignatureKeySnafu",1316],[3,"CustomSnafu",1316],[3,"RequestSnafu",1316],[3,"QuerySnafu",1316],[3,"QueryProposalsSnafu",1316],[3,"Options",1316],[3,"EncodedPublicKey",1712],[3,"MempoolQueryData",1535],[3,"Options",1535],[8,"Resolvable",0],[13,"Custom",216],[13,"Availability",216],[13,"Node",216],[13,"Status",216],[13,"Error",221],[8,"QueryablePayload",222],[13,"InvalidTransactionIndex",737],[13,"Custom",737],[13,"FetchLeaf",737],[13,"FetchBlock",737],[13,"FetchTransaction",737],[13,"Request",737],[8,"Query",949],[13,"NoSuchMetric",1312],[13,"NoSuchSubgroup",1312],[13,"Prometheus",1312],[13,"Custom",1529],[13,"QueryProposals",1529],[13,"Request",1529],[13,"Query",1529],[8,"UpdateStatusData",1535],[13,"Internal",1654],[13,"Request",1654]],"b":[[108,"impl-Display-for-Error"],[109,"impl-Debug-for-Error"],[113,"impl-Debug-for-QueryError"],[114,"impl-Display-for-QueryError"],[115,"impl-From%3CError%3E-for-Error"],[116,"impl-From%3CError%3E-for-Error"],[118,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[119,"impl-From%3CError%3E-for-Error"],[471,"impl-Display-for-ResourceId%3CT%3E"],[472,"impl-Debug-for-ResourceId%3CT%3E"],[474,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[475,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[484,"impl-Display-for-Error"],[485,"impl-Debug-for-Error"],[487,"impl-From%3Cusize%3E-for-ResourceId%3CT%3E"],[489,"impl-From%3CCommitment%3CT%3E%3E-for-ResourceId%3CT%3E"],[501,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[503,"impl-From%3CRequestError%3E-for-Error"],[769,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[770,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[771,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[772,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[833,"impl-UpdateNodeData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[834,"impl-UpdateAvailabilityData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[835,"impl-UpdateNodeData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[836,"impl-UpdateAvailabilityData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[935,"impl-UpdateAvailabilityData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[936,"impl-UpdateNodeData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[970,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[971,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1032,"impl-Debug-for-Error"],[1033,"impl-Display-for-Error"],[1034,"impl-Display-for-Migration"],[1035,"impl-Debug-for-Migration"],[1064,"impl-UpdateNodeData%3CTypes%3E-for-SqlStorage"],[1065,"impl-UpdateAvailabilityData%3CTypes%3E-for-SqlStorage"],[1220,"impl-Debug-for-MetricsError"],[1221,"impl-Display-for-MetricsError"],[1427,"impl-Display-for-Error"],[1428,"impl-Debug-for-Error"],[1435,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1436,"impl-From%3CRequestError%3E-for-Error"],[1595,"impl-Debug-for-Error"],[1596,"impl-Display-for-Error"],[1600,"impl-From%3CRequestError%3E-for-Error"],[1601,"impl-From%3CString%3E-for-Error"]]}\ +"hotshot_query_service":{"doc":"The HotShot Query Service is a minimal, generic query …","t":"NNNENGGNDNNDNDGEGIGDNGLLLLLLLLLLLLLLLLLLLLLLLLLLAMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOLLLLLLOLLLLLLLLLLLLLLLLLLLLLLLLLLLLMAAMMFLLLLALLMLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLMMMMMMIGGDQNDEQENDNDNDNNNQDNDQGGDQNNNDNINNDEGGGGQDILLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKLKKLLLLLLLLLLLLMLLMLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLMKLLMLLLLLLLLLLLLLLLMLMMMLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMQDDGDCIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLAALLLLLLLLLLLLLLLLLKLLLLLCDDCGCLLOCLICCAKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDENNNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMNDEQNDCIDNNDDNDILLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLFLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMENDDNIILLLLMLLLLLLLLLLKLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLKLKLLLLLLLLLMLLLLLLLLLLLLLLMM","n":["Availability","Custom","Err","Error","Error","Header","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","__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_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","borrow","borrow","borrow","borrow","borrow","borrow","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_into","clone_into","clone_into","clone_into","clone_into","commitment","data_source","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","drop","drop","drop","drop","drop","drop","fail","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","group_id","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","instantiate_data_source_tests","internal","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","into_error","into_error","into_error","message","metrics","node","node","port","run_standalone_service","serialize","serialize","source","source","status","status","status","status","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","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","try_resolve","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","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Number","Options","Pending","QueryablePayload","Ready","Request","RequestSnafu","ResourceId","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","UpdateAvailabilityData","__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_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","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","build","build","build","build","build","by_hash","by_hash","cause","cause","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","cmp","compare","context","default","define_api","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","description","description","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","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_arg_matches","from_arg_matches_mut","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_leaf","get_leaf_range","group_id","hash","hash","hash","hash","header","header","header","header","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","insert_block","insert_leaf","internal","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_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_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","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","partial_cmp","payload","proof","proof","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","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","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_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","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","height","index","message","resource","resource","resource","source","status","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__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","as_bits","as_mut","as_mut_bits","as_ref","block_height","block_height","block_height","block_height","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","commit","commit","commit","connect","count_proposals","count_proposals","create","create","create_with_store","create_with_store","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","encode_hex","encode_hex_upper","fmt","fmt","fmt","from","from","from","get_block","get_block","get_block_range","get_block_range","get_block_with_transaction","get_block_with_transaction","get_leaf","get_leaf","get_leaf_range","get_leaf_range","get_proposals","get_proposals","init","init","init","inner","inner_mut","insert_block","insert_block","insert_leaf","insert_leaf","insert_leaf","insert_leaf","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","metrics","metrics","metrics","new","new","open","open","open_with_store","open_with_store","populate_metrics","populate_metrics","populate_metrics","revert","revert","revert","skip_version","skip_version","sql","storage","storage","storage_mut","to_owned","to_owned","to_owned","transaction","try_as_bits","try_as_mut_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","update","vzip","vzip","vzip","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","include_migrations","postgres","transaction","AvailabilityStorage","FileSystemStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_proposals","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","get_proposals","init","insert_block","insert_leaf","insert_leaf","into","into_any","into_any_arc","into_any_rc","open","open_with_store","revert","skip_version","try_from","try_into","type_id","vzip","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","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_proposals","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_leaf","get_leaf_range","get_proposals","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","insert_leaf","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","migrations","msg","name","new","no_migrations","partial_cmp","password","port","postgres","prefix","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","schema","sql","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","user","version","vzip","vzip","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","Custom","CustomSnafu","Error","Error","InvalidSignatureKey","InvalidSignatureKeySnafu","LeafQueryData","NodeDataSource","Options","Query","QueryProposals","QueryProposalsSnafu","QuerySnafu","Request","RequestSnafu","UpdateNodeData","__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_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_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_proposals","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","drop","drop","drop","drop","drop","drop","drop","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_proposals","group_id","header","in_current_span","init","init","init","init","init","init","init","insert_leaf","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","into_error","into_error","message","proposer","serialize","source","status","status","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_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","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","proposer","source","source","source","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","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"],"q":[[0,"hotshot_query_service"],[216,"hotshot_query_service::Error"],[221,"hotshot_query_service::QueryError"],[222,"hotshot_query_service::availability"],[737,"hotshot_query_service::availability::Error"],[745,"hotshot_query_service::data_source"],[891,"hotshot_query_service::data_source::sql"],[902,"hotshot_query_service::data_source::storage"],[912,"hotshot_query_service::data_source::storage::fs"],[949,"hotshot_query_service::data_source::storage::sql"],[1140,"hotshot_query_service::metrics"],[1315,"hotshot_query_service::metrics::MetricsError"],[1319,"hotshot_query_service::node"],[1532,"hotshot_query_service::node::Error"],[1538,"hotshot_query_service::status"],[1657,"hotshot_query_service::status::Error"],[1659,"dyn_clone::sealed"],[1660,"dyn_clone::sealed"],[1661,"core::error"],[1662,"clap_builder::builder::command"],[1663,"snafu::backtrace_shim"],[1664,"core::option"],[1665,"alloc::string"],[1666,"core::convert"],[1667,"tide_disco::status"],[1668,"core::clone"],[1669,"commit"],[1670,"core::result"],[1671,"serde::de"],[1672,"core::fmt"],[1673,"core::fmt"],[1674,"clap_builder"],[1675,"clap_builder::util::id"],[1676,"color_eyre::section"],[1677,"core::fmt"],[1678,"core::marker"],[1679,"alloc::sync"],[1680,"alloc::rc"],[1681,"hotshot::types::handle"],[1682,"hotshot_types::traits::node_implementation"],[1683,"hotshot_types::traits::node_implementation"],[1684,"core::any"],[1685,"snafu"],[1686,"snafu"],[1687,"tide_disco::api"],[1688,"core::iter::traits::iterator"],[1689,"core::cmp"],[1690,"core::future::future"],[1691,"core::pin"],[1692,"core::ops::range"],[1693,"core::hash"],[1694,"core::marker"],[1695,"core::ops::function"],[1696,"hotshot_types::simple_certificate"],[1697,"bitvec::slice"],[1698,"bitvec::order"],[1699,"std::path"],[1700,"anyhow"],[1701,"atomic_store::atomic_store"],[1702,"core::iter::traits::collect"],[1703,"hotshot_types::traits::metrics"],[1704,"bitvec::ptr::span"],[1705,"hotshot_types::event"],[1706,"atomic_store::error"],[1707,"time::offset_date_time"],[1708,"std::backtrace"],[1709,"anyhow"],[1710,"tokio_postgres::to_statement"],[1711,"core::iter::traits::collect"],[1712,"refinery_core::runner"],[1713,"refinery_core::error"],[1714,"hotshot_types::traits::metrics"],[1715,"hotshot_types::traits::signature_key"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","","The requested resource exists but is not currently …","SNAFU context selector for theQueryError::Missing
variant","","The requested resource does not exist or is not known to …","SNAFU context selector for theQueryError::NotFound
variant","Contains the success value","","","","","A reference to aT
which can be resolved into a wholeT
.","","SNAFU context selector for theQueryError::Error
variant","","Item within aPayload
.","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","","","","","","","","","","","","","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 aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","A node’s view of a HotShot chain","","","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 …","","","","","","","","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","SNAFU context selector for theError::Custom
variant","","","An in-progress request to fetch some data.","","SNAFU context selector for theError::FetchBlock
variant","","SNAFU context selector for theError::FetchLeaf
variant","","SNAFU context selector for theError::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 theError::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 thisFetch
to aResult
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 aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","","","","","","","","","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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::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 aLeaf
.","Collect information about a block.","Get the index of thenth
transaction.","Get the index of thenth
transaction.","Get thenth
transaction.","Get thenth
transaction.","Get thenth
transaction, along with an inclusion proof.","Get thenth
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 thisFetch
to aResult
with the provided error …","","","","","","","","","","Wrapper to add extensibility to an existing data source.","The most basic kind of 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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","Connect to a remote database.","","","Create a new FileSystemDataSource with storage atpath
.","Create a new FileSystemDataSource with storage atpath
.","Create a new FileSystemDataSource using a persistent …","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","Create a data source with local storage and a remote data …","Open an existing FileSystemDataSource from storage atpath
.","Open an existing FileSystemDataSource from storage atpath
.","Open an existing FileSystemDataSource using a persistent …","Open an existing FileSystemDataSource using a persistent …","","","","Erase all oustanding modifications to the data.","","","Advance the version of the persistent store without …","Advance the version of the persistent store without …","","Persistent storage for data sources.","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","Update query state based on a new consensus event.","","","","","","","TheError
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 atpath
.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","CallsU::from(self)
.","","","","Open an existing FileSystemStorage from storage atpath
.","Open an existing FileSystemStorage using a persistent …","","Advance the version of the persistent store without …","","","","","Postgres client config.","TheError
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.","","","","","","","","","","","","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 …","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","Returns true ifE
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","","","","","","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.","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for theError::Custom
variant","","","","SNAFU context selector for theError::InvalidSignatureKey
…","","","","","","SNAFU context selector for theError::QueryProposals
…","SNAFU context selector for theError::Query
variant","","SNAFU context selector for theError::Request
variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return aResult
with the …","Consume the selector and return aResult
with the …","","","","","","","","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.","","","","","","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","","","CallsU::from(self)
.","CallsU::from(self)
.","CallsU::from(self)
.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[7,7,117,0,10,0,0,10,0,7,10,0,117,0,0,0,0,0,0,0,7,0,7,7,11,11,12,12,13,13,10,10,7,11,12,13,10,19,7,11,12,13,10,19,7,10,19,19,0,19,7,10,7,11,12,13,10,19,7,11,12,13,10,19,11,12,13,7,7,10,7,11,12,13,10,7,11,12,13,10,157,0,19,7,11,12,13,10,19,7,11,12,13,10,19,7,10,7,10,7,11,12,13,10,19,11,12,13,7,7,11,12,13,10,10,7,7,7,7,7,11,12,13,10,19,19,19,19,7,10,7,10,0,7,11,12,13,10,19,0,7,7,11,12,13,10,19,7,11,12,13,10,19,7,11,12,13,10,19,7,11,12,13,10,19,11,12,13,13,0,0,19,19,0,7,10,7,10,0,7,10,19,7,11,12,13,10,7,10,7,11,12,13,10,19,7,11,12,13,10,19,157,7,11,12,13,10,19,19,19,7,11,12,13,10,19,158,159,160,161,158,162,0,0,0,0,42,29,0,0,112,0,29,0,29,0,29,0,78,84,60,163,0,29,0,163,0,0,0,42,78,84,60,0,65,0,65,29,0,0,0,0,0,0,163,0,0,60,60,51,51,50,50,62,62,53,53,63,63,54,54,55,55,56,56,57,57,59,59,29,29,68,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,50,29,68,68,50,29,51,53,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,54,55,56,57,59,163,163,50,29,60,51,50,62,53,63,54,55,56,57,59,29,60,51,50,62,53,63,54,55,56,57,59,29,60,60,65,68,0,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,50,29,51,62,53,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,163,163,62,60,51,62,53,60,60,60,60,51,51,51,51,62,62,62,62,53,53,53,53,68,54,55,56,57,59,60,60,51,50,50,62,53,63,54,55,56,57,59,29,29,65,60,60,60,51,50,62,53,68,63,54,55,56,57,59,29,29,29,68,68,51,62,42,42,42,60,42,42,68,60,51,62,53,60,50,62,29,51,62,53,57,50,29,57,65,60,51,50,62,53,68,63,54,55,56,57,59,29,112,112,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,63,54,55,56,57,59,65,163,163,62,163,51,50,163,62,65,59,62,51,62,163,163,163,163,163,163,60,62,163,163,51,51,50,65,54,55,56,51,62,53,29,62,50,29,29,59,42,42,42,42,60,51,50,62,53,63,54,55,56,57,59,29,60,50,29,163,163,62,53,163,163,62,163,163,163,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,65,60,51,50,62,53,68,63,54,55,56,57,59,29,68,68,65,60,51,50,62,53,68,63,54,55,56,57,59,29,65,164,164,165,166,167,168,169,165,46,0,0,0,0,0,0,0,98,98,99,99,100,100,98,99,100,98,99,100,98,98,98,98,98,98,99,99,100,98,99,100,98,99,100,98,99,100,98,99,100,46,98,99,99,98,99,105,99,105,99,100,98,99,100,98,99,100,98,99,100,98,98,98,99,100,98,99,100,98,99,98,99,98,99,98,99,98,99,98,99,98,99,100,98,98,98,99,98,98,99,99,98,99,100,98,99,100,98,99,100,98,99,100,98,99,100,98,99,105,99,105,99,98,99,100,46,98,99,105,99,0,0,99,99,98,99,100,99,98,98,98,99,100,98,99,100,98,99,100,45,98,99,98,99,100,0,0,0,0,0,0,120,120,0,0,120,0,0,0,0,111,111,111,111,111,0,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,0,0,0,0,122,122,101,101,122,103,122,116,101,102,103,122,116,101,102,103,103,103,102,103,122,116,101,102,103,122,116,101,102,103,122,170,116,102,122,101,122,101,122,102,122,101,102,103,102,101,101,0,103,103,122,116,101,102,103,103,122,116,101,102,103,103,103,103,103,122,116,101,102,102,122,122,122,122,122,116,116,116,116,116,103,103,122,122,101,102,103,103,103,122,116,101,101,102,101,102,102,102,102,102,102,103,122,101,0,0,103,122,116,101,102,102,102,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,103,101,103,122,103,101,122,101,101,0,122,170,170,170,170,170,170,101,102,103,101,122,101,122,101,103,122,102,103,122,116,101,102,103,122,116,101,102,103,122,116,101,102,122,101,122,103,122,116,101,102,0,0,0,0,0,139,139,139,0,114,114,136,136,140,140,137,137,141,141,136,137,139,114,136,140,137,141,139,114,136,140,137,141,139,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,114,136,140,137,141,114,114,114,114,114,139,114,136,140,137,141,139,114,136,140,137,141,139,139,114,136,140,137,141,114,139,139,114,136,140,137,141,139,139,114,136,140,137,141,136,140,141,114,114,114,114,114,139,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,137,137,140,141,139,114,137,114,136,140,137,141,139,139,114,136,140,137,141,139,114,136,140,137,141,139,114,136,140,137,141,140,139,114,136,140,137,141,171,171,172,173,27,0,0,113,27,0,0,0,0,27,27,0,0,27,0,0,150,150,151,151,152,152,148,148,149,149,27,27,153,153,150,151,152,148,149,27,153,150,151,152,148,149,27,27,153,153,27,43,153,150,151,152,148,149,27,153,150,151,152,148,149,27,148,149,27,150,151,152,148,149,27,150,151,152,148,149,27,43,153,0,153,150,151,152,148,149,27,153,150,151,152,148,149,27,27,27,153,150,151,152,148,149,27,153,148,149,150,151,152,148,149,27,27,153,150,151,152,148,149,27,27,27,153,153,43,153,27,27,153,150,151,152,148,149,27,113,27,153,150,151,152,148,149,27,153,150,151,152,148,149,27,153,150,151,152,148,149,27,153,150,151,152,148,149,27,150,151,152,148,149,149,152,27,27,27,149,150,151,152,148,149,27,27,153,150,151,152,148,149,27,153,150,151,152,148,149,27,153,150,151,152,148,149,27,153,153,153,150,151,152,148,149,27,174,175,176,177,175,174,0,28,0,0,28,0,0,155,155,28,28,156,155,156,28,155,156,28,28,156,156,28,44,155,156,28,155,156,28,28,155,28,155,28,155,155,44,44,155,156,0,155,156,28,155,156,28,28,155,28,155,156,28,155,155,155,155,155,156,155,28,28,155,156,28,28,28,156,156,155,156,155,28,28,155,156,28,155,156,28,155,156,28,155,156,28,155,156,28,155,44,44,44,155,178,155,28,28,28,44,44,155,28,28,155,155,156,28,155,156,28,155,156,28,156,156,155,156,28,179,180],"f":[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,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,5,[]],[-1,5,[]],[6,6],[6,6],0,0,[7,[[9,[8]]]],[10,[[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,[],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],[[16,14],7],[7,[[9,[5]]]],[10,[[9,[5]]]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[18,[-2]]],[],[]],0,[[],19],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[7,21],[10,21],[-1,[[22,[7]]],23],[-1,[[22,[10]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[11,[[22,[-1,10]]],[]],[12,[[22,[-1,10]]],[]],[[[13,[-1]]],[[22,[-2,10]]],[[15,[14]]],[]],[[7,24],25],[[7,24],25],[[11,24],25],[[12,24],25],[[[13,[-1]],24],25,26],[[10,24],25],[[10,24],25],[27,7],[28,7],[[[2,[14,16]]],7],[-1,-1,[]],[29,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[30,[[22,[19,31]]]],[30,[[22,[19,31]]]],[[],[[9,[32]]]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[-1,[],[]],0,[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],0,[-1,7,34],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],0,0,0,0,0,[[19,-2,[40,[-1,-3]]],[[22,[2,7]]],41,[[42,[-1]],[43,[-1]],44,[45,[-1]],46,35,36],[[47,[-1]]]],[[7,-1],22,48],[[10,-1],22,48],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2,-1]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[19,30],[[22,[2,31]]]],[[19,30],[[22,[2,31]]]],[-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,[[-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,1],2,[]],[[-1,3],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,[]],[[-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,5,[]],[-1,5,[]],[6,6],[6,6],[[[50,[-1]]],[[9,[8]]],41],[29,[[9,[8]]]],[[[51,[-1]]],[[52,[-1]]],41],[[[53,[-1]]],[[52,[-1]]],41],[-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,[],[]],[[[54,[-1]]],29,[[15,[14]]]],[[[55,[-1]]],29,[[15,[14]]]],[[[56,[-1]]],29,[[15,[14]]]],[[[57,[-1,-2]]],29,[[15,[58]]],[[15,[58]]]],[[[59,[-1,-2]]],29,[[15,[14]]],[[15,[16]]]],[[-1,18],9,[]],[[-1,18],9,[]],[[[50,[-1]]],[[9,[5]]],41],[29,[[9,[5]]]],[[[60,[-1]]],[[60,[-1]]],61],[[[51,[-1]]],[[51,[-1]]],[17,41]],[[[50,[-1]]],[[50,[-1]]],[17,41]],[[[62,[-1]]],[[62,[-1]]],[17,41]],[[[53,[-1]]],[[53,[-1]]],[17,41]],[63,63],[[[54,[-1]]],[[54,[-1]]],17],[[[55,[-1]]],[[55,[-1]]],17],[[[56,[-1]]],[[56,[-1]]],17],[[[57,[-1,-2]]],[[57,[-1,-2]]],17,17],[[[59,[-1,-2]]],[[59,[-1,-2]]],17,17],[29,29],[[-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,[],[]],[[[60,[-1]],[60,[-1]]],64,61],[[-1,-2],64,[],[]],[[[65,[-1]],-3],[[22,[-1,-2]]],[],[5,66],[[67,[-2]]]],[[],68],[68,[[22,[[69,[-1,29]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[[[50,[-1]]],21,41],[29,21],[-1,[[22,[[51,[-2]]]]],23,41],[-1,[[22,[[62,[-2]]]]],23,41],[-1,[[22,[[53,[-2]]]]],23,41],[-1,[[22,[29]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[-1,[[37,[72]]],[]],[-1,[[37,[72]]],[]],[[[62,[-1]]],[[0,[72]]],41],[[[60,[-1]],[60,[-1]]],73,61],[[[51,[-1]],[51,[-1]]],73,[74,41]],[[[62,[-1]],[62,[-1]]],73,[74,41]],[[[53,[-1]],[53,[-1]]],73,[74,41]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],0,[[[54,[-1]]],[[22,[-2,29]]],[[15,[14]]],[]],[[[55,[-1]]],[[22,[-2,29]]],[[15,[14]]],[]],[[[56,[-1]]],[[22,[-2,29]]],[[15,[14]]],[]],[[[57,[-1,-2]]],[[22,[-3,29]]],[[15,[58]]],[[15,[58]]],[]],[[[59,[-1,-2]]],[[22,[-3,29]]],[[15,[14]]],[[15,[16]]],[]],[[[60,[-1]],24],25,61],[[[60,[-1]],24],25,61],[[[51,[-1]],24],25,[26,41]],[[[50,[-1]],24],25,41],[[[50,[-1]],24],25,[26,41]],[[[62,[-1]],24],25,[26,41]],[[[53,[-1]],24],25,[26,41]],[[63,24],25],[[[54,[-1]],24],25,26],[[[55,[-1]],24],25,26],[[[56,[-1]],24],25,26],[[[57,[-1,-2]],24],25,26,26],[[[59,[-1,-2]],24],25,26,26],[[29,24],25],[[29,24],25],[-1,-1,[]],[-1,-1,[]],[20,[[60,[-1]]],61],[[[18,[-1]]],[[60,[-1]]],61],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],29],[75,29],[30,[[22,[68,31]]]],[30,[[22,[68,31]]]],[[],[[51,[-1]]],41],[[],[[62,[-1]]],41],[[-1,-3],[[77,[[37,[76]]]]],[],[],[[15,[[78,[-2]]]],35,36]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[-1,[80,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],58,[81,82],83],[[-1,-3],[[77,[[37,[76]]]]],[],[],[[15,[[84,[-2]]]],35,36]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[],[[9,[32]]]],[[[60,[-1]],-2],2,61,85],[[[51,[-1]]],[[86,[-1]]],41],[[[62,[-1]]],[[52,[-1]]],41],[[[53,[-1]]],[[80,[-1]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[[62,[-1]]],[[87,[-1]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[[51,[-1]]],58,41],[[[62,[-1]]],58,41],[[[53,[-1]]],58,41],0,[-1,[],[]],[-1,[],[]],0,[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[-1,[62,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[51,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,29,34],[-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,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[63,29],[[[54,[-1]]],29,[[15,[14]]]],[[[55,[-1]]],29,[[15,[14]]]],[[[56,[-1]]],29,[[15,[14]]]],[[[57,[-1,-2]]],29,[[15,[58]]],[[15,[58]]]],[[[59,[-1,-2]]],29,[[15,[14]]],[[15,[16]]]],[[[65,[-1]]],[],35],[-1,73,[]],[-1,73,[]],[[[62,[-1]]],73,41],[-1,[],[]],[[[51,[-1]]],[[88,[-1]]],41],0,[-1,20,[]],[[[62,[-1]]],20,41],[[[65,[-1]],-2],[[65,[-3]]],[],[35,89],[]],0,[[[62,[-1]]],[[90,[-1]]],41],[[[88,[-1]],[91,[-1]]],[[22,[[51,[-1]],[50,[-1]]]]],41],[[[88,[-1]],[91,[-1]],[92,[-1]]],[[22,[[62,[-1]],[50,[-1]]]]],41],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],9,[]],[[-1,20],[[9,[2]]],[]],[[-1,20],[[9,[2]]],[]],[[[60,[-1]],[60,[-1]]],[[9,[64]]],61],[[[62,[-1]]],[[92,[-1]]],41],[-1,9,[]],[-1,9,[]],[[[51,[-1]]],[[93,[-1]]],41],[[[51,[-1]]],[[91,[-1]]],41],0,[[[65,[-1]]],-1,35],0,0,0,[[[51,[-1]],-2],22,41,48],[[[62,[-1]],-2],22,41,48],[[[53,[-1]],-2],22,41,48],[[29,-1],22,48],[[[62,[-1]]],58,41],[[[50,[-1]]],[[9,[5]]],41],[29,[[9,[5]]]],[29,16],0,[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[[-1,20],[[77,[[37,[76]]]]],36],[-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,9,[]],[-1,9,[]],[[[62,[-1]],[94,[-1]]],[[9,[[53,[-1]]]]],41],[[[53,[-1]]],[[95,[-1]]],41],[[-1,18],9,[]],[[-1,18],9,[]],[[[62,[-1]],[18,[[95,[-1]]]]],[[9,[[94,[-1]]]]],41],[[-1,18],[[9,[2]]],[]],[[-1,18],[[9,[2]]],[]],[-1,[[9,[2]]],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[[[65,[-1]]],[[22,[-1,[65,[-1]]]]],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[68,30],[[22,[2,31]]]],[[68,30],[[22,[2,31]]]],[-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,[],[]],[[[65,[-1]],-2],[[22,[-1,-3]]],[],89,[5,66]],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,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[96,[-2,-3]]],[],[],97],[[[98,[-1,-2]]],-2,[],[]],[-1,[[96,[-2,-3]]],[],[],97],[[[98,[-1,-2]]],-2,[],[]],[[[98,[-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[44,35,36],[35,36]],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[100,[[77,[[37,[76]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[98,[-1,-2]]],[[98,[-1,-2]]],17,17],[[[99,[-1,-2,-3]]],[[99,[-1,-2,-3]]],41,[],[]],[100,100],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[77,[[37,[76]]]]],[]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[46,35],35],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[46,35,36],[35,36]],[101,[[22,[[99,[-1,102,2]],103]]],41],[[[98,[-2,-3]],[93,[-1]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[93,[-1]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[104,[[106,[[105,[-1]]]]],41],[104,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[108,[[106,[[105,[-1]]]]],41],[108,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[[],100],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,2],[20,2],[20,2],[-1,-2,[],[[110,[109]]]],[-1,-2,[],[[110,[109]]]],[[[98,[-1,-2]],24],25,26,26],[[[99,[-1,-2,-3]],24],25,41,26,26],[[100,24],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[15,[[78,[-1]]]],35,36]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[15,[[78,[-1]]]],35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[79,[20]],35]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[79,[20]],35]],[[[98,[-2,-3]],[80,[-1]]],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[80,[-1]]],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[15,[[84,[-1]]]],35,36]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[15,[[84,[-1]]]],35,36]],[[[98,[-2,-3]],-4],[[77,[[37,[76]]]]],41,[[42,[-1]],35,36],[35,36],[[79,[20]],35]],[[[99,[-1,-2,-3]],-4],[[77,[[37,[76]]]]],41,[[111,[-1]]],[35,36],[[79,[20]],35]],[[[98,[-2,-3]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41,[[43,[-1]],35,36],[35,36]],[[],20],[[],20],[[],20],[[[98,[-1,-2]]],-1,[],[]],[[[98,[-1,-2]]],-1,[],[]],[[[98,[-2,-3]],[62,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[62,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[98,[-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[113,[-1]],35,36],[35,36]],[[[98,[-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[113,[-1]],35,36],[35,36]],[[[99,[-1,-2,-3]],[51,[-1]]],[[77,[[37,[76]]]]],41,[[112,[-1]],35,36],[35,36]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[98,[-1,-2]]],114,[44,35,36],[35,36]],[[[99,[-1,-2,-3]]],114,41,[[43,[-1]],35,36],[35,36]],[100,114],[[-1,-2],[[98,[-1,-2]]],[],[]],[[-2,-3],[[106,[[99,[-1,-2,-3]]]]],41,[[43,[-1]],[113,[-1]],[111,[-1]],46],[35,36]],[104,[[106,[[105,[-1]]]]],41],[104,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[108,[[106,[[105,[-1]]]]],41],[108,[[106,[[99,[-1,[107,[-1]],2]]]]],41],[-1,[[37,[115]]],[]],[-1,[[37,[115]]],[]],[-1,[[37,[115]]],[]],[-1,[[77,[[37,[76]]]]],[]],[[[98,[-1,-2]]],[[77,[[37,[76]]]]],[46,35],35],[[[99,[-1,-2,-3]]],[[77,[[37,[76]]]]],41,[46,35,36],[35,36]],[[[105,[-1]]],[[106,[2]]],41],[[[99,[-1,[107,[-1]],2]]],[[106,[2]]],41],0,0,[[[99,[-1,-2,-3]]],[[0,[-1,-2]]],41,[],[]],[[[99,[-1,-2,-3]]],[[0,[-1,-2]]],41,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[99,[-1,102,2]]],[[117,[116]]],41],[-1,[[22,[[96,[-2,-3]],[118,[-2]]]]],[],[],97],[-1,[[22,[[96,[-2,-3]],[118,[-2]]]]],[],[],97],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[119,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[[[120,[-1]]],[[77,[[37,[76]]]]],41],[101,[[22,[[120,[-1]],103]]],41],0,0,[[[120,[-1]]],[[117,[116]]],41],0,0,0,0,[[-1,[78,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],[[-1,[80,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,[84,[-2]]],[[77,[[37,[76]]]]],[],[]],[[-1,-2],[[77,[[37,[76]]]]],[],[[79,[20]],35]],0,0,[-1,4,[]],[-1,4,[]],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[-1,-2,[],[]],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[93,[-1]]],[[77,[[37,[76]]]]],41],[104,[[22,[[107,[-1]],121]]],41],[108,[[22,[[107,[-1]],121]]],41],[20,-1,[]],[20,-1,[]],[20,2],[[[107,[-1]],24],25,41],[-1,-1,[]],[[[107,[-1]],[78,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],-2],[[77,[[37,[76]]]]],41,[[79,[20]],35]],[[[107,[-1]],[80,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[84,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],-2],[[77,[[37,[76]]]]],41,[[79,[20]],35]],[[[107,[-1]],[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41],[[],20],[[[107,[-1]],[62,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[51,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]],[51,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[104,[[22,[[107,[-1]],121]]],41],[108,[[22,[[107,[-1]],121]]],41],[[[107,[-1]]],[[77,[[37,[76]]]]],41],[[[107,[-1]]],[[22,[2,121]]],41],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[122,[[9,[123]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[103,5],[103,5],[103,124],[102,[[77,[[37,[76]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[103,125],[122,58],[-1,[[77,[[37,[76]]]]],[]],[116,[[77,[[37,[76]]]]]],[102,[[77,[[37,[76]]]]]],[122,122],[101,101],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[122,122],64],[102,[[77,[[37,[76]]]]]],[[-1,-2],64,[],[]],[101,[[22,[[120,[-1]],103]]],41],[101,[[22,[102,103]]]],[[103,-1],103,[34,35,36]],[[102,[93,[-1]]],[[77,[[37,[76]]]]],41],[[101,21],101],[[],101],[[],[[126,[122]]]],[103],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[103],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[103,[[22,[-1,103]]],[34,26,35,36]],[103,[[9,[-1]]],[34,26,35,36]],[103,[[9,[-1]]],[34,26,35,36]],[20,2],[103,2],[20,2],[20,2],[20,2],[20,2],[102,2],[[122,122],73],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[116,-1,-2],[[117,[58]]],[82,127],128],[[116,-1,-2],[[117,[58]]],[82,127],128],[[116,-1,-2],[[117,[58]]],[82,127],[128,17]],[[116,-1,-2],[[117,[2]]],[82,127],128],[[116,-1,-2],[[117,[2]]],[82,127],[128,17]],[[103,24],[[22,[2,129]]]],[[103,24],[[22,[2,129]]]],[[122,24],[[22,[2,129]]]],[[122,24],[[22,[2,129]]]],[[101,24],25],[[102,24],25],[130,-1,[]],[-1,-1,[]],[-1,103,[5,35,36]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[131,101],[-1,-1,[]],[21,[[22,[101]]]],[[102,[78,[-1]]],[[77,[[37,[76]]]]],41],[[102,-1],[[77,[[37,[76]]]]],[[79,[20]],35]],[[102,[80,[-1]]],[[77,[[37,[76]]]]],41],[[102,[84,[-1]]],[[77,[[37,[76]]]]],41],[[102,-1],[[77,[[37,[76]]]]],[[79,[20]],35]],[[102,[93,[-1]],[9,[20]]],[[77,[[37,[76]]]]],41],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[[101,-1],101,[[15,[14]]]],0,0,[[],20],[[],20],[[],20],[[],20],[[],20],[[102,[62,[-1]]],[[77,[[37,[76]]]]],41],[[102,[51,[-1]]],[[77,[[37,[76]]]]],41],[[102,[51,[-1]]],[[77,[[37,[76]]]]],41],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[103,73],[[101,-1],101,128],[-1,103,[34,26,35,36]],[122,21],[-1,103,[5,35,36]],[101,101],[[122,122],[[9,[64]]]],[[101,21],101],[[101,132],101],0,[122,133],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[[-1,-2,-3],[[77,[[37,[76]]]]],36,[82,127,36],[128,35]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[[-1,-2],[[77,[[37,[76]]]]],36,[82,127,36]],[101,101],[102,[[77,[[37,[76]]]]]],[103,5],[[101,-1],101,[[15,[14]]]],[122,[[9,[21]]]],[101,101],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[102,[[117,[116]]]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[21,21],[[22,[122,134]]]],[[101,21],101],[122,135],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-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,3],2,[]],[[-1,1],2,[]],[[136,20],2],[[137,138],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,[]],[139,[[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,[],[]],[139,[[9,[5]]]],[114,114],[136,136],[140,140],[137,137],[141,141],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[114,14,[9,[14]]],[[37,[142]]]],[[114,14,[9,[14]]],[[37,[143]]]],[[114,14,[9,[14]]],[[37,[144]]]],[[114,14],[[37,[145]]]],[[],114],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[139,21],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[114,[[22,[14]]]],[[139,24],25],[[139,24],25],[[114,24],25],[[136,24],25],[[140,24],25],[[137,24],25],[[141,24],25],[-1,-1,[]],[146,139],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[136,20],[140,20],[141,14],[[114,21],[[22,[136,139]]]],[[114,21],[[22,[140,139]]]],[[114,21],[[22,[137,139]]]],[[114,21],[[22,[141,139]]]],[[114,-1],[[22,[114,139]]],128],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[137,138],[137,20],[[140,20],2],[[141,14],2],[139,[[9,[5]]]],[[114,14],[[37,[115]]]],[137,138],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[140,147],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,[[-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,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,5,[]],[6,6],[6,6],[27,[[9,[8]]]],[-1,[[77,[[37,[76]]]]],[]],[-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,[],[]],[148,27],[[[149,[-1,-2]]],27,[[15,[14]]],[[15,[16]]]],[27,[[9,[5]]]],[150,150],[151,151],[[[152,[-1]]],[[152,[-1]]],17],[148,148],[[[149,[-1,-2]]],[[149,[-1,-2]]],17,17],[27,27],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,[93,[-2]]],[[77,[[37,[76]]]]],[],[]],[[],153],[153,[[22,[[69,[-1,27]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[27,21],[-1,[[22,[27]]],23],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],[20,2],0,[148,[[22,[-1,27]]],[]],[[[149,[-1,-2]]],[[22,[-3,27]]],[[15,[14]]],[[15,[16]]],[]],[[150,24],25],[[151,24],25],[[[152,[-1]],24],25,26],[[148,24],25],[[[149,[-1,-2]],24],25,26,26],[[27,24],25],[[27,24],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[75,27],[[[2,[14,16]]],27],[-1,-1,[]],[30,[[22,[153,31]]]],[30,[[22,[153,31]]]],[[-1,[93,[-2]],[9,[20]]],[[77,[[37,[76]]]]],[],[]],[[],[[9,[32]]]],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[],20],[[-1,[51,[-2]]],[[77,[[37,[76]]]]],[],[]],[-1,27,34],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[150,27],[151,27],[[[152,[-1]]],27,[[15,[154]]]],[148,27],[[[149,[-1,-2]]],27,[[15,[14]]],[[15,[16]]]],0,0,[[27,-1],22,48],[27,[[9,[5]]]],[27,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[153,30],[[22,[2,31]]]],[[153,30],[[22,[2,31]]]],[-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,[[-1,1],2,[]],[[-1,3],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],[28,[[9,[8]]]],[-1,[[77,[[37,[76]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,[[9,[5]]]],[155,155],[28,28],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[155,155],64],[[-1,-2],64,[],[]],[-1,[[117,[114]]],[]],[-1,[[117,[114]]],[]],[[],155],[[],156],[156,[[22,[[69,[-1,28]],70]]],[35,36,71]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[20,-1,[]],[28,21],[-1,[[22,[155]]],23],[-1,[[22,[28]]],23],[20,2],[20,2],[20,2],[[155,155],73],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],[[-1,-2],73,[],[]],0,[[155,24],25],[[28,24],25],[[28,24],25],[-1,-1,[]],[-1,-1,[]],[75,28],[14,28],[-1,-1,[]],[30,[[22,[156,31]]]],[30,[[22,[156,31]]]],[[-1,-2],58,[81,82],83],[[],[[9,[32]]]],[[155,-1],2,85],[[-1,-2],[[33,[-2,-3]]],[],[34,35,36],[]],[-1,[],[]],[[],20],[[],20],[[],20],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[37,[-1]]],[[37,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[38,[-1]]],[[38,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],[[[39,[-1]]],[[39,[4]]],[]],0,[-1,[[77,[[37,[76]]]]],36],[-1,[[77,[[37,[76]]]]],36],[-1,114,[]],[[155,155],[[9,[64]]]],[-1,[[37,[115]]],[]],[[155,-1],22,48],[[28,-1],22,48],[28,[[9,[5]]]],[28,16],[-1,[[77,[[37,[76]]]]],36],[-1,[[77,[[37,[76]]]]],36],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,[[22,[-2]]],[],[]],[-1,49,[]],[-1,49,[]],[-1,49,[]],[[156,30],[[22,[2,31]]]],[[156,30],[[22,[2,31]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0],"c":[],"p":[[3,"Private",1659],[15,"tuple"],[3,"Private",1659],[8,"Any",1660],[8,"Error",1661],[3,"Command",1662],[4,"Error",0],[3,"Backtrace",1663],[4,"Option",1664],[4,"QueryError",0],[3,"NotFoundSnafu",0],[3,"MissingSnafu",0],[3,"Snafu",0],[3,"String",1665],[8,"Into",1666],[4,"StatusCode",1667],[8,"Clone",1668],[3,"Commitment",1669],[3,"Options",0],[15,"usize"],[15,"str"],[4,"Result",1670],[8,"Deserializer",1671],[3,"Formatter",1672],[6,"Result",1672],[8,"Debug",1672],[4,"Error",1319],[4,"Error",1538],[4,"Error",222],[3,"ArgMatches",1673],[6,"Error",1674],[3,"Id",1675],[3,"IndentedSection",1676],[8,"Display",1672],[8,"Send",1677],[8,"Sync",1677],[3,"Box",1678],[3,"Arc",1679],[3,"Rc",1680],[3,"SystemContextHandle",1681],[8,"NodeType",1682],[8,"AvailabilityDataSource",222],[8,"NodeDataSource",1319],[8,"StatusDataSource",1538],[8,"UpdateDataSource",745],[8,"VersionedDataSource",745],[8,"NodeImplementation",1682],[8,"Serializer",1683],[3,"TypeId",1660],[3,"InconsistentLeafError",222],[3,"LeafQueryData",222],[6,"BlockHash",222],[3,"TransactionQueryData",222],[3,"FetchLeafSnafu",222],[3,"FetchBlockSnafu",222],[3,"FetchTransactionSnafu",222],[3,"InvalidTransactionIndexSnafu",222],[15,"u64"],[3,"CustomSnafu",222],[4,"ResourceId",222],[8,"Committable",1669],[3,"BlockQueryData",222],[3,"RequestSnafu",222],[4,"Ordering",1684],[4,"Fetch",222],[8,"ErrorCompat",1685],[8,"IntoError",1685],[3,"Options",222],[3,"Api",1686],[4,"ApiError",1686],[8,"ReadState",1687],[8,"Iterator",1688],[15,"bool"],[8,"PartialEq",1684],[4,"RequestError",1689],[8,"Future",1690],[3,"Pin",1691],[6,"BlockId",222],[8,"RangeBounds",1692],[6,"TransactionHash",222],[8,"Hash",1693],[8,"Sized",1677],[8,"BuildHasher",1693],[6,"LeafId",222],[8,"Hasher",1693],[6,"LeafHash",222],[6,"Header",0],[3,"Leaf",1694],[8,"FnOnce",1695],[6,"Metadata",0],[6,"QuorumCertificate",1696],[6,"Payload",0],[6,"SignatureKey",0],[6,"TransactionIndex",222],[6,"Transaction",0],[3,"BitSlice",1697],[8,"BitOrder",1698],[3,"ExtensibleDataSource",745],[3,"FetchingDataSource",745],[3,"MetricsDataSource",745],[3,"Config",949],[3,"SqlStorage",949],[3,"Error",949],[3,"Path",1699],[6,"FileSystemDataSource",745],[6,"Result",1700],[3,"FileSystemStorage",912],[3,"AtomicStoreLoader",1701],[15,"char"],[8,"FromIterator",1702],[8,"AvailabilityStorage",902],[8,"UpdateAvailabilityData",222],[8,"UpdateNodeData",1319],[3,"PrometheusMetrics",1140],[8,"Metrics",1703],[3,"Transaction",949],[6,"QueryResult",0],[4,"BitSpanError",1704],[3,"Event",1705],[6,"SqlDataSource",891],[4,"PersistenceError",1706],[3,"Migration",949],[3,"OffsetDateTime",1707],[3,"Backtrace",1708],[3,"Chain",1700],[3,"Vec",1709],[8,"ToStatement",1710],[8,"IntoIterator",1702],[3,"Error",1672],[15,"never"],[3,"Config",1711],[15,"u16"],[4,"Type",1712],[3,"Error",1713],[15,"u32"],[3,"Counter",1140],[3,"Histogram",1140],[15,"f64"],[4,"MetricsError",1140],[3,"Gauge",1140],[3,"Label",1140],[8,"Counter",1703],[8,"Gauge",1703],[8,"Histogram",1703],[8,"Label",1703],[4,"Error",1714],[15,"i64"],[3,"InvalidSignatureKeySnafu",1319],[3,"CustomSnafu",1319],[3,"RequestSnafu",1319],[3,"QuerySnafu",1319],[3,"QueryProposalsSnafu",1319],[3,"Options",1319],[3,"EncodedPublicKey",1715],[3,"MempoolQueryData",1538],[3,"Options",1538],[8,"Resolvable",0],[13,"Custom",216],[13,"Availability",216],[13,"Node",216],[13,"Status",216],[13,"Error",221],[8,"QueryablePayload",222],[13,"InvalidTransactionIndex",737],[13,"Custom",737],[13,"FetchLeaf",737],[13,"FetchBlock",737],[13,"FetchTransaction",737],[13,"Request",737],[8,"Query",949],[13,"NoSuchMetric",1315],[13,"NoSuchSubgroup",1315],[13,"Prometheus",1315],[13,"Custom",1532],[13,"QueryProposals",1532],[13,"Request",1532],[13,"Query",1532],[8,"UpdateStatusData",1538],[13,"Internal",1657],[13,"Request",1657]],"b":[[108,"impl-Display-for-Error"],[109,"impl-Debug-for-Error"],[113,"impl-Display-for-QueryError"],[114,"impl-Debug-for-QueryError"],[115,"impl-From%3CError%3E-for-Error"],[116,"impl-From%3CError%3E-for-Error"],[117,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[119,"impl-From%3CError%3E-for-Error"],[471,"impl-Display-for-ResourceId%3CT%3E"],[472,"impl-Debug-for-ResourceId%3CT%3E"],[474,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[475,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[484,"impl-Debug-for-Error"],[485,"impl-Display-for-Error"],[488,"impl-From%3Cusize%3E-for-ResourceId%3CT%3E"],[489,"impl-From%3CCommitment%3CT%3E%3E-for-ResourceId%3CT%3E"],[502,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[503,"impl-From%3CRequestError%3E-for-Error"],[769,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[770,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[771,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[772,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[833,"impl-UpdateNodeData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[834,"impl-UpdateAvailabilityData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[835,"impl-UpdateNodeData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[836,"impl-UpdateAvailabilityData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[935,"impl-UpdateAvailabilityData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[936,"impl-UpdateNodeData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[970,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[971,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1035,"impl-Debug-for-Error"],[1036,"impl-Display-for-Error"],[1037,"impl-Display-for-Migration"],[1038,"impl-Debug-for-Migration"],[1067,"impl-UpdateNodeData%3CTypes%3E-for-SqlStorage"],[1068,"impl-UpdateAvailabilityData%3CTypes%3E-for-SqlStorage"],[1223,"impl-Debug-for-MetricsError"],[1224,"impl-Display-for-MetricsError"],[1430,"impl-Debug-for-Error"],[1431,"impl-Display-for-Error"],[1438,"impl-From%3CRequestError%3E-for-Error"],[1439,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1598,"impl-Debug-for-Error"],[1599,"impl-Display-for-Error"],[1602,"impl-From%3CRequestError%3E-for-Error"],[1603,"impl-From%3CString%3E-for-Error"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; 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 e2bf891ff..f7f334f1d 100644 --- a/src/hotshot_query_service/data_source/storage/sql.rs.html +++ b/src/hotshot_query_service/data_source/storage/sql.rs.html @@ -1293,6 +1293,113 @@ 1293 1294 1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402// Copyright (c) 2022 Espresso Systems (espressosys.com) // This file is part of the HotShot Query Service library. // @@ -1317,7 +1424,11 @@ node::{NodeDataSource, UpdateNodeData}, Header, Leaf, MissingSnafu, NotFoundSnafu, Payload, QueryError, QueryResult, SignatureKey, }; -use async_std::{net::ToSocketAddrs, sync::Arc, task::spawn}; +use async_std::{ + net::ToSocketAddrs, + sync::Arc, + task::{sleep, spawn}, +}; use async_trait::async_trait; use commit::Committable; use futures::{ @@ -1334,7 +1445,7 @@ node_implementation::NodeType, }, }; -use itertools::Itertools; +use itertools::{izip, Itertools}; use postgres_native_tls::TlsConnector; use snafu::OptionExt; use std::{ @@ -1342,6 +1453,7 @@ ops::{Bound, RangeBounds}, pin::Pin, str::FromStr, + time::Duration, }; use tokio_postgres::{ config::Host, @@ -1847,7 +1959,7 @@ type Error = QueryError; async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<(), Self::Error> { - let mut stmts: Vec<(String, Vec<Box<dyn ToSql + Send + Sync>>)> = vec![]; + let mut tx = self.transaction().await?; // While we don't necessarily have the full block for this leaf yet, we can initialize the // header table with block metadata taken from the leaf. @@ -1855,22 +1967,24 @@ serde_json::to_value(&leaf.leaf().block_header).map_err(|err| QueryError::Error { message: format!("failed to serialize header: {err}"), })?; - stmts.push(( - "INSERT INTO header (height, hash, data) VALUES ($1, $2, $3)".into(), - vec![ - Box::new(leaf.height() as i64), - Box::new(leaf.block_hash().to_string()), - Box::new(header_json), + tx.execute_one_with_retries( + "INSERT INTO header (height, hash, data) VALUES ($1, $2, $3)", + [ + sql_param(&(leaf.height() as i64)), + sql_param(&(leaf.block_hash().to_string())), + sql_param(&header_json), ], - )); + ) + .await?; // Similarly, we can initialize the payload table with a null payload, which can help us // distinguish between blocks that haven't been produced yet and blocks we haven't received // yet when answering queries. - stmts.push(( - "INSERT INTO payload (height) VALUES ($1)".into(), - vec![Box::new(leaf.height() as i64)], - )); + tx.execute_one_with_retries( + "INSERT INTO payload (height) VALUES ($1)", + [leaf.height() as i64], + ) + .await?; // Finally, we insert the leaf itself, which references the header row we created. // Serialize the full leaf and QC to JSON for easy storage. @@ -1884,29 +1998,25 @@ serde_json::to_value(&leaf.proposer()).map_err(|err| QueryError::Error { message: format!("failed to serialize proposer ID: {err}"), })?; - stmts.push(( + tx.execute_one_with_retries( "INSERT INTO leaf (height, hash, proposer, block_hash, leaf, qc) - VALUES ($1, $2, $3, $4, $5, $6)" - .into(), - vec![ - Box::new(leaf.height() as i64), - Box::new(leaf.hash().to_string()), - Box::new(proposer_json), - Box::new(leaf.block_hash().to_string()), - Box::new(leaf_json), - Box::new(qc_json), + VALUES ($1, $2, $3, $4, $5, $6)", + [ + sql_param(&(leaf.height() as i64)), + sql_param(&leaf.hash().to_string()), + sql_param(&proposer_json), + sql_param(&leaf.block_hash().to_string()), + sql_param(&leaf_json), + sql_param(&qc_json), ], - )); - - // Grab a transaction and execute all the statements. - let mut tx = self.transaction().await?; - tx.execute_many(stmts).await?; + ) + .await?; Ok(()) } async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<(), Self::Error> { - let mut stmts: Vec<(String, Vec<Box<dyn ToSql + Send + Sync>>)> = vec![]; + let mut tx = self.transaction().await?; // The header and payload tables should already have been initialized when we inserted the // corresponding leaf. All we have to do is add the payload itself and its size. @@ -1917,45 +2027,56 @@ message: format!("failed to serialize block: {err}"), })? .collect::<Vec<_>>(); - stmts.push(( - "UPDATE payload SET (data, size) = ($1, $2) WHERE height = $3".into(), - vec![ - Box::new(payload), - Box::new(block.size() as i32), - Box::new(block.height() as i64), + tx.execute_one_with_retries( + "UPDATE payload SET (data, size) = ($1, $2) WHERE height = $3", + [ + sql_param(&payload), + sql_param(&(block.size() as i32)), + sql_param(&(block.height() as i64)), ], - )); + ) + .await?; // Index the transactions in the block. let mut values = vec![]; - let mut params: Vec<Box<dyn ToSql + Send + Sync>> = vec![]; - for (txn_ix, txn) in block.enumerate() { + // For each transaction, collect, separately, its hash, height, and index. These items all + // have different types, so we collect them into different vecs. + let mut tx_hashes = vec![]; + let mut tx_block_heights = vec![]; + let mut tx_indexes = vec![]; + for (i, (txn_ix, txn)) in block.enumerate().enumerate() { let txn_ix = serde_json::to_value(&txn_ix).map_err(|err| QueryError::Error { message: format!("failed to serialize transaction index: {err}"), })?; - values.push(format!( - "(${},${},${})", - params.len() + 1, - params.len() + 2, - params.len() + 3 - )); - params.push(Box::new(txn.commit().to_string())); - params.push(Box::new(block.height() as i64)); - params.push(Box::new(txn_ix)); + values.push(format!("(${},${},${})", 3 * i + 1, 3 * i + 2, 3 * i + 3)); + tx_hashes.push(txn.commit().to_string()); + tx_block_heights.push(block.height() as i64); + tx_indexes.push(txn_ix); } if !values.is_empty() { - stmts.push(( - format!( + tx.execute_many_with_retries( + &format!( "INSERT INTO transaction (hash, block_height, index) VALUES {}", values.join(",") ), - params, - )); + // Now that we have the transaction hashes, block heights, and indexes collected in + // memory, we can combine them all into a single vec using type erasure: all the + // values get converted to `&dyn ToSql`. The references all borrow from one of + // `tx_hashes`, `tx_block_heights`, or `tx_indexes`, which all outlive this function + // call, so the lifetimes work out. + izip!( + tx_hashes.iter().map(sql_param), + tx_block_heights.iter().map(sql_param), + tx_indexes.iter().map(sql_param), + ) + // Interleave the three parameters for each transaction, so we have a list of + // (hash, height, index) triples, repeated for each transaction. + .flat_map(|(hash, height, index)| [hash, height, index]) + .collect::<Vec<_>>(), + ) + .await?; } - let mut tx = self.transaction().await?; - tx.execute_many(stmts).await?; - Ok(()) } } @@ -2078,7 +2199,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`](VersionedDataSource::commit). - pub async fn execute<T, P>(&mut self, statement: &T, params: P) -> QueryResult<()> + pub async fn execute<T, P>(&mut self, statement: &T, params: P) -> QueryResult<u64> where T: ?Sized + ToStatement, P: IntoIterator, @@ -2090,23 +2211,112 @@ .await .map_err(|err| QueryError::Error { message: err.to_string(), - })?; - Ok(()) + }) } - pub async fn execute_many<S, T, P>(&mut self, statements: S) -> QueryResult<()> + /// Execute a statement that is expected to modify exactly one row. + /// + /// Returns an error if the database is not modified. + pub async fn execute_one<T, P>(&mut self, statement: &T, params: P) -> QueryResult<()> where - S: IntoIterator<Item = (T, P)>, - T: ToStatement, + T: ?Sized + ToStatement, P: IntoIterator, P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql, { - for (stmt, params) in statements { - self.execute(&stmt, params).await?; + let nrows = self.execute_many(statement, params).await?; + if nrows > 1 { + // If more than one row is affected, we don't return an error, because clearly + // _something_ happened and modified the database. So we don't necessarily want the + // caller to retry. But we do log an error, because it seems the query did something + // different than the caller intended. + tracing::error!("statement modified more rows ({nrows}) than expected (1)"); } Ok(()) } + + /// 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. + pub async fn execute_one_with_retries<T, P>( + &mut self, + statement: &T, + params: P, + ) -> QueryResult<()> + where + T: ?Sized + ToStatement, + P: IntoIterator + Clone, + P::IntoIter: ExactSizeIterator, + P::Item: BorrowToSql, + { + let interval = Duration::from_secs(1); + let mut retries = 5; + + while let Err(err) = self.execute_one(statement, params.clone()).await { + tracing::error!("error in statement execution ({retries} tries remaining): {err}"); + if retries == 0 { + return Err(err); + } + retries -= 1; + sleep(interval).await; + } + + Ok(()) + } + + /// Execute a statement that is expected to modify at least one row. + /// + /// Returns an error if the database is not modified. + pub async fn execute_many<T, P>(&mut self, statement: &T, params: P) -> QueryResult<u64> + where + T: ?Sized + ToStatement, + P: IntoIterator, + P::IntoIter: ExactSizeIterator, + P::Item: BorrowToSql, + { + let nrows = self.execute(statement, params).await?; + if nrows == 0 { + return Err(QueryError::Error { + message: "statement failed: should have affected one row, but affected 0".into(), + }); + } + + Ok(nrows) + } + + /// 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. + pub async fn execute_many_with_retries<T, P>( + &mut self, + statement: &T, + params: P, + ) -> QueryResult<u64> + where + T: ?Sized + ToStatement, + P: IntoIterator + Clone, + P::IntoIter: ExactSizeIterator, + P::Item: BorrowToSql, + { + let interval = Duration::from_secs(1); + let mut retries = 5; + + loop { + match self.execute_many(statement, params.clone()).await { + Ok(nrows) => return Ok(nrows), + Err(err) => { + tracing::error!( + "error in statement execution ({retries} tries remaining): {err}" + ); + if retries == 0 { + return Err(err); + } + retries -= 1; + sleep(interval).await; + } + } + } + } } /// Query the underlying SQL database. @@ -2348,6 +2558,10 @@ Ok((client, kill)) } +fn sql_param<T: ToSql + Sync>(param: &T) -> &(dyn ToSql + Sync) { + param +} + // tokio-postgres is written in terms of the tokio AsyncRead/AsyncWrite traits. However, these // traits do not require any specifics of the tokio runtime. Thus we can implement them using the // async_std TcpStream type, and have a stream which is compatible with tokio-postgres but will run