diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 19a58551c2..66ba63c2d9 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -16,7 +16,7 @@ env: jobs: build: if: "!contains(github.event.commits[0].message, '[skip ci]')" - runs-on: self-hosted + runs-on: [self-hosted, normal] steps: - name: Check to latest commit uses: actions/checkout@v2 @@ -42,4 +42,27 @@ jobs: status: ${{ job.status }} fields: repo,author,eventName,workflow,ref,commit env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_PULLREQUEST_WEBHOOK_URL }} \ No newline at end of file + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_PULLREQUEST_WEBHOOK_URL }} + bench: + if: "!contains(github.event.commits[0].message, '[skip ci]')" + runs-on: [self-hosted, bench] + steps: + - name: Check to latest commit + uses: actions/checkout@v2 + with: + submodules: recursive + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly-2021-09-12 + components: rustfmt + target: wasm32-unknown-unknown + default: true + - name: Generate WeightInfo Files + run: make generate-all-weights + - name: Commit Automatically + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 🤖 ($WEIGHT) Generate weightInfo files automatically +# file_pattern: runtime/**/*.rs \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index d2db65ae8e..8c742624e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -154,6 +154,7 @@ version = "0.8.0" dependencies = [ "bifrost-bancor", "bifrost-bancor-runtime-api", + "bifrost-call-switchgear", "bifrost-flexible-fee", "bifrost-flexible-fee-rpc-runtime-api", "bifrost-lightening-redeem", @@ -208,6 +209,7 @@ dependencies = [ "pallet-randomness-collective-flip", "pallet-scheduler", "pallet-session", + "pallet-society", "pallet-sudo", "pallet-timestamp", "pallet-tips", @@ -664,6 +666,27 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "bifrost-call-switchgear" +version = "0.8.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "node-primitives", + "orml-tokens 0.4.1-dev (git+https://github.com/open-web3-stack/open-runtime-module-library?rev=7969776ff70f1d361daae72f3e3cecfdc3e9342d)", + "orml-traits 0.4.1-dev (git+https://github.com/open-web3-stack/open-runtime-module-library?rev=7969776ff70f1d361daae72f3e3cecfdc3e9342d)", + "pallet-balances", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "bifrost-flexible-fee" version = "0.8.0" @@ -815,6 +838,7 @@ dependencies = [ name = "bifrost-runtime" version = "0.8.0" dependencies = [ + "bifrost-call-switchgear", "bifrost-flexible-fee", "bifrost-flexible-fee-rpc-runtime-api", "bifrost-lightening-redeem", @@ -866,6 +890,7 @@ dependencies = [ "pallet-randomness-collective-flip", "pallet-scheduler", "pallet-session", + "pallet-society", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", diff --git a/Cargo.toml b/Cargo.toml index b170de818b..baeb06efb4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,6 +19,7 @@ members = [ "pallets/vsbond-auction", "pallets/vtoken-mint", "pallets/vtoken-mint/rpc", + "pallets/call-switchgear", "runtime/asgard", "runtime/bifrost", "xcm-support", diff --git a/Makefile b/Makefile index a325ef2569..301508e333 100644 --- a/Makefile +++ b/Makefile @@ -91,9 +91,29 @@ format: test-benchmarking: cargo test --features runtime-benchmarks --features with-all-runtime --features --all benchmarking -.PHONY: run-benchmarking -run-benchmarking: - ./scripts/run_all_benches.sh +.PHONY: generate-bifrost-weights +generate-bifrost-weights: + bash ./scripts/generate-weights.sh bifrost + +.PHONY: generate-asgard-weights +generate-asgard-weights: + bash ./scripts/generate-weights.sh asgard + +.PHONY: generate-all-weights +generate-all-weights: + bash ./scripts/generate-weights.sh asgard bifrost + +.PHONY: build-asgard-release-with-bench +build-asgard-release-with-bench: copy-genesis-config-release + cargo build -p node-cli --locked --features "with-asgard-runtime,runtime-benchmarks" --release + +.PHONY: build-bifrost-release-with-bench +build-bifrost-release-with-bench: copy-genesis-config-release + cargo build -p node-cli --locked --features "with-bifrost-runtime,runtime-benchmarks" --release + +.PHONY: build-all-release-with-bench +build-all-release-with-bench: copy-genesis-config-release + cargo build -p node-cli --locked --features "with-all-runtime,runtime-benchmarks" --release # Deploy .PHONY: deploy-asgard-local diff --git a/node/service/src/chain_spec/asgard.rs b/node/service/src/chain_spec/asgard.rs index 9ff099794e..8e2166c1ad 100644 --- a/node/service/src/chain_spec/asgard.rs +++ b/node/service/src/chain_spec/asgard.rs @@ -218,6 +218,8 @@ fn local_config_genesis(id: ParaId) -> GenesisConfig { (x.clone(), CurrencyId::Token(TokenSymbol::KSM), ENDOWMENT * 4_000_000), (x.clone(), CurrencyId::Native(TokenSymbol::ASG), ENDOWMENT * 4_000_000), (x.clone(), CurrencyId::VSToken(TokenSymbol::KSM), ENDOWMENT * 4_000_000), + (x.clone(), CurrencyId::Token(TokenSymbol::DOT), ENDOWMENT * 4_000_000), + (x.clone(), CurrencyId::VSToken(TokenSymbol::DOT), ENDOWMENT * 4_000_000), ( x.clone(), CurrencyId::VSBond(TokenSymbol::BNC, 2001, 13, 20), diff --git a/node/service/src/chain_spec/bifrost.rs b/node/service/src/chain_spec/bifrost.rs index 9d905ea0c0..e57b99a55c 100644 --- a/node/service/src/chain_spec/bifrost.rs +++ b/node/service/src/chain_spec/bifrost.rs @@ -125,6 +125,8 @@ fn development_config_genesis(id: ParaId) -> GenesisConfig { (x.clone(), CurrencyId::Stable(TokenSymbol::KUSD), ENDOWMENT * 10_000), (x.clone(), CurrencyId::Token(TokenSymbol::KAR), ENDOWMENT * 10_000), (x.clone(), CurrencyId::Token(TokenSymbol::KSM), ENDOWMENT), + (x.clone(), CurrencyId::Token(TokenSymbol::DOT), ENDOWMENT), + (x.clone(), CurrencyId::VSToken(TokenSymbol::DOT), ENDOWMENT), ] }) .collect(); @@ -197,6 +199,11 @@ fn local_config_genesis(id: ParaId) -> GenesisConfig { CurrencyId::VSBond(TokenSymbol::KSM, 3000, 13, 20), ENDOWMENT * 4_000_000, ), + ( + x.clone(), + CurrencyId::VSBond(TokenSymbol::BNC, 2001, 13, 20), + ENDOWMENT * 4_000_000, + ), ] }) .collect(); diff --git a/pallets/bancor/src/benchmarking.rs b/pallets/bancor/src/benchmarking.rs index 0b826d0af5..376f854cb5 100644 --- a/pallets/bancor/src/benchmarking.rs +++ b/pallets/bancor/src/benchmarking.rs @@ -30,14 +30,14 @@ use crate::Pallet as Bancor; benchmarks! { add_token_to_pool { - let currency_id = CurrencyId::Token(TokenSymbol::DOT); + let currency_id = CurrencyId::Token(TokenSymbol::KSM); let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(10u32 as u128); }: _(RawOrigin::Signed(caller), currency_id, token_amount) exchange_for_token { let caller: T::AccountId = whitelisted_caller(); - let currency_id = CurrencyId::Token(TokenSymbol::DOT); + let currency_id = CurrencyId::Token(TokenSymbol::KSM); let vstoken_amount = BalanceOf::::unique_saturated_from(1u128); let token_out_min = BalanceOf::::unique_saturated_from(0u128); @@ -53,7 +53,7 @@ benchmarks! { exchange_for_vstoken { let caller: T::AccountId = whitelisted_caller(); - let currency_id = CurrencyId::Token(TokenSymbol::DOT); + let currency_id = CurrencyId::Token(TokenSymbol::KSM); let token_amount = BalanceOf::::unique_saturated_from(100u128); let vstoken_out_min = BalanceOf::::unique_saturated_from(0u128); @@ -65,7 +65,7 @@ benchmarks! { }: _(RawOrigin::Signed(caller), currency_id, token_amount, vstoken_out_min) on_initialize { - let currency_id = CurrencyId::Token(TokenSymbol::DOT); + let currency_id = CurrencyId::Token(TokenSymbol::KSM); let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(7200 as u128); diff --git a/pallets/call-switchgear/Cargo.toml b/pallets/call-switchgear/Cargo.toml new file mode 100644 index 0000000000..83a22dc7a5 --- /dev/null +++ b/pallets/call-switchgear/Cargo.toml @@ -0,0 +1,46 @@ +[package] +name = "bifrost-call-switchgear" +version = "0.8.0" +authors = ["Herry Ho "] +edition = "2018" + +[dependencies] +serde = { version = "1.0.124", optional = true } +codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +node-primitives = { path = "../../node/primitives", default-features = false } +orml-traits = { version = "0.4.1-dev", default-features = false } +scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } + +[dev-dependencies] +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +orml-tokens = { version = "0.4.1-dev", default-features = false } +smallvec = "1.4.1" + +[features] +default = ["std"] +std = [ + "serde", + "codec/std", + "sp-runtime/std", + "frame-support/std", + "frame-system/std", + "sp-io/std", + "sp-std/std", + "node-primitives/std", + "orml-traits/std", +] +try-runtime = ["frame-support/try-runtime"] + +runtime-benchmarks = [ + "frame-benchmarking", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", +] + diff --git a/pallets/call-switchgear/src/benchmarking.rs b/pallets/call-switchgear/src/benchmarking.rs new file mode 100644 index 0000000000..53d2f56c5a --- /dev/null +++ b/pallets/call-switchgear/src/benchmarking.rs @@ -0,0 +1,59 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#![cfg(feature = "runtime-benchmarks")] + +use frame_benchmarking::{benchmarks, impl_benchmark_test_suite}; +use frame_support::dispatch::UnfilteredDispatchable; +use node_primitives::{CurrencyId, TokenSymbol}; + +use super::*; +#[allow(unused_imports)] +use crate::Pallet as CallSwitchgear; + +benchmarks! { + switchoff_transaction { + let origin = T::UpdateOrigin::successful_origin(); + let switchoff_call = Call::::switchoff_transaction{pallet_name: b"Balances".to_vec(), function_name: b"transfer".to_vec()}; + }: {switchoff_call.dispatch_bypass_filter(origin)?} + + switchon_transaction { + let origin = T::UpdateOrigin::successful_origin(); + let switchoff_call = Call::::switchoff_transaction{pallet_name: b"Balances".to_vec(), function_name: b"transfer".to_vec()}; + switchoff_call.dispatch_bypass_filter(origin.clone())?; + let switchon_call = Call::::switchon_transaction{pallet_name: b"Balances".to_vec(), function_name: b"transfer".to_vec()}; + }: {switchon_call.dispatch_bypass_filter(origin)?} + + disable_transfers { + let origin = T::UpdateOrigin::successful_origin(); + let disable_call = Call::::disable_transfers{currency_id: CurrencyId::Token(TokenSymbol::KSM)}; + }: {disable_call.dispatch_bypass_filter(origin)?} + + enable_transfers { + let origin = T::UpdateOrigin::successful_origin(); + let disable_call = Call::::disable_transfers{currency_id: CurrencyId::Token(TokenSymbol::KSM)}; + disable_call.dispatch_bypass_filter(origin.clone())?; + let enable_call = Call::::enable_transfers{currency_id: CurrencyId::Token(TokenSymbol::KSM)}; + }: {enable_call.dispatch_bypass_filter(origin)?} +} + +impl_benchmark_test_suite!( + CallSwitchgear, + crate::mock::ExtBuilder::default().build(), + crate::mock::Runtime +); diff --git a/pallets/call-switchgear/src/lib.rs b/pallets/call-switchgear/src/lib.rs new file mode 100644 index 0000000000..82ed47b006 --- /dev/null +++ b/pallets/call-switchgear/src/lib.rs @@ -0,0 +1,192 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] +#![allow(clippy::unused_unit)] + +extern crate alloc; + +use frame_support::{ + dispatch::{CallMetadata, GetCallMetadata}, + pallet_prelude::*, + traits::{Contains, PalletInfoAccess}, + transactional, +}; +use frame_system::pallet_prelude::*; +use node_primitives::CurrencyId; +use sp_runtime::DispatchResult; +use sp_std::prelude::*; + +mod mock; +mod tests; +pub mod weights; + +#[cfg(feature = "runtime-benchmarks")] +mod benchmarking; + +pub use pallet::*; +pub use weights::WeightInfo; + +#[frame_support::pallet] +pub mod pallet { + use super::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + type Event: From> + IsType<::Event>; + + /// The origin which may set filter. + type UpdateOrigin: EnsureOrigin; + + /// Weight information for the extrinsics in this module. + type WeightInfo: WeightInfo; + } + + #[pallet::error] + pub enum Error { + /// can not switch off + CannotSwitchOff, + /// Invalid character + InvalidCharacter, + } + + #[pallet::event] + #[pallet::generate_deposit(fn deposit_event)] + pub enum Event { + /// Switch off transaction . \[pallet_name, function_name\] + TransactionSwitchedoff(Vec, Vec), + /// Switch on transaction . \[pallet_name, function_name\] + TransactionSwitchedOn(Vec, Vec), + TransferAccountDisabled(CurrencyId), + TransferAccountEnabled(CurrencyId), + } + + #[pallet::storage] + #[pallet::getter(fn get_switchoff_transactions)] + pub type SwitchedOffTransactions = + StorageMap<_, Twox64Concat, (Vec, Vec), (), OptionQuery>; + + #[pallet::storage] + #[pallet::getter(fn get_disabled_tranfer_accounts)] + pub type DisabledTransfers = + StorageMap<_, Twox64Concat, CurrencyId, (), OptionQuery>; + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::hooks] + impl Hooks for Pallet {} + + #[pallet::call] + impl Pallet { + #[pallet::weight(T::WeightInfo::switchoff_transaction())] + #[transactional] + pub fn switchoff_transaction( + origin: OriginFor, + pallet_name: Vec, + function_name: Vec, + ) -> DispatchResult { + T::UpdateOrigin::ensure_origin(origin)?; + + let pallet_name_string = + sp_std::str::from_utf8(&pallet_name).map_err(|_| Error::::InvalidCharacter)?; + ensure!( + pallet_name_string != ::name(), + Error::::CannotSwitchOff + ); + + SwitchedOffTransactions::::mutate_exists( + (pallet_name.clone(), function_name.clone()), + |item| { + if item.is_none() { + *item = Some(()); + Self::deposit_event(Event::TransactionSwitchedoff( + pallet_name, + function_name, + )); + } + }, + ); + Ok(()) + } + + #[pallet::weight(T::WeightInfo::switchon_transaction())] + #[transactional] + pub fn switchon_transaction( + origin: OriginFor, + pallet_name: Vec, + function_name: Vec, + ) -> DispatchResult { + T::UpdateOrigin::ensure_origin(origin)?; + if SwitchedOffTransactions::::take((pallet_name.clone(), &function_name.clone())) + .is_some() + { + Self::deposit_event(Event::TransactionSwitchedOn(pallet_name, function_name)); + }; + Ok(()) + } + + // #[pallet::weight(T::WeightInfo::disable_transfers())] + #[pallet::weight(10000)] + #[transactional] + pub fn disable_transfers(origin: OriginFor, currency_id: CurrencyId) -> DispatchResult { + T::UpdateOrigin::ensure_origin(origin)?; + + DisabledTransfers::::mutate_exists(currency_id, |item| { + if item.is_none() { + *item = Some(()); + Self::deposit_event(Event::TransferAccountDisabled(currency_id)); + } + }); + Ok(()) + } + + // #[pallet::weight(T::WeightInfo::enable_transfers())] + #[pallet::weight(10000)] + #[transactional] + pub fn enable_transfers(origin: OriginFor, currency_id: CurrencyId) -> DispatchResult { + T::UpdateOrigin::ensure_origin(origin)?; + + if DisabledTransfers::::take(currency_id).is_some() { + Self::deposit_event(Event::TransferAccountEnabled(currency_id)); + }; + Ok(()) + } + } +} + +pub struct SwitchOffTransactionFilter(sp_std::marker::PhantomData); +impl Contains for SwitchOffTransactionFilter +where + ::Call: GetCallMetadata, +{ + fn contains(call: &T::Call) -> bool { + let CallMetadata { function_name, pallet_name } = call.get_call_metadata(); + SwitchedOffTransactions::::contains_key(( + pallet_name.as_bytes(), + function_name.as_bytes(), + )) + } +} + +pub struct DisableTransfersFilter(sp_std::marker::PhantomData); +impl Contains for DisableTransfersFilter { + fn contains(currency_id: &CurrencyId) -> bool { + DisabledTransfers::::contains_key(currency_id) + } +} diff --git a/pallets/call-switchgear/src/mock.rs b/pallets/call-switchgear/src/mock.rs new file mode 100644 index 0000000000..b2ecfaa977 --- /dev/null +++ b/pallets/call-switchgear/src/mock.rs @@ -0,0 +1,143 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Mocks for the transaction pause module. + +#![cfg(test)] + +use frame_support::{construct_runtime, ord_parameter_types, parameter_types}; +use frame_system::EnsureSignedBy; +use node_primitives::{Amount, Balance, CurrencyId, TokenSymbol}; +use orml_traits::parameter_type_with_key; +use sp_core::H256; +use sp_runtime::{testing::Header, traits::IdentityLookup}; + +use super::*; + +pub type AccountId = u128; +pub const ALICE: AccountId = 1; +pub const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); + +use crate as bifrost_call_switchgear; + +parameter_types! { + pub const BlockHashCount: u64 = 250; +} + +impl frame_system::Config for Runtime { + type Origin = Origin; + type Index = u64; + type BlockNumber = u64; + type Call = Call; + type Hash = H256; + type Hashing = ::sp_runtime::traits::BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Header = Header; + type Event = Event; + type BlockHashCount = BlockHashCount; + type BlockWeights = (); + type BlockLength = (); + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type DbWeight = (); + type BaseCallFilter = frame_support::traits::Everything; + type SystemWeightInfo = (); + type SS58Prefix = (); + type OnSetCode = (); +} + +parameter_types! { + pub const NativeTokenExistentialDeposit: Balance = 10; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type Balance = Balance; + type DustRemoval = (); + type Event = Event; + type ExistentialDeposit = NativeTokenExistentialDeposit; + type AccountStore = System; + type MaxLocks = (); + type MaxReserves = MaxReserves; + type ReserveIdentifier = (); + type WeightInfo = (); +} + +parameter_type_with_key! { + pub ExistentialDeposits: |_currency_id: CurrencyId| -> Balance { + Default::default() + }; +} + +impl orml_tokens::Config for Runtime { + type Event = Event; + type Balance = Balance; + type Amount = Amount; + type CurrencyId = CurrencyId; + type WeightInfo = (); + type ExistentialDeposits = ExistentialDeposits; + type OnDust = (); + type MaxLocks = (); + type DustRemovalWhitelist = frame_support::traits::Nothing; +} + +ord_parameter_types! { + pub const One: AccountId = 1; +} + +impl Config for Runtime { + type Event = Event; + type UpdateOrigin = EnsureSignedBy; + type WeightInfo = (); +} + +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlock; + +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic + { + System: frame_system::{Pallet, Call, Config, Storage, Event}, + CallSwitchgear: bifrost_call_switchgear::{Pallet, Storage, Call, Event}, + Balances: pallet_balances::{Pallet, Storage, Call, Event}, + Tokens: orml_tokens::{Pallet, Storage, Call, Event}, + } +); + +pub struct ExtBuilder; + +impl Default for ExtBuilder { + fn default() -> Self { + ExtBuilder + } +} + +impl ExtBuilder { + pub fn build(self) -> sp_io::TestExternalities { + let t = frame_system::GenesisConfig::default().build_storage::().unwrap(); + + t.into() + } +} diff --git a/pallets/call-switchgear/src/tests.rs b/pallets/call-switchgear/src/tests.rs new file mode 100644 index 0000000000..2353e12795 --- /dev/null +++ b/pallets/call-switchgear/src/tests.rs @@ -0,0 +1,183 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Unit tests for the transaction pause module. + +#![cfg(test)] + +use frame_support::{assert_noop, assert_ok}; +use mock::{Event, *}; +use sp_runtime::traits::BadOrigin; + +use super::*; + +const BALANCE_TRANSFER: &::Call = + &mock::Call::Balances(pallet_balances::Call::transfer { dest: ALICE, value: 10 }); +const TOKENS_TRANSFER: &::Call = + &mock::Call::Tokens(orml_tokens::Call::transfer { dest: ALICE, currency_id: KSM, amount: 10 }); + +#[test] +fn switchoff_transaction_should_work() { + ExtBuilder::default().build().execute_with(|| { + System::set_block_number(1); + + assert_noop!( + CallSwitchgear::switchoff_transaction( + Origin::signed(5), + b"Balances".to_vec(), + b"transfer".to_vec() + ), + BadOrigin + ); + + assert_eq!( + CallSwitchgear::get_switchoff_transactions(( + b"Balances".to_vec(), + b"transfer".to_vec() + )), + None + ); + assert_ok!(CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"Balances".to_vec(), + b"transfer".to_vec() + )); + System::assert_last_event(Event::CallSwitchgear(crate::Event::TransactionSwitchedoff( + b"Balances".to_vec(), + b"transfer".to_vec(), + ))); + assert_eq!( + CallSwitchgear::get_switchoff_transactions(( + b"Balances".to_vec(), + b"transfer".to_vec() + )), + Some(()) + ); + + assert_noop!( + CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"CallSwitchgear".to_vec(), + b"switchoff_transaction".to_vec() + ), + Error::::CannotSwitchOff + ); + assert_noop!( + CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"CallSwitchgear".to_vec(), + b"some_other_call".to_vec() + ), + Error::::CannotSwitchOff + ); + assert_ok!(CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"OtherPallet".to_vec(), + b"switchoff_transaction".to_vec() + )); + }); +} + +#[test] +fn switchon_transaction_transaction_should_work() { + ExtBuilder::default().build().execute_with(|| { + System::set_block_number(1); + + assert_ok!(CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"Balances".to_vec(), + b"transfer".to_vec() + )); + assert_eq!( + CallSwitchgear::get_switchoff_transactions(( + b"Balances".to_vec(), + b"transfer".to_vec() + )), + Some(()) + ); + + assert_noop!( + CallSwitchgear::switchoff_transaction( + Origin::signed(5), + b"Balances".to_vec(), + b"transfer".to_vec() + ), + BadOrigin + ); + + assert_ok!(CallSwitchgear::switchon_transaction( + Origin::signed(1), + b"Balances".to_vec(), + b"transfer".to_vec() + )); + System::assert_last_event(Event::CallSwitchgear(crate::Event::TransactionSwitchedOn( + b"Balances".to_vec(), + b"transfer".to_vec(), + ))); + assert_eq!( + CallSwitchgear::get_switchoff_transactions(( + b"Balances".to_vec(), + b"transfer".to_vec() + )), + None + ); + }); +} + +#[test] +fn switchoff_transaction_filter_work() { + ExtBuilder::default().build().execute_with(|| { + assert!(!SwitchOffTransactionFilter::::contains(BALANCE_TRANSFER)); + assert!(!SwitchOffTransactionFilter::::contains(TOKENS_TRANSFER)); + assert_ok!(CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"Balances".to_vec(), + b"transfer".to_vec() + )); + assert_ok!(CallSwitchgear::switchoff_transaction( + Origin::signed(1), + b"Tokens".to_vec(), + b"transfer".to_vec() + )); + assert!(SwitchOffTransactionFilter::::contains(BALANCE_TRANSFER)); + assert!(SwitchOffTransactionFilter::::contains(TOKENS_TRANSFER)); + assert_ok!(CallSwitchgear::switchon_transaction( + Origin::signed(1), + b"Balances".to_vec(), + b"transfer".to_vec() + )); + assert_ok!(CallSwitchgear::switchon_transaction( + Origin::signed(1), + b"Tokens".to_vec(), + b"transfer".to_vec() + )); + assert!(!SwitchOffTransactionFilter::::contains(BALANCE_TRANSFER)); + assert!(!SwitchOffTransactionFilter::::contains(TOKENS_TRANSFER)); + }); +} + +#[test] +fn disable_transfers_filter_should_work() { + ExtBuilder::default().build().execute_with(|| { + assert!(!DisableTransfersFilter::::contains(&KSM)); + assert_ok!(CallSwitchgear::disable_transfers(Origin::signed(1), KSM)); + assert!(DisableTransfersFilter::::contains(&KSM)); + assert_ok!(CallSwitchgear::enable_transfers(Origin::signed(1), KSM)); + assert!(!DisableTransfersFilter::::contains(&KSM)); + }); +} diff --git a/pallets/call-switchgear/src/weights.rs b/pallets/call-switchgear/src/weights.rs new file mode 100644 index 0000000000..e4bc8a055a --- /dev/null +++ b/pallets/call-switchgear/src/weights.rs @@ -0,0 +1,53 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{ + traits::Get, + weights::{constants::RocksDbWeight, Weight}, +}; +use sp_std::marker::PhantomData; + +/// Weight functions needed for the pallet. +pub trait WeightInfo { + fn switchoff_transaction() -> Weight; + fn switchon_transaction() -> Weight; + fn disable_transfers() -> Weight; + fn enable_transfers() -> Weight; +} + +// For backwards compatibility and tests +impl WeightInfo for () { + fn switchoff_transaction() -> Weight { + (50_000_000 as Weight) + } + + fn switchon_transaction() -> Weight { + (50_000_000 as Weight) + } + + fn disable_transfers() -> Weight { + (50_000_000 as Weight) + } + + fn enable_transfers() -> Weight { + (50_000_000 as Weight) + } +} diff --git a/pallets/flexible-fee/src/lib.rs b/pallets/flexible-fee/src/lib.rs index 7a1aece708..3954c27106 100644 --- a/pallets/flexible-fee/src/lib.rs +++ b/pallets/flexible-fee/src/lib.rs @@ -16,9 +16,6 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -// The swap pool algorithm implements Balancer protocol -// For more details, refer to https://balancer.finance/whitepaper/ - #![cfg_attr(not(feature = "std"), no_std)] use core::convert::{Into, TryFrom}; diff --git a/pallets/lightening-redeem/src/benchmarking.rs b/pallets/lightening-redeem/src/benchmarking.rs index 13b476f2f2..bc024b004d 100644 --- a/pallets/lightening-redeem/src/benchmarking.rs +++ b/pallets/lightening-redeem/src/benchmarking.rs @@ -48,20 +48,20 @@ benchmarks! { edit_exchange_price { let origin = T::ControlOrigin::successful_origin(); let price = BalanceOf::::unique_saturated_from(50u128); - let call = Call::::edit_exchange_price(price); + let call = Call::::edit_exchange_price { price }; }: {call.dispatch_bypass_filter(origin)?} edit_release_per_day { let origin = T::ControlOrigin::successful_origin(); let amount_per_day = BalanceOf::::unique_saturated_from(50u128); - let call = Call::::edit_release_per_day(amount_per_day); + let call = Call::::edit_release_per_day { amount_per_day }; }: {call.dispatch_bypass_filter(origin)?} edit_release_start_and_end_block { let origin = T::ControlOrigin::successful_origin(); let start = BlockNumberFor::::from(50u32); let end = BlockNumberFor::::from(100u32); - let call = Call::::edit_release_start_and_end_block(start, end); + let call = Call::::edit_release_start_and_end_block { start, end }; }: {call.dispatch_bypass_filter(origin)?} on_initialize { diff --git a/pallets/salp-lite/src/benchmarking.rs b/pallets/salp-lite/src/benchmarking.rs index 214b335ae4..a84784e4ea 100644 --- a/pallets/salp-lite/src/benchmarking.rs +++ b/pallets/salp-lite/src/benchmarking.rs @@ -49,21 +49,10 @@ fn create_fund(id: u32) -> ParaId { #[allow(dead_code)] fn contribute_fund(who: &T::AccountId, index: ParaId) { let value = T::MinContribution::get(); - assert_ok!(Salp::::contribute(RawOrigin::Signed(who.clone()).into(), index, value)); + assert_ok!(Salp::::issue(RawOrigin::Root.into(), who.clone(), index, value, [0; 32])); } benchmarks! { - contribute { - let fund_index = create_fund::(1); - let caller: T::AccountId = whitelisted_caller(); - let contribution = T::MinContribution::get(); - assert_ok!(Salp::::set_balance(&caller, contribution)); - }: _(RawOrigin::Signed(caller.clone()), fund_index, contribution) - verify { - let fund = Salp::::funds(fund_index).unwrap(); - let (_, status) = Salp::::contribution(fund.trie_index, &caller); - assert_eq!(status, ContributionStatus::Contributing(contribution)); - } refund { let fund_index = create_fund::(1); @@ -79,7 +68,7 @@ benchmarks! { }: _(RawOrigin::Signed(caller.clone()), fund_index) verify { let (_, status) = Salp::::contribution(fund.trie_index, &caller); - assert_eq!(status, ContributionStatus::Refunded); + assert_eq!(status, ContributionStatus::Idle); assert_last_event::(Event::::Refunded(caller.clone(), fund_index, contribution).into()) } diff --git a/pallets/salp-lite/src/lib.rs b/pallets/salp-lite/src/lib.rs index bea036c0e4..13dd5be9ca 100644 --- a/pallets/salp-lite/src/lib.rs +++ b/pallets/salp-lite/src/lib.rs @@ -909,11 +909,15 @@ pub mod pallet { fn kill_contribution(index: TrieIndex, who: &AccountIdOf) { who.using_encoded(|b| child::kill(&Self::id_from_index(index), b)); } + + #[allow(dead_code)] + pub(crate) fn set_balance(who: &AccountIdOf, value: BalanceOf) -> DispatchResult { + T::MultiCurrency::deposit(T::RelayChainToken::get(), who, value) + } } } pub trait WeightInfo { - fn contribute() -> Weight; fn unlock() -> Weight; fn batch_unlock(k: u32) -> Weight; fn refund() -> Weight; @@ -922,10 +926,6 @@ pub trait WeightInfo { // For backwards compatibility and tests impl WeightInfo for () { - fn contribute() -> Weight { - 50_000_000 as Weight - } - fn unlock() -> Weight { 50_000_000 as Weight } diff --git a/pallets/salp-lite/src/mock.rs b/pallets/salp-lite/src/mock.rs index 8d389b481f..e7dae24376 100644 --- a/pallets/salp-lite/src/mock.rs +++ b/pallets/salp-lite/src/mock.rs @@ -247,10 +247,6 @@ impl salp::Config for Test { pub struct SalpWeightInfo; impl WeightInfo for SalpWeightInfo { - fn contribute() -> Weight { - 0 - } - fn unlock() -> Weight { 0 } diff --git a/pallets/salp/src/benchmarking.rs b/pallets/salp/src/benchmarking.rs index 251eef821c..53a613b314 100644 --- a/pallets/salp/src/benchmarking.rs +++ b/pallets/salp/src/benchmarking.rs @@ -120,7 +120,7 @@ benchmarks! { for i in 0 .. k { caller = account("contributor", i, 0); contribute_fund::(&caller,fund_index); - Salp::::confirm_contribute( + let _ = Salp::::confirm_contribute( RawOrigin::Root.into(), caller.clone(), fund_index, diff --git a/pallets/token-issuer/src/benchmarking.rs b/pallets/token-issuer/src/benchmarking.rs index 3d19baa155..2a33065f20 100644 --- a/pallets/token-issuer/src/benchmarking.rs +++ b/pallets/token-issuer/src/benchmarking.rs @@ -32,41 +32,41 @@ benchmarks! { let origin = T::ControlOrigin::successful_origin(); let account: T::AccountId = whitelisted_caller(); let currency_id = CurrencyId::Token(TokenSymbol::KSM); - let call = Call::::add_to_issue_whitelist(currency_id, account); + let call = Call::::add_to_issue_whitelist { currency_id, account }; }: {call.dispatch_bypass_filter(origin)?} remove_from_issue_whitelist { let origin = T::ControlOrigin::successful_origin(); let account: T::AccountId = whitelisted_caller(); let currency_id = CurrencyId::Token(TokenSymbol::KSM); - let add_call = Call::::add_to_issue_whitelist(currency_id, account.clone()); + let add_call = Call::::add_to_issue_whitelist { currency_id, account: account.clone() }; add_call.dispatch_bypass_filter(origin.clone())?; - let remove_call = Call::::remove_from_issue_whitelist(currency_id, account); + let remove_call = Call::::remove_from_issue_whitelist { currency_id, account }; }: {remove_call.dispatch_bypass_filter(origin)?} add_to_transfer_whitelist { let origin = T::ControlOrigin::successful_origin(); let account: T::AccountId = whitelisted_caller(); let currency_id = CurrencyId::Token(TokenSymbol::KSM); - let call = Call::::add_to_transfer_whitelist(currency_id, account); + let call = Call::::add_to_transfer_whitelist { currency_id, account }; }: {call.dispatch_bypass_filter(origin)?} remove_from_transfer_whitelist { let origin = T::ControlOrigin::successful_origin(); let account: T::AccountId = whitelisted_caller(); let currency_id = CurrencyId::Token(TokenSymbol::KSM); - let add_call = Call::::add_to_transfer_whitelist(currency_id, account.clone()); + let add_call = Call::::add_to_transfer_whitelist { currency_id, account: account.clone() }; add_call.dispatch_bypass_filter(origin.clone())?; - let remove_call = Call::::remove_from_transfer_whitelist(currency_id, account); + let remove_call = Call::::remove_from_transfer_whitelist { currency_id, account }; }: {remove_call.dispatch_bypass_filter(origin)?} issue { let origin = T::ControlOrigin::successful_origin(); let caller: T::AccountId = whitelisted_caller(); let currency_id = CurrencyId::Token(TokenSymbol::KSM); - let add_call = Call::::add_to_issue_whitelist(currency_id.clone(), caller.clone()); + let add_call = Call::::add_to_issue_whitelist { currency_id: currency_id.clone(), account: caller.clone() }; add_call.dispatch_bypass_filter(origin.clone())?; let original_balance = T::MultiCurrency::free_balance(currency_id.clone(), &caller); @@ -82,7 +82,7 @@ benchmarks! { let currency_id = CurrencyId::Token(TokenSymbol::KSM); // add caller to the transfer whitelist - let add_transfer_call = Call::::add_to_transfer_whitelist(currency_id.clone(), caller.clone()); + let add_transfer_call = Call::::add_to_transfer_whitelist { currency_id: currency_id.clone(), account: caller.clone() }; add_transfer_call.dispatch_bypass_filter(origin.clone())?; // transfer some ksm from caller account to receiver account diff --git a/pallets/vtoken-mint/src/benchmarking.rs b/pallets/vtoken-mint/src/benchmarking.rs index 1f11fa53d7..9fd4b9b9f5 100644 --- a/pallets/vtoken-mint/src/benchmarking.rs +++ b/pallets/vtoken-mint/src/benchmarking.rs @@ -29,31 +29,31 @@ use crate::Pallet as VtokenMint; benchmarks! { set_token_staking_lock_period { - let token_id = CurrencyId::Token(TokenSymbol::DOT); + let token_id = CurrencyId::Token(TokenSymbol::KSM); let locking_blocks = T::BlockNumber::from(100u32); }: _(RawOrigin::Root, token_id, locking_blocks) set_vtoken_pool { - let currency_id = CurrencyId::Token(TokenSymbol::DOT); + let currency_id = CurrencyId::Token(TokenSymbol::KSM); let new_token_pool = BalanceOf::::unique_saturated_from(10u32 as u128); let new_vtoken_pool = BalanceOf::::unique_saturated_from(20u32 as u128); }: _(RawOrigin::Root, currency_id, new_token_pool, new_vtoken_pool) mint { - VtokenMint::::expand_mint_pool(CurrencyId::Token(TokenSymbol::DOT), BalanceOf::::unique_saturated_from(100u32 as u128))?; - VtokenMint::::expand_mint_pool(CurrencyId::VToken(TokenSymbol::DOT), BalanceOf::::unique_saturated_from(200u32 as u128))?; + VtokenMint::::expand_mint_pool(CurrencyId::Token(TokenSymbol::KSM), BalanceOf::::unique_saturated_from(100u32 as u128))?; + VtokenMint::::expand_mint_pool(CurrencyId::VToken(TokenSymbol::KSM), BalanceOf::::unique_saturated_from(200u32 as u128))?; let caller: T::AccountId = whitelisted_caller(); - let vtoken_id = CurrencyId::VToken(TokenSymbol::DOT); + let vtoken_id = CurrencyId::VToken(TokenSymbol::KSM); let token_amount = BalanceOf::::unique_saturated_from(10u32 as u128); }: _(RawOrigin::Signed(caller), vtoken_id, token_amount) redeem { - VtokenMint::::expand_mint_pool(CurrencyId::Token(TokenSymbol::DOT), BalanceOf::::unique_saturated_from(100u32 as u128))?; - VtokenMint::::expand_mint_pool(CurrencyId::VToken(TokenSymbol::DOT), BalanceOf::::unique_saturated_from(200u32 as u128))?; + VtokenMint::::expand_mint_pool(CurrencyId::Token(TokenSymbol::KSM), BalanceOf::::unique_saturated_from(100u32 as u128))?; + VtokenMint::::expand_mint_pool(CurrencyId::VToken(TokenSymbol::KSM), BalanceOf::::unique_saturated_from(200u32 as u128))?; let caller: T::AccountId = whitelisted_caller(); - let token_id = CurrencyId::Token(TokenSymbol::DOT); + let token_id = CurrencyId::Token(TokenSymbol::KSM); let vtoken_amount = BalanceOf::::unique_saturated_from(10u32 as u128); }: _(RawOrigin::Signed(caller), token_id, vtoken_amount) diff --git a/runtime/asgard/Cargo.toml b/runtime/asgard/Cargo.toml index 43a878c2cd..596480e67f 100644 --- a/runtime/asgard/Cargo.toml +++ b/runtime/asgard/Cargo.toml @@ -59,6 +59,7 @@ pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +pallet-society = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } # Cumulus dependencies cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.11" } @@ -98,6 +99,7 @@ bifrost-vsbond-auction = { path = "../../pallets/vsbond-auction", default-featur bifrost-vtoken-mint = { path = "../../pallets/vtoken-mint", default-features = false } bifrost-token-issuer= { path = "../../pallets/token-issuer", default-features = false } bifrost-lightening-redeem= { path = "../../pallets/lightening-redeem", default-features = false } +bifrost-call-switchgear= { path = "../../pallets/call-switchgear", default-features = false } pallet-vesting = { package = "bifrost-vesting", path = "../../pallets/vesting", default-features = false } xcm-support = { path = "../../xcm-support", default-features = false } @@ -151,6 +153,7 @@ std = [ "pallet-session/std", "pallet-vesting/std", "pallet-utility/std", + "pallet-society/std", "sp-arithmetic/std", "sp-api/std", "sp-block-builder/std", @@ -192,6 +195,7 @@ std = [ "bifrost-liquidity-mining-rpc-runtime-api/std", "bifrost-token-issuer/std", "bifrost-lightening-redeem/std", + "bifrost-call-switchgear/std", "xcm-support/std", "orml-currencies/std", "orml-traits/std", @@ -212,7 +216,9 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "pallet-society/runtime-benchmarks", "bifrost-salp/runtime-benchmarks", + "bifrost-salp-lite/runtime-benchmarks", "bifrost-bancor/runtime-benchmarks", "bifrost-flexible-fee/runtime-benchmarks", "bifrost-vtoken-mint/runtime-benchmarks", @@ -220,6 +226,7 @@ runtime-benchmarks = [ "bifrost-vsbond-auction/runtime-benchmarks", "bifrost-token-issuer/runtime-benchmarks", "bifrost-lightening-redeem/runtime-benchmarks", + "bifrost-call-switchgear/runtime-benchmarks", ] try-runtime = [ diff --git a/runtime/asgard/src/lib.rs b/runtime/asgard/src/lib.rs index 0b0b25d70f..06ce5f17e9 100644 --- a/runtime/asgard/src/lib.rs +++ b/runtime/asgard/src/lib.rs @@ -184,6 +184,88 @@ parameter_types! { pub const SS58Prefix: u8 = 6; } +pub struct CallFilter; +impl Contains for CallFilter { + fn contains(call: &Call) -> bool { + let is_core_call = + matches!(call, Call::System(_) | Call::Timestamp(_) | Call::ParachainSystem(_)); + if is_core_call { + // always allow core call + return true; + } + + let is_switched_off = + bifrost_call_switchgear::SwitchOffTransactionFilter::::contains(call); + if is_switched_off { + // no switched off call + return false; + } + + // disable transfer + let is_transfer = matches!(call, Call::Currencies(_) | Call::Tokens(_) | Call::Balances(_)); + if is_transfer { + let is_disabled = match *call { + // orml-currencies module + Call::Currencies(orml_currencies::Call::transfer { + dest: _, + currency_id, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Currencies(orml_currencies::Call::transfer_native_currency { + dest: _, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + // orml-tokens module + Call::Tokens(orml_tokens::Call::transfer { dest: _, currency_id, amount: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Tokens(orml_tokens::Call::transfer_all { + dest: _, + currency_id, + keep_alive: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Tokens(orml_tokens::Call::transfer_keep_alive { + dest: _, + currency_id, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + // Balances module + Call::Balances(pallet_balances::Call::transfer { dest: _, value: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + Call::Balances(pallet_balances::Call::transfer_keep_alive { + dest: _, + value: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + Call::Balances(pallet_balances::Call::transfer_all { dest: _, keep_alive: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + _ => false, + }; + + if is_disabled { + // no switched off call + return false; + } + } + + true + } +} + parameter_types! { pub const NativeCurrencyId: CurrencyId = CurrencyId::Native(TokenSymbol::ASG); pub const RelayCurrencyId: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); @@ -211,7 +293,7 @@ impl frame_system::Config for Runtime { type AccountData = pallet_balances::AccountData; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - type BaseCallFilter = Everything; + type BaseCallFilter = CallFilter; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; type BlockLength = RuntimeBlockLength; @@ -1000,6 +1082,7 @@ orml_traits::parameter_type_with_key! { &CurrencyId::Stable(TokenSymbol::KUSD) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::KSM) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::KAR) => 10 * MILLICENTS, + &CurrencyId::Token(TokenSymbol::DOT) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::ZLK) => 1_000_000_000_000, // ZLK has a decimals of 10e18 &CurrencyId::VSToken(TokenSymbol::KSM) => 10 * MILLICENTS, &CurrencyId::VSToken(TokenSymbol::DOT) => 10 * MILLICENTS, @@ -1333,6 +1416,13 @@ impl bifrost_lightening_redeem::Config for Runtime { type WeightInfo = weights::bifrost_lightening_redeem::WeightInfo; } +impl bifrost_call_switchgear::Config for Runtime { + type Event = Event; + type UpdateOrigin = + EnsureOneOf; + type WeightInfo = weights::bifrost_call_switchgear::WeightInfo; +} + // bifrost runtime end // zenlink runtime start @@ -1514,6 +1604,7 @@ construct_runtime! { TokenIssuer: bifrost_token_issuer::{Pallet, Call, Storage, Event} = 109, LighteningRedeem: bifrost_lightening_redeem::{Pallet, Call, Storage, Event} = 110, SalpLite: bifrost_salp_lite::{Pallet, Call, Storage, Event} = 111, + CallSwitchgear: bifrost_call_switchgear::{Pallet, Storage, Call, Event} = 112, } } @@ -1796,6 +1887,7 @@ impl_runtime_apis! { let mut list = Vec::::new(); list_benchmark!(list, extra, bifrost_salp, Salp); + list_benchmark!(list, extra, bifrost_salp_lite, SalpLite); list_benchmark!(list, extra, bifrost_bancor, Bancor); list_benchmark!(list, extra, bifrost_flexible_fee, FlexibleFee); list_benchmark!(list, extra, bifrost_vtoken_mint, VtokenMint); @@ -1803,6 +1895,7 @@ impl_runtime_apis! { list_benchmark!(list, extra, bifrost_vsbond_auction, VSBondAuction); list_benchmark!(list, extra, bifrost_token_issuer, TokenIssuer); list_benchmark!(list, extra, bifrost_lightening_redeem, LighteningRedeem); + list_benchmark!(list, extra, bifrost_call_switchgear, CallSwitchgear); let storage_info = AllPalletsWithSystem::storage_info(); @@ -1834,6 +1927,7 @@ impl_runtime_apis! { let mut batches = Vec::::new(); let params = (&config, &whitelist); add_benchmark!(params, batches, bifrost_salp, Salp); + add_benchmark!(params, batches, bifrost_salp_lite, SalpLite); add_benchmark!(params, batches, bifrost_bancor, Bancor); add_benchmark!(params, batches, bifrost_flexible_fee, FlexibleFee); add_benchmark!(params, batches, bifrost_vtoken_mint, VtokenMint); @@ -1841,6 +1935,7 @@ impl_runtime_apis! { add_benchmark!(params, batches, bifrost_vsbond_auction, VSBondAuction); add_benchmark!(params, batches, bifrost_token_issuer, TokenIssuer); add_benchmark!(params, batches, bifrost_lightening_redeem, LighteningRedeem); + add_benchmark!(params, batches, bifrost_call_switchgear, CallSwitchgear); if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } Ok(batches) diff --git a/runtime/asgard/src/weights/bifrost_bancor.rs b/runtime/asgard/src/weights/bifrost_bancor.rs index a038cea54e..b6cf808ac7 100644 --- a/runtime/asgard/src/weights/bifrost_bancor.rs +++ b/runtime/asgard/src/weights/bifrost_bancor.rs @@ -16,10 +16,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_bancor +//! Autogenerated weights for `bifrost_bancor` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-11, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -36,31 +36,44 @@ // --header=./HEADER-GPL3 // --output=./runtime/asgard/src/weights/bifrost_bancor.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_bancor. +/// Weight functions for `bifrost_bancor`. pub struct WeightInfo(PhantomData); impl bifrost_bancor::WeightInfo for WeightInfo { + // Storage: Tokens Accounts (r:1 w:1) + // Storage: Tokens TotalIssuance (r:1 w:1) + // Storage: Bancor BancorReserve (r:1 w:1) fn add_token_to_pool() -> Weight { - (64_271_000 as Weight) + (109_574_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight)) } + // Storage: Tokens Accounts (r:1 w:1) + // Storage: Bancor BancorPools (r:1 w:1) + // Storage: Tokens TotalIssuance (r:1 w:1) fn exchange_for_token() -> Weight { - (91_953_000 as Weight) + (136_423_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight)) } + // Storage: Tokens Accounts (r:1 w:1) + // Storage: Bancor BancorPools (r:1 w:1) + // Storage: Tokens TotalIssuance (r:1 w:1) fn exchange_for_vstoken() -> Weight { - (79_409_000 as Weight) + (126_910_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight)) } + // Storage: Bancor BancorReserve (r:3 w:0) fn on_initialize() -> Weight { - (21_690_000 as Weight).saturating_add(T::DbWeight::get().reads(3 as Weight)) + (78_733_000 as Weight) + .saturating_add(T::DbWeight::get().reads(3 as Weight)) } } diff --git a/runtime/asgard/src/weights/bifrost_call_switchgear.rs b/runtime/asgard/src/weights/bifrost_call_switchgear.rs new file mode 100644 index 0000000000..5e7ae2f84e --- /dev/null +++ b/runtime/asgard/src/weights/bifrost_call_switchgear.rs @@ -0,0 +1,74 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Autogenerated weights for `bifrost_call_switchgear` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-11-01, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 + +// Executed Command: +// target/release/bifrost +// benchmark +// --chain=asgard-local +// --steps=50 +// --repeat=1 +// --pallet=bifrost_call_switchgear +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --header=./HEADER-GPL3 +// --output=./runtime/asgard/src/weights/bifrost_call_switchgear.rs + + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `bifrost_call_switchgear`. +pub struct WeightInfo(PhantomData); +impl bifrost_call_switchgear::WeightInfo for WeightInfo { + // Storage: CallSwitchgear SwitchedOffTransactions (r:1 w:1) + fn switchoff_transaction() -> Weight { + (26_520_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear SwitchedOffTransactions (r:1 w:1) + fn switchon_transaction() -> Weight { + (25_178_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear DisabledTransfers (r:1 w:1) + fn disable_transfers() -> Weight { + (25_318_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear DisabledTransfers (r:1 w:1) + fn enable_transfers() -> Weight { + (23_484_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } +} diff --git a/runtime/asgard/src/weights/bifrost_flexible_fee.rs b/runtime/asgard/src/weights/bifrost_flexible_fee.rs index 2da33f55b5..1dd05ad0b5 100644 --- a/runtime/asgard/src/weights/bifrost_flexible_fee.rs +++ b/runtime/asgard/src/weights/bifrost_flexible_fee.rs @@ -16,10 +16,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_flexible_fee +//! Autogenerated weights for `bifrost_flexible_fee` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-11, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -36,18 +36,20 @@ // --header=./HEADER-GPL3 // --output=./runtime/asgard/src/weights/bifrost_flexible_fee.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_flexible_fee. +/// Weight functions for `bifrost_flexible_fee`. pub struct WeightInfo(PhantomData); impl bifrost_flexible_fee::WeightInfo for WeightInfo { + // Storage: FlexibleFee UserFeeChargeOrderList (r:0 w:1) fn set_user_fee_charge_order() -> Weight { - (6_081_000 as Weight) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (6_345_000 as Weight) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } } diff --git a/runtime/asgard/src/weights/bifrost_lightening_redeem.rs b/runtime/asgard/src/weights/bifrost_lightening_redeem.rs index 1aeeaa3489..bfd433b593 100644 --- a/runtime/asgard/src/weights/bifrost_lightening_redeem.rs +++ b/runtime/asgard/src/weights/bifrost_lightening_redeem.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `bifrost_lightening_redeem` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-10-09, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -27,7 +27,7 @@ // benchmark // --chain=asgard-local // --steps=50 -// --repeat=1 +// --repeat=20 // --pallet=bifrost_lightening_redeem // --extrinsic=* // --execution=wasm @@ -44,13 +44,13 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_lightening_redeem. +/// Weight functions for `bifrost_lightening_redeem`. pub struct WeightInfo(PhantomData); impl bifrost_lightening_redeem::WeightInfo for WeightInfo { // Storage: Tokens Accounts (r:2 w:2) // Storage: System Account (r:1 w:1) fn add_ksm_to_pool() -> Weight { - (89_467_000 as Weight) + (154_085_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight)) } @@ -59,31 +59,31 @@ impl bifrost_lightening_redeem::WeightInfo for WeightIn // Storage: Tokens Accounts (r:6 w:6) // Storage: System Account (r:1 w:1) fn exchange_for_ksm() -> Weight { - (189_565_000 as Weight) + (309_253_000 as Weight) .saturating_add(T::DbWeight::get().reads(9 as Weight)) .saturating_add(T::DbWeight::get().writes(8 as Weight)) } // Storage: LighteningRedeem ExchangePriceDiscount (r:1 w:1) fn edit_exchange_price() -> Weight { - (25_427_000 as Weight) + (53_436_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: LighteningRedeem TokenReleasePerDay (r:1 w:1) fn edit_release_per_day() -> Weight { - (25_718_000 as Weight) + (53_583_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: LighteningRedeem StartEndReleaseBlock (r:1 w:1) fn edit_release_start_and_end_block() -> Weight { - (25_608_000 as Weight) + (54_799_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: LighteningRedeem StartEndReleaseBlock (r:1 w:0) fn on_initialize() -> Weight { - (5_009_000 as Weight) + (11_427_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) } } diff --git a/runtime/asgard/src/weights/bifrost_minter_reward.rs b/runtime/asgard/src/weights/bifrost_minter_reward.rs index dd5bc9fc6c..a3a322c964 100644 --- a/runtime/asgard/src/weights/bifrost_minter_reward.rs +++ b/runtime/asgard/src/weights/bifrost_minter_reward.rs @@ -16,10 +16,10 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_minter_reward +//! Autogenerated weights for `bifrost_minter_reward` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-11, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -36,22 +36,31 @@ // --header=./HEADER-GPL3 // --output=./runtime/asgard/src/weights/bifrost_minter_reward.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_minter_reward. +/// Weight functions for `bifrost_minter_reward`. pub struct WeightInfo(PhantomData); impl bifrost_minter_reward::WeightInfo for WeightInfo { + // Storage: MinterReward UserReward (r:1 w:1) fn claim_reward() -> Weight { - (49_272_000 as Weight) + (96_673_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } + // Storage: MinterReward CurrentCycle (r:1 w:1) + // Storage: MinterReward RewardPerBlock (r:1 w:1) + // Storage: MinterReward CurrentRoundStartAt (r:1 w:1) + // Storage: MinterReward MaximumVtokenMinted (r:1 w:1) + // Storage: MinterReward CurrencyWeights (r:4 w:0) + // Storage: MinterReward Minter (r:1 w:0) fn on_initialize() -> Weight { - (70_943_000 as Weight) + (248_932_000 as Weight) .saturating_add(T::DbWeight::get().reads(9 as Weight)) .saturating_add(T::DbWeight::get().writes(4 as Weight)) } diff --git a/runtime/asgard/src/weights/bifrost_salp.rs b/runtime/asgard/src/weights/bifrost_salp.rs index 591e4ed0da..3620a4616b 100644 --- a/runtime/asgard/src/weights/bifrost_salp.rs +++ b/runtime/asgard/src/weights/bifrost_salp.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `bifrost_salp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-09-07, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -27,7 +27,7 @@ // benchmark // --chain=asgard-local // --steps=50 -// --repeat=1 +// --repeat=20 // --pallet=bifrost_salp // --extrinsic=* // --execution=wasm @@ -44,57 +44,556 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_salp. +/// Weight functions for `bifrost_salp`. pub struct WeightInfo(PhantomData); impl bifrost_salp::WeightInfo for WeightInfo { // Storage: Salp Funds (r:1 w:0) // Storage: Tokens Accounts (r:1 w:1) // Storage: Salp CurrentNonce (r:1 w:1) + // Storage: ParachainInfo ParachainId (r:1 w:0) // Storage: ParachainSystem HostConfiguration (r:1 w:0) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn contribute() -> Weight { - (122_561_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) + (462_345_000 as Weight) + .saturating_add(T::DbWeight::get().reads(7 as Weight)) .saturating_add(T::DbWeight::get().writes(4 as Weight)) } // Storage: Salp Funds (r:1 w:0) - // Storage: Salp RefundPool (r:1 w:1) // Storage: Tokens Accounts (r:4 w:4) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) + // Storage: System Account (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn refund() -> Weight { - (139_712_000 as Weight) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) + (328_450_000 as Weight) + .saturating_add(T::DbWeight::get().reads(9 as Weight)) .saturating_add(T::DbWeight::get().writes(8 as Weight)) } // Storage: Salp Funds (r:1 w:0) // Storage: Tokens Accounts (r:2 w:2) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn unlock() -> Weight { - (99_237_000 as Weight) + (248_855_000 as Weight) .saturating_add(T::DbWeight::get().reads(4 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: Salp Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Account (r:1 w:1) + // Storage: unknown [0x] (r:1 w:0) + // Storage: unknown [0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0] (r:1 w:1) + // Storage: unknown [0x1793e0dee28dc36e243edc2691a5a966f4c15d0d4d432426816fcdad0229ee46] (r:1 w:1) + // Storage: unknown [0x262b3fa18a914183e88378d5601925c49b7bcbf07101f6a73b1e7c38b6c23d23] (r:1 w:1) + // Storage: unknown [0x273401c6dc3eb9f6a74a2f7181b1eef87e486620f91dd0fb5ed0ff69747447ae] (r:1 w:1) + // Storage: unknown [0xb2233113701bdbed1e43339a304e77ade52c7b0204a5366dba4c12c9c1a90811] (r:1 w:1) + // Storage: unknown [0xbcf11cdfc92c4bf5c40d1adc80e83b0c91148a8079347419a0890363e3e0186c] (r:1 w:1) + // Storage: unknown [0xbfb77688785d1f34aaea15726de0f743afd4cd1eb8a9b2f03ec8f6cfcd2c1a8a] (r:1 w:1) + // Storage: unknown [0xc040e64ae303602c545b547ce74b24952443cfb1ea9c77f6fd49c41efcf68102] (r:1 w:1) + // Storage: unknown [0xecc728efb63d13c538d0122cd7dba2964c47c6750030158f57908845b086ca70] (r:1 w:1) + // Storage: unknown [0xfaeaef9ced7ec5a1f1d74d225cf03d269643a95c94a2892c8184227481765683] (r:1 w:1) + // Storage: unknown [0x1e14f015894dbfd07ff4c7907acc885a26b4773a7f5a907e73d1e916b7059d2b] (r:1 w:1) + // Storage: unknown [0x31363b6a3c3285cda230e1c805b99e473215cf1f2446ae76c616ab164260fab3] (r:1 w:1) + // Storage: unknown [0x57a81f30e61dd3e10fc6529335e4462cfa2bac1eda902566c924437cbe25360b] (r:1 w:1) + // Storage: unknown [0x5852d9d9072edcf8c92059e5fd0db36dd4462052ab7cec264b2c7d199d50ac3f] (r:1 w:1) + // Storage: unknown [0x63ae89fe4d673aee0b2ce473376da36c60dbd3edc5a7608cb4cf311cd5e0d635] (r:1 w:1) + // Storage: unknown [0x70c0824966fc4dfe90a9740b284e131eebfa28cac4c010724376afaa88fcddde] (r:1 w:1) + // Storage: unknown [0x7d1a7c7da2798aac8bd51675f08ddfb11a44ada2c5d5a621493d6ba35b9c3caf] (r:1 w:1) + // Storage: unknown [0xaa3b015c528422deb5b272951c9b21f64439baa57d273243f378ce9d291a30c9] (r:1 w:1) + // Storage: unknown [0xffa01c2b1e8481410b1207bac0e1f357e41581e001324873c809b383c16dd8b7] (r:1 w:1) + // Storage: unknown [0x19b003210a923977355564d664c01287ecfe83be2d465f5e99d3c03105fc2ab0] (r:1 w:1) + // Storage: unknown [0x2c1108b7cbe36e4a037eb29c204116b2f5fdb9da2635802c4de3404053c51d77] (r:1 w:1) + // Storage: unknown [0x4b6f8a87cdd23768e3dfce3ee7a2614b998a767e39035e94344f0a6089c0c4c5] (r:1 w:1) + // Storage: unknown [0x5ab0d964adf1f6ac3436b3b9e171a345ce07f01b0b35fac58e780d0dcdbf9e4c] (r:1 w:1) + // Storage: unknown [0x670d01023ac8c64b2c3da33e1d19c36c4eb1981b46571225c472841fef9e702c] (r:1 w:1) + // Storage: unknown [0x9a794f2ba173e4d3987f32b26f23634bc6a1ea6ede13756210243f026d395864] (r:1 w:1) + // Storage: unknown [0xc2c3cf3e838ea0936aac2272be3da5b1258dc53931e63045fda2a4e61cc9897b] (r:1 w:1) + // Storage: unknown [0xcbb519bbda43dcb93203c892789842e2cbf8eabbde279832fd91bb8e4fba31de] (r:1 w:1) + // Storage: unknown [0xdd8302d27abf6dc2270eca7a21b5b7af02495e7a2c33dbfbdedd421ecd7180af] (r:1 w:1) + // Storage: unknown [0x035c36e54d78f5a657005187bcadc31d6dd01bc9017ec5e1a479a673964346e6] (r:1 w:1) + // Storage: unknown [0x0f9ffb8ec2a1a1dd8bca07156eeebf830debcb4c345cd72d7377c31f98eab91a] (r:1 w:1) + // Storage: unknown [0x30ed371d94305cd05ebc3278d5faafa023b26db1fbecdcef3d2b9fab82ca8c27] (r:1 w:1) + // Storage: unknown [0x38ef26608ce2d8c63881c1957367989c990a9333cde334da98e5f5661668fea8] (r:1 w:1) + // Storage: unknown [0x397eb4b5c8440d7a1ce08239fb58b1c22700484295d3521198f162562ae772ed] (r:1 w:1) + // Storage: unknown [0x47a4353adb1bbf8f6f65faf93d0a56282d0cbe38db077ce85e35e3f466097a73] (r:1 w:1) + // Storage: unknown [0x4bf4fcbfd0cfa9763b2c40ff5957889c326f76e0ac3e364b6da7e28f3cb89e50] (r:1 w:1) + // Storage: unknown [0xd60aed2c8769890ed9d6fb94170b46fac79639c65d0dc0289340a62e86c4d831] (r:1 w:1) + // Storage: unknown [0xe92b49436c78a30d1aae41c733ac088a70a8ce9a306725618f52bdd4c4c07501] (r:1 w:1) + // Storage: unknown [0x2a8e3ae3f7519353a0e8a85c5c6d897cff5032bd945dac42e09ce6e310c143f1] (r:1 w:1) + // Storage: unknown [0x30397d885abd14d5eabc75a21e336852ac3dce3879a83b90035ceb2d607ebee9] (r:1 w:1) + // Storage: unknown [0x37c9fbaffb8eb93dc54894e8378d4e185a69e1157561a98d059657eedf5b2670] (r:1 w:1) + // Storage: unknown [0x3b24032554271fa66764953ae519d33a87bfed97231b99cba4466b3dbf99908c] (r:1 w:1) + // Storage: unknown [0xb9698194cdd5645046662d66f4a3279103508d78c9978ec54b154d42534763f1] (r:1 w:1) + // Storage: unknown [0xbba68e0920c2c5bd3487b448919c27a6867c5ee7d6699b713f56a90a651614ce] (r:1 w:1) + // Storage: unknown [0xddf83f4806c915fd142e344deb063eb5ed5721772a4feb56cfa469046d6edba1] (r:1 w:1) + // Storage: unknown [0xef325b1c8537772ada5b06519f8929f3ff049d0c09579a739a18e50370700c59] (r:1 w:1) + // Storage: unknown [0xfe2b10355a2516b8572175f4e3ef8ba8687cca3fee426b3b80bb1b8db4e08564] (r:1 w:1) + // Storage: unknown [0x2a8ec737d3db7565d0f4bbdc6f9c253d1e534f9b468d0402110d12658d50116e] (r:1 w:1) + // Storage: unknown [0x2ae6a2134fdcd8ca414b654e56361e6ac92a4674ce055ceab01fd3d9e5a204e0] (r:1 w:1) + // Storage: unknown [0x3016a40a91959adc6086e79a17cf8ee2f9e038f8d5250c724aa627c2fed9f47f] (r:1 w:1) + // Storage: unknown [0x323d73caf3f762d77ae5193f9715f8703d6bd2f3f19626fae62e7bcfab07b767] (r:1 w:1) + // Storage: unknown [0x816bb2f6c9cceafebee78babc8a3c8095aec357db1b8b6e5a4ac832492c469bc] (r:1 w:1) + // Storage: unknown [0xa50750b066f781e63bccebb57775f9d3ba7b44624bae77b9997d2a4bb80fa8d4] (r:1 w:1) + // Storage: unknown [0xa6691dea20613080f29237be39585440a5c37bd78cb3075e9f02c903b03f1e29] (r:1 w:1) + // Storage: unknown [0xc2f159a33d7f609b890d30c9af2422967c2423865bfc1d31b26046cba4c2965a] (r:1 w:1) + // Storage: unknown [0xeae0a2566b6ac214cb5298a9a8e160b8c5d467ec2543b4a6c57c31a166e082a0] (r:1 w:1) + // Storage: unknown [0x0255fb7cbf688b17898bda454f34de10cd5864bf0c9938ca898013d8c04bdb06] (r:1 w:1) + // Storage: unknown [0x0caf43f6381fb628135727230d6c750ed6004e34a8c1bb3b4f208b4819cfcf01] (r:1 w:1) + // Storage: unknown [0x23711525360aeeae0643bb1db76a386cd0cad86ecc96d99bc2d55691b0bd6d09] (r:1 w:1) + // Storage: unknown [0x314275cc77a136e89b93f70dba690912ed9927c4be09fcf7d3ad6aafb38b4b5a] (r:1 w:1) + // Storage: unknown [0x5caf00cbf2d1e5f34267b787f8515e50ca011dd67273439e2f8be3e16d1307eb] (r:1 w:1) + // Storage: unknown [0x9599e8bb6188bfc0f66c0769a7b882d686ac4de6dd64244ad3444622ee2dfa12] (r:1 w:1) + // Storage: unknown [0xc37c05727fbf73ebc724a77289e362dec9b0c3f15a3766c0ce18ccbc35abf0fb] (r:1 w:1) + // Storage: unknown [0xc7a39567e780e01f5132b82054f6b88c3fc3976dc07abf06b36f1cb3818bc45d] (r:1 w:1) + // Storage: unknown [0xcc9b77338ca78833152ff0221eb0d68eb8630515a262d1b76bbfa55c2bc0cc5b] (r:1 w:1) + // Storage: unknown [0x388cf112e930ffac757fd416bbfa6976ea3ccb42a573b182faa41a5d4e2c764a] (r:1 w:1) + // Storage: unknown [0x496ebfd4773f19bb23b23b5d22e17d1a95c575eac659ac5c01943f01ab7cd1ff] (r:1 w:1) + // Storage: unknown [0x58bc2d38e66911c6539e2e1e265b69ee36a7d5f2d9dd82b0688d45bbd64f7e6f] (r:1 w:1) + // Storage: unknown [0x847ff6f6158483969d76e0b4114493657e4d9a92008c04c4ead16fd1405fb9c1] (r:1 w:1) + // Storage: unknown [0x9388f896df5ed34ca45308f5e5c81cea93e24bd85d42dbef1e8a704c81d38b9e] (r:1 w:1) + // Storage: unknown [0xb79d749059601a3d8c72ff43e58db5f8d24bfd35228be610746544b95669a347] (r:1 w:1) + // Storage: unknown [0xc7a2a8698a7345317f4dc279d7840841c25358906c915e7ca5b8b4c09ccda808] (r:1 w:1) + // Storage: unknown [0xe5b92f2f3cc3b0ad16d1157b61df06abf15de6f133d6dee62d10f7ac45f85cc1] (r:1 w:1) + // Storage: unknown [0xfcbd15685a27928b84290bd6a4e893ad56ba73df7149a82091a8b37b502cbeb0] (r:1 w:1) + // Storage: unknown [0x0392a02d23fecb158ac27d3c28a51f0686024a9841e71710c66bcec6e29f8e0f] (r:1 w:1) + // Storage: unknown [0x2a00f03d467cd9683a9be7c4a8613015086dd05f6a7bf9a2d3bd4ef478732936] (r:1 w:1) + // Storage: unknown [0x3231b5f56292cc339ac941159eba4be941fdb8efa47e43cb28e1bb5c4266817d] (r:1 w:1) + // Storage: unknown [0x42d69131243a9e11dbe162524864c388a81a2ae550d66076b7864623c0f645e0] (r:1 w:1) + // Storage: unknown [0x586e8e7e98386d6dd27217632dba2d8314a0eca72a42409ce07a31f0638cb92d] (r:1 w:1) + // Storage: unknown [0x5b8abb2b3dceca152086f6d22af03bd1e425f7c04ad31db49e862770f394d25b] (r:1 w:1) + // Storage: unknown [0x8af99dd7260367cbf7bcbc222a092d37a2eaaeb75dc9357042d393f8d708899a] (r:1 w:1) + // Storage: unknown [0x9c16707397d0b463ed30c3826c42efe3eac8cb571c4da3b41809ddc81b0ee787] (r:1 w:1) + // Storage: unknown [0xfd9a4d435d8028aed79ecac41ba335234585df62d5d2cba54569df84da6b4b8b] (r:1 w:1) + // Storage: unknown [0x1d7d044749500157cdc9a315eaf3843cd96eaa0b8c081fd14ec8dd6e6b98ba55] (r:1 w:1) + // Storage: unknown [0x240a4e8b59a1f7d43a38a3846eaa3d638461dd509da91ec7fdd560f3afbd3c87] (r:1 w:1) + // Storage: unknown [0x63fefdf2bc89739939d368992763fe514b8e9138eb5934a64c1d0d41e1e5d7f2] (r:1 w:1) + // Storage: unknown [0x7366b11aa7e0a7a6a1bff6b1ceb7e328e840ce5494f957ee2516a439131210b3] (r:1 w:1) + // Storage: unknown [0x77682073647ac00a2e2a19c45db7979db0086d206067193b2aee81095c5500d2] (r:1 w:1) + // Storage: unknown [0xa21de1e492bfe777e3c7327fc330a6ea7dadc7d19776203e7459d34167f1b434] (r:1 w:1) + // Storage: unknown [0xac686fede961a86d2ef3223cf1c1ca6ccd9cae19e6c6362cced13401e16075f0] (r:1 w:1) + // Storage: unknown [0xb03b1adc3c8f79cdc660c09a2db4ceabe6a1a296f58eb9661dfd7d4b09eb8f1c] (r:1 w:1) + // Storage: unknown [0xe37317823a93ff9fd7a417342622ae0303245a4070e5e1434963e22f9ef7bc9e] (r:1 w:1) + // Storage: unknown [0x3ca470713b4c72106c42b22ddd848ea50dcdb3532d81b5919e496fc2ba5e4c43] (r:1 w:1) + // Storage: unknown [0x52861333b2032b6d6c01e2ae23614f208ff6444e653e17f2a09aa6b770314e20] (r:1 w:1) + // Storage: unknown [0x7a0a59a42308d5bd214941d6bfa806bcf0c15326b8298fa34493111c773604a6] (r:1 w:1) + // Storage: unknown [0x8f1fcdcf13d1ac4d60f551970f84a6f83718709b89698940caacface75bf86b8] (r:1 w:1) + // Storage: unknown [0x90de7d39f8f140e75d6c2a4cd171e0f7679030148ddf3c27d0d51719f8b46d3a] (r:1 w:1) + // Storage: unknown [0xbe13505791367e4b18783b822135776d73168dd0e8459649b93b4afbf66a47a7] (r:1 w:1) + // Storage: unknown [0xd5a45cb71afb47663c7931bc609f18203481124c132f5a2c00677a5974ecf8cf] (r:1 w:1) + // Storage: unknown [0xd82869ba4c71f32577e4c9b0b3b03e7c78b7ad7752b0f4da522e0db48d4f29a8] (r:1 w:1) + // Storage: unknown [0xd9b56a5d56fea4601b9c8eb74d156a75737ec2c23ddd28325553efa98a89849a] (r:1 w:1) + // Storage: unknown [0x63a9a48dc9889dcdb542e4756ebfe4fd4e151eedc944cf8fce8eed831e625213] (r:1 w:1) + // Storage: unknown [0x8946ef807fd99c2bb0953b4329d2881bdba2d01150e10f92b352953a60ae55de] (r:1 w:1) + // Storage: unknown [0x8dcb2165b826e2e8255fdab745a4be6833ad397ed714d95b2b65b2f971eb163f] (r:1 w:1) + // Storage: unknown [0x9b808e8559c3e77acd148d550f1bec8b5b3dae546f9dd31af9bcf7a66c4f7702] (r:1 w:1) + // Storage: unknown [0xaa8236e290b748a5df7ef66c11fb1bb74d584454be8b9a41760728daa291fa3e] (r:1 w:1) + // Storage: unknown [0xae86dbe88589fd0c835ec3ad6bc60af179ac34606cb5ef83d0e88ca2ec566aa7] (r:1 w:1) + // Storage: unknown [0xc614ff510337f671dd38dc2e8a682712d98a56847ba391356fed764345e35b26] (r:1 w:1) + // Storage: unknown [0xd5f29e9b3e39b0acd8c0553df2d51ca8650ffc86db593503d3e4a44467e3fb01] (r:1 w:1) + // Storage: unknown [0xdbafc2262c1f2f19c1175f138897165b774738d2ed51fe68701b0699f99aece3] (r:1 w:1) + // Storage: unknown [0x0778d7501991b13132ccd11471c817ea12d8c854ed0001535bb6ebf6c32aaecb] (r:1 w:1) + // Storage: unknown [0x092911fd1f91e76d07387555c0918a3a5e0e4c74e363405fd7af1659d89400f0] (r:1 w:1) + // Storage: unknown [0x0a04d087381d5acd884e1d64245af63561c7c5d1a317dca5cc3b4fa8fa631566] (r:1 w:1) + // Storage: unknown [0x189a7edf15097613065c2730b8ca2b8a250ed384a688f428539fe261b11113db] (r:1 w:1) + // Storage: unknown [0x28803fc1d667cd700cd1eb6b5e11a34a295a85b41cafd02086660f40d148dbed] (r:1 w:1) + // Storage: unknown [0x4504d19a2b788dab7f5c0c69c730fd64cd195c1c4d34359c827b7679b264cd18] (r:1 w:1) + // Storage: unknown [0x49c795e8525c4ef9c48fb6086cc2faaeef0a6182607b9fc944bcf4219d05b612] (r:1 w:1) + // Storage: unknown [0xf3fe2278bb1690c33583cc1b103aa0d9d397b50907767735319bd5d46f7bbb93] (r:1 w:1) + // Storage: unknown [0xfe68284f9c5354e6bbba0d09bfcd5e372c0ef4a66b8819b5c86021debc679208] (r:1 w:1) + // Storage: unknown [0x5442aefbc03aac1f97f6ecfee26cf9c8fa2e8cf7d366c3dbaf640a2ec280cc8e] (r:1 w:1) + // Storage: unknown [0x7afdb74eaec6f0c4abe2bba629952769e61f234e47b9f0617dde6b5fc7a06980] (r:1 w:1) + // Storage: unknown [0x8305f933e51efc14bf29b9a8996a86bb750f46699f3bb422175be5ebf16dbb50] (r:1 w:1) + // Storage: unknown [0x914c3991677898e736196d9cf3e8ab7acb205247fc645c5a576754bea40d261e] (r:1 w:1) + // Storage: unknown [0x9b98126a54cc090ed6209e6b8b53d474e5c9948f2f8c9f431d0acfb915d2ef59] (r:1 w:1) + // Storage: unknown [0xa22d1ad0661f6f3889c1cb28ae75e54c2efd41c154d41e531754bc1633d18ffb] (r:1 w:1) + // Storage: unknown [0xb19461f65e09aa3db1742d4ce3c8e92326bd1cd474234908dc97be6da9e8bbb4] (r:1 w:1) + // Storage: unknown [0xb965ddc866cb308a73a54977e01d2993cd881f57e8258800587562d292b75716] (r:1 w:1) + // Storage: unknown [0xcc6e350018b598b1e16ab4f9a46b3420e9f2142b90b35a9dc9cdf815168b127d] (r:1 w:1) + // Storage: unknown [0x03f78a0ae86588eb9fa56342a1bce9092937c05e97bdc6123adf5ce90fa5a3ec] (r:1 w:1) + // Storage: unknown [0x1dc502d3e93e9fd47a41ed20ccd7e59e0c03fd0d361b0815b9fa749ee4014ed6] (r:1 w:1) + // Storage: unknown [0x29546c1c2a4489ecd2a8d4fe12a11d2512d43e34e3eff69718c8cfd2d3d0071d] (r:1 w:1) + // Storage: unknown [0x3d3d028eb048ae2cd4e82e5609f3b86fbde4153442df785e8d3ca8bfed2cf4fd] (r:1 w:1) + // Storage: unknown [0x525c0fea64cf4d9c8c7277df429077ae9c31bcc34f595bf21c0c6005cd1cf001] (r:1 w:1) + // Storage: unknown [0x7159a7481a485dcb603f4ba2a225bdf00e0f04cfcc6690498480bbd6c90dc0c5] (r:1 w:1) + // Storage: unknown [0x8dc8b29d47360bf65fb984a859eb9564e5b71ab96829e125e5f64819f6808a70] (r:1 w:1) + // Storage: unknown [0xa073b6d6ab9a4070ae3ff167f9ad62342deb60c6b6d23dc99f038638fb8cfb4a] (r:1 w:1) + // Storage: unknown [0xbf1b7e1e75f5a090f8277557bf6f6c559a442c49828b938903351a8decf966be] (r:1 w:1) + // Storage: unknown [0x02c87740582a36cee9aec75d96945b7e2e89a5f613e85d1da7a7b6b511bc0646] (r:1 w:1) + // Storage: unknown [0x2f233781c2eed5e66fb637a747439e21e11db72c26eaacab3d0d2da11661513f] (r:1 w:1) + // Storage: unknown [0x63ae2203e6ee8fd038b677462121d5a15ad4c83b3a0abc9591fe31ef094b8d11] (r:1 w:1) + // Storage: unknown [0x732928ef558ce73c389b9858c3908ad4b784df1df5506d851c4bedbe0b93c42f] (r:1 w:1) + // Storage: unknown [0x804b85d6cd00f0b59bee93e1ca95795594986d0325364905b1e1e986759b7f3a] (r:1 w:1) + // Storage: unknown [0x9b9b935c5d7385ea63f1f4d8f4fba9ca77333c522b93f69456cf9e3d2b95735d] (r:1 w:1) + // Storage: unknown [0xce90a43f168474d0d85e7fdc662adb53320a85bac319d97abf9aa53fe4736bf1] (r:1 w:1) + // Storage: unknown [0xe7d911018d6fbb1c9c94e9325e4593bf276a2cb3a3cc937c80f0ef4c9272433c] (r:1 w:1) + // Storage: unknown [0xf3dd9a6cfcdb9127c2c114548b1b0826f0bb1d27e6dc0b7933d85672d937a514] (r:1 w:1) + // Storage: unknown [0x014502832fd6542b9131555c82966f144f62e8de7174ebacfd0d0ff2cfbe9a79] (r:1 w:1) + // Storage: unknown [0x092ff3743bbe2d8dbf8cb90c8a760389484b4e730be0323f51d85f43477c9878] (r:1 w:1) + // Storage: unknown [0x168bda7797ae0f4cb90fad3e8879e16edc5707b6f46e95aefc014cf8ced6e3e3] (r:1 w:1) + // Storage: unknown [0x51bae63e4129f50b542841d912a335ec8573a8aa7f46362d4c093a8b61eb1929] (r:1 w:1) + // Storage: unknown [0x811eceac5ad0b2648804d685b2e0c3a807bf67d12a3b54fd9dca9a078be98048] (r:1 w:1) + // Storage: unknown [0x945f12d2abdd23e5bc7f91524b6dfd2bc296834ab5bfd9d2e124b467a714cf1a] (r:1 w:1) + // Storage: unknown [0x9bc2e45b52e764017a0a322a586a1e37ce2a4afb239f8c6cc73dd0da76818a86] (r:1 w:1) + // Storage: unknown [0xcef2f93165875b8dd6caf7e5f8056cbeeed8b010b5b03b052df14f5e36156922] (r:1 w:1) + // Storage: unknown [0xe737bec58619859a19624d9cbe60e1848f339cbea12d5cd3fbfe5ef02def791f] (r:1 w:1) + // Storage: unknown [0x1f24f16f939428a33d5410529f11f7a573d2513df7a830f85551948fbf547fdf] (r:1 w:1) + // Storage: unknown [0x2eb381f6b73f0b9300d94f4f0b50ae4b35a5ea2ef407d796d95e4715d42cf940] (r:1 w:1) + // Storage: unknown [0x42ff8a2d17d124e2b40684c3c9ad8e1e9108b416eebc47ef183909b0952b32c3] (r:1 w:1) + // Storage: unknown [0x9b9b4d9443a2b5010644690956503eff1fa73d4fdf61c981aa4762a71a78877b] (r:1 w:1) + // Storage: unknown [0xa40fd6fa12fe90cd1a630001d90f83b12f442f9e8f508919fc8605685386f9b8] (r:1 w:1) + // Storage: unknown [0xc0847c2ed89d0e133347393fcbe8ccd722be616870187ec4c2c8c1fc14d16900] (r:1 w:1) + // Storage: unknown [0xccd6e6aac2c49b2ea854411986569e0f8dfc90e92065a2028c47c57e04669306] (r:1 w:1) + // Storage: unknown [0xef83243496cd71f9414a0eabec74b732a2e5b3cfb8c038f2891f988e0753555f] (r:1 w:1) + // Storage: unknown [0xfa2081d0272500dd465f66e48229eb243ec7aae07a81437c33f7042ccc273c90] (r:1 w:1) + // Storage: unknown [0x029de76adc7295ed41bbe6c450f4c7cb4f78f9b9a7d3edf67994cd6b1f511a7b] (r:1 w:1) + // Storage: unknown [0x11a2c57e147ad91b425775b77163fd83fd7ad15aa13f6ba1800fb0d486497868] (r:1 w:1) + // Storage: unknown [0x4874c9cd117e7a33a80fc59628c503e94be9296da73a8f463f2d40e0f044e11d] (r:1 w:1) + // Storage: unknown [0x629d17f361203449a9f588968037b3f8f170ae2687f29519aca2616228eee2b8] (r:1 w:1) + // Storage: unknown [0x7f192102f64f68a23e9de1a8e4c13c6c1ea1871d4d283046c9a431d758b1938d] (r:1 w:1) + // Storage: unknown [0x847cf95e67d5fc3da1c782f50c01c28cc75a458f8b3c1312d1c13f1f7cb8cff8] (r:1 w:1) + // Storage: unknown [0xa978a38b1ea1fea358dd03cba3280630218d4d52f3c5da9e0c728084df42483a] (r:1 w:1) + // Storage: unknown [0xc1948997f3e5d401de1e1d83cd6ee6b6c066a1ddca76c812bcc1c0c72e96b5f7] (r:1 w:1) + // Storage: unknown [0xf916345caf4690064d760040f4f053ab3ae8e675038cd67c4ae0b6df90fec567] (r:1 w:1) + // Storage: unknown [0x02d22f07ca8b30c749e4e5f6f724014e31e29e62579ef725a8d4a65069ac411c] (r:1 w:1) + // Storage: unknown [0x1c3356adf4350bf3bdedd5749147d18f9caa996e7aeb2033f1afbd010b912c4d] (r:1 w:1) + // Storage: unknown [0x38bcc692c3b7402da5bed46cf8e1a7c10b223116cdf1a2f4696df2b48f11122b] (r:1 w:1) + // Storage: unknown [0x48503bb95dbc5310a682c67b6f2949a8fa08f1e45418eab1a054dc6d919c9ec9] (r:1 w:1) + // Storage: unknown [0x59474766bbcaf25024437f6352f00a3fd5d1e6979bab6d456c0934178b91252f] (r:1 w:1) + // Storage: unknown [0xb4acf66b46284f06be1c289acdbb3cdb81f0c376478257695c16448daf064cf5] (r:1 w:1) + // Storage: unknown [0xb7fefbad6c8ea1c6cc0ddc69253b2e5f2c8905ade22c32c07368b7d686fa34b2] (r:1 w:1) + // Storage: unknown [0xd4722610951697839b4d9d8c6af980583b0198eae3053f9c732e8d94171ad4de] (r:1 w:1) + // Storage: unknown [0xeb34374c15d84b2d704c3e841453dbb1b8a05998e466b62e137646684823ebb5] (r:1 w:1) + // Storage: unknown [0x1f70aa6c83dd98f810dcaf611bdae5e011e5bc715d823e419c1e7e1943cf6f89] (r:1 w:1) + // Storage: unknown [0x302b1758e1ac8d5f9e8033966aa4f5c7e77512e1218b4b670afc098cb8c1f837] (r:1 w:1) + // Storage: unknown [0x31a782760fa7b79819505ff67e3a779a44efca82364dac907dd7bdc2692ed2d0] (r:1 w:1) + // Storage: unknown [0x4645cbc2f008fe9373ffd704ab8289810b5c10bba9303331e41c627583256adb] (r:1 w:1) + // Storage: unknown [0xa5c276fe36330f279b5fdc38a1a74a3dba974c7d819ef03cdb00ab5fad89f315] (r:1 w:1) + // Storage: unknown [0xbaeb1685aee142cf6d46f5929cfb222b8783de3b28121a7686c007c268785951] (r:1 w:1) + // Storage: unknown [0xc83b05e6f372fdf597b0f10cca15a53a5df46a46316bc5637dba4d0cd829b593] (r:1 w:1) + // Storage: unknown [0xca62e9f75f02064c89bf8c2d3e396024ca01ccc2038daa2a6fd2b5081bdd404b] (r:1 w:1) + // Storage: unknown [0xce880731cb3814ea9563bd0333b5eec23d7b3a3bda6375d75a2eae72dc15e18d] (r:1 w:1) + // Storage: unknown [0x33e9abdb07e28ca62cc53735e1627ecdacb61f748503df59cdfdf92fbc55f30e] (r:1 w:1) + // Storage: unknown [0x49d2ae779e34bfc15479b8613feb8c379c95173dc593fa66cf743cc079b790de] (r:1 w:1) + // Storage: unknown [0x49d7358ca22724d5c54acdf7fd593eb1908c6cebe3202ac07880236aa12dae56] (r:1 w:1) + // Storage: unknown [0x60d5c55c0e3c2d71a5bd70a177e22166fc205a6d69673bdf7f730469690a450c] (r:1 w:1) + // Storage: unknown [0x80bfc26d07f5767e0ecaea78cb96adb509bb879357342cbfce4a71edc370c30a] (r:1 w:1) + // Storage: unknown [0xc00905cda576b91dc0362b6770fba56e5324c650e43eff1503a2802a4e056ea3] (r:1 w:1) + // Storage: unknown [0xcd15694f12f82b6eb2df1f55e20bc431b37e88b006a1e8861863fae26134a9b1] (r:1 w:1) + // Storage: unknown [0xd5873d069c99592802c0d4da14a20afa74109019f9d47b766637fc5cffbe2a01] (r:1 w:1) + // Storage: unknown [0xe2457ea4be0b54d78eec228c73f68a84e316f0b5c8516edc1791d6904338674a] (r:1 w:1) + // Storage: unknown [0x145db170b8204d0c5e31ac757be2ab626b628419ea745e8b75c14cb606f85100] (r:1 w:1) + // Storage: unknown [0x5df05b79602a7278a9b2c04514eeb33dbb923ce016bf90bea1cf81744a445535] (r:1 w:1) + // Storage: unknown [0x986b7f7212341d0c17047a84e41b842c917eef7b6a038af4e3264b803250c2c9] (r:1 w:1) + // Storage: unknown [0x9e6b5952d5c876d0e88532a69519a2bb2ea71ae4eebb4492c16b1192966e8354] (r:1 w:1) + // Storage: unknown [0xa6a946a4cd6ec4adec7a3a5ca20fe7f83015cbcf5d60bf35a27aab38bd8ec72c] (r:1 w:1) + // Storage: unknown [0xb3af15676dc7ff5955afad0f4f764a9e508af856855249841e439391b3bb0098] (r:1 w:1) + // Storage: unknown [0xcf1b3bc717b8e7905f01d0e2531b92b4e292dd724fa36fef6e83b194d92b806f] (r:1 w:1) + // Storage: unknown [0xdcc77b6cade77f9f73e151eb609dc510f3437777635d586cbadad6b96fa0d8c0] (r:1 w:1) + // Storage: unknown [0xea2d58c504ca7bb0df13c1c38ec94349a9175e39c606bb5d5029c9cb2e15c387] (r:1 w:1) + // Storage: unknown [0x16b5c4b24af1dd526291c2f81753f92a092ed37320f17bfab12184400f6a9f50] (r:1 w:1) + // Storage: unknown [0x26cb13235a11327b22555f3512c737b9518cf8205371033bac55a0e89a85994a] (r:1 w:1) + // Storage: unknown [0x4a9753b9eeef39fd60c9559e3468ea605cbc03fcd2faa29cbe63e799c81e8469] (r:1 w:1) + // Storage: unknown [0xb6582ae0991727fc0bf192047d16a31f5e4cbf90321cea9d3d49b9e1b5407dad] (r:1 w:1) + // Storage: unknown [0xc0fa605b92057dee3e77f6dc0c6e91621d09d8b91c5cfafdbcb38830960e0bdd] (r:1 w:1) + // Storage: unknown [0xcf2e8ba860b7041752b2b1fb8e0360d1b40fd41617c7934746bb1e244c77016a] (r:1 w:1) + // Storage: unknown [0xd08934b7a2d1ee349de3ae53bd2286b123adca84023306014c2d75c822e74af7] (r:1 w:1) + // Storage: unknown [0xe5985dffc1ac88a03cd7a8ea79d35d6813529a692a9380a2ad04fc0db20c0e05] (r:1 w:1) + // Storage: unknown [0xf00871f755719a8c1ac33f2fa611c1736e64a16e450bfea842baf8d9114d7041] (r:1 w:1) + // Storage: unknown [0x2d86b69fa25bcdbc7a3ad6cb76e12641ef01e00dcacbf31ddde60d2d228f9ae6] (r:1 w:1) + // Storage: unknown [0x4654293309c9d9ab4282485875ec1b776dba729b6146e9bc3966a9a819c017df] (r:1 w:1) + // Storage: unknown [0x5b9007f9119be10a7d1ae77002e96ecb7f79dfa7a9f300818812048748cf55d2] (r:1 w:1) + // Storage: unknown [0x5d96a67962f8613c419566d4dcb0697c8ec617897769b55a4ac4dd93155d4578] (r:1 w:1) + // Storage: unknown [0x85825e6cce4096e5a7dc169434fa91d22210b6c7ab8897b30985aea6ae20fd53] (r:1 w:1) + // Storage: unknown [0xa1b69262faff4cd2563e3b4931f2e8956362bef384adf9db005f3b1fbdd0d4d1] (r:1 w:1) + // Storage: unknown [0xb7c9da42ebd963aa3b0eaaf14e1e7356a082f13e57028c18c99f740aef5fd5c6] (r:1 w:1) + // Storage: unknown [0xd68485a52f9f464924546f77ebccc5fad66a93e22a1fc60c4bee070012896ce6] (r:1 w:1) + // Storage: unknown [0xf5626fa70a62fa697416f25b3e7e282a6b099cc9f63f6cca84d2500a9e23891f] (r:1 w:1) + // Storage: unknown [0x00fbe4c87dfafd81acde0c62d71afdad98b6fcd3ac7c5978a5bc6e2263d5943a] (r:1 w:1) + // Storage: unknown [0x0c079912425799c807fe6c182742aaa56a3b3fec7a2a9d954147f10e0c1e5afe] (r:1 w:1) + // Storage: unknown [0x11df950500fabbfc9570427f37c48cdbebcc94c5046fd4bc41a974e1dbe3d7f6] (r:1 w:1) + // Storage: unknown [0x1364fb94ec0dfbe5aa25a5f7427fc57ec8aa3ca7185c6246478add1d2d6f9faa] (r:1 w:1) + // Storage: unknown [0x27719eaca95aa18d9c543ab4a618fb1a51801ff2039b76a44e660d3974fb870b] (r:1 w:1) + // Storage: unknown [0x5c83011c24766f0080212191a03acb9e0ab086bb3c34b5beacd0d75d1d851846] (r:1 w:1) + // Storage: unknown [0x5cf4866b18bde15f76add7faf64e389e33b2e3c80b9f030e13e6b4eef3d6f23a] (r:1 w:1) + // Storage: unknown [0x87f065cba864c0ba39f6f0f3d11014f11da5b47eb8e713a4ff563dd8b0d7714c] (r:1 w:1) + // Storage: unknown [0xec9ef3dc71ba02a92626ebafc549db307121d398e7d53f773173333d020081d7] (r:1 w:1) + // Storage: unknown [0x4da8525f1f71b5fa7c393567e81e1dd66971d9fc5f031ebdc0fed9067d53f468] (r:1 w:1) + // Storage: unknown [0x6042de2b474edc72726c1d63652d328bf1d7baaeb992c55ebce5c0176608a8cf] (r:1 w:1) + // Storage: unknown [0x851eddee51237cc23ca00399b49e23c4ae44f5ab90b9249fa3e45780b4cae285] (r:1 w:1) + // Storage: unknown [0xa4a3811d91079e816d9a640c1a18e7f20a07f1fe33ca70aed4ba60f4bae6b1b0] (r:1 w:1) + // Storage: unknown [0xc88e6b7e019a0ae3b458533fea59b67ea36088034fd75333f60a80c280d79567] (r:1 w:1) + // Storage: unknown [0xcefdb5a6dbb7dce411445e4cfa61ad6f94c535835337a04cabcd3e1f8b857c95] (r:1 w:1) + // Storage: unknown [0xcfd8d84d37947062d49533c3ecc87470cea87db911ff65dd30f5c1db01430753] (r:1 w:1) + // Storage: unknown [0xda4d234593241eb8e2ea34328f2d6dbd2d7b33c0ed622e3cef00ad33967c09ea] (r:1 w:1) + // Storage: unknown [0xe52748c1a2cfb8c55639657bcf8999e084b1f4922562f2004d034a267c060e68] (r:1 w:1) + // Storage: unknown [0x35a386fbec1c4fc3b1ccc64c3caa55412ed03a613d7444008f3c820aa5b17bbf] (r:1 w:1) + // Storage: unknown [0x5a9de37e4f97e367a194298f06dc78713654a6087aed324b2df9f30e60298d7a] (r:1 w:1) + // Storage: unknown [0x6b8ed23e3a83354f761aa53087b88fdfee9d95f3d3b140ebad9542574c1439e8] (r:1 w:1) + // Storage: unknown [0x76c147f0828a67ce3d00dd2a657f618d183ac0a968c3c1952ebc9bf4c1382c7e] (r:1 w:1) + // Storage: unknown [0x9a644b6e7d6fecdc4ea972ccb4468de093e6c8066974d5e96d736df2e7ee0f84] (r:1 w:1) + // Storage: unknown [0xc14a6a92f5e2c95c9bcd26bf4210cfb628aca80d4662dfaaad0d7e89c12c7796] (r:1 w:1) + // Storage: unknown [0xd2b915f9e77d771de5421ee94839e2c61d529da30018195a2cdd77dee3b932fe] (r:1 w:1) + // Storage: unknown [0xf2f2be4594311ff3e9f8795baf0fad3d984dd750d9b8b66f1551b517c511b66e] (r:1 w:1) + // Storage: unknown [0xfb92258fc6d0c6f5cf211734bcf1779b22b86f919cbea6600f09787e33cef27d] (r:1 w:1) + // Storage: unknown [0x3b2c201b2eba43083a922bb7f99b66175259c5ffa9b5f90f78557ffcbebd1be3] (r:1 w:1) + // Storage: unknown [0x4739757a07f6af63682496729933cd92ddcbdae3617bce4769a087f6fb128c1f] (r:1 w:1) + // Storage: unknown [0x5a19744d580bdab0ac65664cadaa3e46cb10efc0ebd65f03d2a05ff648bc39ba] (r:1 w:1) + // Storage: unknown [0x9205671a8148815a8b414d028efab35292a41efe38a095bc3b83ca3b35e59dd1] (r:1 w:1) + // Storage: unknown [0xa274879999b34be6f96d1b3e31c2b6767c8dc656465635fa67c3740afaaae366] (r:1 w:1) + // Storage: unknown [0xaf946540d176e593860ca2290489fd7c16e0a804c48ebd11a8a9eea4bb80f7c3] (r:1 w:1) + // Storage: unknown [0xbb458c5f8b1b5cfa50b7e825fc1f8e78115e10e9db8597c4ef35549251465333] (r:1 w:1) + // Storage: unknown [0xbd8bf13aaa21833efc3add680619ddd4ef27f761437b8ba8d52d83e44413baa2] (r:1 w:1) + // Storage: unknown [0xdce9aecbadeae369d0c7ef002c41109c8a140bd7000ad4ff381cd50e785a262f] (r:1 w:1) + // Storage: unknown [0x1184d106dc781c07114d3a4560d00ba52b987e6ef4192105edca47599e3d079f] (r:1 w:1) + // Storage: unknown [0x298a7203eb1841c29a31c051cf0559ace866196b249bf1bcc1500eda35382b59] (r:1 w:1) + // Storage: unknown [0x5361d7d91627565c545e4844a53782f73741204ad5f3d517142ead6ca4d040f8] (r:1 w:1) + // Storage: unknown [0x623fc7609e608684e874840e045ec1ee7cabea4d390f591af4f34116963e62f4] (r:1 w:1) + // Storage: unknown [0x7eacc962a34ad7de3a66b92e4067b79a0f2e1815a6b261963d60a8f93c0a87b7] (r:1 w:1) + // Storage: unknown [0xb3e6e83f56be1b97c7e8c0ac5dcba5592e9129a77d95b1c79b27fa9a2ccc6863] (r:1 w:1) + // Storage: unknown [0xbd3719c0ed684f33ec28d93bd293d5a6330d7800bf928784bd0a107c296e96f0] (r:1 w:1) + // Storage: unknown [0xfbde54f17dbe9856d1e47a704fd9ea30281e4256671a63f37515d090df7f789f] (r:1 w:1) + // Storage: unknown [0xff98de6b90b3193de12945bc91d51fc38529ca4736d72bff21e90c7264c2f71a] (r:1 w:1) + // Storage: unknown [0x14dea875e0cedebfdd7d6dd9cd735842f31f0eb5897cf78ea0689a5a40f0a1a8] (r:1 w:1) + // Storage: unknown [0x19c9221c80f963bd72706bf3e0b63101d13d0d802aba95b9fcbc973fd287de59] (r:1 w:1) + // Storage: unknown [0x26aeb0fd26ac70ca2100d361a38a1a1fbcb19073a66853b14c59dbd56232dec6] (r:1 w:1) + // Storage: unknown [0x296551be0ba05b759efee2f02ca8d66ebb30120f246e83998c479f02c544e6ce] (r:1 w:1) + // Storage: unknown [0x5b5d43ded5ec8bcbc324492bd7739e92aee01a6f2c92bdb406abf5cc22f94552] (r:1 w:1) + // Storage: unknown [0x9f1850be63238c511db8ed703865cf530c5b0130b9e05a6de7e64627c6ad28ee] (r:1 w:1) + // Storage: unknown [0xa392d69bb5702f4417e0539366bd6ba139091fee633cf80d002d65c17111c9ae] (r:1 w:1) + // Storage: unknown [0xa67c6c2e46a40b67a88da9ce19133a1fe82491454c3f9b46a780de7e39341818] (r:1 w:1) + // Storage: unknown [0xb4acab02d78565e75ded51cee3273bcb2c98c0ffe8ffc545e4443b9bb07acaa2] (r:1 w:1) + // Storage: unknown [0x068082b39adf010e46c67f9d309ab9f500e5871d35b2993dd2ed0efd7a608018] (r:1 w:1) + // Storage: unknown [0x142f5546e7f86dddfe61211c399e1ace2be267bd8e4588b5682e73190ec29013] (r:1 w:1) + // Storage: unknown [0x2a0063f1a695f4d5563cabf3a6509d4f1491f40def624da9ade96dca3e933fb7] (r:1 w:1) + // Storage: unknown [0x356a887fd94f35b96ba15ec380500124befe1d3a17db608206161f22fccc7b86] (r:1 w:1) + // Storage: unknown [0x469f13dbe853651de759d758e8c30fdd20509367438c0275374a4c65f12e932b] (r:1 w:1) + // Storage: unknown [0x5c236523c6cef783c51c5d0dcdd4004f9aae4672b0ac997a777a0f3e2a629f8c] (r:1 w:1) + // Storage: unknown [0x5e4fcef0c7b973d39202d6fb0b06382887cb4389e61c27eb6224d006507a603f] (r:1 w:1) + // Storage: unknown [0xefa37685db10d0006e32e246cfaeb3cb6f33e8bd8f9ee84e61ee74ddbe35751a] (r:1 w:1) + // Storage: unknown [0xf8f59457a17aa1c34a1ea10fdeae16073f984657e0de6f7ae83f1405fde4f5c9] (r:1 w:1) + // Storage: unknown [0x32383cbb91d30600129e5ac97215741c81a86e63ae195adc057d29851b1e0635] (r:1 w:1) + // Storage: unknown [0x4ef4e5b5393914626c4570a05e7285ed225afce30a0d44476430fb385003d620] (r:1 w:1) + // Storage: unknown [0x52d5dc7ed11587378e6f063077d77430ba03c9ae21af62d277b7d23652b0f343] (r:1 w:1) + // Storage: unknown [0x8b6e86ff35b3bc955e9a8b706de850f5af7333311a692d7d1f6c892c9e0743d9] (r:1 w:1) + // Storage: unknown [0x9a57b167d72f9f3f5691f126d9b48942121a334340431be4d54903611add9cf6] (r:1 w:1) + // Storage: unknown [0xbecd8975089980917398dff92cf36548f1fa9b6b3d96eab120bfcd0a08be1133] (r:1 w:1) + // Storage: unknown [0xcaac1573f11eeaedbdfbe22884270e52a46a445d4f41c98fe95dd39fb0628fd2] (r:1 w:1) + // Storage: unknown [0xd37a7f79ab5c1c824fde6f849a12fbdec5bf8b8ae7b7df8bac21df690d1ac566] (r:1 w:1) + // Storage: unknown [0xf38e1806d2b2118a231477732019db23ca62831e3e0b8cc816a99a2182391eac] (r:1 w:1) + // Storage: unknown [0x29c03696410a0dcbf4e9bc8d076151124b7edc54fbc0cfbdc3faf7789164e206] (r:1 w:1) + // Storage: unknown [0x3195c59775014b156b70f95e90ab361304fb260bcc381c33c20b5e7293d4c7fc] (r:1 w:1) + // Storage: unknown [0x569d226e75a0eb467301f6fa4cb938d4fcd849d3efe969c161542ad1e75279cc] (r:1 w:1) + // Storage: unknown [0x93295b594fc192103b95e0638dd9f254d36a2e9b299bee6d275df67c8af4d759] (r:1 w:1) + // Storage: unknown [0xb7be2c897eac67b4b3a5da1a02b4b1816992ee98f6112b4d5262f73fc255c3a4] (r:1 w:1) + // Storage: unknown [0xc611fe61e43f3ba3182c4c6785a2a3ac060e2679bb8174a0ac1e234551428752] (r:1 w:1) + // Storage: unknown [0xd4f9a331a2eb206dc43bc6fa02586bd740021c262d4a5b74ff2ec74b24bb07b6] (r:1 w:1) + // Storage: unknown [0xdbf56dd98c667cdce364a53557f373d98947f7fe0bd7da6d72168e6572bfb622] (r:1 w:1) + // Storage: unknown [0xf74ed7b12e94dff551fb1db30d97245cca3374be5e04826487f83154a7ca79dc] (r:1 w:1) + // Storage: unknown [0x38478fb97716aa0a228f48ab751be24feab89ba4997894f4748c3784434852e7] (r:1 w:1) + // Storage: unknown [0x3935ad150e4eee0800486d78e89c19b55ddade16282d29f5fd75e398a03adeed] (r:1 w:1) + // Storage: unknown [0x65085b97bb627b7c8c3b4f09e5f174d1938737422c6154bd173ac6d0d75b6ea0] (r:1 w:1) + // Storage: unknown [0x7646ee188a1eb4daa60fccda6425d15a42eb1a25a2cb8252faa604ae48046dc6] (r:1 w:1) + // Storage: unknown [0x7b6c8e917003b1a2b8ea5c05efdd4eac91892086faac90cc893e2b7987222ad3] (r:1 w:1) + // Storage: unknown [0x94a9e5b0983394edf89c1193a94b8d5903d3bedcfb5bd892d2211f3a92beed21] (r:1 w:1) + // Storage: unknown [0xbc8dd82eb384558ef8afaddadb2534ad0d3b84350e42c080b92a318972afae84] (r:1 w:1) + // Storage: unknown [0xcc0292b10dc5b24ebfb31ecf1b60f5dd86c030def71e418f5d5ea58662d0e928] (r:1 w:1) + // Storage: unknown [0xd1b96b87e9f4bdd1d26a51daaa1e4dfc72baf9c8d0eab927c39de1d913759d1a] (r:1 w:1) + // Storage: unknown [0x01407b106cb8d8b1662ca8a44f362e1d99445ac4f611e160dc794fe19e91b9ef] (r:1 w:1) + // Storage: unknown [0x21f921d2a08b6c668f1575f8d69a2e27faed15e73a5813476d34a006d37dc9d8] (r:1 w:1) + // Storage: unknown [0x5574f592ca3417c1b74110fe7a3111bbcc0bc2cac6700cdf744d358734618c62] (r:1 w:1) + // Storage: unknown [0x5c182c2454b1ab519763417f95d564e2f77481dc5d5144ba489126dba6ce4f5f] (r:1 w:1) + // Storage: unknown [0x9b47d63344f6bbca64de1f01ad61d1e96af27f8bdafbdd8e638fc662452b4a05] (r:1 w:1) + // Storage: unknown [0x9c3a5cab41c65e4012798e7a06ddfd0546d455cfd46e94dfb84f4db210c29f6a] (r:1 w:1) + // Storage: unknown [0xc5928d7aa41aaa4efa11f127abace229d1265f4aaab036ab2093b26d3d25a318] (r:1 w:1) + // Storage: unknown [0xd251d389ae41aa428d7988c8e21995955dbb7dea36d2ac7570c85c43dc93c283] (r:1 w:1) + // Storage: unknown [0xf74f8fbdd0c70dffcc0218967818fad4252365bbc70ce33911f2112c9b312a15] (r:1 w:1) + // Storage: unknown [0x09a9376f1f7cb70af3a8b9b5c92fa34f1e40d6b518dbab9e0456bdaf2d322d0a] (r:1 w:1) + // Storage: unknown [0x2eecbb5fe19bbdbf62c79dba3456e92353a669f824bca8fb182f64d434e5d3ba] (r:1 w:1) + // Storage: unknown [0x4d332ce8f79870034022a949e25bae7943f8a2b69809bb9b6924542c2dc515f8] (r:1 w:1) + // Storage: unknown [0x875a7c5b801553193ab832bde427cd32f4159eecda9360ce4ea5185bd346422a] (r:1 w:1) + // Storage: unknown [0x8d8b1441f3859ef83c3ba5317547a84315ea29f41a83b6ff6da7039a88cac242] (r:1 w:1) + // Storage: unknown [0xc20f284dc00bb5f2932de03004d66c3a3bf3185c39ff61305a37198e3fbbd556] (r:1 w:1) + // Storage: unknown [0xd4f841abc893dc3cdea7c3d0d48ffcae53f63273f02c4391c2ccae0e52b5d43b] (r:1 w:1) + // Storage: unknown [0xd871ea178240c567bb4b8f35499644f8a013cdd76b381270540e9262b3da6a7e] (r:1 w:1) + // Storage: unknown [0xe5d24a5d239ad66f0cd6f13870d9747268a20306547f18dfcc91a88d84b056d6] (r:1 w:1) + // Storage: unknown [0x0f9026200cd5a19cd525379b24be34bcfd7016632fbb2891727e2c25513a5b70] (r:1 w:1) + // Storage: unknown [0x1489c4130501c2541e6c08aac4366599c37afb7ae0b4596e2ef2df4f9e0e6e6d] (r:1 w:1) + // Storage: unknown [0x25449a9001eed866e08345dd7d9a4c8234dfefff889899f3cff3b11bd0323f77] (r:1 w:1) + // Storage: unknown [0x3a689c9258d7959693de61d227fd6387894b4f48d201153c07057f808f9e7c5e] (r:1 w:1) + // Storage: unknown [0x9b6bd652c8562ea2e8071c6d604ebd41b2f3512b00d5ba7c20bc84fb2c1ccc2b] (r:1 w:1) + // Storage: unknown [0xb58f57a77781f6c9c5e12dd8e9fc1c8a9803b9dbba298538ab8d44985b74ab62] (r:1 w:1) + // Storage: unknown [0xcdbbb235046f6dafcb1913e53d45908631d73da7ed44263114432f3aae07ca71] (r:1 w:1) + // Storage: unknown [0xd1fd28c56fba032c65b1ad0a259ccab7f504346d22eafb2914c1dff1969d2a99] (r:1 w:1) + // Storage: unknown [0xe5860e29baab88a2f5fba4e38ba443968e067a279b72e87809d0228d631d89e6] (r:1 w:1) + // Storage: unknown [0x03fc50a53f8b55b7eb687d52bf0b688002613765a93b82f781065d6aae154b73] (r:1 w:1) + // Storage: unknown [0x36bfc1799952138154bf8020abbac8cfef585b3d5b8e24e24cc64e462db8992c] (r:1 w:1) + // Storage: unknown [0x390714b65f121ddc2954b7b9332fded961e58d32610a78724690ef87368bf7b6] (r:1 w:1) + // Storage: unknown [0x4b0192c61e4a1b2facce37c15309708bcd5bfc05c909cc76dd891478c84e3024] (r:1 w:1) + // Storage: unknown [0x7bfa441f3dee7aee4705a770c11edf7c4e05aba0b61c07094368e3d9d8e084c6] (r:1 w:1) + // Storage: unknown [0x7f10f8460f8af980c7d997040fcefb774538925362a0d956a11a77b40e6a5eba] (r:1 w:1) + // Storage: unknown [0x94b27a6ef159c56e0738bb35091863e326d1673b6548448bae7ac7e65fdab57e] (r:1 w:1) + // Storage: unknown [0xb1ffd2ee81d0411cd8698179bd8d84a9d436e7990185f336ac5953dd47e43ba5] (r:1 w:1) + // Storage: unknown [0xd0ea5cb1c4c9b8ca8bcf3f51dee17f42d030373e6ab09f45d75893c6364289d4] (r:1 w:1) + // Storage: unknown [0x15212ee014dc075c0e6f42b242af7e4d121f7d41e9caff916f7a524a4c29776d] (r:1 w:1) + // Storage: unknown [0x4187f2f0fdf610dc9d337c1cf46958c7db0394b0974296637d5a84fb7c2b3a8b] (r:1 w:1) + // Storage: unknown [0x4732d393876184fe46ea5cfa83b627f7bd1b6727003b9a0088a03636b4356243] (r:1 w:1) + // Storage: unknown [0x4be2d0c811822615e4848cd3054f3d9b1a7c34b18470d9a6f89100c0445fb010] (r:1 w:1) + // Storage: unknown [0x6da525e61d6b36723c2b5a2ca124c85d1856816e0b35238d0a850f9943e7ba66] (r:1 w:1) + // Storage: unknown [0x9c802f738e1b04601ed0d0abe32bdcf042074f8edaf2fa4571b124b01fa70846] (r:1 w:1) + // Storage: unknown [0xa73ce6f8f9d23682724f09954f06a53d3c4007cb29af7ebf5a8e606c5732cc86] (r:1 w:1) + // Storage: unknown [0xc1da305dcb85ec2893959f2ae65b4b22ae8bd45693ab0e3fce81d72cb2552577] (r:1 w:1) + // Storage: unknown [0xd3c6d933b4be80010db2b04898cd1f86bef1f05f4910ea6ec76cd893764cde57] (r:1 w:1) + // Storage: unknown [0x6a347d8997bcb43ef505e6876c09195b98dac72be6e9f08899090815a8bcde0e] (r:1 w:1) + // Storage: unknown [0x6cbadf65e4209acb1dfe5cc362ff515ffc407404026c48b83267237ca296beec] (r:1 w:1) + // Storage: unknown [0x7788a3a1aa009c1ba85f5f4bcdb8c4d371a45b6ed7b3d125f14ccbaf907bed68] (r:1 w:1) + // Storage: unknown [0xb141aef67c001419ce515c56c58b59d29d52e73eaadcaf464410553d1035f33a] (r:1 w:1) + // Storage: unknown [0xc0a79638a9bd36ef462f127f86035f874c9c7559d9e7dce1273c583e1539df83] (r:1 w:1) + // Storage: unknown [0xc0d5f26bb40d24ab056e1bd440482fb7db86ab2d0f9868977397c038c6230e9b] (r:1 w:1) + // Storage: unknown [0xc5cbbca4f0275eee449ae706cd0ed9de748d575507d8f045ad9f14712971090c] (r:1 w:1) + // Storage: unknown [0xd2e619fb36c5659aabe595bf30254a3e35c315d46d2afe91ab22801c35a1e8e0] (r:1 w:1) + // Storage: unknown [0xe2645307c930fa6f7ef89428b23f1cfcaa7e1218e99223f8d3f33bd8a0d742f8] (r:1 w:1) + // Storage: unknown [0x2e4e39c5b08d717d1808350db637f08e1b2cf6e9539595440e3d27ab3c719903] (r:1 w:1) + // Storage: unknown [0x43efa67dab5b54814027207019c7a820cb5415238f9b1250f234c3116933325c] (r:1 w:1) + // Storage: unknown [0x4e3ad2f84a1efe894ef7c96a4d086262a0d2de21f30121237e4d459c8c7a6f0f] (r:1 w:1) + // Storage: unknown [0x51f0a4a31006ed7e745dc8dc0d0d9e4cd78cf6d47d50e363b7975907ef548afd] (r:1 w:1) + // Storage: unknown [0x5f64929bcef4ccdf44d337a9ae8c17b203952240df87f49a5b10ee976e87f2ea] (r:1 w:1) + // Storage: unknown [0x6cb369ca9f516aabc21356337ee21e4b6bd7682c4325ec8d1481aa7686df9913] (r:1 w:1) + // Storage: unknown [0x9e8f653956af16e4b6e9759b8411451382d6749ef6dd44a6179293bad1bea1bc] (r:1 w:1) + // Storage: unknown [0xb192b38245587a98a41cacead1ceeeea650df259cc3c03902d7b6550a7a01b2d] (r:1 w:1) + // Storage: unknown [0xe11c6afab8139f5ea3d2dbfb377e756458f3d7f4d1f97c2fbdad93a745bd1403] (r:1 w:1) + // Storage: unknown [0x09a6e269066844934a3ca55c5c095f8112f4492f292a0d3ab1a374621a8f829c] (r:1 w:1) + // Storage: unknown [0x0a76588d48ee18219d4cb75458b1dcdc677263106ade9c9a30c728face6ca80d] (r:1 w:1) + // Storage: unknown [0x21fee12be772e78a59541b5d650b2186ec4cda36c4d37328d514ea66fde98904] (r:1 w:1) + // Storage: unknown [0x3e73e9aa06c5d5e22894a96e184a6dbedea5139f48e02980d2efcad0b758cdc2] (r:1 w:1) + // Storage: unknown [0x654c9261c5825253ff541d8993e72fe856a9f79b3598d447f38279e898a2b4e0] (r:1 w:1) + // Storage: unknown [0x768a3118cdd3b2a2759a0c75f20d3212dfc86cfcc249655bfe3bebb06bc1cc8e] (r:1 w:1) + // Storage: unknown [0x8b204a61cc4033ce6ce7af095ed891dfd7d19a642ef5561b4c510def6edb78ad] (r:1 w:1) + // Storage: unknown [0xc8dbe9efd7c11f55ac197805b9d8dd04426703cc4521b808dfd24b342ade9b03] (r:1 w:1) + // Storage: unknown [0xfeb9426ed2d7f338977a3257b6729210dfd069a0274230dc74267c2ee7ed0b77] (r:1 w:1) + // Storage: unknown [0x0232d463305f8fcea7214c40efa268b26f6853c420ef75961761315a09e7b7bb] (r:1 w:1) + // Storage: unknown [0x1a350d01aad2f424d54ab323adbddefe00b1ec517f8ba9d4a8587e1ab6825fd7] (r:1 w:1) + // Storage: unknown [0x20afbef21dfb3b37883c4e0eb83a8f1f33b5676fcbef51339631429d5d921279] (r:1 w:1) + // Storage: unknown [0x6b0fd9c9e97dad955d766b7a4ff67adcbb5bff2ebec6a407e8b7c4bd4d45c5ad] (r:1 w:1) + // Storage: unknown [0x758ff77cb1f5d2032a7e366371426e160ccd0b96925f06bbc9329f98de0e19ca] (r:1 w:1) + // Storage: unknown [0x8dd87fc444419a4a88abe89607b045d3141156f5b2d716290910ec732899d1a5] (r:1 w:1) + // Storage: unknown [0xbc74be6da6abfeac2567acdb80142289c6da87a0f3682f96e4a387350028ecdd] (r:1 w:1) + // Storage: unknown [0xd856c79bf100dc8b235a733d120ba3e6575dec83527bf0312a9f2ddb41f83df7] (r:1 w:1) + // Storage: unknown [0xeab25b78085c98a9b4688df96c04ef8b39158fd62e6e52e33590fb21c1328dcc] (r:1 w:1) + // Storage: unknown [0x0fd1b2d3599d3ff280c2880169ee61ce60a3df6183220f88c57c637f73641101] (r:1 w:1) + // Storage: unknown [0x250c74e6a150be40d25a748d04adebe88c1efbb9508443fd9655f88592a692d7] (r:1 w:1) + // Storage: unknown [0x7a2e58ba4d1f6ce180e06278d12bb8090221c0b181ba26f2b1a91897d312b723] (r:1 w:1) + // Storage: unknown [0x8e2c35f4209f4902ac5c733e6ac0c213ee089994c63ae8424be9fe625ce3d843] (r:1 w:1) + // Storage: unknown [0x9a7ca4148e063f02caaa764e89a6338fb598082b807ad2253127aa1ddccab5a3] (r:1 w:1) + // Storage: unknown [0xaacab268ca7cbb3c5a6c7030c43362d255f6cc408b83fd68b7ae6ee31ccb7e20] (r:1 w:1) + // Storage: unknown [0xb4f410c11de2e2060206ca18d5ff89d2bbf64aa94583a0693733ca98ca481b2f] (r:1 w:1) + // Storage: unknown [0xdbd5457c02ad4f1b32be421421b81cc926c4bf998df2ee94ee9363e74ea064c1] (r:1 w:1) + // Storage: unknown [0xea1bea5c24f8335580a71d29a7a773541dbd384134f88f11965ba6b3412d9ee7] (r:1 w:1) + // Storage: unknown [0x16e516ebd01eb6570a956dca7cdbd4a886a8c1509afb1d5dd3bf7102ac8e0653] (r:1 w:1) + // Storage: unknown [0x17ea99a7d60cbee014631f3438603e36ef7d7bf1bdaea7740f33079ccd219240] (r:1 w:1) + // Storage: unknown [0x36325a2003628d7ae9c30d6264688ba0ddf93c2dadc10623218a697ba807784e] (r:1 w:1) + // Storage: unknown [0x3f2edae08b19a7878d65c7245b7608ba1b6597e6d448652a89667ecaa2c10658] (r:1 w:1) + // Storage: unknown [0x4a325faac35d245e0eb3f57ab651ba6641e2617505390a4388ef08e2dbebb38f] (r:1 w:1) + // Storage: unknown [0x5e5b6c2bca3c4617a35b60ac68dd56733e2cacd9528658e086317d1e4ae33c10] (r:1 w:1) + // Storage: unknown [0x78dcf8ae0c638ce501342ee0e3844e77011fde109607e17d68e912c28b55afed] (r:1 w:1) + // Storage: unknown [0x821525922b4f0ceb302c003259c7f5bf65fffa46d17dfb4eb996e8b0647daec4] (r:1 w:1) + // Storage: unknown [0xf7417a27daa0204a3aa339f2c077a3eb5f90752122333c123c4e4ee31d8fb68b] (r:1 w:1) + // Storage: unknown [0x078779e40d3c775ac8c135ec9e505babb035597b3bb09fa7f789891997f0d650] (r:1 w:1) + // Storage: unknown [0x30fe9bfb3bd1e640e99769310b3c7cba2b47e8e8b783eb3d5893d6d1f59f8042] (r:1 w:1) + // Storage: unknown [0x337025af84c7381996544f1ac8cee4709c0ae9500a276f7031902d1096e7582f] (r:1 w:1) + // Storage: unknown [0x674985c60108f89ff55cab7c53a76fd7a9a334e8fb709477b2d9d18ee770590d] (r:1 w:1) + // Storage: unknown [0xc19e5eee149c75097d549f969006d7f8c7e797c836a15ca423a18a4a4432e138] (r:1 w:1) + // Storage: unknown [0xc9f9cd749702c3f010221d225bcf304e54e7f0e8573962d978edfaec4105387d] (r:1 w:1) + // Storage: unknown [0xd75d0226e5b4ac7a2728e0986dd018a8a6c88072fb927a56f9140a11831ea9c8] (r:1 w:1) + // Storage: unknown [0xf6a39d38e14007401941e32ecde9503b4d58efe10b3f676dce992266aad1abdf] (r:1 w:1) + // Storage: unknown [0xfadcf35d360cb1c5c2fb1509d65e6b1ad79083fdfe90b3e64fc7956f5eaee5dd] (r:1 w:1) + // Storage: unknown [0x129730fa94511f735b9910e2d640dc2ab0fddb29ac3442924dd2e27d74a55f1a] (r:1 w:1) + // Storage: unknown [0x1d1a6641ce7e5e6dea72bcd68828416a44cb06e3207d349b43c7300262ffbb81] (r:1 w:1) + // Storage: unknown [0x26e4d08be6a3b5bd814cd0aff1bba2e3b3f3f8a61e5dedd352c641795642d5de] (r:1 w:1) + // Storage: unknown [0x45fbad84e42f40e96452f652bdd233f71f67f6a1415b00551a21019033ba30f7] (r:1 w:1) + // Storage: unknown [0x4d52d448a046ee9690cef9539b6b7dc9a60b4e4b05c52f21c31c307ac1aef94a] (r:1 w:1) + // Storage: unknown [0x50f7e43916898de9a9387e19b0984a4be39e44b6fbb5212564c7299e92203fd2] (r:1 w:1) + // Storage: unknown [0x7009ee69684472410f9d454e8c4503e89cd3807e4f41ebcb142539db34dfc137] (r:1 w:1) + // Storage: unknown [0xd35a663830dbaeb43ac6bbbdd4cc221430a35aec509557262d4c5032789f78c5] (r:1 w:1) + // Storage: unknown [0xe1164fcf99526792f77cd4a96bba1367a01dc7847634f156cfd905d9a74c2e4e] (r:1 w:1) + // Storage: unknown [0x3f39a48558209f0501e7599c5ff9c872e6bf14a137ee40facefef94db4a038a5] (r:1 w:1) + // Storage: unknown [0x4b594ca9743d048965171e9cb071d25afbb428b6499893000a3c02143df1e98f] (r:1 w:1) + // Storage: unknown [0x6b2dc18de1c43eddbd70da532389561c311aa44c79b1df11d3ab579ca874af09] (r:1 w:1) + // Storage: unknown [0x764780a58bf2c1ddc3036bc739d7f11d6cb670c3e0409da6219d8dcc341e81ba] (r:1 w:1) + // Storage: unknown [0x92056e54539b0632e17ec7418c3e57c8ca3589ea2703bed64f879eecd4afab07] (r:1 w:1) + // Storage: unknown [0x959d72bdffb0754a9d28b1a31900a21da9519063a1d13c6b8e85328594c469d8] (r:1 w:1) + // Storage: unknown [0x97bab3ac046ded8556c371745f46b78d54df3f40d1c8435a1e534bbd3cc40bc1] (r:1 w:1) + // Storage: unknown [0xb36b2eecaf2da82f8b7fb4ca1f9dea513b57a56d30111386fd6d7e17d13c63ed] (r:1 w:1) + // Storage: unknown [0xe5ee08335dc8a0c22d49d7d07bcb6fa2a8aaf854a55a31831f7d97f4eef4d64e] (r:1 w:1) + // Storage: unknown [0x03c62116305bd05ac7512c6b685b88e8e33392886d0f40ddb332bfa33b7c2139] (r:1 w:1) + // Storage: unknown [0x162d04de4b5bf08c3f6cf14beb6c63bbbbded34d6d42e83072b5c3bde079f3a6] (r:1 w:1) + // Storage: unknown [0x2169cb6fc72c7d9940e7b09dd3e22cba0f3bc950b7ddc419e978052ac9b2a2bc] (r:1 w:1) + // Storage: unknown [0x24f0ed4b5bb87c45fcc018f89c8ff92fe012e9cc44433b1f63e709f9c1d6380b] (r:1 w:1) + // Storage: unknown [0x6d99f9efc9348c9fd2a7823e65dd7119afdbb1e8edbeb7ba5a985b13fb191745] (r:1 w:1) + // Storage: unknown [0x7999d569f1d75161e56c3b981d43dfbba27850949a7f3efcfb24d1e5df6f9c48] (r:1 w:1) + // Storage: unknown [0x81bff11208bacd1cc864311f5ab66579569dee60ed6970abfab7c629115d9b27] (r:1 w:1) + // Storage: unknown [0xc30095a93bd4d72ee547a0c4150a283d4ef43c7cc6b58c7636e0d01c6bbcf38c] (r:1 w:1) + // Storage: unknown [0xd098e22c1b866138b1f1183864ef282ebe5c68a9230aeea6651017e0b2ca7341] (r:1 w:1) + // Storage: unknown [0x39ffc5b547462d8775e1aff1de9bb2533140a0725e259ed2b0c4f589bb390e37] (r:1 w:1) + // Storage: unknown [0x3a20973d20cf9ad844d687e106a44030ecbf990dc74752c1e64079be511a4e06] (r:1 w:1) + // Storage: unknown [0x491b2aaafdf4d8c47364ef6b2ef92aaa6d6fd10eedb2f374c8d42f2410b0bfe5] (r:1 w:1) + // Storage: unknown [0x9aa6a1118d01d2733b707f5a2cc795547c33acff451c97d194ed627e3af70583] (r:1 w:1) + // Storage: unknown [0xba27bd0b26d49467574a0399c7867a70e1f99f2348dd30abd7b42eefa43dc2e5] (r:1 w:1) + // Storage: unknown [0xbe58a92b8383c2e39bd6b63cf4d92461e334037f9d2c64a42aeac1e06600bca7] (r:1 w:1) + // Storage: unknown [0xbed02ed125a0400cc9144307f2ad28c94461c694d4a9a89e4591cdfd4a7ca48c] (r:1 w:1) + // Storage: unknown [0xd4f091d4c1b7088764b59a48fa30bb063e83f0fce3e0031eb1094a84bdeaddda] (r:1 w:1) + // Storage: unknown [0xd6497bb219680b798aef6cfa92c698524c58732bef89939e8ec2c1a5068ff0f1] (r:1 w:1) + // Storage: unknown [0x38580239895995d2f930f08c6465fd3d02238f6214f82ed488d7c83a5698c145] (r:1 w:1) + // Storage: unknown [0x611385ecf73feedaf7bc17ab736470d9c8a8ce9c4e93e19a39d287a4c54293ed] (r:1 w:1) + // Storage: unknown [0x625b852590843c0b3b38d2cfddf64b8869c926a9f1a217b7df9cc290a04d3c17] (r:1 w:1) + // Storage: unknown [0x69ef3849249445b5033754475a36de695004f25d3a04a1873dc3449b4908aba0] (r:1 w:1) + // Storage: unknown [0x85bd68db5fbd69beb026aaf881413c97a190f1dd0bfb38375ec7bcd52448ee4b] (r:1 w:1) + // Storage: unknown [0x8d2ec8130e5f3628d22bfcae29d02f1635977d43b3e1a9e86f0b78c650c97ce0] (r:1 w:1) + // Storage: unknown [0x944fb8d1b6708dbaad846c06734df5c05aff0da9a466f6fde0881343b4aecd99] (r:1 w:1) + // Storage: unknown [0xa5ff5fc6e8aceea405f11cef80161ee2f2ca657c5c5a485eb44850404623be6f] (r:1 w:1) + // Storage: unknown [0xd27753d9ff5db15ed803d558b19fe57448af6287d51d57fc60c382db6342d41f] (r:1 w:1) + // Storage: unknown [0x23b01e79ab305a48fb81408e97c010865229bff7e39975a47a4617d1b70bde12] (r:1 w:1) + // Storage: unknown [0x32bca73cc5d28831b3d6b8b8343a6fca085fc96021ee55074c40a41b7ba20b80] (r:1 w:1) + // Storage: unknown [0x36ab36b371df875d1863acc3752b38a952134a7017537a0edf569a9dd58c86e0] (r:1 w:1) + // Storage: unknown [0x4efd4581164c5edb502b7b6a8b8e8b324deda1ea6e28e9e1e624defafeb097b9] (r:1 w:1) + // Storage: unknown [0x8f1e26abe053ae68a0744df7fe0447fbd50d14ade59c924dd4d2b70d1296b723] (r:1 w:1) + // Storage: unknown [0xa9d399f02c89a57e4ab0aca86b74d5c124974e19189f4a35a405bc57277d3294] (r:1 w:1) + // Storage: unknown [0xaab2936af1631322f597eeaf3c3ed16545579a4096ea72aa6c81aa6239367dc5] (r:1 w:1) + // Storage: unknown [0xd9687ab33fdb52c1eba4ddef1151e5c883c8b8ca4a25f0fbdc458a4a07202918] (r:1 w:1) + // Storage: unknown [0xe36d5d7328b4f69fc7728f89d71d36122896443ec8d85ce1c6945ac178f1c410] (r:1 w:1) + // Storage: unknown [0x0ce1c95f681adbe0583541264d7ff63606d71fc7f9a5056f9ce2ae5dbc92c8ef] (r:1 w:1) + // Storage: unknown [0x366897223e45040aa102fedaf30e54ae118f23510d9c2762da994d8e9eb37f8f] (r:1 w:1) + // Storage: unknown [0x65fbf6ee57a08d8f5407677ef0796630f71a75519462181854d44f3dd0d2e9fc] (r:1 w:1) + // Storage: unknown [0x7511f042605e429879bff0e9ab4466069665ce3b175ab9d9a235d4014604b4ff] (r:1 w:1) + // Storage: unknown [0x815c85bdfd3bb9d957e5a6738955e5a94024e27cea203faa4b984b846f3f07a5] (r:1 w:1) + // Storage: unknown [0xc383631f40436e078c9af767056802826e3f47183fd8ec00a5d06cf991b5d622] (r:1 w:1) + // Storage: unknown [0xd062d3018d16f1337e6aa46159c2085f4be01f700dce001c6248823b15d3a470] (r:1 w:1) + // Storage: unknown [0xe188fef7ccf953faa2185e2e9175bf3bca48aa36f3dd62b8161a75ebb34f19a7] (r:1 w:1) + // Storage: unknown [0xe7dd8a0e93b4c990c00453edf0c631b3ae4fcd7f1189a0b3d2e5c27ef824bc99] (r:1 w:1) + // Storage: unknown [0x0ba1e4e6d98da9611922932b095d435e39bcfd6babc4b9e89485f7f378cd6b45] (r:1 w:1) + // Storage: unknown [0x2d4fce1669eb402b2ec3f325de12e8582f8d9c77de9b5270ef6956203a8314d6] (r:1 w:1) + // Storage: unknown [0x89f01db4731551d533ba2108e036875e126adb7665bc5fddd4575716a36c26a4] (r:1 w:1) + // Storage: unknown [0x97dc9a3b2cc3aa9784021dcb200f09540dfdedb79f3d159867b97a75cc892a3b] (r:1 w:1) + // Storage: unknown [0xc20b40ca76d1caee1cc717d847ae6878857e35b45d47478ed7f1450c154c503f] (r:1 w:1) + // Storage: unknown [0xd0b010e2c3a992e7680dc9120b82fe6e8c3d160b997aa89af463bbdf84a6e2d7] (r:1 w:1) + // Storage: unknown [0xd35ed52d5edd31264c21a0c30d3994d5600b3e19ebb66d6f8099661d6dcc57c0] (r:1 w:1) + // Storage: unknown [0xf5b993b187b5029b7a30de61f1bce1be780f8790b3daf85742ec63b66f79cc80] (r:1 w:1) + // Storage: unknown [0xf98428e38450dcc80131bed1b84059f80938df6d2941d17917c968e553afa753] (r:1 w:1) + fn batch_unlock(k: u32, ) -> Weight { + (0 as Weight) + // Standard Error: 167_000 + .saturating_add((185_561_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(T::DbWeight::get().reads(2 as Weight)) + .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(k as Weight))) + .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(k as Weight))) + } + // Storage: Salp Funds (r:1 w:0) // Storage: Salp RedeemPool (r:1 w:1) // Storage: Tokens Accounts (r:4 w:4) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:0 w:1) + // Storage: System Account (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn redeem() -> Weight { - (169_980_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) - } - - fn batch_unlock(k: u32) -> Weight { - (0 as Weight) - .saturating_add((45_890_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(k as Weight))) + (361_096_000 as Weight) + .saturating_add(T::DbWeight::get().reads(10 as Weight)) + .saturating_add(T::DbWeight::get().writes(9 as Weight)) } } diff --git a/runtime/asgard/src/weights/bifrost_salp_lite.rs b/runtime/asgard/src/weights/bifrost_salp_lite.rs index a98db291b3..9a1db00d87 100644 --- a/runtime/asgard/src/weights/bifrost_salp_lite.rs +++ b/runtime/asgard/src/weights/bifrost_salp_lite.rs @@ -16,11 +16,11 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_salp +//! Autogenerated weights for `bifrost_salp_lite` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-11, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-25, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: // target/release/bifrost @@ -28,76 +28,575 @@ // --chain=asgard-local // --steps=50 // --repeat=20 -// --pallet=bifrost_salp +// --pallet=bifrost-salp-lite // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --header=./HEADER-GPL3 -// --output=./runtime/asgard/src/weights/bifrost_salp.rs +// --output=./runtime/asgard/src/weights/bifrost_salp_lite.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_salp -/// @todo benchmark again later +/// Weight functions for `bifrost_salp_lite`. pub struct WeightInfo(PhantomData); impl bifrost_salp_lite::WeightInfo for WeightInfo { - // Storage: Salp Funds (r:1 w:0) - // Storage: Tokens Accounts (r:1 w:1) - // Storage: Salp CurrentNonce (r:1 w:1) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) - fn contribute() -> Weight { - (122_561_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - } - // Storage: Salp Funds (r:1 w:0) - // Storage: Salp RefundPool (r:1 w:1) - // Storage: Tokens Accounts (r:4 w:4) + // Storage: SalpLite Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn refund() -> Weight { - (139_712_000 as Weight) + (95_159_000 as Weight) .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + .saturating_add(T::DbWeight::get().writes(7 as Weight)) } - // Storage: Salp Funds (r:1 w:0) + // Storage: SalpLite Funds (r:1 w:0) // Storage: Tokens Accounts (r:2 w:2) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn unlock() -> Weight { - (99_237_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + (128_872_000 as Weight) + .saturating_add(T::DbWeight::get().reads(8 as Weight)) + .saturating_add(T::DbWeight::get().writes(5 as Weight)) } - // Storage: Salp Funds (r:1 w:0) - // Storage: Salp RedeemPool (r:1 w:1) - // Storage: Tokens Accounts (r:4 w:4) + // Storage: SalpLite Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Account (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0x] (r:1 w:0) + // Storage: unknown [0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0] (r:1 w:1) + // Storage: unknown [0x1793e0dee28dc36e243edc2691a5a966f4c15d0d4d432426816fcdad0229ee46] (r:1 w:1) + // Storage: unknown [0x262b3fa18a914183e88378d5601925c49b7bcbf07101f6a73b1e7c38b6c23d23] (r:1 w:1) + // Storage: unknown [0x273401c6dc3eb9f6a74a2f7181b1eef87e486620f91dd0fb5ed0ff69747447ae] (r:1 w:1) + // Storage: unknown [0xb2233113701bdbed1e43339a304e77ade52c7b0204a5366dba4c12c9c1a90811] (r:1 w:1) + // Storage: unknown [0xbcf11cdfc92c4bf5c40d1adc80e83b0c91148a8079347419a0890363e3e0186c] (r:1 w:1) + // Storage: unknown [0xbfb77688785d1f34aaea15726de0f743afd4cd1eb8a9b2f03ec8f6cfcd2c1a8a] (r:1 w:1) + // Storage: unknown [0xc040e64ae303602c545b547ce74b24952443cfb1ea9c77f6fd49c41efcf68102] (r:1 w:1) + // Storage: unknown [0xecc728efb63d13c538d0122cd7dba2964c47c6750030158f57908845b086ca70] (r:1 w:1) + // Storage: unknown [0xfaeaef9ced7ec5a1f1d74d225cf03d269643a95c94a2892c8184227481765683] (r:1 w:1) + // Storage: unknown [0x1e14f015894dbfd07ff4c7907acc885a26b4773a7f5a907e73d1e916b7059d2b] (r:1 w:1) + // Storage: unknown [0x31363b6a3c3285cda230e1c805b99e473215cf1f2446ae76c616ab164260fab3] (r:1 w:1) + // Storage: unknown [0x57a81f30e61dd3e10fc6529335e4462cfa2bac1eda902566c924437cbe25360b] (r:1 w:1) + // Storage: unknown [0x5852d9d9072edcf8c92059e5fd0db36dd4462052ab7cec264b2c7d199d50ac3f] (r:1 w:1) + // Storage: unknown [0x63ae89fe4d673aee0b2ce473376da36c60dbd3edc5a7608cb4cf311cd5e0d635] (r:1 w:1) + // Storage: unknown [0x70c0824966fc4dfe90a9740b284e131eebfa28cac4c010724376afaa88fcddde] (r:1 w:1) + // Storage: unknown [0x7d1a7c7da2798aac8bd51675f08ddfb11a44ada2c5d5a621493d6ba35b9c3caf] (r:1 w:1) + // Storage: unknown [0xaa3b015c528422deb5b272951c9b21f64439baa57d273243f378ce9d291a30c9] (r:1 w:1) + // Storage: unknown [0xffa01c2b1e8481410b1207bac0e1f357e41581e001324873c809b383c16dd8b7] (r:1 w:1) + // Storage: unknown [0x19b003210a923977355564d664c01287ecfe83be2d465f5e99d3c03105fc2ab0] (r:1 w:1) + // Storage: unknown [0x2c1108b7cbe36e4a037eb29c204116b2f5fdb9da2635802c4de3404053c51d77] (r:1 w:1) + // Storage: unknown [0x4b6f8a87cdd23768e3dfce3ee7a2614b998a767e39035e94344f0a6089c0c4c5] (r:1 w:1) + // Storage: unknown [0x5ab0d964adf1f6ac3436b3b9e171a345ce07f01b0b35fac58e780d0dcdbf9e4c] (r:1 w:1) + // Storage: unknown [0x670d01023ac8c64b2c3da33e1d19c36c4eb1981b46571225c472841fef9e702c] (r:1 w:1) + // Storage: unknown [0x9a794f2ba173e4d3987f32b26f23634bc6a1ea6ede13756210243f026d395864] (r:1 w:1) + // Storage: unknown [0xc2c3cf3e838ea0936aac2272be3da5b1258dc53931e63045fda2a4e61cc9897b] (r:1 w:1) + // Storage: unknown [0xcbb519bbda43dcb93203c892789842e2cbf8eabbde279832fd91bb8e4fba31de] (r:1 w:1) + // Storage: unknown [0xdd8302d27abf6dc2270eca7a21b5b7af02495e7a2c33dbfbdedd421ecd7180af] (r:1 w:1) + // Storage: unknown [0x035c36e54d78f5a657005187bcadc31d6dd01bc9017ec5e1a479a673964346e6] (r:1 w:1) + // Storage: unknown [0x0f9ffb8ec2a1a1dd8bca07156eeebf830debcb4c345cd72d7377c31f98eab91a] (r:1 w:1) + // Storage: unknown [0x30ed371d94305cd05ebc3278d5faafa023b26db1fbecdcef3d2b9fab82ca8c27] (r:1 w:1) + // Storage: unknown [0x38ef26608ce2d8c63881c1957367989c990a9333cde334da98e5f5661668fea8] (r:1 w:1) + // Storage: unknown [0x397eb4b5c8440d7a1ce08239fb58b1c22700484295d3521198f162562ae772ed] (r:1 w:1) + // Storage: unknown [0x47a4353adb1bbf8f6f65faf93d0a56282d0cbe38db077ce85e35e3f466097a73] (r:1 w:1) + // Storage: unknown [0x4bf4fcbfd0cfa9763b2c40ff5957889c326f76e0ac3e364b6da7e28f3cb89e50] (r:1 w:1) + // Storage: unknown [0xd60aed2c8769890ed9d6fb94170b46fac79639c65d0dc0289340a62e86c4d831] (r:1 w:1) + // Storage: unknown [0xe92b49436c78a30d1aae41c733ac088a70a8ce9a306725618f52bdd4c4c07501] (r:1 w:1) + // Storage: unknown [0x2a8e3ae3f7519353a0e8a85c5c6d897cff5032bd945dac42e09ce6e310c143f1] (r:1 w:1) + // Storage: unknown [0x30397d885abd14d5eabc75a21e336852ac3dce3879a83b90035ceb2d607ebee9] (r:1 w:1) + // Storage: unknown [0x37c9fbaffb8eb93dc54894e8378d4e185a69e1157561a98d059657eedf5b2670] (r:1 w:1) + // Storage: unknown [0x3b24032554271fa66764953ae519d33a87bfed97231b99cba4466b3dbf99908c] (r:1 w:1) + // Storage: unknown [0xb9698194cdd5645046662d66f4a3279103508d78c9978ec54b154d42534763f1] (r:1 w:1) + // Storage: unknown [0xbba68e0920c2c5bd3487b448919c27a6867c5ee7d6699b713f56a90a651614ce] (r:1 w:1) + // Storage: unknown [0xddf83f4806c915fd142e344deb063eb5ed5721772a4feb56cfa469046d6edba1] (r:1 w:1) + // Storage: unknown [0xef325b1c8537772ada5b06519f8929f3ff049d0c09579a739a18e50370700c59] (r:1 w:1) + // Storage: unknown [0xfe2b10355a2516b8572175f4e3ef8ba8687cca3fee426b3b80bb1b8db4e08564] (r:1 w:1) + // Storage: unknown [0x2a8ec737d3db7565d0f4bbdc6f9c253d1e534f9b468d0402110d12658d50116e] (r:1 w:1) + // Storage: unknown [0x2ae6a2134fdcd8ca414b654e56361e6ac92a4674ce055ceab01fd3d9e5a204e0] (r:1 w:1) + // Storage: unknown [0x3016a40a91959adc6086e79a17cf8ee2f9e038f8d5250c724aa627c2fed9f47f] (r:1 w:1) + // Storage: unknown [0x323d73caf3f762d77ae5193f9715f8703d6bd2f3f19626fae62e7bcfab07b767] (r:1 w:1) + // Storage: unknown [0x816bb2f6c9cceafebee78babc8a3c8095aec357db1b8b6e5a4ac832492c469bc] (r:1 w:1) + // Storage: unknown [0xa50750b066f781e63bccebb57775f9d3ba7b44624bae77b9997d2a4bb80fa8d4] (r:1 w:1) + // Storage: unknown [0xa6691dea20613080f29237be39585440a5c37bd78cb3075e9f02c903b03f1e29] (r:1 w:1) + // Storage: unknown [0xc2f159a33d7f609b890d30c9af2422967c2423865bfc1d31b26046cba4c2965a] (r:1 w:1) + // Storage: unknown [0xeae0a2566b6ac214cb5298a9a8e160b8c5d467ec2543b4a6c57c31a166e082a0] (r:1 w:1) + // Storage: unknown [0x0255fb7cbf688b17898bda454f34de10cd5864bf0c9938ca898013d8c04bdb06] (r:1 w:1) + // Storage: unknown [0x0caf43f6381fb628135727230d6c750ed6004e34a8c1bb3b4f208b4819cfcf01] (r:1 w:1) + // Storage: unknown [0x23711525360aeeae0643bb1db76a386cd0cad86ecc96d99bc2d55691b0bd6d09] (r:1 w:1) + // Storage: unknown [0x314275cc77a136e89b93f70dba690912ed9927c4be09fcf7d3ad6aafb38b4b5a] (r:1 w:1) + // Storage: unknown [0x5caf00cbf2d1e5f34267b787f8515e50ca011dd67273439e2f8be3e16d1307eb] (r:1 w:1) + // Storage: unknown [0x9599e8bb6188bfc0f66c0769a7b882d686ac4de6dd64244ad3444622ee2dfa12] (r:1 w:1) + // Storage: unknown [0xc37c05727fbf73ebc724a77289e362dec9b0c3f15a3766c0ce18ccbc35abf0fb] (r:1 w:1) + // Storage: unknown [0xc7a39567e780e01f5132b82054f6b88c3fc3976dc07abf06b36f1cb3818bc45d] (r:1 w:1) + // Storage: unknown [0xcc9b77338ca78833152ff0221eb0d68eb8630515a262d1b76bbfa55c2bc0cc5b] (r:1 w:1) + // Storage: unknown [0x388cf112e930ffac757fd416bbfa6976ea3ccb42a573b182faa41a5d4e2c764a] (r:1 w:1) + // Storage: unknown [0x496ebfd4773f19bb23b23b5d22e17d1a95c575eac659ac5c01943f01ab7cd1ff] (r:1 w:1) + // Storage: unknown [0x58bc2d38e66911c6539e2e1e265b69ee36a7d5f2d9dd82b0688d45bbd64f7e6f] (r:1 w:1) + // Storage: unknown [0x847ff6f6158483969d76e0b4114493657e4d9a92008c04c4ead16fd1405fb9c1] (r:1 w:1) + // Storage: unknown [0x9388f896df5ed34ca45308f5e5c81cea93e24bd85d42dbef1e8a704c81d38b9e] (r:1 w:1) + // Storage: unknown [0xb79d749059601a3d8c72ff43e58db5f8d24bfd35228be610746544b95669a347] (r:1 w:1) + // Storage: unknown [0xc7a2a8698a7345317f4dc279d7840841c25358906c915e7ca5b8b4c09ccda808] (r:1 w:1) + // Storage: unknown [0xe5b92f2f3cc3b0ad16d1157b61df06abf15de6f133d6dee62d10f7ac45f85cc1] (r:1 w:1) + // Storage: unknown [0xfcbd15685a27928b84290bd6a4e893ad56ba73df7149a82091a8b37b502cbeb0] (r:1 w:1) + // Storage: unknown [0x0392a02d23fecb158ac27d3c28a51f0686024a9841e71710c66bcec6e29f8e0f] (r:1 w:1) + // Storage: unknown [0x2a00f03d467cd9683a9be7c4a8613015086dd05f6a7bf9a2d3bd4ef478732936] (r:1 w:1) + // Storage: unknown [0x3231b5f56292cc339ac941159eba4be941fdb8efa47e43cb28e1bb5c4266817d] (r:1 w:1) + // Storage: unknown [0x42d69131243a9e11dbe162524864c388a81a2ae550d66076b7864623c0f645e0] (r:1 w:1) + // Storage: unknown [0x586e8e7e98386d6dd27217632dba2d8314a0eca72a42409ce07a31f0638cb92d] (r:1 w:1) + // Storage: unknown [0x5b8abb2b3dceca152086f6d22af03bd1e425f7c04ad31db49e862770f394d25b] (r:1 w:1) + // Storage: unknown [0x8af99dd7260367cbf7bcbc222a092d37a2eaaeb75dc9357042d393f8d708899a] (r:1 w:1) + // Storage: unknown [0x9c16707397d0b463ed30c3826c42efe3eac8cb571c4da3b41809ddc81b0ee787] (r:1 w:1) + // Storage: unknown [0xfd9a4d435d8028aed79ecac41ba335234585df62d5d2cba54569df84da6b4b8b] (r:1 w:1) + // Storage: unknown [0x1d7d044749500157cdc9a315eaf3843cd96eaa0b8c081fd14ec8dd6e6b98ba55] (r:1 w:1) + // Storage: unknown [0x240a4e8b59a1f7d43a38a3846eaa3d638461dd509da91ec7fdd560f3afbd3c87] (r:1 w:1) + // Storage: unknown [0x63fefdf2bc89739939d368992763fe514b8e9138eb5934a64c1d0d41e1e5d7f2] (r:1 w:1) + // Storage: unknown [0x7366b11aa7e0a7a6a1bff6b1ceb7e328e840ce5494f957ee2516a439131210b3] (r:1 w:1) + // Storage: unknown [0x77682073647ac00a2e2a19c45db7979db0086d206067193b2aee81095c5500d2] (r:1 w:1) + // Storage: unknown [0xa21de1e492bfe777e3c7327fc330a6ea7dadc7d19776203e7459d34167f1b434] (r:1 w:1) + // Storage: unknown [0xac686fede961a86d2ef3223cf1c1ca6ccd9cae19e6c6362cced13401e16075f0] (r:1 w:1) + // Storage: unknown [0xb03b1adc3c8f79cdc660c09a2db4ceabe6a1a296f58eb9661dfd7d4b09eb8f1c] (r:1 w:1) + // Storage: unknown [0xe37317823a93ff9fd7a417342622ae0303245a4070e5e1434963e22f9ef7bc9e] (r:1 w:1) + // Storage: unknown [0x3ca470713b4c72106c42b22ddd848ea50dcdb3532d81b5919e496fc2ba5e4c43] (r:1 w:1) + // Storage: unknown [0x52861333b2032b6d6c01e2ae23614f208ff6444e653e17f2a09aa6b770314e20] (r:1 w:1) + // Storage: unknown [0x7a0a59a42308d5bd214941d6bfa806bcf0c15326b8298fa34493111c773604a6] (r:1 w:1) + // Storage: unknown [0x8f1fcdcf13d1ac4d60f551970f84a6f83718709b89698940caacface75bf86b8] (r:1 w:1) + // Storage: unknown [0x90de7d39f8f140e75d6c2a4cd171e0f7679030148ddf3c27d0d51719f8b46d3a] (r:1 w:1) + // Storage: unknown [0xbe13505791367e4b18783b822135776d73168dd0e8459649b93b4afbf66a47a7] (r:1 w:1) + // Storage: unknown [0xd5a45cb71afb47663c7931bc609f18203481124c132f5a2c00677a5974ecf8cf] (r:1 w:1) + // Storage: unknown [0xd82869ba4c71f32577e4c9b0b3b03e7c78b7ad7752b0f4da522e0db48d4f29a8] (r:1 w:1) + // Storage: unknown [0xd9b56a5d56fea4601b9c8eb74d156a75737ec2c23ddd28325553efa98a89849a] (r:1 w:1) + // Storage: unknown [0x63a9a48dc9889dcdb542e4756ebfe4fd4e151eedc944cf8fce8eed831e625213] (r:1 w:1) + // Storage: unknown [0x8946ef807fd99c2bb0953b4329d2881bdba2d01150e10f92b352953a60ae55de] (r:1 w:1) + // Storage: unknown [0x8dcb2165b826e2e8255fdab745a4be6833ad397ed714d95b2b65b2f971eb163f] (r:1 w:1) + // Storage: unknown [0x9b808e8559c3e77acd148d550f1bec8b5b3dae546f9dd31af9bcf7a66c4f7702] (r:1 w:1) + // Storage: unknown [0xaa8236e290b748a5df7ef66c11fb1bb74d584454be8b9a41760728daa291fa3e] (r:1 w:1) + // Storage: unknown [0xae86dbe88589fd0c835ec3ad6bc60af179ac34606cb5ef83d0e88ca2ec566aa7] (r:1 w:1) + // Storage: unknown [0xc614ff510337f671dd38dc2e8a682712d98a56847ba391356fed764345e35b26] (r:1 w:1) + // Storage: unknown [0xd5f29e9b3e39b0acd8c0553df2d51ca8650ffc86db593503d3e4a44467e3fb01] (r:1 w:1) + // Storage: unknown [0xdbafc2262c1f2f19c1175f138897165b774738d2ed51fe68701b0699f99aece3] (r:1 w:1) + // Storage: unknown [0x0778d7501991b13132ccd11471c817ea12d8c854ed0001535bb6ebf6c32aaecb] (r:1 w:1) + // Storage: unknown [0x092911fd1f91e76d07387555c0918a3a5e0e4c74e363405fd7af1659d89400f0] (r:1 w:1) + // Storage: unknown [0x0a04d087381d5acd884e1d64245af63561c7c5d1a317dca5cc3b4fa8fa631566] (r:1 w:1) + // Storage: unknown [0x189a7edf15097613065c2730b8ca2b8a250ed384a688f428539fe261b11113db] (r:1 w:1) + // Storage: unknown [0x28803fc1d667cd700cd1eb6b5e11a34a295a85b41cafd02086660f40d148dbed] (r:1 w:1) + // Storage: unknown [0x4504d19a2b788dab7f5c0c69c730fd64cd195c1c4d34359c827b7679b264cd18] (r:1 w:1) + // Storage: unknown [0x49c795e8525c4ef9c48fb6086cc2faaeef0a6182607b9fc944bcf4219d05b612] (r:1 w:1) + // Storage: unknown [0xf3fe2278bb1690c33583cc1b103aa0d9d397b50907767735319bd5d46f7bbb93] (r:1 w:1) + // Storage: unknown [0xfe68284f9c5354e6bbba0d09bfcd5e372c0ef4a66b8819b5c86021debc679208] (r:1 w:1) + // Storage: unknown [0x5442aefbc03aac1f97f6ecfee26cf9c8fa2e8cf7d366c3dbaf640a2ec280cc8e] (r:1 w:1) + // Storage: unknown [0x7afdb74eaec6f0c4abe2bba629952769e61f234e47b9f0617dde6b5fc7a06980] (r:1 w:1) + // Storage: unknown [0x8305f933e51efc14bf29b9a8996a86bb750f46699f3bb422175be5ebf16dbb50] (r:1 w:1) + // Storage: unknown [0x914c3991677898e736196d9cf3e8ab7acb205247fc645c5a576754bea40d261e] (r:1 w:1) + // Storage: unknown [0x9b98126a54cc090ed6209e6b8b53d474e5c9948f2f8c9f431d0acfb915d2ef59] (r:1 w:1) + // Storage: unknown [0xa22d1ad0661f6f3889c1cb28ae75e54c2efd41c154d41e531754bc1633d18ffb] (r:1 w:1) + // Storage: unknown [0xb19461f65e09aa3db1742d4ce3c8e92326bd1cd474234908dc97be6da9e8bbb4] (r:1 w:1) + // Storage: unknown [0xb965ddc866cb308a73a54977e01d2993cd881f57e8258800587562d292b75716] (r:1 w:1) + // Storage: unknown [0xcc6e350018b598b1e16ab4f9a46b3420e9f2142b90b35a9dc9cdf815168b127d] (r:1 w:1) + // Storage: unknown [0x03f78a0ae86588eb9fa56342a1bce9092937c05e97bdc6123adf5ce90fa5a3ec] (r:1 w:1) + // Storage: unknown [0x1dc502d3e93e9fd47a41ed20ccd7e59e0c03fd0d361b0815b9fa749ee4014ed6] (r:1 w:1) + // Storage: unknown [0x29546c1c2a4489ecd2a8d4fe12a11d2512d43e34e3eff69718c8cfd2d3d0071d] (r:1 w:1) + // Storage: unknown [0x3d3d028eb048ae2cd4e82e5609f3b86fbde4153442df785e8d3ca8bfed2cf4fd] (r:1 w:1) + // Storage: unknown [0x525c0fea64cf4d9c8c7277df429077ae9c31bcc34f595bf21c0c6005cd1cf001] (r:1 w:1) + // Storage: unknown [0x7159a7481a485dcb603f4ba2a225bdf00e0f04cfcc6690498480bbd6c90dc0c5] (r:1 w:1) + // Storage: unknown [0x8dc8b29d47360bf65fb984a859eb9564e5b71ab96829e125e5f64819f6808a70] (r:1 w:1) + // Storage: unknown [0xa073b6d6ab9a4070ae3ff167f9ad62342deb60c6b6d23dc99f038638fb8cfb4a] (r:1 w:1) + // Storage: unknown [0xbf1b7e1e75f5a090f8277557bf6f6c559a442c49828b938903351a8decf966be] (r:1 w:1) + // Storage: unknown [0x02c87740582a36cee9aec75d96945b7e2e89a5f613e85d1da7a7b6b511bc0646] (r:1 w:1) + // Storage: unknown [0x2f233781c2eed5e66fb637a747439e21e11db72c26eaacab3d0d2da11661513f] (r:1 w:1) + // Storage: unknown [0x63ae2203e6ee8fd038b677462121d5a15ad4c83b3a0abc9591fe31ef094b8d11] (r:1 w:1) + // Storage: unknown [0x732928ef558ce73c389b9858c3908ad4b784df1df5506d851c4bedbe0b93c42f] (r:1 w:1) + // Storage: unknown [0x804b85d6cd00f0b59bee93e1ca95795594986d0325364905b1e1e986759b7f3a] (r:1 w:1) + // Storage: unknown [0x9b9b935c5d7385ea63f1f4d8f4fba9ca77333c522b93f69456cf9e3d2b95735d] (r:1 w:1) + // Storage: unknown [0xce90a43f168474d0d85e7fdc662adb53320a85bac319d97abf9aa53fe4736bf1] (r:1 w:1) + // Storage: unknown [0xe7d911018d6fbb1c9c94e9325e4593bf276a2cb3a3cc937c80f0ef4c9272433c] (r:1 w:1) + // Storage: unknown [0xf3dd9a6cfcdb9127c2c114548b1b0826f0bb1d27e6dc0b7933d85672d937a514] (r:1 w:1) + // Storage: unknown [0x014502832fd6542b9131555c82966f144f62e8de7174ebacfd0d0ff2cfbe9a79] (r:1 w:1) + // Storage: unknown [0x092ff3743bbe2d8dbf8cb90c8a760389484b4e730be0323f51d85f43477c9878] (r:1 w:1) + // Storage: unknown [0x168bda7797ae0f4cb90fad3e8879e16edc5707b6f46e95aefc014cf8ced6e3e3] (r:1 w:1) + // Storage: unknown [0x51bae63e4129f50b542841d912a335ec8573a8aa7f46362d4c093a8b61eb1929] (r:1 w:1) + // Storage: unknown [0x811eceac5ad0b2648804d685b2e0c3a807bf67d12a3b54fd9dca9a078be98048] (r:1 w:1) + // Storage: unknown [0x945f12d2abdd23e5bc7f91524b6dfd2bc296834ab5bfd9d2e124b467a714cf1a] (r:1 w:1) + // Storage: unknown [0x9bc2e45b52e764017a0a322a586a1e37ce2a4afb239f8c6cc73dd0da76818a86] (r:1 w:1) + // Storage: unknown [0xcef2f93165875b8dd6caf7e5f8056cbeeed8b010b5b03b052df14f5e36156922] (r:1 w:1) + // Storage: unknown [0xe737bec58619859a19624d9cbe60e1848f339cbea12d5cd3fbfe5ef02def791f] (r:1 w:1) + // Storage: unknown [0x1f24f16f939428a33d5410529f11f7a573d2513df7a830f85551948fbf547fdf] (r:1 w:1) + // Storage: unknown [0x2eb381f6b73f0b9300d94f4f0b50ae4b35a5ea2ef407d796d95e4715d42cf940] (r:1 w:1) + // Storage: unknown [0x42ff8a2d17d124e2b40684c3c9ad8e1e9108b416eebc47ef183909b0952b32c3] (r:1 w:1) + // Storage: unknown [0x9b9b4d9443a2b5010644690956503eff1fa73d4fdf61c981aa4762a71a78877b] (r:1 w:1) + // Storage: unknown [0xa40fd6fa12fe90cd1a630001d90f83b12f442f9e8f508919fc8605685386f9b8] (r:1 w:1) + // Storage: unknown [0xc0847c2ed89d0e133347393fcbe8ccd722be616870187ec4c2c8c1fc14d16900] (r:1 w:1) + // Storage: unknown [0xccd6e6aac2c49b2ea854411986569e0f8dfc90e92065a2028c47c57e04669306] (r:1 w:1) + // Storage: unknown [0xef83243496cd71f9414a0eabec74b732a2e5b3cfb8c038f2891f988e0753555f] (r:1 w:1) + // Storage: unknown [0xfa2081d0272500dd465f66e48229eb243ec7aae07a81437c33f7042ccc273c90] (r:1 w:1) + // Storage: unknown [0x029de76adc7295ed41bbe6c450f4c7cb4f78f9b9a7d3edf67994cd6b1f511a7b] (r:1 w:1) + // Storage: unknown [0x11a2c57e147ad91b425775b77163fd83fd7ad15aa13f6ba1800fb0d486497868] (r:1 w:1) + // Storage: unknown [0x4874c9cd117e7a33a80fc59628c503e94be9296da73a8f463f2d40e0f044e11d] (r:1 w:1) + // Storage: unknown [0x629d17f361203449a9f588968037b3f8f170ae2687f29519aca2616228eee2b8] (r:1 w:1) + // Storage: unknown [0x7f192102f64f68a23e9de1a8e4c13c6c1ea1871d4d283046c9a431d758b1938d] (r:1 w:1) + // Storage: unknown [0x847cf95e67d5fc3da1c782f50c01c28cc75a458f8b3c1312d1c13f1f7cb8cff8] (r:1 w:1) + // Storage: unknown [0xa978a38b1ea1fea358dd03cba3280630218d4d52f3c5da9e0c728084df42483a] (r:1 w:1) + // Storage: unknown [0xc1948997f3e5d401de1e1d83cd6ee6b6c066a1ddca76c812bcc1c0c72e96b5f7] (r:1 w:1) + // Storage: unknown [0xf916345caf4690064d760040f4f053ab3ae8e675038cd67c4ae0b6df90fec567] (r:1 w:1) + // Storage: unknown [0x02d22f07ca8b30c749e4e5f6f724014e31e29e62579ef725a8d4a65069ac411c] (r:1 w:1) + // Storage: unknown [0x1c3356adf4350bf3bdedd5749147d18f9caa996e7aeb2033f1afbd010b912c4d] (r:1 w:1) + // Storage: unknown [0x38bcc692c3b7402da5bed46cf8e1a7c10b223116cdf1a2f4696df2b48f11122b] (r:1 w:1) + // Storage: unknown [0x48503bb95dbc5310a682c67b6f2949a8fa08f1e45418eab1a054dc6d919c9ec9] (r:1 w:1) + // Storage: unknown [0x59474766bbcaf25024437f6352f00a3fd5d1e6979bab6d456c0934178b91252f] (r:1 w:1) + // Storage: unknown [0xb4acf66b46284f06be1c289acdbb3cdb81f0c376478257695c16448daf064cf5] (r:1 w:1) + // Storage: unknown [0xb7fefbad6c8ea1c6cc0ddc69253b2e5f2c8905ade22c32c07368b7d686fa34b2] (r:1 w:1) + // Storage: unknown [0xd4722610951697839b4d9d8c6af980583b0198eae3053f9c732e8d94171ad4de] (r:1 w:1) + // Storage: unknown [0xeb34374c15d84b2d704c3e841453dbb1b8a05998e466b62e137646684823ebb5] (r:1 w:1) + // Storage: unknown [0x1f70aa6c83dd98f810dcaf611bdae5e011e5bc715d823e419c1e7e1943cf6f89] (r:1 w:1) + // Storage: unknown [0x302b1758e1ac8d5f9e8033966aa4f5c7e77512e1218b4b670afc098cb8c1f837] (r:1 w:1) + // Storage: unknown [0x31a782760fa7b79819505ff67e3a779a44efca82364dac907dd7bdc2692ed2d0] (r:1 w:1) + // Storage: unknown [0x4645cbc2f008fe9373ffd704ab8289810b5c10bba9303331e41c627583256adb] (r:1 w:1) + // Storage: unknown [0xa5c276fe36330f279b5fdc38a1a74a3dba974c7d819ef03cdb00ab5fad89f315] (r:1 w:1) + // Storage: unknown [0xbaeb1685aee142cf6d46f5929cfb222b8783de3b28121a7686c007c268785951] (r:1 w:1) + // Storage: unknown [0xc83b05e6f372fdf597b0f10cca15a53a5df46a46316bc5637dba4d0cd829b593] (r:1 w:1) + // Storage: unknown [0xca62e9f75f02064c89bf8c2d3e396024ca01ccc2038daa2a6fd2b5081bdd404b] (r:1 w:1) + // Storage: unknown [0xce880731cb3814ea9563bd0333b5eec23d7b3a3bda6375d75a2eae72dc15e18d] (r:1 w:1) + // Storage: unknown [0x33e9abdb07e28ca62cc53735e1627ecdacb61f748503df59cdfdf92fbc55f30e] (r:1 w:1) + // Storage: unknown [0x49d2ae779e34bfc15479b8613feb8c379c95173dc593fa66cf743cc079b790de] (r:1 w:1) + // Storage: unknown [0x49d7358ca22724d5c54acdf7fd593eb1908c6cebe3202ac07880236aa12dae56] (r:1 w:1) + // Storage: unknown [0x60d5c55c0e3c2d71a5bd70a177e22166fc205a6d69673bdf7f730469690a450c] (r:1 w:1) + // Storage: unknown [0x80bfc26d07f5767e0ecaea78cb96adb509bb879357342cbfce4a71edc370c30a] (r:1 w:1) + // Storage: unknown [0xc00905cda576b91dc0362b6770fba56e5324c650e43eff1503a2802a4e056ea3] (r:1 w:1) + // Storage: unknown [0xcd15694f12f82b6eb2df1f55e20bc431b37e88b006a1e8861863fae26134a9b1] (r:1 w:1) + // Storage: unknown [0xd5873d069c99592802c0d4da14a20afa74109019f9d47b766637fc5cffbe2a01] (r:1 w:1) + // Storage: unknown [0xe2457ea4be0b54d78eec228c73f68a84e316f0b5c8516edc1791d6904338674a] (r:1 w:1) + // Storage: unknown [0x145db170b8204d0c5e31ac757be2ab626b628419ea745e8b75c14cb606f85100] (r:1 w:1) + // Storage: unknown [0x5df05b79602a7278a9b2c04514eeb33dbb923ce016bf90bea1cf81744a445535] (r:1 w:1) + // Storage: unknown [0x986b7f7212341d0c17047a84e41b842c917eef7b6a038af4e3264b803250c2c9] (r:1 w:1) + // Storage: unknown [0x9e6b5952d5c876d0e88532a69519a2bb2ea71ae4eebb4492c16b1192966e8354] (r:1 w:1) + // Storage: unknown [0xa6a946a4cd6ec4adec7a3a5ca20fe7f83015cbcf5d60bf35a27aab38bd8ec72c] (r:1 w:1) + // Storage: unknown [0xb3af15676dc7ff5955afad0f4f764a9e508af856855249841e439391b3bb0098] (r:1 w:1) + // Storage: unknown [0xcf1b3bc717b8e7905f01d0e2531b92b4e292dd724fa36fef6e83b194d92b806f] (r:1 w:1) + // Storage: unknown [0xdcc77b6cade77f9f73e151eb609dc510f3437777635d586cbadad6b96fa0d8c0] (r:1 w:1) + // Storage: unknown [0xea2d58c504ca7bb0df13c1c38ec94349a9175e39c606bb5d5029c9cb2e15c387] (r:1 w:1) + // Storage: unknown [0x16b5c4b24af1dd526291c2f81753f92a092ed37320f17bfab12184400f6a9f50] (r:1 w:1) + // Storage: unknown [0x26cb13235a11327b22555f3512c737b9518cf8205371033bac55a0e89a85994a] (r:1 w:1) + // Storage: unknown [0x4a9753b9eeef39fd60c9559e3468ea605cbc03fcd2faa29cbe63e799c81e8469] (r:1 w:1) + // Storage: unknown [0xb6582ae0991727fc0bf192047d16a31f5e4cbf90321cea9d3d49b9e1b5407dad] (r:1 w:1) + // Storage: unknown [0xc0fa605b92057dee3e77f6dc0c6e91621d09d8b91c5cfafdbcb38830960e0bdd] (r:1 w:1) + // Storage: unknown [0xcf2e8ba860b7041752b2b1fb8e0360d1b40fd41617c7934746bb1e244c77016a] (r:1 w:1) + // Storage: unknown [0xd08934b7a2d1ee349de3ae53bd2286b123adca84023306014c2d75c822e74af7] (r:1 w:1) + // Storage: unknown [0xe5985dffc1ac88a03cd7a8ea79d35d6813529a692a9380a2ad04fc0db20c0e05] (r:1 w:1) + // Storage: unknown [0xf00871f755719a8c1ac33f2fa611c1736e64a16e450bfea842baf8d9114d7041] (r:1 w:1) + // Storage: unknown [0x2d86b69fa25bcdbc7a3ad6cb76e12641ef01e00dcacbf31ddde60d2d228f9ae6] (r:1 w:1) + // Storage: unknown [0x4654293309c9d9ab4282485875ec1b776dba729b6146e9bc3966a9a819c017df] (r:1 w:1) + // Storage: unknown [0x5b9007f9119be10a7d1ae77002e96ecb7f79dfa7a9f300818812048748cf55d2] (r:1 w:1) + // Storage: unknown [0x5d96a67962f8613c419566d4dcb0697c8ec617897769b55a4ac4dd93155d4578] (r:1 w:1) + // Storage: unknown [0x85825e6cce4096e5a7dc169434fa91d22210b6c7ab8897b30985aea6ae20fd53] (r:1 w:1) + // Storage: unknown [0xa1b69262faff4cd2563e3b4931f2e8956362bef384adf9db005f3b1fbdd0d4d1] (r:1 w:1) + // Storage: unknown [0xb7c9da42ebd963aa3b0eaaf14e1e7356a082f13e57028c18c99f740aef5fd5c6] (r:1 w:1) + // Storage: unknown [0xd68485a52f9f464924546f77ebccc5fad66a93e22a1fc60c4bee070012896ce6] (r:1 w:1) + // Storage: unknown [0xf5626fa70a62fa697416f25b3e7e282a6b099cc9f63f6cca84d2500a9e23891f] (r:1 w:1) + // Storage: unknown [0x00fbe4c87dfafd81acde0c62d71afdad98b6fcd3ac7c5978a5bc6e2263d5943a] (r:1 w:1) + // Storage: unknown [0x0c079912425799c807fe6c182742aaa56a3b3fec7a2a9d954147f10e0c1e5afe] (r:1 w:1) + // Storage: unknown [0x11df950500fabbfc9570427f37c48cdbebcc94c5046fd4bc41a974e1dbe3d7f6] (r:1 w:1) + // Storage: unknown [0x1364fb94ec0dfbe5aa25a5f7427fc57ec8aa3ca7185c6246478add1d2d6f9faa] (r:1 w:1) + // Storage: unknown [0x27719eaca95aa18d9c543ab4a618fb1a51801ff2039b76a44e660d3974fb870b] (r:1 w:1) + // Storage: unknown [0x5c83011c24766f0080212191a03acb9e0ab086bb3c34b5beacd0d75d1d851846] (r:1 w:1) + // Storage: unknown [0x5cf4866b18bde15f76add7faf64e389e33b2e3c80b9f030e13e6b4eef3d6f23a] (r:1 w:1) + // Storage: unknown [0x87f065cba864c0ba39f6f0f3d11014f11da5b47eb8e713a4ff563dd8b0d7714c] (r:1 w:1) + // Storage: unknown [0xec9ef3dc71ba02a92626ebafc549db307121d398e7d53f773173333d020081d7] (r:1 w:1) + // Storage: unknown [0x4da8525f1f71b5fa7c393567e81e1dd66971d9fc5f031ebdc0fed9067d53f468] (r:1 w:1) + // Storage: unknown [0x6042de2b474edc72726c1d63652d328bf1d7baaeb992c55ebce5c0176608a8cf] (r:1 w:1) + // Storage: unknown [0x851eddee51237cc23ca00399b49e23c4ae44f5ab90b9249fa3e45780b4cae285] (r:1 w:1) + // Storage: unknown [0xa4a3811d91079e816d9a640c1a18e7f20a07f1fe33ca70aed4ba60f4bae6b1b0] (r:1 w:1) + // Storage: unknown [0xc88e6b7e019a0ae3b458533fea59b67ea36088034fd75333f60a80c280d79567] (r:1 w:1) + // Storage: unknown [0xcefdb5a6dbb7dce411445e4cfa61ad6f94c535835337a04cabcd3e1f8b857c95] (r:1 w:1) + // Storage: unknown [0xcfd8d84d37947062d49533c3ecc87470cea87db911ff65dd30f5c1db01430753] (r:1 w:1) + // Storage: unknown [0xda4d234593241eb8e2ea34328f2d6dbd2d7b33c0ed622e3cef00ad33967c09ea] (r:1 w:1) + // Storage: unknown [0xe52748c1a2cfb8c55639657bcf8999e084b1f4922562f2004d034a267c060e68] (r:1 w:1) + // Storage: unknown [0x35a386fbec1c4fc3b1ccc64c3caa55412ed03a613d7444008f3c820aa5b17bbf] (r:1 w:1) + // Storage: unknown [0x5a9de37e4f97e367a194298f06dc78713654a6087aed324b2df9f30e60298d7a] (r:1 w:1) + // Storage: unknown [0x6b8ed23e3a83354f761aa53087b88fdfee9d95f3d3b140ebad9542574c1439e8] (r:1 w:1) + // Storage: unknown [0x76c147f0828a67ce3d00dd2a657f618d183ac0a968c3c1952ebc9bf4c1382c7e] (r:1 w:1) + // Storage: unknown [0x9a644b6e7d6fecdc4ea972ccb4468de093e6c8066974d5e96d736df2e7ee0f84] (r:1 w:1) + // Storage: unknown [0xc14a6a92f5e2c95c9bcd26bf4210cfb628aca80d4662dfaaad0d7e89c12c7796] (r:1 w:1) + // Storage: unknown [0xd2b915f9e77d771de5421ee94839e2c61d529da30018195a2cdd77dee3b932fe] (r:1 w:1) + // Storage: unknown [0xf2f2be4594311ff3e9f8795baf0fad3d984dd750d9b8b66f1551b517c511b66e] (r:1 w:1) + // Storage: unknown [0xfb92258fc6d0c6f5cf211734bcf1779b22b86f919cbea6600f09787e33cef27d] (r:1 w:1) + // Storage: unknown [0x3b2c201b2eba43083a922bb7f99b66175259c5ffa9b5f90f78557ffcbebd1be3] (r:1 w:1) + // Storage: unknown [0x4739757a07f6af63682496729933cd92ddcbdae3617bce4769a087f6fb128c1f] (r:1 w:1) + // Storage: unknown [0x5a19744d580bdab0ac65664cadaa3e46cb10efc0ebd65f03d2a05ff648bc39ba] (r:1 w:1) + // Storage: unknown [0x9205671a8148815a8b414d028efab35292a41efe38a095bc3b83ca3b35e59dd1] (r:1 w:1) + // Storage: unknown [0xa274879999b34be6f96d1b3e31c2b6767c8dc656465635fa67c3740afaaae366] (r:1 w:1) + // Storage: unknown [0xaf946540d176e593860ca2290489fd7c16e0a804c48ebd11a8a9eea4bb80f7c3] (r:1 w:1) + // Storage: unknown [0xbb458c5f8b1b5cfa50b7e825fc1f8e78115e10e9db8597c4ef35549251465333] (r:1 w:1) + // Storage: unknown [0xbd8bf13aaa21833efc3add680619ddd4ef27f761437b8ba8d52d83e44413baa2] (r:1 w:1) + // Storage: unknown [0xdce9aecbadeae369d0c7ef002c41109c8a140bd7000ad4ff381cd50e785a262f] (r:1 w:1) + // Storage: unknown [0x1184d106dc781c07114d3a4560d00ba52b987e6ef4192105edca47599e3d079f] (r:1 w:1) + // Storage: unknown [0x298a7203eb1841c29a31c051cf0559ace866196b249bf1bcc1500eda35382b59] (r:1 w:1) + // Storage: unknown [0x5361d7d91627565c545e4844a53782f73741204ad5f3d517142ead6ca4d040f8] (r:1 w:1) + // Storage: unknown [0x623fc7609e608684e874840e045ec1ee7cabea4d390f591af4f34116963e62f4] (r:1 w:1) + // Storage: unknown [0x7eacc962a34ad7de3a66b92e4067b79a0f2e1815a6b261963d60a8f93c0a87b7] (r:1 w:1) + // Storage: unknown [0xb3e6e83f56be1b97c7e8c0ac5dcba5592e9129a77d95b1c79b27fa9a2ccc6863] (r:1 w:1) + // Storage: unknown [0xbd3719c0ed684f33ec28d93bd293d5a6330d7800bf928784bd0a107c296e96f0] (r:1 w:1) + // Storage: unknown [0xfbde54f17dbe9856d1e47a704fd9ea30281e4256671a63f37515d090df7f789f] (r:1 w:1) + // Storage: unknown [0xff98de6b90b3193de12945bc91d51fc38529ca4736d72bff21e90c7264c2f71a] (r:1 w:1) + // Storage: unknown [0x14dea875e0cedebfdd7d6dd9cd735842f31f0eb5897cf78ea0689a5a40f0a1a8] (r:1 w:1) + // Storage: unknown [0x19c9221c80f963bd72706bf3e0b63101d13d0d802aba95b9fcbc973fd287de59] (r:1 w:1) + // Storage: unknown [0x26aeb0fd26ac70ca2100d361a38a1a1fbcb19073a66853b14c59dbd56232dec6] (r:1 w:1) + // Storage: unknown [0x296551be0ba05b759efee2f02ca8d66ebb30120f246e83998c479f02c544e6ce] (r:1 w:1) + // Storage: unknown [0x5b5d43ded5ec8bcbc324492bd7739e92aee01a6f2c92bdb406abf5cc22f94552] (r:1 w:1) + // Storage: unknown [0x9f1850be63238c511db8ed703865cf530c5b0130b9e05a6de7e64627c6ad28ee] (r:1 w:1) + // Storage: unknown [0xa392d69bb5702f4417e0539366bd6ba139091fee633cf80d002d65c17111c9ae] (r:1 w:1) + // Storage: unknown [0xa67c6c2e46a40b67a88da9ce19133a1fe82491454c3f9b46a780de7e39341818] (r:1 w:1) + // Storage: unknown [0xb4acab02d78565e75ded51cee3273bcb2c98c0ffe8ffc545e4443b9bb07acaa2] (r:1 w:1) + // Storage: unknown [0x068082b39adf010e46c67f9d309ab9f500e5871d35b2993dd2ed0efd7a608018] (r:1 w:1) + // Storage: unknown [0x142f5546e7f86dddfe61211c399e1ace2be267bd8e4588b5682e73190ec29013] (r:1 w:1) + // Storage: unknown [0x2a0063f1a695f4d5563cabf3a6509d4f1491f40def624da9ade96dca3e933fb7] (r:1 w:1) + // Storage: unknown [0x356a887fd94f35b96ba15ec380500124befe1d3a17db608206161f22fccc7b86] (r:1 w:1) + // Storage: unknown [0x469f13dbe853651de759d758e8c30fdd20509367438c0275374a4c65f12e932b] (r:1 w:1) + // Storage: unknown [0x5c236523c6cef783c51c5d0dcdd4004f9aae4672b0ac997a777a0f3e2a629f8c] (r:1 w:1) + // Storage: unknown [0x5e4fcef0c7b973d39202d6fb0b06382887cb4389e61c27eb6224d006507a603f] (r:1 w:1) + // Storage: unknown [0xefa37685db10d0006e32e246cfaeb3cb6f33e8bd8f9ee84e61ee74ddbe35751a] (r:1 w:1) + // Storage: unknown [0xf8f59457a17aa1c34a1ea10fdeae16073f984657e0de6f7ae83f1405fde4f5c9] (r:1 w:1) + // Storage: unknown [0x32383cbb91d30600129e5ac97215741c81a86e63ae195adc057d29851b1e0635] (r:1 w:1) + // Storage: unknown [0x4ef4e5b5393914626c4570a05e7285ed225afce30a0d44476430fb385003d620] (r:1 w:1) + // Storage: unknown [0x52d5dc7ed11587378e6f063077d77430ba03c9ae21af62d277b7d23652b0f343] (r:1 w:1) + // Storage: unknown [0x8b6e86ff35b3bc955e9a8b706de850f5af7333311a692d7d1f6c892c9e0743d9] (r:1 w:1) + // Storage: unknown [0x9a57b167d72f9f3f5691f126d9b48942121a334340431be4d54903611add9cf6] (r:1 w:1) + // Storage: unknown [0xbecd8975089980917398dff92cf36548f1fa9b6b3d96eab120bfcd0a08be1133] (r:1 w:1) + // Storage: unknown [0xcaac1573f11eeaedbdfbe22884270e52a46a445d4f41c98fe95dd39fb0628fd2] (r:1 w:1) + // Storage: unknown [0xd37a7f79ab5c1c824fde6f849a12fbdec5bf8b8ae7b7df8bac21df690d1ac566] (r:1 w:1) + // Storage: unknown [0xf38e1806d2b2118a231477732019db23ca62831e3e0b8cc816a99a2182391eac] (r:1 w:1) + // Storage: unknown [0x29c03696410a0dcbf4e9bc8d076151124b7edc54fbc0cfbdc3faf7789164e206] (r:1 w:1) + // Storage: unknown [0x3195c59775014b156b70f95e90ab361304fb260bcc381c33c20b5e7293d4c7fc] (r:1 w:1) + // Storage: unknown [0x569d226e75a0eb467301f6fa4cb938d4fcd849d3efe969c161542ad1e75279cc] (r:1 w:1) + // Storage: unknown [0x93295b594fc192103b95e0638dd9f254d36a2e9b299bee6d275df67c8af4d759] (r:1 w:1) + // Storage: unknown [0xb7be2c897eac67b4b3a5da1a02b4b1816992ee98f6112b4d5262f73fc255c3a4] (r:1 w:1) + // Storage: unknown [0xc611fe61e43f3ba3182c4c6785a2a3ac060e2679bb8174a0ac1e234551428752] (r:1 w:1) + // Storage: unknown [0xd4f9a331a2eb206dc43bc6fa02586bd740021c262d4a5b74ff2ec74b24bb07b6] (r:1 w:1) + // Storage: unknown [0xdbf56dd98c667cdce364a53557f373d98947f7fe0bd7da6d72168e6572bfb622] (r:1 w:1) + // Storage: unknown [0xf74ed7b12e94dff551fb1db30d97245cca3374be5e04826487f83154a7ca79dc] (r:1 w:1) + // Storage: unknown [0x38478fb97716aa0a228f48ab751be24feab89ba4997894f4748c3784434852e7] (r:1 w:1) + // Storage: unknown [0x3935ad150e4eee0800486d78e89c19b55ddade16282d29f5fd75e398a03adeed] (r:1 w:1) + // Storage: unknown [0x65085b97bb627b7c8c3b4f09e5f174d1938737422c6154bd173ac6d0d75b6ea0] (r:1 w:1) + // Storage: unknown [0x7646ee188a1eb4daa60fccda6425d15a42eb1a25a2cb8252faa604ae48046dc6] (r:1 w:1) + // Storage: unknown [0x7b6c8e917003b1a2b8ea5c05efdd4eac91892086faac90cc893e2b7987222ad3] (r:1 w:1) + // Storage: unknown [0x94a9e5b0983394edf89c1193a94b8d5903d3bedcfb5bd892d2211f3a92beed21] (r:1 w:1) + // Storage: unknown [0xbc8dd82eb384558ef8afaddadb2534ad0d3b84350e42c080b92a318972afae84] (r:1 w:1) + // Storage: unknown [0xcc0292b10dc5b24ebfb31ecf1b60f5dd86c030def71e418f5d5ea58662d0e928] (r:1 w:1) + // Storage: unknown [0xd1b96b87e9f4bdd1d26a51daaa1e4dfc72baf9c8d0eab927c39de1d913759d1a] (r:1 w:1) + // Storage: unknown [0x01407b106cb8d8b1662ca8a44f362e1d99445ac4f611e160dc794fe19e91b9ef] (r:1 w:1) + // Storage: unknown [0x21f921d2a08b6c668f1575f8d69a2e27faed15e73a5813476d34a006d37dc9d8] (r:1 w:1) + // Storage: unknown [0x5574f592ca3417c1b74110fe7a3111bbcc0bc2cac6700cdf744d358734618c62] (r:1 w:1) + // Storage: unknown [0x5c182c2454b1ab519763417f95d564e2f77481dc5d5144ba489126dba6ce4f5f] (r:1 w:1) + // Storage: unknown [0x9b47d63344f6bbca64de1f01ad61d1e96af27f8bdafbdd8e638fc662452b4a05] (r:1 w:1) + // Storage: unknown [0x9c3a5cab41c65e4012798e7a06ddfd0546d455cfd46e94dfb84f4db210c29f6a] (r:1 w:1) + // Storage: unknown [0xc5928d7aa41aaa4efa11f127abace229d1265f4aaab036ab2093b26d3d25a318] (r:1 w:1) + // Storage: unknown [0xd251d389ae41aa428d7988c8e21995955dbb7dea36d2ac7570c85c43dc93c283] (r:1 w:1) + // Storage: unknown [0xf74f8fbdd0c70dffcc0218967818fad4252365bbc70ce33911f2112c9b312a15] (r:1 w:1) + // Storage: unknown [0x09a9376f1f7cb70af3a8b9b5c92fa34f1e40d6b518dbab9e0456bdaf2d322d0a] (r:1 w:1) + // Storage: unknown [0x2eecbb5fe19bbdbf62c79dba3456e92353a669f824bca8fb182f64d434e5d3ba] (r:1 w:1) + // Storage: unknown [0x4d332ce8f79870034022a949e25bae7943f8a2b69809bb9b6924542c2dc515f8] (r:1 w:1) + // Storage: unknown [0x875a7c5b801553193ab832bde427cd32f4159eecda9360ce4ea5185bd346422a] (r:1 w:1) + // Storage: unknown [0x8d8b1441f3859ef83c3ba5317547a84315ea29f41a83b6ff6da7039a88cac242] (r:1 w:1) + // Storage: unknown [0xc20f284dc00bb5f2932de03004d66c3a3bf3185c39ff61305a37198e3fbbd556] (r:1 w:1) + // Storage: unknown [0xd4f841abc893dc3cdea7c3d0d48ffcae53f63273f02c4391c2ccae0e52b5d43b] (r:1 w:1) + // Storage: unknown [0xd871ea178240c567bb4b8f35499644f8a013cdd76b381270540e9262b3da6a7e] (r:1 w:1) + // Storage: unknown [0xe5d24a5d239ad66f0cd6f13870d9747268a20306547f18dfcc91a88d84b056d6] (r:1 w:1) + // Storage: unknown [0x0f9026200cd5a19cd525379b24be34bcfd7016632fbb2891727e2c25513a5b70] (r:1 w:1) + // Storage: unknown [0x1489c4130501c2541e6c08aac4366599c37afb7ae0b4596e2ef2df4f9e0e6e6d] (r:1 w:1) + // Storage: unknown [0x25449a9001eed866e08345dd7d9a4c8234dfefff889899f3cff3b11bd0323f77] (r:1 w:1) + // Storage: unknown [0x3a689c9258d7959693de61d227fd6387894b4f48d201153c07057f808f9e7c5e] (r:1 w:1) + // Storage: unknown [0x9b6bd652c8562ea2e8071c6d604ebd41b2f3512b00d5ba7c20bc84fb2c1ccc2b] (r:1 w:1) + // Storage: unknown [0xb58f57a77781f6c9c5e12dd8e9fc1c8a9803b9dbba298538ab8d44985b74ab62] (r:1 w:1) + // Storage: unknown [0xcdbbb235046f6dafcb1913e53d45908631d73da7ed44263114432f3aae07ca71] (r:1 w:1) + // Storage: unknown [0xd1fd28c56fba032c65b1ad0a259ccab7f504346d22eafb2914c1dff1969d2a99] (r:1 w:1) + // Storage: unknown [0xe5860e29baab88a2f5fba4e38ba443968e067a279b72e87809d0228d631d89e6] (r:1 w:1) + // Storage: unknown [0x03fc50a53f8b55b7eb687d52bf0b688002613765a93b82f781065d6aae154b73] (r:1 w:1) + // Storage: unknown [0x36bfc1799952138154bf8020abbac8cfef585b3d5b8e24e24cc64e462db8992c] (r:1 w:1) + // Storage: unknown [0x390714b65f121ddc2954b7b9332fded961e58d32610a78724690ef87368bf7b6] (r:1 w:1) + // Storage: unknown [0x4b0192c61e4a1b2facce37c15309708bcd5bfc05c909cc76dd891478c84e3024] (r:1 w:1) + // Storage: unknown [0x7bfa441f3dee7aee4705a770c11edf7c4e05aba0b61c07094368e3d9d8e084c6] (r:1 w:1) + // Storage: unknown [0x7f10f8460f8af980c7d997040fcefb774538925362a0d956a11a77b40e6a5eba] (r:1 w:1) + // Storage: unknown [0x94b27a6ef159c56e0738bb35091863e326d1673b6548448bae7ac7e65fdab57e] (r:1 w:1) + // Storage: unknown [0xb1ffd2ee81d0411cd8698179bd8d84a9d436e7990185f336ac5953dd47e43ba5] (r:1 w:1) + // Storage: unknown [0xd0ea5cb1c4c9b8ca8bcf3f51dee17f42d030373e6ab09f45d75893c6364289d4] (r:1 w:1) + // Storage: unknown [0x15212ee014dc075c0e6f42b242af7e4d121f7d41e9caff916f7a524a4c29776d] (r:1 w:1) + // Storage: unknown [0x4187f2f0fdf610dc9d337c1cf46958c7db0394b0974296637d5a84fb7c2b3a8b] (r:1 w:1) + // Storage: unknown [0x4732d393876184fe46ea5cfa83b627f7bd1b6727003b9a0088a03636b4356243] (r:1 w:1) + // Storage: unknown [0x4be2d0c811822615e4848cd3054f3d9b1a7c34b18470d9a6f89100c0445fb010] (r:1 w:1) + // Storage: unknown [0x6da525e61d6b36723c2b5a2ca124c85d1856816e0b35238d0a850f9943e7ba66] (r:1 w:1) + // Storage: unknown [0x9c802f738e1b04601ed0d0abe32bdcf042074f8edaf2fa4571b124b01fa70846] (r:1 w:1) + // Storage: unknown [0xa73ce6f8f9d23682724f09954f06a53d3c4007cb29af7ebf5a8e606c5732cc86] (r:1 w:1) + // Storage: unknown [0xc1da305dcb85ec2893959f2ae65b4b22ae8bd45693ab0e3fce81d72cb2552577] (r:1 w:1) + // Storage: unknown [0xd3c6d933b4be80010db2b04898cd1f86bef1f05f4910ea6ec76cd893764cde57] (r:1 w:1) + // Storage: unknown [0x6a347d8997bcb43ef505e6876c09195b98dac72be6e9f08899090815a8bcde0e] (r:1 w:1) + // Storage: unknown [0x6cbadf65e4209acb1dfe5cc362ff515ffc407404026c48b83267237ca296beec] (r:1 w:1) + // Storage: unknown [0x7788a3a1aa009c1ba85f5f4bcdb8c4d371a45b6ed7b3d125f14ccbaf907bed68] (r:1 w:1) + // Storage: unknown [0xb141aef67c001419ce515c56c58b59d29d52e73eaadcaf464410553d1035f33a] (r:1 w:1) + // Storage: unknown [0xc0a79638a9bd36ef462f127f86035f874c9c7559d9e7dce1273c583e1539df83] (r:1 w:1) + // Storage: unknown [0xc0d5f26bb40d24ab056e1bd440482fb7db86ab2d0f9868977397c038c6230e9b] (r:1 w:1) + // Storage: unknown [0xc5cbbca4f0275eee449ae706cd0ed9de748d575507d8f045ad9f14712971090c] (r:1 w:1) + // Storage: unknown [0xd2e619fb36c5659aabe595bf30254a3e35c315d46d2afe91ab22801c35a1e8e0] (r:1 w:1) + // Storage: unknown [0xe2645307c930fa6f7ef89428b23f1cfcaa7e1218e99223f8d3f33bd8a0d742f8] (r:1 w:1) + // Storage: unknown [0x2e4e39c5b08d717d1808350db637f08e1b2cf6e9539595440e3d27ab3c719903] (r:1 w:1) + // Storage: unknown [0x43efa67dab5b54814027207019c7a820cb5415238f9b1250f234c3116933325c] (r:1 w:1) + // Storage: unknown [0x4e3ad2f84a1efe894ef7c96a4d086262a0d2de21f30121237e4d459c8c7a6f0f] (r:1 w:1) + // Storage: unknown [0x51f0a4a31006ed7e745dc8dc0d0d9e4cd78cf6d47d50e363b7975907ef548afd] (r:1 w:1) + // Storage: unknown [0x5f64929bcef4ccdf44d337a9ae8c17b203952240df87f49a5b10ee976e87f2ea] (r:1 w:1) + // Storage: unknown [0x6cb369ca9f516aabc21356337ee21e4b6bd7682c4325ec8d1481aa7686df9913] (r:1 w:1) + // Storage: unknown [0x9e8f653956af16e4b6e9759b8411451382d6749ef6dd44a6179293bad1bea1bc] (r:1 w:1) + // Storage: unknown [0xb192b38245587a98a41cacead1ceeeea650df259cc3c03902d7b6550a7a01b2d] (r:1 w:1) + // Storage: unknown [0xe11c6afab8139f5ea3d2dbfb377e756458f3d7f4d1f97c2fbdad93a745bd1403] (r:1 w:1) + // Storage: unknown [0x09a6e269066844934a3ca55c5c095f8112f4492f292a0d3ab1a374621a8f829c] (r:1 w:1) + // Storage: unknown [0x0a76588d48ee18219d4cb75458b1dcdc677263106ade9c9a30c728face6ca80d] (r:1 w:1) + // Storage: unknown [0x21fee12be772e78a59541b5d650b2186ec4cda36c4d37328d514ea66fde98904] (r:1 w:1) + // Storage: unknown [0x3e73e9aa06c5d5e22894a96e184a6dbedea5139f48e02980d2efcad0b758cdc2] (r:1 w:1) + // Storage: unknown [0x654c9261c5825253ff541d8993e72fe856a9f79b3598d447f38279e898a2b4e0] (r:1 w:1) + // Storage: unknown [0x768a3118cdd3b2a2759a0c75f20d3212dfc86cfcc249655bfe3bebb06bc1cc8e] (r:1 w:1) + // Storage: unknown [0x8b204a61cc4033ce6ce7af095ed891dfd7d19a642ef5561b4c510def6edb78ad] (r:1 w:1) + // Storage: unknown [0xc8dbe9efd7c11f55ac197805b9d8dd04426703cc4521b808dfd24b342ade9b03] (r:1 w:1) + // Storage: unknown [0xfeb9426ed2d7f338977a3257b6729210dfd069a0274230dc74267c2ee7ed0b77] (r:1 w:1) + // Storage: unknown [0x0232d463305f8fcea7214c40efa268b26f6853c420ef75961761315a09e7b7bb] (r:1 w:1) + // Storage: unknown [0x1a350d01aad2f424d54ab323adbddefe00b1ec517f8ba9d4a8587e1ab6825fd7] (r:1 w:1) + // Storage: unknown [0x20afbef21dfb3b37883c4e0eb83a8f1f33b5676fcbef51339631429d5d921279] (r:1 w:1) + // Storage: unknown [0x6b0fd9c9e97dad955d766b7a4ff67adcbb5bff2ebec6a407e8b7c4bd4d45c5ad] (r:1 w:1) + // Storage: unknown [0x758ff77cb1f5d2032a7e366371426e160ccd0b96925f06bbc9329f98de0e19ca] (r:1 w:1) + // Storage: unknown [0x8dd87fc444419a4a88abe89607b045d3141156f5b2d716290910ec732899d1a5] (r:1 w:1) + // Storage: unknown [0xbc74be6da6abfeac2567acdb80142289c6da87a0f3682f96e4a387350028ecdd] (r:1 w:1) + // Storage: unknown [0xd856c79bf100dc8b235a733d120ba3e6575dec83527bf0312a9f2ddb41f83df7] (r:1 w:1) + // Storage: unknown [0xeab25b78085c98a9b4688df96c04ef8b39158fd62e6e52e33590fb21c1328dcc] (r:1 w:1) + // Storage: unknown [0x0fd1b2d3599d3ff280c2880169ee61ce60a3df6183220f88c57c637f73641101] (r:1 w:1) + // Storage: unknown [0x250c74e6a150be40d25a748d04adebe88c1efbb9508443fd9655f88592a692d7] (r:1 w:1) + // Storage: unknown [0x7a2e58ba4d1f6ce180e06278d12bb8090221c0b181ba26f2b1a91897d312b723] (r:1 w:1) + // Storage: unknown [0x8e2c35f4209f4902ac5c733e6ac0c213ee089994c63ae8424be9fe625ce3d843] (r:1 w:1) + // Storage: unknown [0x9a7ca4148e063f02caaa764e89a6338fb598082b807ad2253127aa1ddccab5a3] (r:1 w:1) + // Storage: unknown [0xaacab268ca7cbb3c5a6c7030c43362d255f6cc408b83fd68b7ae6ee31ccb7e20] (r:1 w:1) + // Storage: unknown [0xb4f410c11de2e2060206ca18d5ff89d2bbf64aa94583a0693733ca98ca481b2f] (r:1 w:1) + // Storage: unknown [0xdbd5457c02ad4f1b32be421421b81cc926c4bf998df2ee94ee9363e74ea064c1] (r:1 w:1) + // Storage: unknown [0xea1bea5c24f8335580a71d29a7a773541dbd384134f88f11965ba6b3412d9ee7] (r:1 w:1) + // Storage: unknown [0x16e516ebd01eb6570a956dca7cdbd4a886a8c1509afb1d5dd3bf7102ac8e0653] (r:1 w:1) + // Storage: unknown [0x17ea99a7d60cbee014631f3438603e36ef7d7bf1bdaea7740f33079ccd219240] (r:1 w:1) + // Storage: unknown [0x36325a2003628d7ae9c30d6264688ba0ddf93c2dadc10623218a697ba807784e] (r:1 w:1) + // Storage: unknown [0x3f2edae08b19a7878d65c7245b7608ba1b6597e6d448652a89667ecaa2c10658] (r:1 w:1) + // Storage: unknown [0x4a325faac35d245e0eb3f57ab651ba6641e2617505390a4388ef08e2dbebb38f] (r:1 w:1) + // Storage: unknown [0x5e5b6c2bca3c4617a35b60ac68dd56733e2cacd9528658e086317d1e4ae33c10] (r:1 w:1) + // Storage: unknown [0x78dcf8ae0c638ce501342ee0e3844e77011fde109607e17d68e912c28b55afed] (r:1 w:1) + // Storage: unknown [0x821525922b4f0ceb302c003259c7f5bf65fffa46d17dfb4eb996e8b0647daec4] (r:1 w:1) + // Storage: unknown [0xf7417a27daa0204a3aa339f2c077a3eb5f90752122333c123c4e4ee31d8fb68b] (r:1 w:1) + // Storage: unknown [0x078779e40d3c775ac8c135ec9e505babb035597b3bb09fa7f789891997f0d650] (r:1 w:1) + // Storage: unknown [0x30fe9bfb3bd1e640e99769310b3c7cba2b47e8e8b783eb3d5893d6d1f59f8042] (r:1 w:1) + // Storage: unknown [0x337025af84c7381996544f1ac8cee4709c0ae9500a276f7031902d1096e7582f] (r:1 w:1) + // Storage: unknown [0x674985c60108f89ff55cab7c53a76fd7a9a334e8fb709477b2d9d18ee770590d] (r:1 w:1) + // Storage: unknown [0xc19e5eee149c75097d549f969006d7f8c7e797c836a15ca423a18a4a4432e138] (r:1 w:1) + // Storage: unknown [0xc9f9cd749702c3f010221d225bcf304e54e7f0e8573962d978edfaec4105387d] (r:1 w:1) + // Storage: unknown [0xd75d0226e5b4ac7a2728e0986dd018a8a6c88072fb927a56f9140a11831ea9c8] (r:1 w:1) + // Storage: unknown [0xf6a39d38e14007401941e32ecde9503b4d58efe10b3f676dce992266aad1abdf] (r:1 w:1) + // Storage: unknown [0xfadcf35d360cb1c5c2fb1509d65e6b1ad79083fdfe90b3e64fc7956f5eaee5dd] (r:1 w:1) + // Storage: unknown [0x129730fa94511f735b9910e2d640dc2ab0fddb29ac3442924dd2e27d74a55f1a] (r:1 w:1) + // Storage: unknown [0x1d1a6641ce7e5e6dea72bcd68828416a44cb06e3207d349b43c7300262ffbb81] (r:1 w:1) + // Storage: unknown [0x26e4d08be6a3b5bd814cd0aff1bba2e3b3f3f8a61e5dedd352c641795642d5de] (r:1 w:1) + // Storage: unknown [0x45fbad84e42f40e96452f652bdd233f71f67f6a1415b00551a21019033ba30f7] (r:1 w:1) + // Storage: unknown [0x4d52d448a046ee9690cef9539b6b7dc9a60b4e4b05c52f21c31c307ac1aef94a] (r:1 w:1) + // Storage: unknown [0x50f7e43916898de9a9387e19b0984a4be39e44b6fbb5212564c7299e92203fd2] (r:1 w:1) + // Storage: unknown [0x7009ee69684472410f9d454e8c4503e89cd3807e4f41ebcb142539db34dfc137] (r:1 w:1) + // Storage: unknown [0xd35a663830dbaeb43ac6bbbdd4cc221430a35aec509557262d4c5032789f78c5] (r:1 w:1) + // Storage: unknown [0xe1164fcf99526792f77cd4a96bba1367a01dc7847634f156cfd905d9a74c2e4e] (r:1 w:1) + // Storage: unknown [0x3f39a48558209f0501e7599c5ff9c872e6bf14a137ee40facefef94db4a038a5] (r:1 w:1) + // Storage: unknown [0x4b594ca9743d048965171e9cb071d25afbb428b6499893000a3c02143df1e98f] (r:1 w:1) + // Storage: unknown [0x6b2dc18de1c43eddbd70da532389561c311aa44c79b1df11d3ab579ca874af09] (r:1 w:1) + // Storage: unknown [0x764780a58bf2c1ddc3036bc739d7f11d6cb670c3e0409da6219d8dcc341e81ba] (r:1 w:1) + // Storage: unknown [0x92056e54539b0632e17ec7418c3e57c8ca3589ea2703bed64f879eecd4afab07] (r:1 w:1) + // Storage: unknown [0x959d72bdffb0754a9d28b1a31900a21da9519063a1d13c6b8e85328594c469d8] (r:1 w:1) + // Storage: unknown [0x97bab3ac046ded8556c371745f46b78d54df3f40d1c8435a1e534bbd3cc40bc1] (r:1 w:1) + // Storage: unknown [0xb36b2eecaf2da82f8b7fb4ca1f9dea513b57a56d30111386fd6d7e17d13c63ed] (r:1 w:1) + // Storage: unknown [0xe5ee08335dc8a0c22d49d7d07bcb6fa2a8aaf854a55a31831f7d97f4eef4d64e] (r:1 w:1) + // Storage: unknown [0x03c62116305bd05ac7512c6b685b88e8e33392886d0f40ddb332bfa33b7c2139] (r:1 w:1) + // Storage: unknown [0x162d04de4b5bf08c3f6cf14beb6c63bbbbded34d6d42e83072b5c3bde079f3a6] (r:1 w:1) + // Storage: unknown [0x2169cb6fc72c7d9940e7b09dd3e22cba0f3bc950b7ddc419e978052ac9b2a2bc] (r:1 w:1) + // Storage: unknown [0x24f0ed4b5bb87c45fcc018f89c8ff92fe012e9cc44433b1f63e709f9c1d6380b] (r:1 w:1) + // Storage: unknown [0x6d99f9efc9348c9fd2a7823e65dd7119afdbb1e8edbeb7ba5a985b13fb191745] (r:1 w:1) + // Storage: unknown [0x7999d569f1d75161e56c3b981d43dfbba27850949a7f3efcfb24d1e5df6f9c48] (r:1 w:1) + // Storage: unknown [0x81bff11208bacd1cc864311f5ab66579569dee60ed6970abfab7c629115d9b27] (r:1 w:1) + // Storage: unknown [0xc30095a93bd4d72ee547a0c4150a283d4ef43c7cc6b58c7636e0d01c6bbcf38c] (r:1 w:1) + // Storage: unknown [0xd098e22c1b866138b1f1183864ef282ebe5c68a9230aeea6651017e0b2ca7341] (r:1 w:1) + // Storage: unknown [0x39ffc5b547462d8775e1aff1de9bb2533140a0725e259ed2b0c4f589bb390e37] (r:1 w:1) + // Storage: unknown [0x3a20973d20cf9ad844d687e106a44030ecbf990dc74752c1e64079be511a4e06] (r:1 w:1) + // Storage: unknown [0x491b2aaafdf4d8c47364ef6b2ef92aaa6d6fd10eedb2f374c8d42f2410b0bfe5] (r:1 w:1) + // Storage: unknown [0x9aa6a1118d01d2733b707f5a2cc795547c33acff451c97d194ed627e3af70583] (r:1 w:1) + // Storage: unknown [0xba27bd0b26d49467574a0399c7867a70e1f99f2348dd30abd7b42eefa43dc2e5] (r:1 w:1) + // Storage: unknown [0xbe58a92b8383c2e39bd6b63cf4d92461e334037f9d2c64a42aeac1e06600bca7] (r:1 w:1) + // Storage: unknown [0xbed02ed125a0400cc9144307f2ad28c94461c694d4a9a89e4591cdfd4a7ca48c] (r:1 w:1) + // Storage: unknown [0xd4f091d4c1b7088764b59a48fa30bb063e83f0fce3e0031eb1094a84bdeaddda] (r:1 w:1) + // Storage: unknown [0xd6497bb219680b798aef6cfa92c698524c58732bef89939e8ec2c1a5068ff0f1] (r:1 w:1) + // Storage: unknown [0x38580239895995d2f930f08c6465fd3d02238f6214f82ed488d7c83a5698c145] (r:1 w:1) + // Storage: unknown [0x611385ecf73feedaf7bc17ab736470d9c8a8ce9c4e93e19a39d287a4c54293ed] (r:1 w:1) + // Storage: unknown [0x625b852590843c0b3b38d2cfddf64b8869c926a9f1a217b7df9cc290a04d3c17] (r:1 w:1) + // Storage: unknown [0x69ef3849249445b5033754475a36de695004f25d3a04a1873dc3449b4908aba0] (r:1 w:1) + // Storage: unknown [0x85bd68db5fbd69beb026aaf881413c97a190f1dd0bfb38375ec7bcd52448ee4b] (r:1 w:1) + // Storage: unknown [0x8d2ec8130e5f3628d22bfcae29d02f1635977d43b3e1a9e86f0b78c650c97ce0] (r:1 w:1) + // Storage: unknown [0x944fb8d1b6708dbaad846c06734df5c05aff0da9a466f6fde0881343b4aecd99] (r:1 w:1) + // Storage: unknown [0xa5ff5fc6e8aceea405f11cef80161ee2f2ca657c5c5a485eb44850404623be6f] (r:1 w:1) + // Storage: unknown [0xd27753d9ff5db15ed803d558b19fe57448af6287d51d57fc60c382db6342d41f] (r:1 w:1) + // Storage: unknown [0x23b01e79ab305a48fb81408e97c010865229bff7e39975a47a4617d1b70bde12] (r:1 w:1) + // Storage: unknown [0x32bca73cc5d28831b3d6b8b8343a6fca085fc96021ee55074c40a41b7ba20b80] (r:1 w:1) + // Storage: unknown [0x36ab36b371df875d1863acc3752b38a952134a7017537a0edf569a9dd58c86e0] (r:1 w:1) + // Storage: unknown [0x4efd4581164c5edb502b7b6a8b8e8b324deda1ea6e28e9e1e624defafeb097b9] (r:1 w:1) + // Storage: unknown [0x8f1e26abe053ae68a0744df7fe0447fbd50d14ade59c924dd4d2b70d1296b723] (r:1 w:1) + // Storage: unknown [0xa9d399f02c89a57e4ab0aca86b74d5c124974e19189f4a35a405bc57277d3294] (r:1 w:1) + // Storage: unknown [0xaab2936af1631322f597eeaf3c3ed16545579a4096ea72aa6c81aa6239367dc5] (r:1 w:1) + // Storage: unknown [0xd9687ab33fdb52c1eba4ddef1151e5c883c8b8ca4a25f0fbdc458a4a07202918] (r:1 w:1) + // Storage: unknown [0xe36d5d7328b4f69fc7728f89d71d36122896443ec8d85ce1c6945ac178f1c410] (r:1 w:1) + // Storage: unknown [0x0ce1c95f681adbe0583541264d7ff63606d71fc7f9a5056f9ce2ae5dbc92c8ef] (r:1 w:1) + // Storage: unknown [0x366897223e45040aa102fedaf30e54ae118f23510d9c2762da994d8e9eb37f8f] (r:1 w:1) + // Storage: unknown [0x65fbf6ee57a08d8f5407677ef0796630f71a75519462181854d44f3dd0d2e9fc] (r:1 w:1) + // Storage: unknown [0x7511f042605e429879bff0e9ab4466069665ce3b175ab9d9a235d4014604b4ff] (r:1 w:1) + // Storage: unknown [0x815c85bdfd3bb9d957e5a6738955e5a94024e27cea203faa4b984b846f3f07a5] (r:1 w:1) + // Storage: unknown [0xc383631f40436e078c9af767056802826e3f47183fd8ec00a5d06cf991b5d622] (r:1 w:1) + // Storage: unknown [0xd062d3018d16f1337e6aa46159c2085f4be01f700dce001c6248823b15d3a470] (r:1 w:1) + // Storage: unknown [0xe188fef7ccf953faa2185e2e9175bf3bca48aa36f3dd62b8161a75ebb34f19a7] (r:1 w:1) + // Storage: unknown [0xe7dd8a0e93b4c990c00453edf0c631b3ae4fcd7f1189a0b3d2e5c27ef824bc99] (r:1 w:1) + // Storage: unknown [0x0ba1e4e6d98da9611922932b095d435e39bcfd6babc4b9e89485f7f378cd6b45] (r:1 w:1) + // Storage: unknown [0x2d4fce1669eb402b2ec3f325de12e8582f8d9c77de9b5270ef6956203a8314d6] (r:1 w:1) + // Storage: unknown [0x89f01db4731551d533ba2108e036875e126adb7665bc5fddd4575716a36c26a4] (r:1 w:1) + // Storage: unknown [0x97dc9a3b2cc3aa9784021dcb200f09540dfdedb79f3d159867b97a75cc892a3b] (r:1 w:1) + // Storage: unknown [0xc20b40ca76d1caee1cc717d847ae6878857e35b45d47478ed7f1450c154c503f] (r:1 w:1) + // Storage: unknown [0xd0b010e2c3a992e7680dc9120b82fe6e8c3d160b997aa89af463bbdf84a6e2d7] (r:1 w:1) + // Storage: unknown [0xd35ed52d5edd31264c21a0c30d3994d5600b3e19ebb66d6f8099661d6dcc57c0] (r:1 w:1) + // Storage: unknown [0xf5b993b187b5029b7a30de61f1bce1be780f8790b3daf85742ec63b66f79cc80] (r:1 w:1) + // Storage: unknown [0xf98428e38450dcc80131bed1b84059f80938df6d2941d17917c968e553afa753] (r:1 w:1) + fn batch_unlock(k: u32, ) -> Weight { + (0 as Weight) + // Standard Error: 53_000 + .saturating_add((107_557_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(T::DbWeight::get().reads(6 as Weight)) + .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(k as Weight))) + .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(k as Weight))) + } + // Storage: SalpLite Funds (r:1 w:0) + // Storage: SalpLite RedeemPool (r:1 w:1) + // Storage: Tokens Accounts (r:2 w:2) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:0 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn redeem() -> Weight { - (169_980_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) + (137_729_000 as Weight) + .saturating_add(T::DbWeight::get().reads(11 as Weight)) .saturating_add(T::DbWeight::get().writes(8 as Weight)) } - - fn batch_unlock(k: u32) -> Weight { - (0 as Weight) - .saturating_add((45_890_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(k as Weight))) - } } diff --git a/runtime/asgard/src/weights/bifrost_token_issuer.rs b/runtime/asgard/src/weights/bifrost_token_issuer.rs index 56156df4cc..488d2fe533 100644 --- a/runtime/asgard/src/weights/bifrost_token_issuer.rs +++ b/runtime/asgard/src/weights/bifrost_token_issuer.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `bifrost_token_issuer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-10-08, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 // Executed Command: @@ -27,7 +27,7 @@ // benchmark // --chain=asgard-local // --steps=50 -// --repeat=1 +// --repeat=20 // --pallet=bifrost_token_issuer // --extrinsic=* // --execution=wasm @@ -44,30 +44,30 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_token_issuer. +/// Weight functions for `bifrost_token_issuer`. pub struct WeightInfo(PhantomData); impl bifrost_token_issuer::WeightInfo for WeightInfo { // Storage: TokenIssuer IssueWhiteList (r:1 w:1) fn add_to_issue_whitelist() -> Weight { - (72_266_000 as Weight) + (63_250_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: TokenIssuer IssueWhiteList (r:1 w:1) fn remove_from_issue_whitelist() -> Weight { - (52_929_000 as Weight) + (58_343_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:1) fn add_to_transfer_whitelist() -> Weight { - (35_216_000 as Weight) + (63_894_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:1) fn remove_from_transfer_whitelist() -> Weight { - (27_602_000 as Weight) + (58_160_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } @@ -75,14 +75,14 @@ impl bifrost_token_issuer::WeightInfo for WeightInfo // Storage: Tokens Accounts (r:1 w:1) // Storage: Tokens TotalIssuance (r:1 w:1) fn issue() -> Weight { - (56_797_000 as Weight) + (134_694_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(2 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:0) // Storage: Tokens Accounts (r:2 w:2) fn transfer() -> Weight { - (75_672_000 as Weight) + (167_864_000 as Weight) .saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().writes(2 as Weight)) } diff --git a/runtime/asgard/src/weights/mod.rs b/runtime/asgard/src/weights/mod.rs index 3b34979260..e9e8219bd7 100644 --- a/runtime/asgard/src/weights/mod.rs +++ b/runtime/asgard/src/weights/mod.rs @@ -21,6 +21,7 @@ //! A list of the different weight modules for our runtime. pub mod bifrost_bancor; +pub mod bifrost_call_switchgear; pub mod bifrost_flexible_fee; pub mod bifrost_lightening_redeem; pub mod bifrost_minter_reward; diff --git a/runtime/bifrost/Cargo.toml b/runtime/bifrost/Cargo.toml index 67abb047a3..8f58fd90db 100644 --- a/runtime/bifrost/Cargo.toml +++ b/runtime/bifrost/Cargo.toml @@ -58,6 +58,7 @@ pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } +pallet-society = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11", default-features = false } # Cumulus dependencies cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.11", default-features = false } @@ -92,6 +93,7 @@ bifrost-liquidity-mining = { path = "../../pallets/liquidity-mining", default-fe bifrost-liquidity-mining-rpc-runtime-api = { path = "../../pallets/liquidity-mining/rpc/runtime-api", default-features = false } bifrost-token-issuer = { path = "../../pallets/token-issuer", default-features = false } bifrost-lightening-redeem= { path = "../../pallets/lightening-redeem", default-features = false } +bifrost-call-switchgear= { path = "../../pallets/call-switchgear", default-features = false } xcm-support = { path = "../../xcm-support", default-features = false } # orml @@ -132,6 +134,7 @@ std = [ "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", "pallet-treasury/std", + "pallet-society/std", "sp-api/std", "sp-arithmetic/std", "sp-block-builder/std", @@ -198,14 +201,17 @@ runtime-benchmarks = [ "pallet-treasury/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", + "pallet-society/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "bifrost-flexible-fee/runtime-benchmarks", "bifrost-salp/runtime-benchmarks", + "bifrost-salp-lite/runtime-benchmarks", "bifrost-liquidity-mining/runtime-benchmarks", "bifrost-token-issuer/runtime-benchmarks", "bifrost-lightening-redeem/runtime-benchmarks", + "bifrost-call-switchgear/runtime-benchmarks", ] try-runtime = [ diff --git a/runtime/bifrost/src/lib.rs b/runtime/bifrost/src/lib.rs index 1ab4e5bada..8155efdd93 100644 --- a/runtime/bifrost/src/lib.rs +++ b/runtime/bifrost/src/lib.rs @@ -182,35 +182,83 @@ parameter_types! { pub struct CallFilter; impl Contains for CallFilter { - fn contains(c: &Call) -> bool { - match *c { - // call banned - - // ZLK transfer - Call::Currencies(orml_currencies::Call::transfer { - dest: _, - currency_id: CurrencyId::Token(TokenSymbol::ZLK), - amount: _, - }) => false, - Call::Tokens(orml_tokens::Call::transfer { - dest: _, - currency_id: CurrencyId::Token(TokenSymbol::ZLK), - amount: _, - }) => false, - Call::Tokens(orml_tokens::Call::transfer_all { - dest: _, - currency_id: CurrencyId::Token(TokenSymbol::ZLK), - keep_alive: _, - }) => false, - Call::Tokens(orml_tokens::Call::transfer_keep_alive { - dest: _, - currency_id: CurrencyId::Token(TokenSymbol::ZLK), - amount: _, - }) => false, - - Call::PhragmenElection(_) => false, - _ => true, + fn contains(call: &Call) -> bool { + let is_core_call = + matches!(call, Call::System(_) | Call::Timestamp(_) | Call::ParachainSystem(_)); + if is_core_call { + // always allow core call + return true; + } + + let is_switched_off = + bifrost_call_switchgear::SwitchOffTransactionFilter::::contains(call); + if is_switched_off { + // no switched off call + return false; + } + + // disable transfer + let is_transfer = matches!(call, Call::Currencies(_) | Call::Tokens(_) | Call::Balances(_)); + if is_transfer { + let is_disabled = match *call { + // orml-currencies module + Call::Currencies(orml_currencies::Call::transfer { + dest: _, + currency_id, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Currencies(orml_currencies::Call::transfer_native_currency { + dest: _, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + // orml-tokens module + Call::Tokens(orml_tokens::Call::transfer { dest: _, currency_id, amount: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Tokens(orml_tokens::Call::transfer_all { + dest: _, + currency_id, + keep_alive: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + Call::Tokens(orml_tokens::Call::transfer_keep_alive { + dest: _, + currency_id, + amount: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + ¤cy_id, + ), + // Balances module + Call::Balances(pallet_balances::Call::transfer { dest: _, value: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + Call::Balances(pallet_balances::Call::transfer_keep_alive { + dest: _, + value: _, + }) => bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + Call::Balances(pallet_balances::Call::transfer_all { dest: _, keep_alive: _ }) => + bifrost_call_switchgear::DisableTransfersFilter::::contains( + &NativeCurrencyId::get(), + ), + _ => false, + }; + + if is_disabled { + // no switched off call + return false; + } } + + true } } @@ -909,6 +957,7 @@ orml_traits::parameter_type_with_key! { &CurrencyId::Stable(TokenSymbol::KUSD) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::KSM) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::KAR) => 10 * MILLICENTS, + &CurrencyId::Token(TokenSymbol::DOT) => 10 * MILLICENTS, &CurrencyId::Token(TokenSymbol::ZLK) => 1_000_000_000_000, // ZLK has a decimals of 10e18 &CurrencyId::VSToken(TokenSymbol::KSM) => 10 * MILLICENTS, &CurrencyId::VSToken(TokenSymbol::DOT) => 10 * MILLICENTS, @@ -1182,6 +1231,13 @@ impl bifrost_lightening_redeem::Config for Runtime { type WeightInfo = weights::bifrost_lightening_redeem::WeightInfo; } +impl bifrost_call_switchgear::Config for Runtime { + type Event = Event; + type UpdateOrigin = + EnsureOneOf; + type WeightInfo = weights::bifrost_call_switchgear::WeightInfo; +} + // Bifrost modules end // zenlink runtime start @@ -1356,6 +1412,7 @@ construct_runtime! { TokenIssuer: bifrost_token_issuer::{Pallet, Call, Storage, Event} = 109, LighteningRedeem: bifrost_lightening_redeem::{Pallet, Call, Storage, Event} = 110, SalpLite: bifrost_salp_lite::{Pallet, Call, Storage, Event} = 111, + CallSwitchgear: bifrost_call_switchgear::{Pallet, Storage, Call, Event} = 112, } } @@ -1605,9 +1662,12 @@ impl_runtime_apis! { list_benchmark!(list, extra, bifrost_flexible_fee, FlexibleFee); list_benchmark!(list, extra, bifrost_salp, Salp); + list_benchmark!(list, extra, bifrost_salp_lite, SalpLite); + // list_benchmark!(list, extra, bifrost_salp_lite, SalpLite); list_benchmark!(list, extra, bifrost_liquidity_mining, LiquidityMining); list_benchmark!(list, extra, bifrost_token_issuer, TokenIssuer); list_benchmark!(list, extra, bifrost_lightening_redeem, LighteningRedeem); + list_benchmark!(list, extra, bifrost_call_switchgear, CallSwitchgear); let storage_info = AllPalletsWithSystem::storage_info(); @@ -1628,7 +1688,7 @@ impl_runtime_apis! { let mut batches = Vec::::new(); let params = (&config, &whitelist); - // Adding the pallet you will perform thee benchmarking + // Adding the pallet you will perform the benchmarking add_benchmark!(params, batches, frame_system, SystemBench::); add_benchmark!(params, batches, pallet_balances, Balances); add_benchmark!(params, batches, pallet_bounties, Bounties); @@ -1638,11 +1698,14 @@ impl_runtime_apis! { add_benchmark!(params, batches, pallet_treasury, Treasury); add_benchmark!(params, batches, pallet_utility, Utility); add_benchmark!(params, batches, pallet_vesting, Vesting); + add_benchmark!(params, batches, bifrost_flexible_fee, FlexibleFee); add_benchmark!(params, batches, bifrost_salp, Salp); + add_benchmark!(params, batches, bifrost_salp_lite, SalpLite); add_benchmark!(params, batches, bifrost_liquidity_mining, LiquidityMining); add_benchmark!(params, batches, bifrost_token_issuer, TokenIssuer); add_benchmark!(params, batches, bifrost_lightening_redeem, LighteningRedeem); + add_benchmark!(params, batches, bifrost_call_switchgear, CallSwitchgear); if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } Ok(batches) diff --git a/runtime/bifrost/src/weights/bifrost_call_switchgear.rs b/runtime/bifrost/src/weights/bifrost_call_switchgear.rs new file mode 100644 index 0000000000..5e7ae2f84e --- /dev/null +++ b/runtime/bifrost/src/weights/bifrost_call_switchgear.rs @@ -0,0 +1,74 @@ +// This file is part of Bifrost. + +// Copyright (C) 2019-2021 Liebi Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Autogenerated weights for `bifrost_call_switchgear` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-11-01, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 + +// Executed Command: +// target/release/bifrost +// benchmark +// --chain=asgard-local +// --steps=50 +// --repeat=1 +// --pallet=bifrost_call_switchgear +// --extrinsic=* +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 +// --header=./HEADER-GPL3 +// --output=./runtime/asgard/src/weights/bifrost_call_switchgear.rs + + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `bifrost_call_switchgear`. +pub struct WeightInfo(PhantomData); +impl bifrost_call_switchgear::WeightInfo for WeightInfo { + // Storage: CallSwitchgear SwitchedOffTransactions (r:1 w:1) + fn switchoff_transaction() -> Weight { + (26_520_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear SwitchedOffTransactions (r:1 w:1) + fn switchon_transaction() -> Weight { + (25_178_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear DisabledTransfers (r:1 w:1) + fn disable_transfers() -> Weight { + (25_318_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } + // Storage: CallSwitchgear DisabledTransfers (r:1 w:1) + fn enable_transfers() -> Weight { + (23_484_000 as Weight) + .saturating_add(T::DbWeight::get().reads(1 as Weight)) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) + } +} diff --git a/runtime/bifrost/src/weights/bifrost_flexible_fee.rs b/runtime/bifrost/src/weights/bifrost_flexible_fee.rs index af45ed31de..2533124134 100644 --- a/runtime/bifrost/src/weights/bifrost_flexible_fee.rs +++ b/runtime/bifrost/src/weights/bifrost_flexible_fee.rs @@ -16,16 +16,16 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_flexible_fee +//! Autogenerated weights for `bifrost_flexible_fee` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-23, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-genesis"), DB CACHE: 128 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: // target/release/bifrost // benchmark -// --chain=bifrost-genesis +// --chain=bifrost-local // --steps=50 // --repeat=20 // --pallet=bifrost_flexible_fee @@ -34,18 +34,22 @@ // --wasm-execution=compiled // --heap-pages=4096 // --header=./HEADER-GPL3 -// --output=./runtime/bifrost/src/weights/ +// --output=./runtime/bifrost/src/weights/bifrost_flexible_fee.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_flexible_fee. +/// Weight functions for `bifrost_flexible_fee`. pub struct WeightInfo(PhantomData); impl bifrost_flexible_fee::WeightInfo for WeightInfo { + // Storage: FlexibleFee UserFeeChargeOrderList (r:0 w:1) fn set_user_fee_charge_order() -> Weight { - (8_034_000 as Weight).saturating_add(T::DbWeight::get().writes(1 as Weight)) + (12_007_000 as Weight) + .saturating_add(T::DbWeight::get().writes(1 as Weight)) } } diff --git a/runtime/bifrost/src/weights/bifrost_lightening_redeem.rs b/runtime/bifrost/src/weights/bifrost_lightening_redeem.rs index 1aeeaa3489..4f6da45348 100644 --- a/runtime/bifrost/src/weights/bifrost_lightening_redeem.rs +++ b/runtime/bifrost/src/weights/bifrost_lightening_redeem.rs @@ -19,22 +19,22 @@ //! Autogenerated weights for `bifrost_lightening_redeem` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-10-09, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: // target/release/bifrost // benchmark -// --chain=asgard-local +// --chain=bifrost-local // --steps=50 -// --repeat=1 +// --repeat=20 // --pallet=bifrost_lightening_redeem // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --header=./HEADER-GPL3 -// --output=./runtime/asgard/src/weights/bifrost_lightening_redeem.rs +// --output=./runtime/bifrost/src/weights/bifrost_lightening_redeem.rs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -44,46 +44,66 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_lightening_redeem. +/// Weight functions for `bifrost_lightening_redeem`. pub struct WeightInfo(PhantomData); impl bifrost_lightening_redeem::WeightInfo for WeightInfo { // Storage: Tokens Accounts (r:2 w:2) // Storage: System Account (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn add_ksm_to_pool() -> Weight { - (89_467_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + (150_126_000 as Weight) + .saturating_add(T::DbWeight::get().reads(7 as Weight)) + .saturating_add(T::DbWeight::get().writes(5 as Weight)) } // Storage: LighteningRedeem PoolAmount (r:1 w:1) // Storage: LighteningRedeem ExchangePriceDiscount (r:1 w:0) // Storage: Tokens Accounts (r:6 w:6) // Storage: System Account (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn exchange_for_ksm() -> Weight { - (189_565_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + (300_822_000 as Weight) + .saturating_add(T::DbWeight::get().reads(13 as Weight)) + .saturating_add(T::DbWeight::get().writes(10 as Weight)) } // Storage: LighteningRedeem ExchangePriceDiscount (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn edit_exchange_price() -> Weight { - (25_427_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (53_236_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: LighteningRedeem TokenReleasePerDay (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn edit_release_per_day() -> Weight { - (25_718_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (53_527_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } + // Storage: System Number (r:1 w:0) // Storage: LighteningRedeem StartEndReleaseBlock (r:1 w:1) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn edit_release_start_and_end_block() -> Weight { - (25_608_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (54_056_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: LighteningRedeem StartEndReleaseBlock (r:1 w:0) fn on_initialize() -> Weight { - (5_009_000 as Weight) + (11_999_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) } } diff --git a/runtime/bifrost/src/weights/bifrost_liquidity_mining.rs b/runtime/bifrost/src/weights/bifrost_liquidity_mining.rs index 8f9545d678..80b653114f 100644 --- a/runtime/bifrost/src/weights/bifrost_liquidity_mining.rs +++ b/runtime/bifrost/src/weights/bifrost_liquidity_mining.rs @@ -19,7 +19,7 @@ //! Autogenerated weights for `bifrost_liquidity_mining` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-09-26, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: @@ -28,7 +28,7 @@ // --chain=bifrost-local // --steps=50 // --repeat=20 -// --pallet=bifrost-liquidity-mining +// --pallet=bifrost_liquidity_mining // --extrinsic=* // --execution=wasm // --wasm-execution=compiled @@ -44,7 +44,7 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_liquidity_mining. +/// Weight functions for `bifrost_liquidity_mining`. pub struct WeightInfo(PhantomData); impl bifrost_liquidity_mining::WeightInfo for WeightInfo { // Storage: LiquidityMining ChargedPoolIds (r:1 w:1) @@ -56,7 +56,7 @@ impl bifrost_liquidity_mining::WeightInfo for WeightInf // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn charge() -> Weight { - (316_998_000 as Weight) + (269_857_000 as Weight) .saturating_add(T::DbWeight::get().reads(9 as Weight)) .saturating_add(T::DbWeight::get().writes(7 as Weight)) } @@ -69,59 +69,59 @@ impl bifrost_liquidity_mining::WeightInfo for WeightInf // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn deposit() -> Weight { - (331_734_000 as Weight) + (290_036_000 as Weight) .saturating_add(T::DbWeight::get().reads(11 as Weight)) .saturating_add(T::DbWeight::get().writes(9 as Weight)) } // Storage: LiquidityMining TotalPoolInfos (r:1 w:1) // Storage: System Number (r:1 w:0) // Storage: LiquidityMining TotalDepositData (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Tokens Accounts (r:6 w:6) + // Storage: Tokens Accounts (r:7 w:6) + // Storage: System Account (r:2 w:1) // Storage: System ExecutionPhase (r:1 w:0) // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn redeem() -> Weight { - (509_879_000 as Weight) - .saturating_add(T::DbWeight::get().reads(13 as Weight)) + (514_172_000 as Weight) + .saturating_add(T::DbWeight::get().reads(15 as Weight)) .saturating_add(T::DbWeight::get().writes(11 as Weight)) } // Storage: LiquidityMining TotalPoolInfos (r:1 w:1) // Storage: System Number (r:1 w:0) // Storage: LiquidityMining TotalDepositData (r:1 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Tokens Accounts (r:6 w:6) + // Storage: Tokens Accounts (r:7 w:6) + // Storage: System Account (r:2 w:1) // Storage: System ExecutionPhase (r:1 w:0) // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn redeem_all() -> Weight { - (508_156_000 as Weight) - .saturating_add(T::DbWeight::get().reads(13 as Weight)) + (467_531_000 as Weight) + .saturating_add(T::DbWeight::get().reads(15 as Weight)) .saturating_add(T::DbWeight::get().writes(11 as Weight)) } // Storage: LiquidityMining TotalPoolInfos (r:1 w:1) // Storage: System Number (r:1 w:0) // Storage: LiquidityMining TotalDepositData (r:2 w:1) - // Storage: System Account (r:1 w:1) - // Storage: Tokens Accounts (r:6 w:6) + // Storage: Tokens Accounts (r:7 w:6) + // Storage: System Account (r:2 w:1) // Storage: System ExecutionPhase (r:1 w:0) // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn volunteer_to_redeem() -> Weight { - (553_725_000 as Weight) - .saturating_add(T::DbWeight::get().reads(14 as Weight)) + (509_736_000 as Weight) + .saturating_add(T::DbWeight::get().reads(16 as Weight)) .saturating_add(T::DbWeight::get().writes(11 as Weight)) } // Storage: LiquidityMining TotalPoolInfos (r:1 w:1) // Storage: System Number (r:1 w:0) // Storage: LiquidityMining TotalDepositData (r:1 w:1) - // Storage: System Account (r:1 w:1) // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Account (r:1 w:1) // Storage: System ExecutionPhase (r:1 w:0) // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) fn claim() -> Weight { - (298_725_000 as Weight) + (260_399_000 as Weight) .saturating_add(T::DbWeight::get().reads(9 as Weight)) .saturating_add(T::DbWeight::get().writes(7 as Weight)) } diff --git a/runtime/bifrost/src/weights/bifrost_salp.rs b/runtime/bifrost/src/weights/bifrost_salp.rs index 9d0b98852a..8079937b61 100644 --- a/runtime/bifrost/src/weights/bifrost_salp.rs +++ b/runtime/bifrost/src/weights/bifrost_salp.rs @@ -19,16 +19,16 @@ //! Autogenerated weights for `bifrost_salp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-09-26, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: -// ./target/release/bifrost +// target/release/bifrost // benchmark // --chain=bifrost-local // --steps=50 // --repeat=20 -// --pallet=bifrost-salp +// --pallet=bifrost_salp // --extrinsic=* // --execution=wasm // --wasm-execution=compiled @@ -44,7 +44,7 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_salp. +/// Weight functions for `bifrost_salp`. pub struct WeightInfo(PhantomData); impl bifrost_salp::WeightInfo for WeightInfo { // Storage: Salp Funds (r:1 w:0) @@ -54,12 +54,13 @@ impl bifrost_salp::WeightInfo for WeightInfo { // Storage: System EventCount (r:1 w:1) // Storage: System Events (r:1 w:1) // Storage: Salp CurrentNonce (r:1 w:1) + // Storage: ParachainInfo ParachainId (r:1 w:0) // Storage: ParachainSystem HostConfiguration (r:1 w:0) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn contribute() -> Weight { - (335_598_000 as Weight) - .saturating_add(T::DbWeight::get().reads(10 as Weight)) + (446_114_000 as Weight) + .saturating_add(T::DbWeight::get().reads(11 as Weight)) .saturating_add(T::DbWeight::get().writes(6 as Weight)) } // Storage: Salp Funds (r:1 w:0) @@ -72,7 +73,7 @@ impl bifrost_salp::WeightInfo for WeightInfo { // Storage: System Events (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn refund() -> Weight { - (328_431_000 as Weight) + (297_349_000 as Weight) .saturating_add(T::DbWeight::get().reads(13 as Weight)) .saturating_add(T::DbWeight::get().writes(10 as Weight)) } @@ -84,11 +85,524 @@ impl bifrost_salp::WeightInfo for WeightInfo { // Storage: System Events (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn unlock() -> Weight { - (252_844_000 as Weight) + (221_876_000 as Weight) .saturating_add(T::DbWeight::get().reads(8 as Weight)) .saturating_add(T::DbWeight::get().writes(5 as Weight)) } // Storage: Salp Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Account (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0x] (r:1 w:0) + // Storage: unknown [0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0] (r:1 w:1) + // Storage: unknown [0x1793e0dee28dc36e243edc2691a5a966f4c15d0d4d432426816fcdad0229ee46] (r:1 w:1) + // Storage: unknown [0x262b3fa18a914183e88378d5601925c49b7bcbf07101f6a73b1e7c38b6c23d23] (r:1 w:1) + // Storage: unknown [0x273401c6dc3eb9f6a74a2f7181b1eef87e486620f91dd0fb5ed0ff69747447ae] (r:1 w:1) + // Storage: unknown [0xb2233113701bdbed1e43339a304e77ade52c7b0204a5366dba4c12c9c1a90811] (r:1 w:1) + // Storage: unknown [0xbcf11cdfc92c4bf5c40d1adc80e83b0c91148a8079347419a0890363e3e0186c] (r:1 w:1) + // Storage: unknown [0xbfb77688785d1f34aaea15726de0f743afd4cd1eb8a9b2f03ec8f6cfcd2c1a8a] (r:1 w:1) + // Storage: unknown [0xc040e64ae303602c545b547ce74b24952443cfb1ea9c77f6fd49c41efcf68102] (r:1 w:1) + // Storage: unknown [0xecc728efb63d13c538d0122cd7dba2964c47c6750030158f57908845b086ca70] (r:1 w:1) + // Storage: unknown [0xfaeaef9ced7ec5a1f1d74d225cf03d269643a95c94a2892c8184227481765683] (r:1 w:1) + // Storage: unknown [0x1e14f015894dbfd07ff4c7907acc885a26b4773a7f5a907e73d1e916b7059d2b] (r:1 w:1) + // Storage: unknown [0x31363b6a3c3285cda230e1c805b99e473215cf1f2446ae76c616ab164260fab3] (r:1 w:1) + // Storage: unknown [0x57a81f30e61dd3e10fc6529335e4462cfa2bac1eda902566c924437cbe25360b] (r:1 w:1) + // Storage: unknown [0x5852d9d9072edcf8c92059e5fd0db36dd4462052ab7cec264b2c7d199d50ac3f] (r:1 w:1) + // Storage: unknown [0x63ae89fe4d673aee0b2ce473376da36c60dbd3edc5a7608cb4cf311cd5e0d635] (r:1 w:1) + // Storage: unknown [0x70c0824966fc4dfe90a9740b284e131eebfa28cac4c010724376afaa88fcddde] (r:1 w:1) + // Storage: unknown [0x7d1a7c7da2798aac8bd51675f08ddfb11a44ada2c5d5a621493d6ba35b9c3caf] (r:1 w:1) + // Storage: unknown [0xaa3b015c528422deb5b272951c9b21f64439baa57d273243f378ce9d291a30c9] (r:1 w:1) + // Storage: unknown [0xffa01c2b1e8481410b1207bac0e1f357e41581e001324873c809b383c16dd8b7] (r:1 w:1) + // Storage: unknown [0x19b003210a923977355564d664c01287ecfe83be2d465f5e99d3c03105fc2ab0] (r:1 w:1) + // Storage: unknown [0x2c1108b7cbe36e4a037eb29c204116b2f5fdb9da2635802c4de3404053c51d77] (r:1 w:1) + // Storage: unknown [0x4b6f8a87cdd23768e3dfce3ee7a2614b998a767e39035e94344f0a6089c0c4c5] (r:1 w:1) + // Storage: unknown [0x5ab0d964adf1f6ac3436b3b9e171a345ce07f01b0b35fac58e780d0dcdbf9e4c] (r:1 w:1) + // Storage: unknown [0x670d01023ac8c64b2c3da33e1d19c36c4eb1981b46571225c472841fef9e702c] (r:1 w:1) + // Storage: unknown [0x9a794f2ba173e4d3987f32b26f23634bc6a1ea6ede13756210243f026d395864] (r:1 w:1) + // Storage: unknown [0xc2c3cf3e838ea0936aac2272be3da5b1258dc53931e63045fda2a4e61cc9897b] (r:1 w:1) + // Storage: unknown [0xcbb519bbda43dcb93203c892789842e2cbf8eabbde279832fd91bb8e4fba31de] (r:1 w:1) + // Storage: unknown [0xdd8302d27abf6dc2270eca7a21b5b7af02495e7a2c33dbfbdedd421ecd7180af] (r:1 w:1) + // Storage: unknown [0x035c36e54d78f5a657005187bcadc31d6dd01bc9017ec5e1a479a673964346e6] (r:1 w:1) + // Storage: unknown [0x0f9ffb8ec2a1a1dd8bca07156eeebf830debcb4c345cd72d7377c31f98eab91a] (r:1 w:1) + // Storage: unknown [0x30ed371d94305cd05ebc3278d5faafa023b26db1fbecdcef3d2b9fab82ca8c27] (r:1 w:1) + // Storage: unknown [0x38ef26608ce2d8c63881c1957367989c990a9333cde334da98e5f5661668fea8] (r:1 w:1) + // Storage: unknown [0x397eb4b5c8440d7a1ce08239fb58b1c22700484295d3521198f162562ae772ed] (r:1 w:1) + // Storage: unknown [0x47a4353adb1bbf8f6f65faf93d0a56282d0cbe38db077ce85e35e3f466097a73] (r:1 w:1) + // Storage: unknown [0x4bf4fcbfd0cfa9763b2c40ff5957889c326f76e0ac3e364b6da7e28f3cb89e50] (r:1 w:1) + // Storage: unknown [0xd60aed2c8769890ed9d6fb94170b46fac79639c65d0dc0289340a62e86c4d831] (r:1 w:1) + // Storage: unknown [0xe92b49436c78a30d1aae41c733ac088a70a8ce9a306725618f52bdd4c4c07501] (r:1 w:1) + // Storage: unknown [0x2a8e3ae3f7519353a0e8a85c5c6d897cff5032bd945dac42e09ce6e310c143f1] (r:1 w:1) + // Storage: unknown [0x30397d885abd14d5eabc75a21e336852ac3dce3879a83b90035ceb2d607ebee9] (r:1 w:1) + // Storage: unknown [0x37c9fbaffb8eb93dc54894e8378d4e185a69e1157561a98d059657eedf5b2670] (r:1 w:1) + // Storage: unknown [0x3b24032554271fa66764953ae519d33a87bfed97231b99cba4466b3dbf99908c] (r:1 w:1) + // Storage: unknown [0xb9698194cdd5645046662d66f4a3279103508d78c9978ec54b154d42534763f1] (r:1 w:1) + // Storage: unknown [0xbba68e0920c2c5bd3487b448919c27a6867c5ee7d6699b713f56a90a651614ce] (r:1 w:1) + // Storage: unknown [0xddf83f4806c915fd142e344deb063eb5ed5721772a4feb56cfa469046d6edba1] (r:1 w:1) + // Storage: unknown [0xef325b1c8537772ada5b06519f8929f3ff049d0c09579a739a18e50370700c59] (r:1 w:1) + // Storage: unknown [0xfe2b10355a2516b8572175f4e3ef8ba8687cca3fee426b3b80bb1b8db4e08564] (r:1 w:1) + // Storage: unknown [0x2a8ec737d3db7565d0f4bbdc6f9c253d1e534f9b468d0402110d12658d50116e] (r:1 w:1) + // Storage: unknown [0x2ae6a2134fdcd8ca414b654e56361e6ac92a4674ce055ceab01fd3d9e5a204e0] (r:1 w:1) + // Storage: unknown [0x3016a40a91959adc6086e79a17cf8ee2f9e038f8d5250c724aa627c2fed9f47f] (r:1 w:1) + // Storage: unknown [0x323d73caf3f762d77ae5193f9715f8703d6bd2f3f19626fae62e7bcfab07b767] (r:1 w:1) + // Storage: unknown [0x816bb2f6c9cceafebee78babc8a3c8095aec357db1b8b6e5a4ac832492c469bc] (r:1 w:1) + // Storage: unknown [0xa50750b066f781e63bccebb57775f9d3ba7b44624bae77b9997d2a4bb80fa8d4] (r:1 w:1) + // Storage: unknown [0xa6691dea20613080f29237be39585440a5c37bd78cb3075e9f02c903b03f1e29] (r:1 w:1) + // Storage: unknown [0xc2f159a33d7f609b890d30c9af2422967c2423865bfc1d31b26046cba4c2965a] (r:1 w:1) + // Storage: unknown [0xeae0a2566b6ac214cb5298a9a8e160b8c5d467ec2543b4a6c57c31a166e082a0] (r:1 w:1) + // Storage: unknown [0x0255fb7cbf688b17898bda454f34de10cd5864bf0c9938ca898013d8c04bdb06] (r:1 w:1) + // Storage: unknown [0x0caf43f6381fb628135727230d6c750ed6004e34a8c1bb3b4f208b4819cfcf01] (r:1 w:1) + // Storage: unknown [0x23711525360aeeae0643bb1db76a386cd0cad86ecc96d99bc2d55691b0bd6d09] (r:1 w:1) + // Storage: unknown [0x314275cc77a136e89b93f70dba690912ed9927c4be09fcf7d3ad6aafb38b4b5a] (r:1 w:1) + // Storage: unknown [0x5caf00cbf2d1e5f34267b787f8515e50ca011dd67273439e2f8be3e16d1307eb] (r:1 w:1) + // Storage: unknown [0x9599e8bb6188bfc0f66c0769a7b882d686ac4de6dd64244ad3444622ee2dfa12] (r:1 w:1) + // Storage: unknown [0xc37c05727fbf73ebc724a77289e362dec9b0c3f15a3766c0ce18ccbc35abf0fb] (r:1 w:1) + // Storage: unknown [0xc7a39567e780e01f5132b82054f6b88c3fc3976dc07abf06b36f1cb3818bc45d] (r:1 w:1) + // Storage: unknown [0xcc9b77338ca78833152ff0221eb0d68eb8630515a262d1b76bbfa55c2bc0cc5b] (r:1 w:1) + // Storage: unknown [0x388cf112e930ffac757fd416bbfa6976ea3ccb42a573b182faa41a5d4e2c764a] (r:1 w:1) + // Storage: unknown [0x496ebfd4773f19bb23b23b5d22e17d1a95c575eac659ac5c01943f01ab7cd1ff] (r:1 w:1) + // Storage: unknown [0x58bc2d38e66911c6539e2e1e265b69ee36a7d5f2d9dd82b0688d45bbd64f7e6f] (r:1 w:1) + // Storage: unknown [0x847ff6f6158483969d76e0b4114493657e4d9a92008c04c4ead16fd1405fb9c1] (r:1 w:1) + // Storage: unknown [0x9388f896df5ed34ca45308f5e5c81cea93e24bd85d42dbef1e8a704c81d38b9e] (r:1 w:1) + // Storage: unknown [0xb79d749059601a3d8c72ff43e58db5f8d24bfd35228be610746544b95669a347] (r:1 w:1) + // Storage: unknown [0xc7a2a8698a7345317f4dc279d7840841c25358906c915e7ca5b8b4c09ccda808] (r:1 w:1) + // Storage: unknown [0xe5b92f2f3cc3b0ad16d1157b61df06abf15de6f133d6dee62d10f7ac45f85cc1] (r:1 w:1) + // Storage: unknown [0xfcbd15685a27928b84290bd6a4e893ad56ba73df7149a82091a8b37b502cbeb0] (r:1 w:1) + // Storage: unknown [0x0392a02d23fecb158ac27d3c28a51f0686024a9841e71710c66bcec6e29f8e0f] (r:1 w:1) + // Storage: unknown [0x2a00f03d467cd9683a9be7c4a8613015086dd05f6a7bf9a2d3bd4ef478732936] (r:1 w:1) + // Storage: unknown [0x3231b5f56292cc339ac941159eba4be941fdb8efa47e43cb28e1bb5c4266817d] (r:1 w:1) + // Storage: unknown [0x42d69131243a9e11dbe162524864c388a81a2ae550d66076b7864623c0f645e0] (r:1 w:1) + // Storage: unknown [0x586e8e7e98386d6dd27217632dba2d8314a0eca72a42409ce07a31f0638cb92d] (r:1 w:1) + // Storage: unknown [0x5b8abb2b3dceca152086f6d22af03bd1e425f7c04ad31db49e862770f394d25b] (r:1 w:1) + // Storage: unknown [0x8af99dd7260367cbf7bcbc222a092d37a2eaaeb75dc9357042d393f8d708899a] (r:1 w:1) + // Storage: unknown [0x9c16707397d0b463ed30c3826c42efe3eac8cb571c4da3b41809ddc81b0ee787] (r:1 w:1) + // Storage: unknown [0xfd9a4d435d8028aed79ecac41ba335234585df62d5d2cba54569df84da6b4b8b] (r:1 w:1) + // Storage: unknown [0x1d7d044749500157cdc9a315eaf3843cd96eaa0b8c081fd14ec8dd6e6b98ba55] (r:1 w:1) + // Storage: unknown [0x240a4e8b59a1f7d43a38a3846eaa3d638461dd509da91ec7fdd560f3afbd3c87] (r:1 w:1) + // Storage: unknown [0x63fefdf2bc89739939d368992763fe514b8e9138eb5934a64c1d0d41e1e5d7f2] (r:1 w:1) + // Storage: unknown [0x7366b11aa7e0a7a6a1bff6b1ceb7e328e840ce5494f957ee2516a439131210b3] (r:1 w:1) + // Storage: unknown [0x77682073647ac00a2e2a19c45db7979db0086d206067193b2aee81095c5500d2] (r:1 w:1) + // Storage: unknown [0xa21de1e492bfe777e3c7327fc330a6ea7dadc7d19776203e7459d34167f1b434] (r:1 w:1) + // Storage: unknown [0xac686fede961a86d2ef3223cf1c1ca6ccd9cae19e6c6362cced13401e16075f0] (r:1 w:1) + // Storage: unknown [0xb03b1adc3c8f79cdc660c09a2db4ceabe6a1a296f58eb9661dfd7d4b09eb8f1c] (r:1 w:1) + // Storage: unknown [0xe37317823a93ff9fd7a417342622ae0303245a4070e5e1434963e22f9ef7bc9e] (r:1 w:1) + // Storage: unknown [0x3ca470713b4c72106c42b22ddd848ea50dcdb3532d81b5919e496fc2ba5e4c43] (r:1 w:1) + // Storage: unknown [0x52861333b2032b6d6c01e2ae23614f208ff6444e653e17f2a09aa6b770314e20] (r:1 w:1) + // Storage: unknown [0x7a0a59a42308d5bd214941d6bfa806bcf0c15326b8298fa34493111c773604a6] (r:1 w:1) + // Storage: unknown [0x8f1fcdcf13d1ac4d60f551970f84a6f83718709b89698940caacface75bf86b8] (r:1 w:1) + // Storage: unknown [0x90de7d39f8f140e75d6c2a4cd171e0f7679030148ddf3c27d0d51719f8b46d3a] (r:1 w:1) + // Storage: unknown [0xbe13505791367e4b18783b822135776d73168dd0e8459649b93b4afbf66a47a7] (r:1 w:1) + // Storage: unknown [0xd5a45cb71afb47663c7931bc609f18203481124c132f5a2c00677a5974ecf8cf] (r:1 w:1) + // Storage: unknown [0xd82869ba4c71f32577e4c9b0b3b03e7c78b7ad7752b0f4da522e0db48d4f29a8] (r:1 w:1) + // Storage: unknown [0xd9b56a5d56fea4601b9c8eb74d156a75737ec2c23ddd28325553efa98a89849a] (r:1 w:1) + // Storage: unknown [0x63a9a48dc9889dcdb542e4756ebfe4fd4e151eedc944cf8fce8eed831e625213] (r:1 w:1) + // Storage: unknown [0x8946ef807fd99c2bb0953b4329d2881bdba2d01150e10f92b352953a60ae55de] (r:1 w:1) + // Storage: unknown [0x8dcb2165b826e2e8255fdab745a4be6833ad397ed714d95b2b65b2f971eb163f] (r:1 w:1) + // Storage: unknown [0x9b808e8559c3e77acd148d550f1bec8b5b3dae546f9dd31af9bcf7a66c4f7702] (r:1 w:1) + // Storage: unknown [0xaa8236e290b748a5df7ef66c11fb1bb74d584454be8b9a41760728daa291fa3e] (r:1 w:1) + // Storage: unknown [0xae86dbe88589fd0c835ec3ad6bc60af179ac34606cb5ef83d0e88ca2ec566aa7] (r:1 w:1) + // Storage: unknown [0xc614ff510337f671dd38dc2e8a682712d98a56847ba391356fed764345e35b26] (r:1 w:1) + // Storage: unknown [0xd5f29e9b3e39b0acd8c0553df2d51ca8650ffc86db593503d3e4a44467e3fb01] (r:1 w:1) + // Storage: unknown [0xdbafc2262c1f2f19c1175f138897165b774738d2ed51fe68701b0699f99aece3] (r:1 w:1) + // Storage: unknown [0x0778d7501991b13132ccd11471c817ea12d8c854ed0001535bb6ebf6c32aaecb] (r:1 w:1) + // Storage: unknown [0x092911fd1f91e76d07387555c0918a3a5e0e4c74e363405fd7af1659d89400f0] (r:1 w:1) + // Storage: unknown [0x0a04d087381d5acd884e1d64245af63561c7c5d1a317dca5cc3b4fa8fa631566] (r:1 w:1) + // Storage: unknown [0x189a7edf15097613065c2730b8ca2b8a250ed384a688f428539fe261b11113db] (r:1 w:1) + // Storage: unknown [0x28803fc1d667cd700cd1eb6b5e11a34a295a85b41cafd02086660f40d148dbed] (r:1 w:1) + // Storage: unknown [0x4504d19a2b788dab7f5c0c69c730fd64cd195c1c4d34359c827b7679b264cd18] (r:1 w:1) + // Storage: unknown [0x49c795e8525c4ef9c48fb6086cc2faaeef0a6182607b9fc944bcf4219d05b612] (r:1 w:1) + // Storage: unknown [0xf3fe2278bb1690c33583cc1b103aa0d9d397b50907767735319bd5d46f7bbb93] (r:1 w:1) + // Storage: unknown [0xfe68284f9c5354e6bbba0d09bfcd5e372c0ef4a66b8819b5c86021debc679208] (r:1 w:1) + // Storage: unknown [0x5442aefbc03aac1f97f6ecfee26cf9c8fa2e8cf7d366c3dbaf640a2ec280cc8e] (r:1 w:1) + // Storage: unknown [0x7afdb74eaec6f0c4abe2bba629952769e61f234e47b9f0617dde6b5fc7a06980] (r:1 w:1) + // Storage: unknown [0x8305f933e51efc14bf29b9a8996a86bb750f46699f3bb422175be5ebf16dbb50] (r:1 w:1) + // Storage: unknown [0x914c3991677898e736196d9cf3e8ab7acb205247fc645c5a576754bea40d261e] (r:1 w:1) + // Storage: unknown [0x9b98126a54cc090ed6209e6b8b53d474e5c9948f2f8c9f431d0acfb915d2ef59] (r:1 w:1) + // Storage: unknown [0xa22d1ad0661f6f3889c1cb28ae75e54c2efd41c154d41e531754bc1633d18ffb] (r:1 w:1) + // Storage: unknown [0xb19461f65e09aa3db1742d4ce3c8e92326bd1cd474234908dc97be6da9e8bbb4] (r:1 w:1) + // Storage: unknown [0xb965ddc866cb308a73a54977e01d2993cd881f57e8258800587562d292b75716] (r:1 w:1) + // Storage: unknown [0xcc6e350018b598b1e16ab4f9a46b3420e9f2142b90b35a9dc9cdf815168b127d] (r:1 w:1) + // Storage: unknown [0x03f78a0ae86588eb9fa56342a1bce9092937c05e97bdc6123adf5ce90fa5a3ec] (r:1 w:1) + // Storage: unknown [0x1dc502d3e93e9fd47a41ed20ccd7e59e0c03fd0d361b0815b9fa749ee4014ed6] (r:1 w:1) + // Storage: unknown [0x29546c1c2a4489ecd2a8d4fe12a11d2512d43e34e3eff69718c8cfd2d3d0071d] (r:1 w:1) + // Storage: unknown [0x3d3d028eb048ae2cd4e82e5609f3b86fbde4153442df785e8d3ca8bfed2cf4fd] (r:1 w:1) + // Storage: unknown [0x525c0fea64cf4d9c8c7277df429077ae9c31bcc34f595bf21c0c6005cd1cf001] (r:1 w:1) + // Storage: unknown [0x7159a7481a485dcb603f4ba2a225bdf00e0f04cfcc6690498480bbd6c90dc0c5] (r:1 w:1) + // Storage: unknown [0x8dc8b29d47360bf65fb984a859eb9564e5b71ab96829e125e5f64819f6808a70] (r:1 w:1) + // Storage: unknown [0xa073b6d6ab9a4070ae3ff167f9ad62342deb60c6b6d23dc99f038638fb8cfb4a] (r:1 w:1) + // Storage: unknown [0xbf1b7e1e75f5a090f8277557bf6f6c559a442c49828b938903351a8decf966be] (r:1 w:1) + // Storage: unknown [0x02c87740582a36cee9aec75d96945b7e2e89a5f613e85d1da7a7b6b511bc0646] (r:1 w:1) + // Storage: unknown [0x2f233781c2eed5e66fb637a747439e21e11db72c26eaacab3d0d2da11661513f] (r:1 w:1) + // Storage: unknown [0x63ae2203e6ee8fd038b677462121d5a15ad4c83b3a0abc9591fe31ef094b8d11] (r:1 w:1) + // Storage: unknown [0x732928ef558ce73c389b9858c3908ad4b784df1df5506d851c4bedbe0b93c42f] (r:1 w:1) + // Storage: unknown [0x804b85d6cd00f0b59bee93e1ca95795594986d0325364905b1e1e986759b7f3a] (r:1 w:1) + // Storage: unknown [0x9b9b935c5d7385ea63f1f4d8f4fba9ca77333c522b93f69456cf9e3d2b95735d] (r:1 w:1) + // Storage: unknown [0xce90a43f168474d0d85e7fdc662adb53320a85bac319d97abf9aa53fe4736bf1] (r:1 w:1) + // Storage: unknown [0xe7d911018d6fbb1c9c94e9325e4593bf276a2cb3a3cc937c80f0ef4c9272433c] (r:1 w:1) + // Storage: unknown [0xf3dd9a6cfcdb9127c2c114548b1b0826f0bb1d27e6dc0b7933d85672d937a514] (r:1 w:1) + // Storage: unknown [0x014502832fd6542b9131555c82966f144f62e8de7174ebacfd0d0ff2cfbe9a79] (r:1 w:1) + // Storage: unknown [0x092ff3743bbe2d8dbf8cb90c8a760389484b4e730be0323f51d85f43477c9878] (r:1 w:1) + // Storage: unknown [0x168bda7797ae0f4cb90fad3e8879e16edc5707b6f46e95aefc014cf8ced6e3e3] (r:1 w:1) + // Storage: unknown [0x51bae63e4129f50b542841d912a335ec8573a8aa7f46362d4c093a8b61eb1929] (r:1 w:1) + // Storage: unknown [0x811eceac5ad0b2648804d685b2e0c3a807bf67d12a3b54fd9dca9a078be98048] (r:1 w:1) + // Storage: unknown [0x945f12d2abdd23e5bc7f91524b6dfd2bc296834ab5bfd9d2e124b467a714cf1a] (r:1 w:1) + // Storage: unknown [0x9bc2e45b52e764017a0a322a586a1e37ce2a4afb239f8c6cc73dd0da76818a86] (r:1 w:1) + // Storage: unknown [0xcef2f93165875b8dd6caf7e5f8056cbeeed8b010b5b03b052df14f5e36156922] (r:1 w:1) + // Storage: unknown [0xe737bec58619859a19624d9cbe60e1848f339cbea12d5cd3fbfe5ef02def791f] (r:1 w:1) + // Storage: unknown [0x1f24f16f939428a33d5410529f11f7a573d2513df7a830f85551948fbf547fdf] (r:1 w:1) + // Storage: unknown [0x2eb381f6b73f0b9300d94f4f0b50ae4b35a5ea2ef407d796d95e4715d42cf940] (r:1 w:1) + // Storage: unknown [0x42ff8a2d17d124e2b40684c3c9ad8e1e9108b416eebc47ef183909b0952b32c3] (r:1 w:1) + // Storage: unknown [0x9b9b4d9443a2b5010644690956503eff1fa73d4fdf61c981aa4762a71a78877b] (r:1 w:1) + // Storage: unknown [0xa40fd6fa12fe90cd1a630001d90f83b12f442f9e8f508919fc8605685386f9b8] (r:1 w:1) + // Storage: unknown [0xc0847c2ed89d0e133347393fcbe8ccd722be616870187ec4c2c8c1fc14d16900] (r:1 w:1) + // Storage: unknown [0xccd6e6aac2c49b2ea854411986569e0f8dfc90e92065a2028c47c57e04669306] (r:1 w:1) + // Storage: unknown [0xef83243496cd71f9414a0eabec74b732a2e5b3cfb8c038f2891f988e0753555f] (r:1 w:1) + // Storage: unknown [0xfa2081d0272500dd465f66e48229eb243ec7aae07a81437c33f7042ccc273c90] (r:1 w:1) + // Storage: unknown [0x029de76adc7295ed41bbe6c450f4c7cb4f78f9b9a7d3edf67994cd6b1f511a7b] (r:1 w:1) + // Storage: unknown [0x11a2c57e147ad91b425775b77163fd83fd7ad15aa13f6ba1800fb0d486497868] (r:1 w:1) + // Storage: unknown [0x4874c9cd117e7a33a80fc59628c503e94be9296da73a8f463f2d40e0f044e11d] (r:1 w:1) + // Storage: unknown [0x629d17f361203449a9f588968037b3f8f170ae2687f29519aca2616228eee2b8] (r:1 w:1) + // Storage: unknown [0x7f192102f64f68a23e9de1a8e4c13c6c1ea1871d4d283046c9a431d758b1938d] (r:1 w:1) + // Storage: unknown [0x847cf95e67d5fc3da1c782f50c01c28cc75a458f8b3c1312d1c13f1f7cb8cff8] (r:1 w:1) + // Storage: unknown [0xa978a38b1ea1fea358dd03cba3280630218d4d52f3c5da9e0c728084df42483a] (r:1 w:1) + // Storage: unknown [0xc1948997f3e5d401de1e1d83cd6ee6b6c066a1ddca76c812bcc1c0c72e96b5f7] (r:1 w:1) + // Storage: unknown [0xf916345caf4690064d760040f4f053ab3ae8e675038cd67c4ae0b6df90fec567] (r:1 w:1) + // Storage: unknown [0x02d22f07ca8b30c749e4e5f6f724014e31e29e62579ef725a8d4a65069ac411c] (r:1 w:1) + // Storage: unknown [0x1c3356adf4350bf3bdedd5749147d18f9caa996e7aeb2033f1afbd010b912c4d] (r:1 w:1) + // Storage: unknown [0x38bcc692c3b7402da5bed46cf8e1a7c10b223116cdf1a2f4696df2b48f11122b] (r:1 w:1) + // Storage: unknown [0x48503bb95dbc5310a682c67b6f2949a8fa08f1e45418eab1a054dc6d919c9ec9] (r:1 w:1) + // Storage: unknown [0x59474766bbcaf25024437f6352f00a3fd5d1e6979bab6d456c0934178b91252f] (r:1 w:1) + // Storage: unknown [0xb4acf66b46284f06be1c289acdbb3cdb81f0c376478257695c16448daf064cf5] (r:1 w:1) + // Storage: unknown [0xb7fefbad6c8ea1c6cc0ddc69253b2e5f2c8905ade22c32c07368b7d686fa34b2] (r:1 w:1) + // Storage: unknown [0xd4722610951697839b4d9d8c6af980583b0198eae3053f9c732e8d94171ad4de] (r:1 w:1) + // Storage: unknown [0xeb34374c15d84b2d704c3e841453dbb1b8a05998e466b62e137646684823ebb5] (r:1 w:1) + // Storage: unknown [0x1f70aa6c83dd98f810dcaf611bdae5e011e5bc715d823e419c1e7e1943cf6f89] (r:1 w:1) + // Storage: unknown [0x302b1758e1ac8d5f9e8033966aa4f5c7e77512e1218b4b670afc098cb8c1f837] (r:1 w:1) + // Storage: unknown [0x31a782760fa7b79819505ff67e3a779a44efca82364dac907dd7bdc2692ed2d0] (r:1 w:1) + // Storage: unknown [0x4645cbc2f008fe9373ffd704ab8289810b5c10bba9303331e41c627583256adb] (r:1 w:1) + // Storage: unknown [0xa5c276fe36330f279b5fdc38a1a74a3dba974c7d819ef03cdb00ab5fad89f315] (r:1 w:1) + // Storage: unknown [0xbaeb1685aee142cf6d46f5929cfb222b8783de3b28121a7686c007c268785951] (r:1 w:1) + // Storage: unknown [0xc83b05e6f372fdf597b0f10cca15a53a5df46a46316bc5637dba4d0cd829b593] (r:1 w:1) + // Storage: unknown [0xca62e9f75f02064c89bf8c2d3e396024ca01ccc2038daa2a6fd2b5081bdd404b] (r:1 w:1) + // Storage: unknown [0xce880731cb3814ea9563bd0333b5eec23d7b3a3bda6375d75a2eae72dc15e18d] (r:1 w:1) + // Storage: unknown [0x33e9abdb07e28ca62cc53735e1627ecdacb61f748503df59cdfdf92fbc55f30e] (r:1 w:1) + // Storage: unknown [0x49d2ae779e34bfc15479b8613feb8c379c95173dc593fa66cf743cc079b790de] (r:1 w:1) + // Storage: unknown [0x49d7358ca22724d5c54acdf7fd593eb1908c6cebe3202ac07880236aa12dae56] (r:1 w:1) + // Storage: unknown [0x60d5c55c0e3c2d71a5bd70a177e22166fc205a6d69673bdf7f730469690a450c] (r:1 w:1) + // Storage: unknown [0x80bfc26d07f5767e0ecaea78cb96adb509bb879357342cbfce4a71edc370c30a] (r:1 w:1) + // Storage: unknown [0xc00905cda576b91dc0362b6770fba56e5324c650e43eff1503a2802a4e056ea3] (r:1 w:1) + // Storage: unknown [0xcd15694f12f82b6eb2df1f55e20bc431b37e88b006a1e8861863fae26134a9b1] (r:1 w:1) + // Storage: unknown [0xd5873d069c99592802c0d4da14a20afa74109019f9d47b766637fc5cffbe2a01] (r:1 w:1) + // Storage: unknown [0xe2457ea4be0b54d78eec228c73f68a84e316f0b5c8516edc1791d6904338674a] (r:1 w:1) + // Storage: unknown [0x145db170b8204d0c5e31ac757be2ab626b628419ea745e8b75c14cb606f85100] (r:1 w:1) + // Storage: unknown [0x5df05b79602a7278a9b2c04514eeb33dbb923ce016bf90bea1cf81744a445535] (r:1 w:1) + // Storage: unknown [0x986b7f7212341d0c17047a84e41b842c917eef7b6a038af4e3264b803250c2c9] (r:1 w:1) + // Storage: unknown [0x9e6b5952d5c876d0e88532a69519a2bb2ea71ae4eebb4492c16b1192966e8354] (r:1 w:1) + // Storage: unknown [0xa6a946a4cd6ec4adec7a3a5ca20fe7f83015cbcf5d60bf35a27aab38bd8ec72c] (r:1 w:1) + // Storage: unknown [0xb3af15676dc7ff5955afad0f4f764a9e508af856855249841e439391b3bb0098] (r:1 w:1) + // Storage: unknown [0xcf1b3bc717b8e7905f01d0e2531b92b4e292dd724fa36fef6e83b194d92b806f] (r:1 w:1) + // Storage: unknown [0xdcc77b6cade77f9f73e151eb609dc510f3437777635d586cbadad6b96fa0d8c0] (r:1 w:1) + // Storage: unknown [0xea2d58c504ca7bb0df13c1c38ec94349a9175e39c606bb5d5029c9cb2e15c387] (r:1 w:1) + // Storage: unknown [0x16b5c4b24af1dd526291c2f81753f92a092ed37320f17bfab12184400f6a9f50] (r:1 w:1) + // Storage: unknown [0x26cb13235a11327b22555f3512c737b9518cf8205371033bac55a0e89a85994a] (r:1 w:1) + // Storage: unknown [0x4a9753b9eeef39fd60c9559e3468ea605cbc03fcd2faa29cbe63e799c81e8469] (r:1 w:1) + // Storage: unknown [0xb6582ae0991727fc0bf192047d16a31f5e4cbf90321cea9d3d49b9e1b5407dad] (r:1 w:1) + // Storage: unknown [0xc0fa605b92057dee3e77f6dc0c6e91621d09d8b91c5cfafdbcb38830960e0bdd] (r:1 w:1) + // Storage: unknown [0xcf2e8ba860b7041752b2b1fb8e0360d1b40fd41617c7934746bb1e244c77016a] (r:1 w:1) + // Storage: unknown [0xd08934b7a2d1ee349de3ae53bd2286b123adca84023306014c2d75c822e74af7] (r:1 w:1) + // Storage: unknown [0xe5985dffc1ac88a03cd7a8ea79d35d6813529a692a9380a2ad04fc0db20c0e05] (r:1 w:1) + // Storage: unknown [0xf00871f755719a8c1ac33f2fa611c1736e64a16e450bfea842baf8d9114d7041] (r:1 w:1) + // Storage: unknown [0x2d86b69fa25bcdbc7a3ad6cb76e12641ef01e00dcacbf31ddde60d2d228f9ae6] (r:1 w:1) + // Storage: unknown [0x4654293309c9d9ab4282485875ec1b776dba729b6146e9bc3966a9a819c017df] (r:1 w:1) + // Storage: unknown [0x5b9007f9119be10a7d1ae77002e96ecb7f79dfa7a9f300818812048748cf55d2] (r:1 w:1) + // Storage: unknown [0x5d96a67962f8613c419566d4dcb0697c8ec617897769b55a4ac4dd93155d4578] (r:1 w:1) + // Storage: unknown [0x85825e6cce4096e5a7dc169434fa91d22210b6c7ab8897b30985aea6ae20fd53] (r:1 w:1) + // Storage: unknown [0xa1b69262faff4cd2563e3b4931f2e8956362bef384adf9db005f3b1fbdd0d4d1] (r:1 w:1) + // Storage: unknown [0xb7c9da42ebd963aa3b0eaaf14e1e7356a082f13e57028c18c99f740aef5fd5c6] (r:1 w:1) + // Storage: unknown [0xd68485a52f9f464924546f77ebccc5fad66a93e22a1fc60c4bee070012896ce6] (r:1 w:1) + // Storage: unknown [0xf5626fa70a62fa697416f25b3e7e282a6b099cc9f63f6cca84d2500a9e23891f] (r:1 w:1) + // Storage: unknown [0x00fbe4c87dfafd81acde0c62d71afdad98b6fcd3ac7c5978a5bc6e2263d5943a] (r:1 w:1) + // Storage: unknown [0x0c079912425799c807fe6c182742aaa56a3b3fec7a2a9d954147f10e0c1e5afe] (r:1 w:1) + // Storage: unknown [0x11df950500fabbfc9570427f37c48cdbebcc94c5046fd4bc41a974e1dbe3d7f6] (r:1 w:1) + // Storage: unknown [0x1364fb94ec0dfbe5aa25a5f7427fc57ec8aa3ca7185c6246478add1d2d6f9faa] (r:1 w:1) + // Storage: unknown [0x27719eaca95aa18d9c543ab4a618fb1a51801ff2039b76a44e660d3974fb870b] (r:1 w:1) + // Storage: unknown [0x5c83011c24766f0080212191a03acb9e0ab086bb3c34b5beacd0d75d1d851846] (r:1 w:1) + // Storage: unknown [0x5cf4866b18bde15f76add7faf64e389e33b2e3c80b9f030e13e6b4eef3d6f23a] (r:1 w:1) + // Storage: unknown [0x87f065cba864c0ba39f6f0f3d11014f11da5b47eb8e713a4ff563dd8b0d7714c] (r:1 w:1) + // Storage: unknown [0xec9ef3dc71ba02a92626ebafc549db307121d398e7d53f773173333d020081d7] (r:1 w:1) + // Storage: unknown [0x4da8525f1f71b5fa7c393567e81e1dd66971d9fc5f031ebdc0fed9067d53f468] (r:1 w:1) + // Storage: unknown [0x6042de2b474edc72726c1d63652d328bf1d7baaeb992c55ebce5c0176608a8cf] (r:1 w:1) + // Storage: unknown [0x851eddee51237cc23ca00399b49e23c4ae44f5ab90b9249fa3e45780b4cae285] (r:1 w:1) + // Storage: unknown [0xa4a3811d91079e816d9a640c1a18e7f20a07f1fe33ca70aed4ba60f4bae6b1b0] (r:1 w:1) + // Storage: unknown [0xc88e6b7e019a0ae3b458533fea59b67ea36088034fd75333f60a80c280d79567] (r:1 w:1) + // Storage: unknown [0xcefdb5a6dbb7dce411445e4cfa61ad6f94c535835337a04cabcd3e1f8b857c95] (r:1 w:1) + // Storage: unknown [0xcfd8d84d37947062d49533c3ecc87470cea87db911ff65dd30f5c1db01430753] (r:1 w:1) + // Storage: unknown [0xda4d234593241eb8e2ea34328f2d6dbd2d7b33c0ed622e3cef00ad33967c09ea] (r:1 w:1) + // Storage: unknown [0xe52748c1a2cfb8c55639657bcf8999e084b1f4922562f2004d034a267c060e68] (r:1 w:1) + // Storage: unknown [0x35a386fbec1c4fc3b1ccc64c3caa55412ed03a613d7444008f3c820aa5b17bbf] (r:1 w:1) + // Storage: unknown [0x5a9de37e4f97e367a194298f06dc78713654a6087aed324b2df9f30e60298d7a] (r:1 w:1) + // Storage: unknown [0x6b8ed23e3a83354f761aa53087b88fdfee9d95f3d3b140ebad9542574c1439e8] (r:1 w:1) + // Storage: unknown [0x76c147f0828a67ce3d00dd2a657f618d183ac0a968c3c1952ebc9bf4c1382c7e] (r:1 w:1) + // Storage: unknown [0x9a644b6e7d6fecdc4ea972ccb4468de093e6c8066974d5e96d736df2e7ee0f84] (r:1 w:1) + // Storage: unknown [0xc14a6a92f5e2c95c9bcd26bf4210cfb628aca80d4662dfaaad0d7e89c12c7796] (r:1 w:1) + // Storage: unknown [0xd2b915f9e77d771de5421ee94839e2c61d529da30018195a2cdd77dee3b932fe] (r:1 w:1) + // Storage: unknown [0xf2f2be4594311ff3e9f8795baf0fad3d984dd750d9b8b66f1551b517c511b66e] (r:1 w:1) + // Storage: unknown [0xfb92258fc6d0c6f5cf211734bcf1779b22b86f919cbea6600f09787e33cef27d] (r:1 w:1) + // Storage: unknown [0x3b2c201b2eba43083a922bb7f99b66175259c5ffa9b5f90f78557ffcbebd1be3] (r:1 w:1) + // Storage: unknown [0x4739757a07f6af63682496729933cd92ddcbdae3617bce4769a087f6fb128c1f] (r:1 w:1) + // Storage: unknown [0x5a19744d580bdab0ac65664cadaa3e46cb10efc0ebd65f03d2a05ff648bc39ba] (r:1 w:1) + // Storage: unknown [0x9205671a8148815a8b414d028efab35292a41efe38a095bc3b83ca3b35e59dd1] (r:1 w:1) + // Storage: unknown [0xa274879999b34be6f96d1b3e31c2b6767c8dc656465635fa67c3740afaaae366] (r:1 w:1) + // Storage: unknown [0xaf946540d176e593860ca2290489fd7c16e0a804c48ebd11a8a9eea4bb80f7c3] (r:1 w:1) + // Storage: unknown [0xbb458c5f8b1b5cfa50b7e825fc1f8e78115e10e9db8597c4ef35549251465333] (r:1 w:1) + // Storage: unknown [0xbd8bf13aaa21833efc3add680619ddd4ef27f761437b8ba8d52d83e44413baa2] (r:1 w:1) + // Storage: unknown [0xdce9aecbadeae369d0c7ef002c41109c8a140bd7000ad4ff381cd50e785a262f] (r:1 w:1) + // Storage: unknown [0x1184d106dc781c07114d3a4560d00ba52b987e6ef4192105edca47599e3d079f] (r:1 w:1) + // Storage: unknown [0x298a7203eb1841c29a31c051cf0559ace866196b249bf1bcc1500eda35382b59] (r:1 w:1) + // Storage: unknown [0x5361d7d91627565c545e4844a53782f73741204ad5f3d517142ead6ca4d040f8] (r:1 w:1) + // Storage: unknown [0x623fc7609e608684e874840e045ec1ee7cabea4d390f591af4f34116963e62f4] (r:1 w:1) + // Storage: unknown [0x7eacc962a34ad7de3a66b92e4067b79a0f2e1815a6b261963d60a8f93c0a87b7] (r:1 w:1) + // Storage: unknown [0xb3e6e83f56be1b97c7e8c0ac5dcba5592e9129a77d95b1c79b27fa9a2ccc6863] (r:1 w:1) + // Storage: unknown [0xbd3719c0ed684f33ec28d93bd293d5a6330d7800bf928784bd0a107c296e96f0] (r:1 w:1) + // Storage: unknown [0xfbde54f17dbe9856d1e47a704fd9ea30281e4256671a63f37515d090df7f789f] (r:1 w:1) + // Storage: unknown [0xff98de6b90b3193de12945bc91d51fc38529ca4736d72bff21e90c7264c2f71a] (r:1 w:1) + // Storage: unknown [0x14dea875e0cedebfdd7d6dd9cd735842f31f0eb5897cf78ea0689a5a40f0a1a8] (r:1 w:1) + // Storage: unknown [0x19c9221c80f963bd72706bf3e0b63101d13d0d802aba95b9fcbc973fd287de59] (r:1 w:1) + // Storage: unknown [0x26aeb0fd26ac70ca2100d361a38a1a1fbcb19073a66853b14c59dbd56232dec6] (r:1 w:1) + // Storage: unknown [0x296551be0ba05b759efee2f02ca8d66ebb30120f246e83998c479f02c544e6ce] (r:1 w:1) + // Storage: unknown [0x5b5d43ded5ec8bcbc324492bd7739e92aee01a6f2c92bdb406abf5cc22f94552] (r:1 w:1) + // Storage: unknown [0x9f1850be63238c511db8ed703865cf530c5b0130b9e05a6de7e64627c6ad28ee] (r:1 w:1) + // Storage: unknown [0xa392d69bb5702f4417e0539366bd6ba139091fee633cf80d002d65c17111c9ae] (r:1 w:1) + // Storage: unknown [0xa67c6c2e46a40b67a88da9ce19133a1fe82491454c3f9b46a780de7e39341818] (r:1 w:1) + // Storage: unknown [0xb4acab02d78565e75ded51cee3273bcb2c98c0ffe8ffc545e4443b9bb07acaa2] (r:1 w:1) + // Storage: unknown [0x068082b39adf010e46c67f9d309ab9f500e5871d35b2993dd2ed0efd7a608018] (r:1 w:1) + // Storage: unknown [0x142f5546e7f86dddfe61211c399e1ace2be267bd8e4588b5682e73190ec29013] (r:1 w:1) + // Storage: unknown [0x2a0063f1a695f4d5563cabf3a6509d4f1491f40def624da9ade96dca3e933fb7] (r:1 w:1) + // Storage: unknown [0x356a887fd94f35b96ba15ec380500124befe1d3a17db608206161f22fccc7b86] (r:1 w:1) + // Storage: unknown [0x469f13dbe853651de759d758e8c30fdd20509367438c0275374a4c65f12e932b] (r:1 w:1) + // Storage: unknown [0x5c236523c6cef783c51c5d0dcdd4004f9aae4672b0ac997a777a0f3e2a629f8c] (r:1 w:1) + // Storage: unknown [0x5e4fcef0c7b973d39202d6fb0b06382887cb4389e61c27eb6224d006507a603f] (r:1 w:1) + // Storage: unknown [0xefa37685db10d0006e32e246cfaeb3cb6f33e8bd8f9ee84e61ee74ddbe35751a] (r:1 w:1) + // Storage: unknown [0xf8f59457a17aa1c34a1ea10fdeae16073f984657e0de6f7ae83f1405fde4f5c9] (r:1 w:1) + // Storage: unknown [0x32383cbb91d30600129e5ac97215741c81a86e63ae195adc057d29851b1e0635] (r:1 w:1) + // Storage: unknown [0x4ef4e5b5393914626c4570a05e7285ed225afce30a0d44476430fb385003d620] (r:1 w:1) + // Storage: unknown [0x52d5dc7ed11587378e6f063077d77430ba03c9ae21af62d277b7d23652b0f343] (r:1 w:1) + // Storage: unknown [0x8b6e86ff35b3bc955e9a8b706de850f5af7333311a692d7d1f6c892c9e0743d9] (r:1 w:1) + // Storage: unknown [0x9a57b167d72f9f3f5691f126d9b48942121a334340431be4d54903611add9cf6] (r:1 w:1) + // Storage: unknown [0xbecd8975089980917398dff92cf36548f1fa9b6b3d96eab120bfcd0a08be1133] (r:1 w:1) + // Storage: unknown [0xcaac1573f11eeaedbdfbe22884270e52a46a445d4f41c98fe95dd39fb0628fd2] (r:1 w:1) + // Storage: unknown [0xd37a7f79ab5c1c824fde6f849a12fbdec5bf8b8ae7b7df8bac21df690d1ac566] (r:1 w:1) + // Storage: unknown [0xf38e1806d2b2118a231477732019db23ca62831e3e0b8cc816a99a2182391eac] (r:1 w:1) + // Storage: unknown [0x29c03696410a0dcbf4e9bc8d076151124b7edc54fbc0cfbdc3faf7789164e206] (r:1 w:1) + // Storage: unknown [0x3195c59775014b156b70f95e90ab361304fb260bcc381c33c20b5e7293d4c7fc] (r:1 w:1) + // Storage: unknown [0x569d226e75a0eb467301f6fa4cb938d4fcd849d3efe969c161542ad1e75279cc] (r:1 w:1) + // Storage: unknown [0x93295b594fc192103b95e0638dd9f254d36a2e9b299bee6d275df67c8af4d759] (r:1 w:1) + // Storage: unknown [0xb7be2c897eac67b4b3a5da1a02b4b1816992ee98f6112b4d5262f73fc255c3a4] (r:1 w:1) + // Storage: unknown [0xc611fe61e43f3ba3182c4c6785a2a3ac060e2679bb8174a0ac1e234551428752] (r:1 w:1) + // Storage: unknown [0xd4f9a331a2eb206dc43bc6fa02586bd740021c262d4a5b74ff2ec74b24bb07b6] (r:1 w:1) + // Storage: unknown [0xdbf56dd98c667cdce364a53557f373d98947f7fe0bd7da6d72168e6572bfb622] (r:1 w:1) + // Storage: unknown [0xf74ed7b12e94dff551fb1db30d97245cca3374be5e04826487f83154a7ca79dc] (r:1 w:1) + // Storage: unknown [0x38478fb97716aa0a228f48ab751be24feab89ba4997894f4748c3784434852e7] (r:1 w:1) + // Storage: unknown [0x3935ad150e4eee0800486d78e89c19b55ddade16282d29f5fd75e398a03adeed] (r:1 w:1) + // Storage: unknown [0x65085b97bb627b7c8c3b4f09e5f174d1938737422c6154bd173ac6d0d75b6ea0] (r:1 w:1) + // Storage: unknown [0x7646ee188a1eb4daa60fccda6425d15a42eb1a25a2cb8252faa604ae48046dc6] (r:1 w:1) + // Storage: unknown [0x7b6c8e917003b1a2b8ea5c05efdd4eac91892086faac90cc893e2b7987222ad3] (r:1 w:1) + // Storage: unknown [0x94a9e5b0983394edf89c1193a94b8d5903d3bedcfb5bd892d2211f3a92beed21] (r:1 w:1) + // Storage: unknown [0xbc8dd82eb384558ef8afaddadb2534ad0d3b84350e42c080b92a318972afae84] (r:1 w:1) + // Storage: unknown [0xcc0292b10dc5b24ebfb31ecf1b60f5dd86c030def71e418f5d5ea58662d0e928] (r:1 w:1) + // Storage: unknown [0xd1b96b87e9f4bdd1d26a51daaa1e4dfc72baf9c8d0eab927c39de1d913759d1a] (r:1 w:1) + // Storage: unknown [0x01407b106cb8d8b1662ca8a44f362e1d99445ac4f611e160dc794fe19e91b9ef] (r:1 w:1) + // Storage: unknown [0x21f921d2a08b6c668f1575f8d69a2e27faed15e73a5813476d34a006d37dc9d8] (r:1 w:1) + // Storage: unknown [0x5574f592ca3417c1b74110fe7a3111bbcc0bc2cac6700cdf744d358734618c62] (r:1 w:1) + // Storage: unknown [0x5c182c2454b1ab519763417f95d564e2f77481dc5d5144ba489126dba6ce4f5f] (r:1 w:1) + // Storage: unknown [0x9b47d63344f6bbca64de1f01ad61d1e96af27f8bdafbdd8e638fc662452b4a05] (r:1 w:1) + // Storage: unknown [0x9c3a5cab41c65e4012798e7a06ddfd0546d455cfd46e94dfb84f4db210c29f6a] (r:1 w:1) + // Storage: unknown [0xc5928d7aa41aaa4efa11f127abace229d1265f4aaab036ab2093b26d3d25a318] (r:1 w:1) + // Storage: unknown [0xd251d389ae41aa428d7988c8e21995955dbb7dea36d2ac7570c85c43dc93c283] (r:1 w:1) + // Storage: unknown [0xf74f8fbdd0c70dffcc0218967818fad4252365bbc70ce33911f2112c9b312a15] (r:1 w:1) + // Storage: unknown [0x09a9376f1f7cb70af3a8b9b5c92fa34f1e40d6b518dbab9e0456bdaf2d322d0a] (r:1 w:1) + // Storage: unknown [0x2eecbb5fe19bbdbf62c79dba3456e92353a669f824bca8fb182f64d434e5d3ba] (r:1 w:1) + // Storage: unknown [0x4d332ce8f79870034022a949e25bae7943f8a2b69809bb9b6924542c2dc515f8] (r:1 w:1) + // Storage: unknown [0x875a7c5b801553193ab832bde427cd32f4159eecda9360ce4ea5185bd346422a] (r:1 w:1) + // Storage: unknown [0x8d8b1441f3859ef83c3ba5317547a84315ea29f41a83b6ff6da7039a88cac242] (r:1 w:1) + // Storage: unknown [0xc20f284dc00bb5f2932de03004d66c3a3bf3185c39ff61305a37198e3fbbd556] (r:1 w:1) + // Storage: unknown [0xd4f841abc893dc3cdea7c3d0d48ffcae53f63273f02c4391c2ccae0e52b5d43b] (r:1 w:1) + // Storage: unknown [0xd871ea178240c567bb4b8f35499644f8a013cdd76b381270540e9262b3da6a7e] (r:1 w:1) + // Storage: unknown [0xe5d24a5d239ad66f0cd6f13870d9747268a20306547f18dfcc91a88d84b056d6] (r:1 w:1) + // Storage: unknown [0x0f9026200cd5a19cd525379b24be34bcfd7016632fbb2891727e2c25513a5b70] (r:1 w:1) + // Storage: unknown [0x1489c4130501c2541e6c08aac4366599c37afb7ae0b4596e2ef2df4f9e0e6e6d] (r:1 w:1) + // Storage: unknown [0x25449a9001eed866e08345dd7d9a4c8234dfefff889899f3cff3b11bd0323f77] (r:1 w:1) + // Storage: unknown [0x3a689c9258d7959693de61d227fd6387894b4f48d201153c07057f808f9e7c5e] (r:1 w:1) + // Storage: unknown [0x9b6bd652c8562ea2e8071c6d604ebd41b2f3512b00d5ba7c20bc84fb2c1ccc2b] (r:1 w:1) + // Storage: unknown [0xb58f57a77781f6c9c5e12dd8e9fc1c8a9803b9dbba298538ab8d44985b74ab62] (r:1 w:1) + // Storage: unknown [0xcdbbb235046f6dafcb1913e53d45908631d73da7ed44263114432f3aae07ca71] (r:1 w:1) + // Storage: unknown [0xd1fd28c56fba032c65b1ad0a259ccab7f504346d22eafb2914c1dff1969d2a99] (r:1 w:1) + // Storage: unknown [0xe5860e29baab88a2f5fba4e38ba443968e067a279b72e87809d0228d631d89e6] (r:1 w:1) + // Storage: unknown [0x03fc50a53f8b55b7eb687d52bf0b688002613765a93b82f781065d6aae154b73] (r:1 w:1) + // Storage: unknown [0x36bfc1799952138154bf8020abbac8cfef585b3d5b8e24e24cc64e462db8992c] (r:1 w:1) + // Storage: unknown [0x390714b65f121ddc2954b7b9332fded961e58d32610a78724690ef87368bf7b6] (r:1 w:1) + // Storage: unknown [0x4b0192c61e4a1b2facce37c15309708bcd5bfc05c909cc76dd891478c84e3024] (r:1 w:1) + // Storage: unknown [0x7bfa441f3dee7aee4705a770c11edf7c4e05aba0b61c07094368e3d9d8e084c6] (r:1 w:1) + // Storage: unknown [0x7f10f8460f8af980c7d997040fcefb774538925362a0d956a11a77b40e6a5eba] (r:1 w:1) + // Storage: unknown [0x94b27a6ef159c56e0738bb35091863e326d1673b6548448bae7ac7e65fdab57e] (r:1 w:1) + // Storage: unknown [0xb1ffd2ee81d0411cd8698179bd8d84a9d436e7990185f336ac5953dd47e43ba5] (r:1 w:1) + // Storage: unknown [0xd0ea5cb1c4c9b8ca8bcf3f51dee17f42d030373e6ab09f45d75893c6364289d4] (r:1 w:1) + // Storage: unknown [0x15212ee014dc075c0e6f42b242af7e4d121f7d41e9caff916f7a524a4c29776d] (r:1 w:1) + // Storage: unknown [0x4187f2f0fdf610dc9d337c1cf46958c7db0394b0974296637d5a84fb7c2b3a8b] (r:1 w:1) + // Storage: unknown [0x4732d393876184fe46ea5cfa83b627f7bd1b6727003b9a0088a03636b4356243] (r:1 w:1) + // Storage: unknown [0x4be2d0c811822615e4848cd3054f3d9b1a7c34b18470d9a6f89100c0445fb010] (r:1 w:1) + // Storage: unknown [0x6da525e61d6b36723c2b5a2ca124c85d1856816e0b35238d0a850f9943e7ba66] (r:1 w:1) + // Storage: unknown [0x9c802f738e1b04601ed0d0abe32bdcf042074f8edaf2fa4571b124b01fa70846] (r:1 w:1) + // Storage: unknown [0xa73ce6f8f9d23682724f09954f06a53d3c4007cb29af7ebf5a8e606c5732cc86] (r:1 w:1) + // Storage: unknown [0xc1da305dcb85ec2893959f2ae65b4b22ae8bd45693ab0e3fce81d72cb2552577] (r:1 w:1) + // Storage: unknown [0xd3c6d933b4be80010db2b04898cd1f86bef1f05f4910ea6ec76cd893764cde57] (r:1 w:1) + // Storage: unknown [0x6a347d8997bcb43ef505e6876c09195b98dac72be6e9f08899090815a8bcde0e] (r:1 w:1) + // Storage: unknown [0x6cbadf65e4209acb1dfe5cc362ff515ffc407404026c48b83267237ca296beec] (r:1 w:1) + // Storage: unknown [0x7788a3a1aa009c1ba85f5f4bcdb8c4d371a45b6ed7b3d125f14ccbaf907bed68] (r:1 w:1) + // Storage: unknown [0xb141aef67c001419ce515c56c58b59d29d52e73eaadcaf464410553d1035f33a] (r:1 w:1) + // Storage: unknown [0xc0a79638a9bd36ef462f127f86035f874c9c7559d9e7dce1273c583e1539df83] (r:1 w:1) + // Storage: unknown [0xc0d5f26bb40d24ab056e1bd440482fb7db86ab2d0f9868977397c038c6230e9b] (r:1 w:1) + // Storage: unknown [0xc5cbbca4f0275eee449ae706cd0ed9de748d575507d8f045ad9f14712971090c] (r:1 w:1) + // Storage: unknown [0xd2e619fb36c5659aabe595bf30254a3e35c315d46d2afe91ab22801c35a1e8e0] (r:1 w:1) + // Storage: unknown [0xe2645307c930fa6f7ef89428b23f1cfcaa7e1218e99223f8d3f33bd8a0d742f8] (r:1 w:1) + // Storage: unknown [0x2e4e39c5b08d717d1808350db637f08e1b2cf6e9539595440e3d27ab3c719903] (r:1 w:1) + // Storage: unknown [0x43efa67dab5b54814027207019c7a820cb5415238f9b1250f234c3116933325c] (r:1 w:1) + // Storage: unknown [0x4e3ad2f84a1efe894ef7c96a4d086262a0d2de21f30121237e4d459c8c7a6f0f] (r:1 w:1) + // Storage: unknown [0x51f0a4a31006ed7e745dc8dc0d0d9e4cd78cf6d47d50e363b7975907ef548afd] (r:1 w:1) + // Storage: unknown [0x5f64929bcef4ccdf44d337a9ae8c17b203952240df87f49a5b10ee976e87f2ea] (r:1 w:1) + // Storage: unknown [0x6cb369ca9f516aabc21356337ee21e4b6bd7682c4325ec8d1481aa7686df9913] (r:1 w:1) + // Storage: unknown [0x9e8f653956af16e4b6e9759b8411451382d6749ef6dd44a6179293bad1bea1bc] (r:1 w:1) + // Storage: unknown [0xb192b38245587a98a41cacead1ceeeea650df259cc3c03902d7b6550a7a01b2d] (r:1 w:1) + // Storage: unknown [0xe11c6afab8139f5ea3d2dbfb377e756458f3d7f4d1f97c2fbdad93a745bd1403] (r:1 w:1) + // Storage: unknown [0x09a6e269066844934a3ca55c5c095f8112f4492f292a0d3ab1a374621a8f829c] (r:1 w:1) + // Storage: unknown [0x0a76588d48ee18219d4cb75458b1dcdc677263106ade9c9a30c728face6ca80d] (r:1 w:1) + // Storage: unknown [0x21fee12be772e78a59541b5d650b2186ec4cda36c4d37328d514ea66fde98904] (r:1 w:1) + // Storage: unknown [0x3e73e9aa06c5d5e22894a96e184a6dbedea5139f48e02980d2efcad0b758cdc2] (r:1 w:1) + // Storage: unknown [0x654c9261c5825253ff541d8993e72fe856a9f79b3598d447f38279e898a2b4e0] (r:1 w:1) + // Storage: unknown [0x768a3118cdd3b2a2759a0c75f20d3212dfc86cfcc249655bfe3bebb06bc1cc8e] (r:1 w:1) + // Storage: unknown [0x8b204a61cc4033ce6ce7af095ed891dfd7d19a642ef5561b4c510def6edb78ad] (r:1 w:1) + // Storage: unknown [0xc8dbe9efd7c11f55ac197805b9d8dd04426703cc4521b808dfd24b342ade9b03] (r:1 w:1) + // Storage: unknown [0xfeb9426ed2d7f338977a3257b6729210dfd069a0274230dc74267c2ee7ed0b77] (r:1 w:1) + // Storage: unknown [0x0232d463305f8fcea7214c40efa268b26f6853c420ef75961761315a09e7b7bb] (r:1 w:1) + // Storage: unknown [0x1a350d01aad2f424d54ab323adbddefe00b1ec517f8ba9d4a8587e1ab6825fd7] (r:1 w:1) + // Storage: unknown [0x20afbef21dfb3b37883c4e0eb83a8f1f33b5676fcbef51339631429d5d921279] (r:1 w:1) + // Storage: unknown [0x6b0fd9c9e97dad955d766b7a4ff67adcbb5bff2ebec6a407e8b7c4bd4d45c5ad] (r:1 w:1) + // Storage: unknown [0x758ff77cb1f5d2032a7e366371426e160ccd0b96925f06bbc9329f98de0e19ca] (r:1 w:1) + // Storage: unknown [0x8dd87fc444419a4a88abe89607b045d3141156f5b2d716290910ec732899d1a5] (r:1 w:1) + // Storage: unknown [0xbc74be6da6abfeac2567acdb80142289c6da87a0f3682f96e4a387350028ecdd] (r:1 w:1) + // Storage: unknown [0xd856c79bf100dc8b235a733d120ba3e6575dec83527bf0312a9f2ddb41f83df7] (r:1 w:1) + // Storage: unknown [0xeab25b78085c98a9b4688df96c04ef8b39158fd62e6e52e33590fb21c1328dcc] (r:1 w:1) + // Storage: unknown [0x0fd1b2d3599d3ff280c2880169ee61ce60a3df6183220f88c57c637f73641101] (r:1 w:1) + // Storage: unknown [0x250c74e6a150be40d25a748d04adebe88c1efbb9508443fd9655f88592a692d7] (r:1 w:1) + // Storage: unknown [0x7a2e58ba4d1f6ce180e06278d12bb8090221c0b181ba26f2b1a91897d312b723] (r:1 w:1) + // Storage: unknown [0x8e2c35f4209f4902ac5c733e6ac0c213ee089994c63ae8424be9fe625ce3d843] (r:1 w:1) + // Storage: unknown [0x9a7ca4148e063f02caaa764e89a6338fb598082b807ad2253127aa1ddccab5a3] (r:1 w:1) + // Storage: unknown [0xaacab268ca7cbb3c5a6c7030c43362d255f6cc408b83fd68b7ae6ee31ccb7e20] (r:1 w:1) + // Storage: unknown [0xb4f410c11de2e2060206ca18d5ff89d2bbf64aa94583a0693733ca98ca481b2f] (r:1 w:1) + // Storage: unknown [0xdbd5457c02ad4f1b32be421421b81cc926c4bf998df2ee94ee9363e74ea064c1] (r:1 w:1) + // Storage: unknown [0xea1bea5c24f8335580a71d29a7a773541dbd384134f88f11965ba6b3412d9ee7] (r:1 w:1) + // Storage: unknown [0x16e516ebd01eb6570a956dca7cdbd4a886a8c1509afb1d5dd3bf7102ac8e0653] (r:1 w:1) + // Storage: unknown [0x17ea99a7d60cbee014631f3438603e36ef7d7bf1bdaea7740f33079ccd219240] (r:1 w:1) + // Storage: unknown [0x36325a2003628d7ae9c30d6264688ba0ddf93c2dadc10623218a697ba807784e] (r:1 w:1) + // Storage: unknown [0x3f2edae08b19a7878d65c7245b7608ba1b6597e6d448652a89667ecaa2c10658] (r:1 w:1) + // Storage: unknown [0x4a325faac35d245e0eb3f57ab651ba6641e2617505390a4388ef08e2dbebb38f] (r:1 w:1) + // Storage: unknown [0x5e5b6c2bca3c4617a35b60ac68dd56733e2cacd9528658e086317d1e4ae33c10] (r:1 w:1) + // Storage: unknown [0x78dcf8ae0c638ce501342ee0e3844e77011fde109607e17d68e912c28b55afed] (r:1 w:1) + // Storage: unknown [0x821525922b4f0ceb302c003259c7f5bf65fffa46d17dfb4eb996e8b0647daec4] (r:1 w:1) + // Storage: unknown [0xf7417a27daa0204a3aa339f2c077a3eb5f90752122333c123c4e4ee31d8fb68b] (r:1 w:1) + // Storage: unknown [0x078779e40d3c775ac8c135ec9e505babb035597b3bb09fa7f789891997f0d650] (r:1 w:1) + // Storage: unknown [0x30fe9bfb3bd1e640e99769310b3c7cba2b47e8e8b783eb3d5893d6d1f59f8042] (r:1 w:1) + // Storage: unknown [0x337025af84c7381996544f1ac8cee4709c0ae9500a276f7031902d1096e7582f] (r:1 w:1) + // Storage: unknown [0x674985c60108f89ff55cab7c53a76fd7a9a334e8fb709477b2d9d18ee770590d] (r:1 w:1) + // Storage: unknown [0xc19e5eee149c75097d549f969006d7f8c7e797c836a15ca423a18a4a4432e138] (r:1 w:1) + // Storage: unknown [0xc9f9cd749702c3f010221d225bcf304e54e7f0e8573962d978edfaec4105387d] (r:1 w:1) + // Storage: unknown [0xd75d0226e5b4ac7a2728e0986dd018a8a6c88072fb927a56f9140a11831ea9c8] (r:1 w:1) + // Storage: unknown [0xf6a39d38e14007401941e32ecde9503b4d58efe10b3f676dce992266aad1abdf] (r:1 w:1) + // Storage: unknown [0xfadcf35d360cb1c5c2fb1509d65e6b1ad79083fdfe90b3e64fc7956f5eaee5dd] (r:1 w:1) + // Storage: unknown [0x129730fa94511f735b9910e2d640dc2ab0fddb29ac3442924dd2e27d74a55f1a] (r:1 w:1) + // Storage: unknown [0x1d1a6641ce7e5e6dea72bcd68828416a44cb06e3207d349b43c7300262ffbb81] (r:1 w:1) + // Storage: unknown [0x26e4d08be6a3b5bd814cd0aff1bba2e3b3f3f8a61e5dedd352c641795642d5de] (r:1 w:1) + // Storage: unknown [0x45fbad84e42f40e96452f652bdd233f71f67f6a1415b00551a21019033ba30f7] (r:1 w:1) + // Storage: unknown [0x4d52d448a046ee9690cef9539b6b7dc9a60b4e4b05c52f21c31c307ac1aef94a] (r:1 w:1) + // Storage: unknown [0x50f7e43916898de9a9387e19b0984a4be39e44b6fbb5212564c7299e92203fd2] (r:1 w:1) + // Storage: unknown [0x7009ee69684472410f9d454e8c4503e89cd3807e4f41ebcb142539db34dfc137] (r:1 w:1) + // Storage: unknown [0xd35a663830dbaeb43ac6bbbdd4cc221430a35aec509557262d4c5032789f78c5] (r:1 w:1) + // Storage: unknown [0xe1164fcf99526792f77cd4a96bba1367a01dc7847634f156cfd905d9a74c2e4e] (r:1 w:1) + // Storage: unknown [0x3f39a48558209f0501e7599c5ff9c872e6bf14a137ee40facefef94db4a038a5] (r:1 w:1) + // Storage: unknown [0x4b594ca9743d048965171e9cb071d25afbb428b6499893000a3c02143df1e98f] (r:1 w:1) + // Storage: unknown [0x6b2dc18de1c43eddbd70da532389561c311aa44c79b1df11d3ab579ca874af09] (r:1 w:1) + // Storage: unknown [0x764780a58bf2c1ddc3036bc739d7f11d6cb670c3e0409da6219d8dcc341e81ba] (r:1 w:1) + // Storage: unknown [0x92056e54539b0632e17ec7418c3e57c8ca3589ea2703bed64f879eecd4afab07] (r:1 w:1) + // Storage: unknown [0x959d72bdffb0754a9d28b1a31900a21da9519063a1d13c6b8e85328594c469d8] (r:1 w:1) + // Storage: unknown [0x97bab3ac046ded8556c371745f46b78d54df3f40d1c8435a1e534bbd3cc40bc1] (r:1 w:1) + // Storage: unknown [0xb36b2eecaf2da82f8b7fb4ca1f9dea513b57a56d30111386fd6d7e17d13c63ed] (r:1 w:1) + // Storage: unknown [0xe5ee08335dc8a0c22d49d7d07bcb6fa2a8aaf854a55a31831f7d97f4eef4d64e] (r:1 w:1) + // Storage: unknown [0x03c62116305bd05ac7512c6b685b88e8e33392886d0f40ddb332bfa33b7c2139] (r:1 w:1) + // Storage: unknown [0x162d04de4b5bf08c3f6cf14beb6c63bbbbded34d6d42e83072b5c3bde079f3a6] (r:1 w:1) + // Storage: unknown [0x2169cb6fc72c7d9940e7b09dd3e22cba0f3bc950b7ddc419e978052ac9b2a2bc] (r:1 w:1) + // Storage: unknown [0x24f0ed4b5bb87c45fcc018f89c8ff92fe012e9cc44433b1f63e709f9c1d6380b] (r:1 w:1) + // Storage: unknown [0x6d99f9efc9348c9fd2a7823e65dd7119afdbb1e8edbeb7ba5a985b13fb191745] (r:1 w:1) + // Storage: unknown [0x7999d569f1d75161e56c3b981d43dfbba27850949a7f3efcfb24d1e5df6f9c48] (r:1 w:1) + // Storage: unknown [0x81bff11208bacd1cc864311f5ab66579569dee60ed6970abfab7c629115d9b27] (r:1 w:1) + // Storage: unknown [0xc30095a93bd4d72ee547a0c4150a283d4ef43c7cc6b58c7636e0d01c6bbcf38c] (r:1 w:1) + // Storage: unknown [0xd098e22c1b866138b1f1183864ef282ebe5c68a9230aeea6651017e0b2ca7341] (r:1 w:1) + // Storage: unknown [0x39ffc5b547462d8775e1aff1de9bb2533140a0725e259ed2b0c4f589bb390e37] (r:1 w:1) + // Storage: unknown [0x3a20973d20cf9ad844d687e106a44030ecbf990dc74752c1e64079be511a4e06] (r:1 w:1) + // Storage: unknown [0x491b2aaafdf4d8c47364ef6b2ef92aaa6d6fd10eedb2f374c8d42f2410b0bfe5] (r:1 w:1) + // Storage: unknown [0x9aa6a1118d01d2733b707f5a2cc795547c33acff451c97d194ed627e3af70583] (r:1 w:1) + // Storage: unknown [0xba27bd0b26d49467574a0399c7867a70e1f99f2348dd30abd7b42eefa43dc2e5] (r:1 w:1) + // Storage: unknown [0xbe58a92b8383c2e39bd6b63cf4d92461e334037f9d2c64a42aeac1e06600bca7] (r:1 w:1) + // Storage: unknown [0xbed02ed125a0400cc9144307f2ad28c94461c694d4a9a89e4591cdfd4a7ca48c] (r:1 w:1) + // Storage: unknown [0xd4f091d4c1b7088764b59a48fa30bb063e83f0fce3e0031eb1094a84bdeaddda] (r:1 w:1) + // Storage: unknown [0xd6497bb219680b798aef6cfa92c698524c58732bef89939e8ec2c1a5068ff0f1] (r:1 w:1) + // Storage: unknown [0x38580239895995d2f930f08c6465fd3d02238f6214f82ed488d7c83a5698c145] (r:1 w:1) + // Storage: unknown [0x611385ecf73feedaf7bc17ab736470d9c8a8ce9c4e93e19a39d287a4c54293ed] (r:1 w:1) + // Storage: unknown [0x625b852590843c0b3b38d2cfddf64b8869c926a9f1a217b7df9cc290a04d3c17] (r:1 w:1) + // Storage: unknown [0x69ef3849249445b5033754475a36de695004f25d3a04a1873dc3449b4908aba0] (r:1 w:1) + // Storage: unknown [0x85bd68db5fbd69beb026aaf881413c97a190f1dd0bfb38375ec7bcd52448ee4b] (r:1 w:1) + // Storage: unknown [0x8d2ec8130e5f3628d22bfcae29d02f1635977d43b3e1a9e86f0b78c650c97ce0] (r:1 w:1) + // Storage: unknown [0x944fb8d1b6708dbaad846c06734df5c05aff0da9a466f6fde0881343b4aecd99] (r:1 w:1) + // Storage: unknown [0xa5ff5fc6e8aceea405f11cef80161ee2f2ca657c5c5a485eb44850404623be6f] (r:1 w:1) + // Storage: unknown [0xd27753d9ff5db15ed803d558b19fe57448af6287d51d57fc60c382db6342d41f] (r:1 w:1) + // Storage: unknown [0x23b01e79ab305a48fb81408e97c010865229bff7e39975a47a4617d1b70bde12] (r:1 w:1) + // Storage: unknown [0x32bca73cc5d28831b3d6b8b8343a6fca085fc96021ee55074c40a41b7ba20b80] (r:1 w:1) + // Storage: unknown [0x36ab36b371df875d1863acc3752b38a952134a7017537a0edf569a9dd58c86e0] (r:1 w:1) + // Storage: unknown [0x4efd4581164c5edb502b7b6a8b8e8b324deda1ea6e28e9e1e624defafeb097b9] (r:1 w:1) + // Storage: unknown [0x8f1e26abe053ae68a0744df7fe0447fbd50d14ade59c924dd4d2b70d1296b723] (r:1 w:1) + // Storage: unknown [0xa9d399f02c89a57e4ab0aca86b74d5c124974e19189f4a35a405bc57277d3294] (r:1 w:1) + // Storage: unknown [0xaab2936af1631322f597eeaf3c3ed16545579a4096ea72aa6c81aa6239367dc5] (r:1 w:1) + // Storage: unknown [0xd9687ab33fdb52c1eba4ddef1151e5c883c8b8ca4a25f0fbdc458a4a07202918] (r:1 w:1) + // Storage: unknown [0xe36d5d7328b4f69fc7728f89d71d36122896443ec8d85ce1c6945ac178f1c410] (r:1 w:1) + // Storage: unknown [0x0ce1c95f681adbe0583541264d7ff63606d71fc7f9a5056f9ce2ae5dbc92c8ef] (r:1 w:1) + // Storage: unknown [0x366897223e45040aa102fedaf30e54ae118f23510d9c2762da994d8e9eb37f8f] (r:1 w:1) + // Storage: unknown [0x65fbf6ee57a08d8f5407677ef0796630f71a75519462181854d44f3dd0d2e9fc] (r:1 w:1) + // Storage: unknown [0x7511f042605e429879bff0e9ab4466069665ce3b175ab9d9a235d4014604b4ff] (r:1 w:1) + // Storage: unknown [0x815c85bdfd3bb9d957e5a6738955e5a94024e27cea203faa4b984b846f3f07a5] (r:1 w:1) + // Storage: unknown [0xc383631f40436e078c9af767056802826e3f47183fd8ec00a5d06cf991b5d622] (r:1 w:1) + // Storage: unknown [0xd062d3018d16f1337e6aa46159c2085f4be01f700dce001c6248823b15d3a470] (r:1 w:1) + // Storage: unknown [0xe188fef7ccf953faa2185e2e9175bf3bca48aa36f3dd62b8161a75ebb34f19a7] (r:1 w:1) + // Storage: unknown [0xe7dd8a0e93b4c990c00453edf0c631b3ae4fcd7f1189a0b3d2e5c27ef824bc99] (r:1 w:1) + // Storage: unknown [0x0ba1e4e6d98da9611922932b095d435e39bcfd6babc4b9e89485f7f378cd6b45] (r:1 w:1) + // Storage: unknown [0x2d4fce1669eb402b2ec3f325de12e8582f8d9c77de9b5270ef6956203a8314d6] (r:1 w:1) + // Storage: unknown [0x89f01db4731551d533ba2108e036875e126adb7665bc5fddd4575716a36c26a4] (r:1 w:1) + // Storage: unknown [0x97dc9a3b2cc3aa9784021dcb200f09540dfdedb79f3d159867b97a75cc892a3b] (r:1 w:1) + // Storage: unknown [0xc20b40ca76d1caee1cc717d847ae6878857e35b45d47478ed7f1450c154c503f] (r:1 w:1) + // Storage: unknown [0xd0b010e2c3a992e7680dc9120b82fe6e8c3d160b997aa89af463bbdf84a6e2d7] (r:1 w:1) + // Storage: unknown [0xd35ed52d5edd31264c21a0c30d3994d5600b3e19ebb66d6f8099661d6dcc57c0] (r:1 w:1) + // Storage: unknown [0xf5b993b187b5029b7a30de61f1bce1be780f8790b3daf85742ec63b66f79cc80] (r:1 w:1) + // Storage: unknown [0xf98428e38450dcc80131bed1b84059f80938df6d2941d17917c968e553afa753] (r:1 w:1) + fn batch_unlock(k: u32, ) -> Weight { + (0 as Weight) + // Standard Error: 265_000 + .saturating_add((184_877_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(T::DbWeight::get().reads(6 as Weight)) + .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(k as Weight))) + .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(k as Weight))) + } + // Storage: Salp Funds (r:1 w:0) // Storage: Salp RedeemPool (r:1 w:1) // Storage: System Number (r:1 w:0) // Storage: Tokens Accounts (r:4 w:4) @@ -99,17 +613,8 @@ impl bifrost_salp::WeightInfo for WeightInfo { // Storage: System Account (r:1 w:1) // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn redeem() -> Weight { - (395_212_000 as Weight) + (354_497_000 as Weight) .saturating_add(T::DbWeight::get().reads(14 as Weight)) .saturating_add(T::DbWeight::get().writes(11 as Weight)) } - - fn batch_unlock(k: u32) -> Weight { - (0 as Weight) - .saturating_add((45_890_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(k as Weight))) - } } diff --git a/runtime/bifrost/src/weights/bifrost_salp_lite.rs b/runtime/bifrost/src/weights/bifrost_salp_lite.rs index a98db291b3..5756e80c5b 100644 --- a/runtime/bifrost/src/weights/bifrost_salp_lite.rs +++ b/runtime/bifrost/src/weights/bifrost_salp_lite.rs @@ -16,88 +16,587 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -//! Autogenerated weights for bifrost_salp +//! Autogenerated weights for `bifrost_salp_lite` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-08-11, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2021-10-25, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: // target/release/bifrost // benchmark -// --chain=asgard-local +// --chain=bifrost-local // --steps=50 // --repeat=20 -// --pallet=bifrost_salp +// --pallet=bifrost-salp-lite // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --header=./HEADER-GPL3 -// --output=./runtime/asgard/src/weights/bifrost_salp.rs +// --output=./runtime/bifrost/src/weights/bifrost_salp_lite.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_salp -/// @todo benchmark again later +/// Weight functions for `bifrost_salp_lite`. pub struct WeightInfo(PhantomData); impl bifrost_salp_lite::WeightInfo for WeightInfo { - // Storage: Salp Funds (r:1 w:0) - // Storage: Tokens Accounts (r:1 w:1) - // Storage: Salp CurrentNonce (r:1 w:1) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) - fn contribute() -> Weight { - (122_561_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - } - // Storage: Salp Funds (r:1 w:0) - // Storage: Salp RefundPool (r:1 w:1) - // Storage: Tokens Accounts (r:4 w:4) + // Storage: SalpLite Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn refund() -> Weight { - (139_712_000 as Weight) + (95_159_000 as Weight) .saturating_add(T::DbWeight::get().reads(10 as Weight)) - .saturating_add(T::DbWeight::get().writes(8 as Weight)) + .saturating_add(T::DbWeight::get().writes(7 as Weight)) } - // Storage: Salp Funds (r:1 w:0) + // Storage: SalpLite Funds (r:1 w:0) // Storage: Tokens Accounts (r:2 w:2) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn unlock() -> Weight { - (99_237_000 as Weight) - .saturating_add(T::DbWeight::get().reads(4 as Weight)) - .saturating_add(T::DbWeight::get().writes(3 as Weight)) + (128_872_000 as Weight) + .saturating_add(T::DbWeight::get().reads(8 as Weight)) + .saturating_add(T::DbWeight::get().writes(5 as Weight)) } - // Storage: Salp Funds (r:1 w:0) - // Storage: Salp RedeemPool (r:1 w:1) - // Storage: Tokens Accounts (r:4 w:4) + // Storage: SalpLite Funds (r:1 w:0) + // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Account (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0x] (r:1 w:0) + // Storage: unknown [0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0] (r:1 w:1) + // Storage: unknown [0x1793e0dee28dc36e243edc2691a5a966f4c15d0d4d432426816fcdad0229ee46] (r:1 w:1) + // Storage: unknown [0x262b3fa18a914183e88378d5601925c49b7bcbf07101f6a73b1e7c38b6c23d23] (r:1 w:1) + // Storage: unknown [0x273401c6dc3eb9f6a74a2f7181b1eef87e486620f91dd0fb5ed0ff69747447ae] (r:1 w:1) + // Storage: unknown [0xb2233113701bdbed1e43339a304e77ade52c7b0204a5366dba4c12c9c1a90811] (r:1 w:1) + // Storage: unknown [0xbcf11cdfc92c4bf5c40d1adc80e83b0c91148a8079347419a0890363e3e0186c] (r:1 w:1) + // Storage: unknown [0xbfb77688785d1f34aaea15726de0f743afd4cd1eb8a9b2f03ec8f6cfcd2c1a8a] (r:1 w:1) + // Storage: unknown [0xc040e64ae303602c545b547ce74b24952443cfb1ea9c77f6fd49c41efcf68102] (r:1 w:1) + // Storage: unknown [0xecc728efb63d13c538d0122cd7dba2964c47c6750030158f57908845b086ca70] (r:1 w:1) + // Storage: unknown [0xfaeaef9ced7ec5a1f1d74d225cf03d269643a95c94a2892c8184227481765683] (r:1 w:1) + // Storage: unknown [0x1e14f015894dbfd07ff4c7907acc885a26b4773a7f5a907e73d1e916b7059d2b] (r:1 w:1) + // Storage: unknown [0x31363b6a3c3285cda230e1c805b99e473215cf1f2446ae76c616ab164260fab3] (r:1 w:1) + // Storage: unknown [0x57a81f30e61dd3e10fc6529335e4462cfa2bac1eda902566c924437cbe25360b] (r:1 w:1) + // Storage: unknown [0x5852d9d9072edcf8c92059e5fd0db36dd4462052ab7cec264b2c7d199d50ac3f] (r:1 w:1) + // Storage: unknown [0x63ae89fe4d673aee0b2ce473376da36c60dbd3edc5a7608cb4cf311cd5e0d635] (r:1 w:1) + // Storage: unknown [0x70c0824966fc4dfe90a9740b284e131eebfa28cac4c010724376afaa88fcddde] (r:1 w:1) + // Storage: unknown [0x7d1a7c7da2798aac8bd51675f08ddfb11a44ada2c5d5a621493d6ba35b9c3caf] (r:1 w:1) + // Storage: unknown [0xaa3b015c528422deb5b272951c9b21f64439baa57d273243f378ce9d291a30c9] (r:1 w:1) + // Storage: unknown [0xffa01c2b1e8481410b1207bac0e1f357e41581e001324873c809b383c16dd8b7] (r:1 w:1) + // Storage: unknown [0x19b003210a923977355564d664c01287ecfe83be2d465f5e99d3c03105fc2ab0] (r:1 w:1) + // Storage: unknown [0x2c1108b7cbe36e4a037eb29c204116b2f5fdb9da2635802c4de3404053c51d77] (r:1 w:1) + // Storage: unknown [0x4b6f8a87cdd23768e3dfce3ee7a2614b998a767e39035e94344f0a6089c0c4c5] (r:1 w:1) + // Storage: unknown [0x5ab0d964adf1f6ac3436b3b9e171a345ce07f01b0b35fac58e780d0dcdbf9e4c] (r:1 w:1) + // Storage: unknown [0x670d01023ac8c64b2c3da33e1d19c36c4eb1981b46571225c472841fef9e702c] (r:1 w:1) + // Storage: unknown [0x9a794f2ba173e4d3987f32b26f23634bc6a1ea6ede13756210243f026d395864] (r:1 w:1) + // Storage: unknown [0xc2c3cf3e838ea0936aac2272be3da5b1258dc53931e63045fda2a4e61cc9897b] (r:1 w:1) + // Storage: unknown [0xcbb519bbda43dcb93203c892789842e2cbf8eabbde279832fd91bb8e4fba31de] (r:1 w:1) + // Storage: unknown [0xdd8302d27abf6dc2270eca7a21b5b7af02495e7a2c33dbfbdedd421ecd7180af] (r:1 w:1) + // Storage: unknown [0x035c36e54d78f5a657005187bcadc31d6dd01bc9017ec5e1a479a673964346e6] (r:1 w:1) + // Storage: unknown [0x0f9ffb8ec2a1a1dd8bca07156eeebf830debcb4c345cd72d7377c31f98eab91a] (r:1 w:1) + // Storage: unknown [0x30ed371d94305cd05ebc3278d5faafa023b26db1fbecdcef3d2b9fab82ca8c27] (r:1 w:1) + // Storage: unknown [0x38ef26608ce2d8c63881c1957367989c990a9333cde334da98e5f5661668fea8] (r:1 w:1) + // Storage: unknown [0x397eb4b5c8440d7a1ce08239fb58b1c22700484295d3521198f162562ae772ed] (r:1 w:1) + // Storage: unknown [0x47a4353adb1bbf8f6f65faf93d0a56282d0cbe38db077ce85e35e3f466097a73] (r:1 w:1) + // Storage: unknown [0x4bf4fcbfd0cfa9763b2c40ff5957889c326f76e0ac3e364b6da7e28f3cb89e50] (r:1 w:1) + // Storage: unknown [0xd60aed2c8769890ed9d6fb94170b46fac79639c65d0dc0289340a62e86c4d831] (r:1 w:1) + // Storage: unknown [0xe92b49436c78a30d1aae41c733ac088a70a8ce9a306725618f52bdd4c4c07501] (r:1 w:1) + // Storage: unknown [0x2a8e3ae3f7519353a0e8a85c5c6d897cff5032bd945dac42e09ce6e310c143f1] (r:1 w:1) + // Storage: unknown [0x30397d885abd14d5eabc75a21e336852ac3dce3879a83b90035ceb2d607ebee9] (r:1 w:1) + // Storage: unknown [0x37c9fbaffb8eb93dc54894e8378d4e185a69e1157561a98d059657eedf5b2670] (r:1 w:1) + // Storage: unknown [0x3b24032554271fa66764953ae519d33a87bfed97231b99cba4466b3dbf99908c] (r:1 w:1) + // Storage: unknown [0xb9698194cdd5645046662d66f4a3279103508d78c9978ec54b154d42534763f1] (r:1 w:1) + // Storage: unknown [0xbba68e0920c2c5bd3487b448919c27a6867c5ee7d6699b713f56a90a651614ce] (r:1 w:1) + // Storage: unknown [0xddf83f4806c915fd142e344deb063eb5ed5721772a4feb56cfa469046d6edba1] (r:1 w:1) + // Storage: unknown [0xef325b1c8537772ada5b06519f8929f3ff049d0c09579a739a18e50370700c59] (r:1 w:1) + // Storage: unknown [0xfe2b10355a2516b8572175f4e3ef8ba8687cca3fee426b3b80bb1b8db4e08564] (r:1 w:1) + // Storage: unknown [0x2a8ec737d3db7565d0f4bbdc6f9c253d1e534f9b468d0402110d12658d50116e] (r:1 w:1) + // Storage: unknown [0x2ae6a2134fdcd8ca414b654e56361e6ac92a4674ce055ceab01fd3d9e5a204e0] (r:1 w:1) + // Storage: unknown [0x3016a40a91959adc6086e79a17cf8ee2f9e038f8d5250c724aa627c2fed9f47f] (r:1 w:1) + // Storage: unknown [0x323d73caf3f762d77ae5193f9715f8703d6bd2f3f19626fae62e7bcfab07b767] (r:1 w:1) + // Storage: unknown [0x816bb2f6c9cceafebee78babc8a3c8095aec357db1b8b6e5a4ac832492c469bc] (r:1 w:1) + // Storage: unknown [0xa50750b066f781e63bccebb57775f9d3ba7b44624bae77b9997d2a4bb80fa8d4] (r:1 w:1) + // Storage: unknown [0xa6691dea20613080f29237be39585440a5c37bd78cb3075e9f02c903b03f1e29] (r:1 w:1) + // Storage: unknown [0xc2f159a33d7f609b890d30c9af2422967c2423865bfc1d31b26046cba4c2965a] (r:1 w:1) + // Storage: unknown [0xeae0a2566b6ac214cb5298a9a8e160b8c5d467ec2543b4a6c57c31a166e082a0] (r:1 w:1) + // Storage: unknown [0x0255fb7cbf688b17898bda454f34de10cd5864bf0c9938ca898013d8c04bdb06] (r:1 w:1) + // Storage: unknown [0x0caf43f6381fb628135727230d6c750ed6004e34a8c1bb3b4f208b4819cfcf01] (r:1 w:1) + // Storage: unknown [0x23711525360aeeae0643bb1db76a386cd0cad86ecc96d99bc2d55691b0bd6d09] (r:1 w:1) + // Storage: unknown [0x314275cc77a136e89b93f70dba690912ed9927c4be09fcf7d3ad6aafb38b4b5a] (r:1 w:1) + // Storage: unknown [0x5caf00cbf2d1e5f34267b787f8515e50ca011dd67273439e2f8be3e16d1307eb] (r:1 w:1) + // Storage: unknown [0x9599e8bb6188bfc0f66c0769a7b882d686ac4de6dd64244ad3444622ee2dfa12] (r:1 w:1) + // Storage: unknown [0xc37c05727fbf73ebc724a77289e362dec9b0c3f15a3766c0ce18ccbc35abf0fb] (r:1 w:1) + // Storage: unknown [0xc7a39567e780e01f5132b82054f6b88c3fc3976dc07abf06b36f1cb3818bc45d] (r:1 w:1) + // Storage: unknown [0xcc9b77338ca78833152ff0221eb0d68eb8630515a262d1b76bbfa55c2bc0cc5b] (r:1 w:1) + // Storage: unknown [0x388cf112e930ffac757fd416bbfa6976ea3ccb42a573b182faa41a5d4e2c764a] (r:1 w:1) + // Storage: unknown [0x496ebfd4773f19bb23b23b5d22e17d1a95c575eac659ac5c01943f01ab7cd1ff] (r:1 w:1) + // Storage: unknown [0x58bc2d38e66911c6539e2e1e265b69ee36a7d5f2d9dd82b0688d45bbd64f7e6f] (r:1 w:1) + // Storage: unknown [0x847ff6f6158483969d76e0b4114493657e4d9a92008c04c4ead16fd1405fb9c1] (r:1 w:1) + // Storage: unknown [0x9388f896df5ed34ca45308f5e5c81cea93e24bd85d42dbef1e8a704c81d38b9e] (r:1 w:1) + // Storage: unknown [0xb79d749059601a3d8c72ff43e58db5f8d24bfd35228be610746544b95669a347] (r:1 w:1) + // Storage: unknown [0xc7a2a8698a7345317f4dc279d7840841c25358906c915e7ca5b8b4c09ccda808] (r:1 w:1) + // Storage: unknown [0xe5b92f2f3cc3b0ad16d1157b61df06abf15de6f133d6dee62d10f7ac45f85cc1] (r:1 w:1) + // Storage: unknown [0xfcbd15685a27928b84290bd6a4e893ad56ba73df7149a82091a8b37b502cbeb0] (r:1 w:1) + // Storage: unknown [0x0392a02d23fecb158ac27d3c28a51f0686024a9841e71710c66bcec6e29f8e0f] (r:1 w:1) + // Storage: unknown [0x2a00f03d467cd9683a9be7c4a8613015086dd05f6a7bf9a2d3bd4ef478732936] (r:1 w:1) + // Storage: unknown [0x3231b5f56292cc339ac941159eba4be941fdb8efa47e43cb28e1bb5c4266817d] (r:1 w:1) + // Storage: unknown [0x42d69131243a9e11dbe162524864c388a81a2ae550d66076b7864623c0f645e0] (r:1 w:1) + // Storage: unknown [0x586e8e7e98386d6dd27217632dba2d8314a0eca72a42409ce07a31f0638cb92d] (r:1 w:1) + // Storage: unknown [0x5b8abb2b3dceca152086f6d22af03bd1e425f7c04ad31db49e862770f394d25b] (r:1 w:1) + // Storage: unknown [0x8af99dd7260367cbf7bcbc222a092d37a2eaaeb75dc9357042d393f8d708899a] (r:1 w:1) + // Storage: unknown [0x9c16707397d0b463ed30c3826c42efe3eac8cb571c4da3b41809ddc81b0ee787] (r:1 w:1) + // Storage: unknown [0xfd9a4d435d8028aed79ecac41ba335234585df62d5d2cba54569df84da6b4b8b] (r:1 w:1) + // Storage: unknown [0x1d7d044749500157cdc9a315eaf3843cd96eaa0b8c081fd14ec8dd6e6b98ba55] (r:1 w:1) + // Storage: unknown [0x240a4e8b59a1f7d43a38a3846eaa3d638461dd509da91ec7fdd560f3afbd3c87] (r:1 w:1) + // Storage: unknown [0x63fefdf2bc89739939d368992763fe514b8e9138eb5934a64c1d0d41e1e5d7f2] (r:1 w:1) + // Storage: unknown [0x7366b11aa7e0a7a6a1bff6b1ceb7e328e840ce5494f957ee2516a439131210b3] (r:1 w:1) + // Storage: unknown [0x77682073647ac00a2e2a19c45db7979db0086d206067193b2aee81095c5500d2] (r:1 w:1) + // Storage: unknown [0xa21de1e492bfe777e3c7327fc330a6ea7dadc7d19776203e7459d34167f1b434] (r:1 w:1) + // Storage: unknown [0xac686fede961a86d2ef3223cf1c1ca6ccd9cae19e6c6362cced13401e16075f0] (r:1 w:1) + // Storage: unknown [0xb03b1adc3c8f79cdc660c09a2db4ceabe6a1a296f58eb9661dfd7d4b09eb8f1c] (r:1 w:1) + // Storage: unknown [0xe37317823a93ff9fd7a417342622ae0303245a4070e5e1434963e22f9ef7bc9e] (r:1 w:1) + // Storage: unknown [0x3ca470713b4c72106c42b22ddd848ea50dcdb3532d81b5919e496fc2ba5e4c43] (r:1 w:1) + // Storage: unknown [0x52861333b2032b6d6c01e2ae23614f208ff6444e653e17f2a09aa6b770314e20] (r:1 w:1) + // Storage: unknown [0x7a0a59a42308d5bd214941d6bfa806bcf0c15326b8298fa34493111c773604a6] (r:1 w:1) + // Storage: unknown [0x8f1fcdcf13d1ac4d60f551970f84a6f83718709b89698940caacface75bf86b8] (r:1 w:1) + // Storage: unknown [0x90de7d39f8f140e75d6c2a4cd171e0f7679030148ddf3c27d0d51719f8b46d3a] (r:1 w:1) + // Storage: unknown [0xbe13505791367e4b18783b822135776d73168dd0e8459649b93b4afbf66a47a7] (r:1 w:1) + // Storage: unknown [0xd5a45cb71afb47663c7931bc609f18203481124c132f5a2c00677a5974ecf8cf] (r:1 w:1) + // Storage: unknown [0xd82869ba4c71f32577e4c9b0b3b03e7c78b7ad7752b0f4da522e0db48d4f29a8] (r:1 w:1) + // Storage: unknown [0xd9b56a5d56fea4601b9c8eb74d156a75737ec2c23ddd28325553efa98a89849a] (r:1 w:1) + // Storage: unknown [0x63a9a48dc9889dcdb542e4756ebfe4fd4e151eedc944cf8fce8eed831e625213] (r:1 w:1) + // Storage: unknown [0x8946ef807fd99c2bb0953b4329d2881bdba2d01150e10f92b352953a60ae55de] (r:1 w:1) + // Storage: unknown [0x8dcb2165b826e2e8255fdab745a4be6833ad397ed714d95b2b65b2f971eb163f] (r:1 w:1) + // Storage: unknown [0x9b808e8559c3e77acd148d550f1bec8b5b3dae546f9dd31af9bcf7a66c4f7702] (r:1 w:1) + // Storage: unknown [0xaa8236e290b748a5df7ef66c11fb1bb74d584454be8b9a41760728daa291fa3e] (r:1 w:1) + // Storage: unknown [0xae86dbe88589fd0c835ec3ad6bc60af179ac34606cb5ef83d0e88ca2ec566aa7] (r:1 w:1) + // Storage: unknown [0xc614ff510337f671dd38dc2e8a682712d98a56847ba391356fed764345e35b26] (r:1 w:1) + // Storage: unknown [0xd5f29e9b3e39b0acd8c0553df2d51ca8650ffc86db593503d3e4a44467e3fb01] (r:1 w:1) + // Storage: unknown [0xdbafc2262c1f2f19c1175f138897165b774738d2ed51fe68701b0699f99aece3] (r:1 w:1) + // Storage: unknown [0x0778d7501991b13132ccd11471c817ea12d8c854ed0001535bb6ebf6c32aaecb] (r:1 w:1) + // Storage: unknown [0x092911fd1f91e76d07387555c0918a3a5e0e4c74e363405fd7af1659d89400f0] (r:1 w:1) + // Storage: unknown [0x0a04d087381d5acd884e1d64245af63561c7c5d1a317dca5cc3b4fa8fa631566] (r:1 w:1) + // Storage: unknown [0x189a7edf15097613065c2730b8ca2b8a250ed384a688f428539fe261b11113db] (r:1 w:1) + // Storage: unknown [0x28803fc1d667cd700cd1eb6b5e11a34a295a85b41cafd02086660f40d148dbed] (r:1 w:1) + // Storage: unknown [0x4504d19a2b788dab7f5c0c69c730fd64cd195c1c4d34359c827b7679b264cd18] (r:1 w:1) + // Storage: unknown [0x49c795e8525c4ef9c48fb6086cc2faaeef0a6182607b9fc944bcf4219d05b612] (r:1 w:1) + // Storage: unknown [0xf3fe2278bb1690c33583cc1b103aa0d9d397b50907767735319bd5d46f7bbb93] (r:1 w:1) + // Storage: unknown [0xfe68284f9c5354e6bbba0d09bfcd5e372c0ef4a66b8819b5c86021debc679208] (r:1 w:1) + // Storage: unknown [0x5442aefbc03aac1f97f6ecfee26cf9c8fa2e8cf7d366c3dbaf640a2ec280cc8e] (r:1 w:1) + // Storage: unknown [0x7afdb74eaec6f0c4abe2bba629952769e61f234e47b9f0617dde6b5fc7a06980] (r:1 w:1) + // Storage: unknown [0x8305f933e51efc14bf29b9a8996a86bb750f46699f3bb422175be5ebf16dbb50] (r:1 w:1) + // Storage: unknown [0x914c3991677898e736196d9cf3e8ab7acb205247fc645c5a576754bea40d261e] (r:1 w:1) + // Storage: unknown [0x9b98126a54cc090ed6209e6b8b53d474e5c9948f2f8c9f431d0acfb915d2ef59] (r:1 w:1) + // Storage: unknown [0xa22d1ad0661f6f3889c1cb28ae75e54c2efd41c154d41e531754bc1633d18ffb] (r:1 w:1) + // Storage: unknown [0xb19461f65e09aa3db1742d4ce3c8e92326bd1cd474234908dc97be6da9e8bbb4] (r:1 w:1) + // Storage: unknown [0xb965ddc866cb308a73a54977e01d2993cd881f57e8258800587562d292b75716] (r:1 w:1) + // Storage: unknown [0xcc6e350018b598b1e16ab4f9a46b3420e9f2142b90b35a9dc9cdf815168b127d] (r:1 w:1) + // Storage: unknown [0x03f78a0ae86588eb9fa56342a1bce9092937c05e97bdc6123adf5ce90fa5a3ec] (r:1 w:1) + // Storage: unknown [0x1dc502d3e93e9fd47a41ed20ccd7e59e0c03fd0d361b0815b9fa749ee4014ed6] (r:1 w:1) + // Storage: unknown [0x29546c1c2a4489ecd2a8d4fe12a11d2512d43e34e3eff69718c8cfd2d3d0071d] (r:1 w:1) + // Storage: unknown [0x3d3d028eb048ae2cd4e82e5609f3b86fbde4153442df785e8d3ca8bfed2cf4fd] (r:1 w:1) + // Storage: unknown [0x525c0fea64cf4d9c8c7277df429077ae9c31bcc34f595bf21c0c6005cd1cf001] (r:1 w:1) + // Storage: unknown [0x7159a7481a485dcb603f4ba2a225bdf00e0f04cfcc6690498480bbd6c90dc0c5] (r:1 w:1) + // Storage: unknown [0x8dc8b29d47360bf65fb984a859eb9564e5b71ab96829e125e5f64819f6808a70] (r:1 w:1) + // Storage: unknown [0xa073b6d6ab9a4070ae3ff167f9ad62342deb60c6b6d23dc99f038638fb8cfb4a] (r:1 w:1) + // Storage: unknown [0xbf1b7e1e75f5a090f8277557bf6f6c559a442c49828b938903351a8decf966be] (r:1 w:1) + // Storage: unknown [0x02c87740582a36cee9aec75d96945b7e2e89a5f613e85d1da7a7b6b511bc0646] (r:1 w:1) + // Storage: unknown [0x2f233781c2eed5e66fb637a747439e21e11db72c26eaacab3d0d2da11661513f] (r:1 w:1) + // Storage: unknown [0x63ae2203e6ee8fd038b677462121d5a15ad4c83b3a0abc9591fe31ef094b8d11] (r:1 w:1) + // Storage: unknown [0x732928ef558ce73c389b9858c3908ad4b784df1df5506d851c4bedbe0b93c42f] (r:1 w:1) + // Storage: unknown [0x804b85d6cd00f0b59bee93e1ca95795594986d0325364905b1e1e986759b7f3a] (r:1 w:1) + // Storage: unknown [0x9b9b935c5d7385ea63f1f4d8f4fba9ca77333c522b93f69456cf9e3d2b95735d] (r:1 w:1) + // Storage: unknown [0xce90a43f168474d0d85e7fdc662adb53320a85bac319d97abf9aa53fe4736bf1] (r:1 w:1) + // Storage: unknown [0xe7d911018d6fbb1c9c94e9325e4593bf276a2cb3a3cc937c80f0ef4c9272433c] (r:1 w:1) + // Storage: unknown [0xf3dd9a6cfcdb9127c2c114548b1b0826f0bb1d27e6dc0b7933d85672d937a514] (r:1 w:1) + // Storage: unknown [0x014502832fd6542b9131555c82966f144f62e8de7174ebacfd0d0ff2cfbe9a79] (r:1 w:1) + // Storage: unknown [0x092ff3743bbe2d8dbf8cb90c8a760389484b4e730be0323f51d85f43477c9878] (r:1 w:1) + // Storage: unknown [0x168bda7797ae0f4cb90fad3e8879e16edc5707b6f46e95aefc014cf8ced6e3e3] (r:1 w:1) + // Storage: unknown [0x51bae63e4129f50b542841d912a335ec8573a8aa7f46362d4c093a8b61eb1929] (r:1 w:1) + // Storage: unknown [0x811eceac5ad0b2648804d685b2e0c3a807bf67d12a3b54fd9dca9a078be98048] (r:1 w:1) + // Storage: unknown [0x945f12d2abdd23e5bc7f91524b6dfd2bc296834ab5bfd9d2e124b467a714cf1a] (r:1 w:1) + // Storage: unknown [0x9bc2e45b52e764017a0a322a586a1e37ce2a4afb239f8c6cc73dd0da76818a86] (r:1 w:1) + // Storage: unknown [0xcef2f93165875b8dd6caf7e5f8056cbeeed8b010b5b03b052df14f5e36156922] (r:1 w:1) + // Storage: unknown [0xe737bec58619859a19624d9cbe60e1848f339cbea12d5cd3fbfe5ef02def791f] (r:1 w:1) + // Storage: unknown [0x1f24f16f939428a33d5410529f11f7a573d2513df7a830f85551948fbf547fdf] (r:1 w:1) + // Storage: unknown [0x2eb381f6b73f0b9300d94f4f0b50ae4b35a5ea2ef407d796d95e4715d42cf940] (r:1 w:1) + // Storage: unknown [0x42ff8a2d17d124e2b40684c3c9ad8e1e9108b416eebc47ef183909b0952b32c3] (r:1 w:1) + // Storage: unknown [0x9b9b4d9443a2b5010644690956503eff1fa73d4fdf61c981aa4762a71a78877b] (r:1 w:1) + // Storage: unknown [0xa40fd6fa12fe90cd1a630001d90f83b12f442f9e8f508919fc8605685386f9b8] (r:1 w:1) + // Storage: unknown [0xc0847c2ed89d0e133347393fcbe8ccd722be616870187ec4c2c8c1fc14d16900] (r:1 w:1) + // Storage: unknown [0xccd6e6aac2c49b2ea854411986569e0f8dfc90e92065a2028c47c57e04669306] (r:1 w:1) + // Storage: unknown [0xef83243496cd71f9414a0eabec74b732a2e5b3cfb8c038f2891f988e0753555f] (r:1 w:1) + // Storage: unknown [0xfa2081d0272500dd465f66e48229eb243ec7aae07a81437c33f7042ccc273c90] (r:1 w:1) + // Storage: unknown [0x029de76adc7295ed41bbe6c450f4c7cb4f78f9b9a7d3edf67994cd6b1f511a7b] (r:1 w:1) + // Storage: unknown [0x11a2c57e147ad91b425775b77163fd83fd7ad15aa13f6ba1800fb0d486497868] (r:1 w:1) + // Storage: unknown [0x4874c9cd117e7a33a80fc59628c503e94be9296da73a8f463f2d40e0f044e11d] (r:1 w:1) + // Storage: unknown [0x629d17f361203449a9f588968037b3f8f170ae2687f29519aca2616228eee2b8] (r:1 w:1) + // Storage: unknown [0x7f192102f64f68a23e9de1a8e4c13c6c1ea1871d4d283046c9a431d758b1938d] (r:1 w:1) + // Storage: unknown [0x847cf95e67d5fc3da1c782f50c01c28cc75a458f8b3c1312d1c13f1f7cb8cff8] (r:1 w:1) + // Storage: unknown [0xa978a38b1ea1fea358dd03cba3280630218d4d52f3c5da9e0c728084df42483a] (r:1 w:1) + // Storage: unknown [0xc1948997f3e5d401de1e1d83cd6ee6b6c066a1ddca76c812bcc1c0c72e96b5f7] (r:1 w:1) + // Storage: unknown [0xf916345caf4690064d760040f4f053ab3ae8e675038cd67c4ae0b6df90fec567] (r:1 w:1) + // Storage: unknown [0x02d22f07ca8b30c749e4e5f6f724014e31e29e62579ef725a8d4a65069ac411c] (r:1 w:1) + // Storage: unknown [0x1c3356adf4350bf3bdedd5749147d18f9caa996e7aeb2033f1afbd010b912c4d] (r:1 w:1) + // Storage: unknown [0x38bcc692c3b7402da5bed46cf8e1a7c10b223116cdf1a2f4696df2b48f11122b] (r:1 w:1) + // Storage: unknown [0x48503bb95dbc5310a682c67b6f2949a8fa08f1e45418eab1a054dc6d919c9ec9] (r:1 w:1) + // Storage: unknown [0x59474766bbcaf25024437f6352f00a3fd5d1e6979bab6d456c0934178b91252f] (r:1 w:1) + // Storage: unknown [0xb4acf66b46284f06be1c289acdbb3cdb81f0c376478257695c16448daf064cf5] (r:1 w:1) + // Storage: unknown [0xb7fefbad6c8ea1c6cc0ddc69253b2e5f2c8905ade22c32c07368b7d686fa34b2] (r:1 w:1) + // Storage: unknown [0xd4722610951697839b4d9d8c6af980583b0198eae3053f9c732e8d94171ad4de] (r:1 w:1) + // Storage: unknown [0xeb34374c15d84b2d704c3e841453dbb1b8a05998e466b62e137646684823ebb5] (r:1 w:1) + // Storage: unknown [0x1f70aa6c83dd98f810dcaf611bdae5e011e5bc715d823e419c1e7e1943cf6f89] (r:1 w:1) + // Storage: unknown [0x302b1758e1ac8d5f9e8033966aa4f5c7e77512e1218b4b670afc098cb8c1f837] (r:1 w:1) + // Storage: unknown [0x31a782760fa7b79819505ff67e3a779a44efca82364dac907dd7bdc2692ed2d0] (r:1 w:1) + // Storage: unknown [0x4645cbc2f008fe9373ffd704ab8289810b5c10bba9303331e41c627583256adb] (r:1 w:1) + // Storage: unknown [0xa5c276fe36330f279b5fdc38a1a74a3dba974c7d819ef03cdb00ab5fad89f315] (r:1 w:1) + // Storage: unknown [0xbaeb1685aee142cf6d46f5929cfb222b8783de3b28121a7686c007c268785951] (r:1 w:1) + // Storage: unknown [0xc83b05e6f372fdf597b0f10cca15a53a5df46a46316bc5637dba4d0cd829b593] (r:1 w:1) + // Storage: unknown [0xca62e9f75f02064c89bf8c2d3e396024ca01ccc2038daa2a6fd2b5081bdd404b] (r:1 w:1) + // Storage: unknown [0xce880731cb3814ea9563bd0333b5eec23d7b3a3bda6375d75a2eae72dc15e18d] (r:1 w:1) + // Storage: unknown [0x33e9abdb07e28ca62cc53735e1627ecdacb61f748503df59cdfdf92fbc55f30e] (r:1 w:1) + // Storage: unknown [0x49d2ae779e34bfc15479b8613feb8c379c95173dc593fa66cf743cc079b790de] (r:1 w:1) + // Storage: unknown [0x49d7358ca22724d5c54acdf7fd593eb1908c6cebe3202ac07880236aa12dae56] (r:1 w:1) + // Storage: unknown [0x60d5c55c0e3c2d71a5bd70a177e22166fc205a6d69673bdf7f730469690a450c] (r:1 w:1) + // Storage: unknown [0x80bfc26d07f5767e0ecaea78cb96adb509bb879357342cbfce4a71edc370c30a] (r:1 w:1) + // Storage: unknown [0xc00905cda576b91dc0362b6770fba56e5324c650e43eff1503a2802a4e056ea3] (r:1 w:1) + // Storage: unknown [0xcd15694f12f82b6eb2df1f55e20bc431b37e88b006a1e8861863fae26134a9b1] (r:1 w:1) + // Storage: unknown [0xd5873d069c99592802c0d4da14a20afa74109019f9d47b766637fc5cffbe2a01] (r:1 w:1) + // Storage: unknown [0xe2457ea4be0b54d78eec228c73f68a84e316f0b5c8516edc1791d6904338674a] (r:1 w:1) + // Storage: unknown [0x145db170b8204d0c5e31ac757be2ab626b628419ea745e8b75c14cb606f85100] (r:1 w:1) + // Storage: unknown [0x5df05b79602a7278a9b2c04514eeb33dbb923ce016bf90bea1cf81744a445535] (r:1 w:1) + // Storage: unknown [0x986b7f7212341d0c17047a84e41b842c917eef7b6a038af4e3264b803250c2c9] (r:1 w:1) + // Storage: unknown [0x9e6b5952d5c876d0e88532a69519a2bb2ea71ae4eebb4492c16b1192966e8354] (r:1 w:1) + // Storage: unknown [0xa6a946a4cd6ec4adec7a3a5ca20fe7f83015cbcf5d60bf35a27aab38bd8ec72c] (r:1 w:1) + // Storage: unknown [0xb3af15676dc7ff5955afad0f4f764a9e508af856855249841e439391b3bb0098] (r:1 w:1) + // Storage: unknown [0xcf1b3bc717b8e7905f01d0e2531b92b4e292dd724fa36fef6e83b194d92b806f] (r:1 w:1) + // Storage: unknown [0xdcc77b6cade77f9f73e151eb609dc510f3437777635d586cbadad6b96fa0d8c0] (r:1 w:1) + // Storage: unknown [0xea2d58c504ca7bb0df13c1c38ec94349a9175e39c606bb5d5029c9cb2e15c387] (r:1 w:1) + // Storage: unknown [0x16b5c4b24af1dd526291c2f81753f92a092ed37320f17bfab12184400f6a9f50] (r:1 w:1) + // Storage: unknown [0x26cb13235a11327b22555f3512c737b9518cf8205371033bac55a0e89a85994a] (r:1 w:1) + // Storage: unknown [0x4a9753b9eeef39fd60c9559e3468ea605cbc03fcd2faa29cbe63e799c81e8469] (r:1 w:1) + // Storage: unknown [0xb6582ae0991727fc0bf192047d16a31f5e4cbf90321cea9d3d49b9e1b5407dad] (r:1 w:1) + // Storage: unknown [0xc0fa605b92057dee3e77f6dc0c6e91621d09d8b91c5cfafdbcb38830960e0bdd] (r:1 w:1) + // Storage: unknown [0xcf2e8ba860b7041752b2b1fb8e0360d1b40fd41617c7934746bb1e244c77016a] (r:1 w:1) + // Storage: unknown [0xd08934b7a2d1ee349de3ae53bd2286b123adca84023306014c2d75c822e74af7] (r:1 w:1) + // Storage: unknown [0xe5985dffc1ac88a03cd7a8ea79d35d6813529a692a9380a2ad04fc0db20c0e05] (r:1 w:1) + // Storage: unknown [0xf00871f755719a8c1ac33f2fa611c1736e64a16e450bfea842baf8d9114d7041] (r:1 w:1) + // Storage: unknown [0x2d86b69fa25bcdbc7a3ad6cb76e12641ef01e00dcacbf31ddde60d2d228f9ae6] (r:1 w:1) + // Storage: unknown [0x4654293309c9d9ab4282485875ec1b776dba729b6146e9bc3966a9a819c017df] (r:1 w:1) + // Storage: unknown [0x5b9007f9119be10a7d1ae77002e96ecb7f79dfa7a9f300818812048748cf55d2] (r:1 w:1) + // Storage: unknown [0x5d96a67962f8613c419566d4dcb0697c8ec617897769b55a4ac4dd93155d4578] (r:1 w:1) + // Storage: unknown [0x85825e6cce4096e5a7dc169434fa91d22210b6c7ab8897b30985aea6ae20fd53] (r:1 w:1) + // Storage: unknown [0xa1b69262faff4cd2563e3b4931f2e8956362bef384adf9db005f3b1fbdd0d4d1] (r:1 w:1) + // Storage: unknown [0xb7c9da42ebd963aa3b0eaaf14e1e7356a082f13e57028c18c99f740aef5fd5c6] (r:1 w:1) + // Storage: unknown [0xd68485a52f9f464924546f77ebccc5fad66a93e22a1fc60c4bee070012896ce6] (r:1 w:1) + // Storage: unknown [0xf5626fa70a62fa697416f25b3e7e282a6b099cc9f63f6cca84d2500a9e23891f] (r:1 w:1) + // Storage: unknown [0x00fbe4c87dfafd81acde0c62d71afdad98b6fcd3ac7c5978a5bc6e2263d5943a] (r:1 w:1) + // Storage: unknown [0x0c079912425799c807fe6c182742aaa56a3b3fec7a2a9d954147f10e0c1e5afe] (r:1 w:1) + // Storage: unknown [0x11df950500fabbfc9570427f37c48cdbebcc94c5046fd4bc41a974e1dbe3d7f6] (r:1 w:1) + // Storage: unknown [0x1364fb94ec0dfbe5aa25a5f7427fc57ec8aa3ca7185c6246478add1d2d6f9faa] (r:1 w:1) + // Storage: unknown [0x27719eaca95aa18d9c543ab4a618fb1a51801ff2039b76a44e660d3974fb870b] (r:1 w:1) + // Storage: unknown [0x5c83011c24766f0080212191a03acb9e0ab086bb3c34b5beacd0d75d1d851846] (r:1 w:1) + // Storage: unknown [0x5cf4866b18bde15f76add7faf64e389e33b2e3c80b9f030e13e6b4eef3d6f23a] (r:1 w:1) + // Storage: unknown [0x87f065cba864c0ba39f6f0f3d11014f11da5b47eb8e713a4ff563dd8b0d7714c] (r:1 w:1) + // Storage: unknown [0xec9ef3dc71ba02a92626ebafc549db307121d398e7d53f773173333d020081d7] (r:1 w:1) + // Storage: unknown [0x4da8525f1f71b5fa7c393567e81e1dd66971d9fc5f031ebdc0fed9067d53f468] (r:1 w:1) + // Storage: unknown [0x6042de2b474edc72726c1d63652d328bf1d7baaeb992c55ebce5c0176608a8cf] (r:1 w:1) + // Storage: unknown [0x851eddee51237cc23ca00399b49e23c4ae44f5ab90b9249fa3e45780b4cae285] (r:1 w:1) + // Storage: unknown [0xa4a3811d91079e816d9a640c1a18e7f20a07f1fe33ca70aed4ba60f4bae6b1b0] (r:1 w:1) + // Storage: unknown [0xc88e6b7e019a0ae3b458533fea59b67ea36088034fd75333f60a80c280d79567] (r:1 w:1) + // Storage: unknown [0xcefdb5a6dbb7dce411445e4cfa61ad6f94c535835337a04cabcd3e1f8b857c95] (r:1 w:1) + // Storage: unknown [0xcfd8d84d37947062d49533c3ecc87470cea87db911ff65dd30f5c1db01430753] (r:1 w:1) + // Storage: unknown [0xda4d234593241eb8e2ea34328f2d6dbd2d7b33c0ed622e3cef00ad33967c09ea] (r:1 w:1) + // Storage: unknown [0xe52748c1a2cfb8c55639657bcf8999e084b1f4922562f2004d034a267c060e68] (r:1 w:1) + // Storage: unknown [0x35a386fbec1c4fc3b1ccc64c3caa55412ed03a613d7444008f3c820aa5b17bbf] (r:1 w:1) + // Storage: unknown [0x5a9de37e4f97e367a194298f06dc78713654a6087aed324b2df9f30e60298d7a] (r:1 w:1) + // Storage: unknown [0x6b8ed23e3a83354f761aa53087b88fdfee9d95f3d3b140ebad9542574c1439e8] (r:1 w:1) + // Storage: unknown [0x76c147f0828a67ce3d00dd2a657f618d183ac0a968c3c1952ebc9bf4c1382c7e] (r:1 w:1) + // Storage: unknown [0x9a644b6e7d6fecdc4ea972ccb4468de093e6c8066974d5e96d736df2e7ee0f84] (r:1 w:1) + // Storage: unknown [0xc14a6a92f5e2c95c9bcd26bf4210cfb628aca80d4662dfaaad0d7e89c12c7796] (r:1 w:1) + // Storage: unknown [0xd2b915f9e77d771de5421ee94839e2c61d529da30018195a2cdd77dee3b932fe] (r:1 w:1) + // Storage: unknown [0xf2f2be4594311ff3e9f8795baf0fad3d984dd750d9b8b66f1551b517c511b66e] (r:1 w:1) + // Storage: unknown [0xfb92258fc6d0c6f5cf211734bcf1779b22b86f919cbea6600f09787e33cef27d] (r:1 w:1) + // Storage: unknown [0x3b2c201b2eba43083a922bb7f99b66175259c5ffa9b5f90f78557ffcbebd1be3] (r:1 w:1) + // Storage: unknown [0x4739757a07f6af63682496729933cd92ddcbdae3617bce4769a087f6fb128c1f] (r:1 w:1) + // Storage: unknown [0x5a19744d580bdab0ac65664cadaa3e46cb10efc0ebd65f03d2a05ff648bc39ba] (r:1 w:1) + // Storage: unknown [0x9205671a8148815a8b414d028efab35292a41efe38a095bc3b83ca3b35e59dd1] (r:1 w:1) + // Storage: unknown [0xa274879999b34be6f96d1b3e31c2b6767c8dc656465635fa67c3740afaaae366] (r:1 w:1) + // Storage: unknown [0xaf946540d176e593860ca2290489fd7c16e0a804c48ebd11a8a9eea4bb80f7c3] (r:1 w:1) + // Storage: unknown [0xbb458c5f8b1b5cfa50b7e825fc1f8e78115e10e9db8597c4ef35549251465333] (r:1 w:1) + // Storage: unknown [0xbd8bf13aaa21833efc3add680619ddd4ef27f761437b8ba8d52d83e44413baa2] (r:1 w:1) + // Storage: unknown [0xdce9aecbadeae369d0c7ef002c41109c8a140bd7000ad4ff381cd50e785a262f] (r:1 w:1) + // Storage: unknown [0x1184d106dc781c07114d3a4560d00ba52b987e6ef4192105edca47599e3d079f] (r:1 w:1) + // Storage: unknown [0x298a7203eb1841c29a31c051cf0559ace866196b249bf1bcc1500eda35382b59] (r:1 w:1) + // Storage: unknown [0x5361d7d91627565c545e4844a53782f73741204ad5f3d517142ead6ca4d040f8] (r:1 w:1) + // Storage: unknown [0x623fc7609e608684e874840e045ec1ee7cabea4d390f591af4f34116963e62f4] (r:1 w:1) + // Storage: unknown [0x7eacc962a34ad7de3a66b92e4067b79a0f2e1815a6b261963d60a8f93c0a87b7] (r:1 w:1) + // Storage: unknown [0xb3e6e83f56be1b97c7e8c0ac5dcba5592e9129a77d95b1c79b27fa9a2ccc6863] (r:1 w:1) + // Storage: unknown [0xbd3719c0ed684f33ec28d93bd293d5a6330d7800bf928784bd0a107c296e96f0] (r:1 w:1) + // Storage: unknown [0xfbde54f17dbe9856d1e47a704fd9ea30281e4256671a63f37515d090df7f789f] (r:1 w:1) + // Storage: unknown [0xff98de6b90b3193de12945bc91d51fc38529ca4736d72bff21e90c7264c2f71a] (r:1 w:1) + // Storage: unknown [0x14dea875e0cedebfdd7d6dd9cd735842f31f0eb5897cf78ea0689a5a40f0a1a8] (r:1 w:1) + // Storage: unknown [0x19c9221c80f963bd72706bf3e0b63101d13d0d802aba95b9fcbc973fd287de59] (r:1 w:1) + // Storage: unknown [0x26aeb0fd26ac70ca2100d361a38a1a1fbcb19073a66853b14c59dbd56232dec6] (r:1 w:1) + // Storage: unknown [0x296551be0ba05b759efee2f02ca8d66ebb30120f246e83998c479f02c544e6ce] (r:1 w:1) + // Storage: unknown [0x5b5d43ded5ec8bcbc324492bd7739e92aee01a6f2c92bdb406abf5cc22f94552] (r:1 w:1) + // Storage: unknown [0x9f1850be63238c511db8ed703865cf530c5b0130b9e05a6de7e64627c6ad28ee] (r:1 w:1) + // Storage: unknown [0xa392d69bb5702f4417e0539366bd6ba139091fee633cf80d002d65c17111c9ae] (r:1 w:1) + // Storage: unknown [0xa67c6c2e46a40b67a88da9ce19133a1fe82491454c3f9b46a780de7e39341818] (r:1 w:1) + // Storage: unknown [0xb4acab02d78565e75ded51cee3273bcb2c98c0ffe8ffc545e4443b9bb07acaa2] (r:1 w:1) + // Storage: unknown [0x068082b39adf010e46c67f9d309ab9f500e5871d35b2993dd2ed0efd7a608018] (r:1 w:1) + // Storage: unknown [0x142f5546e7f86dddfe61211c399e1ace2be267bd8e4588b5682e73190ec29013] (r:1 w:1) + // Storage: unknown [0x2a0063f1a695f4d5563cabf3a6509d4f1491f40def624da9ade96dca3e933fb7] (r:1 w:1) + // Storage: unknown [0x356a887fd94f35b96ba15ec380500124befe1d3a17db608206161f22fccc7b86] (r:1 w:1) + // Storage: unknown [0x469f13dbe853651de759d758e8c30fdd20509367438c0275374a4c65f12e932b] (r:1 w:1) + // Storage: unknown [0x5c236523c6cef783c51c5d0dcdd4004f9aae4672b0ac997a777a0f3e2a629f8c] (r:1 w:1) + // Storage: unknown [0x5e4fcef0c7b973d39202d6fb0b06382887cb4389e61c27eb6224d006507a603f] (r:1 w:1) + // Storage: unknown [0xefa37685db10d0006e32e246cfaeb3cb6f33e8bd8f9ee84e61ee74ddbe35751a] (r:1 w:1) + // Storage: unknown [0xf8f59457a17aa1c34a1ea10fdeae16073f984657e0de6f7ae83f1405fde4f5c9] (r:1 w:1) + // Storage: unknown [0x32383cbb91d30600129e5ac97215741c81a86e63ae195adc057d29851b1e0635] (r:1 w:1) + // Storage: unknown [0x4ef4e5b5393914626c4570a05e7285ed225afce30a0d44476430fb385003d620] (r:1 w:1) + // Storage: unknown [0x52d5dc7ed11587378e6f063077d77430ba03c9ae21af62d277b7d23652b0f343] (r:1 w:1) + // Storage: unknown [0x8b6e86ff35b3bc955e9a8b706de850f5af7333311a692d7d1f6c892c9e0743d9] (r:1 w:1) + // Storage: unknown [0x9a57b167d72f9f3f5691f126d9b48942121a334340431be4d54903611add9cf6] (r:1 w:1) + // Storage: unknown [0xbecd8975089980917398dff92cf36548f1fa9b6b3d96eab120bfcd0a08be1133] (r:1 w:1) + // Storage: unknown [0xcaac1573f11eeaedbdfbe22884270e52a46a445d4f41c98fe95dd39fb0628fd2] (r:1 w:1) + // Storage: unknown [0xd37a7f79ab5c1c824fde6f849a12fbdec5bf8b8ae7b7df8bac21df690d1ac566] (r:1 w:1) + // Storage: unknown [0xf38e1806d2b2118a231477732019db23ca62831e3e0b8cc816a99a2182391eac] (r:1 w:1) + // Storage: unknown [0x29c03696410a0dcbf4e9bc8d076151124b7edc54fbc0cfbdc3faf7789164e206] (r:1 w:1) + // Storage: unknown [0x3195c59775014b156b70f95e90ab361304fb260bcc381c33c20b5e7293d4c7fc] (r:1 w:1) + // Storage: unknown [0x569d226e75a0eb467301f6fa4cb938d4fcd849d3efe969c161542ad1e75279cc] (r:1 w:1) + // Storage: unknown [0x93295b594fc192103b95e0638dd9f254d36a2e9b299bee6d275df67c8af4d759] (r:1 w:1) + // Storage: unknown [0xb7be2c897eac67b4b3a5da1a02b4b1816992ee98f6112b4d5262f73fc255c3a4] (r:1 w:1) + // Storage: unknown [0xc611fe61e43f3ba3182c4c6785a2a3ac060e2679bb8174a0ac1e234551428752] (r:1 w:1) + // Storage: unknown [0xd4f9a331a2eb206dc43bc6fa02586bd740021c262d4a5b74ff2ec74b24bb07b6] (r:1 w:1) + // Storage: unknown [0xdbf56dd98c667cdce364a53557f373d98947f7fe0bd7da6d72168e6572bfb622] (r:1 w:1) + // Storage: unknown [0xf74ed7b12e94dff551fb1db30d97245cca3374be5e04826487f83154a7ca79dc] (r:1 w:1) + // Storage: unknown [0x38478fb97716aa0a228f48ab751be24feab89ba4997894f4748c3784434852e7] (r:1 w:1) + // Storage: unknown [0x3935ad150e4eee0800486d78e89c19b55ddade16282d29f5fd75e398a03adeed] (r:1 w:1) + // Storage: unknown [0x65085b97bb627b7c8c3b4f09e5f174d1938737422c6154bd173ac6d0d75b6ea0] (r:1 w:1) + // Storage: unknown [0x7646ee188a1eb4daa60fccda6425d15a42eb1a25a2cb8252faa604ae48046dc6] (r:1 w:1) + // Storage: unknown [0x7b6c8e917003b1a2b8ea5c05efdd4eac91892086faac90cc893e2b7987222ad3] (r:1 w:1) + // Storage: unknown [0x94a9e5b0983394edf89c1193a94b8d5903d3bedcfb5bd892d2211f3a92beed21] (r:1 w:1) + // Storage: unknown [0xbc8dd82eb384558ef8afaddadb2534ad0d3b84350e42c080b92a318972afae84] (r:1 w:1) + // Storage: unknown [0xcc0292b10dc5b24ebfb31ecf1b60f5dd86c030def71e418f5d5ea58662d0e928] (r:1 w:1) + // Storage: unknown [0xd1b96b87e9f4bdd1d26a51daaa1e4dfc72baf9c8d0eab927c39de1d913759d1a] (r:1 w:1) + // Storage: unknown [0x01407b106cb8d8b1662ca8a44f362e1d99445ac4f611e160dc794fe19e91b9ef] (r:1 w:1) + // Storage: unknown [0x21f921d2a08b6c668f1575f8d69a2e27faed15e73a5813476d34a006d37dc9d8] (r:1 w:1) + // Storage: unknown [0x5574f592ca3417c1b74110fe7a3111bbcc0bc2cac6700cdf744d358734618c62] (r:1 w:1) + // Storage: unknown [0x5c182c2454b1ab519763417f95d564e2f77481dc5d5144ba489126dba6ce4f5f] (r:1 w:1) + // Storage: unknown [0x9b47d63344f6bbca64de1f01ad61d1e96af27f8bdafbdd8e638fc662452b4a05] (r:1 w:1) + // Storage: unknown [0x9c3a5cab41c65e4012798e7a06ddfd0546d455cfd46e94dfb84f4db210c29f6a] (r:1 w:1) + // Storage: unknown [0xc5928d7aa41aaa4efa11f127abace229d1265f4aaab036ab2093b26d3d25a318] (r:1 w:1) + // Storage: unknown [0xd251d389ae41aa428d7988c8e21995955dbb7dea36d2ac7570c85c43dc93c283] (r:1 w:1) + // Storage: unknown [0xf74f8fbdd0c70dffcc0218967818fad4252365bbc70ce33911f2112c9b312a15] (r:1 w:1) + // Storage: unknown [0x09a9376f1f7cb70af3a8b9b5c92fa34f1e40d6b518dbab9e0456bdaf2d322d0a] (r:1 w:1) + // Storage: unknown [0x2eecbb5fe19bbdbf62c79dba3456e92353a669f824bca8fb182f64d434e5d3ba] (r:1 w:1) + // Storage: unknown [0x4d332ce8f79870034022a949e25bae7943f8a2b69809bb9b6924542c2dc515f8] (r:1 w:1) + // Storage: unknown [0x875a7c5b801553193ab832bde427cd32f4159eecda9360ce4ea5185bd346422a] (r:1 w:1) + // Storage: unknown [0x8d8b1441f3859ef83c3ba5317547a84315ea29f41a83b6ff6da7039a88cac242] (r:1 w:1) + // Storage: unknown [0xc20f284dc00bb5f2932de03004d66c3a3bf3185c39ff61305a37198e3fbbd556] (r:1 w:1) + // Storage: unknown [0xd4f841abc893dc3cdea7c3d0d48ffcae53f63273f02c4391c2ccae0e52b5d43b] (r:1 w:1) + // Storage: unknown [0xd871ea178240c567bb4b8f35499644f8a013cdd76b381270540e9262b3da6a7e] (r:1 w:1) + // Storage: unknown [0xe5d24a5d239ad66f0cd6f13870d9747268a20306547f18dfcc91a88d84b056d6] (r:1 w:1) + // Storage: unknown [0x0f9026200cd5a19cd525379b24be34bcfd7016632fbb2891727e2c25513a5b70] (r:1 w:1) + // Storage: unknown [0x1489c4130501c2541e6c08aac4366599c37afb7ae0b4596e2ef2df4f9e0e6e6d] (r:1 w:1) + // Storage: unknown [0x25449a9001eed866e08345dd7d9a4c8234dfefff889899f3cff3b11bd0323f77] (r:1 w:1) + // Storage: unknown [0x3a689c9258d7959693de61d227fd6387894b4f48d201153c07057f808f9e7c5e] (r:1 w:1) + // Storage: unknown [0x9b6bd652c8562ea2e8071c6d604ebd41b2f3512b00d5ba7c20bc84fb2c1ccc2b] (r:1 w:1) + // Storage: unknown [0xb58f57a77781f6c9c5e12dd8e9fc1c8a9803b9dbba298538ab8d44985b74ab62] (r:1 w:1) + // Storage: unknown [0xcdbbb235046f6dafcb1913e53d45908631d73da7ed44263114432f3aae07ca71] (r:1 w:1) + // Storage: unknown [0xd1fd28c56fba032c65b1ad0a259ccab7f504346d22eafb2914c1dff1969d2a99] (r:1 w:1) + // Storage: unknown [0xe5860e29baab88a2f5fba4e38ba443968e067a279b72e87809d0228d631d89e6] (r:1 w:1) + // Storage: unknown [0x03fc50a53f8b55b7eb687d52bf0b688002613765a93b82f781065d6aae154b73] (r:1 w:1) + // Storage: unknown [0x36bfc1799952138154bf8020abbac8cfef585b3d5b8e24e24cc64e462db8992c] (r:1 w:1) + // Storage: unknown [0x390714b65f121ddc2954b7b9332fded961e58d32610a78724690ef87368bf7b6] (r:1 w:1) + // Storage: unknown [0x4b0192c61e4a1b2facce37c15309708bcd5bfc05c909cc76dd891478c84e3024] (r:1 w:1) + // Storage: unknown [0x7bfa441f3dee7aee4705a770c11edf7c4e05aba0b61c07094368e3d9d8e084c6] (r:1 w:1) + // Storage: unknown [0x7f10f8460f8af980c7d997040fcefb774538925362a0d956a11a77b40e6a5eba] (r:1 w:1) + // Storage: unknown [0x94b27a6ef159c56e0738bb35091863e326d1673b6548448bae7ac7e65fdab57e] (r:1 w:1) + // Storage: unknown [0xb1ffd2ee81d0411cd8698179bd8d84a9d436e7990185f336ac5953dd47e43ba5] (r:1 w:1) + // Storage: unknown [0xd0ea5cb1c4c9b8ca8bcf3f51dee17f42d030373e6ab09f45d75893c6364289d4] (r:1 w:1) + // Storage: unknown [0x15212ee014dc075c0e6f42b242af7e4d121f7d41e9caff916f7a524a4c29776d] (r:1 w:1) + // Storage: unknown [0x4187f2f0fdf610dc9d337c1cf46958c7db0394b0974296637d5a84fb7c2b3a8b] (r:1 w:1) + // Storage: unknown [0x4732d393876184fe46ea5cfa83b627f7bd1b6727003b9a0088a03636b4356243] (r:1 w:1) + // Storage: unknown [0x4be2d0c811822615e4848cd3054f3d9b1a7c34b18470d9a6f89100c0445fb010] (r:1 w:1) + // Storage: unknown [0x6da525e61d6b36723c2b5a2ca124c85d1856816e0b35238d0a850f9943e7ba66] (r:1 w:1) + // Storage: unknown [0x9c802f738e1b04601ed0d0abe32bdcf042074f8edaf2fa4571b124b01fa70846] (r:1 w:1) + // Storage: unknown [0xa73ce6f8f9d23682724f09954f06a53d3c4007cb29af7ebf5a8e606c5732cc86] (r:1 w:1) + // Storage: unknown [0xc1da305dcb85ec2893959f2ae65b4b22ae8bd45693ab0e3fce81d72cb2552577] (r:1 w:1) + // Storage: unknown [0xd3c6d933b4be80010db2b04898cd1f86bef1f05f4910ea6ec76cd893764cde57] (r:1 w:1) + // Storage: unknown [0x6a347d8997bcb43ef505e6876c09195b98dac72be6e9f08899090815a8bcde0e] (r:1 w:1) + // Storage: unknown [0x6cbadf65e4209acb1dfe5cc362ff515ffc407404026c48b83267237ca296beec] (r:1 w:1) + // Storage: unknown [0x7788a3a1aa009c1ba85f5f4bcdb8c4d371a45b6ed7b3d125f14ccbaf907bed68] (r:1 w:1) + // Storage: unknown [0xb141aef67c001419ce515c56c58b59d29d52e73eaadcaf464410553d1035f33a] (r:1 w:1) + // Storage: unknown [0xc0a79638a9bd36ef462f127f86035f874c9c7559d9e7dce1273c583e1539df83] (r:1 w:1) + // Storage: unknown [0xc0d5f26bb40d24ab056e1bd440482fb7db86ab2d0f9868977397c038c6230e9b] (r:1 w:1) + // Storage: unknown [0xc5cbbca4f0275eee449ae706cd0ed9de748d575507d8f045ad9f14712971090c] (r:1 w:1) + // Storage: unknown [0xd2e619fb36c5659aabe595bf30254a3e35c315d46d2afe91ab22801c35a1e8e0] (r:1 w:1) + // Storage: unknown [0xe2645307c930fa6f7ef89428b23f1cfcaa7e1218e99223f8d3f33bd8a0d742f8] (r:1 w:1) + // Storage: unknown [0x2e4e39c5b08d717d1808350db637f08e1b2cf6e9539595440e3d27ab3c719903] (r:1 w:1) + // Storage: unknown [0x43efa67dab5b54814027207019c7a820cb5415238f9b1250f234c3116933325c] (r:1 w:1) + // Storage: unknown [0x4e3ad2f84a1efe894ef7c96a4d086262a0d2de21f30121237e4d459c8c7a6f0f] (r:1 w:1) + // Storage: unknown [0x51f0a4a31006ed7e745dc8dc0d0d9e4cd78cf6d47d50e363b7975907ef548afd] (r:1 w:1) + // Storage: unknown [0x5f64929bcef4ccdf44d337a9ae8c17b203952240df87f49a5b10ee976e87f2ea] (r:1 w:1) + // Storage: unknown [0x6cb369ca9f516aabc21356337ee21e4b6bd7682c4325ec8d1481aa7686df9913] (r:1 w:1) + // Storage: unknown [0x9e8f653956af16e4b6e9759b8411451382d6749ef6dd44a6179293bad1bea1bc] (r:1 w:1) + // Storage: unknown [0xb192b38245587a98a41cacead1ceeeea650df259cc3c03902d7b6550a7a01b2d] (r:1 w:1) + // Storage: unknown [0xe11c6afab8139f5ea3d2dbfb377e756458f3d7f4d1f97c2fbdad93a745bd1403] (r:1 w:1) + // Storage: unknown [0x09a6e269066844934a3ca55c5c095f8112f4492f292a0d3ab1a374621a8f829c] (r:1 w:1) + // Storage: unknown [0x0a76588d48ee18219d4cb75458b1dcdc677263106ade9c9a30c728face6ca80d] (r:1 w:1) + // Storage: unknown [0x21fee12be772e78a59541b5d650b2186ec4cda36c4d37328d514ea66fde98904] (r:1 w:1) + // Storage: unknown [0x3e73e9aa06c5d5e22894a96e184a6dbedea5139f48e02980d2efcad0b758cdc2] (r:1 w:1) + // Storage: unknown [0x654c9261c5825253ff541d8993e72fe856a9f79b3598d447f38279e898a2b4e0] (r:1 w:1) + // Storage: unknown [0x768a3118cdd3b2a2759a0c75f20d3212dfc86cfcc249655bfe3bebb06bc1cc8e] (r:1 w:1) + // Storage: unknown [0x8b204a61cc4033ce6ce7af095ed891dfd7d19a642ef5561b4c510def6edb78ad] (r:1 w:1) + // Storage: unknown [0xc8dbe9efd7c11f55ac197805b9d8dd04426703cc4521b808dfd24b342ade9b03] (r:1 w:1) + // Storage: unknown [0xfeb9426ed2d7f338977a3257b6729210dfd069a0274230dc74267c2ee7ed0b77] (r:1 w:1) + // Storage: unknown [0x0232d463305f8fcea7214c40efa268b26f6853c420ef75961761315a09e7b7bb] (r:1 w:1) + // Storage: unknown [0x1a350d01aad2f424d54ab323adbddefe00b1ec517f8ba9d4a8587e1ab6825fd7] (r:1 w:1) + // Storage: unknown [0x20afbef21dfb3b37883c4e0eb83a8f1f33b5676fcbef51339631429d5d921279] (r:1 w:1) + // Storage: unknown [0x6b0fd9c9e97dad955d766b7a4ff67adcbb5bff2ebec6a407e8b7c4bd4d45c5ad] (r:1 w:1) + // Storage: unknown [0x758ff77cb1f5d2032a7e366371426e160ccd0b96925f06bbc9329f98de0e19ca] (r:1 w:1) + // Storage: unknown [0x8dd87fc444419a4a88abe89607b045d3141156f5b2d716290910ec732899d1a5] (r:1 w:1) + // Storage: unknown [0xbc74be6da6abfeac2567acdb80142289c6da87a0f3682f96e4a387350028ecdd] (r:1 w:1) + // Storage: unknown [0xd856c79bf100dc8b235a733d120ba3e6575dec83527bf0312a9f2ddb41f83df7] (r:1 w:1) + // Storage: unknown [0xeab25b78085c98a9b4688df96c04ef8b39158fd62e6e52e33590fb21c1328dcc] (r:1 w:1) + // Storage: unknown [0x0fd1b2d3599d3ff280c2880169ee61ce60a3df6183220f88c57c637f73641101] (r:1 w:1) + // Storage: unknown [0x250c74e6a150be40d25a748d04adebe88c1efbb9508443fd9655f88592a692d7] (r:1 w:1) + // Storage: unknown [0x7a2e58ba4d1f6ce180e06278d12bb8090221c0b181ba26f2b1a91897d312b723] (r:1 w:1) + // Storage: unknown [0x8e2c35f4209f4902ac5c733e6ac0c213ee089994c63ae8424be9fe625ce3d843] (r:1 w:1) + // Storage: unknown [0x9a7ca4148e063f02caaa764e89a6338fb598082b807ad2253127aa1ddccab5a3] (r:1 w:1) + // Storage: unknown [0xaacab268ca7cbb3c5a6c7030c43362d255f6cc408b83fd68b7ae6ee31ccb7e20] (r:1 w:1) + // Storage: unknown [0xb4f410c11de2e2060206ca18d5ff89d2bbf64aa94583a0693733ca98ca481b2f] (r:1 w:1) + // Storage: unknown [0xdbd5457c02ad4f1b32be421421b81cc926c4bf998df2ee94ee9363e74ea064c1] (r:1 w:1) + // Storage: unknown [0xea1bea5c24f8335580a71d29a7a773541dbd384134f88f11965ba6b3412d9ee7] (r:1 w:1) + // Storage: unknown [0x16e516ebd01eb6570a956dca7cdbd4a886a8c1509afb1d5dd3bf7102ac8e0653] (r:1 w:1) + // Storage: unknown [0x17ea99a7d60cbee014631f3438603e36ef7d7bf1bdaea7740f33079ccd219240] (r:1 w:1) + // Storage: unknown [0x36325a2003628d7ae9c30d6264688ba0ddf93c2dadc10623218a697ba807784e] (r:1 w:1) + // Storage: unknown [0x3f2edae08b19a7878d65c7245b7608ba1b6597e6d448652a89667ecaa2c10658] (r:1 w:1) + // Storage: unknown [0x4a325faac35d245e0eb3f57ab651ba6641e2617505390a4388ef08e2dbebb38f] (r:1 w:1) + // Storage: unknown [0x5e5b6c2bca3c4617a35b60ac68dd56733e2cacd9528658e086317d1e4ae33c10] (r:1 w:1) + // Storage: unknown [0x78dcf8ae0c638ce501342ee0e3844e77011fde109607e17d68e912c28b55afed] (r:1 w:1) + // Storage: unknown [0x821525922b4f0ceb302c003259c7f5bf65fffa46d17dfb4eb996e8b0647daec4] (r:1 w:1) + // Storage: unknown [0xf7417a27daa0204a3aa339f2c077a3eb5f90752122333c123c4e4ee31d8fb68b] (r:1 w:1) + // Storage: unknown [0x078779e40d3c775ac8c135ec9e505babb035597b3bb09fa7f789891997f0d650] (r:1 w:1) + // Storage: unknown [0x30fe9bfb3bd1e640e99769310b3c7cba2b47e8e8b783eb3d5893d6d1f59f8042] (r:1 w:1) + // Storage: unknown [0x337025af84c7381996544f1ac8cee4709c0ae9500a276f7031902d1096e7582f] (r:1 w:1) + // Storage: unknown [0x674985c60108f89ff55cab7c53a76fd7a9a334e8fb709477b2d9d18ee770590d] (r:1 w:1) + // Storage: unknown [0xc19e5eee149c75097d549f969006d7f8c7e797c836a15ca423a18a4a4432e138] (r:1 w:1) + // Storage: unknown [0xc9f9cd749702c3f010221d225bcf304e54e7f0e8573962d978edfaec4105387d] (r:1 w:1) + // Storage: unknown [0xd75d0226e5b4ac7a2728e0986dd018a8a6c88072fb927a56f9140a11831ea9c8] (r:1 w:1) + // Storage: unknown [0xf6a39d38e14007401941e32ecde9503b4d58efe10b3f676dce992266aad1abdf] (r:1 w:1) + // Storage: unknown [0xfadcf35d360cb1c5c2fb1509d65e6b1ad79083fdfe90b3e64fc7956f5eaee5dd] (r:1 w:1) + // Storage: unknown [0x129730fa94511f735b9910e2d640dc2ab0fddb29ac3442924dd2e27d74a55f1a] (r:1 w:1) + // Storage: unknown [0x1d1a6641ce7e5e6dea72bcd68828416a44cb06e3207d349b43c7300262ffbb81] (r:1 w:1) + // Storage: unknown [0x26e4d08be6a3b5bd814cd0aff1bba2e3b3f3f8a61e5dedd352c641795642d5de] (r:1 w:1) + // Storage: unknown [0x45fbad84e42f40e96452f652bdd233f71f67f6a1415b00551a21019033ba30f7] (r:1 w:1) + // Storage: unknown [0x4d52d448a046ee9690cef9539b6b7dc9a60b4e4b05c52f21c31c307ac1aef94a] (r:1 w:1) + // Storage: unknown [0x50f7e43916898de9a9387e19b0984a4be39e44b6fbb5212564c7299e92203fd2] (r:1 w:1) + // Storage: unknown [0x7009ee69684472410f9d454e8c4503e89cd3807e4f41ebcb142539db34dfc137] (r:1 w:1) + // Storage: unknown [0xd35a663830dbaeb43ac6bbbdd4cc221430a35aec509557262d4c5032789f78c5] (r:1 w:1) + // Storage: unknown [0xe1164fcf99526792f77cd4a96bba1367a01dc7847634f156cfd905d9a74c2e4e] (r:1 w:1) + // Storage: unknown [0x3f39a48558209f0501e7599c5ff9c872e6bf14a137ee40facefef94db4a038a5] (r:1 w:1) + // Storage: unknown [0x4b594ca9743d048965171e9cb071d25afbb428b6499893000a3c02143df1e98f] (r:1 w:1) + // Storage: unknown [0x6b2dc18de1c43eddbd70da532389561c311aa44c79b1df11d3ab579ca874af09] (r:1 w:1) + // Storage: unknown [0x764780a58bf2c1ddc3036bc739d7f11d6cb670c3e0409da6219d8dcc341e81ba] (r:1 w:1) + // Storage: unknown [0x92056e54539b0632e17ec7418c3e57c8ca3589ea2703bed64f879eecd4afab07] (r:1 w:1) + // Storage: unknown [0x959d72bdffb0754a9d28b1a31900a21da9519063a1d13c6b8e85328594c469d8] (r:1 w:1) + // Storage: unknown [0x97bab3ac046ded8556c371745f46b78d54df3f40d1c8435a1e534bbd3cc40bc1] (r:1 w:1) + // Storage: unknown [0xb36b2eecaf2da82f8b7fb4ca1f9dea513b57a56d30111386fd6d7e17d13c63ed] (r:1 w:1) + // Storage: unknown [0xe5ee08335dc8a0c22d49d7d07bcb6fa2a8aaf854a55a31831f7d97f4eef4d64e] (r:1 w:1) + // Storage: unknown [0x03c62116305bd05ac7512c6b685b88e8e33392886d0f40ddb332bfa33b7c2139] (r:1 w:1) + // Storage: unknown [0x162d04de4b5bf08c3f6cf14beb6c63bbbbded34d6d42e83072b5c3bde079f3a6] (r:1 w:1) + // Storage: unknown [0x2169cb6fc72c7d9940e7b09dd3e22cba0f3bc950b7ddc419e978052ac9b2a2bc] (r:1 w:1) + // Storage: unknown [0x24f0ed4b5bb87c45fcc018f89c8ff92fe012e9cc44433b1f63e709f9c1d6380b] (r:1 w:1) + // Storage: unknown [0x6d99f9efc9348c9fd2a7823e65dd7119afdbb1e8edbeb7ba5a985b13fb191745] (r:1 w:1) + // Storage: unknown [0x7999d569f1d75161e56c3b981d43dfbba27850949a7f3efcfb24d1e5df6f9c48] (r:1 w:1) + // Storage: unknown [0x81bff11208bacd1cc864311f5ab66579569dee60ed6970abfab7c629115d9b27] (r:1 w:1) + // Storage: unknown [0xc30095a93bd4d72ee547a0c4150a283d4ef43c7cc6b58c7636e0d01c6bbcf38c] (r:1 w:1) + // Storage: unknown [0xd098e22c1b866138b1f1183864ef282ebe5c68a9230aeea6651017e0b2ca7341] (r:1 w:1) + // Storage: unknown [0x39ffc5b547462d8775e1aff1de9bb2533140a0725e259ed2b0c4f589bb390e37] (r:1 w:1) + // Storage: unknown [0x3a20973d20cf9ad844d687e106a44030ecbf990dc74752c1e64079be511a4e06] (r:1 w:1) + // Storage: unknown [0x491b2aaafdf4d8c47364ef6b2ef92aaa6d6fd10eedb2f374c8d42f2410b0bfe5] (r:1 w:1) + // Storage: unknown [0x9aa6a1118d01d2733b707f5a2cc795547c33acff451c97d194ed627e3af70583] (r:1 w:1) + // Storage: unknown [0xba27bd0b26d49467574a0399c7867a70e1f99f2348dd30abd7b42eefa43dc2e5] (r:1 w:1) + // Storage: unknown [0xbe58a92b8383c2e39bd6b63cf4d92461e334037f9d2c64a42aeac1e06600bca7] (r:1 w:1) + // Storage: unknown [0xbed02ed125a0400cc9144307f2ad28c94461c694d4a9a89e4591cdfd4a7ca48c] (r:1 w:1) + // Storage: unknown [0xd4f091d4c1b7088764b59a48fa30bb063e83f0fce3e0031eb1094a84bdeaddda] (r:1 w:1) + // Storage: unknown [0xd6497bb219680b798aef6cfa92c698524c58732bef89939e8ec2c1a5068ff0f1] (r:1 w:1) + // Storage: unknown [0x38580239895995d2f930f08c6465fd3d02238f6214f82ed488d7c83a5698c145] (r:1 w:1) + // Storage: unknown [0x611385ecf73feedaf7bc17ab736470d9c8a8ce9c4e93e19a39d287a4c54293ed] (r:1 w:1) + // Storage: unknown [0x625b852590843c0b3b38d2cfddf64b8869c926a9f1a217b7df9cc290a04d3c17] (r:1 w:1) + // Storage: unknown [0x69ef3849249445b5033754475a36de695004f25d3a04a1873dc3449b4908aba0] (r:1 w:1) + // Storage: unknown [0x85bd68db5fbd69beb026aaf881413c97a190f1dd0bfb38375ec7bcd52448ee4b] (r:1 w:1) + // Storage: unknown [0x8d2ec8130e5f3628d22bfcae29d02f1635977d43b3e1a9e86f0b78c650c97ce0] (r:1 w:1) + // Storage: unknown [0x944fb8d1b6708dbaad846c06734df5c05aff0da9a466f6fde0881343b4aecd99] (r:1 w:1) + // Storage: unknown [0xa5ff5fc6e8aceea405f11cef80161ee2f2ca657c5c5a485eb44850404623be6f] (r:1 w:1) + // Storage: unknown [0xd27753d9ff5db15ed803d558b19fe57448af6287d51d57fc60c382db6342d41f] (r:1 w:1) + // Storage: unknown [0x23b01e79ab305a48fb81408e97c010865229bff7e39975a47a4617d1b70bde12] (r:1 w:1) + // Storage: unknown [0x32bca73cc5d28831b3d6b8b8343a6fca085fc96021ee55074c40a41b7ba20b80] (r:1 w:1) + // Storage: unknown [0x36ab36b371df875d1863acc3752b38a952134a7017537a0edf569a9dd58c86e0] (r:1 w:1) + // Storage: unknown [0x4efd4581164c5edb502b7b6a8b8e8b324deda1ea6e28e9e1e624defafeb097b9] (r:1 w:1) + // Storage: unknown [0x8f1e26abe053ae68a0744df7fe0447fbd50d14ade59c924dd4d2b70d1296b723] (r:1 w:1) + // Storage: unknown [0xa9d399f02c89a57e4ab0aca86b74d5c124974e19189f4a35a405bc57277d3294] (r:1 w:1) + // Storage: unknown [0xaab2936af1631322f597eeaf3c3ed16545579a4096ea72aa6c81aa6239367dc5] (r:1 w:1) + // Storage: unknown [0xd9687ab33fdb52c1eba4ddef1151e5c883c8b8ca4a25f0fbdc458a4a07202918] (r:1 w:1) + // Storage: unknown [0xe36d5d7328b4f69fc7728f89d71d36122896443ec8d85ce1c6945ac178f1c410] (r:1 w:1) + // Storage: unknown [0x0ce1c95f681adbe0583541264d7ff63606d71fc7f9a5056f9ce2ae5dbc92c8ef] (r:1 w:1) + // Storage: unknown [0x366897223e45040aa102fedaf30e54ae118f23510d9c2762da994d8e9eb37f8f] (r:1 w:1) + // Storage: unknown [0x65fbf6ee57a08d8f5407677ef0796630f71a75519462181854d44f3dd0d2e9fc] (r:1 w:1) + // Storage: unknown [0x7511f042605e429879bff0e9ab4466069665ce3b175ab9d9a235d4014604b4ff] (r:1 w:1) + // Storage: unknown [0x815c85bdfd3bb9d957e5a6738955e5a94024e27cea203faa4b984b846f3f07a5] (r:1 w:1) + // Storage: unknown [0xc383631f40436e078c9af767056802826e3f47183fd8ec00a5d06cf991b5d622] (r:1 w:1) + // Storage: unknown [0xd062d3018d16f1337e6aa46159c2085f4be01f700dce001c6248823b15d3a470] (r:1 w:1) + // Storage: unknown [0xe188fef7ccf953faa2185e2e9175bf3bca48aa36f3dd62b8161a75ebb34f19a7] (r:1 w:1) + // Storage: unknown [0xe7dd8a0e93b4c990c00453edf0c631b3ae4fcd7f1189a0b3d2e5c27ef824bc99] (r:1 w:1) + // Storage: unknown [0x0ba1e4e6d98da9611922932b095d435e39bcfd6babc4b9e89485f7f378cd6b45] (r:1 w:1) + // Storage: unknown [0x2d4fce1669eb402b2ec3f325de12e8582f8d9c77de9b5270ef6956203a8314d6] (r:1 w:1) + // Storage: unknown [0x89f01db4731551d533ba2108e036875e126adb7665bc5fddd4575716a36c26a4] (r:1 w:1) + // Storage: unknown [0x97dc9a3b2cc3aa9784021dcb200f09540dfdedb79f3d159867b97a75cc892a3b] (r:1 w:1) + // Storage: unknown [0xc20b40ca76d1caee1cc717d847ae6878857e35b45d47478ed7f1450c154c503f] (r:1 w:1) + // Storage: unknown [0xd0b010e2c3a992e7680dc9120b82fe6e8c3d160b997aa89af463bbdf84a6e2d7] (r:1 w:1) + // Storage: unknown [0xd35ed52d5edd31264c21a0c30d3994d5600b3e19ebb66d6f8099661d6dcc57c0] (r:1 w:1) + // Storage: unknown [0xf5b993b187b5029b7a30de61f1bce1be780f8790b3daf85742ec63b66f79cc80] (r:1 w:1) + // Storage: unknown [0xf98428e38450dcc80131bed1b84059f80938df6d2941d17917c968e553afa753] (r:1 w:1) + fn batch_unlock(k: u32, ) -> Weight { + (0 as Weight) + // Standard Error: 53_000 + .saturating_add((107_557_000 as Weight).saturating_mul(k as Weight)) + .saturating_add(T::DbWeight::get().reads(6 as Weight)) + .saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(k as Weight))) + .saturating_add(T::DbWeight::get().writes(2 as Weight)) + .saturating_add(T::DbWeight::get().writes((4 as Weight).saturating_mul(k as Weight))) + } + // Storage: SalpLite Funds (r:1 w:0) + // Storage: SalpLite RedeemPool (r:1 w:1) + // Storage: Tokens Accounts (r:2 w:2) // Storage: Tokens TotalIssuance (r:2 w:2) - // Storage: System Account (r:1 w:0) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:0 - // w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) + // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 w:1) fn redeem() -> Weight { - (169_980_000 as Weight) - .saturating_add(T::DbWeight::get().reads(9 as Weight)) + (137_729_000 as Weight) + .saturating_add(T::DbWeight::get().reads(11 as Weight)) .saturating_add(T::DbWeight::get().writes(8 as Weight)) } - - fn batch_unlock(k: u32) -> Weight { - (0 as Weight) - .saturating_add((45_890_000 as Weight).saturating_mul(k as Weight)) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(k as Weight))) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) - .saturating_add(T::DbWeight::get().writes((2 as Weight).saturating_mul(k as Weight))) - } } diff --git a/runtime/bifrost/src/weights/bifrost_token_issuer.rs b/runtime/bifrost/src/weights/bifrost_token_issuer.rs index 56156df4cc..0f104ee62a 100644 --- a/runtime/bifrost/src/weights/bifrost_token_issuer.rs +++ b/runtime/bifrost/src/weights/bifrost_token_issuer.rs @@ -19,22 +19,22 @@ //! Autogenerated weights for `bifrost_token_issuer` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-10-08, STEPS: `50`, REPEAT: 1, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("asgard-local"), DB CACHE: 128 +//! DATE: 2021-10-28, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bifrost-local"), DB CACHE: 128 // Executed Command: // target/release/bifrost // benchmark -// --chain=asgard-local +// --chain=bifrost-local // --steps=50 -// --repeat=1 +// --repeat=20 // --pallet=bifrost_token_issuer // --extrinsic=* // --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --header=./HEADER-GPL3 -// --output=./runtime/asgard/src/weights/bifrost_token_issuer.rs +// --output=./runtime/bifrost/src/weights/bifrost_token_issuer.rs #![cfg_attr(rustfmt, rustfmt_skip)] @@ -44,46 +44,70 @@ use frame_support::{traits::Get, weights::Weight}; use sp_std::marker::PhantomData; -/// Weight functions for bifrost_token_issuer. +/// Weight functions for `bifrost_token_issuer`. pub struct WeightInfo(PhantomData); impl bifrost_token_issuer::WeightInfo for WeightInfo { // Storage: TokenIssuer IssueWhiteList (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn add_to_issue_whitelist() -> Weight { - (72_266_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (61_469_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: TokenIssuer IssueWhiteList (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn remove_from_issue_whitelist() -> Weight { - (52_929_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (57_200_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn add_to_transfer_whitelist() -> Weight { - (35_216_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (62_091_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn remove_from_transfer_whitelist() -> Weight { - (27_602_000 as Weight) - .saturating_add(T::DbWeight::get().reads(1 as Weight)) - .saturating_add(T::DbWeight::get().writes(1 as Weight)) + (61_857_000 as Weight) + .saturating_add(T::DbWeight::get().reads(5 as Weight)) + .saturating_add(T::DbWeight::get().writes(3 as Weight)) } // Storage: TokenIssuer IssueWhiteList (r:1 w:0) // Storage: Tokens Accounts (r:1 w:1) // Storage: Tokens TotalIssuance (r:1 w:1) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn issue() -> Weight { - (56_797_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + (105_189_000 as Weight) + .saturating_add(T::DbWeight::get().reads(7 as Weight)) + .saturating_add(T::DbWeight::get().writes(4 as Weight)) } // Storage: TokenIssuer TransferWhiteList (r:1 w:0) // Storage: Tokens Accounts (r:2 w:2) + // Storage: System Number (r:1 w:0) + // Storage: System ExecutionPhase (r:1 w:0) + // Storage: System EventCount (r:1 w:1) + // Storage: System Events (r:1 w:1) fn transfer() -> Weight { - (75_672_000 as Weight) - .saturating_add(T::DbWeight::get().reads(3 as Weight)) - .saturating_add(T::DbWeight::get().writes(2 as Weight)) + (138_244_000 as Weight) + .saturating_add(T::DbWeight::get().reads(7 as Weight)) + .saturating_add(T::DbWeight::get().writes(4 as Weight)) } } diff --git a/runtime/bifrost/src/weights/mod.rs b/runtime/bifrost/src/weights/mod.rs index 1abfb8a695..77fc82fd1a 100644 --- a/runtime/bifrost/src/weights/mod.rs +++ b/runtime/bifrost/src/weights/mod.rs @@ -20,6 +20,7 @@ //! A list of the different weight modules for our runtime. +pub mod bifrost_call_switchgear; pub mod bifrost_flexible_fee; pub mod bifrost_lightening_redeem; pub mod bifrost_liquidity_mining; diff --git a/runtime/dev/Cargo.toml b/runtime/dev/Cargo.toml index a780d58b17..e1413002a0 100644 --- a/runtime/dev/Cargo.toml +++ b/runtime/dev/Cargo.toml @@ -205,6 +205,7 @@ runtime-benchmarks = [ "xcm-builder/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "bifrost-salp/runtime-benchmarks", + "bifrost-salp-lite/runtime-benchmarks", "bifrost-bancor/runtime-benchmarks", "bifrost-flexible-fee/runtime-benchmarks", "bifrost-vtoken-mint/runtime-benchmarks", diff --git a/runtime/dev/src/lib.rs b/runtime/dev/src/lib.rs index 287c07829b..614c01f545 100644 --- a/runtime/dev/src/lib.rs +++ b/runtime/dev/src/lib.rs @@ -1740,6 +1740,7 @@ impl_runtime_apis! { let mut list = Vec::::new(); list_benchmark!(list, extra, bifrost_salp, Salp); + list_benchmark!(list, extra, bifrost_salp_lite, SalpLite); list_benchmark!(list, extra, bifrost_bancor, Bancor); list_benchmark!(list, extra, bifrost_flexible_fee, FlexibleFee); list_benchmark!(list, extra, bifrost_vtoken_mint, VtokenMint); @@ -1775,6 +1776,7 @@ impl_runtime_apis! { let mut batches = Vec::::new(); let params = (&config, &whitelist); add_benchmark!(params, batches, bifrost_salp, Salp); + add_benchmark!(params, batches, bifrost_salp_lite, SalpLite); add_benchmark!(params, batches, bifrost_bancor, Bancor); add_benchmark!(params, batches, bifrost_flexible_fee, FlexibleFee); add_benchmark!(params, batches, bifrost_vtoken_mint, VtokenMint); diff --git a/runtime/dev/src/weights/bifrost_salp_lite.rs b/runtime/dev/src/weights/bifrost_salp_lite.rs index a98db291b3..9c1f187930 100644 --- a/runtime/dev/src/weights/bifrost_salp_lite.rs +++ b/runtime/dev/src/weights/bifrost_salp_lite.rs @@ -46,18 +46,6 @@ use sp_std::marker::PhantomData; /// @todo benchmark again later pub struct WeightInfo(PhantomData); impl bifrost_salp_lite::WeightInfo for WeightInfo { - // Storage: Salp Funds (r:1 w:0) - // Storage: Tokens Accounts (r:1 w:1) - // Storage: Salp CurrentNonce (r:1 w:1) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Storage: unknown [0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291] (r:1 - // w:1) - fn contribute() -> Weight { - (122_561_000 as Weight) - .saturating_add(T::DbWeight::get().reads(6 as Weight)) - .saturating_add(T::DbWeight::get().writes(4 as Weight)) - } // Storage: Salp Funds (r:1 w:0) // Storage: Salp RefundPool (r:1 w:1) // Storage: Tokens Accounts (r:4 w:4) diff --git a/scripts/generate-weights.sh b/scripts/generate-weights.sh new file mode 100644 index 0000000000..90e8d0d19d --- /dev/null +++ b/scripts/generate-weights.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +## EXAMPLE +## +## Generate the weightInfo files of `asgard-runtimes`; +# sh ./script/generate-weights.sh asgard +## Generate the weightInfo files of `bifrost-runtimes`; +# sh ./script/generate-weights.sh bifrost +## Generate the weightInfo files of `asgard-runtimes` and that of `asgard-runtime`; +# sh ./script/generate-weights.sh asgard bifrost + +# 1. Build all-release which is added with "runtime-benchmarks" feature; +make "build-all-release-with-bench" +# 2. Filter the pallets of ${runtime} that should be executed benchmark; +IFS=', ' read -r -a runtimes <<< $@; +for runtime in "${runtimes[@]}" +do + chain="${runtime}-local" + echo $chain + target/release/bifrost benchmark --chain=$chain --list | sed -n '2,$p' | grep -Eio "^\w+" | uniq | + while IFS= read -r line + do + pallet=$line; + + target/release/bifrost benchmark --chain=$chain \ + --steps=50 \ + --repeat=20 \ + --pallet=$pallet \ + --extrinsic="*" \ + --execution=wasm \ + --wasm-execution=compiled \ + --heap-pages=4096 \ + --header=./HEADER-GPL3 \ + --output="./runtime/${runtime}/src/weights/${pallet}.rs"; + done +done \ No newline at end of file diff --git a/scripts/run_all_benches.sh b/scripts/run_all_benches.sh deleted file mode 100755 index 53cd899669..0000000000 --- a/scripts/run_all_benches.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Runs all benchmarks for all pallets, for each of the runtimes specified below -# Should be run on a reference machine to gain accurate benchmarks(currently run on bifrost builder) - -runtimes=(asgard bifrost) - -# cargo build --locked --release -for runtime in "${runtimes[@]}"; do - cargo run --release --features="runtime-benchmarks,with-${runtime}-runtime" --locked benchmark --chain "${runtime}-local" --execution=wasm --wasm-execution=compiled --pallet "*" --extrinsic "*" --repeat 0 | sed -r -e 's/Pallet: "([a-z_:]+)".*/\1/' | uniq | grep -v frame_system > "${runtime}_pallets" - while read -r line; do - pallet="$(echo "$line" | cut -d' ' -f1)"; - echo "Runtime: $runtime. Pallet: $pallet"; - cargo run --release --features="runtime-benchmarks,with-${runtime}-runtime" -- benchmark --chain="${runtime}-local" --steps=50 --repeat=20 --pallet="$pallet" --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./HEADER-GPL3 --output="./runtime/${runtime}/src/weights/${pallet/::/_}.rs" - done < "${runtime}_pallets" - rm "${runtime}_pallets" -done \ No newline at end of file