From 6289f9c9da865c2e4aca6d4a2bea51e5f8810726 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 21 Dec 2018 12:55:44 +0100 Subject: [PATCH 01/44] Compact extrinsics (#1314) --- core/client/src/client.rs | 2 +- core/sr-primitives/src/generic/mod.rs | 2 + .../unchecked_mortal_compact_extrinsic.rs | 290 ++++++++++++++++++ 3 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs diff --git a/core/client/src/client.rs b/core/client/src/client.rs index a37bd163b2548..647e48405a2a6 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -284,7 +284,7 @@ impl Client where pub fn authorities_at(&self, id: &BlockId) -> error::Result> { match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), - None => self.executor.call(id, "Core_authorities",&[]) + None => self.executor.call(id, "Core_authorities", &[]) .and_then(|r| Vec::::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) } diff --git a/core/sr-primitives/src/generic/mod.rs b/core/sr-primitives/src/generic/mod.rs index 69b317f6eeade..1e1778204ab16 100644 --- a/core/sr-primitives/src/generic/mod.rs +++ b/core/sr-primitives/src/generic/mod.rs @@ -20,6 +20,7 @@ mod unchecked_extrinsic; mod unchecked_mortal_extrinsic; +mod unchecked_mortal_compact_extrinsic; mod era; mod checked_extrinsic; mod header; @@ -30,6 +31,7 @@ mod tests; pub use self::unchecked_extrinsic::UncheckedExtrinsic; pub use self::unchecked_mortal_extrinsic::UncheckedMortalExtrinsic; +pub use self::unchecked_mortal_compact_extrinsic::UncheckedMortalCompactExtrinsic; pub use self::era::Era; pub use self::checked_extrinsic::CheckedExtrinsic; pub use self::header::Header; diff --git a/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs b/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs new file mode 100644 index 0000000000000..9ffac3d3f9a6c --- /dev/null +++ b/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs @@ -0,0 +1,290 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! Generic implementation of an unchecked (pre-verification) extrinsic. + +#[cfg(feature = "std")] +use std::fmt; + +use rstd::prelude::*; +use codec::{Decode, Encode, Input, Compact}; +use traits::{self, Member, SimpleArithmetic, MaybeDisplay, CurrentHeight, BlockNumberToHash, Lookup, + Checkable, Extrinsic}; +use super::{CheckedExtrinsic, Era}; + +const TRANSACTION_VERSION: u8 = 1; + +/// A extrinsic right from the external world. This is unchecked and so +/// can contain a signature. +#[derive(PartialEq, Eq, Clone)] +pub struct UncheckedMortalCompactExtrinsic { + /// The signature, address, number of extrinsics have come before from + /// the same signer and an era describing the longevity of this transaction, + /// if this is a signed extrinsic. + pub signature: Option<(Address, Signature, Compact, Era)>, + /// The function that should be called. + pub function: Call, +} + +impl UncheckedMortalCompactExtrinsic { + /// New instance of a signed extrinsic aka "transaction". + pub fn new_signed(index: Index, function: Call, signed: Address, signature: Signature, era: Era) -> Self { + UncheckedMortalCompactExtrinsic { + signature: Some((signed, signature, index.into(), era)), + function, + } + } + + /// New instance of an unsigned extrinsic aka "inherent". + pub fn new_unsigned(function: Call) -> Self { + UncheckedMortalCompactExtrinsic { + signature: None, + function, + } + } +} + +impl Extrinsic for UncheckedMortalCompactExtrinsic { + fn is_signed(&self) -> Option { + Some(self.signature.is_some()) + } +} + +impl Checkable + for UncheckedMortalCompactExtrinsic +where + Address: Member + MaybeDisplay, + Index: Member + MaybeDisplay + SimpleArithmetic, + Compact: Encode, + Call: Encode + Member, + Signature: Member + traits::Verify, + AccountId: Member + MaybeDisplay, + BlockNumber: SimpleArithmetic, + Hash: Encode, + Context: Lookup + + CurrentHeight + + BlockNumberToHash, +{ + type Checked = CheckedExtrinsic; + + fn check(self, context: &Context) -> Result { + Ok(match self.signature { + Some((signed, signature, index, era)) => { + let h = context.block_number_to_hash(BlockNumber::sa(era.birth(context.current_height().as_()))) + .ok_or("transaction birth block ancient")?; + let payload = (index, self.function, era, h); + let signed = context.lookup(signed)?; + if !::verify_encoded_lazy(&signature, &payload, &signed) { + return Err("bad signature in extrinsic") + } + CheckedExtrinsic { + signed: Some((signed, (payload.0).0)), + function: payload.1, + } + } + None => CheckedExtrinsic { + signed: None, + function: self.function, + }, + }) + } +} + +impl Decode + for UncheckedMortalCompactExtrinsic +where + Address: Decode, + Signature: Decode, + Compact: Decode, + Call: Decode, +{ + fn decode(input: &mut I) -> Option { + // This is a little more complicated than usual since the binary format must be compatible + // with substrate's generic `Vec` type. Basically this just means accepting that there + // will be a prefix of vector length (we don't need + // to use this). + let _length_do_not_remove_me_see_above: Vec<()> = Decode::decode(input)?; + + let version = input.read_byte()?; + + let is_signed = version & 0b1000_0000 != 0; + let version = version & 0b0111_1111; + if version != TRANSACTION_VERSION { + return None + } + + Some(UncheckedMortalCompactExtrinsic { + signature: if is_signed { Some(Decode::decode(input)?) } else { None }, + function: Decode::decode(input)?, + }) + } +} + +impl Encode + for UncheckedMortalCompactExtrinsic +where + Address: Encode, + Signature: Encode, + Compact: Encode, + Call: Encode, +{ + fn encode(&self) -> Vec { + super::encode_with_vec_prefix::(|v| { + // 1 byte version id. + match self.signature.as_ref() { + Some(s) => { + v.push(TRANSACTION_VERSION | 0b1000_0000); + s.encode_to(v); + } + None => { + v.push(TRANSACTION_VERSION & 0b0111_1111); + } + } + self.function.encode_to(v); + }) + } +} + +#[cfg(feature = "std")] +impl serde::Serialize + for UncheckedMortalCompactExtrinsic + where Compact: Encode +{ + fn serialize(&self, seq: S) -> Result where S: ::serde::Serializer { + self.using_encoded(|bytes| seq.serialize_bytes(bytes)) + } +} + +/// TODO: use derive when possible. +#[cfg(feature = "std")] +impl fmt::Debug for UncheckedMortalCompactExtrinsic where + Address: fmt::Debug, + Index: fmt::Debug, + Call: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "UncheckedMortalCompactExtrinsic({:?}, {:?})", self.signature.as_ref().map(|x| (&x.0, &x.2)), self.function) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + struct TestContext; + impl Lookup for TestContext { + type Source = u64; + type Target = u64; + fn lookup(&self, s: u64) -> Result { Ok(s) } + } + impl CurrentHeight for TestContext { + type BlockNumber = u64; + fn current_height(&self) -> u64 { 42 } + } + impl BlockNumberToHash for TestContext { + type BlockNumber = u64; + type Hash = u64; + fn block_number_to_hash(&self, n: u64) -> Option { Some(n) } + } + + #[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize, Encode, Decode)] + struct TestSig(u64, Vec); + impl traits::Verify for TestSig { + type Signer = u64; + fn verify>(&self, mut msg: L, signer: &Self::Signer) -> bool { + *signer == self.0 && msg.get() == &self.1[..] + } + } + + const DUMMY_FUNCTION: u64 = 0; + const DUMMY_ACCOUNTID: u64 = 0; + + type Ex = UncheckedMortalCompactExtrinsic; + type CEx = CheckedExtrinsic; + + #[test] + fn unsigned_codec_should_work() { + let ux = Ex::new_unsigned(DUMMY_FUNCTION); + let encoded = ux.encode(); + assert_eq!(Ex::decode(&mut &encoded[..]), Some(ux)); + } + + #[test] + fn signed_codec_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::immortal(), 0u64).encode()), Era::immortal()); + let encoded = ux.encode(); + assert_eq!(Ex::decode(&mut &encoded[..]), Some(ux)); + } + + #[test] + fn unsigned_check_should_work() { + let ux = Ex::new_unsigned(DUMMY_FUNCTION); + assert!(!ux.is_signed().unwrap_or(false)); + assert!(>::check(ux, &TestContext).is_ok()); + } + + #[test] + fn badly_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, vec![0u8]), Era::immortal()); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn immortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::immortal(), 0u64).encode()), Era::immortal()); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn mortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::mortal(32, 42), 42u64).encode()), Era::mortal(32, 42)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn later_mortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::mortal(32, 11), 11u64).encode()), Era::mortal(32, 11)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn too_late_mortal_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::mortal(32, 10), 10u64).encode()), Era::mortal(32, 10)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn too_early_mortal_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::mortal(32, 43), 43u64).encode()), Era::mortal(32, 43)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn encoding_matches_vec() { + let ex = Ex::new_unsigned(DUMMY_FUNCTION); + let encoded = ex.encode(); + let decoded = Ex::decode(&mut encoded.as_slice()).unwrap(); + assert_eq!(decoded, ex); + let as_vec: Vec = Decode::decode(&mut encoded.as_slice()).unwrap(); + assert_eq!(as_vec.encode(), encoded); + } +} From bdf5779fa02187e161f38265b4da9c6632fa433a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Fri, 21 Dec 2018 11:56:18 +0000 Subject: [PATCH 02/44] node: remove grandpa authority flags (#1306) --- node/cli/src/lib.rs | 13 +--------- node/cli/src/service.rs | 56 +++++++++++++++-------------------------- 2 files changed, 21 insertions(+), 48 deletions(-) diff --git a/node/cli/src/lib.rs b/node/cli/src/lib.rs index d0c02ed941d4c..3b7a89403520e 100644 --- a/node/cli/src/lib.rs +++ b/node/cli/src/lib.rs @@ -122,21 +122,10 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul Err(e) => e.exit(), }; - let (spec, mut config) = cli::parse_matches::( + let (spec, config) = cli::parse_matches::( load_spec, version, "substrate-node", &matches )?; - if matches.is_present("grandpa_authority_only") { - config.custom.grandpa_authority = true; - config.custom.grandpa_authority_only = true; - // Authority Setup is only called if validator is set as true - config.roles = ServiceRoles::AUTHORITY; - } else if matches.is_present("grandpa_authority") { - config.custom.grandpa_authority = true; - // Authority Setup is only called if validator is set as true - config.roles = ServiceRoles::AUTHORITY; - } - match cli::execute_default::(spec, exit, &matches, &config)? { cli::Action::ExecutedInternally => (), cli::Action::RunService(exit) => { diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index 393b2a480ceb7..f4796343b5c05 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -40,12 +40,7 @@ construct_simple_protocol! { /// Node specific configuration pub struct NodeConfig { - /// should run as a grandpa authority - pub grandpa_authority: bool, - /// should run as a grandpa authority only, don't validate as usual - pub grandpa_authority_only: bool, /// grandpa connection to import block - // FIXME: rather than putting this on the config, let's have an actual intermediate setup state // https://github.com/paritytech/substrate/issues/1134 pub grandpa_import_setup: Option<(Arc>, grandpa::LinkHalfForService)>, @@ -54,8 +49,6 @@ pub struct NodeConfig { impl Default for NodeConfig where F: substrate_service::ServiceFactory { fn default() -> NodeConfig { NodeConfig { - grandpa_authority: false, - grandpa_authority_only: false, grandpa_import_setup: None, } } @@ -77,38 +70,29 @@ construct_service_factory! { { |config: FactoryFullConfiguration, executor: TaskExecutor| FullComponents::::new(config, executor) }, AuthoritySetup = { - |mut service: Self::FullService, executor: TaskExecutor, key: Option>| { + |mut service: Self::FullService, executor: TaskExecutor, local_key: Option>| { let (block_import, link_half) = service.config.custom.grandpa_import_setup.take() .expect("Link Half and Block Import are present for Full Services or setup failed before. qed"); - let local_key = if let Some(key) = key { - if !service.config.custom.grandpa_authority_only { - info!("Using authority key {}", key.public()); - let proposer = Arc::new(substrate_service::ProposerFactory { - client: service.client(), - transaction_pool: service.transaction_pool(), - }); - - let client = service.client(); - executor.spawn(start_aura( - SlotDuration::get_or_compute(&*client)?, - key.clone(), - client, - block_import.clone(), - proposer, - service.network(), - )); - } - - if service.config.custom.grandpa_authority { - info!("Running Grandpa session as Authority {}", key.public()); - Some(key) - } else { - None - } - } else { - None - }; + if let Some(ref key) = local_key { + info!("Using authority key {}", key.public()); + let proposer = Arc::new(substrate_service::ProposerFactory { + client: service.client(), + transaction_pool: service.transaction_pool(), + }); + + let client = service.client(); + executor.spawn(start_aura( + SlotDuration::get_or_compute(&*client)?, + key.clone(), + client, + block_import.clone(), + proposer, + service.network(), + )); + + info!("Running Grandpa session as Authority {}", key.public()); + } let voter = grandpa::run_grandpa( grandpa::Config { From 03e8c5a515a49d5d5974951c8fda38735b1fd92b Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 21 Dec 2018 13:43:34 +0100 Subject: [PATCH 03/44] Sudo module (#1315) * Sudo module * Fix comment * Fix errors * Fix test * Update hashes * Final test fixes and build * Final hex change --- Cargo.lock | 19 ++++ Cargo.toml | 1 + node/cli/src/chain_spec.rs | 8 +- node/executor/src/lib.rs | 11 ++- node/runtime/Cargo.toml | 2 + node/runtime/src/lib.rs | 11 ++- node/runtime/wasm/Cargo.lock | 19 ++++ .../release/node_runtime.compact.wasm | Bin 784987 -> 804690 bytes srml/sudo/Cargo.toml | 33 +++++++ srml/sudo/src/lib.rs | 88 ++++++++++++++++++ 10 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 srml/sudo/Cargo.toml create mode 100644 srml/sudo/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 59c703471d513..a64f828087df4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1909,6 +1909,7 @@ dependencies = [ "srml-grandpa 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", + "srml-sudo 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -3063,6 +3064,24 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-sudo" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-consensus 0.1.0", + "srml-support 0.1.0", + "srml-support-procedural 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-support" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 3725ce9bb271a..729c3b6486ed6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,6 +57,7 @@ members = [ "core/sr-primitives", "srml/session", "srml/staking", + "srml/sudo", "srml/system", "srml/timestamp", "srml/treasury", diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index b06cc974518a6..345b98418e05c 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - UpgradeKeyConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; + UpgradeKeyConfig, SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; @@ -132,6 +132,9 @@ fn staging_testnet_config_genesis() -> GenesisConfig { upgrade_key: Some(UpgradeKeyConfig { key: endowed_accounts[0].clone(), }), + sudo: Some(SudoConfig { + key: endowed_accounts[0].clone(), + }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), }) @@ -256,6 +259,9 @@ pub fn testnet_genesis( upgrade_key: Some(UpgradeKeyConfig { key: upgrade_key, }), + sudo: Some(SudoConfig { + key: upgrade_key, + }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), }) diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 632230133a3d4..1c711f90c19de 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -260,6 +260,7 @@ mod tests { treasury: Some(Default::default()), contract: Some(Default::default()), upgrade_key: Some(Default::default()), + sudo: Some(Default::default()), grandpa: Some(GrandpaConfig { authorities: vec![ // set these so no GRANDPA events fire when session changes (Alice.to_raw_public().into(), 1), @@ -311,9 +312,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("1a7758d96d7353732f3054a3dacb18f04f42fc48f6706378d6f7be744c6022f1").into() + hex!("bc4bdc45ba03402f9b4c7ec09834065c57205b1742bf2469ab9fc54544d8d002").into() } else { - hex!("1cf270c8a484df4931af562f7afdc9f44d99ae1bd35fe30fbd2cf3c1be2e933b").into() + hex!("6bfbf71fa08d99f2488e295807059269cbc43ea21af3316a92406974593a1fc2").into() }, if support_changes_trie { vec![changes_trie_log( @@ -339,7 +340,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("a208e27269f8a17e7f7cf9513396d3579066df10a853e030345847ec96593c2e").into(), + hex!("24f8ac99a6d98e9b53f4f6ef6ffdd12ba53ea3f247200a8126fa69c4b5047fbc").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -368,7 +369,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("a506a69fefa4dc1be6838b68dc6e5799bd5fec545ef890cadac20edc0254d37a").into(), + hex!("7b7d3b509a444cdf214825d3354507823a4c91eafa493f0956448881a81ab797").into(), vec![], vec![ CheckedExtrinsic { @@ -658,7 +659,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("3af4e1ba0769122b1e92b138fecf7ce8bb2fe4f2a65fba3b423f87942f1ba8c8").into(), + hex!("bfc8051f91071149cca8b8dca6290fdb82eda6868d48cfed25f8ca38ed3a1049").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index 09f533373f470..a400609f83436 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -25,6 +25,7 @@ srml-staking = { path = "../../srml/staking", default-features = false } srml-system = { path = "../../srml/system", default-features = false } srml-timestamp = { path = "../../srml/timestamp", default-features = false } srml-treasury = { path = "../../srml/treasury", default-features = false } +srml-sudo = { path = "../../srml/sudo", default-features = false } srml-upgrade-key = { path = "../../srml/upgrade-key", default-features = false } srml-grandpa = { path = "../../srml/grandpa", default-features = false } sr-version = { path = "../../core/sr-version", default-features = false } @@ -55,6 +56,7 @@ std = [ "srml-system/std", "srml-timestamp/std", "srml-treasury/std", + "srml-sudo/std", "srml-upgrade-key/std", "sr-version/std", "node-primitives/std", diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 27b9d48de3037..00d03729613ac 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -47,6 +47,7 @@ extern crate srml_executive as executive; extern crate srml_grandpa as grandpa; extern crate srml_session as session; extern crate srml_staking as staking; +extern crate srml_sudo as sudo; extern crate srml_system as system; extern crate srml_timestamp as timestamp; extern crate srml_treasury as treasury; @@ -96,8 +97,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 10, - impl_version: 0, + spec_version: 11, + impl_version: 11, apis: RUNTIME_API_VERSIONS, }; @@ -205,6 +206,11 @@ impl upgrade_key::Trait for Runtime { type Event = Event; } +impl sudo::Trait for Runtime { + type Event = Event; + type Proposal = Call; +} + impl grandpa::Trait for Runtime { type SessionKey = SessionKey; type Log = Log; @@ -233,6 +239,7 @@ construct_runtime!( Treasury: treasury, Contract: contract::{Module, Call, Config, Event}, UpgradeKey: upgrade_key, + Sudo: sudo, } ); diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 6ecac5384e2ff..0a44e0b021648 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -520,6 +520,7 @@ dependencies = [ "srml-grandpa 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", + "srml-sudo 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -1282,6 +1283,24 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-sudo" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-consensus 0.1.0", + "srml-support 0.1.0", + "srml-support-procedural 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-support" version = "0.1.0" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 7df5b21ce835b4bd01c162de001217cc42e8b494..2d8e45e907279790213018415e23b7ad424110ff 100644 GIT binary patch delta 236679 zcmeFad3;sH`3HPv=5FUM$;}?Jo_pC6AP}|$10n|mL{Y)5TCGc!Rs#YeTD6vog4V4T zL>((GP}jCvwOC`V)!>RdF0H6wwLjaRZLP%>7u5IrJaf)nLLyN6{_(z_Uu~EY_^U&^<-gLmiS!sKUQTj8Id_w^1mWu9UDYJ1}R>wY_7GJ(Axk? zR_;HnT4k0ju}~NPs3lZMWW*A@U3v4!F;V(#2}-G)9!#EFL@7R@R;Yf2QhIHz+*-Y= zRn!*8=bW+ln8iO>aK1NPMW{?m=oum zVTD$GD(Y%&dQ-_g9XJ1k?_vNa&pCO)qBD;{(5EY0}A`r-gP!bANR-uUg3x%rbJA5ywRWyzN^$X%7>X<$@ z|3gjcfFDsq)I^04i6F8;o&mnDt*u3cKwQ+;qFQZjKNQp=t)+GYp*?Y3eW%k6&bVJ}_vLg3IN{vnc67A%@` z%yFkJK5@aKlNO&e=Tz&TqLj<#oH6J4(-zMGek?eCuJw+n;L?-kqt*c3nRd+BgKNouF=2(5BwOv$CrZy*^cGA2P z<}5m95%6ch$-tXACs<#IRZgfyekoQR80s&U>V;ckj=KbL3h^K+c=%KQb1x9Lo`oOui*! zVdRs4k+Fp3Ui-K8mYYu6mKBRy?j!fC>*!t_3hpaX^%aN{VlQWUr_}g_GA8!x! z_F~m*e>rB=na@7i>$}vyo7OFP?)pG)FW0rc^r7nQ1+}>D%1sr$ezmIgr3=?h-_p|O z%T>w0+}m5L>t6fIpG0pjR;B(uc-=qW>L2an<+Zz2e$Lk3>-SZj`gia3SH6GIZuQ$& z{r^^ZU*qqqysvrfZvDR6>8rf2`JS`&>{a8pr+S6y#>eX}`y#n&_4c-2U-vcSmG3vN z`okB)cI%tIhTT_rU(@NUeqZH%&7rUQeUDKyT?BCp8bPXvfhf_e~F03GIEK8S{~B)%Kxwz=bOk*`l9sLy1qNgs*@BAcfGegYgcC@hsv97P zrUI^ouhCMQ?8Y~4q%$3Ixh2c-+X^_rq?Hah0XH+P7L8CYFr(H9p@GhHunj#2T(v)1 zl}%_R6^hH4V-Z*uqUAS4=XVBR(V%CU@p@x513;k}F1kns%m9K;kY1B%mWcy3zu6?sc){SR z?o7ugTkVQ)fWVjROh+bLnOp&uG3-^Kq+8G!4RkTw-d4crvB(a3bg;-aFS2bGxpDu* z1a!FuT~>EG@n+?XfeMnH87ERu66tipet{#KF^YDz28yV=$?626A@eKI*=%`jP+^h^ z*NM(13;2l1;VbI~e08`ZM?i%pu>4%O$;FF+7hj1}Fr|RI^vkcprvP=No1tMec8;{H zR07Ksq_4X~swlqaf3z%w0s$YtrzU2YMWHkc(y#$3h=@R{FTN)fw`n~h1Wdi=o=_@- z>NN9o;+Ax=8#x_APE2+#xFr>HWhzP76Sx1P(dAJF;l_-_KD{DM23UhPUxPJYk2JQK zA@F;5kS3bt44_FDSTh55i8Ol_Ut8n>A!z%#FGm07Ye`iVVi4 zN=yrmNJ1b|kLl8>=)7cd^#xARNZ{l6A zlhlw+;#EQ7s0prwR4Jt|h*UA9&x#ZV*DM|r04kmz5(K9fYrRNSnfU;3srNiA$__1u zK!rnMi5-}c4%9mNqoNTp0#)xmIQkWUqh{ye$n;}))EYzsC-A{hNz(*4Fn9(>9i;$A z8KnS6y$23pBZDLAfddK`EidqkdQa704u+_*L!%;E&wx`4CcJWwaG4nd4M7kA`SY&< z;sxVV|0BfPf&ET3<3c&mZmNfM^$m>koA2^#^${Ir!_(WDRlv zUhw+Yxge={baxl;IGTsAR(ezl;W;HYQ_?9gQ08l?gVN0DvvKNG4ncGAtzZ#rRgIy@N(>p;<|b2G`)!HDZf z;lYB97HPBI4Q9D(%xYJf#V#dQ*es$Xct(f_bZT1JZ)PvB*k`q9vcIyf+AlF#l5`GO zW#ttt3}}^l*QLK+E83|lo#|CJszptpVnY1F)HhmKxNM^kFsW0R{q8%qkYQS5V9vJU8nXQ={V; z8#B?VP;(7pmvxRMjT}#_1uN%RXGZVF&KA4?KWw%x7Nl;pSl19^mrd4>Sspf7%UC{+ zwX{g3fgRShEJsI(r7TBVtaDk8dW4!smT3$+?-5h?o(zo=x6G$g8_OkjLZ>txvsB1* zGqn79`=n>elR4;7eFhWNk7UaUPR1C5W$sx+Y3QZB*h6W^Np8NZH=~H{oBqZ)N`VKE zdBhq5=(>@VU>X2hMCpbJ79ks6ly$Nu(MHcu&pRxvfFs5W2o0xyyVYn&`|x(65W{_} zGAB*y-1*BVe?|XmT$WDb36=~!6)#&3(nY}qPW<-CUx{UtBj+!7BG5)*sNGJwq5l<- zp#S7?7dQ=6#Qe-2;vjCN1$0>qOHv?-;JV3xE{`+$FtUItx= zoUj{7!QLVK0m6`(v7_A`i^HKPJ@x1tt^dT_`g`gTO8)cp|0bq(DFcZl3drCaum4ud zV_QIg5yBcTz$x6%EMh3X7R0nWh<6Zx$*6{tugSWDyo=H6EWQV! z7cu-@&@3|lRWBWJ0l7<>MbzU38Gm&E1bf$13s1AiY7+DeZjn_}iIeQIW|1MB+C9|* zn#EXrw2E^auZCr2#w!uo^oT4d$d=rcgV zv2ax51sEp0*UTh=qJ=JR>@l$Ovc&W}yeobXTC40kVUG^txBD3*g&D=wU3_Ss+uS!~n9H00#cilF34pAvYio zas{S7v^d|?X95M!#I6f#by+1Y(1Vyg&ks5$k~W(x0(EF7&G!goa?V&e3GWK+LXl&w z3`}+k6smUY6v#DI-;fnK5S_cZu@9|5}v$N>N*oV62u?oFQZ00Ckt3o^eYAH%tr z?Lst=XYf#MRvoF`0(&RIb|Lh*QHIqTM#}_{fucxU7@ZjYZOFp#XcQW=(Wi=>k+@2L zRRG_ADpC%mVC=-Rh~b0LGs7pHp#f7VMmi9GgYY*Pe@*ynjJIHdSh?anA36klan5hW zzH_}YfPI{i2CRfI&8j+0CJ2V+&>Yh+b)nWYFyACQWP~8G#2|pOl%0))I2vii{fT%u zL=6~2h9)D+*=7-?#%3uoZs0^J6DQ8-kO4Cw-jIi(1sK_@t_>UBfRxF>VV31Y;1kCWRBJ!SwLFNS^9Py8QuLWxy z&@`|@M#C_uO&SO*7(h%`FeXbT_j9u^wIktyq{Rs_u zbH<2on7~fNi0_yY-$fH4yN$XGx@nffFbm*S3N+!HJqC37T$(1HiCok zfgZT?cH4@lCSc+6UKx}D;uicefxTnz`>Lsl!A`-hGAX#cx#lV~+MgPw4X=T_wBwcU z5u=?XftlvZsh*zeA%xTajh!uqfG~p{?0f2VvOTxEgKhq=4Hl4%#hZDw&|EwPU?-ym zBq5}|I01_>C{25EW?fygQxJvAjNl!m=iE*~niZ-jsRe_3Od|82Zzh826u@iqlUiro_Yv!AzN0k;EQHBi05y#xH(-<8+epvJMtZtNdhQ8( zFawjKl(?J&>xE33k=6v-euiogSB9j`EHJBk>+-c+1rl;CYr(~i<0DT*-s{RuRwob4O zt|_E|(!zGQtMHZrjWR41^1_cC>;&XNt3JvR#SvS z0M#hM0p17hBu;@UjPZ=5&GINu(W`Ps0yz!`9|u+rAgl}$Ryw5Om4X>EO703#4I*}5 z?h{oV_qQWW0l@Hn`)cT}P*c*7QIR2|gdro_xK$z;tVc|PJZgflDW;ge9z%8m9NQ7? zl^+bGC0POgtYHXOaqLNY$HAXZOSTlt8zJo4ok=Veh9_LYK?NhkMZ!$yLW-@(03_#; z9lax8ST3+0*nSM&jpU zv5nFuml~{6k#@OUIJ7~QLPJDZQEHK<7@)YeXqJjRvID<}WC;%2yAotfftAoo{f#v! zrKF!iS8cXn6@eMBRaC`-27>@<7H~Dl8IJ||wA)vVr*VjQ8|82|Va%Qri?pD0gc>J& z&(mNLhhW$nm3Py$n78Gm8=l=M6hKO0p0KG2L{ai&`Hh!3+%E9eYd6~@6`3aECP<)q<7S<6C z#W#Vx^R}-FHmF!6WsLkemVJxraCR;PW1wk2+)p}zHpKJLDxMC+!=BdZgoh(UHxQ!5 zdWhp0u|Q^1E9QoPYH6bjb*3wcXVdr*tCX(x9|!_aC;HJdd2lI3YrO<4?Lvf3erOQs z7}&4h9j$IQd+_@RSTY0l#?8acjW!#;)N_pb&R>KoGG`Tgy>6-@)0i$wi52J8i z_rj@$?nAy`_(amxPBriozDhtFp`iUb(;UUrZz>IkHK2YyW00zS)X%wE5rdSjacWqx zs{twC513Cad+pT_{-Q-Dt7@NO2jxXJ@w%pZZQ58DDQb-%#kAnJRpUaY!dC#B9~uW( z8qmmauN-X%!mUf0TjkS6q8)4mZ@^-lA|q3YKSACS&a=oRfypc_;AHGYZE(W)ghT8N zTXGl%OF@{6v=ak!y2*>`^>(~bcrm!X7ynDFYZ+7q5F}GLHcx!Blb?6AIz4KbY{9kE zO`eT#zG_pt3kD1gaSi4L4_Vf^(5HcEhE?d)%6GH*c4medG{Kc!V@P+1PGv>P#HSkZ z04dJlse}blH2rw+5q%_<3tQ_?xCPuQY89UtA?`^VTq|uJGYDofQMp!AZ z6A*EP_83~MC^P7n!2pYVPL@vRmJ$4@!|K4|MaPSANLV1_J*hSA)`2JiJ47_Vc*=Q8 zN0QH)f&${;ZPtE{Z9M&MWU-T}0ApPQ1)?IinP2V%fSVMzT}$k*8Y3}^QW16zwo^cX zr$E8~&m6ZJY83ml_ha^IO;0&A&nd>ix0mtnjfVmS-ATAnL{gI?-;X3TLK?;!XQGF) z#Bt4rWnv-%NiYdQYnrA(+|BaOLuR=fZfQoKf31Dy&_Q}wZ( zXpt$ANuYuhfpRZ+1!#@nmGnTT%G>xsbTy;CTbuDX0AN{0WZq&8AVxr8EueNH`Z6*Y zs+=^L7Xy7l$Q?>4rcEH0alGLOo{+DmWw!;XoL0T33YhWF`4}BAcg_dGjfEA#AWxd+ zS+gdfLpad+utFFEn$JH_gBCb)2J-5_1Rh3+GticiK&;}Edv&&2h)@Bjmqgo0Nr+Y8 zuN;46_>07`LGg`!aRgD>ZNjf%N^x|%#Bnn+-F79)9bYHYPz#qXJ>wL_-Lg)Ih1oIY zT}6zWwJqpdc;8^`WN~5c&>TQK+3}M-VhTjDuzDY3tTe2;HWv5 zVHU!`1tB>&)Rw@R4zh<4?H5M0A04_h$FCxgF;obSh+TV#RPtiLq^<%|(CMZyXp|=3 zi`ATQjoA!NZZ;4B80qd{Is0lRW^XKKNLKjNJj0ozCYRER?6&DV0+N`#W<6|YIMmp7 zhVfb`Eqe80&`5}P8ZiLR6+7cd-1ljP+F1)UnzcY-0-s>y)WUYyooN8lC_=>doy0^K zr>vG?pN17PUy;i!BOfSl_K-^oE>vH!D)AI5XqG4B{G@O}v2%cZPY@gIdvb^$!4<`; z2LVeyD1|^KT0Z)RPN>luLYMIzY*`H}1K_bm`*r$NQM=Kjd_8M7^(kMSDl+s*mJ{u! zu_((3L!jBsOnPBt8NAr(uoGroC=7zd-;8wFKhMZ6^>BhT5@I^EjCqob?LO0x?+&*O z(e{vJ85{`pL|FxivZ5Y3LOw;1s%o~_u*Hn6wjH;l?E+Jcuo?ze!l*y6lrTnfaFTQ} zi-={_x3i^5_BBzdw;s?zk#(YrJk=DdK)NqsD3p09vM|xeK?7$yAD5%<^5VY7>En)w zRElx>j3XlT8Q293Rv2Ybq6+Gqz}!<~_1;m^EzHtnT{p~K^EMiwo??l1+-WvWps;_P`l=ZoSa;U0Gothy3PW+LCvN>M^qwHuZ%Xc-9 zwb)_7P@oUN{hFOd3K35rNSsX2!C8|v8#JClgqd@GYEYqp3B~(RGz~M?Q@&GJ-mzrA zx-VLVQB}a^7OR8x%qV&@G30~UBJD@rLWor(C6_*oh-PaFMqwnIbf2<1Gw@?T+M$g@ z$g*y-^2|{=R<^Q9j!pFe#9W%dTLzOn1dj#0IrbzT?n@?qjYtGuRWprCHn4VZC?m3l zoTFJhBzlHWgmIj8dHVij(rK~?iQ5lAtqa*53O&vyrr$2s*{desMUanw&w)odyb_ zX>qBPoOt)(>C0o@BsJvco91<~AT zK-}OB(Mfk2z-ok$*WAcEf-+22STYCLsxo z7lV*Mqi~S)ZMZ$4c!7|Iq<{ogQRx6nC1Zg`gK@S z@i?GOv?3{M6T^^{j~7FbRCIubEeFzmAd*y@tV06-dNmUG*UOP0cr=Lw;V5w=^&OT% zQrBTgB=E8bBmlexcs~TM6&y$Gzp>mVRyH!;(}0{4$Kox&H0{P%BqU+~b9O?f(>M`6 zPRo55g_X1wKwAwk9R-4Qt!C@fWs^woE6TsO zOt0KuUKd^Z&-Ipz|KPNkFiQ?VGe;jFr^$<#>6;IbqkDNBIZ$@Uo0sXm50pcDd41i1 zvR!^E_3N`_mE3x+-g=;%+)K6NW`Vig_LRPOmOMa=(67#twb574?Y3OlD{iYku0GUH zSI?H^y?lD)Y`H+bdaizYwj48#b`9Nb3)JMO;+XruuQ8j^$yOZo`TDFD?UAx6xjNUC zhUvmX|1UsG)osm9s{t0+Zh%3U_6~9?R#V)qG~8O<@@k}^Mou#Sp*vb@!V8!3M^p&-#} zPHNX9PYYJ-jqe0X_4NnK{aPGHIg)&6wETXEt{FR;9OI~@FvA5NhV@UPfhyY@Vp8h8 z4v`hDC2o1LmX623Ufq>3=;epVgZ9~ZXPz@q(R3j^k_0<5l$}G4H1dQ3%>i;~z=IqX zh#g@S)Y`PG{ef2sp53XwulVv_x z_P&t%`NQM^>74_SR;+rUf?CzjEjG)9YeU>H?bY+MGY`dL|Vos;N z>u_0?*`a;Y8O(>Uw~J#sr`;5@s}qODZgSx8oFj-+t>j1=cQW9Xn5oAxCZduSYtv;e z@qQn;8!z)mT+wW8@E=Otk;xju?1UcmZMkP3u;D%!HnVpayIXBKCXJMU-xVgqq(YW!0seyB5dL-_Da$98 zAt(WgQkap*a>XfA6UlgK%pK#3WZkauP+h%MCH2^&q@zzhN)9e%UJT8~N{+%f=}B+? zjvUhneP9?^^;>*DB%F?PKP1!;_twWA#@>H&mH4tO12u$Zb|;FGM_I8;qzDloPO`u> z4AzYR>}o0wKC8+9^ZM^zTzBb~t`4B2>!2JuECrqk!W5uD02(j$4h7kzehIb#L!=Sp zN{A-d)NDpjkr9s(w+X9++nR8$6#)}eOm{Xp6z6X0P@7ID`v6OlQJ6YS(q#|9N=L|7xg!S&SNhVUkVBg=2sF#G8ulxBjh{hUfML;!Wdcw(E=??A0umCFM%?F;v z{!|25naNWxh>oJMr*ja%L&%$)Nu)a(6A^%vG1>qivps|&&Mov_CBa@KW*l+_O+mOe z8qWf=i7dHo0TZ4!ODFjh#NcFR1x9c|Jli&Y3hJwiydROw@mmbJL& zE1q$0U*3)Bze2zf-644H*%5_bYj!7P&VxQgk#UB zO~>*lj1!0yHe>CRu&FLl3p`jb5^K_dgdn4l1Z4nTw=fP|JBXX2K1}NX6z1X-k&YcC z1a>&C$aZBXw!x$BCzvSi-l9l5CxrXsU==Y0Kow?m4&2<+VUptNFycCi8Ho_(7pEaT z@n1AISRC4<3lOCeML)a`Hjf=23Wh3ovDkcR zadZ47Cd`cy=5f2+SYcbz1j8=OeLT-}OVIMGW=y{XLKyMPGV`&_plJe{y^m@LQD>C% z0F>s1BkW_ydn}0pdlS zKq{zDxh7JXF&Kc^(oHS^L6gJ|e-zJY8}Naxhb1lo{*gDI;5F9` z90(BF9PLLS3p+T!y%-xW5&TCa4A!v^l@f_EtXYoD_V za4Zwe4j{nw)W8a}@@*I{tvGJLVcd`B$e2W%fe`x3U;=~|3|9Ks6GR<_#i(j|Pdx`O+~bh!GK)!=+}(+%{wmP!gHL z4dIb_)GenaATp0aXd?^CB!w7rO~doV1Rli#pf%Sc@TeO%->^T!d_(Ri_7Q%Ymcnbb zuqmc*>Y4kaZ}|`srjy?xC>yiO(l%hQRIz|g*6X$V2FoHK8Y1ZD^uL0Es(qPKn99gy zqJWbGdR#tAa+R}CY+&LNZ6C^W;(GD>k=hcd2sEE;m4157`;jWHAZDAUW>Zs;2nF?O;!|@?iCL!REUF2iT~M<& zJ~^-EzNY5BRI|26&ARwrc{L9(H4mVgP-zODPWjbZX?X}`UH~(WC`}CTrh57?lsuH94;u#}cxnQW?@^K`kfAMi-Z_(WK?#Gds z(64+HsnzA5L`I6S3~VGveG(a`pHg-o=&L`E49gX*?XXYMOQ+eL`p)eb#Q?p2hFyUK<=@iB zd>PqKCuholzI!{`Nt>7H?920nW4d%q(X9UVWIbtnFsxU971>iXnEDOb`ukn663i%V z=9RwU@Ag=c(&y}r4pVwzlU=Fz6ZW&B&a_!apPi(CChfnOi4sr@c#i!fGDc5p@BwlK z>2vb0jfe@FjUp*n+B@yXg6Zd z$I$t69{P)V%}_g_j~QnV!#KGdiT8QCJ~wK&7nC#TF`*8-rl5STUR`9j>-sqA=g;w5 zn&Gx_s@*DTO#4W@_K)vTgeH#G8yz+G%9*lQpIU5BDX8Er``9G<$hO66$$iw7*t1oC zN9y%QN6JKhy}ZO8qOc2Sp40l#68jF-=mhj}WpN86 zvt{w{Qig14wONKmVvAFfUy z0EhJv{qXIF+avS!SLG_EgEjVd^&3s9Bm@`wK8bR@q{hyK#ySwaQLSq2iB*-5x=?Pg z3xfYFC^r^Wtkj3s+Q0Af<&Zl2yCR`~QfEJ%qp*ebwnt$=qf-6HdOK~%Y)Vp<>H!US zWLmq79#5smZA5y&$Wr}KgWbr;*tNaEPKkmg_m<-t$DWic2Nf>X-%r`)m<*&zsXixV z?@^V8ZG*|c*^2)ZCd0E%>*rJUYEiCFPTQwt0Xvn5HLUL}Q$c-Qf53G^xqU7{c&uJF z06^ScW#6gKY*TR^8H~6046q4Zg2WQq^yhVIu5KNus`V3t?34AHf%b*^!NK+cKnEtp z{`x^8#f~Ps5mdxQX`;??m;pWM{!MmO*X?`T{RQ!cxZYf6*XV{JXgbk^W&A-x6?Yvp zR1Fe(#ZdbY{oWUm-)TZ_{r3m_lrdx~VMMFGBjOG4r<3iO`tT9yz-fm_M`gIL;x(n4VUUSCab-4a#A>; z`%ko|>gl6N{b5F=*L2v26HlwxznvJa(nH4B)2oU|+aVkxvoVW9Mf!p<_6>U8C_ACY zjJ5k6P~@);LLhRhgHlhACijwpc0hWeXCzoDR`nG)y+!+x%BW#bvJl%bMb+#3$J%ER z<_Gn9j8s$^SXb%#z3d^P(mYjW`C^s6crW{Y-PUF=&=ZJRF>2oZSukyQ*L$A@>-Dg9 zyIj9KRJG`hlkAxO&ga1@eN&s^j-~qkcKf*kSeFt5Jf4b{>aBa&SL&l&!z) z017qitIpIT27+m^5cuu{y9zXO)&$TVd7T+u5jC0vNK!vH!Cr?t%l5RVR23W8_CV=k zyCGoT%Me*k)~S*mW(j%dn?4Q`W zA~$v*30J!VH{jMd57GAsd)tRAX!|gc@9T%x$iINoY>nxwqk-sP ze7qF~Oa#q&K4q_kch5l!CENnOPCj}c!>bFSca@Vz%; z$(0LwbMt`HOGhv+8NxfdNf|O*<1~M-3KE8%@5PPm4=lnC$W~l@G8-0iX2-ea_s;$J zE_;P9>08>fgsmQ)oJm>Pj&|@Sdt>Q)9J~`#j)7#(PQgpTUE$X`;>i#7?;Z`Ghmm3A zlfh$9!Leq6+LP^E%NYzJPz&AQVls-E8fcE#=8)dT2R0YmocRRRhYo zujQ)M_NX@At5%I_ujZ=N^r+T>=L}7PemLWmT)loh>h0k*M?bT%DOat!N40TYHH!2x z5oQdzsvgzay=pk_Xr6rZj@JzMD6prY9&3Yjr6LKwzDx;Et#v9VQgyk z>LpO`xm>;CTs^Kf!mAcXwP$nH_)391q#N#4BN_Qju3Dl;Yc2Gg!Scf=>^_~V7w=JT znAaR#T8YR$A9S%E)rNZ2BB=Ict{O+yOH2YK}z)O$2nFW95GfnK!~sy&jc#?HsQ z!42@LrBMyBRsK{}UTYa*CVW;A3(+5W1atZIWL`b0mZoP^8-V=!Ts6MUF|XH@S8X7w zVQboJjgs6v9k0$H+67n|ryo2rY!BO&!Np*S_I&pZYu?;WVuN2{p9q0xBxAosw$^07 zK(@wYw&VCvehPw09Fbqq|#53tu$GhVfy|i`xj&fm@J)m z7-+I@AUg;LA!&aBc{uDtDNg~HZi(4_8w~D(%^Ao|T7jQJlOph6N-1Ff6G{R2ODF}@ zFQybAzlc)6`$9?q>rDFp;SqZHu#lv2R%6G{QNZIl9PA5#jDeH1?k8361< zDgd-TpcJ5bpHjf-JxT|4SiNhPU*&W|PlX}vk~J=0p(GWpQ0wwGt0^$dt6V*v!fjS0 z%=UVoI-Hli^`eKYB#smIRFSXLdUkZUdh?uay6#RUr!U z&48?>D9C<#!=UhHXzw=-4)2Tdt%JjL;z>9G5aD6z;Z5O_kzCUh{s)pDH-~?YWXO>4 z>tdL;hlaNxcJhCRhVPW(sjjPrhlePAs2f=z4$+Ugkz2&ru9GK6UJ`hmym#c>;~&It z-eLr>0G$7~Vl?#dXrMy}Yh^ur*6nvk8p>F$Mes_Vs;Qr^l{NU?Tx^CyvxUaitdfXH z;P47);l0E~_K1-f1O3u{^89X?FJ$&2p@MRpLNGZPGF!30<{{EKIfTeq#65^yU=A#_ z?!%&GVlRDRB-Ge-+Em#dpe_Cwprxo<>)fsUA*5bL6mInjQK*IV0EX+2513^--wt9Mc&>$Eg1YfUd3Am}Yfj>r?6*&p$BSvYu@gbn2z?&cDF^C{PQvzh zUZAm8_0f~$DPA4omz|w*LcSlv2Rv4-+BGf>{DueZ0KF9t`Qgu$8p2iC_-Ce=g2>vW z7Xr=t5vYnllMQTQLm5$%FpySwmr$%TmUOYi`HI{u}?+3C<*{81#g7bdOmn}?X*uZ{lH|Coos z=>Mp{U4z_CqoVigZTY-_`~3O(acSB4?ppsl4V6Z0XAijNM@uK&T^ULN=z+fQZz0Aj zgf+wDK!#tp1Y)`FSkPw>G_N@a`cB$0(ASHBr{HSpXD4y^`ZIJht@ouy%>CD))~=Aq zPGfrYy9=e$kVoacWc9F9WJfd4_D( zhm{A5$}ou)P&W#+5YX~KaO2;fDo5co$GfM>2A>W4&PR`@v-1&WPns9Y%PPY-@ql<) z%p38Dkim|C-ZDZzzgP|oy?G@BcDY8k18d=u3V3+9L(daVlMU$k$kSv>-hH)Ra+<6Y zpXt@7;ULq#`jOM*P_eh(dYaq=PeV?Z6r- zmTdXDSuQ$5PRu)>k(GX6spYO=sa^nefpFA+IYTazZ(gYnI}^i^dc~O-`F{G2Gv)kJ z1hLW&`Qfk?pit~20fiA~$$H}B7|pnRHt&J@p0i}ed)=&${h>@&!B?)_J1G*@rC3;h z-Sv-uD4U9IG7;!3uC86K|L{Y3M1G^GaHs)V@SX9%czxE{GMSTEmz^yK_5Av=vtzX+jH^ z$wB(Ta|>mgSM~FA<*8nsvFP~bWwJ#~)h{iRQ_B45=4m5($Z|Oh%m1zAvc(@-ALzJt zxx6xeXzqC|cE5L?oLWOCBw9&bOtUTtA26wVtzcRD(evcUUOpRmzMN0PyyAR0#^Gh@ zrV~nei;_Rezn?Fs`NQiQatG<_ek>>DcQ*1u)_|fH$f^50p}Wa-TY(D`5S843h<=eg zFda-FuG?@)x*2rmTynYA7swU8baL>8(k+_?`V2YpM~K@~KXUBbe*`SO-gev6HxAfSHzy}$WcVE*r;V1I@3a0#xE97?iTl5K~#xVJz*wGvh{9RxvJ^djD8 zTT~;O`;@XAIhpkPgZGf?*nPC(4LGvn>uPQRQTr~ol*4|zh)vhWJQb>$>5Wd}MXMQh z2-#tjHGO+6W7p1)<)kbFz#Ck4R(kzq@-2DWgZiBL;W~Nmb^6g&av!{fP=dTdP(5I7-FyYZW4)T(X{nF!9l_rJwc`}uae_#OiiL!136nhVR_Q!I~ zFW%!EFO}mQue%&SVsDP}TDV6->qc2$aykF7y%np&`ZvjHcY|Jgtt>CWwzc4Orhfv- zze~N}wQ_95-P{62V3Hw3UCZQ~diLcIon2e>Ld*_E>`(AmgE8Q&gf|9Rw%~GkA zxl#zd=QZ*yu|?l|4Gx39uHU{!PRR%e5BQ9jqMcxD$7N5NWq+i{vLjBMkm4IHJAMdA zU)_kE{GKcSqJH37+du0sqoNI5BRgI1+N|>P87=mUKLIJ#z z_CqN^H+j6i?>adl9(NVuh!q7sx9j2!5l0{OSY&n)VkL7`PtfOFFQ*>m6$Cnyb1pJn=O6PUW8S!#@=A)tJ8MjOmApQ4r#H+d;@ro^vNBZk&_sJouDc-D4 zy-yC+w?2+w-Cy1(%k~_L`yFWKmCmh1ilUROK|=<#3?DjT;3ULE81kk#aQyr`W)qB4 z@F&PWt?1lLSU@YXM@99g{%3siL988u6CC2FZ2AN$Ml8PmmaQ4wAwzfo zA_N%%2chZ%2czKiK|1P(vnV(`V=yfWJmymuSZPoOzBK5O!pR4Gj6*v(^Ma4#_!x)l zaGZorNYDuuped~b*arUu8?C;V3!(`prbpf(`{5*qo_dFzQp!i}eDdOB6Z*0{ z-h78V&%TM&g8=AE&%PZOLHy`WdD!50KJ}J^R)HLQ*k3o9mm7n@j9e1HpUmigT^ed# zRa_F(PySXW4i#uf@nS*GwM4r`1vq>u@K3Wja*1FgdM?R581|NuGdV^EFh6Rr5yA+=WMP zCY0%YMpLuRuqaYS6e*$|zU%@}G*Dq#G|rbbijXQ#HYviVJlW)dOa|h669!_?^RXOD z2s-%9`8J?!peSh7_N%D|&d~1w3&=g6MY6<8(J^Qaf}n$OkYh38sN7aM2*4p$2y0Nx z5;x?kX^A5685}F66H7RJrPtmkt8l-pjo#=(u(v1?OHtI#3OtvFW_T!g!s#hA1DWIt zJYM5)ZjIY8zpq_m=7VO5TWDSC&6*P)6f7`ShERbPm?Id7+tSK5v1IVZi9cw7|T0laJTUlYv!E`e$n0+Mq9*~5!C`ADYm<=$(EGXePvZjck zZxE-|D>5nv*J|>LjMl+LXrJ4{{5^W{kuZaiWXryWtms&YAvaPP5Enj~PAOwd2KRVI z+)gsSr>U9_(R6)$8tdUxO;vRz^B}MUoN65hn#Z@i!mMx@;mT&vbadkZ3J?Wb9mYc- zo(vIA3J1lc2BC2H5w1CE`#wg-3I_n_DIAIw4*I#~{6;g0A=y^ZAZZ%ZDrp*it4tf{ zG!D*bMh!P1J~D$o5vU7o8PvqT4gf94fs})WLE?-y<#BKra5DS}7Zo8afPObi(IK;e zj>1n?8{!Sq5^*34@tYizFf5L_UOiQ5@%Sr_2JMJhq`mlVG%}dzm=dW&=oDk3 zA$UUrH_c#dzJ6rI>5!2@2zDKzJ4lnD8|uXMmgaYRnMI)zkgF%NAzMs`*R1X&2o>s<(t#!jKi zkR-%~q>JF0+=`MD3S|sGkKpLC2D<(WWmzI*C7p}B``HMBK&^S>MIGf>%2^l{LcP!o zL$cdsi5oMsz@d3zY!cjftWqKVF_k_5kip%=Js0wu0RZ#>x8SY1P)@5v%=9UZkDwfy0y?F-!@6K zl3yK<%;IrFLjWJL5t08M7Kfl)hdpv5F7LO;*yaEc1S4o1j0)+=Xgk8V52+qPi)Z} ziN~qujc0}fPEAccraKaN!O~$ef%&2ej6DPu3};3QzsE172VmQ9 zDP~W44jHRP8j*nsaf+X1uQt{y%;ZXa;ICvb(Mo_+W z1wH@(Ac~K(c776eK0ac|iLgHBCRxGWYGdg`zSDA9xCaJW1MpN#oK8_hWlsJZ_c5;r78QILYzb=> z^)6B*8i=*!oB^~+>Ppf(*!E=&!LvPMzqJM5-G`_=Nik>o^E>4sd%zS0xFlfUQWvVqzYw*2Bef?p^Xb4LDcE?iD%|<6%0j0V4(+N?+V1{{T1h z?|;MI=1sqmSBro?b)B4m8-~0rv(Or^Jeth0R&4*zS>YyIGzE`Dp68K zmj9T6=4WKd*kQZ}?*zEWp;nuYz_DRk(arbB<1)ZMsKr#((?GZ`>aYS$p`vE{TcmJO z4c9C%d>J=cEW$iwUy08o1p7*O@1L$8vC%88gklU5bX5u13GO9fMV4JiI@Bf0E0~<= z!Ybky1PfTbAw8l?4r}yW7+G)#!*jiH2z_RktOY$?(Ip2cAdvoTmmGySm}x$Bb+@|QAn^O|nUtC#}Hd0xKEQ4P1eAcyBiHT?Mnj+pxL1?+m}<}@Tfo{O%-3+Z8>%6Z4zhzZ(C^)sxup=jn~GKEB$!eb7wr-Kz_x_c#9$(|i4Dz4ssG z$3t>~tLE-K_?0@WO%OW}WgKC-2{C4{UvOj334fC358EvOR=!*qRdWB!*c=$9H@_?o zM*#BJO)&iK`nf)NlWcFm@6W(oh);{Te_Pv)oI4bj8ej+?se9>K{m>>kGW7J%vGNtP z^8NKfrK0)JY<&eg#4Y-;SL7^v8y^6NUqWwuMOI;z9)AVa**5+5E3zrJO(y7IbIe`& zb6xu?l!I;h@K@#0VxI1LRelTmcEzvBi|b!nT>!bK{YOCVk=45EHF;edwvBwmz<%~) z>uJ!9a4b%Ux!pifJUMt8Px7CU#$Af52j}XGH^YBNAvKR~maX|S_-ZqNW9h~%a-e); zjh?mzn;^HZ)(f{3UjKYM-iwpFUfd!ZrM!P_*N1sN)9`=G2ax>h-||mL9@#1fiI4R^x5`Nsx38v? z7PGK6(4fo;CFko&@5y6PaqWAud?y(2!h3Q7P-gP`^4NY-PIAJu(L~pYF-q`?ClA$I zx5$Ha(FbzAzdnBOm&bSfFf)(uaDX28&aEHF@8bYY@MGa_PRc1uE`X`P54i0< zxj?V}P=1cJ(;t1qwY%YCZs+=Kat>e<{6rqd$a&HyazZ|Gdd%wCPv8jy$!`5bw)FCP z+NW~zzPWYDuAvtXKn(c9)ddXr9iOla1AfbY1f6YOtzY<5{)B>)K9i>sqQ3OG+`}V@ zA$pJPvMhfH%m7Z-XK$CEh;3b`eId69qz8W`SBgrr+RW7qDT1jb=U?%eI>BFOCmVDfh^+$)wQg57i?>YIH4ra|1u&0E?RA4J=p|Y>uQQDr7=xe~Do~8&X4? zd&&zz7owKKK!E+9#Ah(v$*f4W=yX`k7)7iYJ3Me{r6Z0-my067MFW00mZQfDeQg*f z;5Pk0SPe(=udr&(1vUn!2SR=(^j$@2 zRE#&_$r!)jA^k?HYVB$$Rwt;~JHPUF>#?)_lTtMkXR}@{RY!of$CRm5#a>`sY`h}n zO>9Rb_tKqZ>M&GXU#1R4fL>L(>XMbu3qXy{LZs|_Mb)+XtxEMsU+*5MQk8P8(65hE zjryZ1wY)eRGGH>=Ew)GL;+ZnswZ2*%B{7+<##*&j#Ij)r_rKHiRGk_w=`>)i+Ve_B zEzw_4&OZ=E%V=fTs;24czgDV=SGEBn$w_wL%E5MIP!x1fSXPcx zk5P(czoFQ7L%1emfcVfJ>T%2%@Y++as8PYLr#sZV0DXhyo2>7gh|z!fC2nflzL$!G zKch|~o%)hGoa!7fN!7-(VJ2&?BV4cPI$@IfmcW*w7ypQP&eI!Q^-lzb!SzTNSJ5q8 z*^8?h^-?!nNw+awh6x`xT9xVZr>JsVE~d1Y4Qg!EcTG_b5n{FIHG8Xu;%v~1$(U(; zwYTapH&(3~j9c1%Hxwh%Llm`Fw$j0+JK(OMg_@YHG114Zxb8PY4cGU#1$ij#S=4B zvY5MImoRz(q~D&Q+NkoGRL9n9_Emdi+nniB6V^W0(@e7_vr;Mos1Z@yF`S8~4TQL! zG)N5t)_LH{h7XwxgX@YFxPL3TzZ!?woUdl#mbGG??58eA(!D1?;Xb!R=zgbt@OvYw zEXe~lJ6&eP=UmB0OPR`&BMp^R=<5$u$#$;mGbP3s!_>$lWRP{QEREz?!(RGt2dY#< z8so0v_$Ezy+!TxHU9&)fs=xqn8k|3JKrB@?|s6l%4EVW;8Hq^>w7(^I=UO!7c z90UGhynIta*X6U-Z$vEXxZSi~&puf77r7sN`Ii3k!KxF|WZy&7_i=LhH;3TYJF!A5 zZcrn;79Xb8iy-NTAw6M9s6iioxSCyN;&0(1C&wb3s_uHM^>FwVFTX*r zI7$uC2Yg3G^qt>TA&%ThcK1B&v*k!d2E)@wKs?{d-!$njzON!ZEy$!k=R`%({HK2# zyc~l3-``P{`u=aL{`o?&bFmr(11fo>8Y)iF6OL3zvm$uyk*Y1fn%C(UN2=OB&fZ+* z`9AZszid|Tdz9K+Zsfrh{HTrB?7xnJ2*{g%NzbmUvA@wtN33DcHLF>4InqH1xIu5# zYrbQ&6ijZ9{I9%u9dWdpkcHBNN2}ueI$KvWBtJP?4GWnok96t?;L5CHl$~GCjIwLl zG3s17BTrk{Sr#tzLIVYw!kqvUJgXt-@&|ku>+;qOddYXOU6NCJak&+(O&IC_b0^jT2OBXz7jJmRm%_9-uqsr~<$-2!`pi=cohw=M6RD4a&b#%YUWc zoudvBdv{Iw9#A=SDK%Ve8U}XZT5=sbQMJmOZ`7@qs3!f&YE^KU*}$^vniJJbS$Qu$ zZj;>tIw2|ESSTpoi}aVBP{2m(p>tIlxOTu?HQMiH!D=dAW@hR23qxi4hnO*dzC==T z$4zLzIBB~NPzHB!>fsC2PGp|&ufJzCi9tgmJr1Ye#a82VoT2;|wz&sAP zN>#&R+4CwzPNlQ1Qs*N1;wtrre)QWIn8D%ZBK%nn8A_ms;>1N3#v5y&Rx}AYEOYzhuy38 zFmCZ%{{VaEf#0dSXfe^ys783LYp)o-+D;OX5aNg_o)|r82dhQ z55@o^Q^sAtS2sk%sR;QG+)p0WN8hi~gtzB>s+#q$?l0t+?gp6lmj3JgY6#(c$sY=J zi`jnwF$~jZ{6V#_qZ9~#x-!>!#Vf<7Y}LoVRbWhA>V!&Yy@YoiXKs;^7;3^kML+tc?8%+ zOryd5^P~E{M^uwfR!i2afjaSMuTz}@+Yf))`cmrhXDf-+E&;~rA%_H2hK_!X{si0DS^%<1p zx&HVGwUA(b;*)A<9bhipdmd)|7=$Ab>>N5HetOK^_L#ooNi|?6 zQ{4Kbx;Y=DYo6luU;mV9*vXgMpCa@1pX)6b|0NNuJ}ptDM|`Ggfj&<@ty+9YVTLU| z_1#*(;$hFI5j3$MKclvg#GL)Ap{O$b(`O5nmYbi&TDRzDo>eX7e}9PQTTb&$EQ+5R zbMJUm7d;07uucE`IfUO{`I!FObMVn@>)LapI!PeC<$3izk$Unm{;wRBTgXPMHi2$1Qh~FqgjOOO5?|2d1(9)Y;RC7GhcQ0+}V|no} z2tT=4AN&$jrgI<-Qbqc`Pr!P)tzrET1nb_5%U^qfByz>1K!3DZ{72k0dFvy(yKYmgT(>5;WafnJKLuo#%#}iZ3ohj`oKq23S8*E*WjO+ zt@q!o-onC<+5)p^n?8CA6j$u}ZGob>O?Pim`y(lOT}=s`=5}w;hrX`9w-dzP^txJ| zKQoUdUiW8MFXsyV&Y#s1dC>+v?+v({w&}#1>x|`orr7AMh ztpv0FYJ={6OV#747*AI`(e>B2)HPw~Sm(Y2`S4NKyniVn@Hqcn0O(_V#k=Z=dZU}) z>v0Z)ILSqj%r%hAI`JNKi>808I-{BmbL#R{Gd$=c|E-43%#)RQS+Z@Ia7mlXEC2ee zegQ4!e7(V~YJBgSE60U=eOrb7dgr0t@~>4~%RD{U6ZS5IzkYD53g-PhY44K(>~P(h%evvn6COz4fi==$#&IL8Nu@H$N{v6WWW4S_4mbjAByfjK7@uY zyYBc%Ef&4r<dZwEh!jMDH5Cq9c z5=6P^pkPkBYh2xR4d@#7xx2pIxAu^84h52f+nXUNlo1v!h` z-|!4D6!pLrSW?G_aZP94t9hEv&#oF{QdOq|SpO>+{Jc zt{YD|K~Xv5x=~)slH0EvFBQHI7c-#|$j{Sj@#ul0p)PAY`G9^^=?tG@-TW#@JHRt8oAWl zxvX*45_h=-*GE+M%~+D_vc?Gs{^7_aa)4=mthd%=vM}F<41Xfbf66(2^Gk^P>q%yP zjRM#|U{*uiihy}rG284%7zg)UAsc`hqkK3R%b1gaeN)D4a{F9r$d|%!h}z44h0O=`v9slZuz7FcjvD&q z!88^4ogg)>qr4V2|Dbh}Z)BKnKGqovB5f|S1jE1sEc@nNx2<>E&MF+pRLk8qE&x?& zaGM~n%5&1RbJF0R$LhW|yJaBLTw8F|DpYD6r1nZ{NkcTtPh55NpTi6?6Eri_z z9$%N}oU-O(L+cv-=RM{-8p7`@nyrlFnKPGgn@S3J{ZSS3f3$A$SQWFR)-4*SYNEwQ z-BdH{Xx-(*)gZ#1qT{Qf!pio*>UZXfUo1(nyJ%bp59DzCb+T3saH%`)*DxQ{dSaT# z9ECbVRA@x}Tu}6AN`La34p z^5a_OS~|}6nXhRDy>CWi?SXPqZS!&5@O7!SSzSwxR;ptbGqhgOhwGcBuCg_i+k6PYGfvRM2{t-GS`#PE33@oeMkh#n*ojj?w8z6{b)lV=IggqDgpc(= zGxNXUa?NgL77}@uuyTW=Q`2uVzqIea;NX;!m58-!5?_`PysHv9V8^jejvo zvaI%u+2|LO_+`#>c;(z@%xZb2LnT#~;kWR%s?VAa=9vVgcMIfX_3Rz8N|rUAGoQS3 zR(J7j0r~XvX4O2iB6sDi=gsD~i!CSXzF_{nh$9&}*=!OZ8}k(a>3HaUvx+?Vg89Pj zo_DGx+VMqmum)b=^IP*}y4Sxo{|;VX{w;J*TM+&GOPKJ~4$7$=p%BOwbyYBW;$^df zR#IK2%KMhFtPbnfi%@k6bDw*;i~_Ret7gHfnea}V!eFQ<+y~64{P5@aBrie6+_|lP znu)Exf6YvnAH8ap$d4u4N#PXS0-AwKe4&Z?<-k|Xd&(5E^}q2R0W(|>H*3>#@@1sk z*yMr`G`as(v+hl$lqh9T4td&4mT$dgwofg}_Z79xPw_y33=KOV%=={a-%Om~!)3@x z;li|k1!UIi=Ke^2=Nd)a{8!G#J%_$A8BkZUz8(&Y!H429m)F(!b{g|BkiO&xuywd;54-s>Wtajx%-!v6es30e zC8eQH3uB$ST80uXz+pAbIc*!aCtyFno%T1{Xl~Ttb|XSqu%7NfnEl0xI;3G~e_=wn zPrMo4(g<58QljU7Z|)>tum8;~PrhDy)BOCV3XD$v13ajkh!Vv6qK)5zNy}5NARjfO z8~*eQ(Kzex9dq#Q9*&z4A=k7A?;5>pUdc1D(vMHxGye;+d+0s$X~=G!7UstYMz_GW zwpDUv3-gU%(vCilfC0EW8TfZ!|dLt_)5PKxm?ucOe%=#67qMx||&K0osJK@{>O+m0J5}7AxB5LvsqN^Y}+*IZu^X zo%!T59U-ZWKQ_%$7!;T!s9Ulk5LwK6cyK=#!tLHM(7NO_`i+UV!1!Tbj?` zHdUo)&sOF;X2Mt0>}cYMFg9K*|A4RfO?$Imp09w^Ey?{@SdQrcS0rvCkyWB90aZyF z$f})SL+5@WpXp@Ympgqpx}p>O5p8w!gD&QQ+t$qVgr|n|G)v1Ddz$5Q(;m)^mX>9E z-JGP9?AXivB%Ur>y0zunhXkXQPePv0(9wIMhMtDo5&r=gdUW>tK{1 zT7y@3U~19$H0_++IN5v@DT_`qt02glg1R^_|I5LKO)>wB$Ma1^X6Iz%sb-;)$OSva zxUm~+g*(7ewd{ZJzzm&veLNMfJ1i%XPC{k^U=^uwEo(T=pR;?T{u>DVx{?+)*<@tDs!%huh1j95O!=c&_15a}s6s zr(Q<{H-LGRUE6JLL%`im3fN=(P)Q`@zd6E}5OR@8q^i zXyUd+pSX-}Ik@uAE9P4|!hP4wIu?2`g-xM)FwIQy0MK@($Ow*|&H21%AfwqwqccqL zqNZ(?0ZTN{wniVZL^(~{Cg1am--7px{Nhy#eVHW0o{PSmBvSeA76C!29~2N*k!V1& z_<&L$2$!&H5tRC^DdH&v6@tW~&j&?a%3Y_B_(M%R zUkB$f;rYVq`Jj4U&!`JxAGkAx?Wy=pq7ppeC_$-wVjnWQo=;E-%BKph=kA;;{)RwL z6I6nG)5JRndZmfQc+ZRZ#gD)m6;KZ#u8tf~K-`CttScZ|Yv?XMTS#;_0%H%L;{VK1BA8WL)cFkxs;>Ehb0;vb?#sZ^0p3CF^eNG{VungUZg2~Aa#&=* zU5&?L6cZR1&0_!+=Uo`~FidN*KPnrS5ykFdxAf*1MZ!JcPK1* zxng*OxOzdou=t=Ldcp=iEitp`?67!SR~>Ng)j5J4@Tz5n)V1w$S$R>v?AY&7Cv_-` za4fy$4yJN|yeJv2Al?bYq*nH*AS%J0&aHr6bDvrAUPlug1p z6jgm%h9&b=7A5Wr;&Q}L1G;FRX8KY6*ia6K+fSdUA#=d_7I+16@FNEdV3!L1rC)VX zNPb*dRF>5$3xBlHy<(B^sI$HsN!5nul3d)UcKEC1uNnE3M@?F~Dt#r@!|}H8@?;EW zhpUj)tBP>+Pu0Y`8cq;gUtK(nTUSfh5RU-+V-3+dnSOmJ)C_eiPu38Bj!Y97#o&qC zD#Z306*hFk25xx28`gJ2oYJDw)pf%{QtaWbmv5~{di zWjDOn4RHvQdSOL3yvGeIxM6uWEa!%0-4Goe^&EDgs}LHZcH48@1WFOA8-1mgcv&w7 z0k^dbj__k#2~q)x0Uit%mv8<_)R5O}iwE;b12t7D#r}d}NhjhTb;LvYCb9}kU@DWL zdg9*apsW@>Uzl?Cj0|4umWe|E*!?k@X!Z0L;PPXMB6i7y3qPno#tuMTo&5mppKgrw z+yqtp=mD8o?c<+@IIu&dKWy9A&ka!!<8$}@uP4MKbbg}3i8M9 zAnq4y7OF4H3=`><@27A=MJu8tIK7JEjXP9vP%J4KA(|HMS4MTD$jC5JSPmX0szorG zq-7L90hOnZeeZQu(epb+M~5%Zq9>GEN5$X}fm9q3YJQ5{d``{a7zTrP%fXw;myvS& zuSki1Mg!+Fl#bo<8Kv_0j1uwBXb97ik9#Lr2>as}XiicyECVY^!J@Pl;GC+ske$Ra z19ZxjHUh%#dYKau71_0lVDu5kyoGEW!;6}Bcgo|eFP8zKe14zM4bAf7Z61p<6`TpCFIt4U#{wAI(Bf5&je#H+Um)5^PBlZOPMN*p3noyMo~)uq)yZl?*n&W7hbV zSk^D*ne}g&b-u)`{h`z#&S(4OLPu~!RXpow^33{KW{t(T6f&pO{!o7GL%c)QxpGDx zdDO>q;Rv!WkUQ&wJoN3COPwq0$MVd&84Hc0a}o=kertW;>Po6z0vEx)SXDosXVyLW4d=iHnlxdr5TW}QnwC?7cB><;yjm^JdqqpHC=G+Vg~T{`$+1XrQ6)W2Sek!<RN<3-WLpPB<9y-D1mB@lt4!VM);}Tx3R4RC#cYO*jSRfjFRLNp_?n4ckK8_M~YjJy90AxXlZXyFv z;{N~x3h)G8SK?~k)%RkV;+-|XVF0Q+57mA>PX^qz3jD`309Bob2E36c191N6Eet6C zA7Mah5Z1_L0QOnmg}^!9-Cb!w^E?@VW+JBKaT`=A4-LR)-$jA`T@835PX;`hCj;)y zg8>!qo&oSNW3^oEu09H9B-~ldm6^%A)qO@aySG?+m^-%-id%YU;QwJQqdxNx^QZEx zWzU68v@~8H0)~>{A8K?B!#Yf>($Gfa$RA(NxcnbBe*iSS_nY;ErBP3md2J-IdewQr@-va-Oy9eTScJfosD4 zZ)N$FJZt&YJZt%XE6X@h#QUhba|Bx0yvO$rc3D{rRA*kY{7Rm+{QqB;QJ;Cp@@sk4 zvL^%orYxh515RHU2c5z}#YhPbS;b7SQ60y)!B502@27u(TT2fT|9DPoVd{1er+30V z2OT|lc@B<5!*zB^G?~cp~ z_|{-ADL7aLN<`lpWB$ct&6ybdczUL&CWk#Q0y1NoC>r5Y%#`CPFF7p2VkG>T=&!5! z(BC;MQg7e{XmJkG>cN-YSELZ)v}j7`cL1FE-8^dAtuhuUfejIt4_+)rdJ|%EMz%W>xLoWt@17^ss%|($n-E(EU{cPSjGygeU zPHHa7$Ue|WU}S*tMFtpNWKdqdUR#utZ~ar0l&$875^@uT0Aq%by=0CT1~^`b+C*g~ zacHbCst!N-`IC;bKME@@yns}AB0Vc?{RIyp*2h@Vf{-LPmZrdK@N^^lQluaDk%L8Ka$)bn>U5FD-dJJCt2snY+N@q!u4BXCe*P+(iTbBi`3LXh!|?VsiZAYu5XsYJU`s6 z0Gw^Bp3mooD7nJ1I8TKr*)%znHQ}{0nE0CNL3>8Q(+}`Y9b~HPgoy{(0SF@Yh)9hvTHv5=;&3>jd z`E-}9|x0>6`?dEauv)EzoG`EUvV!PNO zc8XnMx7Z{0ihW|gI3VZt68Vjz;+S0BOT4L15VC4-@rHks@r}{l>>>N~7UBBYdQ03A z*II9*x7FL}?ez|NN4=BYS?{j*(0l5=^xk?Oy|3O6=V4CJC+d^*#bSw=tWVM9$=;%3 zBu6X~GxVAIEPb{f)#vE*^!fS%{cC-po}(|)7wcc?b9Jfr*9Yid=mYgZ`e1#CK3pH6 zkJLx$U+Savq53fWsD4a8uK%o`&`;`T^t1Xo{k(obzo=i*FYBlD(|T*;ihfnUreD`@ z=-Ea~qZRg8?$P(^`}F<4(+}u}^dIye^~3s4`VswmTza@e->L7?r|Q%6>G~LbtUgX( zqA%5#>C5#M`bvG3zFJ?SuhrM->-7!#Mtzh1jlNmmqJOJ@r*GA_>D%=#dRM)hJlaPT zD}F?(@VwG4e)`<0DgV-oGiEqSau|<3*X}F13~Qoi<-vpna_^)D~-JWsQEK zMC6hfrS-$Q+5Xx9ZIE_a4AjPI6OBp6WMhgk)tF{XH)a^Kji@ol_{x}R%rYhzRccqQ zR=q~e`>u#ub?VlufB%DalR@TSbBHs_p=x0b{kTKL4W{ft*7-Nlb#&BbVG13@i zd}++Xs;2(N0OJc|pfSYAwgwx|KKJ|!zda>>lhyRm#~!~Znm1_pK%>Uz#Y63k_C^Pz zqtVIeY;-fa8$FDkMlYkc(Z%R$v^8G))9b%~XxxN7`kud&bAZyYdwG>#ZYjZ?;H)^K6P?CHS)nOOb{nEonJYianOGO0X-UDUI4xY&nFvnC_i=6=zU8DOyDguXBo_@3 zCAEoi&j3+9X`E#j0C9p$|3XyDnqb+pXmZCR*CZJ0*+j+x;apOzyz~6_WgQV?Srl?W zmA9{DUmHXtkAF|`x?S)7bZ36ZZ;$4sh)B#DC679?!l|BTOJ}e`#6NpM7u>YP4 zk)%qnoKYQRi@~D0wSsU5Idrfn7DnOv(eG-no`OuN0gtW1mZY{zmZh;UM6cuVWDGgzSVV%Q67XLRkbDi~Tq|F?2kh?5`zj)oTBuK0k3CwX zUXi8n!sbAG61~hsS)p+OyBE<*Ky!V;gg|h-OT!A8&H&vn7!$C2^NI8F^I=engDlE9 zIcS)u{#LtyeTe8;q{iGfxbp+iGeDEkKmU=)X~t1HQ|!aUPXW*M6?m!x^FN7*_*X0y zc1KcAI9~y@6VacUC@VA|V0R{Z9B8hu7#IkC;nMIGZ2-DoAp>?7K5@kPiX$w_PwFdv zb0f(}EgOI0xXb}h+1M(U5CLT$jR<3xV|icP=v&qNLZ2|#TE98~;1DR>~R zw&RrAgvSVH<pGq(Y-)(>CN~+a2#l^ z-heSPnQS+cxyz(@_llY-kI$6blbC3i+%{ZPu8xX}65WYsz%gVohv*KX?s}mlrBPpz zyj|8BA*u&Zp1DM~$rdBTTV;TrCc2eHajY>W`cc7WNc~P89|5rgdY0(7Oq3N`6R^(_ z-2zm75-Jr_A4ZI`ZUo(28d}Ne(?%hEFdlS(WNSws6XWlND zhNb6W>(Nl(K(LSVj&krby0g0kF*2MzUdRh;C%nZJU4^qKZz_X>a4i}XSAtgi?IBFIkjb2vCkRkEXKe~jk7k;$l>il8 z?ze{%U4Tbmkdea(qVwh4FGbCak%Z?V%EXFvEa!wB_GPB3@{D5CTp1iKeqRX1`;w?@ zG9Q7eu9cC|qHqNHjb%&}d7#TiUn|rs)LYo&NS*CaKh5OwL%biXRm)isKc4Zk7_SO7 zf#^)2VB;fTmRjN(TI&z4alanPR{8CTOg0_KFup)`7IIfAy8Il?=xMUz7*YA2Wqx}K z(Wyv{C3Q{t_*4?6fIy#Y8j;EJA7e!6XAn1?=p@9UDn7M~{uTT$%nO5NkUo*GMBOOC zp+|-XM$n>6P!D*mQAc5qBz3$pg6{$yMU*xGMzCL!{Uy<{K-FhD9$6^VAGcCFmWVaG z%=K{a#eI_O(R|`dzTUZgCGmqzdlm~fN}0v_IevRK(UDA?Sk}dUdmwWe!D2W(g7?@8 z5=iQBxqdA4ALwAB!L<&)z??Z_;6V?=4`1K~iX|IyF_e{epYO+~9Sk5TU~qe`-(JYL z-i)KHvnrtEeys5{?Hoq+lJ|@k_Xd#VBBDLz%i~4M2+%7;d*DG#I`Kij^I+UM%<%{5 zmgb|aXd3#_Z}(+Ibi)%S$GTJOK-17Uzuk}2t}362xbU6X)c7(<8lABCYxnx?t1MbaP%-Otz;9n8+5u=jJaL^!d-=r#kzw5+ z+)gf*j}!!V-M2ru8yGKRMvHaOZ};SLH{_cWMG31V;p?*1L{YubHox79 z=rzcb+WQI%fowC)_rs}Ahj#ewc8tA>STmf;RvyLNXWH#ay&`{}D2hAMWvQjKIW^{@@7YLw7#L!I9|wFx6?5!T+$Tz>Z}kol+zvMSL}zmO*}dIipS@ z3S1oiyx(3y`~+~aaV3$Tfl#N>P4e5TNI4D)6%#2|6F&w#6dLLe4&!GzDhadQiPdpL zJ~bJ2--hr{@}tS3@Vo3>KrP1m?Y5*Ic3-xaS^Wqk9eS4@#>(#VR`49>K%uA|72m7@;`%afkCTU6tKCT2tw^Xr8 za}a><1de?uc26QZfcTvbIc)8I%kD+$c2F@4YxgFyjY-(YI)$DRJ6>Bsz-n!v3yFRQ zly)bF$hS$H^R3Zf5s@v-1{{MAz{y!aY&K3}XB&Hjn-QyYPjy6>n)Y#0zmXeez!U@h zndl}a$_g#9>=Q&c0##GE&h`xvT4n{8f;Fn`6TxF}O5AzkMHY^S!4vCbjhQgTOIV(@ z@~N3{4Sy8&Qle{Q>1m=wnV*Dxh$&a|Rk2y*1*ZK2sjFnpOi`p3&>xAeL?S3z)Upo~ zUE!4nk5a=_%ukG2E{9JOrSl&`iQI;HIp4WdZk#5HajKFNl?R2rg489*hW%QcaR+w@ z!sN^zsN+J23S+h9`@!M*YIf{bfJ|a$e#-}iM3VRD5o1LVlO7o@q z>GyOKOskyS$g?-x$f2Q4sY-;GgY5QV!Coy?KG zJBg!7#OqLk9>l*?iJYQCcFv*OOY$fuSui6)Wu~dHdyzg8bk9s6?Eun7kakn^iMTHq z#~~w_8rMwpCTW-=C7KDSaUaGEMNE)h0XJBv`!usckDd{BUq%j5k?Q+V_I@M{W=@#G zz&eXZLq{hEzu1+BCFQ*n1h#mv8405+Lj&fum0*vG0lXR?oSc%GR6qK@xi<$!_ySu`)YMdpY0N zLnTrcHY)_;3KF|Jg(wGWxW=@v^0}_@%*gz2gnfTAw+be|Kp2Tbr zwE|9=vqE3P4MXTtvjlW~txL4Sl8FL;nF?mIs zvxUTS?gzj(SOQx_(ixS`(SLlv9#|uiPb+f#1C*+6W6UY_N)@A$Zzu62iOvV?Abvt6 zN>oOe(w&U?88HQ81w+m5BK5c`Sh1#PjP?*eid3;g+o2gG9#KS((fdgHNs(L*&ok}) zBp#Mm7K-9!CY$yWqCX_&1>#Z?4>>ha4o%fKbhJqNUZrztf(^5MO~dm)Kiomwf2 zp#*8#gGl;TrHj?dcyuI5-Xe!B!qEE=!khU%XHy#M1xbdI{0+&uEW|L9H-YTc3zCi_ zZ6j$n)eGXrGj4;5^SC~or1grF%R-D6_6SC;LsZN{j75i?M2@kzwS+nuMG^-dg7gj( zEW{XLf62JjjB_l+XyU7Y$LepWu*Zs1|A2~*f=y>k4r1a8*2c7F zkh;(**fUyMd(FNVgat@u*!z6y;JGl58y(E?v3Ve4{IqH4Tgx6o!d$Eo7)szP#<(4T zEtWluv^jqHo9URSK4ICziL;-KqI*4n5v0u~&Fujo-8j-_sdTw}0EipUxS38KZqq)J zq#25oXibh<_9(_oM+|!a$1VFy;?sb$2QZol=V}7vae%{6$1HmcsZ&5@4`3{j$xOoG z;?;1&*;SeZ0?a$mlSC&1We?yKkqLg)188`f$arQ0hA3%^^#E2`c1z|v4zckbzzyAQ zMe10;+&BZ%7{FT-AH!5xq4k#ChUjRZ)LS?n+=C@T8?E4mco$$9K(`C9*0S63iIIM; z87<;J%My+7tF@!aIhfcYKHM+MOcTY!i!J*yan*H<^#U&H_7zfx`sE@lJFNx$D)AvG z1e6#LT_ZZ!D-%lUbOR7`oiT%C_8d{Vz}H>@ahNp8U-)B77TFJ2VA&T*9)Nt<54c36 zKV%A0Hxx}mANkL8I0T<(}E1TEp*&v_Z_R!nsD+ry1KC zv2o%2Nw?3C+R7D9;Ae@qWGdxlog7Z5B*H^f-8EQUUg&> zF((*v9t)c0h*AY|yaHmji}bTrF5yID`V+}#kP(IR2$9n`A%$nw-XxsC-lo?FY-O}I z+F;E@;))8cqTs3u^bDubJwAynW6kTAhCQ9c6N+fIkne23LgO!%h*0uns_}8W@`{|c zL=@Jp%9Tq*#_z6?d<4l|p$uU>(2JAuI{tGKa$|U2dU7TpPyy=;YxF=s8*st&a5y~H;oLkP;(mc5VYH$au_#smd1 z`{gssMKx`Qj4T(W8@j_5Us?7}KCvE8P$G5_S*Ii-`DTd#u2vVzZOcXFiaAWVh95$8 z588`}ujY&GPzy2)ZR&8#UMwrG5E<#1eM%gBhy!kGWpk%wg5DYQ)0Qfy-sGW6!&AnC|CKdXXHH88|p~* zSSjwQKM!{!g7y`&M(T9Ha{#Ns#<@C9KZo~#^hFTPCY_!J4C7p!-y~{ib7gpyC?7_` z8C0a{NO7~jh`5>ZPpd@5)Y-aS5{afD5gge$a?mPVbQqNjR*4dYC+l_w;>IHm$Mm{i zI7|M#O5CgAxT4jfc|opK#MB<#F_*!?8S-zdMa2i!(kPF@lbms0M`R=r%W_Vs9hTk4fkx z4Z;8v34K9Giq+moVecTd52%!no$}-w$j2_ydV%K3$8H&3EAEd_Wt`gG!vt8`0)l1l zqUr6f5Wigka5n`f1qWfVsk3`!r)i&LsxHVA%@Hr=iUYD-0R z$LBz+4q7&79G;8R0CEG(l4h49_p(Ambh{>K*A-1&xT#Kr_B?YiZj^5C_aVtul_b^` zJF43UNWP-Ts#pm_b>B1UGNNMLL!>|Gi-3BGRJKRjSxn-4WgXf#eHLG7RN= zBRoHnd>&*^RFU*&($0}~Q~wQdCm45D#d)`A9VXC#+*jX&0}?kb^8e8 zPN_Kc{V4iTl1?%suWP#xZUc!YK#cKD!gnC?XGJvS+Z#lF`P2px2n^Qkfixz^>fwL$-hFXPA@@H)T`6DLw1$dBqFRk*BBC*8guv>ybA z!aHP__~99UGa<#y1j|zIuL)3LvX8f`x}z?3ug#!Gm(8rlhDCNnk^*nB{^3I z`&*Ltfb1~{N%xSpo3xu4gt)zo+oj?>27O1;PDKKL;zMxDbbBkKb|5O&!Cs+bBOZv` z717ILJ4xFVDR&2Zxo+=Z+*Zap9qgUNzXKlQ;@3J>l7aXwh+2N9%$Rc0?A@epQOuIN z5gXa1+k;u7-!P@qVOFxL2HS=(h7PLRRAz;cd?<+m9c6pvO*U$djg3|6%l#LcQ=UCW|)CEui29rvp6yN zH@ZEU#6@0mWg4cCL?%ujR>S=mATE@_%_1B)rrDC{0`;9`;cp$*?2e?&Q%}VV z)dJn_MDkqu(PoSpbte23l0XF1KpNt^kT%DmB@Co>B{>SRC(lUQhqT$G-6YS5>&v)V zD$WzeZY0fAB&Xi~A|?^jB_NVC-G^_#8DAa=<4|yA`|$&_&^%coF#cY$+`6W9LeKA z_UZ*muah>Gw43S$aW@z@M#Xvca-O8oij+&whw1hOMtzB>n4XW&?TaLiQbaF{OC*g{ zq}+NwT(>VXZUo~TJ--lQUzDDZMxbo0Yw_>FZmZ!cIg$ryk@_%cy-4%E z0>qy{d??rxRQhK}n52hF5_CooKIK5)YTZ7{7_L*}9qmdtS84V!61xexcZbM`Akojn zyQoBt*kLvrLmXH$W1nDDXG94cDhBoot}Qd!{@}TjjO>KSP+Sy2K1FgzkW*~+QKyM_ z0PcMh(wrf!J!p~GSAlw#)OMiqqs|d&%g2zrsv`AKXd2ElrVV0n7@G4@D z>@Jej3M8zVdNh=y+m}da2|}zk<_0wTGO5|BI*Q7@-wJ_xpQqUeNWN}54f7}4MAZt@ zaiA^z%B$GQw2r_P3_*FLNr+re+GV+Pn_9mhih{nf~ zz9H>AX|8{dbh}AAr_$y2?-93$ac7-8SPgi~W|Gc;glbJR{*w%Q3!_dWDn6Dp#jw96 z^%SVe%_nk_NjR1?+OW5hZ~_D??Eec`z!|+yuxJBAOUQ8>V}C|0hnBVzISvFqAd*(_ z)+H*Ln`qcO7=H}$aPrF`{Z8UXaj}=EABpv$f)lWbBSBY|X?8;-`w5S^1LJX3c>ocI z`94=ukhT#>Ka%7r3TO|4_5*1AzJ~xGQt^obwWt(sQ>7(2h^UxgwA1WGBz`YzZo^`Q znCHGovzL&*UnRa-U6wLxAEIti7d*F&k$VxDpe`UUCwULZuDYxsz8kprWk?fQN#ZUN zy>A0`6^T1RBdJ?_^ zK}++j$KUM@B!0_U3Hv{@>jBv;tLzdho}S2#6$WLUb<1A?_=>%zIRNGohyqZ@Rn7*W zmZr`Ez}#jcq_WLG$UfL~gd*Btw|Gd4Bm?gVJbLl{PQ7GYV0XAqW0cp4#lsizQfgXu|x-0gk>;Y1esX8>OkI1XSC zfnxx^AaK;cQKbC|9RaByfu8_$AaEE!O9DRvP|eN{08X+x4*}Rm;2?mF1ilAQ3*iBT zl@RVn$f=!uZn)PC_qgG1H{4}JoP;}F!VWjw?uOgkaH|`B=Z4?9;TAXC?1taC;U+iS z=!P5IaJ?I@bHlX}7g*zltKD#w8?JQ26>hlP4VSs$Qa4=UhKt>BksIc?;X*h3+6@=D zVPw7w%yYxJZupfO&T+%28_ssaS#CJf4QIIFbT^#lhEv^eiW^RL!%0pU2~KngFpY|5 z*ym<*L}4644iSuX!!ZaKli8yIG(h+z!nz1YAyoElBmi2?5eR7thr8i0gi6(i0#Fug z2moab2DAQ^{TKv5S*C#il&$%~0|o$4srv&^Ju(SE^+)>wP@TcP092o|4*=D3?Ck-) z0H}^&PXMZy*8_m+pLeJHsqu+!AgLjUt^id3zY730%+MKt8Y}4J0UZITPJagg%5`iH zKsnCs04T4uEdb>lw*jDB+}0k@3V`xhTT=g&Kbj4aatCkdDYkMeuLDr7<23-vy}t@T z^;oU|P(6mr094215`b=0){7o+0f6c$oClzKhUWmNuIO0+!X z0CFNsbP&)Y0^b8zOyB^3B?R^ZSVmwUfaL`C0$5344}jGKb^};LU>5+jB5x;v3AFS( z0PH5P9l*B)wgFf}U@L%?I!B?t1GJ2!ZviYOum!+O0-FI$B=8LYmE$G=14-EkpfiCD z0Iu-$>jCU0unxet1l9uBMqmwqodi~Uz$yU8wTuY*+kg%+ZUun-1eOC(j`cDC%4J^) z;0U9Zc)(%+%H3Q9KzY$Q0F+0%5P))FzXqV3;{^beyF1?l<^f>hNN_G7wbJM-0N44B zIRMlmrzn7Ie&TEZEeXu>fSCZ=kTL^+TD>$KfFxxa0JS`CDgd)OvpfLhOjVP0D;n;8f|Eq?jJ0|o$Cz{LFlY$hN9 zsKr$M0H_61eF3NiQGEdHWSZUp)Ow{}0MweKo&feSs)r8ybCghbkkt5aHvm78(iOmI z0$l){BGB0bIsrIIN=E>f2y_5&kwAM7Xb0c|DQy8{(}`&V;07tJJ)o5i`*WS7mLRof zqHF-|2;9(I;5vY|q+A1_7CT=Bpq5l$0iYH}U-p1Y0Mwf2ivZNh<_iD@@bU8ih7mXi zU?_pJ03r%H14wN+It^eBow-v0_A${(0BZNp2>@#H{bvAU8Fd`MmjsRh7){_PfH4G) z0GLeRCjgTO9QJ@80jTXgKL8jP;mZyIQoD2x0#MsTz6UUaj~xIolfZreY8T8t08vu* z0#Lh8_5e_uMRt3@E&ytG$xZ+&!yN$BrjhLczTiu@0k~?={%i%5!yLZ@(1&r~0$5DS z7659Kz-9o;N%;oAB?6l~%0>XoNZH^4>jA7JWgP&uYJV*NwdQ^efHjO-4FKIQ*q>E^ zRBv;oLxLd!p!$=`0jPf6G61UkxDDPRs?M77%;|KrJ4a1K=RDjsiGDU^ajs3CseZCemjDP_yMT0Gwjf zbO364W*PuB2|pFUMMg~laDl*N4~R?xq!tNG1faILOaP#E!Hfscm+TnlMUC|+xF*m^ zJQ{%70P`h)8_aqXfNVZB5`fx^W*us>r6^#Dl$ z-2te*VBG+y1u9(usD&b30I2mSodKv-C7nE=BLHWm2!MIauswjq1lj>uM4+t)v;mMq zN^1@F2it})hys#Y_0$r;GR9>C7|bY?a0LmUL#7%2E5%;L@P8o44F3t~W%v(BAH)B4 z=RH4j@xMcaNyi=YYJ&5x5Mbh;su1#z``Fd|<6mH=8Sx3Em*K}~%^7}_Vyg+l58dt7 ze};6D{sDxO;rnnV8Mc6EGJFq`$?#nma)$3fKpDQB;%pB7ll!S}F{J+g(OuW}2M90| zz6rz6@D2Es41b?upJn(uB$eT7?gFP*VF`%80)b;qy$lH?{t`rz;qPG6N&hV@Im6$$ z;fpZn#9x5*ju3br_MG8!Zul&ullU``e}+%PEHQk_4WEQy5`O|6N`{ZaC1Tjz4V%Hl z5q}I#GQ&sFd^2ncQ_e8U4IhF1A5Fr;kVl41V6_?A5HyC3-S8nde9#RWx#6$4x??u; zs|zV*h^sqPSR3-Ewo2pfj<#H9QVT-D1UOJnZFI(odY6dfNWFOsai*Tya9kCR0CAkE z_cg=HDfU8!I9G2KLmaHPh+#z+zX#Tvcm;HT7~<*E9~gj6%kfK)TY zpp7a}8TgpQaf+J4aTJ|eu!E!M6po|lwlE$?(W%8R#URwgamj=X%NHIekH>E-xH>K9Z;JB$%q~o}$lMGYb zFd0%!JOGo+5Ib8gFvJ2m6>4^F#WV`@Tv z@qN<01{TN2Pip%s%F-7_Gn}&b$$_NeveiZLxCbA;C>nb3gO|jE32@=)q)Q^%pVwV# zeOFrps}8Vg!&x1hcm=$7Z?gR8w5Y82o+1aG77wPzGgIZ3EzgO^dEk7Wr5Ju*{Fkw#RgN5dT2zpYE{OcNMf>RsqVd0V z@3?$Zvp&S#(i=7F0}bEU$gtWYSY}vjK<#N-QO#eQM^YYMD6>x{mCQG1@nUt&jSn*h zO-y;9f;B?#vAJI-y`dA$6-ypl+n6`CsqHtQd7~b`{y!Z#|yh4dfM=4ha_vd zp^uHq2ZC1ls@r-l@ugM73KQHN4^b|J)7;g01r%r?&RNbxf-UTT>=v}bbtocr_1}S^ zxWeZNN)GZ+ci`B8x_WI84j*TVFd(C@UJ}8?+4B3KRognrx4jxI6|&Gp?YFaWCJyxU zg_BVOyrr%i2tj^5&S9wJYqwKYO|?cPe($UKtuX5QYO0l{mC(7`DV*jg66CC&F;=tt z?}P*ulckGUrHk+mny`+o5YW&Bxt2~Y@?ZI_`qnh2FQL-QuTw2c?#++0+TuzePv^HP z;*})|Sfw;b(ESCi3PrEzH^27SE@V@H*@UGmXk{ekP^_p`L8~HvDrhyZt}|UJ^}6(5 zE?gn2TKR!)?v73P3BL>*E}Jsr(2b^G4hpk ztB&@F?3r#gN3bj1Dp4Qms@oNzzLkvnfa*gKc-Apiq#i7o#_sHVK ztjb9ai_>)ZWHGC#)w&g|o)Vi1csItATAsX?=$EK|}-OY&YP>y@*QdT2W(X~=mv9tqwa(uX{Mn{I_eD;AovO;O=J*`f(M``OJ&CRVQl)wmE z_j*j`1Xco*Idx6cWwJ&XOnxbBb*pW_;1{zCV2?O1oA#@zFWyxTGe9HYJqaT~6QG`i z2`G_a^(dmAWCOxBQ>l8I-2=9LafVeT@tgjU3Ay&k!kN}R`kFoRp-ii09?|_Xt)_R< ztv8xjnX+_QE0AxiV}Vt9Hm;R*%34Dj>HHF}o=|0Wbw|Y>r#0`fna0lqgn)!_3tOE5 z*d*e6C`s>*T;P-<*a%o+pJTS zGwd^y{0x2~7h`JD&ynryfXX>;m<4Uy551@`DO!f_5E@eapOi ztdcbk9#Y9u3i5H}!m8TxLjny)<&ZY#utS?DlPX%T%C{?8rLB2ub9{EX++W?QRyl5^ z>8jv!DIXhYo%R`Y%5;pt;d7N&_I*XGsWw&KTgj@ISX1v;VuK>PRI-{|11=-$lCpXw zt5#x?w90G%q#CW^$v>RURoa zql(q^*C}Q1D%Njcd5=`FI+Ylsg;O!Hoq<|pmKnGn9^1QG;3SAgWcRApeK5UCs#-4= zd9F*Lh#4pxscn!movSl@^I5HVo&8mc8 zT{Wv|ST!=ka5*OAbSl$N_0qEr(=N*Us#^`UC*?=gtqkPfv$}PE!TZ8mf)&`P+p{jq z-PLn*tXK`JsaKszG&9XYN%F%QR@p=%>NrUbt6^0`&Kqi2P3TG%tZ7wGtYokrr{34H zu)9995SbGS7b0^)GEx&IyC~_xgMei}UgI#bn!B zRs((32Dzw~McaC&mQ}+V#OA1wtX|s+7xL+JV{k%!q6_n8ZL1`N@*nqEVQV(5HdNxx z`c_fd_yNm*i_iZ_L#q(my@U5zRShE;k{>sO;aPE6R<51fe7d=Qj@N1jv`iTZ;HPqI+oJ;=!=)-kos0xS?{l+K)=d{ zKVRPUdT(8;o^_G-pa7XrN_KB#3Hf<_E2*%4mOr@P+9#FSiwr`|4x23%LAReW;x7d_Oz_ ze1FBn63~*s4>(ibdh_4w8g;ne8mtYH6&hIOpxKW%uxe?KL_cp}`8ChoZTXOuk^k0m zKKpiR5ADlr{(MP@vZTkhOsA3k7ps~BTvqD+NTof~rPT}Kwfae&x-B+E6j zn(MF)A2)*a)}sR&SqC&@S*t~IXnk;D*h9Iw;MT#GhpZPpZ_e{;TyM_vPF!zJc?0m~ zUTkdjuAj@VfqW>BNclCHrEc&&vZ70o2MoeR@ zqG@S2>&$xQ>{_g}M|1bL+?*RfYE>xB27-2mO*z~Q)dgvi-RI~oc!Fpi+B|Ai^V(IE zvPAry2Hq+6KWf#vlbcujG3drJ`TAp)o%ng<9#dVmjgMJfVjPIR)ePJzv3CwVp?$cw zR(ThvS1f`@N{1sYDu*`D?P4!#t^|BfbLjsZ8F(E1s|)gl$I;vRN_KkOdMO1ytj`Xq z=jHxNR&km1gq1(BAg+J%$P?CQ;MamDtYexsUygqY&6X~=KV>y68`lV^fwT1li<{I% z(O#6S_q6p&2#p0+la+KS?UJ zEFUiSB#to)z%faGI%IK3Z{>MtSO5=y1 zs6SfY=p}HltsmcuDl8h->3*g`VaeUJI?W7Rw8uIcjpJJy7n$56lYGnvG8 zDmyKz!Ir>HNyE8k2#RKk#HR71u1Q7EG#+`^dP)06KJuRRuNVvEs`sq>!2+X&^_;d@ z{-%Xhxj^Cz(7n~u*2~^4pccA3(ZZ_x@4x@U_pOJXOw2r9daOa?!Tah9aGoI76Y^?! zH2JJHXWY%HBMcC-mu=%V9gHkqe&4!3BQZ;?eMEUte@JuzAA&9dtU zP*hz``oPLe)Qs>=0^>_rDUW|(6@8mI^SEFwgZGFVSs3^QT$lwHn9}o4nY|U9a+U>JF8rwsT^HJYIM5r4Oyo!ToI?TF)b>@{x5m&i#rXL-Xd# z*FVnf_4EObw2MBr9zkGz0ynIxtpADia7j;rd?{m}68?z(xsLx@q^u9CAY}G90zGRP$?tKAnf?kc<;$B(slULbe7U&fq`WhiUImx%vRqt3P7arFMmE(!)$?C4Fa&Np zY^kf0%QmG2TA(`}KQ#)J?Tz#@TGrgG7ms8^V8cK$+TzKonWked5;Tmvu&-+SlCP85F8U!gU!m&zBDqu@%w|S8@TQ^a5F$^RX+-bZ;^tE37#H%^W$m`goD8%rTS8 zOn-$k|9@k{E5E=7T%ees%Wx1puKc1dk79=a_bA>$mmiDsn96h4JpNU!Dl(Rjtkw(V z(XjFk!2fu|%1r-bT+aT_HLRt6sbLMt57+3$%m0FTcE&|wEd6aB<~a%GxoIwWVdL#K z)Aiti@aa5l|C&9Jmm;yu^RoTSJS#DCjFDn(W_FG*L$fPpm|S!Mw-!s>P5Zo}vZ1I? zV+AkFd9faEE?~vb1kqD-yp@<~WpfizPL2-{C&^R;NpC7!YpB)77r{$;gKd)@dKk}d zhD&5Ineu(MDF>-)yxqZb^&4tAtO@u&D^!it^(|qDe8Tm7YX~}i-C}^Op-3Lhqccb5 z#HYb4WIx&~S|uZq8wu_+$2cDh8%@&c>2L9cXiV$sZynD!F;u$hN>V}-a!C|^p8%K*;=HY?|r}yQ~rRHLtKv|)*$B~ zUpO3`z45r9ya2p{EOeZA&j~LXD=hfc7{^(-9yqflA8>=v-_n}1?uUV|_Cud!7SW#! zL}yMjr$f6XZqTX?lE)otc!&rq=@J~lJrwo9a;ZvA+d*9~|e(KR6Z;=KT3 zao0e&y#VWWy@1@d>H#nVoC~pOn@)9t z&1v(XFtMt%dtb|86HyjT1eO)v?pygqw|;A0O+>`$lCa|M=35)O-}=99B7_p0#W2oJ zNl`YviPHiwfO6bL6G7J+&y!gk-TM7g|Q7q1D1lkl_6Zmdv3u^L&c{1lB3x&zwl7C zk<=*o9)9I};P@MiOglu!#Rvs(Fdl4iMg1UL4Gbdl!q8Q!VsPY_8LUU9x|MK~ki>N( zVRQjv=C&E0n0e#1cc~3H=!~{?n4=8HOZiWMAQr*$s40hGUWqutNXLc&JY3sZJLZ%) zt`Dk_bzM%^uVXdkrLwFr45ll;nv4ZX@m7P&oYpm;3>9aQ`co@WVO6=Dna5~rp_eNI zCaoGP5zC$v{Q&ida~CTP^;x%w2WX~eV2IcAr^yu6*2g4Ii5u96>X(Z)=!NlpH%rSkY>j?1$Rd8EsVAgxvH!}K1exvwhshl#!bvdWvaUgF=3!InC>f!dL}rjS{MU~oHc@}#2_3Dr;mb7NrubA10FepfcmUtV8F=jMxqo>nzZ?vT7d>x zDvn&acCET^(si}Cifg1eGyCQB#>`VEJlKN^*tIZufyYX)1}mXQ=PQ6D_j>JmQGAOl ziMpNXQX_alrq`0|c5yE;zCZ5Ept4vY?ivzzcoSLILWvQlRNeVHc@OEF0bR%WV{HD%7Uvmmmu5( zOrx?ukZy7l(49n49e2ZxcXD)AWzpzhElIlbEg2lbOR#w`dGUU}s)xK@p4V%eQsP~+ zdFR*izy{M!b>_9KU^%K3ZC-`oJp=``3n$ESXxGs$EP{8mE3RBn0M#-eq>^E93aC@pgn#I-D*QwXz7Xh_2TP$-xWHkuuC^t^p2 zuhK*oj`MSIwZwJYG!!;Uhhr46x5BFkOwVGtoGRchfK=+R(OGw>+o^VSM;)*XlI%m* z$Crvn?xBc7+n}_WS|xPM9Zf3Zk)aQsOwetKO_#afNOcSFaGz2zwzz!_ zZBesOX~Lgkmd?aq67HG{Oll(9WhOTXM>>o_Z1NaP5aMD%q~p3*$4;xcQ1}B$L2TKX z?KCcBAa^*Qy%G<&#Fim0rb-abP-&jV;!N$+5mBu5E7n3J;>I0_CsvU}-eT(wj4B@V zhx~xUj-Xg@7+p}nLaS+6f2dIGRj3VQsGicXCx;oJslgmBR03^2^d2AOv#&T`kcsB8 zlxyYjWCW6+{5Msjut|=nV!*+*Vs7QT^th|(a=@j>JyWtlnJc|9{~Xtjzi zF9_8_SpNuatMwIajwUWm%WLUbEuWni`Io4&@t#0tgu_g5T4CljEH zK1x|6$TBJg)3s0@wOZb509eP0raXDoM5uaKG&MTlwkoPWMXEXhh^;5yk39Ez%?r4Q z0w6V7PgXnsyjGMi{Wn@s6yD)wycNX=iC5%EtOa$uAF9j=&8M4C8G<`Do{o`-DLmh+ zTuOWsjRXQ3tgvGvl>Li9By`w)l=7~OAX;AcYhpGq;cIMV{iv3XfUA#DwvRMNxIs&> ze9y6Agmt;I=~F(3*O1@zRsWB;HvyBYD)ayA-s-M3}R9h!PYr&ge`Wx2TMxBWjo*0d!pc zpYMC_t*%}I&hk8eFOm5W7v7E9yWrMiraw^8V6+Hh8gpO6kbJ_G?S=otMu?v)UtB0x(XkGqF7+W`o(rk zQYVR1J|zj%s>+0;q2YjOfwKlj5x3qb&Z+~CI1K~NYJ9Z8nnESU1j%O#Dv60HfsZMs zglwr|V_JWp9;za#m7)X`&fcn|4OQq{E5K-_1*Z3f${FH(>W`sB$n6416Pm z0f911#jR+eny_JNgGJKSv~`}QL(L!P$F5J;`Y8^3O>tk744`#CJE5t=92`BGo(5J7 z1v7(z%&>@!W)mCDEyZ#4tw&J25e{p{D4L3LNIAoa8X6P80j-%0GxT`ehmjZ_dq$EG zWkMe6%VfH)jq-nq$lX=ZiKkC(Bu#f)z>!S=F$8Z7fQ;Fn^rZmv9ck&c)%3@I>4u6) zdD|fL(E4Bb@G`VCfy76kzxrMi{l+l$JQGMYJ)%cp$vzOoP=25Xi^()uA~vj;%yb`= zXOOjhP}wpg-69i8$NIG26GeLP$|A2>0$jnE)=%(-fuGpELYC3)KTOJ=+uL8K8S@^4RLyQ8PrW6*^&XV%;8mm(91y zxnaYp3HQcH;R%M924l9!7|6AgS38T+Sz&)~-xzRSp_)LTJ_O8DRAp_rYLdJ9g2H~| z()F3#Cw1#H*pb#}?%4|px75c>KJcBWLLk>YA1r*SC-&>)3k&n#cyHys7qY{1Ue~CL z3M&I*->0WEC;}|5=C4o;SV1vhvk4-Cxm7F*tihtdTya{{plU;V zW3D002M}XG>>Bt2v%~dhS282L2vW;$QXiF~Etv42UXdw!)-O8cfL!At!CBG|H2)#U zdnA|MV9zSC()vEL-NPt!maW1W`g+To%~7v)Hueuc-;L@J+_qO-%6iYJjPF#vN`N#`wb&(t(kqg*_XrcYWjLb4;Wi}%5YITaGNr+-EbmN z)_N$bJD;!x+()6QRy9qnS@l$2EvIgeyG>E?tpM>24!Imr^|K%3gFmqdYSxp3;z^l!8@}m?D0eHWl!JTcu;uc_%bNQMDk*xMUE(NR&W(~8sSNoX5q+T%L{DmD9pXAfdaJ_k- zC-4lpBgLYMYqT@GB`9M8ZYQTgeFzHO_w3!M<LibWbYHyiJTE2l*)=hR7QNw64X+ zD?CX-*=NuX{*^Ify5M!S9-Pu#>V-pZfNIvW#b^SkCDfC`K_GfB+Xq0sRrSm0=V$AU zYOP9#6&n)3Fas z5>sjZ^&QOGkNj@T8lu%}OZ%ePUV4AEH;!QlMEPtmqJfBO)x#J4i|mmIn^ujP zifLvglQ5+`Xs*)mL0_i!7Gb7p^cCaMP^ue3(NJ-z;<|gnzZ4~2v51>yi?}h%THqr+ znzKj`u^EJps`31|CM*~MT(4}(vN5WRsx&sF9$x@Mi9eZ{q`ZkQpM6Lm_NBh9g}ydI zH*IAVWhi*)T2zTqwH}xPsM>l*V36=55a$su{kVQX{j2p$r5hU#%6(GTV&e;QS8-VZ z{;5dvGQBp0-L!#B@u?NOPNseeu2W<3aS4E{P%5#e)PE4`KifEFPpA`KEXf z6br?JMB!psZx!Avt(xO=G+U{F7JxFrtVdZuNGg=|2>3TM^h_XM$0N`x73P}UeF@|^ z708hZWSJ`tVA^{ma$kXbo!D%>L}r*aA4r8%hY}7MHwJ59pEYXi!|}cNoy4e(EiOe7~vYk_?Wk?=qcg*d9NX8 zO86{DjKJ&YrZ3^AbdUTwAh-^_>sn27jq>S;p=Df>ORO0~D>bh3IOeHWv?#8_^wk)u zJ+L^L{*2*T+VIXgV+48hJPAIFzw3i1eZ;rdr`{M%`bZY2UBXs4sb9lMQ_5&mh)|UC z**1+=*_~m###5IrJg!6-o}^BxsO1+{3#~%1hCts($;l_P3MX9gUxZnudGnI+nsVck z1j}e4X}qV5OYuk*lY2lKRCp1_1#^GpNg0L1hqNmtnMXBz3-ReQ{5tKZUO5_wO3a#* z>YIH)p!s3_+HdIfE^7$5I*%fy!E9`!SM2%7i?J|{WH9>#*+i&?qrjmoN36^Zp_X*7 zJ5;*}^|sSw2}A_^rsm`F;AC)8JkdV$g?TdQL>>-WfeCm_xtI*%hKoVP;_Q72hbYf7Bcg^8E|m3)+0tebO;NSB+&e8g(l1K z8!)&3M%S`V@w>hSY?NjvymZO#aQJA$&lIYufx-kI?|1K&yWjKnjQVPlUC)j7M3wbI z8EGDR8W63ogAS4G&^lR?y=1$~Zl~tYwq;kEWCW$2*88ucs{2?-nbL^yqKLUsN+U*L zOIE^UdvcQMU=C?dg5GXq&rBcj!%kHUNf-l3igEtighgPnY7T}W)LJ+wmrx@Z*y!Jb z8*2l_3()0i`~b##NNyIFh`xjPLGqCcLA^rF$sIx+yKn-TYz-<0((ugOT^3=a z^8;)q4CKCVRf?l{(7Wp!Gh=5BU7LHU_?QO=z}4n##?*n{+9y@-&VdY4E;(0>HqddU zQRXE3JV2HJno7Dct!ZJ-FcR1m=fGTGH0&^J>)-;U;wZJs9sT_*#c}TC`EiH)=;KX; z+!y{aDo(4t|vZPhy(0q-?*%Bf!-~+g6v4$7u&ZlUrf@K_O1n&6vhU@ny!;RR2Z%z zYc4I!cK42n#ZOzbX-ySzEIxTqC-8(Ki$Zh!qo2U1>pMHXkqI=!D zK3O=SS+y2$5w>yq=j)B5-1k0NSkAl2*A-57KN}Z~rk^W@Hg>o{Cq8)iQo4!6N8ms!@;z6Z-8HsSB;q90$7=ZGU zJ}nhRB|dFB>rZ)?F$+7jj)8VfCvytz4y zdlmei&CDo*CWkSk_-v5a?fxZ#%(AZH1#>?A4hOlX;(mt&wN8b1{1i`uiaB(Z+2Ilm>=tI+d!_H zoO^gf;gV^Z*1@GAq_OnhF+VMp_EJ%|RKQ=Nt_=^|iMJJ2j-dr@rXYYyJ{XqTz8xWo zd*Qaimq4*gZ!g>qHg|lQq=EOm+a2?1Hnr#6WecJS5B*Ei+`v6|N1-^f?dZ04sSfS! zxu!ytZ*Gm-8{5K$7PsdP@_ppoc^eB!2OcXF;XQcpi>;&=288WyPkZxl_jjKuXcPU; z&lM(BZ%qr8+5fH09R!@~QDp-LjG*{s6hv4co+x{`33+0cZj6c>8?m&JbIQuyXXUO< z%b}V!!aPH>f&hHgu{M3z8Ln$Av#36%O}5shZEa}T#cvYy$)VVR+jh5g|A@~PN(~<% zbFq8*4#EMgtE1gLpDnZ>wZf07+*WBix@`q8Xlrj?7vzq7+Y!eecl3&7WE)oJA;GlW z4e(UHk&ljM<4a2Il{^~U(Jik1E>fE0TfY4TIoeQG7%u0;+AhN%y8@OEGS3k zy?3&Qok9s)C|)Kx(DRM%^*ak=5B_UG*7vEotJ6IcpNu%e3!vY~io{A&QtQ@l5@00L zF$YEG$7*iGFe?%Q$kBDJjXpU|X9?3;lR>P~ zcy!wudf#N!QpkNGm^y90nbsS0x)eu>OZ7o#IMgGimc~olPOstRr5Rd2_b_PruDaPX z3Oc5~tz*)5W=@;F-~RQ32AZAW9=`YEr3ls-> z(Xtk9%LF7|{;CF{7h-%$DdZa(~%o_gKwsWuUJ>tG$J5d2DIG0qn+b_AN$?nqqy;5e z7sr?O7*@I?6b}>yRIr|EcTw%t2E8BUJ?4MRFn?JM^HTOESd@-3Ea`RW~*zzw=kv3>C$x&1{L2$S9zAQ zEBF~eZZMg$(@J`Qv(uNHnkSXJ7~Bqf=V9hw0kZ}_Hb%;L+1?;&!-2~e!hO)HI$)?d z_w>Cc5&!kxLTT>lB$=nKEhgBkt}V!}w;Ad*mSc&ot5~QlZ95YEow{h~1MYzxg;C8Y z^g4VS!;M?<+dPFR29aWN;71T zA)sWJ&61HeByF?xU+HWyYewQ9k4l484q3;nnye$rPMEi`P;L_LamVjYk;Kj(blVB| z+tq2#m}pAept}kslwVm;3}mIDEO>QE7Cv;Q;OO#D%o*I-SCW6?G-_ri2%ZX3Lut}p z){yer0IZ~xtYhU!CNBmB3uuBWWlF-e(JJ?j&4p#)?PoU^j(_(&;ibq~%uE<3 zsm`RR$rsRBB=x!D7kITSNv?tB3uz17(h{+wY6-!Veg;5>qyXV}r#s{R!l4ZWMXht6 zy}z)Zd*-Ra_(lEZc&mZT)7aKL!=Y8Pc>CdydXknZ1*BiTXKKqi{0&MmiAAF#n?rIG zwyY!uo(9FBZK3<=mckegR`yc|0ov3tmA$yP2s%|~{J>LQ-FQ&=c}*g6-!#?6 zfP!lCWFu+Q1%)A`Ki9ACsQSJUxRTu;bm*@3P-r)VWB9OL6pCgRFsKGn%u{Yt9Sk-J z1~#Qz^68YOFlYqODWsqDOz*JXx9?S5%(GvtqmM@JjLn4u2A2gFUO`R(s{wk2E=D(% zNpQ_dylq|$R0bO0Z`fW3GUH)jzkv#z$v`EXPofl5LwZ29vr&j(pyGEsrDPz1QViki zdK2Jg$${t?zpy)M5$|as4GLY_c5q6nDJ_WE*B}pA(ivzJih%Jo=pQ0T46J3LAfE{7 znQ8%JS>+2>onGhI zTMOf>^-F~%`&=s2qiY>^-UE_BJGrE7VNO5!g*h23Y!#7{(bm`jG`KJ~ndg&8S*l>7 z95E#cw9VD=ArMfiHn!orMpvR-(ylJP>Zqr4TTfLZ0>p>CtJgZ;2aUPf|kclD1tKII2M+*~z7u}B^EsP(wv**Q5YB)gi@;z64 ztT24ZuAW!Bc*T~#&hST}=fHSWSR^!J(2xY<%u`kGCDFAar~QlV=>@t!#^FJ>)5`gY-YE?Vl0>O? zH$7PxIdga2%iVfuQiUxUUf2wiJ~F(58@8pTb&i%e6Y?<<_2_?z%SV9jrn!x%G{d9W zT4{pAixDWL4-?K8PlC-Vu2fW#iWga};_kxqx8z1wpwT1Rw6Aw*+d{iYUd1iXoSwDQ8i8ilJFt^bWZJln< z*9)U3!W~51k*8vK!c^{H5`+D7xI?p>`HjN3VJZKB3wZuvT)?gT1__*pb(57p=f1bi z1ZDo|!v0O!sHVAvPZti|50hYucC(hYvFh#&=VJP1$+3U9I9#kia0Oy~(|z`7bcdXK zif`sx6-}($8L@hlR)Euz2c6*zzh?0j*nnBKxLMCw1uLF`ndaP$&lG+bbQ*Y)tVdG~ z&NDdeD2=Mt%xE_5-CmeJJS)YvC1wL2%G=g)?l;>D=LPNVw67PYy2<|(4|dmmy>OE2 z-miINFv3-y0*;<@CLMYGes-;Kp}Df*!aXp%dBlnMdZ4|{F!*d7?U)Uf@_I|`kkxmM+F?+&vuk9@8$yFFEC zQ*>}=bT*H0=RQZq(4Fqn&lPT)0`thhwri5QH`=sBOl%rH{m#n`2pfjxg@g_93uePY2KVc(bS1W~Z@R;;r08C^^2);7(-yYE)`yWzd#~%hvhYXVeeJ5k@%`S7 zy1MZ5;M-k)y1MY;eDJNVOFmv$m>>Hu4d!TRm!oB8u9u_5e15Oc-&?QeWP{+L|6!)t z2E`1r^CR07(TCG z^P+3&=B<(b`NPV(=FX2sg#;k>+8*4F(Rb>S;lA?&(L%a>^9Q1Hj*(lGkeI1HWQuiQdIbL766Da{vN{@G|IyCX_+NAGH>)G1b6&cJ37OZmV@)(S zpoKr56CH>{dDgkn%t-?}{UKZ1t7%7K-C#$pj1AZQ*4=q-G%OkDpqBJd6B35L^q+QW zN&jQIS}w-X`!DX;i=(qUe)3zWO?XJS%Gw~wtuF3zJ1&mS81Tg*mqZ^L|KM-7uL%qje0F;SO7HL3HM@6R z3Gw*Xbo%itqhskz^HtGOewJSqO&jCU9AUkmK|QS@z=)l=Kb#v)3wJ;2CZ88gnfLnF zh<`z@VfA`0cQmSLP|06Z+47%E1A8;f1m1c{<$R2cm9^pV_I}qhZtZ!|xa!*1DC9q# ze>6rm`*Q7n*_X@+6taXlCj;B&Yp&)T4DyWa`ua1n$n1_R`}wc@-8X$M^w<5}+R)xz z`wc6(w!!W;_`8F2v$H8Eh;Qz3W6zK7DA+)EyC=_&{@)5>3;XY=!fBtwz_X!7_IJ1Yf$KO@5*e6TkCC$ zd)GzL{v9v=KC7A?ldAfat?tf?sQQja)m!(Ai=rtlKW5jIk?c?WaeAX(eC2661pi@~ zyrda*DLY}vPSoq(Yot1O?Te~AEroMD=RWoE=(r(2$5_@Y^ZhTn{@=%=DPbbVNPz@< zyMyAZp*C2vWM&tC1!s<)?R5u#B08D{^T$3BEgGxB=s&)2skL{(AAiDRz-ym~-a6SA z)bVG#gEb^JNWU1?`-?L^sV}-d^2w+*L`r=8`l!Uum#&9|_qu<-KAOZ&>kZKoevZE( zI;W&sn`nL`8_m)xNB6Gr$2Y(Xfy9l`@WHR5LNT4A6ekLzOyAA~ynsn$;fEaS=btnJ<;fBe(UUi4AkFK}=#%$aI zs%1d}2#=Lx4>EyGgFOzaQd;fk-56m_waz@+rnFKf!W;isc70nzQHXs;5P4LbvwlM~htMsE1`hxQR+Wps*gtPT$n150*$^otYvygy zY<^bW7L6QX5KCd`0m`J&ts8EO)-;T@e(nRpUBf>c{h?vN;kWk;pU8sx8~?_tCF2n7 z9D8^4lg2}=7uj(a_BQh0+0kVz%w!GR2sq(7{x~z@9QEwQ*WBB`6ipnq`x*2D7MsPx zD=+F2Z$|NO_rS*d(5}yZDH<9CE$*RvBTnRYM}9fFA$;YTu3cY_rs|B3aC7vwab8Q3 zLzgI4fBFRskOMHVU*z5L>*HaQd(=H8Z_(=d*4$KOvB z+q|xi+#ekgBt2Ra8%q1d8GF@3y;7ZZVegz?NtpX4sMx*OypQh%r+U75*xqmwLP%l!%I)G&wbY zez|eE%urTKotJXYk5wRgYr3Df|sH{}41=5R6PFlS*6gE#F8*6{Br07CTK zn(~qsf<;*CA+<>}L{V&AdPOlDcqZ2`RpzYNA8n@2?Usqsh9Y@T{GGe|foRsdIhYy- z+@kIO$lFU4r^SZ!hEgkC(B_Ud>TXhtG@G`5E|Ez2i^@5L)VH!498+#3N=Kc5XRa!f zGJtv0=SeFtiru^iqiM=Kxr!$;5SQUHmYOH+PixXr{C&XZxTrai6RV2a)U_H$lOpfy z;|*io{+Go=s?B} zmAbV^1OG<+PsU89z}_35jT26b2E>Xr1+sLZ#jSiO8Z#sXb7hY#yL^GDz3!oC9Gq`7 zR?hqia|Qu*Rfkzy1q`!x=iOhw8VxrAhVrS2nICQyru&K7%ATCxA??+<7FT#UnzSfI zNsAs*p_bwvTPkfO#_ou=h(57ydc09*=;acPf;ylZYA80j_dOgfjP=I4KKN_VN$$@N zM-x|~=e#KNSoa5!zG2FXf3M4KVJ;-{xPGs*w_Ca7#=5#AMeNEgyfW2HD5#BKISw#X z>x5y@^XgYw^z3!Fe>ECcslh~q;$fmmtifcL4NYL$oq@>%gR&m9uT#yrs-{K3p|utb zrx=)_j!>isEbxj2#h29-l@u%1b>f9`8GR&K`C;J zyP{EVWo!JhwtTplMnHMtcvGGmZkxf?&NXFaw32=;jN_Vc)*QXE5)gpc8Rr^4$_fF# zql13h-J@MmxfJK29SDS!OYO&lE0Tf68?+&STpexhPhHWNvbLG8An%-PwveNZpv_2% zv7iJKR&nswXxwB~SF1w#FsQ=rIV>q_r_FtIYc%F0@>VlXmEW?RyD}8Y@iP(>57EGP z=gqDtxT9^`X*{irl{YV%UBUvm{TI2qFIwDhw?@g(7C;4+_8a_|Aa;j78kI-1&`q%g zpcUIXg`qHNcgdsCSrhd#@DD;;saVPq3W)anSMJY`M&sJypm=VYR8LdV>N+2b4$y`k zE$&187&0@2Vxv3fv1kU8>GsE>$$VDNG2FKwi^g_RRbx7}Nh{MyODM6LVV?}To^Z|z zB6rExqItcj=~UPDcvN0`%Vsox4iB`U11+dAWzX31gUZAA`PY>fvy11mi*?z>9rv*n zAR0f&EbE?Wus~{co2dT~FTM6ausX2X2=`BXm=Z2H{faQzFQaygnLyq@(l4i0H$D*^ zI(wZu$U>@eU)ob3YFiU5)e2Hb+Z6saZj6a74)_=*|0OYaj>{Fki4`^P+PkCu58A@6gXK_IP`sbcfyj7O0$s!+JS765aF!s* z-z&A6JMF1xY8APHm%glAh$xSV`1?`ieAbzQb*5}?3givlDI3`G3ZZ~wSU0lmaQ*?F zip+B4A7GZYowULl^-A46-}ftt$a-f@(%`BJRL^bGYEW*%(PN6t22;8a7`|2gT=s zB>{hd5REcZ!-oU3Q%O2M4FFseAp+NfqWkE!XcSpkW?5Cj4Z*3lGtpiEe{pcVurvck zQu=}c$c?ENwL~+f(a|eniPN_133b4E>Ywm2Ovs+hNrAomAmHuce!dKMHUr9(QB2SW z4hmcOfg5WP)a=GR9gV13;z!_WE^334-H<}Yz-c!mm|-Gkc~``ubi(b;cFfN<+jjRn zcb34z?q1@~`fGRC0Q`9DjwJqM_5hOZ;isc>n_e86FQ8a9R$cI1L#eCu-6#%%?{-c5 z$LRNA(CtQlA3b<~`8XXaon*HA-RaZd_f?V*+A(DcXZXo#9v>(~kD;@UZyTz^(i-RqS<}f6Scn z6fGHi_B&Evmkd>6IE^ZXzyfXglWw3to?t`xTX7K+g#{=nM{h^6De96bDee!y>d^ir zbEQ^>fd63U6)Ewg^!VM?b=gLbotpdQ)r-xNs+=A_$*wy{9B2D2!AaUt0xKo7 zo326C_GgEciMj{de1facZTV?5vdEdN!o9qHu7y0@#-Bv{xxfB2YU*<|Z0LUWlW0us zOjqpY92lKn5?qG(V~Qx6(Y9f#RAUVA+Oa=xCk~jqkElNx{Xxh|06|Eq<@`JwcP{Rh-lgchX39v+HTC z{ANw=G(MY_^$I&pR<(+;Q;;HT{j^sb&dtU(#&h6d2K#@O@#o`FE>#xluX)cqW~+J5JM~NhP11#fc?JG zE;o^t2rXx8%+|o&`C`OL?!vMfS`DGLp8bINPkp!P zT;&nr@5tVDHw zxQCm{CT%mR>}gQCYSi>i1)cFI?ik*uFj?O-_1yC%8{j~F@{`iPPa88JX>^2u&Zk~} zU#dPUtHdT<3%q6@vEFzCNrOhx8Lp228NVB%GL-on;J|;`DVt1*)c~qe3j^tez&z7% zU=zNoTOtFkt)_WWHJ5UOWfiqZm$o?yWec^?p97OIi-ST<5a54cSML@)1oRHYL{Zpw+Iah zM)BwvttuYeLJ+c+F^Lkm@^WBec;ae6HPXNKDC1`B9}lZ~{9i%_TF)NTyMc*7)7_5< zfQKgn5+yn+cdUI7|cHdZ|sFyY?Ax%zd=GYc{O z-khr!rvOuz5p;z#Xci1u6mo~4?=cG2Uv9FK*x$=CXyEq)J_XT@FM}`phUxv!!*|Jv z-NSeLquT#sqEXE>(F35__l4u^Do7iyLo|$xOJ@wwWLXCNzJbd#w{5PhgjM zchLTEd#w}yt8M^$fk3KVgeYFZ&UH$WK<3y-9`Fphck>O~>*P2A* z^MN7Xhs$J;?_oC7acnB^`}aY<r~kO57{T?HN$I7rJt<6 z(Cx#+)43vDmIu$iCJOEb?%~`c*11P4d(8r7jU5rJBKLx}(Q*iE-95>s=ZSXZen zsjgb*PS_J2cS4E+y|pa9II#a1G6jpy^vD|Dv0hzwuk4AYR58FxvnNfeCnMdX*0p0cRG^6y`IsVx*iIOdsv~EriS)r z8i{vpdG&xeJ@}-!Q7x>=G`9w6ZrTB&;Wfyb)!s{kGdiyt7aO@M1GjiuvDaOk-KmIL z1brHO420KB8C5nrUW*3izPfBubq7eoMCXwRYJS4nnXoFS4z+8>G=!bJqPDuJut$Js zP#xG*iV@Y#tAPk+wNt!qi?5`yXO8U=l??5fVtYg-!>TENbcc>=H5ehVw~8C}FlFTiN6z4~n zT)}%&P;f8263uDxW(9+ZYuy{|UrlGZUbEfFs(S-`Q~6zaZEE!%Lx$dbQ7rjwCfnh9sOG$xovx+18TiVhTCN8hu&;bZ=`3xd2it2LsE@fT^^`M zJuI9Oy;*n_9=?NlxAoXyB@qy$v_Di#+*~sqkYtB^s2vp&ehg_z1}7bO8u1<)w*;{U zcZSQ0w};7KIUv1EQ8gP`*=b=0sN_%7m@{x_I~muTqWxCQ3v){>8<-UX?RlluDZD8x zrTFpr$PIZdI4HsTi)hHv6m zS*F$39!)q==k8(@7x0UD0KT?W|QT}r0Y&?_W*H#U^R0d_& zfelsGi$R(7s^|wU2`|88IszU5_MTI$wuL`FGTq`D`uVYS6LdQ%aez zA-b^^R({ke*34f)(kx`?u@I$}rDB0~>xbUT+PQs(y3|iWqEiEnKEcL)ebrooJj# zhg}G_C2=rWrDi8tpltt21_c>5RE#uq8AmR%t~8AZ%_a0ImO&g*bl1%ijIyaRlsA!# z6xuU@3}VV_(`WA~r#{w6MZ$+nK(GwP_;1+U3zJ#ydf~#9g5~ABWk&<6L3ehO;W`ge zT}A*lO@}RM5^InLsAYe2N8!*;aLN|izOcCy!qJ#R=*R$&s7fmD{M)56(>gFL0K8yf zD4xLr1ndP1;3dsmh7rR~@SvKzjB5c6+g0(?jEEExM24BF&DKD%2&+aSn*a#YR!bB0 z4JqX&>1}>hX>zL>7IzxLqQv*oIsQ$fla-y<{pPv0HuWk{ucf06qYpI;zoc7=%IrPA z>V3Ty2)#?~koTbm@_L>E#9vpRG@sIw>O0kouhja4YL>P4Kj@DEmHy<>I{bf-VE%a1 zV5)Q;+Px$7hnU%##6JdpDN2f<0Y!=4uuqK1rC(TLk+Nk8Qly^TE={sg_$$V4#sZ-o zl7hd`YnId7#1vlkhWS+ywgi?530yS>S+ouRng76&k`@w7h62C94mtPYeqIJyi?(nw zq@gEihH>U7LygQq6&Nn&IsDCYZfjAP=0CxEj@ms%TV$u$NYIdTT*7;b$rLSOG7Iq( z?W6NZkhX>#SCo)FBk14`gFo(oSa9XW;3`Il0ThzA;+e{6#R(P2sWdANA3B4X6iyIZ zF1NTeMOeze{n+B#*-DI|qHE+^9020wA$2fd0$9`)Q_gBo=O}|fTr^{telQa4Hki_2 zFs}yrR6a^CG&V=yQN?<}exoo1FrqW3fW!+|2}=7VQ%ao-xkeC!QdfOzK90@iXi`Pk zXy2z_)B1i18wg}-0SEEK9@VCk0)vaN0caK0!G5g$HZR$eyP|BFPk39nhoE6xA|p*D zRU8rXCLL)F4v5j^DX9GKeT0v@`c9Wz8)STlhL zvhK`=cr5*sBhiD5hEoLeyRF52&;~&o#$K9Q8)0c$654r=#d@@y*8Z2%*2u1H~jK^1d_ru&m88)E+`?-%-m8Pec zt*c6?Fv<^6nwdUAcP{PE^=)vc1AuoYNDaYoa7gFWFhMmsuyk(n73YX4gDvG3L z8qx}=0vV#eJ(E1$632RugeX(fl*zvLoGdPW)+icB-Jp!2rfk(u56r1e6l|y$O7p?2 zgI+eM6fSXR7UGfBova(f;#;Ymt8{7DYX(*h<{MQZi@%I82<4iq8;LWM5@Lv<;t|Dhy8*b4pyK4Yiz*|>UW{QcB9Y&P zkm}|o3$9tR;NyO+&R&1l9x+3F;OB)1igvgO;cUsM%a$-c5+8--=7jLJQOStQ$|I6d zCvLusyhk3I0N1yhK_P@9~m$U99{uh4CmiS{*B<@ zDE=uO6d`+7sI7qn0p~o?G^Wl#kPKq6LmAK|Q|J2V7XNw`-mU%?9}KAjC>QkzOpT_} z^j9&ClWNy%wPFSNz;M!x$((*^hrMcL;sZy7%EsTCF{X6qBxG)>ZPOZxTZLnLU#6X$yn=`HM2H+helDGZMC^Jbhk9ctEcQCV1;0q zeROb7KNjBZ0se zrJ@JEJOG7NhzFHGDz)Ve0T6&VD32o(QyS8!=Ea?;M6}_aZi!20tfvAZy{!WJ4)l01 z4p^uO9)O5=$%1mr<>h7?w)dX0F6SM@ae29A-E#Pkv|%bs-<8JEExugumbAu)R*7Y_ zZjSc-E>Krg9$OohLLKW2Z08#j-OV=|D_zNkW(awP#-ypEfd8r-=|Qxj9FCzQyh%%VZW_85ugzo`jHmR=m@I3^zyQrFyU~ zJ2KtU_?!to`%cZs!62c?7PPFCVGHUIvSwDs_Qjo$0CS**IpRDGw74bD`59C{sLsp9 zGu2w`;{idC5AM%2x0t@=yF0ATL1NRPSh~z#HKfN&rOs_hjqFJS?IVRQMyw>0mX_yU zXyiIEfq?VLWFTFW`3G`S2h9OQz4^HM028e^1xmYlV)_A!^W&sA0;xGO3@Saa=mEjN zBkvjTn~am5o9ty_d}K2BLbPxTNszD}$)abF`Gve*qh|*FEXL5wbc6no`sv*R1QGom zHJ}fz!Mdq8tmTYE3mS|TG)T#a2GM{*V|U$LDHj)3b2zEMOzA>9d19v1LAu+)9omjw z53bBc3*ze-hn6@I&pDB!GL@uT>Xa2Kt@04In^E;z5G-R5H7wDm3&f8)!&zjhM0!^S zSADmdD1kYvD65sagR-wHY+&}F)`8~#NeAFfUfH?0ucmW_j4sF#m`^fz3@l5$4x=up z)SDA&01(Vhvrr7khIngO?+MwCOl5#r7bZ%--X|(o$>{ulh08Tm_W0HcnuUv#*;@6@ zQn*=M+?WOfWU5Xwsj9c0m$2O}^y}d!#iQtPZ}Z{)%yqdy*o7Y>e`O^2l@Hyu;UgFX z&*Epq#zcyqMb?Ud-mK6S)=O|LXz)tDiVi=-c&qFINL^F)k0R25>x<-l|$l>gZ+vM_7gd&oHTao+Jlc6kH{KUqNC9+8*pg(PAJ8b?Xn>0V!vTkWfrxaMz*Z% zJ?oV|_Odsdc=1>r#xfndWM?vs^!z%N%|l{(ZP=CEA%XEK+zEsb)WB3E2AFYl!kW{0 zH~_=HdfZfL?AP)CqkdOwHg2Xyh7Kn8daAAXf1phIh9P)O!>9?G6%)+7pX96;he zbxYImYP*X1kj(#UTriMwc0@9*)G2c0-h0o5EJgWpuzc!z=&ID4C^iDaZ(zM{ikwLX z7W5MHAbHOk-y>H2s=l_G7hzHdd(`_14YNw4YItb*<$P5e*nwom3E;oIbO}X}U~@^8 zl*|N>2Y~bjg|lpf^z3FofpUu2jqhI0n1T78`QD7GO~M&X3b#06+QTX{qyN(VkW7(* zMZF~bRF-z0Yt5zB@q@%u*~R25N&{HP*KYn#H?Wn}0@6@@Dwu3#OFtET+8Ay`Oq90K4F?Z|ecoN8@@>shFgcbvpD%Duu{l+?& zHm3b<#9hTuSS~^GhzeQkvGD0oSIAY-KxAfX)wPY(-}g0(-6vmqL?Ca4EBDffcwx1{ z+rE5{G(%=Y&w3-?XTbcP7YXUi+We%Sq;J^YVhmbyt;zF`{Y2I1$tb$6f4P=(goa!4 zt4b63g|JGKRjs*8jOMlXHpvyw*Hce+ZCW!x2)1-!hsCF{Ac*1c+ME+ReX#>;Cn*P} z5uuJ@C@uZ5aXK2k$_!+#5mf>L))ktcO5+Dh^2zBE{ZIQ6xx^lY`M1Am+x@%c-AUF7y%U#ssFT>bDgb zFaZ)VvV(_5?Ag1`Rtx|+q3JDl?4bgzGEE18dUS#NWMWqwje&MfYF+!Z#PhQreXI+ zOukwmBrvS(g^XI!7&h{HAVds2x_n+@+)9uLTS7>*h(Uu2pW}rgh_NY|2gHe|W(@NU zI->6xKk_3xXPl~hf2<9&Qx?@4IPL4rYMtaCX1APYnoI=2ScZChnh2o%Mx#=l$dHyb#i$cH#n8s`t+3l31p80`z zNn;{Md(xx09asvH%%r~sBP|&T-~d-P-dAS{Od^G(^<)_ zM({S@(-u;`4y1amV#(Z6-o&do82qBCw%Rtt0!BC~75*sR+F08`XV~EvsP38)F-bb) zsK!+|=|)_|)_}+n2-bb06pugT_1hOq9Txwouz~T_+tW>*o)Uj|yHR4MQT{T!g%E#o zyPHssM~u??RR`P5=~<=P{?6DPUycu~8Vj%nzJ=nNp;>5$`3+9d(I`cIN{^p1c>#`x zl^;rr5*aZ#TM~k*y|gKXe)|Z+&=ius!os};*^>25*QMy`$3Kd2XSN<&h{z0J+8n2 zJLaFlQ-q`Ekz9)4%_hRU%n>UvWU?EWgxSEj0Y(dR7UNv#75IWg!O^D)Atv+ON%8P{ zB`MFcSkC%=_T_)r6*hhi&=sA=F=SPh0NBb{gb4m794Lm#ow-*&y;ujm6We4m*)5p-qwIQYWf3BUTC}}01(zcJ*ixPW#k^G+xXfGCYR7ix2+BmhXH3cSBtBgv zFs1k_hAkw26Ml}bh`OSLV4bi}g_YN(L5;7~>17qM2Fz9_8+HmS_a&=f8K%+Ndz(SJ zl+gk^*-VmRttFY8WIMQ4JgK!sOwGc7B)Yr`m6{!Fyj5CHnQ(2Vh#&KSLk&f!CcOGP zgsd8=-1eSdvB3HcqQb$Vxv3%t@d2Jd~e{l99Ro>}WHayB#lMND;5cG%Wfm(k;|0988KJB@&#skkW#a-(Xz?? zV83`=ousXo8a*<({^{6?-$%U2|Mo?sKB{;xr6-e?^vLienQ26naWjV<3K)oIcnT2 zm=+H;`vGJsExpcU;KOpL-*k5$a;>cH7D@Kgt+ilNk%(3wA{}Dxy|}SFOj=LdHryr) zy-%Iv1{Z0&;#=D0?rxbDFM{%60|J|zy6(r*;^V8fS=hH^@=T-XyH~i~f1>q>KK&o; z6-H88C);IT;j*?@xT*)F`S809WCvh5Y;l*IZI`YX-lTU;wchzfG_gqg+Q>}QKnlAo z0&cjr;+vTRS>06Yom)I39zSOQ*g!Z2e47QoM6;Eg(H>uYB%1u!)|XpT_(Q`7^Xub$)+bwpaQ_hD?sbQuzKbT^o@#t zGBcjmnf0eGD3bnsRsCT@UrlN2wN+4EP`y1J=-Ym;V1W95_^9Ou1p{D+Q!s!yCTQpv z*4D9-@nr%6B#Si%Vlfu!ZXh#r6(R|LqgTt7i{-E zI2Ijsiwnlp&#Lew6K_}wDN7UktHr-I|9QW-5;>8P$PpQ(z;{Aqmn+i*Ux0_#@FO~n&Taf^x zVr$FI-nYHSEu9s=dtYCxcLRTYDwYf0xu4F8&lxRxVoobFJJB24veQ%4@{RV4GL5m!iVL#wI@U?4Pi*-PX7cX9MN}4 z(O}U^jE)7(fE`aM#5&)fIWAd>s?&=^tRSNkPIwZ*G;~DUFiaYd2+46p9>flq+A_k& z%Zzld9Y_q~sAOakT}FJw2qKA!M~!CfZ&C7d5=)mpEc08bYC^OuR(>ev6mLQpDlU_b zlymH$tPBuCCCD;3^`)&rN?^<$!b;#a%!#M7*#ycUl_U_G8h>0Wmzfn^qH z;~7NejoTEt`SaqLRjE-5ObcNok1EBEOpMk~`zUHOeqW2TptzV6wR_YbB+b9(K5b1%=2 zC-xjI@bp{bQ;WY0OR~HqO7@;>xjye^ER83IYk%WbERBaB`CDyP!d0@~vI$8UrR=pt zGFfgfC8*_wzcA7437G;|XjmbF#|cvpRuvbx&n=C=F$Fbvo!))kl6kJx<%@r>RG;P? zo=>thCHi#h&xwb(W?4Od8;6lQ^X~lU6Dt4yC?k@Gvbc&Iz;d&5F|YFC&ClRo!dRtL zrIvIlEy54|O?W0%GAgTvhk%i`(7_gV(~m}s-1T0!_Cd)+O( zBf(ksvN$<=FIbjDaH4YLmmvAd+FPDcp3N2rIqlEdi_uD@)t6#%QvV;_Ypgu{1=8oM z>c+~}?9z{hCy(oiuj5s>VrXLrA>fr?eWB}&Bjf#p>T9@Y<=L??%a)3=vsW052ZfKC z1r)DeR%_ZfczaKS*=4Q4?(9ipWqWq%UuK;au!iEdj5}T1+u~}t<92t$+v2wbhj;zs z+khp2d*!%z5kIq!k2_Wzo?roCZC?DT{Qk2HtGQqbawNh^r$AF|A?2Uw z+T4lyCwa94#Uc@&(y)MOCl<3P=nQw}vEA^i#@%CYkKc9%`Oa;HKyYs67`L?@>KqPz zv-hbQ52GyAU#LWEzJ7dadu%+PC!r`@E4NJbZ&c#na&Ani!JTzNd`!^b9ylQ$*~4MJ zdqO`m|BC9A_wGgg`t-iLx#T9+c0xU6y3*{vZq|wMv{U|hh@FJf zV%Z4;I|)a5b}NKs@=-bOb!HQuYmps_6&9D^H5^&>^8Z@Q8!ah#^PoH_{@eraZ5->K z`aWsSvQ-Jwk98I`1^}zxwP_6^b8D~8V#O;}rKs!%pYWH^)4o005>y^tOOJ+80k5q` z8?9Jk;2m!CQlUcX8E#dJy2beF(GRnYPO-s-5+w2F zC9PMGfe}vuJ2x8cDd!bygK-|b1SQCkS87t_`Nf8+-Y!rn%Jo&l)y!;}qAE4iP&Hri zs7i+H1_XYJss<*~^!1vSq?trmednYnDPJ}xA%vHNRgI~?<2BSeMv}w^JwMdkq;<~K zpxN?ngHO+*j;u1nbURj5DZ^1alvJ2xqKre|s18m!4A9f_9IvJ~ZIyRwcPbZ2o`CB% z&=SR6hvEgCk_PZW>z)r~&$l{@{;)PIYqT-&*xe7`8IP_C`L@ukg&=F0(2CJs)iM(- zx0_is;C@U^QBC;xy-|u(!|DhL%Gs2LIsgqK7EA`oWJ_FxkHA%O!boV+!XK8<_=J2; z^+x4X&sUDJr0V%fYnoIY1UQl-f}21IaKw<49l%vGTIc=yXLz5>S^wDVvi&O$*;~4&aQY0e&MFdMSLr(9@8H2y5Qb& zO1vijnX9_pgQvs`uz3i-+0tRyzZIy7142{EAi>neuJzRTwCW$xSM;AI=HYLr$9#2B^F-wC-(^+C`h(VW-60!nD%C^qlX@r&?GHSu2z2nqrLPkTTBTL1(x5MV(7+=Oo)0o~xwY%c^cWorvfI&bf=bj(=BtNaw7BzkD;0Fo0Pr!NUk_U5blxYu1>f@aE;}M%+<%eJDywE zK}inPx%S=hW5ZNU5{y9*%0wvWVX1KMd{4X}y#IN3(|h8>>d)Q!!Fwo`bANmfQ8-_F z-i>vWvr##G+95T++iI0rkqmCR=yu(hJvJq8G}4PrqKc z?&OjiQsk4YTUXkim1)@=tsWu?D{j_%u=G_v=^3Q>XTp>eA*=Fr*m?w5cRFo2UEv>i7vdxN%K9 zKHT)I>s}MzTU$jv{^qNw@!9+?X@o1ZCe2G0U3M};X36AITjftLxb5e}t2j0AfOF$} zd@IA;OXtQ<)m^u_7tV`^tLMKwFP=NVz}|9xJS%v?U37kY(toFCGqRrbUbAN0vi|A! zzU*dS5I@W^c!?kU0>qYT& zEd>7UqWEAp>0&mo2q~a+!zuJ}TMewZI35FLoO5wJbBKT6jch}?CUFsYuJ6vb8AJEitKuSbG~^Ph6C9%K-t!@_=2>^mhginN?yDb) zXSB2-<-OR7+)E#dCkI70iUn5#M7rA&gjtug2dLv43%#L#Cax+^+%|#Cx>?}{%Cw)(EQ>sGLPp;_n&u{ zT^3IToL{^w{%cjLE_83JKZ{B&a0xGxEy=%uLJN>-_RP-CV;e=_nTXg{B(v3}C3Jkr zu5>dT+o^pe`dQD@Y^A_nxuUwOdZ!LaTat3W9`1;DUF(F=Zuu2)V?Fk*ydoZZY>p|a zSRPg@?(^K{WzJ^$v54tK;F53yGb7KnS1d zz{VlLZZv`yUAn^QWuE4A0*w7XPosVrOv0(5MfZ{D830) z6IuzQK6G6?_J9JJ*3r{cOR1n71L+m|iim?IAd@g@F=o$4E5FYHq@P_ETb^a87b~N_ z5~WgBGnEPkUv_MPcJZ^ie_t0b8*F`OV98*kQ6CQfSUmQvd>HCP<+N$8tm!t+)=Ql z3W%uXfll|UjOI!UiD%sz*TiR#(vT@dvatp;Ghj~sGr=~36mW9#YbyzAo;h|rH;A5RLly8Et=C(?_Z*T>uI zc>NtW#&0crO}TG}xozK%$Gi1sg#{&epz1nHxEr%R))A=l*T)C<2#OD_kEf1&Iv*4* zu{nl?0Ana>9hR%&x~>yOgcF07k1_k{6SsC`I8NH;og>4QU3Y&feu*;_y4L?gys-gj z&b~c9$Q^TdI5N1#z4!3&gfZ9fr556$U*6Cs*~7@=Kn?$Nc(}Lg?Azn8v1=ne3sviR zFE)&F-@iG2p=;Hh@tt}1pOxsyrqAAjym=+hS;QaP8Xu-&U*8%p4EEmoXiVDbt`i=O z4-bP^-KV|=a=hwxeJy?uU0L*aylMn73T$VqTnDbkl@07AMzvl84|(G8cnw8Y9utjo z%btiwaed|!@frL){X~2OheI?y8FNSkC-glPU#MEfvSw2)ZS}Q$>nY&5*ZuOT_;J3x zyBj|9s{3|#d=@_kZi_GE=Zo90vA*hlyp2A+>MBpiKjwo8&&1#7ZtpYk0sKtf9)FOZ z4cp^ugO}YAOQO#Ne{e4@iLMUX+}Us8D8@gyProHPJ9x!4yp`i{+uY%Ajb^>21{28U zZ@ErVirW5AN@Cj|au2>W+9qgTywnbhd}wKOdhlA;;3J~;K#xnyqKRX!3oYk9J~|Ar zUUD=Luf9qX_^xG$>BjuTXl?@f?-+sykzOG}>KuJk$EBd+hk=BmB%;&S`!2W(7YFE{}H5uaB;XzR4Y5 zjdCmBPDbZf-I}*^!r!az`L{=32lH+|A^I37H}b@2YItMl-g08}bg3TQ`l8kM8iJ;( z>pUr1?A~`$w1}kgcb^n>@pIZcqR$PB63icAq7*I7+Q(ry=|;RW8aI-|EitmNvaST$ zzRWgoilK_S$~&WJ@hQ2M;tODTJ6_n9 z!$daGl5Zo);L_|RDQ=fkTZGt_@N33JQ`x@x8TXlA2PX+hU-@5} zN#U{K_Ru{xDO{M}MzPl>5ql&EkDeT!C>BJdbnSBUFhC3J)Eo$KQTQ_Ms0dTO3n6w z8RfTIzunl*VYE+A4`0;`J~|_uqZ$0|jBw4Ul}LiuSrG`Uu4}+qpd*qvtfc6Ee|j{+ zjel1(#?5_il(drAfQ@vl3f|rpxp%)enpQO zrT}LnH6M@O#lfvI(KQ~$Mr<=Fwwfy2iYjZ%GoFgvV?JetruA8?9RQ>%^zW!KBo>3% zt17_~uaR@Uu&Xv#NCstQH|dL*BZ+f?@@5{>dw zP4k`>V;(%WI9o-m3|_V8nMUH6X~hagf%$KfAm5GXNEmslxQudNCtl(ptM}6 zx^c0sOs*31owNn+iT6gM!tD=r?Rjr>SO8rd@P1B$Zg(Gje^i?CxA2u8J>;H#e{^5( zFZci3zVwp*uc2$XJDxNnO`DmQy2(a^G;L<)*htf6=H=KRZRTlrvvBS))wsb;`BCl% zcboqB%H8pTV1}Fd`FP5?-r7#QIXa_U*#u3ZV|o8)opxX8NSWId|N9>;=FIZPlcRGs zqI24Tz5qB|pjyi8-9eU8Pp{p!&!Z>u`=igt`}g$^Q2}Hkmw>W{5L!ZAy?jCe*v*Ep zSSuPer-d%jFv{b`E z6N)Ff&0iqlkUE5{*1#Y+E#C(im{#6d15jC(%MLF%*>kb=pP#Ad$VXyU! zj&LR(6vwFOlC9x8gUV>g=U_scwW=R!lm7C}X|7b^z|`EYeYz;EbaeZ(?3U{v-0Uv< zVm#$Y_2B#x+COzsm4r5?WoT93Fs5ejWsoS+u%T^j`AhM!RjNxTh;r%7 z$U6kLRc$PiY~138DXyl${VA@(`NsQqAZl}M|3nQxh2-Fa*1Ij{YKLo!23Vov_ezdy zf@&Hof5L>0uSB%>2QDptL5B4{5|qun3v(&5v*R}>iq0h%LPTT~mE)u37w)`!1mg2JUGjRF2d*hY;_}S54W;Sx}%rD2Y7CZ-$aO7-I60zK3D@BAY`&WDR z&atabTccmGNEM3M8~5Co38aAhWUxb6Af~AYKoC8`6V;&_*+quPz^hKsS0D+?m}E2y zjxHAnsL?28E=j_f)POgNT!h?+U#LQ{Z1E2XtUi^;NmR^@v#MTaug0?Y9z}b+It>wsl?Y?;I{B)?vD&A-a=^kzyyuN3?YhMBn zeMyjoYug;pJVFiSaFQ_Bsye5IW71^DL8|u`&Ci|5!++yp;{icVr)}ga|IS_PYeb^( zpxv$A9FLrHQoRfrozm7^|7$}io>Xr{TGy0sbKlw=A2M#EPq&a^Lz;=fu;HfL+{F9i z_t#^?E%(QzV6J=Q{`eHmsV#m5;j$!Wn1F*$-ecUuB|a|U-Y>P}7t=Ig+rSK=2I$Wu zo?u>Js-?;>%cv(_@4?TA^_qFMxoDMY(-FlH|cKBVyy%9Y27S}$Ir7YbTZFHoskiQ5igS-}yHJ*h8cFf}iLQYAuE zD46ETZ&tn!EswlsqX(;H5X7>hm%);?{I7UfX*f=2tkDQnOH7Xku$9Sgb*DZMzaz>g zl;lL|t_R}sGUeUKX08WHJ;kOkLwbD-=UE_pB>G1?9fmtnIG?@ebdx)l$`GiE$? zo25SYJnw+q*4s>+XIQ=^Lwe-*rrV^$ov4lNy=;J`s4yPoZA)vzTim%1k)kz|RJoS* z4YAHZt^ddJVRz1-gqp)Dp39ZZxUQ`-#zSm(t3Mn>eIn^Z9Cp})pI}`>_QLm75FbFp!$U-u zbk}JzX--VRK{+wKK7_VPPE43!rCT{Mc?dD9jzlRjL&aOC2MwrGp@PlRE~r6!M7Uqt zi}aD5W}p!Va1R@VewOp~TuOpt$j&_NiI>YWkpM|;Q z*=t{4uU)j{^qiSnUJ^DITSp~e=)zn=x!vykE_hKk&F&iy$I~;}X@Ui0`TwYU8#p~2^@S!CI`W-%&iP;^mHa;*$6`#KvBcy96MaV>58WQfYnH@VSa^`%>xSUOqZ~Yw0yd-tdo!dhPT8rF^w4JVKrDt0d?!^#FLT zkbtQyi_R%^Oe->B^@Y)UN*yyhPtJj68^0CJe@QTq-|^0SqV8E8y@x4+G<~x}Z}zC3 zX&ET>S1BqYSNUBucyDQA^o?zP#j8dizr~--DHH4%E)_fca)rF_H7}2TCgCobySDzC z=*u7VkFUa7aWv$^{HogGXu^G^M)dNpl}_(EEL-*5=<<*GD_m!IJW-Ek&MX}pR_e1S_LOwy{^j_Yp{>6SFn)mh6v!au}?9a&$RcA+U{<42~ zbo19s)#&fO?Dw3oFhpem=fpfqUBU9)p>t-J@*RHxE7UV#vGUAbhP?#}55r_>HNzygUuNJnll#q1SO!}6&PkO2RD zAOl^g2ONswA}>NS75Gv{EOOS`rZt8^p$gBVkzN)p+h-E z#n?FbrE!=ju(1)mM42_^zNK5#4;reO88_Vd#6P*1{XKWbKkiCOZhR~*d4R}vi|gNY zRa|nVBK@Z-)c?kh#zl7|m3A=s(caJci(g~O#d6RG^2EqRtlJS%1COQq1<9~ty#yIg z!hnli8PWv>gOIA~tsBI>W3;J!YGE;tElo#`cbbpPkJf)CzcM`X_`({ z;1L&D6%tLI(*ssRmwHcw?h;g2VsqFn)kt|3P+HZf`a`2h>$KhUThjdV z;YZL~laC0?yG+7|H>Snb!R7>4yumeO+4@pB+2ynWNlp6YYD#!ts~!<+d$sj!K0R#u zOFc$v{cP>_^s!C4rI^T85Pd9JOl&g7QGsVY-%@i$39SU5&K{p+aI^3Ko!nr7mf}M?$nXz%FDsV(4APAEn zDru#fs+qR_O{q%LJ#4C?3m)*NA2*VmoCu01sXTI$l8A05DSH3?eot#O1qBHONtBH> zFJlwXpEfPzhdAhYfq=%D7PHK^2?z^XC46xGb^_?bp+T>DJSH%dhB<>?_**N*zE2vC z80ZP^q##4Bhnb;z$BJKKhgE`#3tgSdzvz7wedtYA@M6!SU_SlGc8urv!DCIC(Jn>nqXQ z-&USX)|w~j0dSoTT$ebwI+zN)3P3+_u(omXfWbNyxT0~51=py)!|yx(;34|;&n6I! z-gJMyr-jBe9{8YDO~yvRr)vVn6pC)MttF>d_9HgilH9||DD9NaE9bb$9Nl%DJ`HK`r z7+U@gBceFIFeah|e#6(lLIYXcI`&0OV`2g3FPBG(=)*~F_LX^H?5?@cczz{T7D(DXLf;tLHjF*d+AXUq6>M1KI%PP0Mg)yG1x3&KP0`w8{c&)UkY%QoB zsf`v6QlzeS7)aP|F?_<&Ef^?&!i(fns2)`@{}vc2V>kst!Rk^`fh zxS|$65=moooxJUqbdK)`2NI%ogqTXEbHpv#ux$>z>2%y-!f-oFJp9xqHiHA}+(9vZ z*fxsIbVf1M{nO<1x04sT2cXlI+pfZdiw@aD*i5<9LvjeXMoRpsh_v>`{j@ z$cbRUyxhUqqhb*BgolCwMRJE9h8qqH=%F_b1NbL!K1_@CKlIETC_T1!(li$O zN3?nHFd&BS;_DocHyVx{*q36k=sb+n+v3hCc`6&qam*E zU^-k#(W}-N-NME_%ucI*B|YLQoF{t)W@RHa!hc2G=eX7E4c^)nm&=(TD}>p_45%?} z=TtU~u1TV1g(HZXG6LqE{v+1BSuC0b5_(bKx=_D~kew`|CWkS{FdkzJz*ciP3{hJW zq-^<>-n9=*z0YPIOeK=9K^tgUvSb+|T!ZyOYc|(1E&}y%H`I{fXZB4kzuc3yUf;6r zz%2B>UNY?>MG2VNa^Q>20mf=RwFa&&(LUCl1@5Op=WZfe%# zA)=c2u=X_-FJXi0RM`*-Rti6G>)lcao6tfF6Q@5|C0%@Yhbvt`>1<{0H9M)g#e^e! zK9#_Z5hk4-Jwmq9+A!K9Oa`cJx1$HxvJtW@T~%wk5i-!#+RLjEVwB^boM3GG+nXMW z#~#v~+_nMixKInjv=|Kbhh5On-T`LGtIk3b0Y!_oXPMTf05O1I$#*a_$^cTlWNk}} zu-W&33!yC*eE=@(i5x%EuoVLQ7&5K zpW@iK$>LL=;ghjY9s+FJD@!#+SjbTXK546LF9B;ag+P6>$!dEnoP2tPDh6B!TZvJ9 z4v3jw%Whx-2I;78D@#6c(LYm?O_D}5DG_9FNn1i;xPx1I8miD27}eQ0DeL&QMY8#^%BVZ7FD)|DYx%yKmrL5l<=P>Fw>YV3|| zEZL`Q-!6GvncJz&8i=WQ8$eZCSwjXDiLhf6NyGc#x%uN;0mrKGX*E3P0TeDiKJ0Ut zDO5@N2;*TnFQijMo@uW5Pp-5)CMjDoW@UYj$DlXI5~`E3vK`<=KYn4kTgy`uF@|gE zn#H!bVJNm`5;)o?`1R_J{7J*P9TI3b3y@~9do0%0*4N~eO!T!@tfAmN8|}pG27T>d zKVSoA0ix)d6B~@!%(Uohp7Ua2ZH?EPGThSx8%?_`qo}!hrk9IhwBQ~(jkDs6Q4VfF zR@Cqf>2AYyB17k_nS>hK8MT7ffS^&fhchu&{a4jyRHs+MJ=etc{=`$6t2}Fj7d&&D z{)`^Et4trwW0Uoohr^;pqLcr=yt3MExlv=INBOXf^IJg}#uybE1NYP^AP!Wf60uAR z7Wr!!?-MMGi~)jrUic_?X0funhq*Hgt?nE*_0Ir7eIq+Zi7B?i4_k&^oS4qCz@+vf z2-3dFUqI&0OE(IwYs)W`V9PC*7GD=ps0b!z2TUg`EW=JMuacFLvDFmTa3|Wc6v2g1 znG@PeD&pDbwuLidArobV>;33U-y+uPpkhbsJ4=_cAJTi9-?R0Gon%Jw{OD)@UOFvt z#(wZBe;|M3dz~+~KGGK(z2b+ZJE!0}b3R#A9)(wK-spU?4@Jj4#IBiKblI_;hep>v zR63L2k3B@tQ!y%kn{8vc=;Uv+=QJN(_-(f1JhIv3N2RGz*CVAxfug)R8U<1*L_78tr$pyJQhI}{FcAIv5$(=W<$>tA zKPnBm-{*1p_K(=R`Bc>VdELMkCrY^ijMmUb7PMO zqj&$LbOOKc{YmNCiH{sw^w~OF#WUy2Gq<}S&)m_QCUh5DfDNO9rUo~>c;S#ZUc5V5 zzvPx%U}ai=-&e5Zw4ABU0#oV)i|jYe(riCRSS@<7Lmu8U`&!ci!Q}*H-5XdXj`!u= zL9{F-Z_&?cL#+{D73iY0ke1qk419^NLaspP05m6sH;4ql+Q)Pdd6YM^Ijr8fl^h?| zwqW!d9VU@+Rj3rN5*fL}shr`s>VAJ>3u_9uu@{h?!E#LJb%KZ-cHMl%HMpCYF_s<4 zk!;8)3h?3dWW9j9@=LufY7qIdOKw1)jdigbP_63w<_2`l(|EHLyYe1KRJ%q^7i;#q z6%x^$aj|m)_POG1uA%r{fq=gCI;)57=$NZ1@%KYM4QI}MPggtxTgc_S)MKdXXNyki zV?Wj{#oKhHrCoXPM1|ejl$ruNg?ZO-CAT!suzxS?*6e2r>4<#e%ywMZ@Mh1A<^Ba1?!qx0h_~1}X)UFm{dis-5tOYF$M=`O942p5Qgp8bX z2qHDdjcgII(?;~Y%|?-FQ8dSH+p6#X$>A*he&>ehpw(9eSP^27WT z{9S8}Rwt1mruS-2de<5v=Qwb|P0~P8;CjusHE6u1DgL{9RaXzP6!&vwj(s8mhx}cv zS`^67&xbMRG$s(UUpBzD#)Yh#;XfU+31IIli~_8t@EZ=W&SvB0aa_n6*MU|2V+`4^ zv>|&>8?s++Ll&&S+IAp-#b;pn@aI96FUOFrxguE-)6#joZ_hhzRTg+uEHnt zv2WMDbOU$7XKd#5z;?@6`E_x*y=z8i6NWmoYkIhwDi6>Q(VgitCQN~`+?DvFt4xXR7!dO@(1Rn#bR4k=S^OPc$Ww9F%tLRn+qqdF4D0{vG zmZ)rQre6w_$p6%-;Fisj|FLo03g`xBS*R%H|FiS7&g_Z1Zl<59l}uQzg48%B6NL(f z+r(0|HN10JD+I{mt}uE6*lVhC{rw;i`-WN|7S|HHxl7=NQ5>`&>^cDK9UFP|iQ&l0 z(ZxdEu13Wnue2#4Z?^(VguN5>WWU(UfiAmV-);9_qkG5mZ7O-e^L z`tzcvK2`2-*^0YID{ccAz;&CM++7(s8fP#We7OjAcJ6k|9OEi<3()OJv1$_XoH`7P zN{u)9@V||zY{`_oN3FF?-zuj9J$%101rbhnyYNG4;goivqhjku{b;x#v7y!#^;q0m zr_}53ed63Z?8EgB>bDw?B{b(Ko-;ivw5 zucPHUz6XfMz<&Y^bKQ^UAq4^i=!V6jcQ5k+2lXG-ynr2BkVYo;n7jHFnp9*vFSL=s z5*&*_$kPavmBx@cY}w|g3OAr0Ru1NlkV{m0t=v1@t|5yda8$>-*il_hi{m7`0Kuer zR1@$CeNqk5hi%eQ)j9p$W`DQySBZXMouIK07d(6baR}nE|H(1|k3!up-f`N9m=G-= zFzOO~Ziq+URy9F~7F2%#7<74!hX!iei zP}cz=MO{K@MxyS0Y&JST)CE~VT~0yQ%Hu4UNd{e6ofy-TEq2JEzJAWqPm56v*T;eC z;4Stj%u*m7B%pwxm{O7`-&n|?;Bpc>k9 zvhCjfL}`%6|L}NeiN9lO^!vw4L)pi3pRjBItDYz=@E_S4o$$-j5!uJ_+uwSEG` zN7Va^F&ls5FKGO0?}%>s#qh@6+aLU8X(>6PtnEXjxQF~pGE>JsZ&~p|8DK0FEZX?X z(p>*N+oFGez9-Qv^Tc>!z3p~MPSn7Y3#T%^5rhnIG zoK4?f|7i5_Lp%EXJO45I=66d2Q||h-Ti0oa&WbMd=j65Mf{TrDzY?9~ZQo)CdlxYS-&nK_8tll} zt<78Id?9q(xB44}_V%qB0$&Vm@a^QE2#Y7z&IU%#ZU&Q9d}F6u z94X$ngIykn&N}2-huQ1+*8soMgo(D4!ydC}Z7FPmEJlfmbSdw-RFzKNk?jYg5Y?+I z)d%FL0%psK10~Ta8sXKZEO2N)}l;ldq>Hoe6Vdx2FcpsiS5_yQx>2Iwm^!b+;vKh zSGmCP&gR>XvG8y!V(Ua|oO#CVNp7%O)#SwQ-fcB+^b=@cYAi3x{TIrotW&?z6`RWA zx?;dObE)^3{j_YAx!>_S+=*VpP}`$UKe)~5m;se`*~ru7m7XwUd0zCySj;%Xgn-rdoT07j|MZw}q;yAe=mpH8uvmHqSgc?6lS4P$N%VrK7j{piY~XHF?k zUPh1IvdBA+1(Q0Vhw)lNZPq_che(-# zO2h@X9Nm(j?W}HaYPq2d7@Z*xH+Ph!hDUJBXedK3d#u1Dv30iL&3{p@xYTp>lUN?x z^aIt5pcUE8GiGszr?!72Lo1NwA3v9$-Wo? zQz~(!!=U357Q~Kl7V>thEDV(rIQ(;+%P&(?%1*DWd8o> zq?)CZy?G;qDf^}u@G5K8KX|IaMKlK0P}-)NHnr$u3&gO^@gt-^!%@eO3e5-9rUWP^ z_CU7F%Ns-NoyLFGRn9KphIma|QqR;Keb*3$y>V@j^ZcWd|~z zT#E7Ht(taQVvnVWAFSwddo0E5Q{4s8H!fF3FA}1Zo$dl+ zh%3LGk2}4IAF)=UYR-Eo5;3^B0XEwiD)fZWVWxNEWNTZ-=O*1i(n2DdRj4Q=d>s3W zy>Ds&h8bdul2_p3Kcu#_p6}`EdhlKSj5Up2_S>4v{g~fEQbEi&H_>pNOV|hrn{s3W zkN`>95RelYIv}P!;4|o1aC836MuRY>WLtrWJ4=W*?w8nvqgMu$gm%X|mGfRFI?^`a zU{p(+TeKV}g;c`()vS7Ix}akUz&-K#-eU~ReTD8P+7qk(_~S0DV8Y^-fzv@Far!zQ zmgrQv8>Ulj1>>YseL+_SzR_1)fyn{-xy#qbzM^LeD-cA`sWy8i9ePCEN{VF4r^mLO zR*Edb;Wpz-}~?Z!+;4Hlr>R5b=;{*Gvmr8!iXra-C-JxA_20L=f6(DFO;QV9rP5SaaCrUyfU1CM zVSVKnvm1I#kE4=aY?MS-61L2`Wzj+C?z(?_E|gCb3LZ=78ar|_SG|Qs zwiM#W+zQpQ8%JIsskfz2YpJfdMy5~d8eRI_19VAo{7IK$bWJ^X!c}$2bO}8ixtH+0 z08)*miz?{|#+1?>jjdB_r<-{2*3?w};QG>JIWA%lB-_1NL5z^UoVLd56E(A4;yAcb zeLA&9JgeMUgUa?2PgD#Pmx12(lX)8R`{R81sNr9BAAXJ0%oG~>GEQ`TyD{OiGipay z-)k#F4dnkGHOka$x|5}u*9)I!Ig)7@$q<3*NQP^*`nH&HKnu7Ih484g<6FS`ks zO-tJT3ZV_$eOP~PgOd*VC%O(Tw+?Z1L%T!#RtIIB>Z-mys?RI-E<>J>p+~R83sj+3 zRvI{YirO$t8aTPyEIBpIOf;zkU>?nR^DB&=zegNHE(9 zkle$TlaCP%m8dE5ZEq>aXXsBRzQOc-HRQAj`$Tm6KjtUd;<4=(PgE86#dLjZy1>3P z7VOi5oRZ4k2KKdB$X7==2e5UT_n_=-e_dlh`}~qyamA{0J4K6QK$#RRDqzIJQnZX` znUa2Yhr!UozGytUd>i}jRqh&20lC?lWl`sz3?K5o3|VSR3v(&1i4L}r`wG%ON$nz4 zn0b`WD(%e@QiyPwN))GLVuxv92W8a)SJaS6@wQcqyn~6t-iWhHy3w7Y52vZ)3=(`> z9X12pzHAsW4IUgs^@f|XZ2MzCG&OnXjj(>xqIP6YQnb&S;Za zc2)vC1gdasmI|h)siZI7A(0kL#9I>euV zUiux^kVmE|ljdjI@kl9lcej@qj;zhI<0#AF9tY89u=_eVWMay`)GTy0aYpuG!J2&K z0ppV4Um_$eVr@y|cw$?BR;+;H-C_Q2&6s7Qa22!kYAtD+UaXK1s!eF67WOfQ$Peq+ zPM`@ztr~+j91-|U3H=F<`^*qF>ve$@?E9F<5?9ML0axu2c9^rURR`e@3+4_msdgDF zE&p&W79IKcd3=D%W#&j7ZJ3ogXm5*g_OFfgp>VH_I=Ne4NFJzUFC9#cLaNx1ibK!? zO}zwsop~ykWMYxB`FR-Wov9%nfi2p3vB%(H+;f}0pRC&XiJ>h6s=X|+RTKVtuEfB(9H)u%(D;MV_TnLX4d6bPiv`@65OOLX4WG_VQb3A*L_R+r+FU zG*?j%@;oCdRK)yt(&3c1foT-QX~D!bc*prhG}~qd@nbUx_gbqH1k_%v@3h4__++@S z#TM%_h=?<}h2D~!@e*6alWOl^v3)eMTO^(h?_jWf86f#nuzfVLw+;;3w>{0eB^F43 z2DaOjCFs4EI}S@uZVw#WU+l2`#Rre=d~pP_$C23LlK%&=eKfMS{*Pk&Xk>5w&tbdq zfmGoZdBOwYB?>=NR-h+_>>^Mi!IKA?gDp^6!rRTLC*D3S#`gC1@dM-Sqp^K7vJ(kD zdX@e^#M>F?ep!3VR?hq4?JsiJ{-Qq>+cg6swXs<{@^AL|yj{W<(M^WYbY8{C$K&n8 z6k#c<<}F67j%4l9#hSJ|7{{aV;eUm0|L61e zffU6OW-f%Q9|&u2sb)r#Im2N)#-hYya-fZCik~>1%=)KW;I}nZa_HFhvg^Cao9w4<{ zoH&E+dSbj?<-@UE){o7xY9-?enCsX6QsdW>wXL^rWnQ{OJ5e}6pfqptUh7|afDcho)9A}#hJkMhjleOwXW`I>P9wWHGAoZVdroM zyx5IG^s85vOAB|ixku+ZoGk<2mcn3Prjgxnx={_0Wi1!YJDcFQ-Ri%~RNxkV%UXnFVW+Js$lZUw3H#(Alht1ct@G6^hLS*yk=Qq5BY zjdoVg8*ZCuxh>$z`6cw>M9i|nEez>YFgdmjqy;mv4J3rDpal~ktY=JsX!cnT{VZM$ zL#8eyZWrh~tZ5Zk({j;T+bS8^_AXH@ZQH^tZu>hb1F_Zie+YeJ!(}b$RJ`8CxD%6s z6=2dBma%vvVp~ho!;CyFSV*>79Pf&u6uusuu`S?@Z46<*=F5_~pxm~VF^z3OWB01ED7@SU;?ghTU(u9ZEGgJUL%URj6gQlD!+Oimjyab7T(v&J8F1oR2JXa%C z0V8zuBg!sV(Bv8+M1yo29zC6lHp zJjw}|)5Vlnclt|nY+I6OBa4%)QHUA?D#j?KVYCg7zfbLEvDDE}QwigTbHq#ES%{^k zrIzCin-{=pm>wX=r#o6sjTE#Qv7=la4y_J}yhY;K&0R);Us!;e!+DWX%HU zB{t`YalWp_%GH7jk6*v}`Fmsym}KXO??eSi_EJ;|a@p8o13xnlw}O zaCuC2ZK;SUkZG%3z&KMiAp9~?3~SzZV{6_n2M3G#Nx%IQz&6=9u|N)fKF82p__Yf< zMcEMI65gXg8HJnBHTbd_y@?AVXZmb$iI`~$>vtwTAC+&TlMWSZ{F}K&*;cALJsCl| zeD4nTy?E}KV80!}EavQthOuQ^1&#-0?AVSaV8@1N;&CZLxy^DmI~r6JG7N7xvx_;9 z4a0aw%7}K^K=x~v$Z)zAAlx~E8zIoFGO6a$?awBPJ8bjZ7(_9#O#}NTiVqJbiWq-}6UE=7U{1^u zMJvD85YrLGW{0Fk6mau4Q6L3|98uWD<#?lp4W5k}n6(>z9LO_`w`@m-RLO#v8hIdr z*ND9x(%Gb!v?f6c$iPI0m;{Tk%^mS(MpEFJ`@FL{NMv{Vm8sQ>IJ+bbiisP$C~n7J zRl8{Hn3a?1iHlj0Xa3d=+t1_tBgzCUTMKBTe&N*GbHt~B0POK(snI$_Cd~~l)iNFq zcw&jc89~~&0fu1bqIQJ+7r;(}K|ea{gXP5^yqr9EB=yrKNjJ}05NMkW{Pg771(^sa zTJYH!bKwzhn7<&iGiGJ&4eomY^$m0=anu@NAc*{7f++mi6{A9I&A2x@nnm-TdQuE= zTzIYIkW?rAui&IKn1SC4bg1*c#WTq3Qa!bHZuK>l@bY`_24W!_5US@3YErsQguxhF zPJA`v+y{CDvv6Y0xM|a2r@aK%u!GWi3}LN*v=hG?qjyXlx2~oupo?#kQ?-d+K-!x1~P??JWhi)M@|-Q1_CSQ%rIA zz_kX3rGSBCp|QYVyYz@jIta@uh$v3B8HPP_-7Ai?G3}VvZAj1<8|;qVViKmU#(u4< zt05*lXRB!ufyaCuu;+~0BYX*MITgDST7v%g)>Ws5qg}V{O^&q>^PI(8eU#^Hsb}hc zqF`wiDlQGqq>eMjZ)N+pt~!CK^z=Z@5s7<0#H&ksS^7Nx|YosK&U9JNfG0l+mu9g`_)9XzrsoeC! z<`h>f^xz4`0}+0_w1`(Gx{masbQ8}Kw(wVEnY8J!>4R+PHqvdE$8kEw%n^x5_ zwJK4m$n`L+s`R$Bszunjn&m2)NQx_pM2o(x_OeR2Avt0$o_qD!otuK%;F>UP){b9g zKd;MVE(3VWggj}$<3rGwvaW|W=EA)XfkjfHORR+3tKdMIhi&fV+DSVMgyB17*;F*e z0kW71`>6JVe?jD0Vz^k4NCa%Q`HYteEFEMrf&A5H;bLYDrzazp{$iF|G0NJW2p1V& z_6pS{=1IvU4bQFEPta^W4)WO2)$nJJA=x`IklUgS{-fq(D3X0zDD*>J(Nw-?Q|m&! zeyraG>+^T9b~vNTQ9wsVm7(0_8%G4C8@wLiu^%UV3r)w;f(SUg%| zYA>uxC6QQS#gd8EG;N7yPIedKdSs)o&BrXy0Y&rmJxn{c)k32y&^@6IT4w^UQgw~c zMOwHV7bx8gzetvwMi6ygUv82EV9xdB>G_O$UTc+jAyv>J9>YIT5Na@#Nqg>}kT9dW z=XgyD`wM+9UqE3eMwQU_c#&YgwMu|hy+9ZOA=K~mtEX4=sWq8;YwV;TtGEW6_sZI7 znTPz28#&Dc^Yi(pwdFRcH~A*W8Xr^CsijA!EjwDB;p>ogmX@I1rS_MeAJdex%Fw`L zbTpxna6Kq^&DT`B3 z>6c%Hn{c{SUXUOkKby?Vw^Gy2NJ zYD}kX^)>US+b4G?1_8{hIa0~TOhQn;m(n)O@8>Rc?S@y&Xal9nyP8ClVz6}~r4Ggx zQc54lU&od`b;b-pTJ5EFWygIDHB=7oan|I3S5yFB&X||+XhP#WiW!g}!%r7Bk?d;` zvEzd&-fj)>j{r#jgk)+Ls+i57&tJ@>Oz5|UOk3fJgv{6Z5>_5wzU5gJ=c8U9(Q{16MN&M zf}i+#{9|WQa@}X+I#+%)esssACZ+0mX5FMj&RcVm$=kN%_Y z`6qr#4bW5LB9GFJ_LzxG9y%NfF5$=4r8&w( z>$+o|{S9jB_?`VEpc<#McL<8=Y$o|pUo1Tq#@Al1(ZHU3HFKCkroKc=jssB;&Y4C~ zj!gs=K-_7SP?xFhLOtE}yUS#EndB~g?$YZnJ?=8G5*B%(yYk$ygKNDKc5)$tz08H< zt^zK#N?7577rx2`%o4$%CFzbW4di4sbS*27WSEO?Kd*Sy3qV~``M4Ma&G=pn)x;p+ z-;-);<|&Io=(HFF+u@^)<>0S03TnH$@r^J(+P%FzrFYCHwY$m85I;$R3uto8??4>B zQad%u`a;t8nZrqK{7#D0IvX=Hq(*DvHZ4vtkwKfCO4_`nT6V9rXKZMqFOGlOP9pj$ zshIe>^aMwmkX%pNZkKqqlE5UhaFJ}=YrdaYJ#C?-YHuynkCTam4}wP5>e>YT*7-*P z|8)LQU?=hv?Sv<^p_`gzo$y38`VBO?m`N7(Qx${aSMwC$6XQ~5Ia1M3(2MPyk0b~s z0buz;o|!sfPS&!dzipt*p=L-Mw55UF;MGg?4D88k2Wu9xV3`9k0-hQ(K&+<51)DMl z4;Ez=E-CN->|7nSzZ!Ml!<=K!C0nE72H5*-i%QgFw%u_&=`An_+`gsyMd;>rsmc4F z0I9iSPXI%+C+(G^#tP1vic)IyD#JEpDX^Dx>=eH*Ve`4bu48<9GhpWcpPQP2z+SeI z+alfZd=~Rln@W`@mN`;Emirb?@C$PA5s@taVo>R$8g3U;&K0H60Ha2U+L` zf_}0%4L~8cb&G21?;ue&VliwX7vwdaK;8&?Y{*LimM6HtHwYUQ8avlyK~APovyl(~ z9ZeFy?XK8wD{oX5mh{8T3|pJB(6{n`Nh_zG`h5713JFuoFK&5y`3F|%5x3m7lAl`1 z&oU*yu##Pl>|$4{(#)E?>5Mn9JCZU5H+-5G$UUm|_wrMFouFy4t|z%Q%Eq#}${CEH zUsHRx(LQE|;Vb3vfxl(ffMUsbyq^fSn3k7Q*%agvk#6)xhs(L0QPgN58qH)x2Y5wm z%z4r$@J(Wif#=Ldpf-)z>3Z=dO|;T<`dEeH`5_}7(-sp8HP!*2$RSD~=ljDs^aUuXt=E1uX#~zBij~RQo@6bb* z9K!2e1c8hWJrw>~?BQcfwF~6%NrpoAG}De&4UZPa+sV){M!@TzJgx8~X1fu7Mvvyl zGgW_dLs}%c*2Scg1ojS1W9)MMK${tjT^fa!PvS&m44&d_Jc^&_XW2L}_pN(FA(S)u z%+7t|-eEzS_awKNe7<78HU25#aW0Mq^)G>xjzK$89nA)5&d&DS)}?+pn3QE;H6{|% z;BmA!0)tzl>^-K^jfJ`(qfl3YnY3d{ods(;%*9Yp|7WT=)D62%swo6Xt8~X33Kx@B z@PXuT&A5l1D>9x946VbvxY;nE9cU%kY=d2I*7xum>~h zg3hJ~E{JE;oM}%`KE%m6k{yjem_7_$ zMozUd$lA!C7k`f|-ZA>SWjr0sl#KootoT5`MD%cU`TYd)pbKU+(2;7aNn4Jele7gT zoxD0OzP8_Ejt-ayAZOz6V`*bLD`XfG5R6ly5VHZ5Wel2Qae{3&H6vIw-CD@x@oZdU zW@}8`8NumyBB1TW`=ljNLNb{{)W|d_T@^h8Zvf_qJo+Jg-wd5dY17yhLyT#Zs8&{+3L8dgKFvrENIG?05|5j( z*SWY^p*D1=lj;SHXu-DflIUj-lxNINn@n0U!=P&g78|!BHGaXrlm|GUklf>Fq|!jj zGO0=X?bOOO?^dpKnWe#Cw=L&ogozi4O7;)2b~eiEOp_KT&78#8Y5FUF*5MiuLGqj# z&|<%^P6@@tVFt_R#UMjDiw|QYm?J)nv7ki=p~WI^-Nah4tY)A6XJReWyEvLQH^ zm(=PGxNjMSjotDc@N?ixzWWY&B+Ai(2g@&Pm2~Q22~#Y+!F-M7O zc{)$&DB7Ky&mifoz3K4QA8rF1g>Y`TPV>&|GkLsULR~YY>1iD`z0mgB$>RfBbW1g; z^Bc{wld;sNL&rDZ@)1gy3XPf6l+asL$ow0nC#%>Dg~#SmTeH$|7Y9STq~gqGhYpR> zV%DV^XP6t|z?x!I(Gga-5{pX?!#!a4ha;%=UvRDFhD21VvEk1SRbSJ(#I#J&s`F zpG*Et<70zqG?Wm%nktsq4mOrVC`P?zkM0-;-3@PXqnMeFBC9PNgFV)mN1IP%A7@Hs zyu$6KONYC#l%FA%C})0MOBTGa0Cy^WY35+6=448v=;oxSG35;WI#b-7e8Y7~`LkM@ z6wj&m))MWBz@1P7xN5z@T-E0@=^3Zz2!8ur0bhH3_78mPWkT<*k=fS|cmkx>G67Or zM-co(ho#28CpHG&)|@I-o6?vjOdD{RHbs~QI9giNHKsZ-z&hRBuHzusL5z`3Z5BTh z{3Kd%tMC)RLKr>u)l=j0l0pETek|9Mh%9zb+-=J#Ik7UV)}@|PVXDjJLrYm_0UfE* zmk+<=S`%~E96n;LjbPkAQz84yhd1}@v}&d~6n+zvo7vrOut=_z}mUO`y_&oLHC_6g;&uUUMj>3U<6|2V1B zP*_Is>Ws)|p`xXY;wn~m^~s(+`gN0t?4l05v_bhiQTfM4xtAMaL=gDZO%vD zKw+{vHoio3vys8DY(6uFV%&Oy=%A>CYU8oYKkk70#YAn=O~{H|BsM^?K{k7c2-ae z#pqs#!jnYQwFm!`G&rlV&T=n5Q6ahk*^d4 zCLb^%igiI0>tc~u_Fa>h5D`Xxr8RXsgW#lCR;8*qX}}6n9K2l?E&olq|EPp5Vc-6= zj+?K9$Ivz(T*QTWS;_@+(VC#eNa}+@bk%Rlhrb+vuEr;!7(fkOik3Q0-&urlfd$r7 z!E`UHB15csCQ57>Ft{|x&M$UhaNUGV`k&nlhu{a~@(_W(t z_(}jNgI!Av%5TxQL9$E2C48C8t03~~+Oyep3!>1Y? zvo~>PkOL-E1C@ktt=b|y&#sN7;qlaC$A-|>&`u#${Z;%#K6q-FrwLnHJ)WiV%G$X^ zGxt|7AO|W32&i-ChDTAb&Lu@{%3rTj+wD4~dajXGqX(1rabcc%ugCpXZ%r|(ew`Dr z60Ya#XVqMruhq{Wlza0${VauAV$u+K8pAR_U!$Kj^LV~mKkK2qp0Co+_I`(xYe$;j z^BigTKIfqvmCNOhW|kM{jy zXU6TkAe_S8OH^rrj0-Dki^8dtyjUf3RYHK;A`5bOUO1lzXSnthtM)uQlxc1_fns9V zl6jdM)+r#6Ej}q_Wo>TQO$pI!tvEq4ZO*meh(%$8C-gUYc~Lk>!Kv=$k>jEt_`Z${ z52eb8gj!p4u2So`S5UnC#!fu%FPgn9M0ORzj{(y zRaItC!pSl1{vHnbt*jjpK8pv>aSxapefx-T7G*2k>m$2-#IRy^n#B0IQ010EdL>8M zOrim3D+U+=Ws@l&e8l5yPMegOVLv5AfOxP}H=3E1@MdI~ScI8c#1@xS!lSty=NQtl z!pwdME4PpbU`TeaX~0(+7Jr!xF8fHwh#)7 zxp4ebG^0>zah6hnvy?bRX`_!%ZB~v6b;((a{7RA(Kn&=Yq6vf?2Av(2Pa7w_4l$!p zOQnM4%r_;~YbOYIr9}A&Q_=+CN=NQ1t0ZaU)?l#nFtVH2y;M2|`k|Uz&jN^rnX<6B z_G8<05G$Gm>0`XeF3!ZCTbS>yS?aA<%m$7g5*^|WNjL2!U8K#Vaiwu=vbxZtt5NY> zleV&JR<%Scgd5Xh7k^)K#dEE1@v8y{Ylf;+2?rc{=}KldNrTkHA%*J zsq12koyvUZ3R2@XD4olNR@NZRq-a1bUOV<3rKms(OvPMk4y*?$Z0xjoqAuL$-P+W8 zqr=iPF!j-`PF1Xq%w6gY1+E)w7Uvg4kDSvnz2zC`r?mqfbfTcNrb2i^+i%X>LrXo2 zU|5u!KpPB?-U;Xn7Uz2S<)QK zlL%-8BR|~swY#-0ojF((CV$)AO&$b`^HPiQh}^2#w~XY`%}xfeE$eH8TolPM)R34y zKxp0>LNE=_eNXPpLijf#Pe~+4#P2d{J=UCyo-pQpR}kE+R^&VYdZ= zRW0@oweBVs{P+{KtH_dLh*#^l5+d+QI2G&k6}(ibHckPpE}c!x@rty`ngG_}NKPEE zQRGj0kBBNtJRy%Ai-LOCew9=hAvtVi9LtB;mumef;Ruxp!wrttVGPY8j#Vd70$nac zkEsuOaxUYOh1Jd!-zhp5YVpL?n5PJ?zXTy5AXE|`YSGZg0?%-~nh!N-`%qEDS)q5Z z|Atj%F`6^8c1fRl;~b z)0IK~g!~q;t05tzgrz5P5N&cFa_~UKASc{N46a!`N(`D#MqpqPM;J>&H-=`Cq%oF- zDn;-sC$UrSV8VN7S&9mB(BQ^j+5b#ic|r?pW@e9v^@HnUp469w<>A#db!A14@sARt zv1~{(e~-oOiddRNWET2Rl&&GEYQ2!?l$Hn4r!y0)Iq8&0*>Q{rc4|F|m5?>KkES(| z&I(|-4&|9)idZ&yYgb&pe*JoQpl%@wQy>Pb?#3D>r5k`Q;c61$x(BHzLbU4?UJ)%S zYz~sbYXdnO5dCWaqOg9wuEewn?I(ct790faa%j=;IGaQZiev3e3yRbHvAVE08(sr2 z@$^sP7jnFhc4nw|HvMZ`ndv_?DOO^vm|c3x44B}1X8MV~!vt)iY{c~c6Izip9R5Fm zX=t?tf@s3XkEKBy#17luYqA5dyD1dVLZ_xsmI4_jh=#(Wtb!u?vWZ!2I*imIz@P@c z%Fh;{*6;272HZ&(1PT$2=|i99nGuQIeU3YWj@^BUI|m-u3oHBwE8LSy&IfdOd9?Jp zDTvw*maPiLkO?h%!MDqOJsE3v@-sT)+vPbg$atS**0eBf5GP}XLSp)up(=O2rnA_} zbL_8<{`KEp)Um%iIti#@!RiYx>$R6;eP?v`?owa=Nq_35ZdKWdYzEa*SFz?7Ds(#A7<`&RaF%dpw#-u0OB-Ijgrht~Wb>V-W`BhjIpb^?PZLz?Jyn zkbhlKyHro9-3f|gema-vn)^L{|D#^CXL>NhMoXwmu8Ey`b?swbG<`-e{jl?@+Zg8o z4Qq1ruce^WIwc-jJuIJGI|aK=2T-qf1)uVA&siBhclAl9toW2Q$yTMbpEp9+yg1~4 z(xaQDw+wb;F71#tY`>qzma63y)@0^tT{AkP9Q5{+nO5_p@pU=)DpxJ2vc4QNCj5qp z)g5>aQ9l{oMq!Hz4S#;_a?a0vm^gmDju7{Ua#wWX*e9U>-JJsOQ0`i-c(~uxsW}2BgPQ8Wc7~yyeSlQ zFA~MX-UAys(HS~#4a}m%#_H8~#Ek-CHn~_$21hqFY;``orc>$K42^DZKSg4jJEc@< zl;L&mC;tA~{)SFNM%0T0XiM-|aY!ull_3(g_D zMQGjyums-x>jrx;iSeLK=ws2Q4i`)2J|A6H4SJRnft^f#k0$>lPA)9UMyk;4Y-@_w zfYLz$5CXU3>RJnI>WKa@BbajRN>z7QfD;mH1F;#s2hbl!;nR{ngoTr9)1ZK2S1~tz z@{~!&ZiISX{Vt@f_piS^&}Fi12{<9SC#mQR?6grU8xhpOkj!0 z0|l$8I&&Ejq*qjCi{WD)&D|VNTJ!q2$96FK>zM`FadZg!7Vog3Lk_ooqXQ(IrGI6O zH-`KH$5uX1M^@Helya5#kI7X&5Ob9m@0S`JP8+jaor027RI3e?9l67YW*;(lELeg& zW5Tj1SklyfVCj_fEG%DS*x`p)`U#rP&R^-{(RnV7ZMGOa$D23ess!eqoC^Dg`O0$e ztbUxe38s?8Lc~hRzS$HNMzJZzY-|cL8pfs+9+72JP`I%v`WLe)j#n`@#dVisQ;s)h zsbo0DWY`qk=EH4{QaYJCW~b0q&K)&>!4XFSKiqDBbMk0A*$(v1kpES`*(-T; zo2Ok3FK;N5M1E!MgDmx7KcZ4h)A+265Sb=Vn(tV5UAH9x!d7$H1b4UlUoshmlh| zyz_R$?-n`Jt4H3>QYL448?yc%Ei%j{xZar?nW8?LtY038w{(0i&;A?37jPVsw-Z`41aw zkB4+1+;3G4hnL~%PL2y+-&wsGQJ5-St+v+1MuPNnkMX(B7>+%Wcg*Rt#+*P+sXX-f zZKw+JfEk)KP3d7J$J7^C`Nz^gScQ06U3)u7!H*b`?6sodQnA_KWa+T#C`Oh))5usa z!5rX+%wawHyB>V}?S7(xJVZ&~2n_^gT_At}xzpe3sNKrDqiCD}2BUGKbyN`GVzf=N zZBs#vm7s!X!lkN!3691cg@=0(4=K7q24^uz1c(XUz#q_!cyo$&x2&F1EqA+mWNo(` zCgCo7<|uiWd&Z=)i%WzI$SHcM12R+aeudMtq1-2c_5x-82gYxFhv zweA#0u=ZlF!I>9U)m~QpxM@M#Gs^9DNOq<1l47%{F5HZ@X(b5~i<)OTb6IqCUofLb z(ml}US)QzB@`FYt8k`YKY86+J5aXlPu9L{4$xMVKI)Zf?VFC6(Nl8++qy+rWb(>g& zX{qkRQ@0G%w6RDVoETj&DLA69M{Dz(PI9lgUkk{Q8QnH1IOWv|PNme46eKL;E>3Pl zGluNYFvK;-(l81kJ8`=z)y*jo@?it5sIj^kL|Y~Yy<=jkX-NI801Y!mRIw7%mVi_n zQ9(pLJ(RmTMpzIREE~#2o!A*1;)2*Fl!$v5!fxr1?z|q>C*65B=pM3fC?)RQVAduh z?nhf_)sBKEF}bFlX1SIyh|pVG%k>$ybu{``lk<8K)ZZ7A^W;XK;TTL|dE9?Te0(|9 z+&ik*8E|C9O(=Y$2Z;~SU&YShi6RmV3@P7)BbjB3BpClIl$YMeBtL4=@zji9YV?cA zLAj+R#}8uWKB%z?;S%teoPw@-zEDdK$p+E4h*q*art=>ZmDW!Smj+iRqqd^)E(Ay^ z?i;uCG2bYukF3e)Sq$xNQlS~Ry8(Cf{{G;E0^3$LMB&#udZHio2fZyokz-cdi(L1n zy*38=-DlG!4l+A`UmifwsoD7*`4~hb8hm4&Gjc`-bT>zWn} zq?JW+ZPOIuptfM&Ff|w^tKkf6ZMDoG4W^)O0@K|sVQM*sDLZl#nC>n%$s1=d<+_tv zW2qw5n4YVvYj1LRKtNcG2gOD;A?Xw1nVggb9@gQlte59jCi8?J+B)g2P#5iI2N1 zO4vw(I!$#;U)^R`UaZL`q?{ydqLxaL)Dv_o_rxsJq{p=aHtKnAu?}iYUest zNvn3^(VVJOM50}2Cb$V^hLG4Y6Wm2+fqT(B9UaZ^GpndAtfFSYEKCmG;gbanAC!;R zDV?UqN*F#LoaH`v^{@}_^Lx#C)xV}Oc{7F~thV~dJ1Bb@*gEShFsK|B$-D7xL-3n3 z{kxg|4eIl^(6_ddEg3e9noUH@29z${SWB(0y*m2qnZb0SXc6S~6d3HpM8;&Irp8ie zY?Qc-lXf z051S|?`{OMG&TXxQ=BklZOWn3tCz3jFdRU4VsrAXEBfE=gl6sC5+-gg`57Y*lTn-3 z!0=->bU(Z?GX*y?1v6l3h9aL7ifERSS?v{B0f%8)u3}et zhX7X(1~UezNi4)*C$Xx8M?0Rk)6@`Do_hy_Q!<1#?rgALkVqYAzY-;+yn217G!_d0 zwti;}ndC1xsdjsAlv`lLZAj?2!K(pCg$jq6+ZwiJCM-yJCC02{Y!^-I-T+^XfXi z^QhlsE>HmgXc?sMc8KvY5(K29;K-pl+7R@OrVp8}md?SzkKS zzLa^#h>Gn-Da+VJ`>#{`4!ljA$5BRqZ z)_`XTGU!%>Hm;G(N@62?_k7hOBX$P%oowc=zD|`#0Kib~JU5&eq+yA8jTEd7Cb-`O zqI7BJEb2tFN&i-}ZM;kD>cYkpawzD%?)x`qbikW6pXX{mw~R5Lf%<%&8sFg=5;#_} z!YOywsiv_4$NWH);(JqLbZ*!)Q-zKJuEK^bmBmUD7}) zGehf{p@3{3L;eOG+huN?3KfmXjR2?Nlc=-pau7;61T*OIy%;P8?wg>h&J}f_IEibC z>trgl(JX;xi!kw2C(D;dz0Jdxt&F6@Gg{;&%NqHIi4ih}u64D0 zq=07-laH~l;AO~G^;BPAz_7p$qWO7F3+fDE`-NJcf~(Ua!t)EY9z|HEMeHXi)Gg-} z4QL;bzq~OyI%iJMd+g-FzWj3Fh%F`2WpVL z1OsM5sz@{Im4b3ag9HT5gp^mT7Gd2)Zqd>Fs#>=u3o}jfkp=jQ^^s#p%aDG=tfn3M z2)6ITF^RS9WU^&g9FmMxWHYmsjurM3n1s?eslkuL8rh(Rb1M8q@~^DT zW|}~(X3*%C&<>(s9Uk<1y-{gyu&6az_HpHz%MJEPj@gtdkwf3D8<1)k(b&)-q)4;{ zw`N7D>O85&t_j1B^%z5T6&t{ENv;fjq5BsV+mH(hoZ`~xUXq*59on^>Nt+92aXyqD zl`t9*hO)?yF1w-7&soI;DC-TjrnvPQbii3M!;Kkj+<76mv$FOQblg~aE~LA?Y09^^N8SCUSD+55y9bJM|ANK z!PzaPd?bM|V{+GCaKKs^vnMup*zPcdXxX5+c9vbaMt?es9c~tF<(yNhZ}M(wJ|`{p z=5U#uPHWXFPSLzp+ypYMrm>T?hUKbRrVi^(=e9d6T|zI}*?6&Qky%bnR?)TdgQFSQ zJ@bPjEAcy^RCn~u{Gd6ldh3d3o_VJ8iWQ}IH46OpuGp|ahE@b=bo_##e<@O z%F%HwP4x@hjfbA%t`R~yJ}4)LEJ{ssqcFqNm(V8`PLh8oOXc)%Hk&HQz-*3ETHHAN z5Bsul8UZt_wPDzHBhN zZ7{1+bG;samtJEQ0oCBg?`m{zU{!?z9OIN52do@CV^5vwFqrCnk-x zXD-@&RIvQHqs!AcCFKc_i~>AxuPaUX^5Ys7aFSD$^CXc|QRC=f7N(<>M+fU>x$ca? zjSODyX|(g`VD?PmgkWb2+>*lHV*87JL4yOw1k=2U(Xqz_ubG-sY}~`lP`-Ffu(rn~ z;KdB7T>*2seDaH1k6IWk^v8M<{q^GD&hZ``60JKnxZHbA^owI*dUrv-1(0RWn2X-;K zYzeT+MIT=h%$SJYnR5Y`MN|MbId?|iToOzl%uPi?Go5J02puN^GJ$dRInm^$!Et2s z@;WW*Ew`?jpG7r=7P2=+Mim!Gjit*9F?`7)&PtVN)}+v^V+yKF3LBpNTEMvUR{cmW ztn`m<)Bbea@ZK&ZB}Qqg2sxWHY1nfK%UZwm~rQP;DB z8C_d$vpj|d>H!NG=ECXj9Ev&(aVPbg{kvb`thI|GE zsE7P&lhyGlT0Y44=S%a0;yR=0%Rs?g6fO$}dVMA5GHfX|a?FRHtCpg3crx9v1w)6t zHl~{~x)fWY4=oF3PDWvig+t0i78BeU?Oqma^nMq;X?gHouMj=6JUG7a(p=?pTTiU{ z^L=l_)=MV%n>_#KFGb~U{{$#}Rk!~F?{`~2-0iRQ{A>KJyC?ep=6UamzR*h&toQoS z%07Q_-@Bl6c!o!8J3R{b5F!0eKib&m&+s-xxApl0{uO@oK%YNYIy+Z+*!N1UsPC8F zrS#){zx2*M&1Sk&sAhV1QRSe!<51*E9U)3$Ia_4q8=# z<$%Lol5njJZ~oHVPy>W1qFC-O3mmQwapxY-a^($rP+2EZ&}1|GU(E22T+MjHy`0D@ z&1q|%fdiiETC=AR&?2&p_a`VS(*4WFS3amyQw_e}SKO+Wn5q)i{Wr*?!CCTZqs*!s=3j7EpTG5x84!lK}HNDmY-bxCgP@nJB- zV>-`T5!~oKx%KH4!JBpa#uJ0(-u2P#Ck8L{eiIc}2JfWs>XpG?a><_*ymPV>8#k|q z=p;BkX+IDhA3G^H#`C_kb?2&JW1d&fJ2`j-@7!~;y}I<2V6pel(VI^RUJ*+X5K-@A zRzUDXKRzY6rO!3JMTRe)+@dRwK6z^J*jaaVO$sAIY z2n$-Ax7HSrFd3QS(*y0^GR)N*q!3}wTy;XkmoLsYqR*ceyuoWkjWxj`tEH5I|58ao zer;fB@GjG3sDGszq9g3vg5T*6C(U*j8L+76xsVT{#eF||?V4bA=|l&LP4@vCVf{LNj(CZMLR)=pIo9WfcdPWKjtv%UOyMlCNv;iH5W(!xDW{`q zEQnrrdT@kyb9C{qyer{GPyNb!KV0#>d%UZ?z0s6kdxz(L@!;Ljs$YBS+|v`I-~HM< zl`1R$(>pa!3bg3@|MZUUvn*m|b~#Q^>X8}b`_9)-i+=i_-kc?t&8y7bYkLH(N`*KH z7dV$Vj~9Mo?j|+*>i6Px0~nK8i{0yQeeQpGQ@jrNSh)S}t>^#7JI(8K9Oq2p+MCf2 zpY$enz3cm-h?wn8^K%=%A3gJ=cb3-`o%LI9ns-(7m%sIn?7DT6Nik~7&V71Q^rhc= zuPCz%U9r>XX?>)IgtimQE zTCYF4@DJA1Re$ha;Jq{Y{vW(q-n+N@fApU1dski``e$`r;U>w`Bwhaf>;I0u-%nou zFaBiy{>1;jcjeZ5Jb%DDDz27u)dbT}sX0++B=bmH!|VU?puw7^hH^iCFzU|xKl3Wl zQ+fXiZ(-Cb`18DF(X9oVUbgk#f`6s&O^Kf0>3?GS!bWMx-z^(DR}A`fU3d9|9As9% zKk6#^ll`AP7#&vfU+8U$-dge>qSY6a{S{oUFZ&l&cHerBJ6U7re@7DnBxogiL*QS+ zG0^kpXopD9eITYV|rNS8h!lGjz0f`--_1nDGdzlAjyO{lng>Ew8E( zt3Mq5?JI*YeW;Y1*@wU9A&nh>cCfrBZh#Q|>U?Z6EHbW)u07kHfAj3%g$*6J#s?I- zepI^|l^uiBu0Oo>#B+iU&)XH9{HmZqqZhm?SjFXzS6LIkeN}K6U7hi2M*Y3$)vrdD zJsf@b)xjBD7|XZ0eEl^+>+rArz?ccX3d6Op{=jgp69|iW-1P&a64Kkw&fO8c>D=Ji zwFfgrUytrm(f2b&52^w`n0>s}kYrS@Q^{JyCB4Z-2j zit~dL$14AaamtsxZtVJB8mIiI*9Rvqc{2H~gWxZdTi5xYCbzEhKS*xr{6p&eMPv2v zC2NBd2ev0w-J5qNx4e0K^y>>5-jCJ>lg4^|!Mfna+7-LoXz>RJj?x9e)1&ME%>jJr z$v2GsrRQ8YcKQ1++|K~EGJwOp(VaOwTJy%SoBZhL^1I&{gkv?aWyswDnbQ4m{s`D0uW$QibgD;f^{{9ieBrS==6SgL|{Jt%^{ymVu4<9iG<@OBE&wc-q zSQt7I`1j-m_x`^mx4eIE)N@sEda&V(Km}G>zbLx!Dj4PWqHC`T{;qbDtLf{jH%2F2 z9XxNz=A_6G+ot5!ed+4t)_v)UbqB(viBHGQ zT#;jBmbLE@x6ybXYomqHviI%(T^5eR-#z!*;3d3!*R>e_mu-FQ+F*^}r|&mh@6)d= zi%$IjHJ3%7`am$4Usf$f-~0gat3Uoga3qC&n^;Xf89i@PFq6w#E*%RSIdt&o?rSlS zEsJRQ%xL|_VA|H%*9G7A{`61uNA`(hBY<6wUK=6eo{au3Vsd}8^&3$zKks?bQy<1w z=S3HPBzVc{2kry~N@UDc#{Y-6#ahi>D%Ht~D$U+(^gK_Cw(S_)axB_7icE{XT=fxDZDDr(1vjvEctJ z?MuLo4pIPdjScl{_nZBYr3W#&G$Wj`HXd|>YP(mr%s*iHr;>A zmM&EdIx*u=RCjLTJ8#Gj$-d3=H|7uNoz39uopbz#m-`Lmi&pg+z!%+^p9e#K?~VDx zvK#s5H|CGXt^Ar#yD2~MfR$fAnjt|VVZcWv`i=mHrlg&e(CIPd>#uv9jtuk$e)~<3 z%1`*aH{~5vqi@Ey{(bU;$M_dF=Evh-Z}*#WeReJ~(tW0^=c{hcPs*<6TW`ik#@Ao) z80dE)_1q8n9XI7``{0u*h{jg(_ioA`M86q?NVE;p)BBdzTk;RF&J%id;|BMa`TFeO zY-U7`R+^+m()0#pg0g(`t$F;@23|O~kDvVu-?|nr2)0p6<7?LD@yT7$_4T=ZM)d86 zqr`>!^M>7SgEy4@H=l8P{_*U;H}tJOl1+}%a2=Xw2IE{v;HZ%uIXqL|I>0Z0X?-|6d-cY=Y^j-EA0FEhdhHRv=1=*EulpcBlpp_m{u=(?J^9Oewk-{t z`QR7w2lB!T`D%W`3;C5CwA>9%FXoS_I${3Ous*C=usEtAz^Jw6w54tBHEn0sw+D-( zu%^nj@p-%}ou<6WYPjR^oI@j3x=Zrlj%R z5W!-v>C`BpKpUXtZFuCpJd*kcewbg(pZ+l4z(>81H#gk$aei9QJZ4h=%vvuM40@#(wrx2G##(u)n?4}X{+z(;(MKbBAW5~InMe)dIv z;0AkVz9GkN`y#)l-*L_DQES_b=2rgEJ^4o7@MV4`f8fjfPxvMO%Ada*&OABbIZGS; zsC7f(tNi-D{DWP2o%ia+mT&k~FSa6A1W-v%W`$>X4ND{bQa?6>@0VvGpVps!$-gSH zq5O@WZ1irm*g;d+;?;Uf+ZWgJ4|ZdR(I$uUOCHSk@6*`aUfnUl>=!ZLcRCcR{< z*5zAzH%5)kt;;ujwJyI$wra}KRX!g znYiKKgV~7ehJE&8o3i}AVJz5S4rS*L>R1JB&elDY-2>m2G#X32sI8D0g!;%_Cesh~ zgj^vr4E0H<71a2yg-j3B>(Cy8dMoOgs2@lF!KhzbQb1gv$qepMNWP%+CwRtCQs$wr zztleM#KMtD2aTSL!M+JtCbME`A+vI2q0~y-q9KTdfZt7YqR!QEwT zDT}yzKHJm!-z?;E;P#eq&z{5Ytu5io%)AO~5Q`V}RsSFJ-UwXzApS3FURSZ^2YT?2 zrm{U<+VAv>zFPnusla_4?Y+1+id82vucP}BFJGYQ2mYyrcXF)f#E-0;|M5`kMZPclZI23}ohm|}y8N>vy#6m7D zEkv~cx3umDEz*dY%+T_#t^=|EjSvikFo_98y{>!Qe;Agp_XsTD75k6tW4#Np_?!W{d=PRTc1K^{|tVWow!IP-?xyNkNOnU zC!*ef`dHNc`xP>CQJ;i*9_l+#?}1w2Z9)5Zw66of!%&a!Rmhxz`fAjepbUrhNoeog zyO22<^_i%T!2F#6kD`MRhk+0oEHS~6Xw$;P1ie5AAMfb0V=|DBfy2{KuL7rB)WQJn z1%pZSsQd+E!j|0$PUkRxXL(g(z36-!2tuab#5h@4QN~{K&0~%st368qd-hL{j+$qn zzgMaMsqYmsHF!P};~i$HbKjw5;xghS011Kukx-_gU+hHme}u)7Oi)>YadA;LVxjWF zx0V;4?*Bpn3k@~>q4KVX(6%x#H8W>pCt~957!!+21}`n+ez7n$<^Kfj#J3obs)0YF zy*Ge=gL)91zW@~Vu#-|v%Wu5@68W3wC+&1y0N@Ms3049{IFgC#JK-9^vrJ|&o`w8~y7$1cEvdw9k#JXZgIfUZ zKtd`N+4)^5;a=4Z?&yknOOa$6bV<1Dy1^Y+F|Vwyw@bJiyTP3b+-k94)W;4?f}dpG zEfVflJPU~uy!tLPA@?r_Sfal6B{}SM`g(|Ttac$+PYr2{G9^jG*66}-x^UV@nQg36V zbvWJ7`VHW_m?xRovltXyAY$_*Vw3SKHYND<2H+F7rPLwQI<{hAGOhB$5IBhPJ`m&# zz`1kzi0P%sQ|9iXZg%wvaD^jB^u7&uSvR=<2Ch&5g!^qm(Vg*Ndvq1XL1>RD3&kpl ze`})X}ItXnA{S-D`h??}B zJYMNZkT;tL9C;L52Nm!|GO%2zDLi@tHC?8IP**N|7@53x_e`zL8K~<3_yTGQ=;R5> z<5-CP!4>@@(VmKa5=|MN+#|V79?F+sI$0mNe;AqEEf}B`%L9b468#S9r0iAJC@X)_ z^>%HnXcPPZzzdE0B*taCJ?6S{=+q%Zq(+)x9soo?5nC*^#kD>d@IoA0q;Y~@iFV1Q z>8vLJUfi5D`mPHajJB9S1c4_@8&E3XXG-uwZPWvPh;Vrp zRUj-wTkNzCZ3*RkX+f3nD<$~8DR^c^O_|NI=Dh^InOO9T9s8sn;$MarGUTpUKoV?S zk3PY&O+XTsOpa_X)KaOZIe!CqVK!v=XV5Ra&=*VdT|F$Fuj3;;Q1;*`0MY#xnrkWA zlhLLkuUHVC1H2>C;mi?u76K;5cVHsAHG*Dmz)UZ}KZ&u@LOU|@4xYt;V2y~u2}fRl z*uf6O_us?V6yVgOzP&Ud!5_PKnT}Y{m=gSXs7bH9f_i{B|L$0NB8U)Y9zZ=0b#EXH zM@>bZK)B0aLq3kf*xyl;o>+}~fz-xh=13f`P{gaAgp8%~PeYl^%r#x5{5VM#Dw7EF zDqv&43i&vpVr)@GyA`lPt~wTDP)Is0VwnWI--t9bH3&61_QFyBGYCvTd(*KgAyKbD zKe1N$=aqhVVc%2(3V(a+zJ-nq>H2?RfE@fY@JE8QYQNMEUx%7hrtrgsgTD*?Y-*5l)RSXH5+%M=;T8;X*1CBCU>-HO65fPv>Go!3rsCn9n{DxCXY1<2K5SOzo z*#tvGW%WIRI#G^4rF=8~HxcQ!>E#Hv=D{xFFsbt@5n-B;iW~qww4kgzhKwnnF~P~6 z{;s>ro0z$_Jc*#WKX54_DT<6c5AdQa>IQc_aD{9Uoa}M0m2ek#gL?#UWv}`8G38f6 zEfVgEZg3X@SI9rjE90(|aIfkH_cY*kS{mTW`;~dMrW@R|fh%HOn)loGyRjSG3xO*; zq9xqK%^!GQna^9g!My^wpA&0o^@IEK;X+-zuRIguLKtXl5y1;zM+|Tv^rcah zWfchWgu*?!9`Hg!S5?5TMO(m$$lx}>lLnx&5#wFbyF1V!0LkT`@@olU^yaQR$lO_O z3m5g-?||{Z>wcjLO9UtFit|*9sC6t6M>cN&@V&3Fw2`dytMHz z5GN095(dc&qte}k)c+Y^1-pe^I|6;=Xp4ocL3;+;qfzgNdKb7b7B!WbrY=FV+E6(h+z~6M_I$nUjL2GNEwsNl1|ird0#_U};eMO?-w0fR zBkD%riU@&lWfi_fvNT(}!CeMiA759N~zirJsyTRSOs4S+0yReR* zcS6Z@$h_)%&o}og-o}ajFRUxm>cE;t5hMgc1iF;%wGU}r_XzD`ACWCV5uz@_GSkVI+-s45JC;wg0PtQj1$Y3 zUQPpiXqWGX&@xleM|p^gQ6Gi+&!|Q4awwjO6UqJsq216)MxDy5R++W)!E(X2f1qCw z5qJduAM^{QAi{p?&x58|yr8oMu<#(MOv|iCL)_}sP=l0TJOh1`P=5;UP+)o_+7t{^ z`4R*L`>6fW)ba}x*?}5;Uzz>lIR6b?F_(m!B#OrZUX=0O;P!ROqCjxTyTh{cG+jbp zP=PLsa1BtKL5l8#+)rA0BKpY%k^AW?6wxovWi_6~_Ag53Da-K9=nw`EcuAR6TSl0T z=i%tR5=4m4!c5$W_OWPZ-83hdw*Bh!DtKV8Fo^74Ss!S>N<)Kk#q>xdlUwUjmuCUhFSm!#BEp%G3_2tO{k{Mdj-fw&Yo1T9cmH>Ek1@Jfki%UEfV?v0C@bn5;6R^Uy zsH8i)0=9NMoF}p3O5g<&urOb2LV7gMVv<@+F8T$R1lR7xcn!ucK|KofRMfLk?*#r# z)FM^3xnoHRP?`D?xwc9+i~h=#nCP!eiCr)`_3lJJ9T%yzlhHp0b;n&;0GS~H5SIW7 z0H76%{w1aUE$E+y=Y??D_eCw*A=;z|gnS%7C6y0K9Fly9{*~xA(Wdwa{fA^~rl#)V zBGkm1&bRn@UW+~v8lWjM7|Gk#H#e4b-lupLLMZC{fJ++_MfSM9l5qQP`X=rp!0j&( zQOmeP0WZqHZg8Kjz%A+cL{H1OW4poK4qQ29Ro2tVmKR7<8+eu#11;$zpqCfdx$Gq2 zBjZk&rWRYtPD@!W*eA#O3}b?oq)ug8v%8@+81T|IdIPjm{gbqMIeNu#qoV5L_ zVxa>!f0O&KV^Sfkm0{+1z;`-qg2n#;f?!i+74hs`Sm{w}jrsQK7Q3C1#T0(Wt zez|eS}ep(VmF5uoaamTJ%?_=*;|? zskn4Fc%YA@_CZayKM!`&F)Tuxq@o2iMGzgRDNw$=)V={VWo*`?CK(g9;Ayl;Cdo$7 z?nQswtcnkM9hJb%&1|3D)kd^nfX-QbfNKlJ>G}#d@q!6mnJ)m_8Q!4XcTV|VYABDD zg?i(oU$4G`=GM_yh=jf(hd6I0H@0-$n`C?iS#@?lZvB4_u)z4i?U6k zCHk5HFPWxJ-I^GPg0ztB60(^1CqNdSB@vXf0Xw9LcXfk%190W|qhu2kyS7Z4H-l#} zpQ!Jwn0GVLO8A#7d#!}tw;S~D`mC6|1N&!fh&|M zv8#lem@yf5ayPiUfJ-MSSg>7MN8h>Sn264NrnLVPBw92l6%+8Jo=UVjU{A~EI2D5j zC19xlEs}_}NW{cK{x3;=`CM0a(t;im#M&{rEZOodE8oVfk`}h6lUSM7C7?wylAwJB z+Tv#X3eV)WQd!XfmaUbDZN#&%i-f#&ewzJWhq?xB*(~jk_NC|_f%-Vqq<-XavX%YN ze-!HHk4atCg{aSv;F1s5kQ<_4fc)6M9-X`h=t79h&N}o{eo3Byyo?{9|KN&#vIO(d zuT=EcpgkP@M!CNuVG$vGHn02q(+03>DaOZQycP9zsL4y9B7d5C=Woj9iNH1LFiE%M8wQC+P@3XQJC*eB?_>{h&Qn8?pPIj&H%7mYhcKI@%#cqVI zSc^XK+N8S$wPJjabiPbIo(1;=J`FV{bW7(iG6z%8Ii`eo1y(Kc9LoQ6JMjaVzNgo$r;2e1hjv)-*G?lTi7e7Y{|>5x@~O;Xf+j zccI%M4akId2NAJq`QI&fH{nj~em*7nd zzys-UD)K+|YI(A&)UQNau#jMXfJF+aPd+L}ou#ryf)!4?sD&&&dLlktbqWx~fT%A7 zVS35Ycv2x_p?>qY^ix~^!ZYat1^pAG{v1|C{gv>AQoq0-RB8*M+;}{4W@Ocb@X6Lq zM?YCA%J9%4ghzkg$!WxJFZzfZqW?bh6YTU-|9fbYP|`*|#xq3)4*tHxGjWZ~b+!Zd zkQ$VL>x*YP^F#4hEcH{;bugaE)1@8nhi7sDDfTf-Fq7~+9?vwvWc*DpJx{^&Y&?^v zI~9N8lU~#COywkubqE)F>{DIO){xp41CU~!der1pP?7VagP#`HDIIgrCeDa*2k?Xn zpNui_jPZ`lVsyy&c^!ahCsdYI5L!{u-UwLX$5+Cxtbi37kLa%IoU^3=*GRxZ2t_`$ z^4|jW!t1~9frx+;<3i&JTO#VS7N#FNe+V@lp@5%-wo3C4!~+SA7!ZV>#_s40sVu>y zLLanC&op*reR=HM(wJcXkI)v}6hbJteF?@o#QhagDLj^+VNi@^u@HI|X7t+9Bs94Y zT5+bgNO(esg=)SNW5RhU33W&3B%3fOgi%PjSosqYQ6cq$8-KuA}< z^70pq<&(Et*oC+zA{yO+L9ttLZN$pOy{6qyr@-%^>|s<5AMl=pm5l7q?X%eE0rG*( zNHF+@<@ko_COMO1RFqp3CMB5KJbJx|HINzt3v+_!=w~jHj{w zi=eP+y!se2Z(sdMc-v+3M_^QBUA}+XmH92MituEg+16D{y}6B#Sd0(GVFn>vgmw6$ z@@H!so-a>#4xYs=6ZL%HlI)4L{O=b-jFA$hLQB6$qIH2pD}_Kl5AbwxO0?#7`S-0W zFi0kYN+q#tyCGKj@rTmqN0aFPW@#b!OSm+#%)^mr9}6daKhz^plYNxODH?nk>zY;3 zPtoHO=ofsKg0_y#&=nqTI*lUBCtAhm@(KMmq1`~VS%%tId~xL%kLOAPSEG-T?^G_svzY8kJk!pOK|LuM?fUUJu>cF>LY<5* z;nVz?1JEFI(GN9EAZ}ab+yD|Ov>!PM~rLCyRZ`ViJimk*SS&1*vrXch0s7coAuqs-> zp3Ui7LeYO5*hT$?mX1PZ2_BxrA0?Eww{*QxubrMQa&R=B#l5M#H9cP` z3pLO(9$-Zdx(h7vzrO_hLjdlJz82J!i&=+y21>a|AE}5*ZE5h?fSMMz3^mEX z*{EqF;ycj(i7P^KvJ?F?P@e}*6K7)l(UEn~|4zl&2SxN^ z!cCZ9KMcH%8aSE1qo$oy5*%M5C^*%7dCIAsr3IdZ)zA^_49;Xn9?2Lf7@LYpG zu{yEcou%{3T=QzSXOq_$WiNX*`=4B9Aif8)?$l_to!#yDY=3IBpV_>uPSu>;?$m0F z@Ymkl>YW<(C{jnz5P7Ylt7oCy)zTWp^~-uCJtd5~*5>B+-u%eR*pO@=e#0tOJ)-Y! zgyA=MOCqgKGp&9}y9Hmx*pPJ}+0zmtDqoR(ZY_xpw4QiW7vsxe9d=! zPj|H%8KUtDK$uz_d5&j$erR}xp^RuC8k70FE7{O0*LEFS(@ev1LM7DWkqLUTrqKyR z!Lnk{&^$NL6)&=FpI`AawyhB9ff2-(@B3!xW9|H$E7@lSaL%z*H+B@w^&;Km=W{mk zP(2PK-SLe`Q&lYp4_cXRYi(?(YfHY%w6?Zx)=~3j*G)fc+T7`f)y(cdR$ReG|*;0!IQFf7rx{wY4F@!>G1)aS(>C8C#JWy1rp*##ny( z6KqmZ^-af%!3IMMEX7a`PP(fN$G~x@svZW8>ZtL!A7}aL*W=44U;YJKSmh~(rU$MX zyOCoAp?b(98r+A+*RiUi7de)t8h)%>x??Jl!hdodJ0z!0;`hGChVEP6+6Ec%THEWI z<2rncD3%rlnApcrc?!-`3AICs+|UuNk=IgJ`bJ8CS%v}DMMmuSwid^ZUdx+aVteuD zuVaO3B~)BLh;=`T4a<%#m(~59!4$AZT0PS4b7(lDmE3&=R#0y zQ&D}lHa#Iopl?BR%vjSs-Ej})t6pXkt9%s);5&{Un401R{`iy|BTM|MYoaf~1y#j~ zqbRZ?oH6Eg)d`2DT>JVaRxE}NZk}g^L1gMy5PB22wUaH}Gq57X3Qbpa6bORiO`10T zq@@n8d7B+l<(R%3gtis>s);-6PChK5cW@KFnYAv)w%hQ1wspAk>DTqPVF{WN#VU9Q z8M9o|b*GpK%07S=9I|~?!%fs33%jvYb!sEO>|u5sf96frw-^PcADgjlX{r{x*0hp% z#H~?O=X(uax=~M2bR)10U9n>`(v9ik6Di_zuV)2_xo!HkWgDSs*@~td##^puQD(B~y;`F) zz19!_kW<(6LqBq&NW*c?;p&ZS|DxsUkSQE{VCtAGoXe+Q!xmH-o~anFXT{K79`xEg zJ0Zuvev9?T#kNf&fIxUAq|QIuNyi?!5o1Bc{X`Z)CHotUz}i$5T}3 zSS2vy`KPC9dhShZR<+|o89K28HSC*eY%jo1>%9L2JBUAeEjz5J*mS#8ntR40Ivh%GJ9EKJ6G-pXo+hR~0so-rFFL$jjk z<5R;!Uq^iRt?a-moIeE1wfw*~V>PhiIow;v_T*dEF~%RfmF-i6D%Nz!zUCTX>=^o~ z{Q6s&TeKV)OEA%L6&P#7T-^Qo>iHpS*>OcT)`B?H1KUz8T(HwhJ5A1V(^^)jilBmw zPz!Y5B;^nQMDcD4&0N* zRHNFq2H6NB%dp)Dx2lPscL$V#0uABWmI1kh30KT!i#Oi_(F$&7!+W$`jNehZ7fuNb z;NJX^+u1beln7jna8V&vo)VwVS3S&5DLRI!LY=@=;3BD!(wa~&hOzC$FaVw(1g@ip zZRuKo7=^AESa1>IAW+*0`VibFKZ-mxiZvD9OSJTGntUX0y_4-x72zatAzaI`J@_Z_ z8Pn21lKv{_F}M|h9eXPN7rAG)r6>2tyWtr1xC@5ECS&i#7JMnqbz^tg=@P`UyV&?D z+b|prClgsQbcb#&ZEyXaLg)L2p7gZ>ud?ayPM6Zf|sF0xTU%lz;JrO z*{z)rv#T(_<+=)P22@gDI_I3zIk-DN<{oxfJ#13J z)WCyS(V;RO-8R3^N33Jxidv+oh5|+^dJq_9)WH|6V@|cB+7?-T!wnqEcI_3}Af*R^ zo=^op2Z92xU^*k%Gv$YT<$X*Y7=@bRz}3)g z+chFL{!z9WX6sk@mhkuQ!&y0@21iQ^p=KN#f&woLT5x2+bFf3zG~xi_V}>hv^RL*< z9zQ`I{f(>H2!7A+;THY#SFDh`Fw1KmfYk1HKO5HLr`cnvrSawWvr#=S%HEdcBOYMG z_`~+f{9|*TDG_YO6il7u7Wp(yed~N*( ztnKa%Y}r7vH&D-TIu!>#v3^DN_VRFVUbm4gt#)9B4L$M|Q@4Y_SAUjm@AUd-7b9CU zZMX+8omyzx?v=b|13R#&crevrh+7ocFc=EwCv9Lg#lTkKE4m8&e)vbadlf%<6T5Jq zAoBGXQiq5mu;7tiopmMM_|Z*l_&#uZ;VK0lwxW>?Uz7DDkcLOu;rr+YoM6KXtSQsTX)$93to7pMEI=JkrqDCrd{di4w zX^M2#gY58umg^|!ccB(=0ix&zY)SH-jW^-jlWSaUy0COuGBgj|C?&Wt+mezw?jbg{ z+A$%lF)Y4sfQ?@Z3{oO-sQg!UWqtL->sLI%gjhnMgG&-Eu{u-mEZ|RB(C9fOs zgJb=c>=`NU?Z0L-t92MR1BMY7*tNY_`DJ!$!mXNz*`R7A@H8I|hzlQEgKXZKot_Lv z53?afTZ!RQ!`XsW4J{*F%P)PHEiA$#^&QReT=;9c5&F0B|2)hNt`1xqK8|KVtAq|F zyFF_qq~QOsYAeFA!n!)44Fl@LcVs7UZwr1apyW!!!-fb`%!GK-xs$Jdgw<8U{2F$Q zHOJ6Za3$}`+9f2AEIM${pbMe;W31D)@8)$|*g;j6YC3UjBU*5Mxb633C-T>};0!QP zRRO-Lf!J47VSH^jT*qJ8!VcWW)*!gC2C)G%5SZPYogj(a(sj7HhG|0W>d;DLn?vP3 zKJzhlXweKb-!tK{`g#C`YyXO0@faIlgm>zKrKS&e+Ok9Ee*VT|Y?tYDcKGmZOIw$xMB~ubz{n^vuxM!HhZ9|271{wD zG^8EKYY9E`k<>I)D@iiJ05>epw+wAd_O#AD?!|w3H9MfnaUv~%)9b_g*Wh$MnoWHZ z!$));8Af0kst?8WSg9W(XH)(ogo$;$(D_Z;Uql+h^$-`@rlYE=ul+Vz*+4CfBNaRb zCrn6v{5bX{U33bQ3krNc+;Dg{9&A~p^6XRW7l^M-$ReT)J+|R1dr#m8yOp2g_^tl$vi!Yw*rfg8(c6LV#wy%015v|M+3LEwR{R`Fo!5Y$ zXQ?|YYHg0fr}?8#u=Pd5Hb4aG%uwx6HKJ!q=G5_EPCdocBHEw%`?MRkStZS5YAQt9 zH2%PkewsN&&m^HyBi&b#mtpM@15eN(h_A5o4TN5~k2fv&#D z*F48Yf~zqUIj$MbJ2q|oB|h{yc4Uuj_yMZFe9lJmOP*uJ?8_;v1rHR!p%+=UWtzdC z30C1fo@aaGcf1mEHV)Qy0}tMk22b00m4Esyo0NTx8-HR7egG)?6Z=8-b-w4LOsmF> z9!#HOL^d)tin%>o%LhM-`V5M;F12b@OOWeSA zJ^e%e&P%MR$IfgA|LR3Ho8P*PjT#)r22`|-1Su>$yw8ua=ZqgSdu$DVeH%L!NfJ1= zng{0ve!K1HAM@8=W=D+sB)dnlrgAS^QZ{|~XR4?8g@1pJBs#K_mVvyLwBn z5xK9j{GeCaKKuMTJ2?4)o~cXg8^Wlyj(%RJxe@8$DEv=$bxrTFJ-^OAkYoXd@Vj4S z7Z)|$T-aPQLYCCfG;PJ|IlV_^&*Lqx;pd9a=a;?42GP%?!%3ZAjpKFU(V1YA>B14X zAh(3vVVBSP3maLbTSze=Ch=^*!M-tYkB4PzS_Hj25 zZ%0A&;{-|ahpXYb!8}Gj@+g*xXlZ4NK9cYDI&-TLPKNLVleBAqH0MupE{?&ALRH5csuo_{g>nqn6p=BKX?~!`N^l7%V_66C-hW`b z7i`lrBh!SungK$YOL^V<>{NcyA6UK`&UXa=16DB(a8Z?2xhVw?7mSVyPL;?1EMG2Fi@<-MW{wS#<8%`8*4S{d{tdlO*6SdNc92-un?IYZDBV4~L zbNt~yBKhx{c3`TAxpeFn2_ByGt3!h37D`F`P~X08>q_k7e~N!qj$gNx=|kG;&q`Jc z(})d**em>DN4+{3uC3NAAE}l|fj@%WRA^k2tL5jt0nhEs*KuTsmo-H}0@R1Y;9B0# z!M$Yk{@2;SYSXhdTpte_4JJXiugy(LM|ZuBth%ZrxX}Xmk`Y{NQ~L$qdpmoz8VN}F z1Bf7zoI@VhxK2#C{~K&T2OMKEd`Q9JUf?am^|{jmsIc1F<`#%wytFBxU$CmJt#52; zK*xBhYr2J)(KHuX*6~v&*2K-NHTyL#ZLgVuw+nRab)`ge06PP>f~>UyeHpIF@fB|{ z6?XvnbohYK$1pFBcSCMsy064-j^V=^kPI8=j+jQfkz0RdezmFNT@cb)P>D#hI^In= zr-YPPMhk`wR}NMIDGDpNnZNm0Hlc`=8f=HF=-4gtWCuVssE}u5dsWo2 zVcfE4fh$YG=vVf1%3$RM7e{{`#YOg)WI5f00`RyB$c(`PJZv-+1w)Z z5`;s=Jy%@3uyXE7p&cX^@OmqDb>wRt$Gkg%u7-;oBI$*+8@x!xw(iND!q?mix8dn^ zOe?~Daqu!ngIpqu8yoBR={wk%YUI8(_>>e$1qcJodvnOhypQPR<#*YHy@KY(#`<;$ zKJ-|uYPf|yJU-0`@8kb@8?GE8QLMxF5RxM1)%;)a+jlU%+CaDn`)x(=l99bcjJGm$%dy!gg8Z4t z*XrQ^L;T%$*yQRcb`e1%a~8uTK?3pDxpUGq#BuMk1=Yxh8lhu(@TlPE`^v+)GduZw zWVMP{eh^Z;KZ{7ks*gycQxY9pwBY|E$ARe1!K(n<+rsa84-6vD0ZBpVqzDO^$apk| ztX%2*rtprdSf64DmkBuy(^Sk5YDRgCH23M%5MNv-s5vCrbx6){a%T~yH?(}{@H^~K zcLOD`kwJ@oiyZ+XO2}5j1r9N{qAP~!;us&#Euc}Izjh5P4h$o5j~rjYD_P6;l>f;g zLsq;TY{t9T{`~z9p#6{l>c{u^5Dq|F)Jku~5+w?Aj!S^IEZD9GIeLP>@jeTxV+b{P zr$A1Tjt%uEbBA?i#QN~>f53Jt>Ua^R1#T2Ncui#m=I{6~K41s*d@A>&imB%pT?BOq zc^!J48^F_knjifk8(oE$x6scH!d2uGLfd^N$N5!wy`U+Gdwg76a{yxWlcNH5} zg*P7X1UwCS_5cRK`9msWct?bw6|Xm7zM+RA=a2l+581xezMl<=GN3y!1m9itC~vV~Y0?f8uZNLTl~>SthUEXDgTD>!#`$Ydu+oEO%ipNeauGZ zUas_Kc>WVs=<(;=jFhzT2|J|6D`){_9KYfdHWY!+bsI<~u&cGPbABbNj?NGG&7U(n`yqez zb2dG@laJWNW@kU*O}m(p`#8tPC7Z0?c^d-80g@K4|o?Art8H!eXAqJPYsRS24NpCw^^IioN_p&X{xs z%_PB+O_Q7WPqL&CtK!E)uxgS_;WEi&CQmh`X;w{@W*UlAO|2?ZC6m&Wl5>-De53zZ z&`tvS-N{55h8CD9s0s8DWO!rg(F|Rf@~Y`4lW}Sh<@Nt%rh!WFMoitb{l-w-z<+}N z(0^1VXh>e&$2oTydLUe8Wo4N%8(je$o|T1KSy`FL%tDH{C|apuW}88~Kh!eyh=364 z2DwP7D<&BJ!(&amB(Q-@Ch=~by<6M>~uR13qO~arX6FU^T&)IGGNe66Nir(KVssDAroB37xpvK*mvr! zT7irV*Ke#!pCJdxPy}Z?kvUyX@cWJ@!7^!#-f!_*GY2efdB6DfR_Bzz_0+ zY(M*g@8zHK7H_deTX~aZe8O_x?Ot|?Vh`}~x88E|O%qqJ``LYL8C%L8WRDJDTlh0P z#-HSG@%~5I-!KW2N`TDFAU%a`)Mjl1;X z2l-mQk(cm?*aK`0e~dlCcJYt-C;U^skMHNcm)~gc;pW-ym0KFT&;5Q^*cE1B9@@kG zZajzH?@j`x%r)UM~ccmZoY8O#Ix5L^l^Tr zA2+YwZ?VdnTL>sOUvl7_g@vbObyItkw0qU+$H`H zidlcu_J3CMtWEy)5A}e=a}V&`CH`6?9Ql9O^#2XYo|SMn#F`oGyX3Q>_N?{({}1J665`_j z@1o>}SY~ZDr_w2w5ObBP+K@Hi$7ZSy4cS2c+X1zzA*;@h9Z=6wdhkGOPeaz1`Dbk2 z>B78Rttj-ND$Hl~lRx4vzjgA7oh}RiLPfD*`7Dn+tXg1CuYqOP}%>u22n^|CCof=JV!>SEp=KdwkyJ4ZokV%@qk)wIl8T^M`$wrwC?> z2sOfE`yvaVxbW1d$l5Y%hidKjUdoHNs=NK(%UHhp((k>SHCDFSDkL~rTdsG!2K4Bc>HSQ4ZeDz<}QDzfy*Bj77Jy&{12&hxB6zFrGmft7BHrE z{LMF;eWm)|=4&XPnYvBgew%Nk{k4l~^mkt$6uAwF*o$wk{@vF;?dPc&wb!Z@Ne;OE zR?SEIR+e3`1_WZ$J8w_W;`c19so zz!YCMkH;>(FJ5}g6qJ56q4Zi^x;68vBUAJM%&91`Ibi@Brl?P+qW3{leYKcRO`58U z-A~1~CluSNiw*Vq?HFxu^}sY=I~Gv;rs=j$QHlKtB|ey&wq<2Sy4MhL zLl-me@pVS>+C9E8{;3Z@W8{LBi@#9a7J>)8>Vbv6iAXXR`5r}b?_ys!Hdh4}`{tFs zeMXsHmAAxqA$v47`$}IE&gR9oUhP|`MWO$-zVp~2HSb!W_DF31wZ5*5wTk5q@V(90 z-RjqYzWMx3rsfXvwMxC4hj}ia!GbQoAKLC1D+;w%9}M!9G(|%bow=-_ z`eru|Cj{R772$r=3KszzJlSupUxZK1LLEWbKYmm*JM$d& zqFQ!?Zvr7IX|S(7(A;}4c;QIw;lVzsNxE@}FQ;0o2%}j-TCIyZyIKhso|+d~sB~nA zuSRz9R+_r%AQMR#D&0Ra!tfR*lGYjOEA+LYNz$}Dp=?#0F0!h`UZfhHu*=FV0;5~W zYGqi|s2*y`8zIl03ajA>Q(-ESRh!j&VUg!8(X*V(eI}~9BwII{mhc#0BGQDlZyy@Fijq2X8 zph>P%b?+sFhb7g$!&&~4EN=s9KGZ@LVFFp6$Z{5_0L!Nr7dULff65i;>L38=-9d zPR|c&a=NHm4crjG5Z9f-D^>m!ub4KksKR8ih_#Eolq|+G);`vzib&(JBX99m(tt+y zFHoP{>}eSr-;ZA-)Pv1=VU0bLI<LY{0V_ND@$G5nn%xb_)W2YSLpTL@sJ7gfs**oaY!+h=&a;nRGP~ z6J120FOjICw!Bf(vcaHK2s%60<&fSePkO^9eWzBcco}b^j<@9(MA2cG>+a(NbteuK zEjCA|z(L|D-4#Ze2zE$>jZh{`O?CzJI@f(&s$hq7pKf=jT5UXB%wPS z@9+-1Z_$54)Hnbk3^d=v=C;k4IHhgqLKRu?d@5nESIt_vNx-caP4cS5hWf2Jb6GbGUX@^;= z6@}e-F1r!PY}o6(1j4>}b{P1g0kDsN2d#v%ry77B-Q~t3<-Y*svSw!4{ZM$grx|!$=13q`mT8 zjsY6i3XTD)>9Eo^Mp4Ns1i;WHA&g#Q%2h?p>cpF!mDYtCG)?P%XAs1yW`j`00U^)z zwLMwJK{yzHMNfO<&(*BfHV9SK*l+lGXVX-z?VfX*g zH#(nT8cz0;wzX1hOcEzn)xa@dFy0|8uOKUQrOW@lPk3O)h`9N}>MY#;&y1*b z^cDC}iGG+poq#V87IVJBK8C*&LN`U0)D9us^#}*+2uyR}6=-=+1k<^;Ov+3lW@|rd zoA&zb&){PIN)cnTwcs_q#bgY z!6<$J(+9az!NDjLfg=feA4Bj0K@E4<>>iW>fQwSZ`O!0rfZ<)Rrl?4n)s*lEhk+I4 zz#Z)wWb`~S#}jtppQk5O@P^JOU3cbqJBMei!&mRR95mJ=2m>!{c7+)yQQ@R(6nyyV zIWousrawH;1!(~E1{_ZNYmN?18UPoyPau#3zmPgWfQ<&PT}jqi&qNv&Uzmm3qX!@L z;6eLEG-R-0gokCsr6Q&;J*qK4xUpDw6a#uBMI>A~qB{T;G$fdpJu!pec_LK52mkyS z5)jpca=XI9K`nq0_5*qkkeCEl{A}&$AZA%RQKunfQ@F8QL#ES^E8+pt^*1~LAAVp4 zfm0vy!ibcCyTWie;P?}X$+*{WQw~74g^n6Q zrID8GM|L=ZT9~Pr>O_!b_G85_yCkf6c2d((fF_sz7Y1XKzktm zEW?s;qU>Q|eEP2B`%GgsBMg#MI3q9 zDV>0XlB>66ImF0okg3`h=$bX3f zaoypYP{0V^^^*?uk=T-!0>GGopvtMy99Q?CK;RKyBo()aNzoX$!-ND3HKglMp=$I< zc;|NfuzX8el;aibx-wojp+iLG&;`sJh$%*j@jL3578Jrl?LKB?7-VT>tGb`@+;h0j zZyexPsKX^@P`&vX&rkGJiw+{N!By@7e!eHJVAO;Iyu-O$EEiOB+L?2Z_bhAYfy+eGQQ>Ks!^{+#`eU~^!$_MnSITK)OJN+p6 z4;^wcG^<6+{O@xbo24S}7@X(y1IcVXhx_f0``;fN=8c+_4GW@67VNprM@-IH>R4ND zs4I@}9+yEB<4(BaU{vr_$cj8;tmV9L+pu=Vh_dj_)Hg@K%719ds-|DT#s07Q)avv< z!>!|E*N5@?XMAjj^rf!q8R#hIQfqYl7oeThqb_x+J#nIGutr#a9xPC&l*h<}cASs6 z2Yn9iQ3JmD1BcdTlZp=Qx8LyexDJZTyb}K60Ax(UUJ2^fr`O=egz*iYC&Z9UHG^4W`3 zryqH`>iZK_pLh+L5~*XL zz|l@HM9O(Z$^l{3Pdw_BZj%AaS6C(FW?OKy%h-P0NuHZ@$__|q8{otwweBRpGI2;R zwDQ(uz0@bIyzSKBpLwVZ{M&!#_0Fta@-uIX)rGHq<^vdpw4#x_bqEW@v}M5x+v#3a z)C3ERx2x4_WV$+buRBRS+=Ra#;W^1z(}{M=%1O4ucnbH-3L7xqw7HvX)#?*lQoswC zy60EkFwQJz(M2Er%FC^24*E@V+e4@L;H(Z<+d<%;3}a`O)U@pc4XjT6#_Orxzm>O0 zoXU6o#wQR$QKkh(*7SFt&(2o^f9K~{O6jM5=Z(Nr2T&{y>{&QF|1@8ci161>Yh&rV z)4Xf-4xn3sh84>Rr6I!tz`FQCQCP9o;!R?-raBW)xkPon#*skt1mj8F#6-6^aA(Kl zMXCW8of7+cP6#qnmvGTF?dQeY;6__%diM`mI~m)+{P zTV(Tn3stfQi(vZ>sCpjJJ`Qf2N{&gZ^$$$rsHgn8^(ddl!91VHP?vZ`+fHZi6>ySS zSGuec@8Jv$_l8%LGrr4u7|^K$4LQv2K#T%d!P6zcNf(g!3P9QFYhN@jim-Wix zSiWBj6Iec7oFrDTy{cb|2&=m%nC<9dB-v7v)R=71T6N44UiOaanI#HSPSWl>Y?BEmS!@C- zx~zB9TztUy7qUcWv3TkZbzgPSNEKv@v^>03?8(k7*VAS-I$LyRC2CW4rG1pde#jP+ zIke5KwZv`gQ}ul<(S+?&wZr24FxNVPYas|5{wiQ&%{}x-hQ4H~bB1WqVK??lkka7V zsw8Cd(7&-+F&o8mc{OW2&Kg+c(`OT5b9tZ&f-3Qkn-%u9guSO$YI^#Ysx}cZU+ufn zQ&s&dBD}dIJn^|WDd6%LCinW>h)*zJilPr_*HaX_PWf|0`+(mP2!slXS+rC&EpJ%0 z@94cSsa|5y0V>i*bY0S4_*o0}TwPJ1dUx`s%IeiJGt~0hqF%IqAlGkkK&68_lDO5d zc(-5@8pqP9CAtNJmeh}ktF#EC1R{gov2g|RM|Ducx|4P^czXw1P)pFQUdXQ}$!EFh z=GAVL-=J|FjS;=`D#vSiZib3S>wyLcp)rV9j-Vb*)vJz}&fMy)IwA$h2R-S-yGjtqO&`y=c;_83YWIZ272;8r#*|D2>3cQ>xbN z#*Mf0u>9!T&^bIk?B6hz>?$Y+;xPX`robt&JKa&$zCc_E4Lq+vG*EL3L_qB-5Vh16 zdOBJldib$yy3S_4pz2&G@-VrsDijelw@_5IpPR+Aekc?f{Mpqisi`Q4B4%ov?mFB^ zT!8gf@DxJy*bs$nQkq)u_`u$#y%*S*nA;0_92Sv-58Wj8KGH}u*MOb8Xf;4$ z0iO^rw7Ho1+gU7v=^0%SA{crJd+jG$Mz)`TFpWA=78Hi2auQGKh@-08WP@Ij1$iu+o4uA5gAD(UZ!`$gh%G^Ixcl{7ja25l3rWnlJuC3AhsPl z1jRa0m{bcbLXd>m0whkWQ1~Xzebr)B%Ji}2CfQxJbd%QGnJ5OQo6Mf?9 z>mH&;=3}dEjwJ5>UJ4!+_NrM}t!yqb)vL`#RdsPsQNLk9e4~vH`U8JNYV4&3QLqkx z#Q@lH@g3hQdx}BPZLYE!v_%%uR$2q93^*yRfv69|&Ttgc;q4p*KrRS!%>z0}?Wj3$ zmK)unvImvv#pVH2CS7F-dvznXC@fovdSrw^Xbchu7Yv@TX+P0k1L6S}@rqlm?@tCHSgLiCTPVa-jU>i``V2?-{!ItPWFg$+$?Jp!!= zcE_ih(s?dn+HQ}EFJT-c5ILC0NmsUYse+DPnM`YQFe38oeHmO8=Rgd)U@3~E%+6J# zJ9=whWWzH6fM_>{R;AIby}?2w|Ifi^kDxQZDAeR`b!P=?2Yl}jWA84%R zbn-UD`_bB>W}kNDr~2NmhE4LCHY;e}pf@p6xv7Sx`U2#ZV!$jjT-s?2sBlMbY85?V zOlr=Ev3GY;9g*gY8ROCU>PE}k$T1S4;CZrsNDJ8l>_~GG87G7(7)t|z80_UILJ`Yw z?6obW6!?mRH%s5arW{*mOW(oE#8##6U}&;M;_prVBC1tke~}q&3*$&68LlkYV3^b5 zCcya#CV*|uWDzD2SP&Rh4jc_~aU_kmE%I%BuFVzNt{c}6%m!au1$v;c3SeKy9PVJB#B!ywa}Gg3sK_u}+h?DTJLKPQ6l7 z=)5+l7`KIBu*D0MA);*pBCe;FNX_ylSnAn$zPCj+S1V0RkVelrE^M>{QC@PXdEG_z zDmCaOsCmUjv)67lu)au-dIB&hxTSaaI#PzOVbR3J+A$Y^Xin-8OVH4K4e<(20g)p? zJjSueU`6W8BxL52q{8QkTQMO#!3aZM6+FT8#}ipLP^ftFU5rN%43A_I0lRo|3_d(z zV|UkJb$n=~bu?DPZ8Zx@(9*b8vst90E1HBbS9Yu7F5dJofCF=wMNM2T8WAZZvksQ9QQeUxaIh^))pJD-@OoaZsNY5hgj`k%qM&npi`?`9sVj;EtVv!pN*z*9sg@bBLH*X<6tnTLR1%2~%H*YPqse{N& z!eTh;Yc_=Fs!`S97~JG?Ttk1s3RVZP?YtSO|99zY5A!`?{Ng< zv8+{1MeR{Q=|CQ;0J|QJpf%Zpj*Sq3@PkQVW#+)jq!-u%on4Wt&@SL{8L5JoAofU5 z9w;*6yrJ`HHf3rAq1On!5nw$EJ)!AfyLz_H585mTZC^DU&<1*4l)dEko4$% zE{>GBC~Bl0Lv_Eytw2gZMH-7**$Et~IkueW(-8jHfy^L)D;W$qkm+anMh+x40iNMN zR?!Y*`q>@G&>uLEDgRpsGHzd56+KC{d9J$}Vk+9sgi5woE8-3&;$p6Fm9|<_5QD3` zFYs1(e9hKnz9xcn#7KY6*W4ZZ`&Hr*&fi<19vdtgtC~fKvx(S%YsI@v9DH$mtmOc) zkBK=iZC9Ct#Pgj8jkZ!83=x1FAa81g#~F47zabt_Upw3I4qiUgQ%B%1V;wC2GgL6Yuy~?*e4bU z(L}~A0;c~B;(dK2tO1}-4BkI7OVIk-q`@N38B~+xvcp@nY0y*~XNk-#?i?GdK^si_ zM?!S?G~Rm6Az}v`to9EPkG5OCtP{z#J=7+yhn97sQ=IXku2@!Xs7vCn80x%b>gA#0 z$3);>9wur5xG#r^>5cvp&Xx@?e=x4&2sG474HzM=fSb8x1YG0&tJJX(qE$_JWbp0+ z-Tc;)Ron1nHAKV=0}FKVThFglU5iAac?w^wG*vQK)K)8tgf9`s59T6TJ5+s8B>ICA z4Mw7)BdXU(m>fsc$dMw~e}o5J2rK%n?W@#^k)l2FKN=~nW5ZP2QQ~s2>5*- zmqW~{1jL+JrrO>pRM>ZaV>6D`EuN`>kUuH0WWxwWG*_<`1hF$1R7bq|u_4 zCVh|5qM$)}+G5d|R;TvRX2Gz%`(+QEXQ5r8YRza-m(O3R{yAFYnjbF%3NmaIR39VC z?ffYi0~8F8T{cGG7N4(I#%>uWYO}vau$RV*iCBGXH$jYL5YfjbinsnNPTF#lICX_S zj-sgxmx%o7szF%6*z>LzH5WPYfYLRngatN4ryTFKvac#|i?}qHuxxa)M2)^h)Xyr* z0>j(ND4w;hu-6sniZd0Qti%w~TVY)d-ul(6G42@7bCyRkN z?p9rI7SX4=5#f0d@L?(~GJ(UHl3nR=?}NBx1c8 zx}BVvVhE5lW2P9S`S|OZqJ5$SIx6hKS=dVjsh%)Pl-ru;eE#Pw(YaTg8s$kHSIZA9 zFQ=C8D=(6Z;;+zEbC#=1XN$Su*aNf01mf7s=ZZGvgyiYDB0UjGttW=7({sg1oVGkU zPkhXfzBgYiVCgpLwG`Tt3n2vU@3=<{j#DR2^*^2~f(yk1P;gHy6y49EQPLNQ2Q#p= zLUT&O0`)d#om!>dUL+b;fPJXSUo77KucWf=67deeOH$&Fyvj+D>Ii496C*akq)#f* zEbAfy)jq(Bg*_Jx9UYg;;V8hDias1*U%0e9*wdF{ZX2o|T#8ud5p{H_$f!;iBVYqH zDM;GkO$Y3dSmDqS6<(%wwzW(&M(MH3L_yhxiS^4wZX<_1gfnY9>=ECP>9B|1i~;sI zwM@)QMB$?4i2rl7eK}h1rH(BZty2>)knL!T_G()puZLMT`Mu(1#;0<1?fs%@pfqNW2et8C(Iocj z{bH~PJiFS7)8j!Et`qgtz}3**?bP(uh^V$#`&Nrc8pVlp00XHGeS}%4ol0LLE zP1cF!oQAV~i%5-q`Y>e8U%KqD^o!UnkBY_|0MloM&v~lJCUK`4J9rAtD693r~s%{G|&axNW6iooJ=*T*giH=s%$Ahm~vl=wmP%J8TiRsx~nZiUXtv zQ0sQ=f$D!5H`MLVi6MF@Drt-GpwQ|kM2ZUCj!n1m@0Y5vvw2YceFpcd6Ptkp8mRi@ zUGaB&q{9{-_tsI1X7ZM?Lr;r#BHk0mW*3X?e@?7o0R;W+Wg3e9YesqY1<{=a>1ctD zP}|tqE?%ll2!po;)DjVO5QjeExi!U7bV2sM=%D&-2fm3CaqzeA5HA6Md<) zb%xoj0et7FXa6ONmAM}avZG!TBUNa>}7!bPH z{Dx=~C|%6L17RsMR^?5YZkmT|NnxR3>ZaY|E0(1Oy(Q9E){>{(m#FYt!ce>468+*d zT=@txTE7ie%u@T`q;l%Ix5W-seTtc-et1X}`r`{}SWzPZZK*cABig7j?*X&{?+OYL z-}0_#Yl|g(gBMHjt!_KPl>~SbvNPXe#iR zu0>AWs)|1nH>uhC!203!z(mXaVzavVW06uv!&s_hrg8wO!+r_u+pd&N8mj{@i~J?` ziwjiOPeew0T{*7PbX}X$w3uRZXFIfG%Sf3fp*&BKIyukm@6TaRpD`zNP#=6QiZC&B`2q$R zk3IHU1;prP|28uvD}lcp88tU zPHbq>X&AagmG2wTkd0C;zY*7IQ!a8GI{LA1L?p2+b=sFZ?j|^b+)cz*u&t~gSivmY zG*-@vvv&P~J+HcaE4uLFHTG~vofiHxJ0v&rThSsBB|g>vXhn2Xi$jKZ4j{|H9>j}+ z%=&t@T7J|vLx6yW)dG4=4{_NucX>LPxcHc8@1V3*A}mMpCAqxc9TSb>7;2jM-KI$F zj^o%{(=)+>IM*X?>?rS$kjV~=VR6xf$=>6HXlyQ8v(05?tI$ta=L1V*R_s?DI3cEj z%ZC3T+A@wYYxV(0cnu%g5$eMqMFB5aqXIvPHi^~ssC%iKe-iy_CxD96R@xVfZ#0d6 zQipyLm$1&U^G<@R`SWYkn?DQMyJ`F)3e5Ki%&Mhe$`lxb70_(sF}CCvaRE<1gc|zV z5`EW-T|9K7I(Z5(~sUE+HW=>aW>b87YBNc}~anPSallq7iY-5ag=Wn8I z;>g^;i`F1mr{6^{B(r}P&0*hdLqh2J@psV-25*DY@Qe?wQN2%#Mu~MbRz|D!r?D4| zV6-sH6Y@#KI8LJ<|50QT7c7p*)`|6q33B3m=tu~*o$v%;`&-3p7C#^xoDs}nY88{| zhIa55pOm$#e7Y9hCWqYCxAf2=q5#VzM68&Q>P7G1gCQHe`=j zFCp9EB{p5kWz10p6}ez&Y_=&+`HSMTE+@rtzZr)nZ7;p76dlde%u<$>=$wbo{xx>I zsx0=v-5#GMcOhw&E%zcxt$`sNR_$uYHnuBUKb)NC%Hl=Mt|4!zMd6@x;VbuNYJ z^VHEFMV7gM@Ta-5ezp34DEz%*i)zZJaldh_ZykADz}e`OE7NPtT&p8Mald;?{1xuz zuWQtVT)7aOPlVaOK3Ex(1rc#Af;;^>t&J zXMVjJy`?U`&Rsu2EEeDGhKsfMS$BQ4s)?kFu(mdlg^( zD6eZOdnHV+A@y2QS%SKEG?Q?sVker(#h6zW=GDU3))sO*)w!dU>=UO~-2ZdvrTst9 z>&sTMoc|YXtsz?8TGC}ZFSM5J6L&kOJIveCPW4%gPj{&7HWC|7*TmYkk#8{Cf$D3A zjH#PSw?B8pyLZeX)YFb+sO*W-^V`^pAaFAhLE*qQ!k{OrFwaiqF zu8@2Ab8o0oSIent-j#AJT3vFLEO#8iY4n<_V26xSw_ha-Xi|LqD%moT4&Pn{^xm%0 zu9lZN4W0b;{y}?)~7p_XAso)5p~}n*_pqz zOYIvZFGKXN)%9`&MFCgeAcwN^e%YnblOIRVh`=zv^^=yb!0`B!RSloPOT%;^H!xHu z)|?%x%Me+gZ{JQLVGrYs@%q)>BV=u$>+Kv~50$xS#Wzgm@jW|Ki(&FcysjN4kC$?Gc%DqJX6iYx63Og4PfI2n zA-nU1FGE$OtAQhAIFY-KE!2H%9s$Mkwfbg+EIpVVpB>LQ!q~J(uB)Vhz({#MKm4M) zaHPzQ8(8cfSvL)H_t_vDt@e$Sb-8*;xksV4P3&|E z1!l{}2KEBM4XZv)_9Pn~dg`pw^~N;WCeSA=a(Qb~&U<&MlS7WBjaw~lf z*E}>`){f8Yafv*`Uj1S^Ol=W+^e#D(ReH>>=}cMMr|mi)=Eov6V5S_55$&2OJ2RTv zJ+on^3Dt47Y|q!ORd>wRCd`)EkmRY*iB^`<2EvRNfb{qFUDcI~Ws`Gg z#RnJ5jpxIaf%QrER{_y<+Q`1Y>htZ+Mh4oX(ZqFNyR(tOHuXMAF!kQquGA7amPM6U zVImi5tdf5(d{r=mZe7xxqW?L7$UsXKHouyWc@tOuLZFALO4CWcMg6gVMUmmWF7#Wqt_AT9o zy+(#!O!P7y9Z{vo2zQPNo3sfG!bkh^`k5{`b=dlfi<9hX1QuPf$5pMryVI(eXiA^t zW#B@(kw&HVj7vO%N2gu4FA<&5U&6EvVJ1wjLB zb@Gbi668U1-Bxk$U=G*&_~?(2bW;H15DT6x9wK zD4KttoRi3WbeftMGdfOveu}=ctDLremTqA^FLv|&a-?AE)Mu+O*Wa$jeU7D>nycj% zjK^+SEl0C7`);qLpdW2%UqtD)P3oEwS)dxMl@rhLJxl$*R$j^`$1Zt5PV=(K>cb6? zg(<4jDdu@c!JeH!@C3WRjxwv*)0 zG*z%kUeBhhg`4D{9(OTJ^K=dZL?Uj6(}j?=b6+@^yY#+rDib7O3OZ$+yXAva=HOn{ z{t5Y7%E^C1jW^fVJU{j-9$SVws;tfOg(}$Y0JQ9ex-+c#uuEsezS=Bz2sShJcuWps zNYkH|lZ9`0$xd)2cI_6aHP6c1*(_D-IYd5Y#o9k71tYXPFI%wL>gMMmmD6J%KM!2h zo2m5(D;NNcM;ugi6~#{7rZA%9a; z<2Rt>pHg?cA^ST&(2$Fc!C`fffWcP(EbGP0H|4L4EmZt1c(u=|^WTykkxa3ZopvJL z)|uzq$rL-;X(!?x`M-+L+#$)`sh>H>Fi&x+jsV_MU_?~TsWQYmmMlCvT46O zXWh@vf@;9rUY-6-Hm|&88WCU)sL2Opex*e;e1{ImUT6DSM~yfrZ(+OC{(~}=gStN* zl*MN&TrUPZKg>X(tG<+1fkOZI5_J#7@()2`*i*4b4rAXW+qI;+5uv7ze+Qp^UL(V= zRyH<#vDRP75UxljR?h$@VUHMQ3PdAZ5nNB0%j;kdKIP)imSR~Hs!N$+i*rz$i zQg8){aFx*S9)djx5bS)aASj(qF(qKG>s?17}2 zYWLT&eytRX-;Bkf2z;xq!5~?3u1Gret0SgOc`E%I7>*Uj6HxQNk@J%?sQ(O0PQ;Oc zDiNl(KO&o{-6n>6hDuj-xUwih+a~Zh~VQI%mf(0lbbtl?3W_ zda@2_11%h~vPWUIsh%Tn!VfD}v~3$FI$#Jgx(-C(YK-hrML7&w(Q|W-Z0BNOMwj0q z7#pr)-x(Kd>mvL>J>lwsoAH9?iD`u0~HuVFQ;J2F}B_ zR~ftDnEVJ-Rejw?T_S70@8q4ONQr^S2-GLys9S8w38BtTfxobe2ccpxk=`gzikXpO)?3@*03>aQ_|%Q3WUC~v_UwRY zy{v!@6TQ@lQ&7-fs_nmNNy+}50Eo@~U2X)n7N2L-aU>+7R%IH2#q*8t%Vp=Q_n9%S zgWS+r#F@G?af+KbrL*RgG~$#L^EUMF4VVD@6u_@zA6>#F5$W5gNF0nB7|gU5KO9QgLA)E!>q5Oc?d`ix2OpVq6O z!Rx4+Nk)%KX$bXKCw705@wc-xle#Ko`~=l=Q5ECjvy=i)#lEO&TrbNYpOk6TvekCY z?`5)jD8pz~DFAWxu2HhIT>Y^6shTmgTvnM>D0H9;v{iSIGCZ3x-)KPE|D{}`DWyN>8O3KIMc8PsUTJ8| zD+Q)>j`*!&RxR~ezHwW{d_A4CubA&u*-eb=D(2UW?QUYU4U%yhIL~MUHPG!m;|s)) z@;exXNCtE;qR9NTgV8V@KL%l7c^kS>Sg&DYya&RCpOgr9G`geY@Qy|!B#S#@+=tap z`|Vgq<3?1!t`izNq~>=rQnS%YRhWTaqXD-y1ID09KOOx% zCz4H;F%n6Q&PIJCT{|1ykj&|9JdP&Yoo{T!+gIo73RSxpz1ZQ{wOx!$QrH`@CoVVU zP*|+vmBy`XYHZ7u#xoM>gzJop1IT{4$QXiB`6G=rZjPAcN&AEuY6$9VHks^Y^+9X`@p$wnGPW2 zxwgb#?E?rU@mJfoT_1l%$yNH9Hv2b%j=}*0x@|rejpVxSE8oSUcrEH8iaoONce{_N z@mIT#Q+vwpe?Fm~X=g{xvOdx^pr6HS*^TUtzuJww8-E3$uj%K`D{za$J`st%95vDm z_KNy=sxicGJ6#k*Nl|^K8P)l!5;bC)ac$Oo@*r^ko*h2i12g?Kmv%_@mBjW>Ge&au zYOK!;qc8n%$bB=7+3Z!7JIk2BUWwf|%b?#liT!J~F_5KeJ48{nyKkQz&$JxiN~k-W$%sKD=gl9?Kw39eFP#^|1QoUd{FO z?*r_I)y?q&~dgxV{keTi`+f)KAy-1G+wsv_$42*dOUu3I2LW2rjUN z;KmikJ~Y;MrRM3IR)R|ptB+P1HzT=dl@@~ARvE+a_Sq_92l{z%wecn1=C08d@U4Y9 zyapQeaID5!V+w;yw)z3%ZsDEr84zF0LLFmm)*I_h)covmBL|7G(P(iQ0M(mmFwYzK z*;yA1J%)=B=qhFSZJ0k{Um4&V1lxRJBLbVT>?;DBc%xnKxJ8XFLaNx{=Y*gRqbvdP6OV8Kbh_pwno2LmPc_!=R_n68C64 zHa}K#i?NiclIIK~1$VA>4d&~x5A5IoEEd0d<7uO|2XW?n7mJwcx~)c5vtU^E#8GLO zQWJCB;UNCG>Edj%d)iS8+3^<0=0RYfMqs?^|ALXKwrw>UsynwD?%3RCjP2sQssPKr zVI>Vu`d%NfdHf_K9r)F|@APrtKv5q2kaXnP=cPmH?@t>wmppF-V*hyF7|vKw)!b(E zV}3Pyo6!Yto3|NLd;wyWU{A1x>a^XsF}l%+WWs2+bc&-iI&J5qZJo4@leTu!R!-W| zNn1E+b0=-)q)nZ)&`ArNw26~8_DAgw^PP-FPTJ5(8#rm6lj5+O2C%-9)^pOjPFlxF zYdb02EL}e0q!12nUlBsLFo%OJV~_4IuHy95a4?hU=qacJh5$F<-5;o~-a2j+sJ<^6 z9g-FcV5)}ST1siQ{o&OYjgCo=5DIZ>dIP0)jamqFy29!DS{##Fg51Jk!YS|cbvYhv zFu3rDk$Dy3L$sG4Y(v*yf`vRb3k4y;fp8Ek6d)Et)EarMJ?=O-Df84$_4&{)G!hrbP{n3&J$=4IJtD+HL7WY>mO`fg&`El_LVyt2F5tLF=BxvK0{wAQV0^Q8` z2;$6zvs670%KYX3`7Ps zBFo^ipRma@jY5%W5ufN3_94_CDvJ2@w}n4?V>QAQ)m1Z+UhhwxsWMxjH9rL zaW%b%E)1j+dgh40^>*6#B)MG%7tD0KFc}l?AhCG|L5W`UJQ2sr2>~WZs3(TrbeJ^@ z909r1y6ODhkdXSMkiQKi99s*$8?n7T$Xop#jSCDynkY^Y7Ih?EAGQu$Cq z`6`u`zuGAuy@twHO(>sIX?fTol?=zC%Bi}tJ)E@C%J|8Z(&1p#l~lffDn~ODYFEdx zPJ3vHwTD+)dj!=kkIBj^-&kqo(Nwtx^$a3wtk%?BM@+iM1Db;5iV`9z4$9)T7fPzw zNs67M*$EDy(=UZWNj9Pkt%_kn;hF|p$wy>@oPZrj#b9_`?LC=>Q1S(65JpVk|HbJ>c-1>=vAWJkSA&Lw4LUSVnez zNtNBS9$8dt3p9KN-Fu*yazoQ(?^%)Tz-xK3Lm&SIvX26=mC?OC*&Std2HAU8Bs-X} zJlVm7|8uhUt(5HjDv})nSDx%3#s8M(k43+hwQnDWS3`1``O6er&6-_tw?q) z+=?3&7n(hgGmZ^=HmlZdDt^kzQDnd?er|&l znZsq6UEEM)W&~yu?8r)tp+qBh6kvnFSYFFl&^=9UCM=V7t$UjNRVE}QpB4=!&M~kj z!$I8q5XAK9;Hyp|zVt7GCE&|ejup^_-)^r2UCk?^s~Uces64)K<;!2d*PlXHi%QYe z(nc3}v22RgsyR_;$u=mRqW=J2zA}8}B;re7Pk3&8wX76htt#RxqXNEQ#Qd-E)w)uA zwW$POTBjxA3)K5l_;Q!wi>#7TqYK-BDlxh$@YjWv;_IS{_)4#UuhjoNzAmm5Uzb#Z zFU?Mg_yYC*6uxj1OI#jnCgRKe=kRq&rTDtEBEHfp;0w0$|C+xps}x_CSAs9iPKo#e z_5KXLfGyk`+dX()U;v(Q%Huj9?F^6lT<nx(ncoUfzn9vtmniFF<7gCNb3NU8deZ$8q`%AJCVGOwjVv73c2iV=%xc@O(R&7* zNH&@8aZv`x!QC%oPn#gPtiKeadgzU95c2)u=>LW8=^$>LUb=fkC`lRgs(H}B_3xh;1xXq|WIk$fP$Lmo1+nxl1%L;) z63jqxS8QXUSS&>bQzQkO?O zQl|(=>a@C(qEG#fIS9My6uZx?r8XWkLRf*>cF;gn0^m?w4IXF&vWsh{XdfVM8MLqk zIuqAKQj9p3_qp*Q&(jV4nP_&b(II0NE7axx3ZSts4;!mlrmj~8xIKUj3`DK|O0O4x z^p%l`DEiqTr}J(sl7|1|R}pYw`tDe*uZ($t6$Bj?8jgLQShuWomNjE+{$RXHqs=~PRK=QLtjW(td#}A1^1ol?u%SISS2&9y|NSC|-Qi!BgYzA{{uTTa z9jZF@a1;MV^_Vc*bhGJ^3_{SFie5sX%eU};ZsHJ2zDa_WWUsMYEzOQ8F^P9dbRXdFI*iMNnYS@M9CXaawyD;{R2gmS1&)@y#2%_uopotsRo>dtFY<&K30-p z&hbXWnMqSkmxpojjUf&9NyGH|{DENAwDhTRnw&20k~8E?IZMu#^W@!fzFZ*hkqhM_ zxmYfdN-mWpa+7=xXVG7f+vIk+L++GsiudIEa*zB#er0@Zd?-JX|2Ez;-Z%Cb9~d7R z9~pa%kBv`^PmO)Xe&aK>GRLf3Rm2l?mx3;rcP#1HeY`8WJqev}{M$N3Td6@N;^#1`?ict&g$ z&x;qtHnCmo5Ie;#@uGNEJSW}|FNv4ME8?HxRq-$Jns{BT7Y~a^#G~Rdu|bqX#U}BD z*esqD{}7Lhjp9M^kXR>v<)`>>{5$?VKf&jTy9KU#6ZeRPVv$%ZmIx)5ie+NCxL4dK z?iVY>O0i0;7Hh;>@ql=r@8KWtpV&$EGy8@8%AS^6a9I5)JI0Q)6YMu^JItwFr*7^f zvwmjvtn6Apc#N7!$)PH#-z#@rvtf;2jY(`Oo5rTIyVwjipUq^m*lae3&1HA9 zv)wg2jGe|V<3-~o<7ML&w)HUlQ7n|>~XW4V? zdG-R^!M;P`yixP~#!U(eoBeDwZPBt->oy&%&dcO-d9S=r-Y-|km2#C_D<6;#%7^4Sxn4dj zACZsB$K(e2xLhsQ$n(4Oyr56te*G`K;>xS8z9xD%pU)TYd${7u`MrEKU&Gh(2l##b ze!haQ317y4HmUvsdBieatK|c_X8FVp?vzJ&iYN4J(-R>*0am6J}r&+yc5&9i=v6B@v}! zK6QVgS<@gz^px7y$ZXhUifQ@r_7Bv@+78ME@b)CNX6?lsB7>sk2RTIH&DMc3WOFh3M2TqC$IrO(V_8V1RleHC;$nK{)oq#LNy*ykK~!z z>|u4Rf!V~f&a|o`b3Jb1FdKJ$*t9m&NY|lN4^;M(^zsm1g5)pw@h1lX(U{vhN$@^M zpb*+MybDe1XUcs*!#fwZL9exS|$mf8rD`4g}W(N zi$W)4Jxf{hD64C5y4QM+UgzS~8I&yyGrWPju!8Cc!!)n;JQbU5OM|(EUS?@=_zV zq=(!%lXym?PznO+!S~%Gx;gBQCw8z}+SIDn57EaN9mGue(bqCv#ppnmnqrk`bbe-J z9{MOl8I24ANYaB2^-88Yfxq~Ld&oZNMM-*W2S{%XTX|ev)WK?=c|5~i%jhxn&t_J$ zz9%x=-HaZ^Z?oY1Fmc=h-`s&_wTI}RS!8;TMrFFAS=UcU5N47dy%l!H5c{Kgr#*Uv z=vYR7V5a=&bD8cqM!!e2M2}`<%OLpzar< z!x=rmO!?8rGu?+6{Q}Vv{hE*&Q63Kc8VJzq*JGLP2>#+Tpvvsmem3q?>DM2QWw@U+ z`Ux`II6#KOe(^@+@ftbz%jDCzL4mP<58Tkm2OmJYPgL}GrG9tTE>|W$? z;PkLQLAD!NQye%c)1Afk?IKn<@LZr~6ZIic`O)c_?i@yUA}W3Mm!qQ0$aBDX9Eb^= z%WT`##Fkba>qWvJsAVm!#?3KmuQ9p}xiMYHIgin;jN-J9dpik`Ytnq8x2T$}K((lL z0i&DMrLC+R6NnyW^nKQ-MS6CRC`R`PvF~Z@-Eq9nj{mAaLRR6v7t+6G`nycekFL#h zzhU$pM5QYjP+61KXGYd}IBd8-4X}z{lU8TC-|`oAHUSrPs!$|)LS8rx79*24s>@qj z9qUZVbU$bGEo4qLa!jWC1+g2{tkzg35k0`@dS=RxF3NNdGV0e4*_$P8TAUeq6Is|! zwCO2;S-MScWV&DS7pqnIHgMARZEb~(RjO$l>yjoXMBRz5M0bG2d(RFrYt=CCpTWz~9 zFx$(>hA-e~8i6#vKucr1PQuh#szQ6Kabmgc&SZ2ZGG{vFyYknwh2$8h6v)Dx>dKGf&pWC(sUo7rBFY}M~}tKS0_s)}zVx^sws9{3W%4nLSmIWeQE z{K8+ChK1dyi7wL84$)^AC0j$|)uh6BDFBjHKAhcn!1 z{KYe@KW$y|Mk3_C!qz=4(yrs1w)-lhQ<*tkGB2^+Cs@i9HbYMp*3bbUKw>9nW~;

RW;w!ttbyK5mk)?EkpqJ7H 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 eymSC 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

SXMG(z7c}WwErEb&C4X> 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 %=Ie4g5E9#A= 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


IN?Eu;g7HtOe8^mw$cSdO6l>OJNGQ7%6!_gcM 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�+)au8_z3hMDvQXuE7Q}*NtfjZD^-8Oc>&r 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 I!1LqXZ=Y=R8UO$Q diff --git a/srml/assets/src/lib.rs b/srml/assets/src/lib.rs index c84620f4e763e..dd6446c958541 100644 --- a/srml/assets/src/lib.rs +++ b/srml/assets/src/lib.rs @@ -62,7 +62,7 @@ type AssetId = u32; decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Issue a new class of fungible assets. There are, and will only ever be, `total` /// such assets and they'll all belong to the `origin` initially. It will have an /// identifier `AssetId` instance: this will be specified in the `Issued` event. diff --git a/srml/balances/src/lib.rs b/srml/balances/src/lib.rs index deadbfd656523..c6e5d7729a722 100644 --- a/srml/balances/src/lib.rs +++ b/srml/balances/src/lib.rs @@ -136,7 +136,7 @@ pub trait Trait: system::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Transfer some liquid free balance to another staker. pub fn transfer( diff --git a/srml/contract/src/lib.rs b/srml/contract/src/lib.rs index e87c289ed82fa..cf1d2ac1db617 100644 --- a/srml/contract/src/lib.rs +++ b/srml/contract/src/lib.rs @@ -147,7 +147,7 @@ where decl_module! { /// Contracts module. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; // TODO: Change AccountId to staking::Address /// Make a call to a specified account, optionally transferring some balance. /// Make a call to a specified account, optionally transferring some balance. diff --git a/srml/council/src/motions.rs b/srml/council/src/motions.rs index 5316d5c68127d..ad0f5032cf1cf 100644 --- a/srml/council/src/motions.rs +++ b/srml/council/src/motions.rs @@ -67,7 +67,7 @@ decl_event!( decl_module! { pub struct Module for enum Call where origin: ::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn propose(origin, threshold: Compact, proposal: Box<::Proposal>) { let who = ensure_signed(origin)?; let threshold = threshold.into(); diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index 7fef771d38b84..bff476695b0e7 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -87,7 +87,7 @@ pub trait Trait: democracy::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Set candidate approvals. Approval slots stay valid as long as candidates in those slots /// are registered. diff --git a/srml/council/src/voting.rs b/srml/council/src/voting.rs index 9536fe5d35029..ffc340e4f9da4 100644 --- a/srml/council/src/voting.rs +++ b/srml/council/src/voting.rs @@ -33,7 +33,7 @@ pub trait Trait: CouncilTrait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn propose(origin, proposal: Box) { let who = ensure_signed(origin)?; diff --git a/srml/democracy/src/lib.rs b/srml/democracy/src/lib.rs index 2bf9e21ae74f4..599e15b0c08b9 100644 --- a/srml/democracy/src/lib.rs +++ b/srml/democracy/src/lib.rs @@ -87,7 +87,7 @@ pub trait Trait: balances::Trait + Sized { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Propose a sensitive action to be taken. fn propose( @@ -376,7 +376,7 @@ impl Module { .map(|a| (a.clone(), Self::vote_of((index, a)))) // ^^^ defensive only: all items come from `voters`; for an item to be in `voters` there must be a vote registered; qed .filter(|&(_, vote)| vote.is_aye() == approved) // Just the winning coins - { + { // now plus: the base lock period multiplied by the number of periods this voter offered to // lock should they win... let locked_until = now + lock_period * T::BlockNumber::sa((vote.multiplier()) as u64); diff --git a/srml/example/src/lib.rs b/srml/example/src/lib.rs index 31baac20f72e5..8b14aae6ee534 100644 --- a/srml/example/src/lib.rs +++ b/srml/example/src/lib.rs @@ -98,7 +98,9 @@ decl_module! { pub struct Module for enum Call where origin: T::Origin { /// Deposit one of this module's events by using the default implementation. /// It is also possible to provide a custom implementation. - fn deposit_event() = default; + /// For non-generic events, the generic parameter just needs to be dropped, so that it + /// looks like: `fn deposit_event() = default;`. + fn deposit_event() = default; /// This is your public interface. Be extremely careful. /// This is just a simple example of how to interact with the module from the external /// world. diff --git a/srml/grandpa/src/lib.rs b/srml/grandpa/src/lib.rs index de2d10b0f1b72..50ab852891915 100644 --- a/srml/grandpa/src/lib.rs +++ b/srml/grandpa/src/lib.rs @@ -176,7 +176,7 @@ decl_storage! { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Report some misbehaviour. fn report_misbehavior(origin, _report: Vec) { diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 8fc58feab2b30..6992a5311f9f1 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -89,7 +89,7 @@ pub trait Trait: timestamp::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Sets the session key of `_validator` to `_key`. This doesn't take effect until the next /// session. diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 208c14fc0f1bf..c5ae4982f35ac 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -100,7 +100,7 @@ pub trait Trait: balances::Trait + session::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Declare the desire to stake for the transactor. /// diff --git a/srml/sudo/src/lib.rs b/srml/sudo/src/lib.rs index c814224aa5a0c..ca4859a4d3671 100644 --- a/srml/sudo/src/lib.rs +++ b/srml/sudo/src/lib.rs @@ -49,7 +49,7 @@ pub trait Trait: consensus::Trait + system::Trait { decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn sudo(origin, proposal: Box) { // This is a public call, so we ensure that the origin is some signed account. diff --git a/srml/support/src/dispatch.rs b/srml/support/src/dispatch.rs index 4d0815c41f5a1..f751a5293eedf 100644 --- a/srml/support/src/dispatch.rs +++ b/srml/support/src/dispatch.rs @@ -104,14 +104,14 @@ macro_rules! decl_module { { $( $on_finalise:tt )* } [ $($t:tt)* ] $(#[doc = $doc_attr:tt])* - $vis:vis fn deposit_event() = default; + $vis:vis fn deposit_event $(<$dpeg:ident>)* () = default; $($rest:tt)* ) => { decl_module!(@normalize $(#[$attr])* pub struct $mod_type<$trait_instance: $trait_name> for enum $call_type where origin: $origin_type, system = $system - { $vis fn deposit_event() = default; } + { $vis fn deposit_event $(<$dpeg>)* () = default; } { $( $on_finalise )* } [ $($t)* ] $($rest)* @@ -125,14 +125,16 @@ macro_rules! decl_module { { $( $on_finalise:tt )* } [ $($t:tt)* ] $(#[doc = $doc_attr:tt])* - $vis:vis fn deposit_event($($param_name:ident : $param:ty),* ) { $( $impl:tt )* } + $vis:vis fn deposit_event $(<$dpeg:ident>)* ( + $($param_name:ident : $param:ty),* + ) { $( $impl:tt )* } $($rest:tt)* ) => { decl_module!(@normalize $(#[$attr])* pub struct $mod_type<$trait_instance: $trait_name> for enum $call_type where origin: $origin_type, system = $system - { $vis fn deposit_event($( $param_name: $param ),* ) { $( $impl )* } } + { $vis fn deposit_event $(<$dpeg>)* ($( $param_name: $param ),* ) { $( $impl )* } } { $( $on_finalise )* } [ $($t)* ] $($rest)* @@ -296,10 +298,26 @@ macro_rules! decl_module { $system:ident; ) => {}; + // Non-generic event (@impl_deposit_event $module:ident<$trait_instance:ident: $trait_name:ident>; $system:ident; $vis:vis fn deposit_event() = default; + ) => { + impl<$trait_instance: $trait_name> $module<$trait_instance> { + $vis fn deposit_event(event: Event) { + <$system::Module<$trait_instance>>::deposit_event( + <$trait_instance as $trait_name>::Event::from(event).into() + ); + } + } + }; + + // Generic event + (@impl_deposit_event + $module:ident<$trait_instance:ident: $trait_name:ident>; + $system:ident; + $vis:vis fn deposit_event<$ignore:ident>() = default; ) => { impl<$trait_instance: $trait_name> $module<$trait_instance> { $vis fn deposit_event(event: Event<$trait_instance>) { diff --git a/srml/treasury/src/lib.rs b/srml/treasury/src/lib.rs index abbe0e78995e5..c919c5e959973 100644 --- a/srml/treasury/src/lib.rs +++ b/srml/treasury/src/lib.rs @@ -68,7 +68,7 @@ type ProposalIndex = u32; decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Put forward a suggestion for spending. A deposit proportional to the value /// is reserved and slashed if the proposal is rejected. It is returned once the /// proposal is awarded. diff --git a/srml/upgrade-key/src/lib.rs b/srml/upgrade-key/src/lib.rs index 3957b080d382a..2b4470a9f38e1 100644 --- a/srml/upgrade-key/src/lib.rs +++ b/srml/upgrade-key/src/lib.rs @@ -46,7 +46,7 @@ pub trait Trait: consensus::Trait + system::Trait { decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn upgrade(origin, new: Vec) { // This is a public call, so we ensure that the origin is some signed account. let _sender = ensure_signed(origin)?; From b5e2c2569cc58165a38c82a2a83745a3ff9086a8 Mon Sep 17 00:00:00 2001 From: kyegupov Date: Sun, 23 Dec 2018 19:22:45 +0000 Subject: [PATCH 07/44] Improved test for conditional panic (#1320) --- core/executor/src/wasm_executor.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/executor/src/wasm_executor.rs b/core/executor/src/wasm_executor.rs index 7480b6195014a..40357946f023d 100644 --- a/core/executor/src/wasm_executor.rs +++ b/core/executor/src/wasm_executor.rs @@ -733,6 +733,9 @@ mod tests { let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_panic", &[]); assert!(output.is_err()); + let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_conditional_panic", &[]); + assert_eq!(output.unwrap(), vec![0u8; 0]); + let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_conditional_panic", &[2]); assert!(output.is_err()); } From ff293ec9ae25c5b84c39c0419235a691454fcf06 Mon Sep 17 00:00:00 2001 From: toxotguo Date: Thu, 27 Dec 2018 20:35:05 +0800 Subject: [PATCH 08/44] fix pruning arg type (#1332) --- core/cli/src/params.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/cli/src/params.rs b/core/cli/src/params.rs index 3ce7de79dedfe..ed22438fdf37a 100644 --- a/core/cli/src/params.rs +++ b/core/cli/src/params.rs @@ -97,7 +97,7 @@ pub struct CoreParams { /// Specify the pruning mode, a number of blocks to keep or 'archive'. Default is 256. #[structopt(long = "pruning", value_name = "PRUNING_MODE")] - pruning: Option, + pruning: Option, /// The human-readable name for this node, as reported to the telemetry server, if enabled #[structopt(long = "name", value_name = "NAME")] From 19238cf64d52c3b47cfde571eb5de37740e2cb55 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Sat, 29 Dec 2018 16:08:20 +0300 Subject: [PATCH 09/44] Make sure displaced leaves are removed from the db (#1338) --- core/client/src/leaves.rs | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/core/client/src/leaves.rs b/core/client/src/leaves.rs index a41f91933c076..bc1551e6fadc6 100644 --- a/core/client/src/leaves.rs +++ b/core/client/src/leaves.rs @@ -64,6 +64,8 @@ pub struct DisplacedLeaf { #[derive(Debug, Clone, PartialEq, Eq)] pub struct LeafSet { storage: BTreeSet>, + pending_added: Vec>, + pending_removed: Vec, } impl LeafSet where @@ -73,7 +75,9 @@ impl LeafSet where /// Construct a new, blank leaf set. pub fn new() -> Self { Self { - storage: BTreeSet::new() + storage: BTreeSet::new(), + pending_added: Vec::new(), + pending_removed: Vec::new(), } } @@ -94,7 +98,11 @@ impl LeafSet where }; storage.insert(LeafSetItem { hash, number }); } - Ok(Self { storage }) + Ok(Self { + storage, + pending_added: Vec::new(), + pending_removed: Vec::new(), + }) } /// update the leaf list on import. returns a displaced leaf if there was one. @@ -102,12 +110,13 @@ impl LeafSet where // avoid underflow for genesis. let displaced = if number != N::zero() { let displaced = LeafSetItem { - hash: parent_hash, + hash: parent_hash.clone(), number: number.clone() - N::one(), }; let was_displaced = self.storage.remove(&displaced); if was_displaced { + self.pending_removed.push(parent_hash); Some(DisplacedLeaf { new_hash: hash.clone(), displaced, @@ -119,7 +128,9 @@ impl LeafSet where None }; - self.storage.insert(LeafSetItem { hash, number }); + let item = LeafSetItem { hash, number }; + self.storage.insert(item.clone()); + self.pending_added.push(item); displaced } @@ -128,6 +139,8 @@ impl LeafSet where let new_number = displaced.displaced.number.clone() + N::one(); self.storage.remove(&LeafSetItem { hash: displaced.new_hash, number: new_number }); self.storage.insert(displaced.displaced); + self.pending_added.clear(); + self.pending_removed.clear(); } /// currently since revert only affects the canonical chain @@ -148,13 +161,18 @@ impl LeafSet where } /// Write the leaf list to the database transaction. - pub fn prepare_transaction(&self, tx: &mut DBTransaction, column: Option, prefix: &[u8]) { + pub fn prepare_transaction(&mut self, tx: &mut DBTransaction, column: Option, prefix: &[u8]) { let mut buf = prefix.to_vec(); - for &LeafSetItem { ref hash, ref number } in &self.storage { + for LeafSetItem { hash, number } in self.pending_added.drain(..) { hash.using_encoded(|s| buf.extend(s)); tx.put_vec(column, &buf[..], number.encode()); buf.truncate(prefix.len()); // reuse allocation. } + for hash in self.pending_removed.drain(..) { + hash.using_encoded(|s| buf.extend(s)); + tx.delete(column, &buf[..]); + buf.truncate(prefix.len()); // reuse allocation. + } } } From 60e84f36fab233adc31ed314160c23eb472d1618 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Sat, 29 Dec 2018 15:29:09 +0100 Subject: [PATCH 10/44] refactor aura slot timers a bit, add additional guards (#1303) --- core/consensus/aura/src/lib.rs | 240 +++++++++++++++---------------- core/consensus/aura/src/slots.rs | 122 ++++++++++++++++ 2 files changed, 234 insertions(+), 128 deletions(-) create mode 100644 core/consensus/aura/src/slots.rs diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index c9692cbde22c8..e6a16df79bcdc 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -38,11 +38,12 @@ extern crate substrate_consensus_common as consensus_common; extern crate tokio; extern crate sr_version as runtime_version; extern crate substrate_network as network; -extern crate futures; extern crate parking_lot; #[macro_use] extern crate log; +#[macro_use] +extern crate futures; #[cfg(test)] extern crate substrate_keyring as keyring; @@ -53,10 +54,10 @@ extern crate substrate_test_client as test_client; #[cfg(test)] extern crate env_logger; -pub use aura_primitives::*; +mod slots; use std::sync::Arc; -use std::time::{Duration, Instant}; +use std::time::Duration; use codec::Encode; use consensus_common::{Authorities, BlockImport, Environment, Proposer}; @@ -69,10 +70,11 @@ use network::import_queue::{Verifier, BasicQueue}; use primitives::{AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; -use tokio::timer::{Delay, Timeout}; +use tokio::timer::Timeout; use api::AuraApi; +use slots::Slots; -pub use aura_primitives::AuraConsensusData; +pub use aura_primitives::*; pub use consensus_common::SyncOracle; /// A handle to the network. This is generally implemented by providing some @@ -221,135 +223,117 @@ pub fn start_aura( let sync_oracle = sync_oracle.clone(); let SlotDuration(slot_duration) = slot_duration; - fn time_until_next(now: Duration, slot_duration: u64) -> Duration { - let remaining_full_secs = slot_duration - (now.as_secs() % slot_duration) - 1; - let remaining_nanos = 1_000_000_000 - now.subsec_nanos(); - Duration::new(remaining_full_secs, remaining_nanos) - }; + // rather than use a timer interval, we schedule our waits ourselves + Slots::new(slot_duration) + .map_err(|e| debug!(target: "aura", "Faulty timer: {:?}", e)) + .for_each(move |slot_info| { + let client = client.clone(); + let pair = pair.clone(); + let block_import = block_import.clone(); + let env = env.clone(); + let sync_oracle = sync_oracle.clone(); + let public_key = pair.public(); + + // only propose when we are not syncing. + if sync_oracle.is_major_syncing() { + debug!(target: "aura", "Skipping proposal slot due to sync."); + return Either::B(future::ok(())); + } + + let (timestamp, slot_num) = (slot_info.timestamp, slot_info.number); + let chain_head = match client.best_block_header() { + Ok(x) => x, + Err(e) => { + warn!(target:"aura", "Unable to author block in slot {}. \ + no best block header: {:?}", slot_num, e); + return Either::B(future::ok(())) + } + }; - // rather than use an interval, we schedule our waits ourselves - future::loop_fn((), move |()| { - let next_slot_start = duration_now() - .map(|now| Instant::now() + time_until_next(now, slot_duration)) - .unwrap_or_else(|| Instant::now()); - - let client = client.clone(); - let pair = pair.clone(); - let block_import = block_import.clone(); - let env = env.clone(); - let sync_oracle = sync_oracle.clone(); - let public_key = pair.public(); - - Delay::new(next_slot_start) - .map_err(|e| debug!(target: "aura", "Faulty timer: {:?}", e)) - .and_then(move |_| { - // only propose when we are not syncing. - if sync_oracle.is_major_syncing() { - debug!(target: "aura", "Skipping proposal slot due to sync."); + let authorities = match client.authorities(&BlockId::Hash(chain_head.hash())) { + Ok(authorities) => authorities, + Err(e) => { + warn!("Unable to fetch authorities at\ + block {:?}: {:?}", chain_head.hash(), e); return Either::B(future::ok(())); } + }; - let pair = pair.clone(); - let (timestamp, slot_num) = match timestamp_and_slot_now(slot_duration) { - Some(n) => n, - None => return Either::B(future::err(())), - }; - - let chain_head = match client.best_block_header() { - Ok(x) => x, - Err(e) => { - warn!(target:"aura", "Unable to author block in slot {}. \ - no best block header: {:?}", slot_num, e); - return Either::B(future::ok(())) - } - }; - - let authorities = match client.authorities(&BlockId::Hash(chain_head.hash())) { - Ok(authorities) => authorities, - Err(e) => { - warn!("Unable to fetch authorities at\ - block {:?}: {:?}", chain_head.hash(), e); - return Either::B(future::ok(())); - } - }; - - let proposal_work = match slot_author(slot_num, &authorities) { - None => return Either::B(future::ok(())), - Some(author) => if author.0 == public_key.0 { - debug!(target: "aura", "Starting authorship at slot {}; timestamp = {}", - slot_num, timestamp); - - // we are the slot author. make a block and sign it. - let proposer = match env.init(&chain_head, &authorities, pair.clone()) { - Ok(p) => p, - Err(e) => { - warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); - return Either::B(future::ok(())) - } - }; - - let consensus_data = AuraConsensusData { - timestamp, - slot: slot_num, - slot_duration, - }; - - // deadline our production to approx. the end of the - // slot - Timeout::new( - proposer.propose(consensus_data).into_future(), - time_until_next(Duration::from_secs(timestamp), slot_duration), - ) - } else { - return Either::B(future::ok(())); - } - }; - - let block_import = block_import.clone(); - Either::A(proposal_work - .map(move |b| { - // minor hack since we don't have access to the timestamp - // that is actually set by the proposer. - let slot_after_building = slot_now(slot_duration); - if slot_after_building != Some(slot_num) { - info!("Discarding proposal for slot {}; block production took too long", - slot_num); - return + let proposal_work = match slot_author(slot_num, &authorities) { + None => return Either::B(future::ok(())), + Some(author) => if author.0 == public_key.0 { + debug!(target: "aura", "Starting authorship at slot {}; timestamp = {}", + slot_num, timestamp); + + // we are the slot author. make a block and sign it. + let proposer = match env.init(&chain_head, &authorities, pair.clone()) { + Ok(p) => p, + Err(e) => { + warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); + return Either::B(future::ok(())) } + }; + + let consensus_data = AuraConsensusData { + timestamp, + slot: slot_num, + slot_duration, + }; + + // deadline our production to approx. the end of the + // slot + Timeout::new( + proposer.propose(consensus_data).into_future(), + slot_info.remaining_duration(), + ) + } else { + return Either::B(future::ok(())); + } + }; - let (header, body) = b.deconstruct(); - let pre_hash = header.hash(); - let parent_hash = header.parent_hash().clone(); - - // sign the pre-sealed hash of the block and then - // add it to a digest item. - let to_sign = (slot_num, pre_hash).encode(); - let signature = pair.sign(&to_sign[..]); - let item = as CompatibleDigestItem>::aura_seal( - slot_num, - signature, - ); - - let import_block = ImportBlock { - origin: BlockOrigin::Own, - header, - justification: None, - post_digests: vec![item], - body: Some(body), - finalized: false, - auxiliary: Vec::new(), - }; - - if let Err(e) = block_import.import_block(import_block, None) { - warn!(target: "aura", "Error with block built on {:?}: {:?}", - parent_hash, e); - } - }) - .map_err(|e| warn!("Failed to construct block: {:?}", e)) - ) - }) - .map(|_| future::Loop::Continue(())) - }) + let block_import = block_import.clone(); + Either::A(proposal_work + .map(move |b| { + // minor hack since we don't have access to the timestamp + // that is actually set by the proposer. + let slot_after_building = slot_now(slot_duration); + if slot_after_building != Some(slot_num) { + info!("Discarding proposal for slot {}; block production took too long", + slot_num); + return + } + + let (header, body) = b.deconstruct(); + let pre_hash = header.hash(); + let parent_hash = header.parent_hash().clone(); + + // sign the pre-sealed hash of the block and then + // add it to a digest item. + let to_sign = (slot_num, pre_hash).encode(); + let signature = pair.sign(&to_sign[..]); + let item = as CompatibleDigestItem>::aura_seal( + slot_num, + signature, + ); + + let import_block = ImportBlock { + origin: BlockOrigin::Own, + header, + justification: None, + post_digests: vec![item], + body: Some(body), + finalized: false, + auxiliary: Vec::new(), + }; + + if let Err(e) = block_import.import_block(import_block, None) { + warn!(target: "aura", "Error with block built on {:?}: {:?}", + parent_hash, e); + } + }) + .map_err(|e| warn!("Failed to construct block: {:?}", e)) + ) + }) }; let work = future::loop_fn((), move |()| { diff --git a/core/consensus/aura/src/slots.rs b/core/consensus/aura/src/slots.rs new file mode 100644 index 0000000000000..37db3b17636b4 --- /dev/null +++ b/core/consensus/aura/src/slots.rs @@ -0,0 +1,122 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! Utility stream for yielding slots in a loop. +//! +//! This is used instead of `tokio_timer::Interval` because it was unreliable. + +use std::time::{Instant, Duration}; +use tokio::timer::Delay; +use futures::prelude::*; + +/// Returns the duration until the next slot, based on current duration since +pub(crate) fn time_until_next(now: Duration, slot_duration: u64) -> Duration { + let remaining_full_secs = slot_duration - (now.as_secs() % slot_duration) - 1; + let remaining_nanos = 1_000_000_000 - now.subsec_nanos(); + Duration::new(remaining_full_secs, remaining_nanos) +} + +/// Information about a slot. +#[derive(Debug, Clone)] +pub(crate) struct SlotInfo { + /// The slot number. + pub(crate) number: u64, + /// Current timestamp. + pub(crate) timestamp: u64, + /// The instant at which the slot ends. + pub(crate) ends_at: Instant, +} + +impl SlotInfo { + /// Yields the remaining duration in the slot. + pub(crate) fn remaining_duration(&self) -> Duration { + let now = Instant::now(); + if now < self.ends_at { + self.ends_at.duration_since(now) + } else { + Duration::from_secs(0) + } + } +} + +/// A stream that returns every time there is a new slot. +pub(crate) struct Slots { + last_slot: u64, + slot_duration: u64, + inner_delay: Option, +} + +impl Slots { + /// Create a new `slots` stream. + pub(crate) fn new(slot_duration: u64) -> Self { + Slots { + last_slot: 0, + slot_duration, + inner_delay: None, + } + } +} + +impl Stream for Slots { + type Item = SlotInfo; + type Error = tokio::timer::Error; + + fn poll(&mut self) -> Poll, Self::Error> { + let slot_duration = self.slot_duration; + self.inner_delay = match self.inner_delay.take() { + None => { + // schedule wait. + let wait_until = match ::duration_now() { + None => return Ok(Async::Ready(None)), + Some(now) => Instant::now() + time_until_next(now, slot_duration), + }; + + Some(Delay::new(wait_until)) + } + Some(d) => Some(d), + }; + + if let Some(ref mut inner_delay) = self.inner_delay { + try_ready!(inner_delay.poll()); + } + + // timeout has fired. + + let (timestamp, slot_num) = match ::timestamp_and_slot_now(slot_duration) { + None => return Ok(Async::Ready(None)), + Some(x) => x, + }; + + // reschedule delay for next slot. + let ends_at = Instant::now() + + time_until_next(Duration::from_secs(timestamp), slot_duration); + self.inner_delay = Some(Delay::new(ends_at)); + + // never yield the same slot twice. + if slot_num > self.last_slot { + self.last_slot = slot_num; + + Ok(Async::Ready(Some(SlotInfo { + number: slot_num, + timestamp, + ends_at, + }))) + } else { + // re-poll until we get a new slot. + self.poll() + } + } +} From 52996a03121fe517a7382a861e65cbd9817e89dd Mon Sep 17 00:00:00 2001 From: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Date: Mon, 31 Dec 2018 19:33:21 +0800 Subject: [PATCH 11/44] move import queue to consensus-common (#1282) --- Cargo.lock | 26 ++ core/client/src/client.rs | 13 +- core/consensus/aura/Cargo.toml | 5 +- core/consensus/aura/src/lib.rs | 10 +- core/consensus/common/Cargo.toml | 5 + core/consensus/common/src/error.rs | 6 + .../common}/src/import_queue.rs | 439 +++--------------- core/consensus/common/src/lib.rs | 5 + core/finality-grandpa/src/lib.rs | 70 ++- core/finality-grandpa/src/tests.rs | 6 +- core/network/src/chain.rs | 8 +- core/network/src/lib.rs | 1 - core/network/src/protocol.rs | 7 +- core/network/src/service.rs | 61 ++- core/network/src/sync.rs | 36 +- core/network/src/test/block_import.rs | 171 +++++++ core/network/src/test/mod.rs | 167 ++++++- core/service/src/chain_ops.rs | 12 +- core/service/src/components.rs | 7 +- core/test-client/src/client_ext.rs | 12 +- 20 files changed, 594 insertions(+), 473 deletions(-) rename core/{network => consensus/common}/src/import_queue.rs (51%) create mode 100644 core/network/src/test/block_import.rs diff --git a/Cargo.lock b/Cargo.lock index a64f828087df4..faf20461400f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2122,6 +2122,15 @@ dependencies = [ "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.2.14" @@ -2145,6 +2154,18 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot_core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -3451,11 +3472,14 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", + "substrate-test-client 0.1.0", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4904,8 +4928,10 @@ dependencies = [ "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" +"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 647e48405a2a6..7f8c81d5abea5 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -25,7 +25,7 @@ use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, }; -use consensus::{ImportBlock, ImportResult, BlockOrigin}; +use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, ApiRef, ProvideRuntimeApi, Digest, DigestItem, @@ -1019,7 +1019,7 @@ impl consensus::BlockImport for Client E: CallExecutor + Clone + Send + Sync, Block: BlockT, { - type Error = Error; + type Error = ConsensusError; /// Import a checked and validated block. If a justification is provided in /// `ImportBlock` then `finalized` *must* be true. @@ -1044,9 +1044,10 @@ impl consensus::BlockImport for Client let parent_hash = header.parent_hash().clone(); - match self.backend.blockchain().status(BlockId::Hash(parent_hash))? { - blockchain::BlockStatus::InChain => {}, - blockchain::BlockStatus::Unknown => return Ok(ImportResult::UnknownParent), + match self.backend.blockchain().status(BlockId::Hash(parent_hash)) { + Ok(blockchain::BlockStatus::InChain) => {}, + Ok(blockchain::BlockStatus::Unknown) => return Ok(ImportResult::UnknownParent), + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()) } let import_headers = if post_digests.is_empty() { @@ -1081,7 +1082,7 @@ impl consensus::BlockImport for Client "best" => ?hash, "origin" => ?origin ); - result.map_err(|e| e.into()) + result.map_err(|e| ConsensusErrorKind::ClientImport(e.to_string()).into()) } } diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index 7994afc9848fd..dee59d8f06abc 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -21,14 +21,11 @@ parking_lot = "0.4" error-chain = "0.12" log = "0.3" substrate-consensus-common = { path = "../common" } -substrate-network = { path = "../../network" } [dev-dependencies] substrate-keyring = { path = "../../keyring" } substrate-executor = { path = "../../executor" } +substrate-network = { path = "../../network", features = ["test-helpers"]} substrate-service = { path = "../../service" } substrate-test-client = { path = "../../test-client" } env_logger = "0.4" - -[target.'cfg(test)'.dependencies] -substrate-network = { path = "../../network", features = ["test-helpers"], optional = true } diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index e6a16df79bcdc..911ae6304a320 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -37,7 +37,6 @@ extern crate substrate_consensus_aura_primitives as aura_primitives; extern crate substrate_consensus_common as consensus_common; extern crate tokio; extern crate sr_version as runtime_version; -extern crate substrate_network as network; extern crate parking_lot; #[macro_use] @@ -48,6 +47,8 @@ extern crate futures; #[cfg(test)] extern crate substrate_keyring as keyring; #[cfg(test)] +extern crate substrate_network as network; +#[cfg(test)] extern crate substrate_service as service; #[cfg(test)] extern crate substrate_test_client as test_client; @@ -60,13 +61,13 @@ use std::sync::Arc; use std::time::Duration; use codec::Encode; -use consensus_common::{Authorities, BlockImport, Environment, Proposer}; +use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer}; +use consensus_common::import_queue::{Verifier, BasicQueue}; use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; use consensus_common::{ImportBlock, BlockOrigin}; use runtime_primitives::{generic, generic::BlockId, Justification, BasicInherentData}; use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, ProvideRuntimeApi}; -use network::import_queue::{Verifier, BasicQueue}; use primitives::{AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; @@ -214,7 +215,6 @@ pub fn start_aura( Error: ::std::error::Error + Send + 'static + From<::consensus_common::Error>, { let make_authorship = move || { - use futures::future; let client = client.clone(); let pair = local_key.clone(); @@ -596,7 +596,7 @@ pub fn import_queue( make_inherent: MakeInherent, ) -> AuraImportQueue where B: Block, - C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, + C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, DigestItemFor: CompatibleDigestItem, E: ExtraVerification, diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index 08689721a03fc..7f95b39a14e7e 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -5,6 +5,8 @@ authors = ["Parity Technologies "] description = "Common utilities for substrate consensus" [dependencies] +log = "0.4" +parking_lot = "0.7" substrate-primitives = { path= "../../primitives" } error-chain = "0.12" futures = "0.1" @@ -13,3 +15,6 @@ sr-primitives = { path = "../../sr-primitives" } tokio = "0.1.7" parity-codec = "2.1" parity-codec-derive = "2.0" + +[dev-dependencies] +substrate-test-client = { path = "../../test-client" } diff --git a/core/consensus/common/src/error.rs b/core/consensus/common/src/error.rs index ccf57adb9f1be..14a3fb81e1993 100644 --- a/core/consensus/common/src/error.rs +++ b/core/consensus/common/src/error.rs @@ -84,5 +84,11 @@ error_chain! { description("Other error") display("Other error: {}", e.description()) } + + /// Error from the client while importing + ClientImport(reason: String) { + description("Import failed"), + display("Import failed: {}", reason), + } } } diff --git a/core/network/src/import_queue.rs b/core/consensus/common/src/import_queue.rs similarity index 51% rename from core/network/src/import_queue.rs rename to core/consensus/common/src/import_queue.rs index 58919ea75a789..3a048f781a461 100644 --- a/core/network/src/import_queue.rs +++ b/core/consensus/common/src/import_queue.rs @@ -24,30 +24,38 @@ //! The `BasicQueue` and `BasicVerifier` traits allow serial queues to be //! instantiated simply. +use block_import::{ImportBlock, BlockImport, ImportResult, BlockOrigin}; use std::collections::{HashSet, VecDeque}; -use std::sync::{Arc, Weak}; +use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use parking_lot::{Condvar, Mutex, RwLock}; -use network_libp2p::{NodeIndex, Severity}; use primitives::AuthorityId; use runtime_primitives::Justification; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}; -pub use blocks::BlockData; -use client::error::Error as ClientError; -use error::{ErrorKind, Error}; -use protocol::Context; -use service::ExecuteInContext; -use sync::ChainSync; - -pub use consensus::{ImportBlock, BlockImport, ImportResult, BlockOrigin}; +use error::Error as ConsensusError; /// Shared block import struct used by the queue. -pub type SharedBlockImport = Arc + Send + Sync>; - -#[cfg(any(test, feature = "test-helpers"))] -use std::cell::RefCell; +pub type SharedBlockImport = Arc + Send + Sync>; + +/// Maps to the Origin used by the network. +pub type Origin = usize; + +/// Block data used by the queue. +#[derive(Debug, PartialEq, Eq, Clone)] +pub struct IncomingBlock { + /// Block header hash. + pub hash: ::Hash, + /// Block header if requested. + pub header: Option<::Header>, + /// Block body if requested. + pub body: Option::Extrinsic>>, + /// Justification if requested. + pub justification: Option, + /// The peer, we received this from + pub origin: Option, +} /// Verify a justification of a block pub trait Verifier: Send + Sync + Sized { @@ -69,7 +77,7 @@ pub trait ImportQueue: Send + Sync { /// /// This is called automatically by the network service when synchronization /// begins. - fn start(&self, _link: L) -> Result<(), Error> where + fn start(&self, _link: L) -> Result<(), std::io::Error> where Self: Sized, L: 'static + Link, { @@ -84,7 +92,7 @@ pub trait ImportQueue: Send + Sync { /// Is block with given hash currently in the queue. fn is_importing(&self, hash: &B::Hash) -> bool; /// Import bunch of blocks. - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>); + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>); } /// Import queue status. It isn't completely accurate. @@ -105,9 +113,9 @@ pub struct BasicQueue> { } /// Locks order: queue, queue_blocks, best_importing_number -struct AsyncImportQueueData { +pub struct AsyncImportQueueData { signal: Condvar, - queue: Mutex>)>>, + queue: Mutex>)>>, queue_blocks: RwLock>, best_importing_number: RwLock<<::Header as HeaderT>::Number>, is_stopping: AtomicBool, @@ -126,7 +134,8 @@ impl> BasicQueue { } impl AsyncImportQueueData { - fn new() -> Self { + /// Instantiate a new async import queue data. + pub fn new() -> Self { Self { signal: Default::default(), queue: Mutex::new(VecDeque::new()), @@ -135,13 +144,18 @@ impl AsyncImportQueueData { is_stopping: Default::default(), } } + + // Signals to stop importing new blocks. + pub fn stop(&self) { + self.is_stopping.store(true, Ordering::SeqCst); + } } impl> ImportQueue for BasicQueue { fn start>( &self, link: L, - ) -> Result<(), Error> { + ) -> Result<(), std::io::Error> { debug_assert!(self.handle.lock().is_none()); let qdata = self.data.clone(); @@ -149,7 +163,7 @@ impl> ImportQueue for BasicQueue { let block_import = self.block_import.clone(); *self.handle.lock() = Some(::std::thread::Builder::new().name("ImportQueue".into()).spawn(move || { import_thread(block_import, link, qdata, verifier) - }).map_err(|err| Error::from(ErrorKind::Io(err)))?); + })?); Ok(()) } @@ -168,7 +182,7 @@ impl> ImportQueue for BasicQueue { { // Perform storing the stop flag and signalling under a single lock. let _queue_lock = self.data.queue.lock(); - self.data.is_stopping.store(true, Ordering::SeqCst); + self.data.stop(); self.data.signal.notify_one(); } @@ -187,7 +201,7 @@ impl> ImportQueue for BasicQueue { self.data.queue_blocks.read().contains(hash) } - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { if blocks.is_empty() { return; } @@ -197,8 +211,8 @@ impl> ImportQueue for BasicQueue { let mut queue = self.data.queue.lock(); let mut queue_blocks = self.data.queue_blocks.write(); let mut best_importing_number = self.data.best_importing_number.write(); - let new_best_importing_number = blocks.last().and_then(|b| b.block.header.as_ref().map(|h| h.number().clone())).unwrap_or_else(|| Zero::zero()); - queue_blocks.extend(blocks.iter().map(|b| b.block.hash.clone())); + let new_best_importing_number = blocks.last().and_then(|b| b.header.as_ref().map(|h| h.number().clone())).unwrap_or_else(|| Zero::zero()); + queue_blocks.extend(blocks.iter().map(|b| b.hash.clone())); if new_best_importing_number > *best_importing_number { *best_importing_number = new_best_importing_number; } @@ -241,7 +255,7 @@ fn import_thread, V: Verifier>( } }; - let blocks_hashes: Vec = new_blocks.1.iter().map(|b| b.block.hash.clone()).collect(); + let blocks_hashes: Vec = new_blocks.1.iter().map(|b| b.hash.clone()).collect(); if !import_many_blocks( &*block_import, &link, @@ -269,68 +283,16 @@ pub trait Link: Send { /// Maintain sync. fn maintain_sync(&self) { } /// Disconnect from peer. - fn useless_peer(&self, _who: NodeIndex, _reason: &str) { } + fn useless_peer(&self, _who: Origin, _reason: &str) { } /// Disconnect from peer and restart sync. - fn note_useless_and_restart_sync(&self, _who: NodeIndex, _reason: &str) { } + fn note_useless_and_restart_sync(&self, _who: Origin, _reason: &str) { } /// Restart sync. fn restart(&self) { } } -/// A link implementation that does nothing. -pub struct NoopLink; - -impl Link for NoopLink { } - -/// A link implementation that connects to the network. -pub struct NetworkLink> { - /// The chain-sync handle - pub(crate) sync: Weak>>, - /// Network context. - pub(crate) context: Weak, -} - -impl> NetworkLink { - /// Execute closure with locked ChainSync. - fn with_sync, &mut Context)>(&self, closure: F) { - if let (Some(sync), Some(service)) = (self.sync.upgrade(), self.context.upgrade()) { - service.execute_in_context(move |protocol| { - let mut sync = sync.write(); - closure(&mut *sync, protocol) - }); - } - } -} - -impl> Link for NetworkLink { - fn block_imported(&self, hash: &B::Hash, number: NumberFor) { - self.with_sync(|sync, _| sync.block_imported(&hash, number)) - } - - fn maintain_sync(&self) { - self.with_sync(|sync, protocol| sync.maintain_sync(protocol)) - } - - fn useless_peer(&self, who: NodeIndex, reason: &str) { - trace!(target:"sync", "Useless peer {}, {}", who, reason); - self.with_sync(|_, protocol| protocol.report_peer(who, Severity::Useless(reason))) - } - - fn note_useless_and_restart_sync(&self, who: NodeIndex, reason: &str) { - trace!(target:"sync", "Bad peer {}, {}", who, reason); - self.with_sync(|sync, protocol| { - protocol.report_peer(who, Severity::Useless(reason)); // is this actually malign or just useless? - sync.restart(protocol); - }) - } - - fn restart(&self) { - self.with_sync(|sync, protocol| sync.restart(protocol)) - } -} - /// Block import successful result. #[derive(Debug, PartialEq)] -enum BlockImportResult { +pub enum BlockImportResult { /// Imported known block. ImportedKnown(H, N), /// Imported unknown block. @@ -339,13 +301,13 @@ enum BlockImportResult), + IncompleteHeader(Option), /// Block verification failed, can't be imported - VerificationFailed(Option, String), + VerificationFailed(Option, String), /// Block is known to be Bad - BadBlock(Option), + BadBlock(Option), /// Block has an unknown parent UnknownParent, /// Other Error. @@ -353,11 +315,11 @@ enum BlockImportError { } /// Import a bunch of blocks. -fn import_many_blocks<'a, B: BlockT, V: Verifier>( - import_handle: &BlockImport, +pub fn import_many_blocks<'a, B: BlockT, V: Verifier>( + import_handle: &BlockImport, link: &Link, qdata: Option<&AsyncImportQueueData>, - blocks: (BlockOrigin, Vec>), + blocks: (BlockOrigin, Vec>), verifier: Arc ) -> bool { @@ -366,8 +328,8 @@ fn import_many_blocks<'a, B: BlockT, V: Verifier>( let mut imported = 0; let blocks_range = match ( - blocks.first().and_then(|b| b.block.header.as_ref().map(|h| h.number())), - blocks.last().and_then(|b| b.block.header.as_ref().map(|h| h.number())), + blocks.first().and_then(|b| b.header.as_ref().map(|h| h.number())), + blocks.last().and_then(|b| b.header.as_ref().map(|h| h.number())), ) { (Some(first), Some(last)) if first != last => format!(" ({}..{})", first, last), (Some(first), Some(_)) => format!(" ({})", first), @@ -401,15 +363,14 @@ fn import_many_blocks<'a, B: BlockT, V: Verifier>( } /// Single block import function. -fn import_single_block>( - import_handle: &BlockImport, +pub fn import_single_block>( + import_handle: &BlockImport, block_origin: BlockOrigin, - block: BlockData, + block: IncomingBlock, verifier: Arc ) -> Result::Header as HeaderT>::Number>, BlockImportError> { let peer = block.origin; - let block = block.block; let (header, justification) = match (block.header, block.justification) { (Some(header), justification) => (header, justification), @@ -465,7 +426,7 @@ fn import_single_block>( } /// Process single block import result. -fn process_import_result( +pub fn process_import_result( link: &Link, result: Result::Header as HeaderT>::Number>, BlockImportError> ) -> usize @@ -503,291 +464,3 @@ fn process_import_result( }, } } - - -#[cfg(any(test, feature = "test-helpers"))] -struct ImportCB(RefCell>) -> bool>>>); - -#[cfg(any(test, feature = "test-helpers"))] -impl ImportCB { - fn new() -> Self { - ImportCB(RefCell::new(None)) - } - fn set(&self, cb: Box) - where F: 'static + Fn(BlockOrigin, Vec>) -> bool - { - *self.0.borrow_mut() = Some(cb); - } - fn call(&self, origin: BlockOrigin, data: Vec>) -> bool { - let b = self.0.borrow(); - b.as_ref().expect("The Callback has been set before. qed.")(origin, data) - } -} - -#[cfg(any(test, feature = "test-helpers"))] -unsafe impl Send for ImportCB {} -#[cfg(any(test, feature = "test-helpers"))] -unsafe impl Sync for ImportCB {} - - -#[cfg(any(test, feature = "test-helpers"))] -/// A Verifier that accepts all blocks and passes them on with the configured -/// finality to be imported. -pub struct PassThroughVerifier(pub bool); - -#[cfg(any(test, feature = "test-helpers"))] -/// This Verifiyer accepts all data as valid -impl Verifier for PassThroughVerifier { - fn verify( - &self, - origin: BlockOrigin, - header: B::Header, - justification: Option, - body: Option> - ) -> Result<(ImportBlock, Option>), String> { - Ok((ImportBlock { - origin, - header, - body, - finalized: self.0, - justification, - post_digests: vec![], - auxiliary: Vec::new(), - }, None)) - } -} - -/// Blocks import queue that is importing blocks in the same thread. -/// The boolean value indicates whether blocks should be imported without instant finality. -#[cfg(any(test, feature = "test-helpers"))] -pub struct SyncImportQueue> { - verifier: Arc, - link: ImportCB, - block_import: SharedBlockImport, -} - -#[cfg(any(test, feature = "test-helpers"))] -impl> SyncImportQueue { - /// Create a new SyncImportQueue wrapping the given Verifier and block import - /// handle. - pub fn new(verifier: Arc, block_import: SharedBlockImport) -> Self { - let queue = SyncImportQueue { - verifier, - link: ImportCB::new(), - block_import, - }; - - let v = queue.verifier.clone(); - let import_handle = queue.block_import.clone(); - queue.link.set(Box::new(move |origin, new_blocks| { - let verifier = v.clone(); - import_many_blocks( - &*import_handle, - &NoopLink, - None, - (origin, new_blocks), - verifier, - ) - })); - - queue - } -} - -#[cfg(any(test, feature = "test-helpers"))] -impl> ImportQueue for SyncImportQueue -{ - fn start>( - &self, - link: L, - ) -> Result<(), Error> { - let v = self.verifier.clone(); - let import_handle = self.block_import.clone(); - self.link.set(Box::new(move |origin, new_blocks| { - let verifier = v.clone(); - import_many_blocks( - &*import_handle, - &link, - None, - (origin, new_blocks), - verifier, - ) - })); - Ok(()) - } - fn clear(&self) { } - - fn stop(&self) { } - - fn status(&self) -> ImportQueueStatus { - ImportQueueStatus { - importing_count: 0, - best_importing_number: Zero::zero(), - } - } - - fn is_importing(&self, _hash: &B::Hash) -> bool { - false - } - - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { - self.link.call(origin, blocks); - } -} - -#[cfg(test)] -pub mod tests { - use client; - use message; - use test_client::{self, TestClient}; - use test_client::runtime::{Block, Hash}; - use runtime_primitives::generic::BlockId; - use std::cell::Cell; - use super::*; - - struct TestLink { - imported: Cell, - maintains: Cell, - disconnects: Cell, - restarts: Cell, - } - - impl TestLink { - fn new() -> TestLink { - TestLink { - imported: Cell::new(0), - maintains: Cell::new(0), - disconnects: Cell::new(0), - restarts: Cell::new(0), - } - } - - fn total(&self) -> usize { - self.imported.get() + self.maintains.get() + self.disconnects.get() + self.restarts.get() - } - } - - impl Link for TestLink { - fn block_imported(&self, _hash: &Hash, _number: NumberFor) { - self.imported.set(self.imported.get() + 1); - } - fn maintain_sync(&self) { - self.maintains.set(self.maintains.get() + 1); - } - fn useless_peer(&self, _: NodeIndex, _: &str) { - self.disconnects.set(self.disconnects.get() + 1); - } - fn note_useless_and_restart_sync(&self, id: NodeIndex, r: &str) { - self.useless_peer(id, r); - self.restart(); - } - fn restart(&self) { - self.restarts.set(self.restarts.get() + 1); - } - } - - fn prepare_good_block() -> (client::Client, Hash, u64, BlockData) { - let client = test_client::new(); - let block = client.new_block().unwrap().bake().unwrap(); - client.import(BlockOrigin::File, block).unwrap(); - - let (hash, number) = (client.block_hash(1).unwrap().unwrap(), 1); - let block = message::BlockData:: { - hash: client.block_hash(1).unwrap().unwrap(), - header: client.header(&BlockId::Number(1)).unwrap(), - body: None, - receipt: None, - message_queue: None, - justification: client.justification(&BlockId::Number(1)).unwrap(), - }; - - (client, hash, number, BlockData { block, origin: Some(0) }) - } - - #[test] - fn import_single_good_block_works() { - let (_, hash, number, block) = prepare_good_block(); - assert_eq!( - import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Ok(BlockImportResult::ImportedUnknown(hash, number)) - ); - } - - #[test] - fn import_single_good_known_block_is_ignored() { - let (client, hash, number, block) = prepare_good_block(); - assert_eq!( - import_single_block(&client, BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Ok(BlockImportResult::ImportedKnown(hash, number)) - ); - } - - #[test] - fn import_single_good_block_without_header_fails() { - let (_, _, _, mut block) = prepare_good_block(); - block.block.header = None; - assert_eq!( - import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Err(BlockImportError::IncompleteHeader(Some(0))) - ); - } - - #[test] - fn process_import_result_works() { - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - assert_eq!(link.imported.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedUnknown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - assert_eq!(link.imported.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::IncompleteHeader(Some(0)))), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.disconnects.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::UnknownParent)), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.restarts.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::Error)), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.restarts.get(), 1); - } - - #[test] - fn import_many_blocks_stops_when_stopping() { - let (_, _, _, block) = prepare_good_block(); - let qdata = AsyncImportQueueData::new(); - let verifier = Arc::new(PassThroughVerifier(true)); - qdata.is_stopping.store(true, Ordering::SeqCst); - let client = test_client::new(); - assert!(!import_many_blocks( - &client, - &mut TestLink::new(), - Some(&qdata), - (BlockOrigin::File, vec![block.clone(), block]), - verifier - )); - } - - #[test] - fn async_import_queue_drops() { - // Perform this test multiple times since it exhibits non-deterministic behavior. - for _ in 0..100 { - let verifier = Arc::new(PassThroughVerifier(true)); - let queue = BasicQueue::new(verifier, Arc::new(test_client::new())); - queue.start(TestLink::new()).unwrap(); - drop(queue); - } - } -} diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index 76c370effddb0..875f4c216aec4 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -24,8 +24,11 @@ extern crate substrate_primitives as primitives; extern crate futures; +extern crate parking_lot; extern crate sr_version as runtime_version; extern crate sr_primitives as runtime_primitives; +#[cfg(any(test, feature = "test-helpers"))] +extern crate substrate_test_client as test_client; extern crate tokio; extern crate parity_codec as codec; @@ -33,6 +36,7 @@ extern crate parity_codec_derive; #[macro_use] extern crate error_chain; +#[macro_use] extern crate log; use std::sync::Arc; @@ -44,6 +48,7 @@ use futures::prelude::*; pub mod offline_tracker; pub mod error; mod block_import; +pub mod import_queue; pub mod evaluation; // block size limit. diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index 3e699ba3823ae..abd737d357a3c 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -89,7 +89,7 @@ use client::{ }; use client::blockchain::HeaderBackend; use codec::{Encode, Decode}; -use consensus_common::{BlockImport, ImportBlock, ImportResult, Authorities}; +use consensus_common::{BlockImport, Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, Authorities}; use runtime_primitives::traits::{ NumberFor, Block as BlockT, Header as HeaderT, DigestFor, ProvideRuntimeApi, Hash as HashT, }; @@ -834,7 +834,7 @@ impl, RA, PRA> BlockImport PRA: ProvideRuntimeApi, PRA::Api: GrandpaApi, { - type Error = ClientError; + type Error = ConsensusError; fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) -> Result @@ -847,7 +847,12 @@ impl, RA, PRA> BlockImport let maybe_change = self.api.runtime_api().grandpa_pending_change( &BlockId::hash(*block.header.parent_hash()), &block.header.digest().clone(), - )?; + ); + + let maybe_change = match maybe_change { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(maybe) => maybe, + }; // when we update the authorities, we need to hold the lock // until the block is written to prevent a race if we need to restore @@ -858,11 +863,9 @@ impl, RA, PRA> BlockImport let mut authorities = self.authority_set.inner().write(); let old_set = authorities.clone(); - let is_equal_or_descendent_of = |base: &Block::Hash| -> Result<(), ClientError> { + let is_equal_or_descendent_of = |base: &Block::Hash| -> Result<(), ConsensusError> { let error = || { - Err(ClientErrorKind::Backend( - "invalid authority set change: multiple pending changes on the same chain".to_string() - ).into()) + Err(ConsensusErrorKind::ClientImport("Incorrect base hash".to_string()).into()) }; if *base == hash { return error(); } @@ -872,7 +875,12 @@ impl, RA, PRA> BlockImport self.inner.backend().blockchain(), BlockId::Hash(parent_hash), BlockId::Hash(*base), - )?; + ); + + let tree_route = match tree_route { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(route) => route, + }; if tree_route.common_block().hash == *base { return error(); @@ -905,18 +913,25 @@ impl, RA, PRA> BlockImport *authorities = old_set; } e - })?; + }); - if import_result != ImportResult::Queued { - return Ok(import_result); - } + let import_result = match import_result { + Ok(ImportResult::Queued) => ImportResult::Queued, + Ok(r) => return Ok(r), + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + }; let enacts_change = self.authority_set.inner().read().enacts_change(number, |canon_number| { canonical_at_height(&self.inner, (hash, number), canon_number) - })?; + }); - if !enacts_change { - return Ok(import_result); + match enacts_change { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(enacted) => { + if !enacted { + return Ok(import_result); + } + } } match justification { @@ -925,7 +940,12 @@ impl, RA, PRA> BlockImport justification, self.authority_set.set_id(), &self.authority_set.current_authorities(), - )?; + ); + + let justification = match justification { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(justification) => justification, + }; let result = finalize_block( &*self.inner, @@ -943,16 +963,18 @@ impl, RA, PRA> BlockImport }, Err(ExitOrError::AuthoritiesChanged(new)) => { debug!(target: "finality", "Imported justified block #{} that enacts authority set change, signalling voter.", number); - if let Err(_) = self.authority_set_change.unbounded_send(new) { - return Err(ClientErrorKind::Backend( - "imported and finalized change block but grandpa voter is no longer running".to_string() - ).into()); + if let Err(e) = self.authority_set_change.unbounded_send(new) { + return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()); } }, - Err(ExitOrError::Error(_)) => { - return Err(ClientErrorKind::Backend( - "imported change block but failed to finalize it, node may be in an inconsistent state".to_string() - ).into()); + Err(ExitOrError::Error(e)) => { + match e { + Error::Grandpa(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + Error::Network(error) => return Err(ConsensusErrorKind::ClientImport(error).into()), + Error::Blockchain(error) => return Err(ConsensusErrorKind::ClientImport(error).into()), + Error::Client(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + Error::Timer(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + } }, } }, diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index de6c4f1cb3977..a357fa81dab39 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -18,7 +18,7 @@ use super::*; use network::test::{Block, Hash, TestNetFactory, Peer, PeersClient}; -use network::import_queue::{PassThroughVerifier}; +use network::test::{PassThroughVerifier}; use network::config::{ProtocolConfig, Roles}; use parking_lot::Mutex; use tokio::runtime::current_thread; @@ -29,7 +29,7 @@ use client::{ }; use test_client::{self, runtime::BlockNumber}; use codec::Decode; -use consensus_common::BlockOrigin; +use consensus_common::{BlockOrigin, Error as ConsensusError}; use std::{collections::HashSet, result}; use runtime_primitives::traits::{ApiRef, ProvideRuntimeApi, RuntimeApiInfo}; use runtime_primitives::generic::BlockId; @@ -99,7 +99,7 @@ impl TestNetFactory for GrandpaTestNet { } fn make_block_import(&self, client: Arc) - -> (Arc + Send + Sync>, PeerData) + -> (Arc + Send + Sync>, PeerData) { let (import, link) = block_import( client, diff --git a/core/network/src/chain.rs b/core/network/src/chain.rs index 8547f9006e3b4..166dfe55a7c22 100644 --- a/core/network/src/chain.rs +++ b/core/network/src/chain.rs @@ -19,7 +19,7 @@ use client::{self, Client as SubstrateClient, ClientInfo, BlockStatus, CallExecutor}; use client::error::Error; use client::light::fetcher::ChangesProof; -use consensus::BlockImport; +use consensus::{BlockImport, Error as ConsensusError}; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT}; use runtime_primitives::generic::{BlockId}; use consensus::{ImportBlock, ImportResult}; @@ -30,7 +30,7 @@ use primitives::{H256, Blake2Hasher, AuthorityId}; pub trait Client: Send + Sync { /// Import a new block. Parent is supposed to be existing in the blockchain. fn import(&self, block: ImportBlock, new_authorities: Option>) - -> Result; + -> Result; /// Get blockchain info. fn info(&self) -> Result, Error>; @@ -73,12 +73,12 @@ pub trait Client: Send + Sync { impl Client for SubstrateClient where B: client::backend::Backend + Send + Sync + 'static, E: CallExecutor + Send + Sync + 'static, - Self: BlockImport, + Self: BlockImport, Block: BlockT, RA: Send + Sync { fn import(&self, block: ImportBlock, new_authorities: Option>) - -> Result + -> Result { (self as &SubstrateClient).import_block(block, new_authorities) } diff --git a/core/network/src/lib.rs b/core/network/src/lib.rs index b6ba3f78836e0..5f10051b15ea7 100644 --- a/core/network/src/lib.rs +++ b/core/network/src/lib.rs @@ -55,7 +55,6 @@ mod chain; mod blocks; mod on_demand; pub mod config; -pub mod import_queue; pub mod consensus_gossip; pub mod error; pub mod message; diff --git a/core/network/src/protocol.rs b/core/network/src/protocol.rs index 60133b25c144e..42c59545322c6 100644 --- a/core/network/src/protocol.rs +++ b/core/network/src/protocol.rs @@ -24,14 +24,13 @@ use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, use runtime_primitives::generic::BlockId; use network_libp2p::{NodeIndex, Severity}; use codec::{Encode, Decode}; - +use consensus::import_queue::ImportQueue; use message::{self, Message}; use message::generic::Message as GenericMessage; use consensus_gossip::ConsensusGossip; use specialization::NetworkSpecialization; use sync::{ChainSync, Status as SyncStatus, SyncState}; use service::{TransactionPool, ExHashT}; -use import_queue::ImportQueue; use config::{ProtocolConfig, Roles}; use chain::Client; use client::light::fetcher::ChangesProof; @@ -196,7 +195,9 @@ impl, H: ExHashT> Protocol { on_demand: Option>>, transaction_pool: Arc>, specialization: S, - ) -> error::Result { + ) -> error::Result + where I: ImportQueue + { let info = chain.info()?; let sync = ChainSync::new(config.roles, &info, import_queue); let protocol = Protocol { diff --git a/core/network/src/service.rs b/core/network/src/service.rs index d633e0397de00..5487accd1b118 100644 --- a/core/network/src/service.rs +++ b/core/network/src/service.rs @@ -20,17 +20,19 @@ use std::{io, thread}; use std::time::Duration; use futures::{self, Future, Stream, stream, sync::oneshot}; use parking_lot::{Mutex, RwLock}; -use network_libp2p::{ProtocolId, PeerId, NetworkConfiguration, ErrorKind}; +use network_libp2p::{ProtocolId, PeerId, NetworkConfiguration, NodeIndex, ErrorKind, Severity}; use network_libp2p::{start_service, Service as NetworkService, ServiceEvent as NetworkServiceEvent}; use network_libp2p::{RegisteredProtocol, parse_str_addr, Protocol as Libp2pProtocol}; use io::NetSyncIo; +use consensus::import_queue::{ImportQueue, Link}; use consensus_gossip::ConsensusGossip; use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus}; use config::Params; use error::Error; use specialization::NetworkSpecialization; -use import_queue::ImportQueue; -use runtime_primitives::traits::{Block as BlockT}; +use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use sync::ChainSync; +use std::sync::Weak; use tokio::{runtime::Runtime, timer::Interval}; /// Type that represents fetch completion future. @@ -65,6 +67,53 @@ pub trait ExecuteInContext: Send + Sync { fn execute_in_context)>(&self, closure: F); } +/// A link implementation that connects to the network. +pub struct NetworkLink> { + /// The chain-sync handle + pub(crate) sync: Weak>>, + /// Network context. + pub(crate) context: Weak, +} + +impl> NetworkLink { + /// Execute closure with locked ChainSync. + fn with_sync, &mut Context)>(&self, closure: F) { + if let (Some(sync), Some(service)) = (self.sync.upgrade(), self.context.upgrade()) { + service.execute_in_context(move |protocol| { + let mut sync = sync.write(); + closure(&mut *sync, protocol) + }); + } + } +} + +impl> Link for NetworkLink { + fn block_imported(&self, hash: &B::Hash, number: NumberFor) { + self.with_sync(|sync, _| sync.block_imported(&hash, number)) + } + + fn maintain_sync(&self) { + self.with_sync(|sync, protocol| sync.maintain_sync(protocol)) + } + + fn useless_peer(&self, who: NodeIndex, reason: &str) { + trace!(target:"sync", "Useless peer {}, {}", who, reason); + self.with_sync(|_, protocol| protocol.report_peer(who, Severity::Useless(reason))) + } + + fn note_useless_and_restart_sync(&self, who: NodeIndex, reason: &str) { + trace!(target:"sync", "Bad peer {}, {}", who, reason); + self.with_sync(|sync, protocol| { + protocol.report_peer(who, Severity::Useless(reason)); // is this actually malign or just useless? + sync.restart(protocol); + }) + } + + fn restart(&self) { + self.with_sync(|sync, protocol| sync.restart(protocol)) + } +} + /// Substrate network service. Handles network IO and manages connectivity. pub struct Service, H: ExHashT> { /// Network service @@ -85,7 +134,9 @@ impl, H: ExHashT> Service, protocol_id: ProtocolId, import_queue: Arc, - ) -> Result>, Error> { + ) -> Result>, Error> + where I: ImportQueue + { let handler = Arc::new(Protocol::new( params.config, params.chain, @@ -106,7 +157,7 @@ impl, H: ExHashT> Service ChainSync { who: NodeIndex, _request: message::BlockRequest, response: message::BlockResponse - ) -> Option<(BlockOrigin, Vec>)> { - let new_blocks = if let Some(ref mut peer) = self.peers.get_mut(&who) { + ) -> Option<(BlockOrigin, Vec>)> { + let new_blocks: Vec> = if let Some(ref mut peer) = self.peers.get_mut(&who) { match peer.state { PeerSyncState::DownloadingNew(start_block) => { self.blocks.clear_peer_download(who); peer.state = PeerSyncState::Available; self.blocks.insert(start_block, response.blocks, who); - self.blocks.drain(self.best_queued_number + As::sa(1)) + self.blocks + .drain(self.best_queued_number + As::sa(1)) + .into_iter() + .map(|block_data| { + IncomingBlock { + hash: block_data.block.hash, + header: block_data.block.header, + body: block_data.block.body, + justification: block_data.block.justification, + origin: block_data.origin, + } + }).collect() }, PeerSyncState::DownloadingStale(_) => { peer.state = PeerSyncState::Available; - response.blocks.into_iter().map(|b| blocks::BlockData { - origin: Some(who), - block: b + response.blocks.into_iter().map(|b| { + IncomingBlock { + hash: b.hash, + header: b.header, + body: b.body, + justification: b.justification, + origin: Some(who), + } }).collect() }, PeerSyncState::AncestorSearch(n) => { @@ -253,11 +269,11 @@ impl ChainSync { }; let best_seen = self.best_seen_block(); - let is_best = new_blocks.first().and_then(|b| b.block.header.as_ref()).map(|h| best_seen.as_ref().map_or(false, |n| h.number() >= n)); + let is_best = new_blocks.first().and_then(|b| b.header.as_ref()).map(|h| best_seen.as_ref().map_or(false, |n| h.number() >= n)); let origin = if is_best.unwrap_or_default() { BlockOrigin::NetworkBroadcast } else { BlockOrigin::NetworkInitialSync }; if let Some((hash, number)) = new_blocks.last() - .and_then(|b| b.block.header.as_ref().map(|h| (b.block.hash.clone(), *h.number()))) + .and_then(|b| b.header.as_ref().map(|h| (b.hash.clone(), *h.number()))) { self.block_queued(&hash, number); } diff --git a/core/network/src/test/block_import.rs b/core/network/src/test/block_import.rs new file mode 100644 index 0000000000000..6104be87f0e32 --- /dev/null +++ b/core/network/src/test/block_import.rs @@ -0,0 +1,171 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! Testing block import logic. + +use consensus::import_queue::{import_single_block, process_import_result}; +use consensus::import_queue::{AsyncImportQueueData, BasicQueue, BlockImportError, BlockImportResult}; +use test_client::{self, TestClient}; +use test_client::runtime::{Block, Hash}; +use runtime_primitives::generic::BlockId; +use runtime_primitives::traits::NumberFor; +use std::cell::Cell; +use super::*; + +struct TestLink { + imported: Cell, + maintains: Cell, + disconnects: Cell, + restarts: Cell, +} + +impl TestLink { + fn new() -> TestLink { + TestLink { + imported: Cell::new(0), + maintains: Cell::new(0), + disconnects: Cell::new(0), + restarts: Cell::new(0), + } + } + + fn total(&self) -> usize { + self.imported.get() + self.maintains.get() + self.disconnects.get() + self.restarts.get() + } +} + +impl Link for TestLink { + fn block_imported(&self, _hash: &Hash, _number: NumberFor) { + self.imported.set(self.imported.get() + 1); + } + fn maintain_sync(&self) { + self.maintains.set(self.maintains.get() + 1); + } + fn useless_peer(&self, _: NodeIndex, _: &str) { + self.disconnects.set(self.disconnects.get() + 1); + } + fn note_useless_and_restart_sync(&self, id: NodeIndex, r: &str) { + self.useless_peer(id, r); + self.restart(); + } + fn restart(&self) { + self.restarts.set(self.restarts.get() + 1); + } +} + +fn prepare_good_block() -> (client::Client, Hash, u64, IncomingBlock) { + let client = test_client::new(); + let block = client.new_block().unwrap().bake().unwrap(); + client.import(BlockOrigin::File, block).unwrap(); + + let (hash, number) = (client.block_hash(1).unwrap().unwrap(), 1); + let header = client.header(&BlockId::Number(1)).unwrap(); + let justification = client.justification(&BlockId::Number(1)).unwrap(); + (client, hash, number, IncomingBlock { + hash, + header, + body: None, + justification, + origin: Some(0) + }) +} + +#[test] +fn import_single_good_block_works() { + let (_, hash, number, block) = prepare_good_block(); + assert_eq!( + import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Ok(BlockImportResult::ImportedUnknown(hash, number)) + ); +} + +#[test] +fn import_single_good_known_block_is_ignored() { + let (client, hash, number, block) = prepare_good_block(); + assert_eq!( + import_single_block(&client, BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Ok(BlockImportResult::ImportedKnown(hash, number)) + ); +} + +#[test] +fn import_single_good_block_without_header_fails() { + let (_, _, _, mut block) = prepare_good_block(); + block.header = None; + assert_eq!( + import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Err(BlockImportError::IncompleteHeader(Some(0))) + ); +} + +#[test] +fn process_import_result_works() { + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + assert_eq!(link.imported.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedUnknown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + assert_eq!(link.imported.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::IncompleteHeader(Some(0)))), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.disconnects.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::UnknownParent)), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.restarts.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::Error)), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.restarts.get(), 1); +} + +#[test] +fn import_many_blocks_stops_when_stopping() { + let (_, _, _, block) = prepare_good_block(); + let qdata = AsyncImportQueueData::new(); + let verifier = Arc::new(PassThroughVerifier(true)); + qdata.stop(); + let client = test_client::new(); + assert!(!import_many_blocks( + &client, + &mut TestLink::new(), + Some(&qdata), + (BlockOrigin::File, vec![block.clone(), block]), + verifier + )); +} + +#[test] +fn async_import_queue_drops() { + // Perform this test multiple times since it exhibits non-deterministic behavior. + for _ in 0..100 { + let verifier = Arc::new(PassThroughVerifier(true)); + let queue = BasicQueue::new(verifier, Arc::new(test_client::new())); + queue.start(TestLink::new()).unwrap(); + drop(queue); + } +} diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index f8b67051646ab..b2beba05db732 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -18,33 +18,176 @@ #[cfg(test)] mod sync; +#[cfg(test)] +mod block_import; use std::collections::{VecDeque, HashSet, HashMap}; use std::sync::Arc; use parking_lot::RwLock; use client; -use client::error::Error as ClientError; use client::block_builder::BlockBuilder; +use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; +use runtime_primitives::traits::{Block as BlockT, Zero}; use io::SyncIo; +use primitives::AuthorityId; use protocol::{Context, Protocol, ProtocolContext}; use config::ProtocolConfig; -use service::TransactionPool; +use service::{NetworkLink, TransactionPool}; use network_libp2p::{NodeIndex, PeerId, Severity}; use keyring::Keyring; use codec::Encode; -use import_queue::{SyncImportQueue, PassThroughVerifier, Verifier}; -use consensus::BlockOrigin; +use consensus::{BlockImport, BlockOrigin, ImportBlock}; +use consensus::Error as ConsensusError; +use consensus::import_queue::{import_many_blocks, ImportQueue, ImportQueueStatus, IncomingBlock}; +use consensus::import_queue::{Link, SharedBlockImport, Verifier}; use specialization::NetworkSpecialization; use consensus_gossip::ConsensusGossip; -use import_queue::{BlockImport, ImportQueue}; use service::ExecuteInContext; use test_client; pub use test_client::runtime::{Block, Hash, Transfer, Extrinsic}; pub use test_client::TestClient; +#[cfg(any(test, feature = "test-helpers"))] +use std::cell::RefCell; + +#[cfg(any(test, feature = "test-helpers"))] +struct ImportCB(RefCell>) -> bool>>>); + +#[cfg(any(test, feature = "test-helpers"))] +impl ImportCB { + fn new() -> Self { + ImportCB(RefCell::new(None)) + } + fn set(&self, cb: Box) + where F: 'static + Fn(BlockOrigin, Vec>) -> bool + { + *self.0.borrow_mut() = Some(cb); + } + fn call(&self, origin: BlockOrigin, data: Vec>) -> bool { + let b = self.0.borrow(); + b.as_ref().expect("The Callback has been set before. qed.")(origin, data) + } +} + +#[cfg(any(test, feature = "test-helpers"))] +unsafe impl Send for ImportCB {} +#[cfg(any(test, feature = "test-helpers"))] +unsafe impl Sync for ImportCB {} + + +#[cfg(any(test, feature = "test-helpers"))] +/// A Verifier that accepts all blocks and passes them on with the configured +/// finality to be imported. +pub struct PassThroughVerifier(pub bool); + +#[cfg(any(test, feature = "test-helpers"))] +/// This Verifiyer accepts all data as valid +impl Verifier for PassThroughVerifier { + fn verify( + &self, + origin: BlockOrigin, + header: B::Header, + justification: Option, + body: Option> + ) -> Result<(ImportBlock, Option>), String> { + Ok((ImportBlock { + origin, + header, + body, + finalized: self.0, + justification, + post_digests: vec![], + auxiliary: Vec::new(), + }, None)) + } +} + +/// A link implementation that does nothing. +pub struct NoopLink; + +impl Link for NoopLink { } + +/// Blocks import queue that is importing blocks in the same thread. +/// The boolean value indicates whether blocks should be imported without instant finality. +#[cfg(any(test, feature = "test-helpers"))] +pub struct SyncImportQueue> { + verifier: Arc, + link: ImportCB, + block_import: SharedBlockImport, +} + +#[cfg(any(test, feature = "test-helpers"))] +impl> SyncImportQueue { + /// Create a new SyncImportQueue wrapping the given Verifier and block import + /// handle. + pub fn new(verifier: Arc, block_import: SharedBlockImport) -> Self { + let queue = SyncImportQueue { + verifier, + link: ImportCB::new(), + block_import, + }; + + let v = queue.verifier.clone(); + let import_handle = queue.block_import.clone(); + queue.link.set(Box::new(move |origin, new_blocks| { + let verifier = v.clone(); + import_many_blocks( + &*import_handle, + &NoopLink, + None, + (origin, new_blocks), + verifier, + ) + })); + + queue + } +} + +#[cfg(any(test, feature = "test-helpers"))] +impl> ImportQueue for SyncImportQueue +{ + fn start>( + &self, + link: L, + ) -> Result<(), std::io::Error> { + let v = self.verifier.clone(); + let import_handle = self.block_import.clone(); + self.link.set(Box::new(move |origin, new_blocks| { + let verifier = v.clone(); + import_many_blocks( + &*import_handle, + &link, + None, + (origin, new_blocks), + verifier, + ) + })); + Ok(()) + } + fn clear(&self) { } + + fn stop(&self) { } + + fn status(&self) -> ImportQueueStatus { + ImportQueueStatus { + importing_count: 0, + best_importing_number: Zero::zero(), + } + } + + fn is_importing(&self, _hash: &B::Hash) -> bool { + false + } + + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { + self.link.call(origin, blocks); + } +} + struct DummyContextExecutor(Arc>, Arc>>); unsafe impl Send for DummyContextExecutor {} unsafe impl Sync for DummyContextExecutor {} @@ -157,7 +300,7 @@ impl, D> Peer { // Update the sync state to the latest chain state. let info = self.client.info().expect("In-mem client does not fail"); let header = self.client.header(&BlockId::Hash(info.chain.best_hash)).unwrap().unwrap(); - let network_link = ::import_queue::NetworkLink { + let network_link = NetworkLink { sync: Arc::downgrade(self.sync.sync()), context: Arc::downgrade(&self.executor), }; @@ -237,8 +380,6 @@ impl, D> Peer { pub fn generate_blocks(&self, count: usize, origin: BlockOrigin, mut edit_block: F) where F: FnMut(BlockBuilder) -> Block { - use blocks::BlockData; - for _ in 0..count { let builder = self.client.new_block().unwrap(); let block = edit_block(builder); @@ -248,17 +389,15 @@ impl, D> Peer { // NOTE: if we use a non-synchronous queue in the test-net in the future, // this may not work. - self.import_queue.import_blocks(origin, vec![BlockData { + self.import_queue.import_blocks(origin, vec![ + IncomingBlock { origin: None, - block: ::message::BlockData:: { hash, header: Some(header), body: Some(block.extrinsics), - receipt: None, - message_queue: None, justification: None, }, - }]); + ]); } } @@ -330,7 +469,7 @@ pub trait TestNetFactory: Sized { /// Get custom block import handle for fresh client, along with peer data. fn make_block_import(&self, client: Arc) - -> (Arc + Send + Sync>, Self::PeerData) + -> (Arc + Send + Sync>, Self::PeerData) { (client, Default::default()) } diff --git a/core/service/src/chain_ops.rs b/core/service/src/chain_ops.rs index 6d6dc558f41f8..15a4deb42a041 100644 --- a/core/service/src/chain_ops.rs +++ b/core/service/src/chain_ops.rs @@ -21,7 +21,7 @@ use futures::Future; use runtime_primitives::generic::{SignedBlock, BlockId}; use runtime_primitives::traits::{As, Block, Header}; -use network::import_queue::{ImportQueue, Link, BlockData}; +use consensus_common::import_queue::{ImportQueue, IncomingBlock, Link}; use network::message; use consensus_common::BlockOrigin; @@ -123,7 +123,15 @@ pub fn import_blocks(mut config: FactoryFullConfiguration, exit: E, message_queue: None }; // import queue handles verification and importing it into the client - queue.import_blocks(BlockOrigin::File, vec![BlockData:: { block, origin: None }]); + queue.import_blocks(BlockOrigin::File, vec![ + IncomingBlock::{ + hash: block.hash, + header: block.header, + body: block.body, + justification: block.justification, + origin: None, + } + ]); } else { warn!("Error reading block data at {}.", b); break; diff --git a/core/service/src/components.rs b/core/service/src/components.rs index 343a71563d6be..4f40246c150d6 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -23,7 +23,8 @@ use chain_spec::ChainSpec; use client_db; use client::{self, Client, runtime_api::{/*Metadata,*/ TaggedTransactionQueue}}; use {error, Service/*, maybe_start_server*/}; -use network::{self, OnDemand, import_queue::ImportQueue}; +use network::{self, OnDemand}; +use consensus_common::import_queue::ImportQueue; use substrate_executor::{NativeExecutor, NativeExecutionDispatch}; use transaction_pool::txpool::{self, Options as TransactionPoolOptions, Pool as TransactionPool}; use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::{BlockId, /*SignedBlock*/}}; @@ -281,9 +282,9 @@ pub trait ServiceFactory: 'static + Sized { /// Extended light service type. type LightService: ServiceTrait>; /// ImportQueue for full client - type FullImportQueue: network::import_queue::ImportQueue + 'static; + type FullImportQueue: consensus_common::import_queue::ImportQueue + 'static; /// ImportQueue for light clients - type LightImportQueue: network::import_queue::ImportQueue + 'static; + type LightImportQueue: consensus_common::import_queue::ImportQueue + 'static; //TODO: replace these with a constructor trait. that TransactionPool implements. (#1242) /// Extrinsic pool constructor for the full client. diff --git a/core/test-client/src/client_ext.rs b/core/test-client/src/client_ext.rs index d4ca6361ee3ac..a833472e445d8 100644 --- a/core/test-client/src/client_ext.rs +++ b/core/test-client/src/client_ext.rs @@ -17,7 +17,7 @@ //! Client extension for tests. use client::{self, Client}; -use consensus::{ImportBlock, BlockImport, BlockOrigin}; +use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError}; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; use primitives::Blake2Hasher; @@ -27,11 +27,11 @@ use runtime; pub trait TestClient: Sized { /// Import block to the chain. No finality. fn import(&self, origin: BlockOrigin, block: runtime::Block) - -> client::error::Result<()>; + -> Result<(), ConsensusError>; /// Import block with justification, finalizes block. fn import_justified(&self, origin: BlockOrigin, block: runtime::Block, justification: Justification) - -> client::error::Result<()>; + -> Result<(), ConsensusError>; /// Finalize a block. fn finalize_block(&self, id: BlockId, justification: Option) -> client::error::Result<()>; @@ -44,10 +44,10 @@ impl TestClient for Client where B: client::backend::Backend, E: client::CallExecutor, - Self: BlockImport, + Self: BlockImport, { fn import(&self, origin: BlockOrigin, block: runtime::Block) - -> client::error::Result<()> + -> Result<(), ConsensusError> { let import = ImportBlock { origin, @@ -63,7 +63,7 @@ impl TestClient for Client } fn import_justified(&self, origin: BlockOrigin, block: runtime::Block, justification: Justification) - -> client::error::Result<()> + -> Result<(), ConsensusError> { let import = ImportBlock { origin, From 51a97a8b2c28d0748df24a9e04d2d470ecb55ba0 Mon Sep 17 00:00:00 2001 From: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Date: Mon, 31 Dec 2018 19:33:49 +0800 Subject: [PATCH 12/44] moving core/service/consensus into new core/authorship crate (#1257) --- Cargo.lock | 15 ++++++++ core/basic-authorship/Cargo.toml | 14 ++++++++ .../src/basic_authorship.rs} | 0 core/basic-authorship/src/lib.rs | 34 +++++++++++++++++++ core/service/src/lib.rs | 2 -- node/cli/Cargo.toml | 1 + node/cli/src/service.rs | 2 +- 7 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 core/basic-authorship/Cargo.toml rename core/{service/src/consensus.rs => basic-authorship/src/basic_authorship.rs} (100%) create mode 100644 core/basic-authorship/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index faf20461400f7..4bbb85274a3ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1826,6 +1826,7 @@ dependencies = [ "sr-io 0.1.0", "sr-primitives 0.1.0", "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-basic-authorship 0.1.0", "substrate-cli 0.3.0", "substrate-client 0.1.0", "substrate-consensus-aura 0.1.0", @@ -3341,6 +3342,20 @@ dependencies = [ "vergen 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "substrate-basic-authorship" +version = "0.1.0" +dependencies = [ + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 0.1.0", + "substrate-client 0.1.0", + "substrate-consensus-aura-primitives 0.1.0", + "substrate-consensus-common 0.1.0", + "substrate-primitives 0.1.0", + "substrate-transaction-pool 0.1.0", +] + [[package]] name = "substrate-cli" version = "0.3.0" diff --git a/core/basic-authorship/Cargo.toml b/core/basic-authorship/Cargo.toml new file mode 100644 index 0000000000000..00c50781fde04 --- /dev/null +++ b/core/basic-authorship/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "substrate-basic-authorship" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +log = "0.4" +parity-codec = "2.1" +sr-primitives = { path = "../../core/sr-primitives" } +substrate-client = { path = "../../core/client" } +substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives" } +substrate-consensus-common = { path = "../../core/consensus/common" } +substrate-primitives = { path = "../../core/primitives" } +substrate-transaction-pool = { path = "../../core/transaction-pool" } diff --git a/core/service/src/consensus.rs b/core/basic-authorship/src/basic_authorship.rs similarity index 100% rename from core/service/src/consensus.rs rename to core/basic-authorship/src/basic_authorship.rs diff --git a/core/basic-authorship/src/lib.rs b/core/basic-authorship/src/lib.rs new file mode 100644 index 0000000000000..44caadea3c62c --- /dev/null +++ b/core/basic-authorship/src/lib.rs @@ -0,0 +1,34 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! Basic implementation of block-authoring logic. + +#![warn(unused_extern_crates)] + +extern crate substrate_consensus_aura_primitives as aura_primitives; +extern crate substrate_primitives as primitives; +extern crate sr_primitives as runtime_primitives; +extern crate substrate_consensus_common as consensus_common; +extern crate substrate_client as client; +extern crate parity_codec as codec; +extern crate substrate_transaction_pool as transaction_pool; + +#[macro_use] +extern crate log; + +mod basic_authorship; + +pub use basic_authorship::ProposerFactory; diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index 43f8cd050e69c..fc8567df5e21c 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -58,7 +58,6 @@ mod error; mod chain_spec; pub mod config; pub mod chain_ops; -pub mod consensus; //use std::io; //use std::net::SocketAddr; @@ -82,7 +81,6 @@ pub use chain_spec::{ChainSpec, Properties}; pub use transaction_pool::txpool::{self, Pool as TransactionPool, Options as TransactionPoolOptions, ChainApi, IntoPoolError}; pub use client::ExecutionStrategy; -pub use consensus::ProposerFactory; pub use components::{ServiceFactory, FullBackend, FullExecutor, LightBackend, LightExecutor, Components, PoolApi, ComponentClient, ComponentBlock, FullClient, LightClient, FullComponents, LightComponents, diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 47bd651ca8ac6..3a20fb3c8fea2 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -19,6 +19,7 @@ substrate-primitives = { path = "../../core/primitives" } node-runtime = { path = "../runtime" } node-primitives = { path = "../primitives" } hex-literal = "0.1" +substrate-basic-authorship = { path = "../../core/basic-authorship" } substrate-service = { path = "../../core/service" } substrate-transaction-pool = { path = "../../core/transaction-pool" } substrate-network = { path = "../../core/network" } diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index d173c7419e4cd..89dbd02319d00 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -77,7 +77,7 @@ construct_service_factory! { if let Some(ref key) = local_key { info!("Using authority key {}", key.public()); - let proposer = Arc::new(substrate_service::ProposerFactory { + let proposer = Arc::new(substrate_basic_authorship::ProposerFactory { client: service.client(), transaction_pool: service.transaction_pool(), }); From 8626425dd12793fe8ce316f6e794e51e0ddf065b Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 4 Jan 2019 20:34:58 +0100 Subject: [PATCH 13/44] Support custom fork choice rule (#1339) * Support custom fork choice rule * Remove unneeded reexport * Fix network compile --- core/client/src/client.rs | 10 ++++++++-- core/consensus/aura/src/lib.rs | 4 +++- core/consensus/common/src/block_import.rs | 11 +++++++++++ core/consensus/common/src/lib.rs | 2 +- core/network/src/test/mod.rs | 3 ++- core/test-client/src/client_ext.rs | 4 +++- 6 files changed, 28 insertions(+), 6 deletions(-) diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 7f8c81d5abea5..b0dfb939d07c1 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -25,7 +25,7 @@ use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, }; -use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin}; +use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin, ForkChoiceStrategy}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, ApiRef, ProvideRuntimeApi, Digest, DigestItem, @@ -544,6 +544,7 @@ impl Client where authorities: Option>, finalized: bool, aux: Vec<(Vec, Option>)>, + fork_choice: ForkChoiceStrategy, ) -> error::Result where E: CallExecutor + Send + Sync + Clone, { @@ -608,7 +609,10 @@ impl Client where }; // TODO: non longest-chain rule. - let is_new_best = finalized || import_headers.post().number() > &last_best_number; + let is_new_best = finalized || match fork_choice { + ForkChoiceStrategy::LongestChain => import_headers.post().number() > &last_best_number, + ForkChoiceStrategy::Custom(v) => v, + }; let leaf_state = if finalized { ::backend::NewBlockState::Final } else if is_new_best { @@ -1038,6 +1042,7 @@ impl consensus::BlockImport for Client body, finalized, auxiliary, + fork_choice, } = import_block; assert!(justification.is_some() && finalized || justification.is_none()); @@ -1074,6 +1079,7 @@ impl consensus::BlockImport for Client new_authorities, finalized, auxiliary, + fork_choice, ); *self.importing_block.write() = None; diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index 911ae6304a320..b57dab030c76f 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -61,7 +61,7 @@ use std::sync::Arc; use std::time::Duration; use codec::Encode; -use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer}; +use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer, ForkChoiceStrategy}; use consensus_common::import_queue::{Verifier, BasicQueue}; use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; @@ -324,6 +324,7 @@ pub fn start_aura( body: Some(body), finalized: false, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; if let Err(e) = block_import.import_block(import_block, None) { @@ -524,6 +525,7 @@ impl Verifier for AuraVerifier { /// Origin of the Block @@ -83,6 +92,8 @@ pub struct ImportBlock { /// Contains a list of key-value pairs. If values are `None`, the keys /// will be deleted. pub auxiliary: Vec<(Vec, Option>)>, + /// Fork choice strategy of this import. + pub fork_choice: ForkChoiceStrategy, } impl ImportBlock { diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index 875f4c216aec4..e9b5d82951f62 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -55,7 +55,7 @@ pub mod evaluation; const MAX_TRANSACTIONS_SIZE: usize = 4 * 1024 * 1024; pub use self::error::{Error, ErrorKind}; -pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult}; +pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult, ForkChoiceStrategy}; /// Trait for getting the authorities at a given block. pub trait Authorities { diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index b2beba05db732..94518978bc091 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -38,7 +38,7 @@ use service::{NetworkLink, TransactionPool}; use network_libp2p::{NodeIndex, PeerId, Severity}; use keyring::Keyring; use codec::Encode; -use consensus::{BlockImport, BlockOrigin, ImportBlock}; +use consensus::{BlockImport, BlockOrigin, ImportBlock, ForkChoiceStrategy}; use consensus::Error as ConsensusError; use consensus::import_queue::{import_many_blocks, ImportQueue, ImportQueueStatus, IncomingBlock}; use consensus::import_queue::{Link, SharedBlockImport, Verifier}; @@ -101,6 +101,7 @@ impl Verifier for PassThroughVerifier { justification, post_digests: vec![], auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }, None)) } } diff --git a/core/test-client/src/client_ext.rs b/core/test-client/src/client_ext.rs index a833472e445d8..f766f427cd724 100644 --- a/core/test-client/src/client_ext.rs +++ b/core/test-client/src/client_ext.rs @@ -17,7 +17,7 @@ //! Client extension for tests. use client::{self, Client}; -use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError}; +use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError, ForkChoiceStrategy}; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; use primitives::Blake2Hasher; @@ -57,6 +57,7 @@ impl TestClient for Client body: Some(block.extrinsics), finalized: false, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; self.import_block(import, None).map(|_| ()) @@ -73,6 +74,7 @@ impl TestClient for Client body: Some(block.extrinsics), finalized: true, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; self.import_block(import, None).map(|_| ()) From e48406850497c54fd34bc340bc432380e97f8ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Sun, 6 Jan 2019 16:43:51 +0000 Subject: [PATCH 14/44] Improve ondemand request dispatch (#1349) * core: fix bug on ondemand dispatch after a request was dispatched to the last peer the dispatch would loop forever on subsequent requests that aren't able to be fulfilled by any of the peers, since the last peer wasn't updated. * core: try to dispatch all pending ondemand requests --- core/network/src/on_demand.rs | 75 ++++++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index 59a5333a47802..0c5140f2fe06d 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -413,16 +413,24 @@ impl OnDemandCore where None => return, }; - let last_peer = self.idle_peers.back().cloned(); - while !self.pending_requests.is_empty() { + let mut last_peer = self.idle_peers.back().cloned(); + let mut unhandled_requests = VecDeque::new(); + + loop { let peer = match self.idle_peers.pop_front() { Some(peer) => peer, - None => return, + None => break, }; // check if request can (optimistically) be processed by the peer let can_be_processed_by_peer = { - let request = self.pending_requests.front().expect("checked in loop condition; qed"); + let request = match self.pending_requests.front() { + Some(r) => r, + None => { + self.idle_peers.push_front(peer); + break; + }, + }; let peer_best_block = self.best_blocks.get(&peer) .expect("entries are inserted into best_blocks when peer is connected; entries are removed from best_blocks when peer is disconnected; @@ -436,12 +444,16 @@ impl OnDemandCore where // we have enumerated all peers and noone can handle request if Some(peer) == last_peer { - break; + let request = self.pending_requests.pop_front().expect("checked in loop condition; qed"); + unhandled_requests.push_back(request); + last_peer = self.idle_peers.back().cloned(); } continue; } + last_peer = self.idle_peers.back().cloned(); + let mut request = self.pending_requests.pop_front().expect("checked in loop condition; qed"); request.timestamp = Instant::now(); trace!(target: "sync", "Dispatching remote request {} to peer {}", request.id, peer); @@ -449,6 +461,8 @@ impl OnDemandCore where service.execute_in_context(|ctx| ctx.send_message(peer, request.message())); self.active_peers.insert(peer, request); } + + self.pending_requests.append(&mut unhandled_requests); } } @@ -928,4 +942,55 @@ pub mod tests { assert!(!on_demand.core.lock().idle_peers.iter().any(|_| true)); assert_eq!(on_demand.core.lock().pending_requests.len(), 0); } + + #[test] + fn does_not_loop_forever_after_dispatching_request_to_last_peer() { + // this test is a regression for a bug where the dispatch function would + // loop forever after dispatching a request to the last peer, since the + // last peer was not updated + let (_x, on_demand) = dummy(true); + let queue = RwLock::new(VecDeque::new()); + let mut network = TestIo::new(&queue, None); + + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + + on_demand.on_connect(1, Roles::FULL, 200); + on_demand.on_connect(2, Roles::FULL, 200); + on_demand.on_connect(3, Roles::FULL, 250); + + assert_eq!(vec![1, 2], on_demand.core.lock().idle_peers.iter().cloned().collect::>()); + assert_eq!(on_demand.core.lock().pending_requests.len(), 1); + } + + #[test] + fn tries_to_send_all_pending_requests() { + let (_x, on_demand) = dummy(true); + let queue = RwLock::new(VecDeque::new()); + let mut network = TestIo::new(&queue, None); + + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 300, + retry_count: None, + }); + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + + on_demand.on_connect(1, Roles::FULL, 250); + + assert!(on_demand.core.lock().idle_peers.iter().cloned().collect::>().is_empty()); + assert_eq!(on_demand.core.lock().pending_requests.len(), 1); + } } From 40f100758e68eb221b4b30ae7f25dd30fbbbcbce Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Sun, 6 Jan 2019 17:44:52 +0100 Subject: [PATCH 15/44] Small update to documentation of `construct_runtime!` (#1353) Documentation says the `default` macro expands to `Module, Call, Storage, Event, Config`, but it actually uses the generic config: `Module, Call, Storage, Event, Config` --- srml/support/src/runtime.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srml/support/src/runtime.rs b/srml/support/src/runtime.rs index 5fcd8c565b261..11e2f667a724b 100644 --- a/srml/support/src/runtime.rs +++ b/srml/support/src/runtime.rs @@ -31,11 +31,11 @@ /// ) /// ``` /// -/// The module `System: system` will expand to `System: system::{Module, Call, Storage, Event, Config}`. +/// The module `System: system` will expand to `System: system::{Module, Call, Storage, Event, Config}`. /// The identifier `System` is the name of the module and the lower case identifier `system` is the /// name of the rust module for this module. /// The module `Test: test::{default, Log(Test)}` will expand to -/// `Test: test::{Module, Call, Storage, Event, Config, Log(Test)}`. +/// `Test: test::{Module, Call, Storage, Event, Config, Log(Test)}`. /// The module `Test2: test_with_long_module::{Module}` will expand to /// `Test2: test_with_long_module::{Module}`. /// From 238fd6124b379ce3bb0107fb94cb5a1b9b91ba60 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Sun, 6 Jan 2019 19:45:41 +0300 Subject: [PATCH 16/44] Fixed ancestry search/block queue interaction (#1337) * Fixed ancestry search - block queue interaction * Style --- core/network/src/sync.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/core/network/src/sync.rs b/core/network/src/sync.rs index 315156588edd5..54da778266fbf 100644 --- a/core/network/src/sync.rs +++ b/core/network/src/sync.rs @@ -23,7 +23,7 @@ use consensus::BlockOrigin; use consensus::import_queue::{ImportQueue, IncomingBlock}; use client::error::Error as ClientError; use blocks::BlockCollection; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero}; use runtime_primitives::generic::BlockId; use message::{self, generic::Message as GenericMessage}; use config::Roles; @@ -32,9 +32,10 @@ use config::Roles; const MAX_BLOCKS_TO_REQUEST: usize = 128; // Maximum blocks to store in the import queue. const MAX_IMPORTING_BLOCKS: usize = 2048; +// Number of blocks in the queue that prevents ancestry search. +const MAJOR_SYNC_BLOCKS: usize = 5; struct PeerSync { - pub common_hash: B::Hash, pub common_number: NumberFor, pub best_hash: B::Hash, pub best_number: NumberFor, @@ -141,16 +142,25 @@ impl ChainSync { (Ok(BlockStatus::KnownBad), _) => { protocol.report_peer(who, Severity::Bad(&format!("New peer with known bad best block {} ({}).", info.best_hash, info.best_number))); }, - (Ok(BlockStatus::Unknown), b) if b == As::sa(0) => { + (Ok(BlockStatus::Unknown), b) if b.is_zero() => { protocol.report_peer(who, Severity::Bad(&format!("New peer with unknown genesis hash {} ({}).", info.best_hash, info.best_number))); }, + (Ok(BlockStatus::Unknown), _) if self.import_queue.status().importing_count > MAJOR_SYNC_BLOCKS => { + // when actively syncing the common point moves too fast. + debug!(target:"sync", "New peer with unknown best hash {} ({}), assuming common block.", self.best_queued_hash, self.best_queued_number); + self.peers.insert(who, PeerSync { + common_number: self.best_queued_number, + best_hash: info.best_hash, + best_number: info.best_number, + state: PeerSyncState::Available, + }); + } (Ok(BlockStatus::Unknown), _) => { let our_best = self.best_queued_number; if our_best > As::sa(0) { let common_best = ::std::cmp::min(our_best, info.best_number); debug!(target:"sync", "New peer with unknown best hash {} ({}), searching for common ancestor.", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: self.genesis_hash, common_number: As::sa(0), best_hash: info.best_hash, best_number: info.best_number, @@ -161,7 +171,6 @@ impl ChainSync { // We are at genesis, just start downloading debug!(target:"sync", "New peer with best hash {} ({}).", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: self.genesis_hash, common_number: As::sa(0), best_hash: info.best_hash, best_number: info.best_number, @@ -173,7 +182,6 @@ impl ChainSync { (Ok(BlockStatus::Queued), _) | (Ok(BlockStatus::InChain), _) => { debug!(target:"sync", "New peer with known best hash {} ({}).", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: info.best_hash, common_number: info.best_number, best_hash: info.best_hash, best_number: info.best_number, @@ -230,7 +238,6 @@ impl ChainSync { match protocol.client().block_hash(n) { Ok(Some(block_hash)) if block_hash == block.hash => { if peer.common_number < n { - peer.common_hash = block.hash; peer.common_number = n; } peer.state = PeerSyncState::Available; @@ -300,15 +307,14 @@ impl ChainSync { // Update common blocks for (n, peer) in self.peers.iter_mut() { if let PeerSyncState::AncestorSearch(_) = peer.state { - continue; + // Abort search. + peer.state = PeerSyncState::Available; } trace!(target: "sync", "Updating peer {} info, ours={}, common={}, their best={}", n, number, peer.common_number, peer.best_number); if peer.best_number >= number { peer.common_number = number; - peer.common_hash = *hash; } else { peer.common_number = peer.best_number; - peer.common_hash = peer.best_hash; } } } @@ -379,10 +385,6 @@ impl ChainSync { pub(crate) fn restart(&mut self, protocol: &mut Context) { self.import_queue.clear(); self.blocks.clear(); - let ids: Vec = self.peers.keys().map(|p| *p).collect(); - for id in ids { - self.new_peer(protocol, id); - } match protocol.client().info() { Ok(info) => { self.best_queued_hash = info.best_queued_hash.unwrap_or(info.chain.best_hash); @@ -395,6 +397,10 @@ impl ChainSync { self.best_queued_number = As::sa(0); } } + let ids: Vec = self.peers.drain().map(|(id, _)| id).collect(); + for id in ids { + self.new_peer(protocol, id); + } } pub(crate) fn clear(&mut self) { From 5fd617d7917e62c3ca7b0f68d2cd884472181432 Mon Sep 17 00:00:00 2001 From: Aton Date: Mon, 7 Jan 2019 17:17:05 +0800 Subject: [PATCH 17/44] fix bug for revert (#1341) * must pass sub_matches to function, so that could get `` in revert * revert should del current best index block, not prev block --- core/client/db/src/lib.rs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 6fa16f3d9a6bc..9df93e45b56c6 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -865,7 +865,6 @@ impl client::backend::Backend for Backend whe match self.storage.state_db.revert_one() { Some(commit) => { apply_state_commit(&mut transaction, commit); - let removed = self.blockchain.header(BlockId::Number(best))?.ok_or_else( || client::error::ErrorKind::UnknownBlock( format!("Error reverting to {}. Block hash not found.", best)))?; @@ -880,18 +879,6 @@ impl client::backend::Backend for Backend whe self.storage.db.write(transaction).map_err(db_err)?; self.blockchain.update_meta(hash, best, true, false); self.blockchain.leaves.write().revert(removed.hash().clone(), removed.number().clone(), removed.parent_hash().clone()); -// let _removed = best.clone(); -// best -= As::sa(1); -// let header = self.blockchain.header(BlockId::Number(best))?.ok_or_else( -// || client::error::ErrorKind::UnknownBlock( -// format!("Error reverting to {}. Block header not found.", best)))?; -// -// let lookup_key = ::utils::number_and_hash_to_lookup_key(header.number().clone(), header.hash().clone()); -// transaction.put(columns::META, meta_keys::BEST_BLOCK, &lookup_key); -// transaction.delete(columns::KEY_LOOKUP, header.hash().as_ref()); -// self.storage.db.write(transaction).map_err(db_err)?; -// self.blockchain.update_meta(header.hash().clone(), best.clone(), true, false); -// self.blockchain.leaves.write().revert(header.hash().clone(), header.number().clone(), header.parent_hash().clone()); } None => return Ok(As::sa(c)) } From 4439f8c3f24a1cc1545788d127f924a3665e7556 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Mon, 7 Jan 2019 15:32:04 +0100 Subject: [PATCH 18/44] log on reorganization (#1356) --- Cargo.lock | 1 - core/cli/src/informant.rs | 35 +++++++++++++++++++++++++++++++++-- core/service/Cargo.toml | 1 - 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4bbb85274a3ca..19413904484da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3756,7 +3756,6 @@ dependencies = [ "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-client-db 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", "substrate-consensus-common 0.1.0", "substrate-executor 0.1.0", "substrate-keystore 0.1.0", diff --git a/core/cli/src/informant.rs b/core/cli/src/informant.rs index 5912da81262cf..e9dab4ae8beca 100644 --- a/core/cli/src/informant.rs +++ b/core/cli/src/informant.rs @@ -24,7 +24,9 @@ use tokio::runtime::TaskExecutor; use tokio::timer::Interval; use sysinfo::{get_current_pid, ProcessExt, System, SystemExt}; use network::{SyncState, SyncProvider}; -use client::BlockchainEvents; +use client::{backend::Backend, BlockchainEvents}; + +use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Header, As}; const TIMER_INTERVAL_MS: u64 = 5000; @@ -92,7 +94,36 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe }); let client = service.client(); - let display_block_import = client.import_notification_stream().for_each(|n| { + let mut last = match client.info() { + Ok(info) => Some((info.chain.best_number, info.chain.best_hash)), + Err(e) => { warn!("Error getting best block information: {:?}", e); None } + }; + + let display_block_import = client.import_notification_stream().for_each(move |n| { + // detect and log reorganizations. + if let Some((ref last_num, ref last_hash)) = last { + if n.header.parent_hash() != last_hash { + let tree_route = ::client::blockchain::tree_route( + client.backend().blockchain(), + BlockId::Hash(last_hash.clone()), + BlockId::Hash(n.hash), + ); + + match tree_route { + Ok(ref t) if !t.retracted().is_empty() => info!( + "Reorg from #{},{} to #{},{}, common ancestor #{},{}", + last_num, last_hash, + n.header.number(), n.hash, + t.common_block().number, t.common_block().hash, + ), + Ok(_) => {}, + Err(e) => warn!("Error computing tree route: {}", e), + } + } + } + + last = Some((n.header.number().clone(), n.hash.clone())); + info!(target: "substrate", "Imported #{} ({})", n.header.number(), n.hash); Ok(()) }); diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index 2eb3e9bc85bd0..7d5e931c95a3f 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -21,7 +21,6 @@ sr-io = { path = "../../core/sr-io" } sr-primitives = { path = "../../core/sr-primitives" } substrate-primitives = { path = "../../core/primitives" } substrate-consensus-common = { path = "../../core/consensus/common" } -substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives" } substrate-network = { path = "../../core/network" } substrate-client = { path = "../../core/client" } substrate-client-db = { path = "../../core/client/db" } From 15284330442543987d921d42626a0ca7819d0c9d Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Tue, 8 Jan 2019 01:53:37 +1100 Subject: [PATCH 19/44] Update SRML Council: prevent excess votes/computation (#1162) * fix: Add assertions to prevent excess votes and computation, and to end council seat election when no empty seats * Add assertion to prevent a vote from voters that provide a list of votes that exceeds the desired seats length, since otherise an attacker may be able to submit a very long list of `votes` that far exceeds the amount of candidates and waste more computation than a reasonable voting bond would cover. Added additional associated test that may be run with `cargo test -p srml-council` * Add assertion so expired council seats are not up for election when desired seat count changes during the voting period such that there are no longer any empty seats * Update comment to refer to `reporter` instead of `who` (target of inactivity), since the origin is the `reporter` * Update commment to refer more specifically to how many vote indexes, since `InactiveGracePeriod` is measured in vote indexes * Update comment for `ApprovalsOf` since previously the comment was a duplicate of the comment for `LastActiveOf`'s * Create variable to refer to `retaining_seats` to improve readability * Reference Notes: https://hackmd.io/nr6kPD2sR4urmljtvHs0CQ * WIP - length votes should be less than length candidates. pushing changes for reference so can fix * fix: Amount of candidate approval votes cannot exceed candidates amount. Candidates amount must be over zero. * Fix so that amount of candidate approval votes cannot exceed amount of candidates (instead of desired seats) * Add assertion to `set_approvals` such that amount of candidates to receive approval votes must be greater than zero. Add associated test * fix: Remove assertion preventing votes when empty seats is 0 * review-fix: Replace with is_zero and add corresponding test * Update seats.rs * Update seats.rs --- srml/council/src/seats.rs | 83 +++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 8 deletions(-) diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index bff476695b0e7..54579e356e3b5 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -94,9 +94,16 @@ decl_module! { fn set_approvals(origin, votes: Vec, index: Compact) { let who = ensure_signed(origin)?; let index: VoteIndex = index.into(); + let candidates = Self::candidates(); ensure!(!Self::presentation_active(), "no approval changes during presentation period"); ensure!(index == Self::vote_index(), "incorrect vote index"); + ensure!(!candidates.len().is_zero(), "amount of candidates to receive approval votes should be non-zero"); + // Prevent a vote from voters that provide a list of votes that exceeds the candidates length + // since otherise an attacker may be able to submit a very long list of `votes` that far exceeds + // the amount of candidates and waste more computation than a reasonable voting bond would cover. + ensure!(candidates.len() >= votes.len(), "amount of candidate approval votes cannot exceed amount of candidates"); + if !>::exists(&who) { // not yet a voter - deduct bond. // NOTE: this must be the last potential bailer, since it changes state. @@ -132,7 +139,7 @@ decl_module! { ensure!(Self::voter_last_active(&reporter).is_some(), "reporter must be a voter"); let last_active = Self::voter_last_active(&who).ok_or("target for inactivity cleanup must be active")?; ensure!(assumed_vote_index == Self::vote_index(), "vote index not current"); - ensure!(last_active < assumed_vote_index - Self::inactivity_grace_period(), "cannot reap during grace perid"); + ensure!(assumed_vote_index > last_active + Self::inactivity_grace_period(), "cannot reap during grace period"); let voters = Self::voters(); let reporter_index: u32 = reporter_index.into(); let reporter_index = reporter_index as usize; @@ -157,7 +164,7 @@ decl_module! { voters ); if valid { - // This only fails if `who` doesn't exist, which it clearly must do since its the origin. + // This only fails if `reporter` doesn't exist, which it clearly must do since its the origin. // Still, it's no more harmful to propagate any error at this point. >::repatriate_reserved(&who, &reporter, Self::voting_bond())?; Self::deposit_event(RawEvent::VoterReaped(who, reporter)); @@ -225,6 +232,7 @@ decl_module! { ) -> Result { let who = ensure_signed(origin)?; let total = total.into(); + ensure!(!total.is_zero(), "stake deposited to present winner and be added to leaderboard should be non-zero"); let index: VoteIndex = index.into(); let candidate = >::lookup(candidate)?; @@ -324,7 +332,7 @@ decl_storage! { pub CarryCount get(carry_count) config(): u32 = 2; /// How long to give each top candidate to present themselves after the vote ends. pub PresentationDuration get(presentation_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); - /// How many votes need to go by after a voter's last vote before they can be reaped if their + /// How many vote indexes need to go by after a target voter's last vote before they can be reaped if their /// approvals are moot. pub InactiveGracePeriod get(inactivity_grace_period) config(inactive_grace_period): VoteIndex = 1; /// How often (in blocks) to check for new votes. @@ -336,13 +344,16 @@ decl_storage! { // permanent state (always relevant, changes only at the finalisation of voting) /// The current council. When there's a vote going on, this should still be used for executive - /// matters. + /// matters. The block number (second element in the tuple) is the block that their position is + /// active until (calculated by the sum of the block number when the council member was elected + /// and their term duration). pub ActiveCouncil get(active_council) config(): Vec<(T::AccountId, T::BlockNumber)>; /// The total number of votes that have happened or are in progress. pub VoteCount get(vote_index): VoteIndex; // persistent state (always relevant, changes constantly) - /// The last cleared vote index that this voter was last active at. + /// A list of votes for each voter, respecting the last cleared vote index that this voter was + /// last active at. pub ApprovalsOf get(approvals_of): map T::AccountId => Vec; /// The vote index and list slot that the candidate `who` was registered or `None` if they are not /// currently registered. @@ -459,8 +470,9 @@ impl Module { let desired_seats = Self::desired_seats() as usize; let number = >::block_number(); let expiring = active_council.iter().take_while(|i| i.1 == number).map(|i| i.0.clone()).collect::>(); - if active_council.len() - expiring.len() < desired_seats { - let empty_seats = desired_seats - (active_council.len() - expiring.len()); + let retaining_seats = active_council.len() - expiring.len(); + if retaining_seats < desired_seats { + let empty_seats = desired_seats - retaining_seats; >::put((number + Self::presentation_duration(), empty_seats as u32, expiring)); let voters = Self::voters(); @@ -558,6 +570,7 @@ mod tests { assert_eq!(Council::voting_bond(), 3); assert_eq!(Council::present_slash_per_voter(), 1); assert_eq!(Council::presentation_duration(), 2); + assert_eq!(Council::inactivity_grace_period(), 1); assert_eq!(Council::voting_period(), 4); assert_eq!(Council::term_duration(), 5); assert_eq!(Council::desired_seats(), 2); @@ -723,6 +736,29 @@ mod tests { }); } + #[test] + fn setting_any_approval_vote_count_without_any_candidate_count_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(1); + + assert_eq!(Council::candidates().len(), 0); + + assert_noop!(Council::set_approvals(Origin::signed(4), vec![], 0.into()), "amount of candidates to receive approval votes should be non-zero"); + }); + } + + #[test] + fn setting_an_approval_vote_count_more_than_candidate_count_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(1); + + assert_ok!(Council::submit_candidacy(Origin::signed(5), 0.into())); + assert_eq!(Council::candidates().len(), 1); + + assert_noop!(Council::set_approvals(Origin::signed(4), vec![true, true], 0.into()), "amount of candidate approval votes cannot exceed amount of candidates"); + }); + } + #[test] fn resubmitting_voting_should_work() { with_externalities(&mut new_test_ext(false), || { @@ -735,6 +771,7 @@ mod tests { assert_ok!(Council::submit_candidacy(Origin::signed(2), 1.into())); assert_ok!(Council::submit_candidacy(Origin::signed(3), 2.into())); + assert_eq!(Council::candidates().len(), 3); assert_ok!(Council::set_approvals(Origin::signed(4), vec![true, false, true], 0.into())); assert_eq!(Council::approvals_of(4), vec![true, false, true]); @@ -749,6 +786,7 @@ mod tests { assert_ok!(Council::submit_candidacy(Origin::signed(5), 0.into())); assert_ok!(Council::submit_candidacy(Origin::signed(2), 1.into())); assert_ok!(Council::submit_candidacy(Origin::signed(3), 2.into())); + assert_eq!(Council::candidates().len(), 3); assert_ok!(Council::set_approvals(Origin::signed(1), vec![true], 0.into())); assert_ok!(Council::set_approvals(Origin::signed(2), vec![false, true, true], 0.into())); @@ -853,6 +891,19 @@ mod tests { }); } + #[test] + fn presentations_with_zero_staked_deposit_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(4); + assert_ok!(Council::submit_candidacy(Origin::signed(2), 0.into())); + assert_ok!(Council::set_approvals(Origin::signed(2), vec![true], 0.into())); + assert_ok!(Council::end_block(System::block_number())); + + System::set_block_number(6); + assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 0.into(), 0.into()), "stake deposited to present winner and be added to leaderboard should be non-zero"); + }); + } + #[test] fn double_presentations_should_be_punished() { with_externalities(&mut new_test_ext(false), || { @@ -1057,9 +1108,15 @@ mod tests { assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); + assert_eq!(Council::vote_index(), 2); + assert_eq!(Council::inactivity_grace_period(), 1); + assert_eq!(Council::voting_period(), 4); + assert_eq!(Council::voter_last_active(4), Some(0)); + assert_ok!(Council::reap_inactive_voter(Origin::signed(4), (Council::voters().iter().position(|&i| i == 4).unwrap() as u32).into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2.into(), + (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() )); @@ -1119,6 +1176,14 @@ mod tests { assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + + assert_eq!(Council::leaderboard(), Some(vec![ + (30, 3), + (40, 4), + (50, 5), + (60, 1) + ])); + assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into()), "candidate not worthy of leaderboard"); }); } @@ -1240,6 +1305,8 @@ mod tests { System::set_block_number(6); assert!(Council::presentation_active()); assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); + // leaderboard length is the empty seats plus the carry count (i.e. 5 + 2), where those + // to be carried are the lowest and stored in lowest indexes assert_eq!(Council::leaderboard(), Some(vec![ (0, 0), (0, 0), From 12cd2f935107890075fa870a848ac4b3d38f0eac Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Mon, 7 Jan 2019 15:54:59 +0100 Subject: [PATCH 20/44] Use primitive-types crate to unify Parity Ethereum primitives (#1187) * Unify primitive types with parity-ethereum * Update primtive-types patch version * Fix merge issue * Add necessary fixed-hash features * Fix node-primitives compile * Reexport impl_serde::serialize as bytes to avoid path changes --- Cargo.lock | 38 ++++++- core/primitives/Cargo.toml | 19 ++-- core/primitives/src/authority_id.rs | 1 - core/primitives/src/bytes.rs | 158 ---------------------------- core/primitives/src/hash.rs | 60 +---------- core/primitives/src/hexdisplay.rs | 3 +- core/primitives/src/lib.rs | 14 +-- core/primitives/src/uint.rs | 50 +-------- 8 files changed, 54 insertions(+), 289 deletions(-) delete mode 100644 core/primitives/src/bytes.rs diff --git a/Cargo.lock b/Cargo.lock index 19413904484da..bf5313a33880f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1016,6 +1016,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "indexmap" version = "1.0.2" @@ -2200,6 +2217,18 @@ dependencies = [ "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -3666,15 +3695,15 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3682,7 +3711,6 @@ dependencies = [ "sr-std 0.1.0", "substrate-serializer 0.1.0", "twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4422,6 +4450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4846,6 +4875,8 @@ dependencies = [ "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" "checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "141340095b15ed7491bd3d4ced9d20cebfb826174b6bb03386381f62b01e3d77" @@ -4951,6 +4982,7 @@ dependencies = [ "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28ea5118e2f41bfbc974b28d88c07621befd1fa5d6ec23549be96302a1a59dd2" "checksum pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a029430f0d744bc3d15dd474d591bed2402b645d024583082b9f63bb936dac6" +"checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" "checksum proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index 1489b046ba370..72fd73f5b45b4 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -4,17 +4,16 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -crunchy = { version = "0.2", default-features = false } sr-std = { path = "../sr-std", default-features = false } parity-codec = { version = "2.1", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } -fixed-hash = { version = "0.3.0", default-features = false } rustc-hex = { version = "2.0", default-features = false } serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -uint = { version = "0.5.0-beta", default-features = false } twox-hash = { version = "1.1.0", optional = true } byteorder = { version = "1.1", default-features = false } +primitive-types = { version = "0.1", default-features = false, features = ["codec"] } +impl-serde = { version = "0.1", optional = true } wasmi = { version = "0.4.2", optional = true } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } hash256-std-hasher = { git = "https://github.com/paritytech/trie", default-features = false } @@ -32,14 +31,14 @@ heapsize = "0.4" [features] default = ["std"] std = [ - "crunchy/std", "wasmi", - "uint/std", - "fixed-hash/std", - "fixed-hash/heapsize", - "fixed-hash/byteorder", - "fixed-hash/rustc-hex", - "fixed-hash/libc", + "primitive-types/std", + "primitive-types/serde", + "primitive-types/heapsize", + "primitive-types/byteorder", + "primitive-types/rustc-hex", + "primitive-types/libc", + "impl-serde", "parity-codec/std", "hash256-std-hasher/std", "hash-db/std", diff --git a/core/primitives/src/authority_id.rs b/core/primitives/src/authority_id.rs index 9f5e3c26ac234..9a6abf1f033e7 100644 --- a/core/primitives/src/authority_id.rs +++ b/core/primitives/src/authority_id.rs @@ -14,7 +14,6 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . - #[cfg(feature = "std")] use serde::{Serialize, Serializer, Deserialize, Deserializer}; use H256; diff --git a/core/primitives/src/bytes.rs b/core/primitives/src/bytes.rs deleted file mode 100644 index ea375a2530094..0000000000000 --- a/core/primitives/src/bytes.rs +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2017-2018 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate 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. - -// Substrate 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 Substrate. If not, see . - -//! Simple type for representing Vec with regards to serde. - -use core::fmt; - -use serde::{de, Serializer, Deserializer}; - -#[cfg(not(feature = "std"))] -mod alloc_types { - pub use ::alloc::string::String; - pub use ::alloc::vec::Vec; -} - -#[cfg(feature = "std")] -mod alloc_types { - pub use ::std::vec::Vec; - pub use ::std::string::String; -} - -pub use self::alloc_types::*; - -/// Serializes a slice of bytes. -pub fn serialize(bytes: &[u8], serializer: S) -> Result where - S: Serializer, -{ - let hex: String = ::rustc_hex::ToHex::to_hex(bytes); - serializer.serialize_str(&format!("0x{}", hex)) -} - -/// Serialize a slice of bytes as uint. -/// -/// The representation will have all leading zeros trimmed. -pub fn serialize_uint(bytes: &[u8], serializer: S) -> Result where - S: Serializer, -{ - let non_zero = bytes.iter().take_while(|b| **b == 0).count(); - let bytes = &bytes[non_zero..]; - if bytes.is_empty() { - return serializer.serialize_str("0x0"); - } - - let hex: String = ::rustc_hex::ToHex::to_hex(bytes); - let has_leading_zero = !hex.is_empty() && &hex[0..1] == "0"; - serializer.serialize_str( - &format!("0x{}", if has_leading_zero { &hex[1..] } else { &hex }) - ) -} - -/// Expected length of bytes vector. -#[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Debug))] -pub enum ExpectedLen { - /// Any length in bytes. - #[cfg_attr(not(feature = "std"), allow(unused))] - Any, - /// Exact length in bytes. - Exact(usize), - /// A bytes length between (min; max]. - Between(usize, usize), -} - -impl fmt::Display for ExpectedLen { - fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - match *self { - ExpectedLen::Any => write!(fmt, "even length"), - ExpectedLen::Exact(v) => write!(fmt, "length of {}", v * 2), - ExpectedLen::Between(min, max) => write!(fmt, "length between ({}; {}]", min * 2, max * 2), - } - } -} - -/// Deserialize into vector of bytes. -#[cfg(feature = "std")] -pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> where - D: Deserializer<'de>, -{ - deserialize_check_len(deserializer, ExpectedLen::Any) -} - -/// Deserialize into vector of bytes with additional size check. -pub fn deserialize_check_len<'de, D>(deserializer: D, len: ExpectedLen) -> Result, D::Error> where - D: Deserializer<'de>, -{ - struct Visitor { - len: ExpectedLen, - } - - impl<'a> de::Visitor<'a> for Visitor { - type Value = Vec; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - write!(formatter, "a 0x-prefixed hex string with {}", self.len) - } - - fn visit_str(self, v: &str) -> Result { - if v.len() < 2 || &v[0..2] != "0x" { - return Err(E::custom("prefix is missing")) - } - - let is_len_valid = match self.len { - // just make sure that we have all nibbles - ExpectedLen::Any => v.len() % 2 == 0, - ExpectedLen::Exact(len) => v.len() == 2 * len + 2, - ExpectedLen::Between(min, max) => v.len() <= 2 * max + 2 && v.len() > 2 * min + 2, - }; - - if !is_len_valid { - return Err(E::invalid_length(v.len() - 2, &self)) - } - - let bytes = match self.len { - ExpectedLen::Between(..) if v.len() % 2 != 0 => { - ::rustc_hex::FromHex::from_hex(&*format!("0{}", &v[2..])) - }, - _ => ::rustc_hex::FromHex::from_hex(&v[2..]) - }; - - #[cfg(feature = "std")] - fn format_err(e: ::rustc_hex::FromHexError) -> String { - format!("invalid hex value: {:?}", e) - } - - #[cfg(not(feature = "std"))] - fn format_err(e: ::rustc_hex::FromHexError) -> String { - match e { - ::rustc_hex::InvalidHexLength => format!("invalid hex value: invalid length"), - ::rustc_hex::InvalidHexCharacter(c, p) => - format!("invalid hex value: invalid character {} at position {}", c, p), - } - } - - bytes.map_err(|e| E::custom(format_err(e))) - } - - #[cfg(feature = "std")] - fn visit_string(self, v: String) -> Result { - self.visit_str(&v) - } - } - // TODO [ToDr] Use raw bytes if we switch to RLP / binencoding - // (visit_bytes, visit_bytes_buf) - deserializer.deserialize_str(Visitor { len }) -} diff --git a/core/primitives/src/hash.rs b/core/primitives/src/hash.rs index 8d04df26844db..98a906861fff5 100644 --- a/core/primitives/src/hash.rs +++ b/core/primitives/src/hash.rs @@ -16,65 +16,7 @@ //! A fixed hash type. -#[cfg(feature = "std")] -use serde::{Serialize, Serializer, Deserialize, Deserializer}; - -#[cfg(feature = "std")] -use bytes; - -macro_rules! impl_rest { - ($name: ident, $len: expr) => { - #[cfg(feature = "std")] - impl Serialize for $name { - fn serialize(&self, serializer: S) -> Result where S: Serializer { - bytes::serialize(&self.0, serializer) - } - } - - #[cfg(feature = "std")] - impl<'de> Deserialize<'de> for $name { - fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { - bytes::deserialize_check_len(deserializer, bytes::ExpectedLen::Exact($len)) - .map(|x| $name::from_slice(&x)) - } - } - - impl ::codec::Encode for $name { - fn using_encoded R>(&self, f: F) -> R { - self.0.using_encoded(f) - } - } - impl ::codec::Decode for $name { - fn decode(input: &mut I) -> Option { - <[u8; $len] as ::codec::Decode>::decode(input).map($name) - } - } - - #[cfg(feature = "std")] - impl From for $name { - fn from(val: u64) -> Self { - Self::from_low_u64_be(val) - } - } - } -} - -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 20 bytes (160 bits) size. - pub struct H160(20); -} -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 32 bytes (256 bits) size. - pub struct H256(32); -} -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 64 bytes (512 bits) size. - pub struct H512(64); -} - -impl_rest!(H160, 20); -impl_rest!(H256, 32); -impl_rest!(H512, 64); +pub use primitive_types::{H160, H256, H512}; /// Hash conversion. Used to convert between unbound associated hash types in traits, /// implemented by the same hash type. diff --git a/core/primitives/src/hexdisplay.rs b/core/primitives/src/hexdisplay.rs index f02b0f19b705f..b202fdf2e3fa9 100644 --- a/core/primitives/src/hexdisplay.rs +++ b/core/primitives/src/hexdisplay.rs @@ -57,7 +57,7 @@ impl AsBytesRef for [u8] { fn as_bytes_ref(&self) -> &[u8] { &self } } -impl AsBytesRef for ::bytes::Vec { +impl AsBytesRef for Vec { fn as_bytes_ref(&self) -> &[u8] { &self } } @@ -91,4 +91,3 @@ pub fn ascii_format(asciish: &[u8]) -> String { } r } - diff --git a/core/primitives/src/lib.rs b/core/primitives/src/lib.rs index 1bbfaafb24138..83f6a8d0bc9c5 100644 --- a/core/primitives/src/lib.rs +++ b/core/primitives/src/lib.rs @@ -21,12 +21,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(not(feature = "std"), feature(alloc))] -#[macro_use] -extern crate crunchy; -#[macro_use] -extern crate fixed_hash; -#[macro_use] -extern crate uint as uint_crate; +extern crate primitive_types; #[macro_use] extern crate parity_codec_derive; @@ -51,6 +46,10 @@ extern crate untrusted; #[macro_use] extern crate hex_literal; +#[cfg(feature = "std")] +#[macro_use] +extern crate impl_serde; + #[cfg(feature = "std")] #[macro_use] extern crate serde_derive; @@ -84,7 +83,8 @@ use rstd::prelude::*; use rstd::ops::Deref; #[cfg(feature = "std")] -pub mod bytes; +pub use impl_serde::serialize as bytes; + #[cfg(feature = "std")] pub mod hashing; #[cfg(feature = "std")] diff --git a/core/primitives/src/uint.rs b/core/primitives/src/uint.rs index 4727ed54bd069..0d46e81effc55 100644 --- a/core/primitives/src/uint.rs +++ b/core/primitives/src/uint.rs @@ -16,55 +16,7 @@ //! An unsigned fixed-size integer. -#[cfg(feature = "std")] -use serde::{Serialize, Serializer, Deserialize, Deserializer}; - -#[cfg(feature = "std")] -use bytes; - -macro_rules! impl_serde { - ($name: ident, $len: expr) => { - #[cfg(feature = "std")] - impl Serialize for $name { - fn serialize(&self, serializer: S) -> Result where S: Serializer { - let mut bytes = [0u8; $len * 8]; - self.to_big_endian(&mut bytes); - bytes::serialize_uint(&bytes, serializer) - } - } - - #[cfg(feature = "std")] - impl<'de> Deserialize<'de> for $name { - fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { - bytes::deserialize_check_len(deserializer, bytes::ExpectedLen::Between(0, $len * 8)) - .map(|x| (&*x).into()) - } - } - } -} - -macro_rules! impl_codec { - ($name: ident, $len: expr) => { - impl ::codec::Encode for $name { - fn using_encoded R>(&self, f: F) -> R { - let mut bytes = [0u8; $len * 8]; - self.to_little_endian(&mut bytes); - bytes.using_encoded(f) - } - } - - impl ::codec::Decode for $name { - fn decode(input: &mut I) -> Option { - <[u8; $len * 8] as ::codec::Decode>::decode(input) - .map(|b| $name::from_little_endian(&b)) - } - } - } -} - -construct_uint!(U256, 4); -impl_serde!(U256, 4); -impl_codec!(U256, 4); +pub use primitive_types::U256; #[cfg(test)] mod tests { From 500d270c647bde9b2f6dfd834467348030bcb51a Mon Sep 17 00:00:00 2001 From: cheme Date: Mon, 7 Jan 2019 16:05:47 +0100 Subject: [PATCH 21/44] Decl_storage macro : force traits. (#1317) * Missing trait def on two calls. Slight mcla refact on transfo. * Allways provide GenesisConfig even when useless (for runtime module export). * Revert "Allways provide GenesisConfig even when useless (for runtime module" This reverts commit 84a29bc592023d1ee107519c58693ec19dbde2d2. * Fix Vec usage (from rstd). --- .../procedural/src/storage/transformation.rs | 112 +++++++++++------- srml/support/src/storage/generator.rs | 26 ++++ 2 files changed, 92 insertions(+), 46 deletions(-) diff --git a/srml/support/procedural/src/storage/transformation.rs b/srml/support/procedural/src/storage/transformation.rs index 2a2179e0ec18f..104c5c830c895 100644 --- a/srml/support/procedural/src/storage/transformation.rs +++ b/srml/support/procedural/src/storage/transformation.rs @@ -169,7 +169,7 @@ fn decl_store_extra_genesis( .. } = sline; - let is_simple = if let DeclStorageType::Simple(..) = storage_type { true } else { false }; + let type_infos = get_type_infos(storage_type); let mut opt_build; // need build line @@ -180,20 +180,16 @@ fn decl_store_extra_genesis( let ident = &getter.getfn.content; quote!( #ident ) }; - let option_extracteed = if let DeclStorageType::Simple(ref st) = storage_type { - if ext::has_parametric_type(st, traitinstance) { - is_trait_needed = true; - has_trait_field = true; - } - ext::extract_type_option(st) - } else { None }; - let is_option = option_extracteed.is_some(); - let storage_type = option_extracteed.unwrap_or_else(|| quote!( #storage_type )); + if type_infos.is_simple && ext::has_parametric_type(type_infos.full_type, traitinstance) { + is_trait_needed = true; + has_trait_field = true; + } + let storage_type = type_infos.typ.clone(); config_field.extend(quote!( pub #ident: #storage_type, )); opt_build = Some(build.as_ref().map(|b| &b.expr.content).map(|b|quote!( #b )) .unwrap_or_else(|| quote!( (|config: &GenesisConfig<#traitinstance>| config.#ident.clone()) ))); let fielddefault = default_value.inner.get(0).as_ref().map(|d| &d.expr).map(|d| - if is_option { + if type_infos.is_option { quote!( #d.unwrap_or_default() ) } else { quote!( #d ) @@ -204,20 +200,25 @@ fn decl_store_extra_genesis( opt_build = build.as_ref().map(|b| &b.expr.content).map(|b| quote!( #b )); } + let typ = type_infos.typ; if let Some(builder) = opt_build { is_trait_needed = true; - if is_simple { + if type_infos.is_simple { builders.extend(quote!{{ use #scrate::codec::Encode; let v = (#builder)(&self); - r.insert(Self::hash(<#name<#traitinstance>>::key()).to_vec(), v.encode()); + r.insert(Self::hash( + <#name<#traitinstance> as #scrate::storage::generator::StorageValue<#typ>>::key() + ).to_vec(), v.encode()); }}); } else { + let kty = type_infos.map_key.clone().expect("is not simple; qed"); builders.extend(quote!{{ use #scrate::codec::Encode; let data = (#builder)(&self); for (k, v) in data.into_iter() { - r.insert(Self::hash(&<#name<#traitinstance>>::key_for(k)).to_vec(), v.encode()); + let key = <#name<#traitinstance> as #scrate::storage::generator::StorageMap<#kty, #typ>>::key_for(&k); + r.insert(Self::hash(&key[..]).to_vec(), v.encode()); } }}); } @@ -361,25 +362,22 @@ fn decl_storage_items( .. } = sline; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; - let is_option = extracted_opt.is_some(); + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; let fielddefault = default_value.inner.get(0).as_ref().map(|d| &d.expr).map(|d| quote!( #d )) .unwrap_or_else(|| quote!{ Default::default() }); - let typ = extracted_opt.unwrap_or(quote!( #gettype )); + let typ = type_infos.typ; - let option_simple_1 = if !is_option { + let option_simple_1 = if !type_infos.is_option { // raw type case quote!( unwrap_or_else ) } else { // Option<> type case quote!( or_else ) }; - let implementation = if is_simple { - let mutate_impl = if !is_option { + let implementation = if type_infos.is_simple { + let mutate_impl = if !type_infos.is_option { quote!{ >::put(&val, storage) } @@ -430,8 +428,8 @@ fn decl_storage_items( } } else { - let kty = stk.expect("is not simple; qed"); - let mutate_impl = if !is_option { + let kty = type_infos.map_key.expect("is not simple; qed"); + let mutate_impl = if !type_infos.is_option { quote!{ >::insert(key, &val, storage) } @@ -531,20 +529,19 @@ fn impl_store_fns( if let Some(getter) = getter { let get_fn = &getter.getfn.content; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; - let typ = extracted_opt.unwrap_or(quote!(#gettype)); - let item = if is_simple { + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; + + let typ = type_infos.typ; + let item = if type_infos.is_simple { quote!{ pub fn #get_fn() -> #gettype { <#name<#traitinstance> as #scrate::storage::generator::StorageValue<#typ>> :: get(&#scrate::storage::RuntimeStorage) } } } else { - let kty = stk.expect("is not simple; qed"); + let kty = type_infos.map_key.expect("is not simple; qed"); // map quote!{ pub fn #get_fn>(key: K) -> #gettype { @@ -576,14 +573,11 @@ fn store_functions_to_metadata ( .. } = sline; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; - let is_option = extracted_opt.is_some(); - let typ = extracted_opt.unwrap_or(quote!( #gettype )); - let stype = if is_simple { + let typ = type_infos.typ; + let stype = if type_infos.is_simple { let styp = clean_type_string(&typ.to_string()); quote!{ #scrate::storage::generator::StorageFunctionType::Plain( @@ -591,7 +585,7 @@ fn store_functions_to_metadata ( ) } } else { - let kty = stk.expect("is not simple; qed"); + let kty = type_infos.map_key.expect("is not simple; qed"); let kty = clean_type_string("e!(#kty).to_string()); let styp = clean_type_string(&typ.to_string()); quote!{ @@ -601,13 +595,13 @@ fn store_functions_to_metadata ( } } }; - let modifier = if !is_option { + let modifier = if type_infos.is_option { quote!{ - #scrate::storage::generator::StorageFunctionModifier::Default + #scrate::storage::generator::StorageFunctionModifier::Optional } } else { quote!{ - #scrate::storage::generator::StorageFunctionModifier::Optional + #scrate::storage::generator::StorageFunctionModifier::Default } }; let default = default_value.inner.get(0).as_ref().map(|d| &d.expr) @@ -647,10 +641,10 @@ fn store_functions_to_metadata ( let def_get = quote! { pub struct #struct_name<#traitinstance>(pub #scrate::rstd::marker::PhantomData<#traitinstance>); #[cfg(feature = "std")] - static #cache_name: #scrate::once_cell::sync::OnceCell> = #scrate::once_cell::sync::OnceCell::INIT; + static #cache_name: #scrate::once_cell::sync::OnceCell<#scrate::rstd::vec::Vec> = #scrate::once_cell::sync::OnceCell::INIT; #[cfg(feature = "std")] impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { - fn default_byte(&self) -> Vec { + fn default_byte(&self) -> #scrate::rstd::vec::Vec { use #scrate::codec::Encode; #cache_name.get_or_init(|| { let def_val: #gettype = #default; @@ -660,7 +654,7 @@ fn store_functions_to_metadata ( } #[cfg(not(feature = "std"))] impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { - fn default_byte(&self) -> Vec { + fn default_byte(&self) -> #scrate::rstd::vec::Vec { use #scrate::codec::Encode; let def_val: #gettype = #default; <#gettype as Encode>::encode(&def_val) @@ -677,3 +671,29 @@ fn store_functions_to_metadata ( } }) } + + +struct DeclStorageTypeInfos<'a> { + pub is_simple: bool, + pub full_type: &'a syn::Type, + pub is_option: bool, + pub typ: TokenStream2, + pub map_key: Option<&'a syn::Type>, +} + +fn get_type_infos(storage_type: &DeclStorageType) -> DeclStorageTypeInfos { + let (is_simple, extracted_type, map_key, full_type) = match storage_type { + DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), + DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), + }; + let is_option = extracted_type.is_some(); + let typ = extracted_type.unwrap_or(quote!( #full_type )); + DeclStorageTypeInfos { + is_simple, + full_type, + is_option, + typ, + map_key, + } +} + diff --git a/srml/support/src/storage/generator.rs b/srml/support/src/storage/generator.rs index e28dbda89e24d..7cf5e28dedf9a 100644 --- a/srml/support/src/storage/generator.rs +++ b/srml/support/src/storage/generator.rs @@ -946,3 +946,29 @@ mod test2 { type BlockNumber = u32; } } + +#[cfg(test)] +#[allow(dead_code)] +mod test3 { + pub trait Trait { + type Origin; + type BlockNumber; + } + decl_module! { + pub struct Module for enum Call where origin: T::Origin {} + } + decl_storage! { + trait Store for Module as Test { + Foo get(foo) config(initial_foo): u32; + } + } + + type PairOf = (T, T); + + struct TraitImpl {} + + impl Trait for TraitImpl { + type Origin = u32; + type BlockNumber = u32; + } +} From fc04966b51152b1b333b6fc52014222f83d7652a Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 7 Jan 2019 16:07:58 +0100 Subject: [PATCH 22/44] Invulnerabiity from slashing for certain validators (#1355) * Invulnerabiity from slashing * Update srml/staking/src/lib.rs Co-Authored-By: gavofyork --- core/test-runtime/wasm/Cargo.lock | 2 ++ .../substrate_test_runtime.compact.wasm | Bin 43804 -> 42266 bytes node/cli/src/chain_spec.rs | 2 ++ node/executor/src/lib.rs | 11 ++++++----- node/runtime/wasm/Cargo.lock | 2 ++ .../release/node_runtime.compact.wasm | Bin 841783 -> 807803 bytes srml/staking/src/lib.rs | 14 ++++++++++++++ srml/staking/src/mock.rs | 1 + srml/staking/src/tests.rs | 16 ++++++++++++++++ 9 files changed, 43 insertions(+), 5 deletions(-) diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 8791d2c1ff974..8721c4d21b369 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -1112,8 +1112,10 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 440d0288d7fb526d5efdb5c36574dda232b197d6..e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6 100644 GIT binary patch delta 14107 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 GenesisConfig { bonding_duration: 60 * MINUTES, offline_slash_grace: 4, minimum_validator_count: 4, + invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), }), democracy: Some(DemocracyConfig { launch_period: 10 * MINUTES, // 1 day per public referendum @@ -211,6 +212,7 @@ pub fn testnet_genesis( current_offline_slash: 0, current_session_reward: 0, offline_slash_grace: 0, + invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), }), democracy: Some(DemocracyConfig { launch_period: 9, diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 1c711f90c19de..8ab8a6ceab5ed 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -252,6 +252,7 @@ mod tests { current_offline_slash: 0, current_session_reward: 0, offline_slash_grace: 0, + invulnerables: vec![alice(), bob(), Charlie.to_raw_public().into()], }), democracy: Some(Default::default()), council_seats: Some(Default::default()), @@ -312,9 +313,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("bc4bdc45ba03402f9b4c7ec09834065c57205b1742bf2469ab9fc54544d8d002").into() + hex!("0bc6c118c326c65da9d0f93199f471aab4f636cfe87ab9a56c823024ca83995a").into() } else { - hex!("6bfbf71fa08d99f2488e295807059269cbc43ea21af3316a92406974593a1fc2").into() + hex!("58e1f1493e311d9b1fef3660426ee289736c38eb6f7d98911551c51765163056").into() }, if support_changes_trie { vec![changes_trie_log( @@ -340,7 +341,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("24f8ac99a6d98e9b53f4f6ef6ffdd12ba53ea3f247200a8126fa69c4b5047fbc").into(), + hex!("ced5607b16774cdbf750f8f7f0a99cd4afd7eb14db376a44bb8656f2ce02b18e").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -369,7 +370,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("7b7d3b509a444cdf214825d3354507823a4c91eafa493f0956448881a81ab797").into(), + hex!("8a506a6f72c7efb75fd069a8c4f57c8e0b6b5adbea9646522bda64d4c78f5412").into(), vec![], vec![ CheckedExtrinsic { @@ -659,7 +660,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("bfc8051f91071149cca8b8dca6290fdb82eda6868d48cfed25f8ca38ed3a1049").into(), + hex!("ce21753c3f806443c2758c982850861708054b65097fed82689e7b16cd5d6e24").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 0a44e0b021648..ab578ac885445 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -1472,8 +1472,10 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index fcb764ca1fb11099241f950674dc7e4ec262457b..b7c15d3bfc806b744e19f2f13d9837b14074b74a 100644 GIT binary patch literal 807803 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 z z$f@WH9q1m^syY=o=5(s<%916X#Mg3AoSF-o&E_{->$mdO7-Gms~z24Ro2}TN_Ufd-9d*P*4;T( zx;sbf4kyyAxihz2LnstzVxgW=nu2vHD?5GlX$r^wxIacQUf7;+SC)&h^M#vI zRg6<~F;ckgARI2KbDzTyL*PStR83Y-R!xgla}FwQF{kQfj{O%^Gu6lt;{;Vbb79?7 z9dlhbL0hhysFcWEMa5)Km{l{wnpjyoTO?&FK$KIn1$TEm@qzxTOZD=y;yT~dCRZtL za_BqU=czE90pLE)A5-w-F8;u${naYG)K}r-bWl*?DKtB!Ld-ItwsKg=;TeWuMRiJY zy+3VLt->r+SnvC`s0!=L4z5M=yeP~W^pmqVHu%pUU$mu9xI3j!%hO_GkK zJBs#1nB>bWa=u#Zi+nS9)EE1t&+7-c#cGJVb;I357wRQ$lbmN0Sr zz*qm+n1LTB;722#_?CawuHd|~D|kRT_~U&CKfV(j{OBrIFj~8U2O!jsARJB$Sha9C z5GCm2biQz-s)QRA3P)Gd4_AX~Pp}4d4nKn8_J9I$SE;)To;U!(eV4^P3O`=r51eb@ zF5-_71$P`RV|c+`&hWnqm=(nH*n;~NpZ_el%lQ090bM9O|6Xv%GyX9J_jo@4)=m-O zfQ_JtZdLa41t!$k4gC_w-gmScx-8Pr?JJjAsvC+k)mCjc6++#ngn}?isIOL^P`5#- zx2VBk1$PoPH?-iMz~_*5gq={<;4Mnn&wXK`$qs99X_W?-Y7O4fo(3y~>ilADLns#O zxzyO<1@|3l@-ST9#^<30_dMc<6xHpy+q16#b4?^mWM73l#3J1@{8VKB(YskH-N8_eH|{7u+xS{7b=|$=3r5?ifDz z^GB%r7ynQ6Mm}U7|6Fk2Ln@xczm0uI_zXbq{s7|L z58W+cssFm*&Z4}(D!3Q%`CkS1GCqG?!(PE%%vW45VEwDp~^2gr>*nlkYEKUqVFIAo8y(L;hWdo4FuPzuv;o9e*x+EM!>GD@s z+MxW^;-V^lqy)K8{`eQx!L*MYh6yHjYiR3oECC|XesZ_}8;1$QjtZc}j2=JN*y_hZs*U2sP+yj8(n%J7y2 z_Y8)=UvN+1vvdUOE`Z7z`7xZy=gJ7k01anuPU~tQk`PG@BU~f=mn-$zo_{4V! zs66VTsqg55UX8P@nTq*TwNi|g;U4-*UCzI9NmwoSau(JO=UYFcoSPKfulej*a9`(h z<90N=YpB^_Eb{C9BEO*%iu}SV&0eTAi%$8|l&nX=UC8H#1>En2=LQ9L1)tw4UlfTt_*}2x-pA*<1@~<}*QxNZ+Pm(c8`wj&Z@nV)t(cg&vg}(sYhnUj;dLO!ShS{( zP@e7u_kKRRwWI0nLQNk+P0#T)4RJd>v^cX$(`RZ;qm%vwB@+erNj?khNVrWX;lY&f za$iD7+F=RLsFLsuEg^;v=pD7avQn0)({R zoovpzV~1m-tn2ibCt8@{Z|IiIyllN_y<}wyu7fr{i_|^}QuDjQNJS0MUe>8`C4pNm z)j}zD%nn9ozg3;thU(06RaOfRHj3RV9c1V00&J8nUR{+g2CrHd!UP_;U3#s60oHlmg&^aNp!8$nmqb5S;WFtU~YmeAf|mZ*T!YB;K_Gv@iuBfcdUM6 z7akulDL$I@1HD^@w$P97=m&b~1kq{d16_DN(4*%A9eh5}-{%9}e?Bl8-~)pLJ}_3` z149QsFp%H_!wNny$lwD*4?gZiP>i0iQ-v1o?H5a|wP~85QZml!mZs2m|TBDV@ zR=8Dd@?O>UvNc+BY$De>^tBxlI3oXxg#Sc)_|IuDb$wea@9Nsi`~RV{t@=W##!cn% z&y&g>5^b#5o}~6iL$zGZ?3!NNe@>SjYAJ|w)NDc*3~m2&^s?5|t=_4Q{{T<7wwYU9 z&D?)xw|%WWtS)<4qn$yAgmW>0i#`YXAl9aRtZwQTK2LY@Vicy!w^HBU7sNRH-qQbl z9DcV+^c8lCwE6OLyu`90{$fgAer1WTF>h?)1Gn(2xI*w%+~!s%LFmXGGW6nSGhY=rrms*z6Y7w)zfZTCWuj%3HyCJTc#iTGHn2vP|{4a?Xvr^ zmI-2%Wx_7*&Xx%$w5zh~0hzvRPo~|qOc0|i6Sli`woH5YGL<0H7wyTkhn5Lqlx4c3 z^JUu8m#G;tp(3uj?Do_$L5#9YcXqx^t}oO2kZDDGGPznNh*6elZs*I?*OzG%$n;rz zGWFFmL5#9YccqlcE%Gp_Hht7jv|M6&douk*%LFmXGToh0rd7zZm#?P{p{GyVlW8w4 z6T~RXG_Uhz@_d=LfJ~pXCzGdTf*56)?&*A)_V#7!4Vjj;C)3_qCWuj%>E6zlsh=;? z_aW2A?a9}+LpZZZ;^asNdA7CCGX3$k1lx> zcDdy5@BET)@k@Sl$h4$AnOd|=5Th*91D!7uZZ}fBif==v_u7-`r&=b6QI_e!&X=jb zFVlA*)8h7I>aS&j7-g9r>U^1Sf0WYGrjY5~_GJ2*mI-2%WqP>tW%{`<(?*c#o%Uq< zxt0lHlx2FP^JT&fT}n^ig-ma^C(|#qOc0|i)1#d))4sk;n?a_xFf^;f#*>^o7n@WU z;M7cPkK&HI=!;kN3vNGqGeYsQe!-n$i;z8aDi()c7`(lpve6=6WDfL^PdKnr@6m(D z{0;W#ZBV^OkLQA7B0Si|qT2$T--{#ac)(-P-X@dZHG@OBxOFkQ=}7JUQ(KMn=^_{i zf>R^MW)Y_9tEN|!tk`}Sdh2X|98+bfaU%Ws3&o z!mfEfu!)|JZ|ldV`hhP22(H$xXRCYVphNQvYlVZcMt8`qA=`M?7VH1XohNIHb#1X? zr*-5jueDBitrKqJ7}fvS9d>K|+*&`k*3Yfo=FGM&!Ew?5fBHGsD&hNGj_1$BK-Mnl z-#p7rz2JDB=eY3&fAc6e^@8L1N&XA|<}qqQt>6~KMEo96%r$)%pIYULPSf`?3|lIU zA%7=@`K_i-0zca1YL3-$w6k;59zV0h)l{7stD1LpI9XcNRJDf9shCmj1JFhmv52*( zu7Cem^`LGTz&S-#{-r^M8`|^??ZuDK!;eMcV*)eF8x5-c8b=YksOd+1OpNJA?%>V$ zvFb3D=}$l6Lw@Y2>DI@poW|^0szT&*%%qb|4sLa@_bl35XMX1LGg{sQ#ysfncJ*)l zRj-O@<7{($Ce8K%#xQ#k3Iv?bN;TD!Cf==Xx>6S?sc8ds zUUwspz1qILim$SzGvrM~0xJ{NsH9=~F}q71jA7>b4sj z8F9zoK2Jw%dK;Iy6`=mSbauRA zX}9pYo*#z4&5F@MDI4yND+6fTHmr9in_tN6lC!dY zG@7g%bM@^$DzEA=ALNyI%DlFjQN7PR%f}}Av;Q8r=_*rdq6XNqNIdG;{|Ndi_5Qdj z239CSZm0U`)(O_o@115{i2LJqZ0LTXwaYZzC6}{z-Rr2I z4g1|h%W3Sl;XjV;dz|(6@Am%Z1S{XI*EZ{IG}$`K+I$MGe7nT@^9-xURBPa7|GVz_ z)&*ASbn9wxw%p)s>)ZQpe};9cb&|E!#(mDQe*FCdfByS}4*11L>n9_&JJ}j< z{ooV}hmf|o+fK5E?A|=e`b+2 z`|TdB`|f?{FAw{}!GHbf|NQ!o=q9O-B8OQ1HNw1KbUwEqVqAnP(OTp;ynPL0B^;HF zKXn);VIE)~1$***d^Z_hX^8MP(m#`LkH^2v3eP#jxr)Kv%!F}tyRAl|7!`AP zhwYNj+v2z&J0v2j;lyTO`MJMQ^{i*5_8zG3ndhQB@Y=9LfZu&)`jtafd~iJmR9iZi_{M=yWW)f?#H$%AMe5 zX?QTqG}1F-PUj;|fFhy1@{GLd9dma3DA<#)`-+DG;ZAVt^BcBUm_Yh3&59>X9&zax z+2Yko>6Lw|g@B|LJ@7466;Jz?Mb!rMrY&9y(o0;>AD9c8uqSbc31=_M1^t#So=>2v zY370^>`C1A5wp>^ZShP3zJX(?vVH9saB)bCFAhk3G6CP^=AtFcLssK_-?hd3K-HXE z*9Gb;o%29#`XW`k7W?Uy8zR+m6ZYi0wp#vy(%HPiJ{Q~Kksz^JYQekaT0odgwfhNc z!F#rNFoCM3n2VOMC*L!uYKblGOThPIa}f~sKd{Bz z1bmm8`4aZz2L`?$+T!*Ed?%arOW2bi8u%`?#Vv}j-Vp>DCjh^f(U!^V}pX0+2ZOz^jfOV0<(e$dlI*E zsn$EJKA+g)iUiUJHNVP(>6(wLzG5EiQ(MeV!1olhRtS6YQv=`SwwRTG?>lBQC+x}P z2EL!!;^G8+Pd3X-*pr_b_^zp8VR7k8f;o zX2XwC;=Pp&lNW27S{CE$zNZPE{6PmVNRiCEz>C%$Kkyk2CNc=ZJ6WjB_lJ`m)M;KhD7Sct?DhfbYtz(as2a61UvO{K!+jXO?1Rt3G}wY ztT)1*oM_P7DUNs}0pHKed@_tPBlV#m^Z%$y!!Po7qt-sz5bE`i>bne|54lcyW>c7`LKPQdqLGhf1WJGCH@4{<>Lo!k)ayAo|6QxG(|Vg=W5l zJ$bQ#?nPvL418xh;uOW#chReuafCIOS7k0UPpA?0UyS_|7ux zfv_iUGVs0G5sMP=ebg*3VNc#{;CqWB7AD~Ph?y^8Tu^S{d#fW}O~ChIGhf1 zHb=aafbTixn{nEJ$avj@BNOrB>~?% z&3p-a@_qx~2OM!@0=_4k{V!opK49Scpd+qJ!1s2uyo5dZpn>m0j<{O!O+EE6!Ou$7 z6fj{=K2+V~eAp3JAiZGsh;iRvq-QwUXJ6jdgwLw>k%T?@aAl6TQ4$+IA92L&AV-M@ zoo9rZhzvRjlVjDO^HE34N>CU#n+t=mCm*d8-QQFCm?JJu!1pFIU&5Yz%)ocPBc>XvF7?l7+aqWd|$!3 za00%Un&l;o-OmQTuVP&|0pD3>zJ#&G*}(TTtP3aLJJZaUFm^c`_%6V@u;QD#@%|K3 zu7+qDd>%|>QZ>2ds!q^R6o!;wMFHWGhZ+xaz?F(V-d^YIq4Xg_%;5)-y z9)z*^*}!)Z)`b)Boo?n!*prJ4eBZ>naG-Z|Y5bkH#trR3-wAndkze|XsoIN382g;7 zdo^!il{kU)7nr3djD5}q>EFg`a00&PoB0y<G%?7^jV>LJd-zjE!31f4!f$s-c4Nk!KW3#-3vANm6_d~1( zC*XUQSzf}}+-%^x6sy4r_%1ceOBj2Z4SYYss&4|mlg;uH#s+2s-;c5CtN7NqH1Y<9 zT80l+2xC*TUrS)^`h$RFSOZQV{rhIE5XJ^(gY=(Z4LAYcph{QOK3%0hG4TD=5m!}e zrS_$q_x!9>4Xg=cdvmoHS&p^g1o>EO)(>IqZ8qfNGpr3K;QOwbFJbI$Ht=16wc(EG z=M_K6D*X_~w&!a7e2#_Uj-~gqIX%MI4qctz7g#_}ptrYtrd4)D*ppuv^!6ndkb`_Q zpf4bJ#*;dvL|a&SZbf2sH2O&nj)6n}fQKEOyST`#LBeETwTtX)EIlXCApC`C_cCGZ?lx%f8!SC{EFaIA z^FbK9yQ}lD5=+vR=_Oq{e%9EJ5(=WhAsB68ba}`ZyBemN~yDKZv||4JCPS}MnbPg zLa#+aFGoTzL_*I-LQh3Pk4Hj}MnVroLia~P_e4T>A>?P^j`Gi2BXMqugszW-t|=2; zS^jx>B+jLg&?S-3j7aE$Na(ys=$uICtVrk#g#28b8hJ4>5}FVRjgN$mi-bl;LMtQn z`YVKdll(mLVtFLAED~B83B4Z)EsliVj)WE=q;i%Q3xl5x;?+o;mm(oOPz@|T7+z|Z zqz8Y&J3V9zLVBPTg!J$z2f} z_cC~=JB2|g=*sDsK}So6bT=r78FXIsyP!j%L%O*SVg`-0eit;MI;5MrAZE}&>36yz z3Et8D`&Kw6QY0f0@-60Tbw*)8@kJ!`StRsHB=k`v^g$%_UL^ERB=lw^^m-)pS|s#x zB=kZg^lT*bR3!9xB=l$`^iU*peDP7ZPMl4}(hx2Rm`I9~t>;%Is3_Jg!EXU@P!Ie$<= zrTNh52YfWbdE!bWFJG@fv^;eDQF%DuSxJ?X&&H4^V+dV;lpJPYE}%n zr~=Uv((y+noLUh_OL%q+q1%t9H7SOi6hr9uqf}!n5MAR&0*Tf*I{qltiWu@q459yz zQZ0!g@5B%`0|Axx2@8M(K0#~jWgtuB02e51)?qdB_L4?f3AX$Z$B|)ehhgyhTI=R z=EaaZW5}&B_hQ>b~ZG2FQnBDyRl0I4jC z26=o1qN&DIP-$dDnT-biSq60Z{jIwAhL&S!lEbTkgUf)H?ZC2Vnq>cS3=IsZ2L4zL z{H_}Kbv1yis{`}YO#4>@{mOuLcRwk6J591jIfe#yEdx3)eX8@aLpg>f*`^F=k}b<5 z8u(rr&?K9eNi5ZO-HdbZ<<513>{(5+VVOiTU9TKNXAakB1g>1Cf@Ayx1?d<#7$O=2 zt&tytr^l-k%rt0s7kX10~LO@t?EmeBd(;hLN@S0|R^`yu6ls>^c4(H0rRMa zo_Np0H+Ali60K-<$ zj&Rqi4*9N9oo_L)9d*r2U^~9m;dH{l?iy%!JA?|*be#M%|^^w>wip$f7^3F~R7u$~55kA(H$L{(T1e$#A(e~$-;}hdC(Qe=yly zY5z)ArDos$dEZJ2Iixfd_McNZ$oZEgRoFl33G5$zLny-cTtTy6b3J%D!-~LOr6R4( z4t7ax2Tz#ofN-eAHQNp#s>u!rhdJmHJ9xTHJ5cwKsHVhkRP?Gdd@_xni^-w6{K)tFw+)!kFTbx z4*>{MO=_(g_Y9%J=TPBMUDPaFjuoD5EtWD-U2p<2D?Ba=<3rswh4&TqZJ8$M2-aNl zUR5>k(R4L$>(n)GuDRwB4()c$u6YpERPzXjIp~s__gI@XuQoTjed@xz!(5nzLshKV zg$Yqjg-JNfL6;QfBW)IDEj{wLRHf#0OU?e^O+|WdKw6s#{V25w%`=-2;jjSKY!ia0 zCKDnY=AcVV=)O)dp_h~$+!feCE!MX{k#ZtWSzm1f!sgI~Y8wzFgZfwFfDrkv z8r9UIyDydQIOSP$&3#dk-kgT?BSp$-)tXa%UXfm(hV&#}rzbddTXU+)H(t>xzHzy- zgG&QDsHJ|Ns%)MM4>eog1VwsrKVK19u* z<@hVhArr5`g$Qb)UFB8XLaD}qZA>Zh`bTaVR#S)Y3|x$f?&^ynwVe&(J5eXE@jF83>2VNNs`CgD&O zYj$BmR8wIR4s*~Yg*mm&!mPztpP*a`7k6v+2Nx^S$!SQZC{ivU*PQCZ$_t&EhIG10 zm5bChr#eHCo}7ksmLlasc+II!R-`ASAswqox!7KFs^b*tacM{|SEO9fuQ}DT73run zqz@{S;HH6^Q=P9!zfME?fFk9_gql-*M3H`;hV)XUCT@PHIn{Sns-LDIU93pC!9t~4 zTeoZvW3SBblZ9(m=x4Ra57ku{yzwts@l;nJ5vFrh9kTGlo2m|(UJZtb!D?`=3M%Fy zsQ4(zWVuOfqbnCoh@Mp@G{X-IETsXmp4bhaXWA`R(iMape;HRpAi%Il+PNY7NMKAeVh zp-T0^G^AIkRJlE{=Dc2@NbgNU`ic^mTM%nb^$kUOR~phgmB8HQSaYg(DAL>0klv(7 zxs|f!RBuzHH>V*TsYtn9v*uLqriRh&z$M2`#jx9PeUfg+4M>ltPh*NJT&f45e{@de zs(Z~+U8OQ~O^~75dNsXM_i8RS_i6}-eS$T+R|8Q^y&A${4!WdQgPp={?02edoon;3 zFl$@qnr>DEVS^%8<2u(>R7C0xU$?7@aCuM>YU$R^RHT=sA-zPA&PqdigCe~o4e7Ot z^rAGRV-)H1G^8t46LUd8THCmEE{Sb_vB2I_xnIus>&1fTz;vqbT&f19glUmoF)*DL zG0D z?xBNZ>tD-y=|ppDM>uqmYj$e~QBAEK;V=hX(%PNcW@}eVO*>AR&`E(E)I$1@GNBXG zke;Ga9iN7Dnj#&ShV*JhIyMdI>56o88q%+nnntD}y;7w*-0x!7R!4uFx{e-e+<*@> zwC^>$h8}CIpg=?UyQF@OXsa_?TRHBWx*Y#uEJvWB9@gw~{D-j|frj#TNjd(jt#Yiz zSDvS8@-Zm}%NHriqf=0Rp&ZY!RNiCD)K+(((dvMPrM6~U-GN4{0~*TTC02J-TUJ+_ z_xNGzavWqVN1&k|*6eZ|WGqLZq5NG^jzilj$6CC{xylC|mcj>2Rg{OMp!`I6kJc2F z$E!3CNU24sx07FsVtyZ zY76j;763HV;F@g#p3wq;hVplb1^l`*ETB6|QT!r>^LRm-&d*X%o}nD`Pg797tCjv6!WtJhY3b1V*%afZ3Yp>z7Ku*Qs^>F#l)J2x|g zHEZ`&c2i1eH`^NR258sX&F&qso6nWq1e@1t>4rb6D0fa#$6r&FJEfq!Us3)r1?5sj zxqT}8D5kWJEsXX7v}^5S`?l@F?}SD_$iXH~|AQPH5z^|e6Xw1F`N8sr)V`wPGy`=i z0gp7OIKBk5EpiL(F6wdENWNH)Pjl+|X%0|oKplF5Bhv9@PF^2g;vedb?Zfr>Fek4L zFKH;&^J5#Sk2GK+JiH_-BMxTZ;UyJEe*}k@Yy(pl3)(WDv$Yw1pPHV>> zUK60UtpcqO*1y8g7LY+no8vFNYZYP#yH@KfKPRf8QWberj`%?e`+i2*_f{z=7b(i` zr=VP-D0}&owY51}WHe!$vyrjQ0m^du_qRFU_48lbfNrO-R*}4xMMJ+%Rqgxr>lDxB z#kn|Z@_|6LctxCVqD~rK4aWg}uQR&yPpTTw>{~!>z161B0&456u5WBrfOc)G(%g2d z(*9Qa_mti?P31Z4>N6vp$6A%3t-lO6zqsFrYYb(cHW97&`agwr>#Y`kh!JJiPS^m3^ zh2*tu@%jifl)qe-fi13vUSLyO^|6*VnFnPGFjAZB%Ld@Hhz_pHr*2{h+v?s!XC5C1 z;j{}LsL9hV^7^!kd@BzXZISiCVHX@xhlgDNrQXzF2z)#9tc!g4tc%7z$Y(<=pGm%R z+%0D4NsPR!99BEi2PoK@&pw4$YLTJC;*3HAW)vDY{SkLqJjyX}Sn4Q8p8Si`N-7Qu)a7MS5&mFlxwgOh*pDJxDs&9BN~)ne#58ak#qYW|vp%K_o>k-g+#=;1DxIMxeF4WT=ZjHze-#p_kunumvx5z*!)TOyNn!4nu zBQN<6Pl%mswYnAq`6hLPr20wk3AleVPLY9T^STPsdxFu{V1q+sti4gCaQ1B=R0-$G zfH%_F$({?25S~*+IGcuqHLEGNXC>N&%?zf)sEPuSy?=rAGY74JGcclL#CNl7bbMb0qr93TG3< zS~H%-Y&V&)Y$w~$m@CxD`h2DUb=N1>gyolmU#|MQZp)MX{qn@mZm^9!^k(&w{mC1D zQ6Wo>_*)P-&a`7n*UJ8BU_PGQ00?YoL%!%I@j?|}kJe_k7-pR5NN^) z=n(+Ns@DfV(e4c)`ZyO@Ab&p73aiJD*;Z@sjL(7~SlI5hR%@>eDhIL#s>}>f{k~{# zW07?0%yi3b8a4!0y3#rlIl^h>->j@ZQXMHxAvSB>E|V#tPgR0T>z%pLDs>Y-PE{u5 zYK@G05?cjWq4^9ITCWv~3T;v-&fY~Gwh)JP81;;?p-_5X)f!rE{m;pdnrW6Zo4dRD zqmd=qw>W-gso>hBCYqLRDmzk-X*n%&pSDa2FH)NnFV%&q!S+oWXv?G;E4>&@Y6nQr zL6ge+7Iir+%JwY^m@=sAq8JR^KsgKf6m4lNlyax?3fGT(~!Ak=4j?LkD7Xb+H_Y7b!Xw9*GqWwf;x zLzZfl#djK2RlW(9(gX`tTy=%-u6Vi+K!r}G)J+>}X&r4cxa@c+v<7>*JZn^IPC<--8-kTxVt}2ixzC zzj?7;N2+h5%7!QNZjK(oZuud+uO?eA`zB3{feg(N{*3uMAOS;-!s| z1znv&$q2D9v&Ehfugo40dsa#!%44x#73gAPSYS?gsVuOfC#5~Gr-fv9uD|qr`}_8$ zn-zUmpo$R*B2$%}!?3+BmuIwL39_JC>M#pPO}m1=nbM~CyBRodh`&YrE#a@KU;^z7 z>KGGbuh-KD$z(#ql$dOh)`pc5ut{u8Wk9k@(ZX@FfL}Gw26yaDH=Oc=zcXvv-^{>R@hrX zrx8fd-sS?2L(4=LuAwrFb~WhYRXUzFHN;9@t)WW&u=B>WM%Vc!V_xP#TK%YRc{{2S}i-#{1sy7aEStwuIv+gN$@-C5FV&ZXn_-!~{}*Xb|& z+HC5xnf2EHmTFyC!2gauJH=qZvvtxXf>N&Tx1*G+d+yDRZS>uDR;5}lcZ6XFWm7^J zUHitM)M+#qz-V@crd5p^sm;Q66{8@UZ-Ed}@r%G}q@dUaFq!VG46)HeZ&{o4daXOM z=a102mKp@0j1}9>TDQgvIMv>n2^PC9TW6+P=!Dq4GRLdtwO3}0YHoMToMn}oVHuh8 zRI|K|HBvRpTW3bAX4$W`m36eKwK7!IQJ|BBpF%Bav(7dosI$zVUzq~O5hx<4hJJTW zU7Hb($CTb^cltUF;#6GKC=BPTnZ{wwXo(f~^-O~?HL%)T56Vh#2OO5E9ti6AX6#;5 zUNsbJ-gLJNZ4WQjYgIj!ofs}+;|5BkXzgmD@hNWJC$pKB?)QCIU9=y{tXFJiS8?3f zzPv$XS+iCpiP*{lSy zduKK*ZAxoeue1dp-Pv2&CL__W1+_qj4c*yw^~r7>_cAV-&c(!%C)Ihw{Ui|IGQ;*l zg;)2KfSyXEb3yI{3$1o7F~`z|Tj^Ni5RTtqQ)>LyAaK8&U3;fS5BgQN)RTK^Rr5)O zVzje0*+co5RNWK%#L)88yZKTRe!_NOEF8YXNAd;XrV=LBf!w`Z_I?iwNb0ih$k=_| zu;-2n(9yDAnkf(7x3Mz2T5u5V7a97ID=a#1HS169a+r<@&R&@-IkUIk>(IsPow-(b4ebj!zQ?sh7!itH+5Ziv@7Nb6(1b0(=rW^*=|T<) zxLY_$qerj>w}7}dNsz*-%nhA0xDeGCSh|;uzMz^q4yPD*)}>q8geij~Cl>RRK-pG2 zX;Eq_h#%3i=;XV)bHUngC+b`@#(V(U9P`AW>JwCSDphBo+?inK0IgcsNkyTq=FY{A z(C+EVtk`7?dKR4iIA2*Nn+esO;3%Hm36A2~onSwc-3|0dRJVeSCA$@9R#mqGgKX8U z*a$Y!*^@vJT8;eBo#&8}4ZLY?i8w7suQgx^K#i?(466~bo?B8Azd4SH1Geiak<~Ce zuzR(V5za7`huYEZ4eg&p?QnWY4YhalCpiFzE&YG&y?c~pSAE}k9`{z=x^-{Wt?uep^+VFRS1qX;B)SEnTb2m)X(NOz zJBW$GFd6^hmGMk8Ev+m`RtRg2gc>9;*ns8OCLS-xZaf~#Nvw&2?J=J5qY-36fY{1l z$HX=mKgRK75-i(+_(9BkzQ5nz=W*|??yBxq16k0N&bj;Sv(MhY{d@m@d+)0sm+bG= zvVU(em?!%;ihZ+U9?aQ97rf>v%!HMv#>HU$VhHJCSn0lsl>&i_WTl&U%O^cC4A{|; zC3U4M) zf$D>eFBk0gR0!{L5(e!+ONlkii?sUp5YdM$s~@pnCc zoBUlpxRLQ`+G=M!)3*xzw>AvXC|ic%h}v?@H$q1^=5O*D5M~|DHzu-A7)K#6O)!g5 zeXcUzDkJ4cD*0vLLZPaLo*}nxN(OP%0o&AoTRCG!n5~;ZlkReZX3ag&Lqs3kvygFf zXkaj-LyY!6|kF`0&U z!_*Sg5m2zDhQP~B4FQ8q4cRNvEdBvs$>wScD%S+NwvbZaqnhGFvqJr7v8&h{sBV$v zh;Bh&BXqRjkc)ckWUa@Ms9$zbzw%1tyzABw+u`g6Mg)S5A*4uPR}ZfI^6^aui@n7h!T~r|>0e`fM7a(nO=XgKGoe8*#tY+lLs%7Pb>Q zf+6;BNB}#$f5q*?>!ZiTL)+4gEzVcwGOfoR~wuK`U4N;@z;_!iwMI|UVlNgq z&ODQukOrAe{O7KactK!>K3KG8P|vTiAiR2Xd;=# z(Hs#x*G~qXpu;MNY`g?A0!wPr7(6T|EC4#4~oyE^*HS z3rc3yP01@1S4U6Lp=IJ0o_v5})MWV;ajCp!`LhP1&#HyG%s>R9X2HSMr$AXX*-AbT zvDU51i&p749w+aXXgRbRhCfl%K^C=uBT?668|rBE#&`62a8j4E={YCTF;;b4oE6+D z>#3n>Ilh+er6O$R-5H!}x~fo>y?CYNulk7ltE~SA+#(3|JWpv7AO@s2lV1*Qs!yil zC}38IutoounKuL2YxUhT3>k0x#69f#b>LL7_R2)m_y@Spu6d;hlheC#mvIGb4;;sZ z#?yHTSOpV#M)h#U|D@LsxmQBNAh|1rGCIN6iit!zIIc_%lEp2P1FwjEW1wUl!+%5B z!`U|nz0!>RHzFgz(L=(~u5h%FM!5^NY6v=wL>Etw*GcfKM|wPHotq^`CIh#9RFSts zh$E-K6{o zga>uaLa^^fc?dR&lw*@B-)m(XX8Kvd4_ZMXT~)?Ep`v5iX-8L#zwC*$ASO7b9nouF z4QhZLWeoN!+6=^u@3>cyF>c2UexdwX^y?T)M88%-AzJt01WOR6vnfmP3TA01`toch zuQ|bDIuPD9x*VK##+a42F9d2bW->P1b*%EU8kMCQ)#8@lri&|?7Z-xy)0gKiw!Pby z12pnWsuscd(BhzFcy=^S*rBzk_RM7$+e4<5ziobcXO7}b#(jR*3UT2_=7kBc@upjo zH!@#1vWsKcz1&@KEc;e2#+Q=+hPC3q**4Oin)z1JgGgAoG^%J3`W|{c)!C|_=j~#h6t-cmwW@~~pO^(Iw^NKJ zjozfi2I`ue;edLh*pN!OF9b;Totjvp*uLA<8`IhLO{aNnMAE2z&r0*!U+g!zz8_NI z4@6eWp}qYg4O%p^+o%Y-&K z+Ox`*I(>$L;z2pTb?qJ9BE!MlU9`3>Bil5)d1=AIkTWLN$}3DRTwQ4G3D}x>j)SRd z*NE3iC>|yOfPnaBvMinZ<;ejFk0Z$#t^=|66ppzu=^JnVHQ3}zHfZEnG~H^IVG7@#J-sz%)sfxJ`FqDkUEF{6ND zZ$RyhWB9lz-*pV{E7#twpextzZ7KN9)!LO-BfuG9^sVS^IJa*f9^gYEm^a~8omm#{ z+x(q1jH_jUen)#EB3UIAnnHjuZJjpR_QXvQ(`7uKW3h3e zX?n)uI+o8v0y5kf6rYfCZ10)T;?@Qa4xE}?5g8LdmmycfJSk;tP=`uUYw9fLiDhGiUEV~Fb?{#YKNcv{la;an%ksQtW1LRboor=J@ zO0MnUZ=Jv0{Pnb#QDFRHdfOOUT1{|AZ$czCv`U%^xY=3Hg~x!ibp}}(4Y>2KH{k6N zt0svWzxhG3on4ijxBMXQxx={|jnGRq4jFw6jY-;Qj73IT7))iPZEG~|PPa82)BrPC zP!ik~q-CKpG%xY|m^mNjCx50I(+8vBxveq%#5TwDqhU;Esxje%ogt<(DP<^=En*T| z+%7Rm)=BOMVp4msH{)@Iv%~Wd6D{1B&;s)4aQ<8c6-*7dH|F@Zpz?`rLgga?DrX~9 zNN-{>;*cdbGPg;XTqI#~2vB_C99tOZu(w4RCK(WjUb$be*slORwC-#XD%Q}qHp=1o z9+CwrSvg~uN7aJ^TaXOZfrgW30sMd+HpJ12{A z#i~Uc7KhSuBsw&Q4Vh>brZ*Hr1!!s_@EMs%3nmlyNG7gKsTxhnk>=}>O5*!OEN4>z zmRfe8&>w4V=o%Gv7+rMFthBpCRHf;NCS0Xlx%!Mwi(*~$9}1c-Qy^7Z$cbfuUX1-G zN0G&#x$0}~N3#rZi$RCtMrMV@AwqH6sydAVi7jHV$1v=R%G5>8#k8Uvp6PNnbv|6V znv7F7A~mSR%wz2!i|ggwiB%^VYb^X3gYir%%C;;- z>Yc|vtbC5NJjdG@J@@Jai7Ik6UTvx*%&WY{9F1@S<&&dZDxVzHbRILSWLg7^?isGZ z*jme}%?T2S7+rZ_Ms=+g3r}ahQhgw(KXlKgd5g4^hO%Z~h+qee$8bsGmI`UyBxJ7r z9){sBQ(4pPAzSs<1XD#X!YB_HS1WmcNcz6)-|H)Txk~3J1+aL>_`0@ri?;vQX&Dnc zX#7$|UoP9Z{AAM3d;_a*Ol~#xw$H~ryZ?GKhxh5Lh{g@B3UFY?98SKTPPn|x%8w_q zvJjy(agU7p&7@%pXD`o=nlpezhC^aRoA9CQC1l~oK;Dvs*t28jf))hZI33&gd3;+PBI^o_|w z0hR#c@48>$+gN9aBW#(GI>+>^OLP=+m`QS8W|xv;b+m7QgKV?7?up_mB`;lFT>nII z?Gr3rOkF22Nww^nNzuD4`Lq}wUV?w4D>CO-bzMD{{3~6Tk0t+7S3D;FOxHcfk`L*6 zg}EW+DNcS?zYiWuep=Vv$C7`l>y^inr*(y)>bO;WY{~m|Wv4}yz;4;SV~D~zz1aqy zcHAg(IRi4PAI1$mX*i~*5-f#`EOZ5;pK0b{2EQ~wk~2m!>whN}k-D*&{%@%vQ~HlA zOZG^LCX932);NxJWsPH@>o0}1jvuoWH95b>i{&DqrrTO_bAn6fw)8qKXdMNYYmR5% z!e!-nb~l%+j;A+sVNaKbx#ZeZBq{bE%f68de&N@0IdEJ08ZP^8O>XCM=vaD`%kE?8 z4P4f5OJBrg&#lmIqP=LZ0MJ#s%k2 z%Ek7#Ov-0*mEo>3w^34V)*4At9;#hOiN!r93LPa9rNx@xzT#AI^(%3+Cgq1I+^Zmk zLL>MLR?TO?)-4n)g0|9%(+7EC`vBukIF?C1d{#TEEdNF)*UmA+$Jj6Cxg_ovgF7Z2 z-JG46{U?fN`(Y?_GaF3urzf402j2PAFfTeMyYF~vLc;Yo@&h?7OM;DpZy$Dw{C3~O zIFa(hn@Srvl&p$;7K(hBiv+ZEcSsC>^dc5Z5zrqUv^9oD#S@HNxf`8AdWe0uRyPca zd_2rg6k%_Wm{nTx0+Mj0A-9iCiS6J-pdz`YFdk&~D$tYewMr3xcTQFtfuhx6hW{}= zMffwLGxUu5Ro1^sa7vHr>?oDcg|%X(>DoGaJRfBzia{~d8La(+bb+GJ4oJhNfgs?7 z4Fj{zQxhB#uN`(&Rq$RY;4^GrwJ=NvZ2Pt1z=gN)fWVj}%SZ~=fNmA5LEFMxda4*z zKbY3F@S|U5r-+&@lUs>O-G$9}i<}*CjGl(V5F-}h7jK!Yt>%p~O(Z=VTFbyvHZCdrK7wUDfU_spB}V z(!=>tG>k>Z85HAQu`7ISrP$s4?&x@a6l|za8Y+q?%?z#wlwQ{iPNQ_UM(MyWB1%JK zbU+GuS129n42O7~fQXNja6{-y7hEnndZ9w@O(FLx$h~UFji*RbZfoQP>1S|%wZ*dx zz4@$A=*j+q&^u+qIu;obNDdaY4;`VT(@;7WKT{E;CUmZ4>;ai#Lo)W{kx@w9+t zT6qJzv~(xbUQ9M-35qnNS{$UxFNb4~VP*M9VJGiw-t27oosXYQO2rb6o~rvx*e`D) zA1GoyrkXmjiWJCJ&$z=5B0`)vdKL55kker1hZ@WXtxcrU2>!Qw(3j%O2)7X;I1iK_$~P!rOsJ zVMe2oZB}?zidd1Oiv7X|pzoKBjoG&sYC#EuBW)6WHn`|(oJj~2Ub7AvgHD*cNn%Z>oEWDW!7sJ|FW|X6AJ2Qfh z6vTSgF(t&SrM04h($j^yYzUyjp%o3tz}SFd&C(@^8Y~?-7g>7j`?;@ZUyH{0=>r0< zV*K4H#^0S{{9PhO;8|q+hzwj>fS||}8Z~eSy*Ti$F8sd<>nK($ShvA9f`!ALJ4O0N zkTkRZfS79$URqeWO+Zl7WgA13&KqUh4u{C>WEV8Bi$NecWDyRFE+ZlWfzLvq1!rXo z^o%H>z%>WW1CcgCA6Jf5pud{0y` z(_!0+H*lXC(?J+cBT-Ny0?lq`Fw=On98rc-WG)0{7B3uSE(l#h|3?_JqkZM7vj_G+ zEEkQ?f9qqWyBVQ>D&DV_M|^|frK+>5ym7rqbR+6&T{*}bx?7hNoE8ZSIkcqjmWo#`~(vU~VAEMwcgxLE)@AjoaB( z(5l;$ex;Op$6=sS!VOpEbsS@LIS401{h6-&I85i~TWZS2rQ9k1J-}Tao_L>)<*C-_ zCP8V`Dc5|$Fl!CjZcIM)zEaVi$f%!tUk!|p#{0GMCZE4y1&lS`I6O6f6kV|!=0E+b1*&N+&#-0l@G=#`sbB6|xXRmekE zV{+bsY28pqO%@B)56t?=Z8~NV(q?nj3+{}P5DEljE-Blt3xWn*VkX?B_SVQ$)7 zNh-p1)2|;1&^XQ3*y*7};3#)9Xg1du+;>4}HzvF7Mt4V&&pm#^Q^1|>e%~$i zOeFc4c)uIndB0i#O#|J@)BR$nyGb5KnGq7B`@qj3qHnUmMFX1DVBrVKgcx5M6#epL zj4lNL9%%w<3|Y^^UUUzHN8M|`q8 z?YnN5y8{$o=GTv{<_oCzJ>k{qyn>`7*H-^6pMK&jL!YtFA@O6`_ov}8A0=(5BmoOg zgKoY_2((FsF%Tc;Xfh@Hm@l(O5ja{tnKgYJ2CgTw@(DI&oF0@FJJs=t$+K#VNQPrZaS&LKzm zsh69>W!D=mRKTmZq`IOa;`fBT_D?z(Q-r~!IWa6Y@#leB-wci8B4Q-Pia1_Zh+Wv~ zjwLy!mvG_zDZ^yvXq@fCV!=JrKEfmph*Y3E04zIWi$e|X9O5$2(HW>b{F6_;)z<~} z)jW{Y6JKI!7hk!bDWbO=sYs-*8U*t^PIK4;C24uDLX5oI!}X;qWmi5h_LR9p*jYZH z$9DIKfNMOje6wyPxNIckCzkJgj2r_#W4VO)TM#!V@Md3l*k4SnHG2`4juAM~z$Yw_7 zbf4doC7?w#i|Jkg6&3f_bT8l+S^-7Ev6PfDmwJt^a2zj_yE5zy*!XJemh5=pnU*LO z;kH{^2ra>oRt);an^qL%)nS(_um!%PKqI|Qh2C^Sy&qHFx84hM3;-Dqr&Sx_MQCK3 zFOu~m^n-rX@Ir*3j}YKEwC*cAIwECBt76HG(-A2IW*#O_O-H0ur*2RxM&-k#Uk0#D zo5flY!vr~W?grH$Xn?xq*gCLD9~%JB!4^^+gayawt)`#7SB(q?7HP6)l6?*z@4isP zV5)Zme-BZ-E%jw1Iy9d>f>m+OMR$i0tD=N1x`#lc7?gw&1F`#_)SWuWvv2d3CN7OeGm zzzf)om5NPRqwSWA&h_Ey)#@;i#`hp`##RwI5ICKiHe^AIcmiv@h6A;KIZwN_eh47s z0|&p1f{gm)e$GKwP0P$lA*?|RXKO@Z>L+Ui$x7x#&QT!wgJQ7oo^W(X$*~X8T#@|J ze-~~|lzGi3g$#36+6?&oL#0gdWI{ji#_03`)z7DQOs2O)rpxS2`0hoMcBjTASHtLT zOUWeBSNj?hgY<=ubf|A1lGK*F(z;{gwysYvw@;N!POOPf*#|_)A~}hKu#z%$$`D2kI zZ2yW9`l`FcZUZdTTVOL`rWmJqE{JjGkQEhTA-KNyM^?LL>$NHkoRV(XDN6*f76w-+ z+IISM`Z}5j?b1rs@_l6{U}Z>r8l-VKZE0MRS-(-s)i|Xv9-k?xw-y~+((Y!OJSLVC z|MZ#Dr-A(zAL5D77)EFxTABMHN~b?GT+;C;;XAvyn}v?(B|-;eo&z09gR)pbXV@RC zpb^1T^Whpdu2;tofw$q4h=j~4Db5orSpndslH{*XSz!V>fOZVS)~$_LHRvOTK$$&U zW~`|r^};_*az?um&`HhN%*RFqF$Nf$DRX2`M5_o7W>vcjOtK(yYDj}9bEcHiAabm4 zno>XLDGZzbhfxX?I~%2q&p2KLScGo;y^RL5YP=4%^dU?@VM3!X^MKU?mAwkImVfz! zDF&0G#1U{`>DK}?m?+jMC~z6B;N2~Uk4`48Emt6 zch7B((%V^f)Nby;;N*Fm`-ZvAQL0sc?dA>+UUlB){_5Q3D7}4%iQ5|Nm4jEDx4Cmn z#g$XdU8Nme&jY(V=Jt-#+u4b^-Mgy?$L2O?yf+}qU2~hGRQo8jo0|+?cHZXBF%^@k z=B^nWJ#TY&&g~tgx3djbyLX4Q)!rP~H3$3kbDN{|_Tiza=B^!Zn*Dj2J2|&GN^c)t zJJsBEgX?Jy+(8JRsP1m9?v7V?96c23-BjJZq`G@?b@$5Zu5S5IRYo#TXob!B!rg%= zMqgTsQJ1T<8aclg&}6&dn&|>|*lyQQ>p|>#8>lqx0ydj!7c|7Vzk=o2u7M%gE<9C;)>y zSD)!L5H`0~lc44)%|=k}$S}2;y{6P@&*ABDchs^+@OQ?4bGkp0<3$FU+Z&g=`=d&I z#hB_T^1^}&VkEK05Otuv2FMHVb8-3m45W&>#}*e#2wk9jR#9_Bn+%{;G{elBD&Uk7 z2C{(FHk9;fmdU{#nqj_0ilS!N7LSd$JHt%$ok-e%ptMw*u9RMS1T`>3a}0Ng&2MV+ zdjW%&Id`#xpUfRRrC;fTH$Q6PF1hi!sl!~UwOw1pA-7x=l)fNCZm=WvLD`NWI*sEN z)VoL=zbcNoh2xaIAY*Ruu#3g<dqg0B`ME5gxETtjR0Le$M zS4W4NPAfLew#MF;93Od+;N(i=z!A zGDphcWv%q0=+&{oMJ6JD?}Z{&b}lhEB~lJX1Zoitr7s8q&59KKjF(BIEN+Q$HN3XI zV-`JVU=Em_YT@TlCU>lbpF^V$9@z@jGerw7f&z0AdR`ZXA?5fJt{9l;W-GI%-;Wr5M zQO}Lok(c3ekGG-L%ggZ9H8s~>80%qbKH*by?(t69TbEaLY)s5W*jqc9&;4^rjnc1l zQv2!}>%gLOLiBWVfTNA~aC@BRWd$HGhO79DQut>w7uc|OaoFK|Gsa*@adFSwIg)Njiq}1Okb%@f6^k^1Uh2OQR z(ov{DstUQv%>Y5&)wuxzb=6fBb=8a$xOe5M-nJIb%x+pJq*Kp(!yJnvttDX?Y49{p zjr4_(6dGv*=hUNnM`SgQ~c@+7; zCgcRvoHpQ3I|r5_O=~BnmnkB{f6PEdjICG9) zET54wlLTcZL8)LdOLFIMuhgc8X>NgkRfvevYGf?#Wn^7+8I&&5!?X=Hg|>@@5+Gd5 z>S%2#GopTyzeB(&Xf8AWhRBK7@U1HH&F{*8XbUZEOBi1Z3Pv6FyNqU9xHvr`Lql8F zxZ@GUm{)T|mZ$7He$I}_u}&j0tYagX48=;B>j{f>>X_KP*w}V>MB6PK=Wr)iz}`r! z>QouEYJ>EuuF|WvNT=1p;OLJ%M^4n5VL=^++%*`31fU)>&$Y_sN1|8Fog*h|Hi=0Y zcjs>I963>rqjm2F&Frr&dUuX6maPy18Dq?KxJ3e()Yk~Rn{+=D!liUxZdxM&EQW)d zZJi^G#c2+Lc-6Hv%l;Di<%9hW2JXlr48hzwNsCSNLfNRgQ|h2ac6U#wWt~5hYoBJmGwEZC$It;J zeGu%sioEPT%vw7WJ**DQYr(SsDk4}6tMedua+o>G_u2k&LbDJFJKgXv$C+RvmC{P^ zAWINDEOxB~Pa?r1iAp6CJSK72*wbuz!+emJF1g7}1MWD69xIbsF)Myof=4kcepi7j z#BW3JFy?OgEiAEvzpumJYbm~S-LFF8q~_<5(KWQH+6Mm$u?%-M(vab1OAp688tGS? zJ|EKAE?}gUrrfezUMNkuVIfx5{?6vKd%-MN8&pB%$SC>R;xao*D=NQaHi5~F##rZv zx#pT%+7xnDU{hN4vJ$ejM=zI0Z^zP2U#cw^rJi1J@Hyn!IsWY^_;|(KS)sHV?`4{m zni00|V3h_K9GX zjLIzv@HEF7X=63v1tsa7|0Ut$R95i$Uy@T~>ZR@2N$tdoHuBWJ7`@p-J42%|SLhM^ ztJWR2=cWMGE2x`Xqh5eHk$VN{eh(5UL#dC|z3*UU1EnF7!# zF4SnE(RSu3DDM}Q?_S9e%zzhIh5+7%7MxyWzWWwV@_GSt9au6|?{c%{*&G-aLR?^U z$pbYz()TXoaGBSJW^jR8(0u=GLvx>+&OLLbETu1yl)aSGc}r!u9<{se8m=PHVKwj; z!M-2^zqAC~cRly;DKmAK2%Oilq81_`eo6;&|&gMGq zIG)YsXAc-+*=mdT@8tM5i#xNaDgUZHh$yXO30r*0Rm=VuRW^SeJ@3klo{64oKcKEc z(s8erG{(${p0l%1<>rtLa(-rp3_5_|D9m>cVzeTrZ(O%hcjK}UnN~B zt*C-#eH68>-Hp1ob+r~oAyi3MTf(T>Ri_GdmHk8TK{xoDb{FJ#1w(N-O?ObPjMK^NqjHG_ZGW1C&-wy=tIl>UotCrHurGIjEbKIrwF_ z{#ra4&#mz+G~Gadz~WRX*HTS?=f7i&mZBC+I>ofKy(COX+n!b1VcEBY;mlVvoHBNB zgW5B;og3J7IAyTK+We+jU(9WeQua)8wpTfh7MpAHqsO7y){bmDnar~u2OuhK!7!7f z5a*bRl+IhQRC^a%0il^7k+zetAkoZH{TZWCRRcQi*hw}o1XQC&9QjwW=6%T)%X~!) z5>#p!7hx?4`OS^6$_vS^cWOuPF6KF%DXnA}6yi*|mSN`3-SJwIxsYM#QiA;r+*5<;9(ia3q7jJxrV2h6wk%-oA3XB4g2m!i{3|1&oyM>blvzVWV9HUrN zO)LO=As8f5oY}qC6m~O6a&}DB?+}P=8zjmGoEPqB2su{Yffk^c9 zi_y+SeOROm3PdjWxp}^Grponbm)L7;l&{$|d!|k#nnSq9dWmlv5(hAE` zTHyt<6KHfA(CEalER_rzCip{GR^RarBrlPz5}*;ovdhcJ!Wfo~*PXg4Ib{>WMcYB= zk#vY@pIa}iR`a7@R7znYrO@)bmH#1Qs4{UWZ778@anYe?^5m_7ew5v<1}JSPg`t63 zDNHJ*Fp*Lyp_^zrno>BCejW=_Pj3=}w9V&PRgGS4W$8}`)NBB@Q_~CtD6O!_^`coT z!n?hLUJ6uZ&Z&<@j;bCb3bpld9!1nfR|}bl0Wo)>wF1B#waRUqjcQU_4UZ;$f-~EK zTQrd9P6CFEhH3?XZ64X2hpA zeKp58|MY+P2YL8{Bgvog@Iw#UK4&Dt^?>`zIuc>J+2tO3BVS-TYxWQ7k$kolQ<*b? z^(avC?qqw?fTgkks=PT$=V7VBU1nuP4U-+tr!~wv;cp8KvoVgenfI{#dwJG-EN`5u zE=1(uyLhY@x?jn`PyafeD$V^b#rsiNpaxr~F|3X!($kLGF-pzjwvIAbKXH~5l*CP> z!P=o)oI8b!)XwHE9RL0K>;X#F?#8Kjh!r0hRX=WtcY3OXdL3QpJt^!2>5k6a#3IqD z=yJ(&44K^2G@=8^2!`nZETx7J!n9)U;*p3-9p=cBIIg8wJ9OKkq?AoKuSO>b>o~1R zU-ul1qWfjt)4J{lI$O-bILm%Ve6sI%C{4gm;21Clj%6qkMq|}&)OKe>4o%ooWlJl$ z5kfjdnpNX09?qb$C{0=T^;fS*uhZEaPY&$}U1kJXHi{=@$-F2#oY0Dmb3A{3z+*-o z<}f#)mruU!tWLse96KtX3&YX?!CbpjoRFq;d7hItdNkQ?<#TVP72Hr@!a3ef%R&dO zWR8cp9k8?8c*t216&@1jrM?Bm)oOC`u}6f8vtuAMz0n!~5$df5U|k@d&WW`){vv?k z9|#QOIxv89ybTV{47~xsId5hs0_bK=HM0*tKM**kpc_v%>wS~FV~3fzlgaDB@Y#{i znZ4PempVuNv2jv;XREGk-3@IErEWa-h^-M5E+pk=2cyqt`)R#-)R@j48StkQ%vShY z<&X2;$7}rU;%_&9>-_EEZ!dpW@VCL=KK|6!0sap1cO`#U@pmNO|I&NbruGbkb58z*{vIvB}q_t&6gdvkaWn>e?GPA=C z&8sqopFMA6&Q_48#@F*=f|2OkzYL>S_n3s@)cuUR_s@)o@T|u>fQ&-zJRqg9SwY^kBO_0GPfNV@vyCqcH z!?Rzjt6ecw?RcoRPPKnsSKB*P?O3R$^qXI;tL>Sp_VQ3|7u9~HuC_i^?dDKzjcT8) ztL>hu_Oeh-*(CpWU2WG?wU>r!^4k8Zy4u=QwVOgUB`+WfBHTt()sBX0L#q99U2S!$ z+L2IgK($}0tF25`dr7D!hvUDjs|}~B-59EIN}G0TihUbQRl6ZnTcX;>>uSqW)m|K` z^{Do-x>|p#+KWQ9MXLRax|-*l*OX;8Ih3W{3)ti<_RXDLb+ygV+ErBh=XJHksgGVC zs%ig_|EsRHFjeikP_3YvZ?t1b-kqvuyVlXSG1Wd&x8}j|x^IU) z55owT{&xA<wfzMZg>0b=egbGw>mX)&2RsN+mYY?F}JIJ`$yca`0exD4*m8I zxwVi&r~DkZ+7p9sBL?aXazb-{tlizx^F<5BcqHb9=4dVv-cs>9z}?bzI)USlT!F z16jG|hhSb0Q(nS&0`Kq86=1(hS0MdPT>k5qDp(_A>yRJa@30(p0NGRJ*_L?{1R%XVELE20?7ZYD^UERu7L0_ zbOnBYt}DR%GhKn)pXv(O{*$i2>2o8X3JAM&340$wV=HdO)NO|@Wk<4npVRF z>$aI`pmG4wi_?Ed-}uMTy4Y5{r~__UOikMxc*Ar)GvDC9y;GxGWxk%!k;aNzddD`2 zm{R9na}fBNKR zJm}X>leNR|s3r%17Nu_9Z)vgs%|lGqY>|(3sILY8GC2XTij-^EF#M=OP*Bn2&HE=L z#bVI~kmOUtRE&u+RDd=9+<>aAh}IZoGQQT2W<5dsj4e#FLiE{*qUUznrVibW^X%tw zGLf51G5s2MqzLQFozZP7-58r?V+~;R-se;9>%WHDfFvn~HVU0N%7M)fb0(>PxI!c! zo8h%84Nj92h0X}p8LgROrFwCUTLRqkgGY6KFb9unQ;1^qSoUfzoTF3@|LJ^68<@`CoH&_u>^y8V$Z#Gur!s3ON_OWcY_K5^31p`^ z%yibP`9pf}7&*%zN7<3PmB|(5gYua+-uYlEv`C6&{U>~( z7-%-Ib-_B_7V8ie2cb^ZPfhk{H0v56ho62hovfE^;GR#ztyt$!r991$<1l`X6bEul zHR%L8QhdF9>>D}x$68q*eLS7)(JmDOK4U}~I4 zulWIO7Wt1N-4KzNAp{ng8_->94vxJWlmCN=_6JhkA4xx$-j+V2`$c=}&A=o1KhrVs zv%|?RrsIvGhp8Q=;c9D{R(fJhdp)4e51HrH5BhLL{GmoZD34v4j;}Dk>^X+on;L45 zq4wfX!z`DJ-^9tJxCuX)!edsO@H~2|`D?TFt7!d-4$`UV2(O=`hi8+iE>f@#TZ^4E zL@ZxrT|D1>7_{RY0nJ5;nC848Z5Jitn`N6S+iaH|Rhb#B7c{?R7G_3N4Po3Mf`E!3 z0I2?O_H)943cDie24PuYSnVDb8Zw-S`mKr#$;&Iv#T#H)Ue3^>n_2BJG%vU1SBBEX z&=5IbZ}RReV6UOX@%+s&l`G(1;M<;>mdX^$a>B(aR;-f^t;j&282?126MY%RlpUEJ z2ozZjb^U3)%*8v3&J#HI^6?c&Q@H7k(6CLp@nhJDqSrpA$-V$bv1k?Hs^4FMR_t3$ zDLmu$KB-Sk6Xja_ti{&EU!H-#ycj>hj!w5wMx0s3zcZ=_;gkF!~EDC;TMebNcu2G&!W4KNOg7Knt<_eev1MP$VE&}HDy2GeBOIqp_A)2+mh)aD6U; z#qPDE%mb6?^2670F_d+FfYgC~6n(qnTUV4Q^_^lD0#sbyri@mvq=(d{QwJ&l@2`Nr zubvp^zK~jWqS#gJmf|!j_V90nuDRP3cGpC3-#>-KLiuDzoMM+$p@m|tSV#9nI?F;W6D@CwrzaJhvY(FT*f?jHGUiiZy9& zYsH@NE;>hwD=Jx$6ubQZZ(G!7K_*ilDrHD2fVey=TUNdo6qqHmNK*}tp_u_$BLP+> zm(LkUD?LcGQJE3`#2BK=XXq@{pP{l)-e8DZ&={%0itahiG%;q-#26t-g)u^(IT$0= zRvKd#Cvn`(QA>+1#4!=LxJMlmB8WOrgG}wLG-#|e>56O8px0c3?$#P~m+$k60N$?X z8uV^M8=sD#uS$a+y$C%H^}v>p@o`=M!$O{;Nq415e-xo@L^s*8BQ z1Q7+K3L>WAKr(WCyw_s{hSGHv*7U4UbVeZ#ksAqlD0g&^-pm9U6q1t)Z2Gt8Ob7~R zC*R5$=~(>Ld%0!4U`(WCNWD*a_ifZFTD4HsQu<;T2IzRL?0X0qK6>&ysDCDHzEE_J zCvs=_4pkbO?@&eSZgpk=qDTcxJ=8vlis2$Nloc+W-j2K1wE91mz4h+%EuVWJ=Oit9 zGS4xT9-d&f@^1-h?;CM@Rx~Z(vMbchB_^4yB)vGM2l~R2Y>GaBS+eBltmr#5mjune zR@JgMiSCI9V=&Ww2JH$_B6SmfD8oB2g`TEGhIjmpXU5q@?vy0244p~uD;Mu#%z~t> zaAg$O5c)-re|?5Pu~xx#T44 zu*7gI>a1E=CtQGqYMV4fN57lG0Yiz!cGkN;z1!xu1l_1awa!DwvU>_%l_5F0M|?>b z{TPyznPIp&y$_!-)r}dosP|_*>Rmr$=BJ*SP1<)V0@xlBhdj(_l7(x0p2<;qC|Ul+ zER*pHu@&Y~6XKM+ffvpg^<)=8%^Q>FA3xzbiej8clFvPULc&%3RA~D5A3q_GWxD@N zyx)yCZ@*drcQExeu}Y+Sad5-ihHL{E*!^rEz?x|Z4?~^JdW(gwA^g;Dqdw+ z%rOW{I}(ctuQKqF=Iv*DY4Duw@~2mH%(fJREd)a-zFA z^GNpK-y)>8C{m+T4o>41-C~i6#y7Dr*efP{`gHm_O?qtG@=U7M?<=#{5w-71b6nI1 zHsoE?t^!)5QEkLesSYf*56}<)z|w&I994v4(6*X{gPvwB&^bQFQ}*#zSL|bZ=YEXR z>5mPU1}oLKIGVZ|O&e19JHZ@A$UxTTLW)uy($<6&CndA2Vi6i!7_vlh(eWq_Og4=V z5$0=NpJCs;t0p9a8_2z$#)BA}uhTa8u2crX{nlo~4#vV{pnzKA3HVCAe5 zL`ZUPcg(g$ILFvDDnTkhF+wx`ZjNzYQ<*t?YA~e_!Pz9{nlGLkI0j$X27g_-=kZ@L1phslfN>=QH@^^128Zzh zu`~&b#4muScllS+G#B?ddfz08%2h~?nqiiS7+O)Ls8UZqaTbmRTPjGOiafKUBr}#p z72_;a80BbG=v}B)Vk>;~z%ha)_8MHkT*B}(`DcpqXHV1S9(xEQH)aXbgM*vri)x4S zLd@Ep=t5G8Qn%>5J3Z^L(NC@~y55+-B}JfR8sT%P$uuVD8S!_bf%+_6(&d@73~?`e zY=VTir>Y_4Ll;tY<{8w&2WUi3M+C5@S_y-Qt(@oOG^8huPO51%5OZ+I3)}8nNFF;^ ztB!BY|He+v%wt-9G(8nQV8Ey{3R_=|?+1t#n&wI78HJf=6w-fSi7_O}EU36k~kglS%mVF>3P85lOVx3{c3Z9P~O7h9u86eJ|}rMUwM)_ zeTF!FQ717jHj)_O*wiM8QP^Ty0+EvH2YRffI@%MIT+4wBsG@{OhLNgpfH=aWPRg9F! z4FZ@0-RuO77y-=UmcpUmt07yBW0{7p5At6|>><%-(#fJNU^<-rRC-Bz6#Fwml5I7< zkick<&o{nvjqqZr2c9765y=3N^HGl?jet+oQ{k+=2lXhRt!H9p5s|j0p6!pHW+Qv6 zsmIfLg@d>;n_p{FkI_QU=*uYvw#0RMzmWzN%-7S`%lDY*>i`Uz{|VFq=rc{CCd zq>?p$(lMDR4?JEhKS2;RbW>-E`-haCd+u!%;1kCa$@YEr=p@RO!;1jZVH z>Jz|Pj(N73Jei^l^XppG{ND7`ktA_5{dyI=&obL&#t%+@iT|zAE5Z@h!_gy8j4=(6 zbuyk4_H=U>wiVocJh>T->jpJaVIs{W<)KjIIA}!&Ly=>j6}>`5j_9H9iL(4cVdGs= zCPSfPyS=USvJ`bMP=J*wHO$HyFO%QvW%ZXenxn@P{4H|N^kqG>Y{3(Do=as#e?IL< zS=1luA|8I{<@n1ZqEzlZ!xAPcdU>=$g^vRB zU>_LA)v|`0?a4?;-mnbJ^A^24*$LH|QA?}|f}Y~d@)y~kW=1+~>N;&&uEtd|pr({? z@ZX>a7KqrDI)XzGFb1Gzv(PMq=eoSPG+)~Xx*fUHQeS8UQdKVOuMil=h`B>%8pe@D zUo?!n4&!bc#`rA_#)56R;W(GF$pZif|6>_mfO5mZ+2E(skPfJNIQhOO%mW!w^*!+? zsQPxh2S@Nkm$x{w${==RWr>X9)AF=e$hoQCa29t_ihTIpKvwbY`N(>UJ-JNCYBF*( zUWDX<9nm*OR?@&9nFRXp6$_8x3|hSB=|_aZ^KkbT2l5|9oLvxCz%$S}l!%|%3|an@ zB0M7f0BXgE^fQ2(g&z^rxMCd8p0`v1x;q7E#fh4L?#=*Ok&42&0#=N4Nn4#%@PS+G z34qpO6)}cr<+0PBy9}HeGwoJmmOEHeo3TZ&COjd+z%4a;1o;o!LbHHgIn;y4RB}Sq3S=1$+7STlBno8Kj}Hj z)Zh)=4_MR0GSE>nJNaD6t045e(7 zXd}7IUU6M68sBs-5JEW{G!5Uhj9TZDM$Yon1-@zIY+1vBkFw@7XUs)*JO={m7^oiz z+W?~7bZ@aI5x9}6(cL|$(*PM>KwGd_q;CWlGy4w+iP&%$$p^m8!Bey1Shf|a4PnPa zWJXZrE^J_eyWZUy#u$?#+uP|lVhq}AgN`xs6y+4GV&B?G9r%qNMz}{6po05_b>@;i!9=vzb(E24DN57`m`d7@mlHL2QOl_#3!Sjm^M5=b+EdM@$@T((Hv1RBC$^&_QiC0UgwK@-|Fu z=e4D31PWiFwznu6`>sXNsO?RP-eLqd3&s^L&Cu`#BRYyq8mX$ncrDZ}1DZ(5{Q3lrEV3AwgPRWW&7mW=}sr<#FZx-xPi6R-j6d35ovW17= z@!<~xW?JZ9j0po4ee8Bilz<6Fm-w8CUwX$uD@5oSXV0@>X#`plo;5iF$q#faW z1fr8|bm>(vtmt+TnNCs%bbw=x>6{v(j*!`E!hZXGXUQ#Sd~53oBLvq8Yzg>U5(Og` z#X@wQA%%1ubx4JdglI%sT!dlKFBa|~SKE>y>cpo0(ygC)71?V4!Lc(?HOU*m>W~Ri*wEMUNSriLeY~$0+ zl$i2l32K_kWie_1v>*x`R6m$N3)dtG=-mT>jrI)ViRL?~Y=Sl98j@Raml;;}q>P^i zdjj zxiGaVxk1@~uahn*?WA`3nhF=3>h3Q)2Ov;RP>R^d)&M~V*;#RP0v>t)EFy}FvA<`EWn9Dlyr8~~^@CxYFD_X~aEEOCFLjHq7Wqp_pE~=Oq zOsPl45K#(?5f#&VQ$Sg#0~0Gl4d}}WxmYBmYQm+QkBdN=zskER3g&m^B@l)4+r=VO zyhOi+abtpYaf@gMOd}>pEPYq=NfgJDEA&XC#TVqm^g)xp<&cP>+DsI$4M>DZW}Fx% zNudx2tbE;i${3bx{i!X@T$D=S>RL!Em#%=dp>KF(rI~me74fog;rmkyAsAqeRV`bO zo>i%_?o&}$Yc+Ozh8sDWRlLOvw}uP5I~8x~N{wx~u;p1ji%70LFlHH?zy`e8A0bJD zFRwB{&9{02HdCRV)tEH^tgY9&oR*#?1`<9v-?_?uBus>RS5I6T@9L58!RZm!?p4Nr zzCnh*&saFy8(`&_u?<%=K=ZJkxF8SfQ8)wPJUPDSP29GJ6^6v+sIztBA&}4CkOKEN zaHWFXc6d|@Rp7a9xLrrL^Ta~4K2;;g4jI|wWOnn1Yf*KvWVCUy!IKuYoI}6pA8H-{4>WF+Wv6eY-_Ylj-Ekn7qTO_qT%TT8TxuU#d%MkTK z>pK9c)aHhE!L*rec+~A{lWtWWgPDd$13?+v+sc~8EviP3hD!b^r=}&5k(Qi$ce=Q=F24?4+ju) zaY5tZZDU!IQ&IJS=(dl(U+gY;1h^Rm4t(G7H@fYRByCi^T-=|LO|eF~-^Kh*IvNLv zt~+D=b!Wuo8$Q3V8%)4T%nx7b9KR za>ymJr?Gv?RBbZvDQD^Ly2>-NtVnZPYG0DDv}h5n=Wy~{A3Na*Puzbh-mjKN&^23& zhqRA9c}xw9kCe)mNtl&a=y%j5;du&i`s^59;%RgA%*rG71g2(-%DR=QM}bG0czdBC zYG`K$u3gpY>6Yu*FaVVpr z{0&gYngcu}EwGmBQ|~K%EteZ4&%Lj#;Q!HhzgFJl@Q2q1nW!TUrH;WOWM_wzcv+DKy2BT$O#&M`3c;# za0a(VR7GK{B93@XZQ)lyzVo3fLr`V}0`9(4RCapTVX^CBf2;61Ut_4Kc;r zGc;?84eEjO0c!X+8mbgt?C6|v?rN&kh~A(+mFooEgO(YRmT(9*%e8z7AMSLD=oE_# z;M_*&0#rotw{V@$!$qj5F#Rn6+78*hzyP(B-ci&|b+%sAOJRo4(Ho?j+J9aT@*S9< zuF5BY(O>Wj-4FM;YpsYYoMfv0sP1r$A>r~l!YgFv?H1Ov7FYV_Pn|L9SpLh!eATk` z;BRboB=-s%ANi`BNw+Bk8txMIy9_60CsfxEH7|-%)3>90D?7iTq?BlBQ6L6S-l}qQU(HD9VR@V<*7@y@1`u z#;dvZ4C`elxLQ19#6UD&o(^#s4H!5eV11gFiVxTj%Ac;GjXkCf1A2h-Fk{%&0G~i? zt4$q-1U}@#28Ot~?1w%?J7?O<+47EU=q-8ul_Y|CVIF)@wC42{`v%zrDV7Mq4E*K0K7@1BcD|RXBGTGfaaBSYhV@s*iHt{o^ zZccpcG@zR4G-NQR)2)f;JLjGFsIvItObe)iqxTiNwFq&s*ewv#+Yo007x`DM>ZP;+ zVq4V%8kK&pT zkidDs99{?G0xs$tRAG!CcxR!mMX-jMR67fDzby*+pnb4sS*`XBm-QqmwU_GZvN`6K zoEt+D9u13E=1W}qf9}=$O^oKO$Bq!)>T1r}Np71`(22aX6I}DsPjH3!$WI7+NhpH< zRwDQ9y(BCm0+phj;@?GIeAPe)mj(hxg;g5_D?x7j)l+R4ezViIh+p9f2#(K{Vlh;P zX`Xx+A7r@>JP#dF6NAcmJV}Lt9l}XsdVE`ln=8(#&;+I~VC8sowow%`1GV|b9$vo9 z0;P(g%aG6(3-Y0BJ+pNaFnBlh<;GA$H|>Z=^>6GiVxgRTzxs!E(&(Q%k5LA-H%!Ah zoN7@-jtC1XLn?){b}nnh_7vD0^axIUsnH)hL=Bhmx)hXdoI*eS#2-80L z>-N%UpB_^vJWI=kyM}!jNV>APvXZO}R)(OntSg=hH?@XE@5YyIOenc?IH>FBcBT#u zcVA=6x9Ec!glBHi2lcXFH>cZ~=2VAZ(cD(TKzmy}hK5R3WG%*KwY^CgeREKBSX-fh z!hFhCdK&~5sC+{Wf$*_z-I{Isrh&*`NN?kH#NT6yN@KTHAp1#o{0+Q?D6>v6YfcbnW5JfpE^s5<)QWci?p-;MI4 z?|C*UB}WV+*p_vTjUCn`HAOZ0PiOS+vgNz7dd(PNZ+I-+T(-kH%=d7nEIt@tu5F^3 zTie~Ge9n5MrB2#V+CV(|9p>VP8^B1_783J1Sl^&OyOf0YJV&Dx z!-p8j>C+!cIOa*IZWWNM$zl0-S&v&@g*0M=#_A%b$B!7=%Y(Dt5XL+AauX-&eafLZx z&%V`Sg~Np>30wJD|M6uXk~u1$VNW3Tfi2(p__I`8;cY~ocp?@gz~mJs zk!&_ur(rf_a}HslG<6qMM^xCw(_PjE1CU}hT_~1o-3KSipLsi7PC#D!oZ9vd3X3MY z%8iH1jlVNl(}u!ylwQ#OeZC2|0v4LQ@=w0~StbF*v$wf0VpUv|Nm=$Dwi$iM-ukQb z2q^#QFTics+FpbCHoBWw8ybu3=TZ4jveETCRm#$JT-8~&KI7zo2CVhf2+L(c}7q;O1$#-2SoE23zI6wF99l;qV_$-{&h8cb zZ2>+ie<+;-_>*6}<5cc^V^WjtF@4V**|MkN^&aWTd@E@P~9e%9%{a=1b z6aGWb_jUBgu>6M~_&cY{!~W>w-_3oWJm=*C)Aqh%NtnR z?P*(y{ao?{$3f*|%{~+fC-`G#Tc&~et+3BbaL7=QZ=Njj0S))r6Aw_C1>Dzm|7^!s zm9WGvHxlzX~ZhKD+-)CMQmxDvX3ORhM`A^7CQ*e!O zpVpxPrwGj7rDC@{D3<>F7>u**+%;TMot18~(COw3aks5R|E_O&+{ax0XIfFVWI9en zE)Zz3LJ5GXY8sTz3QC&6c5xA4SN?_CnR$FPKK{HO8&}@_6f~VZTpoPzP37u?^zrCJ zjDdre_%Ak`jcHZFYd6~=#AWlltq%`8u0AlY?LLesUG@pou8eY4av>E9c}PPdbPW$U zK-5SLAjT-UAL%|XSx*Od=cIL^08?~|T;nOs5q&Y$WLjz(ZQ?bNlCXW??9=@Xc3wKx zEtN)}Nog#@bn+B>5Jx)}T80^S68?=OIl@xEMSY-;cTG*ICz9F|+sj=RGiV|CZ3i9% z+@PzB6AhqW4Of9h|7g)&o>loquJV24<875M?CE;>RK8D23hMu6b;#G7TjXyAlenB#rWY)&MQnf z?$W{a&2fAy;|OL3?g0BL4i66+ZhvS2E}c`O|DN_xsU^Bu@sY{p#ngKNxpLabTCH0J zGF<^1_3R+MX-YDy$E8@VR{Gl?cXp`ver!%wsu+A={wol zL1Eg1_gV)|CO}*#B~LKId(e?`!rqCm8Ll!pIX-q6z)C4)oDKNy7`~{WMp`C!@E%UY z8WH{nMjC7>{3Qm!YO~@*=wd~9St3j?0?aiAE!G%xm@k|ggZOyFpc{ozS4Ni&qOXBI z%)6=yeeBpU4OV!wDUf4OL|k%+373|Xuxf~vX|Gj)r$883eHgG4A^`aStH3TMV5T>j zNBCxH@ck{o7x)sW;=png0pn$3dXZy^72$<4km8t%AbsHh4~p=$li7bY+@x0lpL?fH zvgB6XG^zxC-k~6>_wn8`;I1q>*#^>NKU+QfLZ< zqjwfia$X~zX~oQFs7kEE@EahCW13@kxl}QAfDJzLXX=6}vhUSe)ld^g0qQ}H1<_yU`+#C_urV-8d9ds3y<+mmH zGNR9J6{0FfZ*nRD3dN%1fcUEIqiF2Z_Jl(l4_n0Ftp8Y49%9!EExv98o zqEx1%jUkHCnuJ{wLvP_D48Q(r7lfBRDy8sJe%cNujZ%E3AAwExZZmGuy)`)uMrE5R zOyxz60s$GAqQFgRt|%s4@s(xKqaB{=*i-0t6UF6o_M+;XrKEg`ikjRg>;)Xu7yAJapE4#Q-=h=0!tjJatl1`SV zU9%jVeXt|%HxAcK^BSiG0UW~ZXh6Bb+(EmFoXD!$3Nl!bszSV0l@<2$sElGFcJz)+pq;*>uksEn-HQ&pro)eWFvjwo z9|*2oSf%D1q$cx`BRSY0A2S5$k)Hr=rULum5&uxacqu!Pg@}j%(8n{})i7|jD9z2( zJk6s=9+x!L?yk|xc<^|cBqyQ~ygYEXaylO1A}W+c2HZ3W2t-p@MWpc#SejC;iE|bt zb3WY3p_uTZg(!*mDK?|Ubu2SgiW~AL(Qfeqym3IqE2HvDa}HQL&m|AILbOD1`L)bK zjn;20L$fhv(Y}f1uCs%x;2k~kBOHHB;Q)FYuz^tp$>iEY3m>VeOcO&(UI|TTd|*v@ zAU_8xYU-`Fsz{(P;b!zW!Nev;Q@xn_YNJgA)%@>E_qC2qy{oacdZELU>BT!w2mTXT z3jJ~>^Ra^+PJqB0Wg9s@PbBp`-Y9i17{DlHGJrLDSH_hjk}54I@tsKbMKgs2a&>I2 z{%!k^F2&!*@olX@G!j!y^`-b1;W2?{C=|q26iTv~*L2Z2w-*eY)b!_~hO8y@iP@Tl z&>P$U-N^Tao#VbQGJXZ5BfOFMfkC= zk2#($7_!4_GfZ}+xaUm0&wo(gHQb#+^|~gO$iEe^L>|&}VhLZ2#`Uy&tBE4aZPdvt z_m*&D)7)FyJKyoe!6ba?H{Dx?yhPQ_XVp!1&0q<)Z$v{52wQxYmnI-?7dAHmkH)Clun0VF6LXa|skuMGy+4N+gZoEV; z6@fBKMt>7UwA=J#y_iR4(t*@S-)s13XpUCIt6B)a%59_*sShssg;uIFx|fc@*p0;m zPgZW8tijdlT%*x()hO-Bg{4O2!itT?Z}wdfQRi@@&vIcAU4aT|qo$M;}7=lzY z4l6o_N0t$p5@%gf4?@r2#PqE4Qw_-14WitZ_5nOZVRz^LDIF;UJ!oKajazlI@=t*{ z@=wvJTN8s5h#)r=Y4+MDAW8)-BsF6#cehk0dZhvd>@#P8?eLA60B{uROGZ&3&R1_!O65kwrVAcJ% zr5qnx8C~-{R`b0+xo5Rrw&6nwGEgoD2#h0|e(ll>t(#qMIO3cOM;aXE0zQfSP?Zg> zj-&_W{en7`xn*dDBT74XnIfCZ59r3OFS*WS~ntw7YhyY2okoS27pNtRu@##k}h|f?yN<8Z{6U|k|lfzzg_vWB(`Td z5_tCg@@E;(7McW}6Bwi`q_7?_>%&5t%@pSJB9O*>SoF0*3j|Np&1w-`9V4B)`>MgU zWVZhWUDO!6k zte@)r3%QnS+eS{T{|ttt8H^qi?B6xt@T!e5BHYW#Lf%Oid)=k1Uk^{>Mg}6omGRBR zCfa!yNb7$5FhTYkfh0$SL^2a*;Axn~jrNwky|(EbpM&E}AIb#8qTsH$K~Up-2P4_& z=W2cFJkLWIYyQ`1SQb1NL-Ps=V(;|eJkR^~+?)#7Ir3FhFGuE{>qzkfwl`qsWcM9U zksE-*DjG1a34)OYekc*9TM9>`!g`fJycqe2$b;X(JPm3>i#Baa8VMb&D)9KBbOiM# zFlhsEf)QIPY$53SAUS>x#)2#i5D&1^XMK)kWCmddPJ|6Bgg`pejZq>l|e%d{}BEFwqN;~b%y|NSXW`>}7@4N&e zQh`X8k}lrdg~d(}5~=3V9lCf$SKLFYc!F&YwF^}`1Q$q2aGciKhZaJ29ih$aO{@W1 zMpP4?hZ*KQ31RImkkq`jV2x2y$Uo7ig<)nq5hP-@ee?;=e4y1|y%Y)1UJ8!?Exs)b z;Em~oBdfgwO!eH6Eznd7w9vEw9~J+19QBnXz7>Y~Icv-`^}I5S69p)PYs3AJ7l*mg z%uj)++}m6>18PQ`G{Qj6G}I)6NKk$%+HI&!M!U^GzUfR35z|l9b(>EJmzDeu5m2Uv z$Pzu_Gl6QMRYx^(@)|a#oHVGG?>6Lah~qb?mZ8-uD<42k%k(*%g-~q}i9vc?4s?iI ztHy(X7%?M6pnf6w6_&GY!6G+%@N@(08GaQ6Xb_MQHOkXJQL`&}p7HuW=yc^F)@qe0 z>E00CGmc@Yu14Pz3)_ftO_#HDDRZY;&Q%mL(Ywc130mwZ*2Mz%*ae$qT5z8-xMo&p z^eNkKLt*zR>$iKOxf4DxO7Dd{Hg19G?x<`Z>jf%fMp&G(vxya2H~4&zdI1vfBJ#k9 z%y@`J#;b`8cKEdri|LItlp3S96~_y-u*85^25VuxR0}e6aQZ@&Cg8B2wF0lz&Ql^; zctQwYLIHt{kznCYb626z%*-N*LPn9%S~az)>+7NKDPMsTg)j5H@MXpyKMgU3#_3|X zLrjKG+d^D(^@{=}cN6s-SHI?_`i-kUQm~#ottYh}VoK?ce$R(34EnX~*jZtP#cHTM z*XI+AxORHuOo%`_ETjl)4)T+`nGiu0mo=W-bnlq9Ei|GdnpeY6`s7BYXfY=KsuJJ& zT6U~K%b1))%WP}_=!9Ybya+H`jLEW4zm^^ALdBsBn|gr(?-cO0>{y80)$p%n$I2~X zPCDh)St{PwvSUsEioSq*0ne=KO}f^s>rIl%U2j!f;%nKlT3$0hPU6{bU(1eV@%L0b zf$*dfaJLyx_*!;s`nBv>Ghe=z9c#)dn$%ZEcI*%SPmBHFo7inz@Nss+nXIw>WbLB3 z)OVf>*HLhTg>&2T-EOxFMVAC9`FPF08(kzBxd(2|90$lhQ0P1lj%}FF(cJ zv20w?M-jHDg?!OD=^wJ)NN&l>J<-kXr9&Mwl$HCfRCW20d4|HL@WSwG=r7z|ED`>& z)E+7n{a|@g;0K-9F*4we7Yucj3`t1VVtyq36iYWx&>UNG-+eqko3bmEPINL4w0DFy zW8*YEG4DcN{x05#_z6tU$qSjD^@ zfHBEVnw6aEayBi0?95rVlk>-H*PFX3?XD1kOkg={2O!xaLZv=qBilL8!hj9eSMI?t zPp349GfL&9g!lCDO31|0t4Wz=0f4_EiedC1vIabBr>0qd(2c^tEi*O}usSK9qtKrGPvoZ9CttrbB!7 z(Ad>)qA8@xNKx4=pp7u7Mjc_uT-1ru{z6gb4jLBfELA`j`!W1;ksoFEHn68xV^5f= ztTj_{$MiT^08d|S$-a~9Q3JT00OoJHEeQ+VRPwQ`H_N|L$aS}Nxv_7Ewx+tUQz1On z1;Qp8()qh!NA+zro0_yLxzYx+QzpQI<|!WV8ru9GSX<2lgfF)2W)34TeFjGG?b2Of z1dr?LjNm(U>x|%S+zRc)2%^BnVeN=sIkBBH6OHonnp?U063ZJH%1S)cz}eFn>e>$jx-t3FA2{Ku7vfe&k}v$g3FV4JZuPkz zXmP9Gk3Zp7pNaPe%G;b&3CG!L_c5WfkYj%G=5>B;F=` zlxCi1XWXu-#<$V(CxHhihez!@D?e@pwCT!oR({wDXfSBgQN^5Lg})(Co{twQ<@+2& zrlS?5_D3p{3`!%FrQgKfAUTIWq_!!KIH@V|?6Ik%GgWsUintu3f_P+Of>n;<>g6?x zXnr--=-Wa5ycjrLy!>Htg_=fi)&l7HG)kBtfxNG6DdhdEm}KB@GvMEWB%0zZr1qY) z?VLqu#VG}Lqjb7K(&_HW+U=|$LNeXMhJF=$yOK0o~BvbOK@W=thS;t0dVG#30XB zZ^g^f2_+?sA6PMYBf=gg__TxW7R z{!4eTb+uwM=dJ(?ZC1$iDN{M>mckZc-wl)ibrC>)LYn}gnG~!|W1o0TaO=M^&((&C zu_0O=Vw-;NGBlo$af>Y@+V27}2%=bdga69zD7ybYd+!1)>2cln&3rR+=W%E5o!xu) zd3Uirg9Y|3o=cGgXu^^9+YpZx1aZM^B8XwBn2Hk9yOa%qE0`{Wz)A#R=vielYe*Ykb-b)P=(K7Gy)j|zZ2uoUfGOJU0;a}qKWgZTtVZVVhbsyPmSNB}-RLcKx% z8ubj^=E2}c$URGM1W8(ksZjL7*r%H4sGo}y znry*6aal95!i|~;AnCa&t`crl zStbGOZ~cZ4=@=CHXP3(>crzTW`VUCma-xy4@JW%I)M;P$&EjL=o8~kcPLp$W@vhWo zwZo_vO|OfMPW_u~nqi?JnPxdFx=6!5tZ@!m)s%=c7xyQ7DxIKyqZnv$2VwY8wEH)G zPJ5Z*17bgW9aIa{$k%=j)^osru0S$lT81PRgQ#2j>da_yqixT8{(@1%c<+OQ+fCu2 zlo=V9Kg9RF_ZbMBM(Eu&y^PXoH+4+y6*K7sE&vzF6(kFP4x$2hK-h>(RkcxZ&UxC4oXTsC+={Ea%nuu39K6 zA3!aX*TyTvD36C?!2CFTWz13eM|7KFlqr^tp+$j-!!qa^9D>y%F#bJ!k_cbcU!p4d z+yZ=NlrIDz9L1lRo{51_SY^lDee~FXXMHA@FwD;s z8M`#K>^h^0q(EAwvA$PUY21D7%;vLhMi0iCr>zpVNd^**jO4LZ0>hjATeL76QgSwy z0RqQrE-7Vz^FrzG3_lsE;;h-wQCykx<{I(bZVeo;``?zcVogUW*PLBQSzL2(h4jFz z|F0?1wCba&k=|1Ws;cfB+NNb6>t{35qImUXmynt=jAGO)^@J0vLKa&WB@xj8IWHEa zIE|kacF96ICiRHLzEnJd7lY9c*4C==VyI&knp^GApWl}zH?o4<^Dp#a> zTVai?s5&a5rO_7LEws-qkG4QB_~+k&zJ>Pr?_CN(FkB4>ye#yA_66X{#VZSK=6NZ_U0w%3r5Lhg8RtKUmTbuIyIK(E>KJj2Fvc{P-w@EqX zWikFWc)_}WvPV~mEAT~}>V{dkvn)s>cg8p|bOF?=%(7(g%AIuG4PGjnM~b^n1}~%z zLj#^~p|3hlJpgjZ;H@B4%M9KMR<+FFt)SIb7|<#g7`zLlFl>=QNDA{I8m4c&Y?Mypbimtyv?PNEa+M76 zy1qE>>OPGQyXuodGX|B1%Efqqa>u%h31ASYt{BWRsq>LJTo|v>&d-xAOlK%#2_uY# ze$ua`ks?;lG5>^VU`^zL?$6X_YMwt3ov@M~7bzkXVcla6-IAI=fDsKjXr!cq=!K3F z^f2LNruzha$Cnr7r}d)L17Dxib>>t>`3YU;cNcJ8uJhXTkPBT(6Hprqd$Gq)SfZM7 z7@RjRbzhnCRSV5`Oer+vFm<-TqU+^hH4g{ru$C_n4SW0o8N;x#>snZh1uPuRx?$|hmhK<-j49Gd0})^x%nC8EoF1G4gnwI zUoRXQ1;7o#69+h(k{hq@Lh@>*S-V zU#2Oxtdq7xrQM?Pf5k-`wAHAi7c^K%?=0!JI^ocxgEkn%wWt6HTTb>kCHg<2vA1}w zGd-|gVuO#gX5J3gt0*fU`+WK0{b2om+W9yz)s7^Vb;?Ib?GZzUD_ht|h&)GJe4ZsSUfWM5Ft&2YfkN^lG;!f`d;mT~UZgkxbG_Qxkj;b8n` zmZtW_q%wjmaCwL8vVgd3IL`W`=yc1j>OB|`o8hRV!DtO&0Z!c~_MBn6XdyG1Pq7#|YZ8Ni z5QHF+#n5YJF_iFoXIM-d95WU}-B}UJ9E({s0?I5#g)WV4PqUcFNO&9;lh9IAPK&-A zf{qBSX?fQ|kPD7P`?kQxLhoS=S5XQy$Q5;~bk!aOT|LYd{wpfcS#6B8+*YwA_Vmhq5);_>>IBMS@-$F zh;V-!l^^J=Lmf_q)P#_Tq}#m;6m$s`3wS6_v&|;5C#P$CQJm;g>LGU zKd3$cm;EGDlwTy6)h8TlrWY|Nv)X~!nz&%WC(Fo0MyfT=_s57KqD+7dalc*+CG!eK zLi5O)4`|pF$bkKc%XPzkBAG_F!mbY*wyXy3Xi`>X^ONJ2IIU#A*CvgiDZ;^vnCg2t zgdX;&roo1ouidXq1%X_G5>Qk_enfNek0aEYtU7Z+E`TRlMpx1p%mzI_Ugk(`BurCp zMDF<-gtgrq=W3=NiM;dg=n7(z@w$W4a(RQ1KsHR4o~?#WTX>BD2Y~yOOhk;f5Gxz< zZY&r+^ZXuW0q0j$5IwYN;zk}`)|6Kn&pkixVGqU^i%URzdEiEAQi1aC5SvDyuNk;B zop?=&T{vv$ZSc0pYrAT|3(H}*u&jb0C;(`3R+9z?xvV_KWdjubgIv@HS6dEuyGm{fDV%z$1h_#)7| zY98;;7@4i*b8NL()QVyiv(wRx8eJK5P)W?pMjbKC_Zzcs$3%_A2};pH7ZET~P@TMc#ow#TW4T$pSs!;VdacneSOM8}CCLymbCp?Xwd1#& z1xSoB!cbW`MX0DF{O4_bRn5P)ic7}2e&x%*`Q=&|;Z%9Dw(J*$Uj)=eleI8&6RU*E zE;NAA+^v1amSu%39j=av0=sEWT(`-6)sgm~<&EyDjtXS zVEE08umFl-+SvrZLoPu*9})}X^RzI6^3#}f1^?P)dfU?f!}f@ZYCiedu=2dNU}7v8 zu3d?6C;}Ui#3Yi8=6y*FHL?*?L6Q-Y+rVINbN&f`gIgLWVtk7|u3PNU!Ag>uGGYB^ zERrj+Ap^(E4j8YIFp(gRz%sU8*{*||F(9j2HYI(^nGl3U@7J4S&sY6kn+5xoGM~yL z6qbzp3UxG@Gv92_{y;Kkw4Szcu8E7S;yN@IBuVi{KQ|RS`3GtL*Coa8r%NQo@5S%% z5lITRBU-*4VX>2OHzG@`xD%1Ze%yt~D{EpR?Y_fHO*l%SP&9+-1ZPs&R=MQK7;z4) zYD*(G9I5V8Xn%?Y+s!_ODWNRGqJ0XK!v*^kO~#33f)o@n{n;Zs8I@mb*Z+BQjps!ih;>WQz?iF@oxBE z(K^VR9&8hjm*+NT2J9K8P#1ZL<-ZKEvWkYi?b4LPc9%*t>iwqYIX+wAJr*)o(>HMYnnRaSL)vwG{3 zz?5h>j`w8{=Jh&|0ht%-pjqOEdoFHS5Kw460=$!*UA>UJuC46eG)AEXJO?jW^WwKa zSeqAnQ~{Uoml)a_f9trV)+!EnMG1`Ymp?LS@hto7HPAu+ldukxRsR1qyikrQdwtq0 zt>2>QIyTk9x)3KZuJtP7tXC0dU5Jx>BpTvqPr#Y12r~8q5@N_!x2l*HW7P z`OYvIADCrU;G=Z^jJ2Ar=i?lw*oQ1$W-OFN zryvqV&xsczKV^SwV>Uxcrg8?4!eS~kmf&*G6$kmzuEBu;6-Pki*tUtO8=V&p11$rF zb_bk^4h)Bax1(8BfvdvNIb+l2CbJF!HY&~TU`7A3LvCY9{sR!WdKHt@?N zy54<~a!A6WH0}rZS_l5#`HZ{Tjwo2&SHz$c zVP5;F1{I`?sseM)kL}|eC zuW(EaPcs81`#+po+Gd@Ia65WDE_ep6Asr_EJoC#Wrw+!>*5P^jFtMC?omlM}jLAksg|cd$qu&*Wof{gft;@0%Mc^I~aMQeibFf*x!DH8oEU zK*bpt0wpX!GU1gltznqPGU-g|DWD(PB>S8o#ouTYS_@x^n4Q3o;oWP%{1?u-Rs# za}Ft`NQkqX7UH2xV@~k$M>TTt$fJYOYJ^D7tYZ@m6x1m!vAXsh8v3R}77ba5xsrwF zAJhvyZ)kj_xR<{265i!!X98v&=a_26X(-H884eFn_=AS@mq*^T`5D8@!@hIjuxY*i z!=4{BLpB*6>cf9kPvf^!777+745hAdfP6M^HHevsXE#`zG8dLhU($>L#ty4>`@(6{ zdi|$8yIQ!ND~mH3^3{GbcsXF&Y(7pNr!-jS;GtHns5hDig)wt@E7LOJ?ZXQpK`XJc z5+xP9?e_`G-l4mP7IsJLgMc%!QxH-q+w#0F~0mFE@LAUx&ReS``z;pva5Yr9fXZ}bo_?N!~j9V#8TQW9* zV4AIgSr}(bK4qyYzitN6+USkq_>lHU<>=zzhAHHANc$cItSzW>g`jH9{ zGAiTv_U@?O{?iDjy z8{5|D+Vq$B0)TYvzF2k?jUw2o51nplNI*)t(>1Pn2}oKq%SDbZ6p&t269EZ&NWGsL zv}Jvs5s>y)Q_T^N_y9pK}@l ztr-CCn1V1UvPKxiN@Oh6Jyf4B>{2U!eP^T{f9jbbg4B){}9=KU+3E?Imr3^ zfPL17Kc_~|%&B$YX_4T9X>Fmh-L#oGI>AY{o!J$Oeqf5ktZU*k6Be*!E3poZgqxK7 zLoaV)agq^>ssr#12S*}LJ{M}QLA}l4CasGWnV`ZbOZeuZqr&!c-QV;j>_lsecud6B zapUgV?(x<5%rTz|W+Q)CI7A1+XK1ZVMUfs9h?^+lR=QjJg-t2q(Fwu8Ep5NaE6XxI z!)LH^MJM7kygDi32>}z#nO?`J?xIJf6c|`~@+^ZwR*EHd_{%Jj);v_YT{u*+L>nsa zk1TOA)Gb(|pSIUPVF2bj&P7WL^zhJ_6fG6k=6X`J6lYb9WCEDBtOs_8QJa#Q?V93l z^x90XOr*FOYhz|EaxtXEV}c7b-N+Yj^jv1~%-MMwY96R#8I!QNyVSjb)G!5cu%~_j z_=<-|oZ)vc2HeYropGutnDP6Vao38*T`nk|zNG1DWkSPZb+=$FIk(vYu-wr}q6vow{iE-gMnzdDs&llIM> zO4izwVqj=goe1QyJ05j&Cz1=_Y_ldy-yTz$vdCg43UTkvC7A8fzC1E<##Knr{#LA$G9!l^xv&hnZ+6}?&#jPS-%|`7hWXo zyR|N{y(z_A5q1g5LR;n+2BAJ0(F$wG3M2gBEV+m*LX(r?{53Eb+3|Zsty%9P$PX)w z3SBzTW~OgPJ|rvK_22*>Xx)oY5nE!mAn(z(tFpPe(M1Pr6UpeR1nDJ? zPjR$nU{rKx`44Tb@+7(=fDFLNA&doJoAIeAWSPDIuI>H6vuiK0bgf#o4&cpCh}K0D zV$tG+w0u{)FQ+$6e1_S51%%KGeh8kjJ6&PdCbj7bH*J2`U+unuQ<=rEta$rk#bZSx znM^Q?v@?fd=2`@UhI*+ z&-nysg?}5(Pqybf)Q!#ErB$z2`U(sCqE*aS{A1Er%QmRywSC;Sd1%o^GZQ&r4$JwW zB>~j1n()qiwFlj($Yi?g|t^v`I81+u<*v6W+Q!Ltm-S-`t`1Dia7FWOTBC=%b z#u?`p+f8}F=XRV3=GB_d>^RYySw9%^PVG1`>N&mf>MY(HNSD)VwZP(?o66N0v^Q`n zvn-}+(r$r4PUANdeQeO3tUK72B?x4i`=~SFhKVgzc3GRg%SzQ}^Ge@XoNrEs+_|r& zy}5)aU{rg`*PFD`rRe7cfh>sU#mh0zQ~EMLTV}m*(@Mt!=XpAf2N8X0b}n zg{YCjd9Q9mRRMYP!>0B64||%fr!>+@K*jTQ*3ByWqNcj{RMO;{wp4H0+!kn~SXXi5 z_*{pBn>LLZ&2J9vu1-|mv}t5fnNZDR6KYDi zQQ5OUwH4A`ofy4o)2s$fEn*T^=MuhY(}*tNN!-O01GqY0@J*XU^aaoO=qnuH>Kws0 zZ60z1!@L&GLvm|2wuO_J#I|%Swgr6KeQb-xjm?>Uv@Vjj+sC$C{-u~MGkw|73Yt|M zw0co-xQ5u4o~sTsu`RS#rgEKPTe9k)fDtqLSghnqmNP49dd$XLkXIQBas#I_8$Kaj zVP4B*rM3vu=`9S?p*2Gt7+s$*9UJQP2-KOMUz{EOep^~M7jEDxOd%AO`Di9QB;(Pp z6)`h-Zr}`N@kpxJJe=PZcm%Mo2NtE!oxCeaGI2xT>_u+$E_J~wY#a6N%DPi%YXIkmmYlR3y0F!PtUSEqwqwY@qYkE{Jv3v%WC zb3v{ViClw^D_}!Sd~dSjn!{Yqop9Oep6$1qp&wj`5np2NE&y?HA#wH^>^ zmZVk~8CW#RM)bW+hlh9LjxZL&?$zh3il*FNeg5Xl(bt#0Ts1RLNCPATgKJ)$(@m#S z=bdh}W))`;vs89nL|E_0O3i8pRafZM?UJaP-u%uWtr@+T+x6KQv_a4BlUPO*Xv30z z!4K>#(`NJ;TCAdRig)d_SoQfyxiF3!2Ulk*+(0xkHj}rrudgHercEO|qFuaH{pp(T ztTSynY667+?OqeODp%q5n!xY;(`bsMFITMzEKj7%H8|4Z*5QmyTJFqB*+_k`FQ(gS*RAp&GeUvP$$e zoQfulZs3maG#81&)fsp?sT#R@I<9Jyb{lZA`HCJG_g*Cn<^jQLk}hAD_LFtQe$){M z4-fie5h=g$A4lCfeVNBGLq}dQYvA8N*T$>}?EL&ejc{p&=Ua=*&mxFKp%P0ram#db8gSSONWV_H*W+;f(%2eKY3i9Y^cZta&P7blg zHax5*gRv%q5tgW&pnR8;5|76u{SvKtBAn4iqZbR!>6h%A0wxPZ%1^=};{oc~^h%6$GH^w!cHJ~*QlP=RRlP|T9 zFSTaF1UkH1&ami9oeY&?7xJpQ4jzZf%`VV2P?CO4pZZpYvQRnot%teJ?l3&H)2F@} zJfuUaIJC#0v|!65`}*ai%B3&A(rPOA+KT62d!t5W8uGK@nN~c``zA}8zA4FyWy0pO zKWqyzkX8&X<_yLfX# zgS@{nM1WDbP9)X~%q{dl)q$4GW!=nG&Xklh?2Y44&Q1-*3Z?bRLN)xzy{w`?E36JBO;jmJ1@{~Q z7{kEEpoD-K8A2@#RAh>=2|#j0g_S9EF(Tq+BB+1ZY_vexhSE1u3e9mA>>`P)ijEA; zIp>=zov{PY)5SX;i__py<}J!+2p@{T6@rYoeY02}ErC(WE;=dT1aM#ymMKTWgAv0d z+MM)(m#HWo8RdaIc=?E0MFMm*J5N?jO2Xp_;wM-Kp(LMO7T4vWMLsm2sX(gTEG!pumzm0=K;uBS#8;~n2m z$oaze8^tm?W~&vEQ~so%bF#7}ma8{i8^gj!60f;=ay&{|A>j}psbPXnR#jmg0Rqof z{jP>@ONrhc>0>@!Bk-YiChV7#dod-_MVdq`oFH-0|v+ogp3SCDA)j6gj1Bpzey{Zzma=#(#)^Nx%Er`;x_;qS?6^-%&ENc zU%yU+2F*6erasIY6YQHf{y|!RZEg55@{+z-Zx_!M&#r^r_2(LVg5hrzmZ22R<|&8A zg)<;aNqMgP*`L3HjpDyrZcPy@qM9eic^D^=cJDe5n8Qy2Sl+nwGcT+ECa1B#M0bCAh)RF2qA9` zJTk`qG7$1R?km2?cL9L^zgWb~vFB8*Nk=HXsDVyXs?J*~-t1 zfpp=D#pgq{_?C3KR6W9RsTZfxtASl{^vpcxX_9+m*GTtv=IaC!8qe5R&X5|NZ(EM( zTG#;ddwawS-F}4Hj8`JORfq=t7f%1ondhE?Od+26mJ5<<-1DQxv)gfbx zTMTC_N}LDVc0&&5Bx|gOxp@TGbwelV*CgaXj zD=(DUL=EqFFY;I4jB$&|=tt^&>dEL%d}q>)n&^S*o9V9DN0Qu>Mp7V@R8G}hSvos7 z?&{}WSamP#Md{o7+L_i1$kg!SEBx4aWo-H=w@Dve&hQG?J_}Efnag z$hI{1LM1)5Zh)GaiNJ74u(0~Kb^!=d@rNaWI%UL{$$)&MNY#bWFziJlsb(k@`AqEt z(5n!_kbk5&?T6vTu=3$SkJFJ_0{-olMMUFS8qrc2T)gY-po{igVc|P|RSiKYc-0%f z2$zE8FIg?X5Ea0^1{lvFzXe_WzPSAnX986Tw}`G1QTQj%yeHrAk)at7MVh6b7ti10%~}bWw2UOB8HlJ&W@w`@_%&(o|`=uSR-te^9EB zqi)5geQY6hmN=G-O!dj}3R30PCF-U`L(h`~;MXX{a zQG=SlJ)kK@^CN?!0#d;Gk>yI!Nd~HtOwk~vMj-}iYXl;I>gp(^STI|(lAOWJQIVv` zhFQBs%1GmNn_LVGSHl4#Mdx66M+q7_Bxqn>=ud8T)@6L12OOAU=Uo0z>sBaEHt8)z z!msaIGf23h*_ox{fI#m8C}1W0O*+^XIC=RC;N*(`x;;)pZG{1PYh2u3*SyQ-Ebbc> zOxYR^mND+XZ++{#et0Y@QrMzXI3;~jJC-eyevd8cJVmAo5)l6kv4*{6^U`<;EZ<|8 zWM;pnG5Lc@X%DG&>4H@!;0tKQO0!0+y_G3}k(nW12gDx|HVPlx@GHWaoVE%F7pYMmoL{pOxR|D+)z?S7OW{1vMer@^`{=-&@_|PVLZS< zohiQql(IW;JSq=5)v2j7YR{?=vOQZo#d%Ea3*oIZFck4KdO2&$=9#uuln%{C`)naaqqP=r=E2~ZLnW1)dRYm|DXV34lF*#-W`RMkuD-gOT91qCEk zyK!fARM6uLwN{QZ?EBh)@S%B(A-M)Ml_ea z;sJ?d;;QJS{g03K8z^L#MMHj` zingFul*Fy+m6~2v56P8!nZ=`~Rc8sNd?OWXahx$UcYrT&F!_X|Z-inh@|Q%~sb_sf zI*oALYpUQQG~Yif#5XZNR^v-*#qAF{2xCWrYg&Xaq44Wk6qCAYB2Czs&t1uZOcfE3 z+8x#n>uQr#93Akt^S`_{CP}Z<#|O>YJjsfW4neGkG3qw_##y*unFE;*1!g(}c!M3C z*gye%Jy4?VWgrru`Ii86WI6gcXJ}Tg`R()T5S@i_NDCmZdPduLr!Kk1K%INokm`wP zb{g263=q0k#*tXawm6ko+gxW`*uS%ove^OhBT$vUaM26}ru1_feR2s-d{IYWBU6B# z@eIu@lD#_hI^&0|JM!-0rAHC1jD5ezd>>R@{ujRh6jz7c^1soS_YcLr-%y>a)#Wp- z(NQ@K5)RJ+?QiOleLlnO70F19BBm_>ChKGY+%Wh=FAyFD>WgyqF+NO#l&-?SK&;DmMuCVb0h1up7rq$=iJVD?yo&gug7>^#8Q7MI*IY}GAnID4X5k0R8KeijVw(Wu1KyExXqr)^9(sKcxP0#*u@P8^j* zR1rPCRToh>hgKr&sjQ@7qBP>7tSqN7dp2olt*mJ=SyMo1d|p#F?}hEC+65r&#WggK zNAhcc2NJN8HF$}6Ga$@J-EMfLCex3shuj2odU?;b9^Wj6j6xruo$UMK$4UL^PTX89 zO>sJeFp}Q~5bB-b?BJjjaQ?L8II6gO*h`X%h;e;Tj|p*(q2((+`j}a0eBBtc@TjN! zpx*NGn|6~{-PD@2*rv~XQlhjjmIY9lHb@037sF^>UySSCSwEfTo~i3)K2pr zXJ(P59Wpj2y^e_;=ihBC8RlIWUo1EOg7k~fd(^xv~AqEubiG(4~;jgL6jN|&eUlENHNOnJGU zyL{2VT9==;F8|cJe978KOT;=;X9J2mM+Z!^?5#3P4O9XG~hLmY`M+W zZgjhlK|w?;pCFZRXD{rtZE-Hsi#fe)z}*&e)~QS@i#ZekwD6O~R1>RUYdXD{*6|LD z8QNo=QZ~&q{j)yL@R~*-IiL~Q#CLAvdeZwj_UN-o)9FB$~&y0@1 zlY$&NqZ3n<;s45Cp8|*?D9|0WZ=9a67@>D!ph+eQ9#d@*wNqPU!}#gVt!^Pp z8o#a36VVm4XSB}PPCSfPWWSb%p#aA6Et5-OTz#$DScY-+wQA$FWB$vp9ox6J>a_B* z^}ux?CIdK){bdggR5~n)dkJUso49~!auUvC7wWZmFYh^~#rE>yw1#8$6cbbvi>>>i zTs4Et&P$=*N#|m&M#07;oYjKShB*!C#m9{KBixt55sxD&XkkM1o}rS4o@Q*&qFZmT zEJ}oqw^tzKlBofRY&{Gb8jNWv4*J}89J0T>(svxZw@>%|mO0Ydi4Vu5cS;&`Mko1q z=W;kHd23FGlRgihP@Km}f!!A*&w&S1TOR+NT8-c|qOF}8GX8`%w_*WhmLV2SW}R)- zwa()9z%CU~u1Wxv35|E~w#iaoLB^!DM!HGtLKm!gSSNm|zRY}q*%UFT{yNhc$1Wo| zs1UnaL7#*oyhs(<)p}H|DmQQVqjB=1HTtN5N_;TR!8_ML!H&8<87Uovk%Z}Fr0Zft z-O;*Oje&@}6GaIQ^Ashx%~O=%I+2?OQrp^-#AD2nqGlmIp(qV|LQ!#oy8-ha_CKJr zVY!Kh)kV{)Ph4g)`6WP^hTNMDn(+!?^mZm92IB7?4{|$GVTaq=`MT!qtmG1!>LyIv z@oI`7mL>#oSGX%I$#Eir$QQ!Fp0;W5uALnm#>=VKs~sQA)n=NXJD8UOWIV86n$u_hLzn06sFDh<2<$9W0>sIVScMJ zH8gJF>yoFUHKZV7RfuRyIY&1uRe~A#j=|a@5;;>JQG^=gi!6~k=_1J$bmT0R23%yy zUgIK@bUnH{!DD=$;IVbbehN2j3WwV)zwp?YOxJe-GOz6}B)aZGqU-ugo#?cU3j(h> zwNd_EsI%g;G`gzL7x$)diN=VOfhHmw0K5iD5x0!O$Y*9K2@){+nrNVIKpOn9Eo+e^ zTy`O`)Wq&a4S(?WEqC=_&!+C*M(6<5Tb_^f`zl2S!thZ;e%y}+dT_^rCaMx+KIZ&*JIoM z0Pc5`>)LI-qpUxMzIcaux}ljn%;e}cxB<$>`vMJ}9mtyG`XXCp=8eCT{xD7Wo&5kA zvpl(EEp4^*Xc^Z&O81$+3=N;%J;3dmzX(y`IEgSbe_1vxA1AV`;(1iPYM71EPb1+< zeatkXZLdr{y<~0++e*b1)Aw8G^^8MC&Mo&nmNzCxm(u_?u5-`w z6;xjSv|JH}mKusBuDUc)n!QRst^|m+Gl)1 z7WEQ)W=-&pg?xH^w`mwPi{l`aHSYU#otI5?jC+%+yyMXU6V~;` zF>Cwu*g_rd4H`1j@AQ?ux|gwlt}f7FC28B6vE0g)`XI_!ACVcZyKF); zSL3ZYXn&j|_U{TwM>r9p^vBnb^it6cK!6DdtV6+YXb9dyMq`&s61^vougEIh5->Tu z9jLdx8pPKH@yL4&&dz%jx&`D>*x*J6YPq6jc#i^@r0v9s zXWr9yV5ezi-ZOAur%5JYU*St;4QmGZ*rOlDh!}E=?Yw7chW7w1d8V0j z%jU%6&LXrB>Wcra7`O5U_=0&q5{rU0m|rAbbAfBEl$=uE3ISata}ToY3pw3qSC4|oaL|{k)Rvy z7@hzb-Xm^Vg!i1q0OC8ID~1M2No#!VOyh;I^RaLv3Lw`5MhVqXCx$fv3`f^5amQrNZEj?(uHp7mOrRI z(1YwJg}m^K_>KC6mS%bpL$c^7Ah;^F#|qk^XxM=IoJ zng?8u*L3`&2yitWX~NqyhLqNfl=cMfXpZ-aQ4{E`kP~@M5?}y(5!No^THmWk=)DRR zxkt>??jQbffufFD56$C%dPH;ak9%<*gC||*@U%W5_q;{>NkRCu$z=1^H)`j{T^2qP zmCQ+~GD~6$<`Pxs-ysXz$8a*RU@o!D_hQfG1h-YNaF8Gv&x|NU9v}l$_eU#6~ARXBRh`xY`lMW;_iWKjYwd)MN z6z`MCtS)`PVhWs7M2^ab0%eZE}#Jm+_4J~F$D{YdQ7)~5u@?Jl-1o( zV5&igpt;T`f|gMoNj>{Gokye>q*-Z_={;#avCZREJ`9?9n6C!1kC23rhKBF@$=^8c$_LJq1Goj3>BW=Q*vlYj?qs0Z@ z!kH&D`3N}^5Wp@^-hqhI%^{Z|AP_$3wyMCJ!O)}q6BPxW%a5}>_PD{r{bLpQxnnHZ zlyS0P>trhaG&4!qfQXzdN!;;83g$7Y2{pbwflq>FTwxDNaHnrpK@%!h`qmu`CC@&s z>^TT!%)dL&)XxD}w`}eV8?OwSI%Ay(B~B(w)%=FEfO*96Mc%%E`~l-RC|<91Zsu>V zor6p@4(MPBvK^0BX=qG}vY$Y z+J2t6M{nx}^8e-sCoar#jJo*-PN0H0CezX>x>5oi8Dn z!Bn6(`IP=cFa<`WOeWp|^N(lq+diYIqrnARE)IT0)bXsizE(jQQ@4K(7O!PnDo;;6 zCpUz@Xp8sZBk<=wPk4Fdg)+6bevtQEMh_Ls!)@pIQh6A&t3#{?Ak~I9_;s=TR?V#_ zE)*@&ajiH$;{X%j1TXa_qTfK88l3KMug$Yt-J0T@GAikdg;F1<$KRRoU2S1W9w zBOk(&_Rl&vD=gZbZ;YFV#jDIGGlXyoh()Kmh^5p@|3U3SIPTHpS|IG%+x+VH`Qi4- z4=DA)uYQjoMw1`lr$spC*Q98ii$||3nmV0arpHiEn3NI!J%l`}g@gK2%l4kMHo#BD3ZiAa+36YCzn z9k`NkP^;eO(c7T-a}OyDMmt|RI6*cO((QP5(F2SctOufZIwNRD;7eB=Iq9DKV~(j(~3q0GGMw zr}1nT9PT8)ZB1NE2VfDaz_sTIgm6!5mx8DY^o}K*b>dsRb&@uSxF0xsZv?klQYbHe zXPw4F8lj6+-r2oa21|BfJc^Lv$vee4w|ggCQ_fI70jN|#yc0isd}o)i1aZv<4$P?G zbQvMnxJO;%QLF*inX6K?ojc->4VEcp1(G%+N2-JfdlH@qiK97k4cSi_(ttPu97>m8 zy`hhqIksK5?>P%HB9T%rD-C?A^TA+}T?sl?vIPM^J6LF&0!vA|5)LiO7W5BVOUjzI z%s+i9MbFh|PRqyoIIR6PGN%ntb(K_9JOu>tSb>;1&CbD!UQbD^+g2~wHIm&oZEP&WBN z1PON%L1HyZ!Pq3FS!B%GLC79AQ#~y3-folLF`G_}AbU)HR*eW9ZEj4ZQ}dK=j4KbuaC{A!Sn% zq#_ShmSlP7jDI`-A|q91R<`Fe>QyGvzUb-T6vj1%Wb#Ca*x*lxGpZ9o<7A{h3plHu z^5EGxd^qdE;lmC!{5H%>Rwm*UR2r+4fxA)q zwy(18nNvy&DH&K%a6#+5s*m!#lz}?G%-+<@>BJCljL+`W%EEAsR7*Z;l6N&d3pZ~J zRSCu6TvZomw8{6;MfnS_{{|1?u(N0RSiex(#<(!N{3cqZy^8mqY2Q!hpRPBh3JojC z6A={3EmA8^vz+L6S}u$yT>qjOg*tpQ9TFDiI9CQAWWrQ48XtR|Tbcs~<#Y0mqF zC}rJ|)b98G{cSZ8BJfDee-IyuDNppsi#&3fL?$*Qd*n*%MfV!z8uJf1|~2H29|H-axobu;~P2@wtTX?)02-1 zxG(*WGpmiB4&T#HWGDRkucg&qzi_6>YSRo7T>hpW(gjGcBqUhVMbpvd<=5?@<tZGU+!5j;myZl%0+FKpIazirt!434{NbrSDb38^}~?CTicq~nmL zY>AmgfsK-VWx6HQyD0Y=H$=Pe)`48&MR_>!NQr>r!oBs{1NE;fc~DUf{DH65Lw&Hy zQ@`BM8^ZG4H6!mv`7#ZVcnT`=hQS3K!Y(*T{dO;%Jy8E;C4s{Z`YNpD8-Qy78*VH|okF8Ejqx>gzHTz3o&Epl3MWcK(H`@TmtKO_b`t%c@earUX!itoxMyV^t z<#(bS)czq5gEiHDTb~T_mm6b-$xLmSFE{kAf21o~$qdj?M{gCV%te1Fzs?8Dwv%yu z%D&0Hv1zNfm)Cv4r&KT77c#6kJ|4my-*K1|BKn|9d*P}CL~BF%eceS>VLGh#b1QX5@HP3q?m?LTdpz(CCb0w^h*f9%8epfdAP+$ z1=1~O1-NQegmaORY6<68MJ#ikRzz33T9pm~LU~pCv#XM}bMvaCv$R{S%5qv2_4@6$ zDhdKYh8f_WBH~R9&wOU0rZ^u&S0QB`#MH-E>*eqN{1xTlv*}{5kZajFee!l11DBi; z+qNI2=o`fki~fsf*5cWcv)bsgk~YM&8hWV6SZ3YJ3t0D&3n%AT_h^cBcQfl=_j@Dj z7H-KU>8x8!+$H=r7cqCm=a51%hg~$6m4b?a~5Xtv^t= zL7}*RiNhsY-N9cK%au9}*i2lRO0EX;sp&;5P1;XoO83&o1NFCrn&{nsqEGbhKh&rC zCFjh)(sws1{-r|N6BEv(7tW(PJC;TXAv{n!FT;x+HR&pDexWk@7ZC@L1F<4*c0?Tp zKX(N;I}tajRgrL$o((sp3Mj~D5pF6HaUM5Wyj|fYSTEe{6sPqn$Ibo}ZYq)}Sw0ar zrK=^}blwqKRorxNCEPS1CDW%DO`lFQeRheP##yB0x(Osl&Zvl(CnVIOeZ^Ra=-H%h zg^GoY<|%T_sjQ%WG3*lpO=I7e;4NP&lauN7+J%6zFt9&&)GhzoZ(b3l z-U6kfa2TwnDK)}M+NLOG9##UVVDdI#^+JM`oisEuy>?i+0r9I1^Woy=`uD)^skkX^ zt5tls;7Ru37SV^xV;`3<(YQ%%KRw{YZIld3T!#S`ikxx|<+xC*35K-e&8>1Sn~aEo zHH)6?s2+0fecZ}#Rbia`*|z@Ey5X=b_sZ~4`KPvKp))YJ#mfUuYMd8Ypb zx+m6PyMU-&1D$gpV=dl?)Jwm6m$*9FVZ)KCauYx3yhlfsx5CdD6|&3WP-bc2U=Dr*?-Fv>?|7_$AF2fTiy%BQ!xd`@e zXEC0zbfFlZ_@tyD{QqKHp3E6BF0pOKfN6c(7&$SYPnL%Q$oGJo`^vbI_K>DN!QJ;kNV0%bsJ$zRT1=}XmXD{lB$ny^NNRHx#h7lCnsJwPB9h=B%|xG?TMw9 zR%2c{yDV8OU43U+%uR-qGg26L&n^WYkor)RcJ&~~hKs;4nIKSOuq$L7$f&@GdT4Nq z!i~)1dwCgNFcceQ==v?AEi2af!Q`mHf>Jzr}Ntd9;&;@lj`sik8HGNj24k zOy7NN$aJ=XO!Q!gR8{VFg+*tmk;B-pKPDaQKb634r2Qglmg(KoyG_ngDmItzHmP}P zw<-Dru5Cl%#d?(=eQAmx&A0*DI+L4CLz82eho)%#)Bo-_a9Ef76u_O$FB!vb6K3=I zRacY^DUD%Ta#c6~^_!djV%k&YznnYC0K-hjZek=*0?rfgSQXGnboB7xuk`=2UN7w{ z9eOdHp0=%wGB~suWpL;@qfCbEwno_ugiFNvhnr$Xn(01RvBYwEQX&Emy)+jPbYOBk+pcxVl9g}6()x`)i2S3 z-*I1oIov2On~KgF4&kty#bp?#5%u%+@!+-b%9$e^AO7yJa;BM%4@21x4vxTFNv1$O z7KDUCcHZR}_LuvA>4sw1jM={s!_q>@-mjPc)$3QJ*xwFa7)^Y-|MYVCCx6cx$=&9S zf2sc?SzMRb#$lm9VIA&}+LX9<_uI6%o_JJh(gsXiPdo~=Wt5$>pcjbiZ7k>+sVdEH zC&}}@W^qT=g{aeOQC;q@NSpF5fPAeI=bZuscJ+>c`0mJO%mpzS$P5#iVR_CY7Bdn0 zSj0dGv)^$n55ww=>peU;(*N^2FohOkXV&YNHG9|VC0e4_&%Nb|Pn&ak3!k%m#aZa! zb2hKvB}V^QmEOIM*kUL$Mn&=wrvMp*eV}|0&Y_n@)*R zgZ$yl6N&&2mnvpF#o29yzdc&JzCtr@c9 zva)1Rq_!x(%z?$vyhW_VPW7P{ggV)N$IAU}IgP!_BaD)q2sqkQ<9kIK%o<;HR;vB5 zl0Ecv=ItZP<==3&xu2QR^x?rr=o}p^I^rhTGYm{q?m1GC^h^_vfg=wM9w%Tn0zd~2 zKhl3(f<)Lz%&{P?sZ}7NUkDvnY^{EA3&;Y9^a~;6z4%K7I{F1PPurap7{RH{*GQnQ z9^cU8NBny?Gn)fzgv?7l1wmSP3IIARIV^uFWsYGr8r zFj9W#0ss1}{F=;z3I>cZs;ZOq83Kj{2w*#Il}YMeCaITJCg@7cA|xO~vyIPBC{o*R z0(Ltnoi?8w-fI~SzBmASUxtP^@$&V28g`=T;l9YH_a_Ipn_*u>RMOgHl#P)8s?^w6 zDjiU1Y!map`7A1wN+|w7ScwTse}HGLZaH!IK;5#IDnZrz z3HJ9jexG)JY+?KsoeYnNpp&dR*Az!IIVa9C+c|OLZ+5|&r=3@gkz);}hSsRYCBhyM zXH@={6UyCU2~x!WeE-iamw(^6!Y9%ALZ|vzT%Jl2mOCvs}omv zh8g}fZX|_{{k((vsuh+EF{2L9w}|u&)Kz^NveH*w;XbBgqE3 z(F#>6VRJn(3@KE&Wh8vUX5TONpa5RHiKU@)Yn#QZxc3>P0FP|Z$rEEO zGeawN21b%lNW?**sdIi7AFty&c63?;{Z7IF!0Cwy)>32ii(M*#2rMlgz+uBV9l&Y6 zFg{?!_;@(*${5k{$l!6^Dg;nU$2A;UqQno9$-pV`&nQbAa;PQ$pbp@y%H-`~^p7}a z2akntDB{N}p#Pd^;EPByPK?kY9et+=t>9ljz`FkpI&(Wa63VpFTyEu!TA(-6<&uGZ z@xr5+FSPY|FGGA4Tko!@IZ(MPuDP~j*xUE*7(W8LkJk*ArxA5#%>V0GA?^i{R13zu z!+3WlaI!x>G`Nd}XZ;y}Le#wK4EhX@aAO2v=(5D&K{Cf6z#7*Qz)&P0A8p+VxU5n*S*lA-mX!JXhUfW4ERW;nnB z0TxEe0jS|2UUeWGJTK_le~)iKJ>}o|`&VSVvMUvq27CK!T7$(%9_w_?NrQz5v(2m) zxiTi`jka&QHDseal!pR_j}JYlxFJLG!{z_(qrR0S9&XQyD}V zKZ_@{m9D>FLXeY4Wf7}Jk=%h|ldjKzw0q1NiDDsMo6HfUdikQy=RLLxd-{|{-doll z8a%dK{*gNuq!1hb{(dBtFKGi}(3p@-D`eyQUZK)v(XoWR`qtMYgYWAI>MeQq+23g&a!pD_e&_+I%uuqfL@;4 zb;}P)x3ruU+@?Iv3cIH~x9T9X-`?ooFFACS#5dun^n6~i;r5tkKPc7rO=@Hs} zXkzok3p2>Z)Ma{DveykTbW=`S8r=Nec(L$aPKoaRW~$*-Z*G;JN62HHm}Vd=N#@~X zG@M&ho@?dfSR0@cn;mgxC3r1^Z&0Ei{t|v7+rQWb3k)5z#8iSJ4LK#P- zDQx7>DhI*v>GBFvkYPeD1Q%no)`36ejK5VQP!T2HD;sO&lrV)Ak#QIa7=~b&yAk%; zk{|;{xA5;+<8<0eQTE_#*q0;WIl0Jmh(;NlkWV@tY}fMTA)YL`s2{R1-=5@N{5>)aN&Lxtz6G}Tel1?}4N+Q>?+{DA(rL55rm zCYH#C4_bUyS~iEnM+X>;&U%L<jaspAM8TrtVgp&+gI&*% zXApk3JTtx}te$`Enb9$!oiZEHE&8C+FOWpnQtFgHVR%vA2M^7t!$>G+SqtkzBOOa# zw$h6<+v#g7uDbt~2L}&^y-e4*^&|a<#CZ%Ylq30&6*TOUU)f~81AF>^FdohHV)=I= z?7HEPg*ZY3mO8rJvIJGpd*CHum3%w==p?gLulj-vrHCh;~jBA3m_1M})yO*Na= zWHMyLCUrtARo2Gscn<$zoSib*ReLW;f>?cZLB=|+^SBCS!KzGNDe|~B)X~}x$o1Dz zLi9EFl&}UqbB!*hRtM&3aL_MeXH6@saDPwBK!FzFRu_hE3n;wU$m0cFj^qol=xDld zn-%QBeW?VQz0itctx;aVj4`)pI7kAE?frq@e{~c03NC!4`(<(Rp_5b#Y z1k&Nbdvp(&`1Ckf0t#0cZjr)35}ofE++uv%c4W1oH&R-<(P&NfUuQJpAFBMihBfBn z)P>Qle7r?=Fe=fFZi6@9Zv6Ss=mcne!fgB#EOBR=8Tl2{1Lc)UD*Xz6cdN+W<6?XS zvM5Qq27Jb=3Q4g=QgSX;p-?M^2c^Hw@Ce6Y-j;A15h2b-K1|)R=RC7l3jX-;NNQ{5&l)lS@!x-M9?oMn`J>iEH=j5=!0E!(i3+!#Lf{jI&9eN)iCY`%UUkTc8&tV9V~L}L2gh$b zEN-n8V5BqdbD*ik1ZL@WUrbhOlXd`{7>>8IDshn$QV8UkD{gR+xwU-w3%GT6!mSya zaqHF=+#38IZ4{?PDDNz{?joCvTOWyfp}4hXz8$wdVgx_StyOFxbL-5Lfl5f^B6wvC z%h&|BKB1H{Z6Q+|)<-l;s&sLC7(6`a;A0Lwh@7j321~l?j!x+6VXlY}WNXTD-Y4X; z`WGj1;~`6gpC3U>yj{j%5pF*_DE0jk+Ljci7RF#v+>2 zM#J{E9kJ_PtcAgr4@cm}Ew649hoU`B-X+Z(gVA@R0M?5ci^KY;NBMQvgSLu9^ZLZ zJ7i)9-Efj)yrX;IyLTG8Yy|FTj*m)UQTai8TBLl3R?;8O-FcC-Qb$z_M z*SKYs7BDm=>yJ*=!WgTEZ6i*tel6OTz0E!o`1`89FPqu&Otm2 z63&dP&>S_<{5x}uHSJ6sh_7m*`FG~noy-v<9cB^+_(!x_(iA#sAdfSNp;RtkWbp9&MLabymRMEe9;Db&OHp`IDKl%~j&KLB1lOplL7J6VRRcl` zo2jbC39qVggtimdh%ytLl4UjqQQ64+5aCeVZ8{uxo5w z1pdeQHvAObWh<2LmX2v39r8V!q0)M|mN8nBG0K4h?GZlKe>9fwxGNl~*7C56a3`BZ zs^bLV7z=C7)beQ2u38?GjEdE-UnIW}0SGngckwNYTi@rdpOOk>asibT3bD`G_Q})i zmoC0#_L14^Nf(uoZVdd0@@F~)qKoPzS{E$(yD$~xzrsL6s(elIWo=9g>3 zP1Z?%h^;Wd*8b4M5pkq{Sk5)8A#S^3^^@*Dvcz+hTw12SRB~yFg#DC&-`|h}$o6wN zRcQ*O$u>h#&*#gK%qkHrkI;=Bed$J=xqcCbW4;@9*4%&AQ>=nSleD!9d#LSNYHy`?63i?$W-C7)eLK20^#9W5=m`byQSmYkE|g zeNxuaHM2F_!>_x_@JraXrc&nzJ~*RFBfE{ZX^1aSsk@jYCl7qnm>uY^*2P$kv<&{4GlJ!hYj*K``VO;$ zk75wh)1qw;A@)w8j__`aB&LQ^OgWF3nLaux0@FU__9^FyO%O!b-Qeh?<($V4UD>m= zqmy5)G|Ziuv~+9OOHI@hLa%Y*aNw{5;n0RIt%EZu@(JT(#(S*v^mFJSkuS+yL5Bn? z3FaZDI(|^wc{H7~r&wx1O>Qa-qU2!AR*nAxMY; z%&M1C<$20!)+g5V@<6&|GVxk7rEFi+F6PH2p6Qk_H)si@SIx-^hiFXuZbHIE(uGlf zMozRYqMAGH(2wo2ROJLDV{*bQXEPd5?p#hNhqB}Z5i6FZwLq>&PMCv+#Z`2NOgaEZ zWCun`S8@WzDD+Bl!g3l{JYau-5ErXvhHf}^55z%Y3e7ID3D`j-Wred!;f zke0hU0L_$*XY#3$DccG8iH{;PV}ejeg#|D9+E;i<+_bN<=j3pyaGPwh#h1+lpY4u8 zQwPuy?V@(4R6~Ki_xeT3Brlgg!B||hxB_jFXcJXz%Q?)6aKSshvz6lV$dvJgqQ znHjC14#NNe!d^DS!4p25J6*qkNxc9_fe(uN>mXN1sVxlW~cCJBTW3rt=9 zymI&&`*Buie$wYmSxTsF+8Ti_DS_-D?PKVsx}cX6(2?Q z>%sW=2mCXx)MhQlK&F+7F_48;&0`>o(<~36iN03GH&PU2JUsg0bW_K zxwB-fgz2RJ9ow^%l4VHfmg!I0V?WZA?MBRQk682!ay$o*2968FGpz z60n3|!ettrhSiv1n8;X-Zc;!Ajq;z1wtYo(`F|U!Ye_1-{p;LV>FsmOBr4}o#&C#s zmMO?|oG^uj`b_q0Nl+OQFYBm5_8=hr#1MBK(S+Y5B3om^7-C4%G-KG+;c%&_lk7A= zWjr0u$j}yq-7bh_1h`2U2)rn#Mx=@yhlwfO++LX7-L+qN{j?6V`Hb(a{gY>n zw2(LI(v-~A5c$5q)0xJ=LBjauf6=C3 zPvhA}EZEaHj=q}yv@zA;pc0WftdLx6vb&g2Q@dJ}jlr14Pps4oN~1br2jFC_1C;m} zj&K<=8vQ8OCzcOn=$0L4m+r5T**TDfo#cyFNXIt8MiQW`20_S5kxv0guBj>W{yZXc z#W(3y#-MyD5Q?9w;8v9cFpnqHglp22y(ok^#B{N=@;o{rL=@$cibw!dxjj`4L*^_s zULH}afQPp)3_!EKm%`9fqqb^b48UMCO^n)sf>1fjqytFFsI?L94sHcUiiA}jYo9^-yyxil7<8vLN#NlZ*dMXn}n^Gkt!%^lf(9M{WwH$nGlH5Qw zZ6Bex=`=CFQ0FnU4HKC@9$#<|S%!VV8Ve62;lgCD1L0~56^h2&66sd;LLx+p60%hy z{d^6{Dwlq|wpm7f-6WQn2SityVor!H?ogQ`6&+1ca2_OF-Zh(L=OnUO)+>%Za@nb| z!(^w%jv(J@?C{fFkDaxu)B|Ay+IWB!GpmQDZ41pXhP>qy8OJ{vrZ~w=0P^L=)=#^6NS*m;CeHF zK&pDi#y*=OP@OntO>C$`Z3(JhXcGdSEM40wY|KJ&%i?4$1KHJ2|p zw|o)5h+8+~i&hrCh}PK`4Z3|!)|l*R>d3|d=*U};pab_`03BM*ZmK|M(Bp(OfZBlL zVz#Bw`1m4iRde&GDaqTgo9uwCk()P|1fZI{xU>e93b?p1G93;tWz^Jz?o@kf*p56GH!9G4BvFUiyoCFu?o2QQz(WK zz}06Lfolp_26QQy66(th;00;dhyS^KTo}Fp}pLm6OUqSlLs)e9xc3EzjD0!87` z*C6lynExI%AaJ5mQIEtqDkz4W#jB%bmY!%@d7LQi&0jmY;}wKQ`Bj0A8$_(QT-m&k zGoIySiTQyNBLYfWM>Tn#@%2Ri9^hFM@6*syMWGQ{Ge`NW*-|Hf_pI?sm=z zetKC{6i`+y_EhyvDB^o&4}kegC{}xhy-de2Ih2$F+hl7Qm0s=L=xS=jDRep)JX zA$zuLJp~D=Jda=Ar5f5T<&GvywpD(SPwmwH5}*6{e3effQDWV3$`U8d=ZH@he>CRv zWj=4^okT?03fcR)7GJP6mLOcmqRH8UF>fsAIcTs7U5?mlm1{y@4}?AXI1={j<6zjQ zkE3Bt9~)t>K5hvkeH;#BeS~nUK8^uJoAP)?1)A!XF?-qe395ix^c|kkdvrXsErt5Z za;@EL6`k(Va-#<=S)q#YaUHAREdS)X_9zQkxhBrAC!|dGvrXC+e@NF2woSDF>6%2j zZN(L)Yh2qFp_#4~tjIaD{QD9y2HN6DzqfIPi*2XtWgJJ+u+nvxxJAqh7~4uYcoc#u z4AU0Qe~YOzX$l=_lE-zT(?t96l2dBR;y_#PVL-wZkC!M@W=#{I&px)Mb-e75mro(5 z#}&TS(NvC?P-a_`I9`%E#cF*YFP9%?q73|a3EOSTWn)9u@L5s|Iy>f8lMelcqx#QI z!yS-#ID!T_petpY+v+c@tgQ5#t$M%TZ#M>=TCs#xM0+(YAj!d}m^8W8A0EOACX!odJ-KjU?n0RkyR zv}_&5yS_aTfc3ghmP1Xz8ho8XrT{8+!Yzh7%ITwSm*`eYx(#e+mk_K2hs0^%H#)4# z4R#>Jx(n9*GHa*qn+E45RqHFrCO?qQrWmeWA0UHNLbHXa9F+4qVpPk4+4%NZejU1H z-8f-e_O<+n6Ag$o&4Cq(%>e2s-*+rfl2foiWoM0v9HtK~MW7STyoO^44WK3&vLXdk zz8ZaZTJ$CA+FPCKcKb%&x8nAu#1 z%^_^bUY+e}@qrV(#|Ked4L;gbrR0P3yW~-UJEIyb^OACjkH&J@<^$zqnGb|VmsBeV zW>hl?a1J8E=cL}Ex!qg;X8nQso(w(T;$PIpz80Y5|Gc*))EPnb7TOa=I)0}Se zZzkT9DxW&Ky;DtcMvU>UWg%JGP$1a3p{_Wqr5QcGz_451C zNAG2Za+`OVKM2?3JTt;cGbKQJD=kcBnN%;EMC&9P@R)h`%Hh)xU$5*uJ;J*wfY76> zUtUm2A?IjRpw{S^po2&ply`lSH+3u@T7CE;P}LBCa(SNMd?65!v?E&Pie5qOJBA8a zM;aq#AqVqgu_J0h(bgSqVflD_!YeRex->VQSFb%eOnsVTa>j%%z>s*B7NlXV2q|m_ zIQK;6E*8`K;-}tJe~OT2vR%eJUZP`FN|Ayf2+4K5H2iUxk@VLiYeRL)RsEB zUx>`1cRkBBUN_<&QQWs6z!ro5&r5U3TLvEG#SD=#~|rGIBJ?5^p$%Z-wxUVg;}kjIb(X z<;vcp%94)C6Hhs2!>|4ZR-X(&^A~@o8G8EK`A)M1W$l&Cr=an{@F#?XegA0t$ErSB z)T`7eKX3jK9YT|3oMMq+L?;_Bku_seFx1`Zvd>8hTg3Kj&#QVY2Rz&!4gLGMo4YWw z{NCYDYX4_L{9cPT;chRH&GE8!oUwJvH#=G-vvbb;DDF6~hc2_(tXn?av^927|J&1V z_$lGCoEU7+$;%HjWqa_r*ms3$waphVb_t$DTIz+Ux@nlpwlc@(%kAb6^jl!ndt?V5hwB9P2qD@e^7hl~`q7liM57rI_*yMc$`%Py) z%bJ~%9~ydePCvYm8YK(xmAA_OsG-;;lQiWa+IVN#xGfgTNo= zJdC$Y2GLzGi0(BF0uclVcK2t1LZ_&RszRbFj&WI#&=_5`n5e?_XA%X#@RbLVhG8H# z2V0cJxOKD}Zqj_pTpoNw|08jc<@UsJp^+J-fKAIpstL=>otQ5 zvcHoH%wM0QfG+)jCvb}oG*RTCCQ1&4$wUPd-i_I7B4o1Y1lk+#rGqojD2!EJFPOx} z7~{T1peFkJARKVV={gV_AJj|8r&X|2MOhym=3ke88~g(}`YUVU(AYgcOo5y57f;?f z{VizF+=DT|WQeMJmVr4akvQ|)E)uZJk^*BoeTJ(R_?8%Icq4UOyQD6 zktu8Cb7ei;52-o)ymD@mO*2ggxe9z{7q zL%(#P{DT_gg7zg=XF8Q-H302Dj4wu^^rht(GHrv_2kra-J+R7P=2AFx7OxCR75r&l zq7(C+L={90le9g-q!+fj)@F-Fpg zwxxFY8}bXzVl&F==yauBoe_uU*6N#0Zi!P65*eR#|Hom?!6T!TMUn4v|+*W0{Q_*VHcrb;)n4Wnj6z> z6V1zZvJ5C_-!ni#E87w%q&`VNVNiydwF+jAx5LbF#>}xz3GA%#stR_R<`UtE>ar6Y z#RUPOsDg}8V||~YiVV)#cbi8df>V?saK<%+3!*``i5iLUTAN!y6^|@?Bw>jG z7>`_r4U4@CG&VULBJjwyynb?!?EnARd-o{2uKT|4zUR)|$K1g@Fqjzt`(6xy8303o zBna?L9Ef-WBqdR@WKl0a<$+R*5Ukj-D~>HjQEJJdZLL~y9fxU@QgOtFNz>MK)t0i= z#)+LqZI#AJ>{e-=L~XK`^@rkM(ANOG)m6G`CQYVmeQq)xVpiE1gjc{OeN}SZ4vH6wVKu|Ey7{wFew`~cXUkM7{Dhstum3zduG&ALCXA6^B zcP{p8;~w147^?Dr0SBOo^Y|VZfP)l74;GG5 zf?I(CSyQabc-biq_7IW~cuQyvsKWCTq%gmI^4?&zy5H2*Jyk^tjRV2eF!^R#ZAhqUY-A%E{8_ zwMwx3<|WG3C9u$Jgb_1&Lvt-BxFOVnUv|R+*oFQ{Hf8k((cASW#Z>gh-R@J!(GtBkBu{63 zmzUj2=jVz*ns2)Sv!EN96PYU^H9ve77okP~fujr_5tzqZS7ypW?vT@Y$;QSzMsqM% zQib=S$vyQbbs1kVC`!Ol4U0S4y#*Zbe>|#e$l|RI!Th=!jGY`b3lod*fdg%@sc!ti zm+coa0B)~6m+^>Yjg5&k(OAW}KByDa1y>+_wYb<@V1emE!Y-YvXyCh5RJuz%iy@2M z5LpF7i6{rkU8k8mCt)(m5aM=!@}GVg!ydHXu24a6)_}GQ=0VrdgH6)N`bwVR_7IkjD7}*61v-m(c(^J0Z z!)_FyOWj=zW3SlkV%Q6t-J6vDy`4PgytevCFWaCA1;Re<>7RNp&;oxK7L~Nq_Eu;A zj43D3>HK03qoQK^7`FJr$glGb96JBPp$E66PC|Tl!KY#%+RIu)@r2=tq(5g`t+2QT zok1f`!f$RQxV0rHAsgClg)wkj=myQ6BSC0C*(%b4GovarY6`S6fZ8YyutpV#nIf5r z;IEw3mpQ{rv%z+B?kp{Icop7AiBNUfjwL@+)x@$XX!6}Q$#5_@g(zhpIPq;u4!8?p zgtyMf!bkPE4(_llRO zC~EDK7YFiFNN_4C1i0D<3($9@nJMH2BAg`e65&)rDY)31m$i;Lmh0erRKdAFp+w~8 z2y;lEmlAQS=e3@pwBKZ9$qV`$0LwQTwlsN>nD@#zjfFFDXo9WZc0x6brviviD*Z?4 zE-Uk26&aE}Ry5Zze&%tQFLY-yp0~&h=^hbRyfd{Dfq0j1(Qi0Cz*82h2YG9oA{ae4 zb7zm(c>!h)DajfVp)Xe-I5Jn1H6v#hOQ z4PC-K?TweL?GU1}8RSON7o9pRL>E$M(5vf53k88jWTtDr%4G~`-0Vtk_Hr|o-mtim z@$^Q{Vt%@|n3YyCX<0~ZqdK%sCRN!t)R6C85HVzxqeW}ZtMF*wot@I*RmA=;g?0=) z@T!iSTlNlA)z^EwLP)DpE%k=*fgN>&7&p;eW@DG0u^TurJMqJAFpgO6G`k_n%yNX; z%?j2p_0et)Vc1H?5L(VTYnmLs{L7qoeqM+mRV1w10{>($EEs6z(Y01M#WuNsBL;K_ zQ_v!SgJ(5L&o;R283A5Bg8^Fh72K? zm(+BaPO0ROzS*#vJS^yRzBVk1VAR zKUBnX54Eg+NlbS3+ww!j0FgtIvQsDJ$?x`B^K&$Q7@Dug3rQ91Jz5Mx@Io>My-GiX z3!}*{G$Kmmp0aS@E2YPYR5V2$7@nef`j$TSRmQQxh>aN#(sniLo6$8zVrW=OxS(Mv z;ev*xgbNxL;uoM{3n{u{;bh@t^h+cwqhBIf8T}H;%IKF!Rz|LG$#t#3&u~G7V9rGmU-^{b zbk-LvX~J14H(uirV_~#G&6{pPDpNLLcpUb7lnr%MboPsdcJT{BseUohF(NcQ+OG9g zixy*D{%x~-O2dd3k_`|U!X+jwdk}9#Bdwdp&;R{mW$d}q$GiOD5B${)9D-w{iuh)n zuAP0B5rw@8Dj+-5@hGFp8069_Kba0O`uVQtS>$R8_wo(waoXCP$AA$z#_g|eXzfEB z@a~0a`qG9x%DAAOXfv2VJ#8ca_(;--0d{aY_8%{|QQt1x8HR%U(~QJn(8c$D8qZd9!;lOfg~8cr_h(1@;@0zX z#pma;fFbatJI3vqA(UFTYebXV9nnP}(S_GFqK^*Z+((%o!MWA^tF}%J+u+($`tR6g zm_^-+DMW1VSytvYTRiqUT)ZI{kuW*rI+sJPvp0uahEUIj0fc&%&T6Svn*WJ)c8e8q zlNhya_&@IOf6MEF{|^ts|A#a9|7AQkaoPmRP^y9gWIO*)X@M%ixeWVbBB$sg(<41p zcT(&?d_e2I#Uv;o2xnuA;4I>+N+EEy2hrIu(z79TTIGU{+GIK4ss{bKAEh!*CmgG7 zOa|`-3?vov$!eS5Sm~7i$NW{V29IXb>&A}ZklB>6mT&Q&axFqn&$m=9PE-f0D%E5S zmGA=!@*{(`1>VSa1<#_B=tN{7L1J_kH?~}cWRCH83+fB6WKP*O^W{?v6dyYgG7SUo zqWvnawC>|04I^G8;mU|F9!g>ojrd};<8y!*DKJNce<)P*RO^SBk+J4JO@uE7&OXR- zR!3|Jpd^foft*0%$23Wr3oQmkZrNf$_|;;NSPG>@vf@HrxX^lR z195SK(CLN&o)2&7wk1Za8r;%9G`PG!#CWtco6SFOljIns)4}?@x?_~^&B<#HqlQQ; zY(q8?C+V+E1f4#SO~h9Fc6Adr{lFkL{Qw=UD^+xg^~f2U`q;;Mq>U8o)yHy*EQ93# zcn;(5&H6};U4|^>YsO9)Zy}6tL}Y>78O|4kKF@oJ?JX2aKTD2G;yb(A|MI{(@B)=$pT2*S_ccLazR^ zS$(7Vvm;xuE{M0RH9unyI~x24b}g4M8ZA1bhqmAgFetaKFW~JPXbeamyg~G<1x=Xr z2pieO!|0{%82;!E1ja`Dk)d*YM>DaxU&ch=j4ESO*AUmW(@2$pFMI43JGRo~;A!;| zECqo#nx-Z|=GhUwxH)ag_PSt@ku`7tEHYtxA z*1T}TIzT!j@bjnB4%}u09f<{-$N#Cc`8Q(x+1jx2D^{b}{L|KfbX~+W6C=>!4y}tk zL`Z36i?!1HsT3-2#H8fcMUyU6o6p5nd8g)Nr6eSzT|-X%ldD~~Yoz&6Gfsr<9VitTDN|D?7YLKtCC z`D-_?-%%jO>5BxOrhHnB#J7R)So5PWTxZ~lqnZUJgIyut5b4qtXFADW2iBs~BQf)O zx5KTr;$~h5cu0QtM6jAKy4bo0ovjli4O`ciRB!>E2krM+x|TZw=e0D=Ygp-qSUSLG zdYVF>sk_ix6X4Lus=J-8zKkMPr*W$mg#`T}i;+AwayV#0a$}QdPeJ2`D zLqL={3IoJI#Rt)Mq5%R95#&~t^9SDSl5V=VOA0fw@aOob8Yw9lu9A&B zGEEdSD-ts$;n|5Y`VFyij#AIy7APM4JqHf||V#hBD zHi)RH6xlLsrOS}CG8Gz8ie!rPF4Ob(v6juP1~D&s_rwA328-q2vp~2+@Cwdi7{wzdW)ICY|e&z`0!J z-E^rOx98(hkyHUL`ci2+o+!{r6H)Vtppd#k%fVvln(0J*P!j=7IN$o9IZrVOH9Xx6 zUzENDH^Ulo4dh(N!d$SEltbIB^$xxt7o<7udF)w+l0y8)sFV%e;-$%QsH-2%(i72_ zqOzgii-Q<`Vkpbp7Kf^XRVWwH{LVn4td1>j#>3pa219Frh+Bd5+Hr3<24<@pRsrig zU@pvd1>u5VsjYzP2-2eZ*Mzzm+8cY_yw7OwgFKcZh?Hh_ouj`ZxNUHxjr$;EN%$lB z+e+8+<}y#2@om+(Q30udGLs`qpAiZ{-AF2>rEkha8ip2#x>baG8fl(3j}o`R;Zd~N z{1S~e8!C1)l+$7`>fF}=}P(Y!>oLQ?vX-t5b#2~;pvrG@WnL`~W5Oxsmwwf)38`Fd)Q_^ECM&_X}?u49-* znGrBxigpE?HNY7B4NK&6R~@I2D~k>@Fw5%JN~Vrrb*d0x!z7VLietF3#B|#btS`O6 zs`at0FF+|z0@@tX!8nB}}*F$i(dV>kU&k;ug zWg)4A9dg|jihxtwPc8#3^JJ&w81Rm=y_D@Ntw|h1N%-&_VIDdu4YFcM0pta#RB~(p z&=}tV6m*CF(%P>&jZ==Zf*dPkxo3vy;_K=jBa?SEm}B1sWw?|Yq?+b}Aw_xibCwGR z>aMdaMTT%E{sam}GVy+bj!*F}-xQU0F9;&+;b-Ibh57aXk95MM=yJ#DGKFHSpsw1p za~tIQg#2LY`PTbHB-ETX$c{EhMd@gRWT`4b2%@aLyo;|#grBIZHpqr=kc3-lgWTa8 zB#wHb#%z#{j9jxpTH-gkLu(_|18k6S(}XCp$I9|4ehz=QgkVGOz0l@{8?UQwUX7p(}pa_GcyX$|2n|^I0 z{dQW*W*w`l{ip1+>OuO{=r5uhkMEZI?`FME-yMEx_MU*}7CMPi=WtlsHXSI0`U=AiOya+Rw-PlKpEs=aj6~!wzUl$$`u8Z5J>$|IM%qux(v5xLy=j(SfTdQ=0ij z3JMTOTQCdA)$LrfdPK^(0`+{?uwc8ks+U(E{4+6Q_kJDvoU7UU4~I*Yq9g6Z%{5QDH66*|vrMzX|qYce#?*NefDQR8=0x~8JhGSq>>pJ+GHG> z1!5b!qUYx`Tr<@bHOkJ!v>KjuY)F$fq$WeM@cqFd-DW)7OmPX`8x8elNUwL$Qer}s*{C%=v6t*sIPS8mqIvMs8SC< zS4s|AaEji^e8M)%pv;NWCvZd2<;VK6d39`&meR%trl8F33Gqs3Nzzu;VQ2Na+$;4>m_!s3#}Ds4+i28!Bj~PcVAt7y!PGt3woojvN1~-|uZS?@>+1YB(!GT&F_J z#dI_Mnpw0tq`@xO92q)TxEk_@H|9wr8{t@A%^VdmV|g>Z=_#U?CG%#o*-*qiogtFnG~!cS&(SG( z#j9xe=4?4`6tx~VOste@8KhT|emaMiS4+%CPDf#f2N&dYn2HM$wXsqMOkIG&(b{!X zxjIzEbk`D1snvp<4b!Hyon=YjT!3aK9;zaYnLX3ODWcLP{mU#r7?k6JWK#=cXwo4a zVQ#%Q$AV-T3$bQ-K~!d%KO(|+`>`o85l=}HD)cpw-H}{*(~9+$5nhusolXu}!@~So z20pLJ*{M5C4vt#nbPg68UDPZv^by-^kA=tD43r&ku zOI^wyUFr2!ggQNL)jKMR*X3&49sH1 z$IjNLHM>#@{uQ21!lkLOm+giSee7>OKQ7)w=YZrdF4Z zRBCn4!2Peun+-m)5`N-YR^OC}B1<88?xQv#W6&D}rYSRqbS)7nc98vg>Hug+jyYah zCgyZs_h8tMIU6QY2EsOppIY`BibGC1^D1@x4FY4{?LhJPf^n3xYZ6>Jp-C1U^UhC4 zf)v<2Xd@~Tv9_QsQW&Pdo%;1_z{X@n7ETKr0*hotXff-{o3S9Hrh3E0z(6sSvlq(FH=eUYL$qW8xB$ zy$>Z=5gxwYUFAlLNRx6%3y6shy#{L5gP0fq}z93YYpJTBWdLA*cLkFS=$? znrorDYe(n9UJ3uCsR0BEZtYE33Qb`m3F|b&Q%cfRf>u!nP{{rGWcP4b0Z|U0X_?f< z*Jyjibf;3b!C4$F(kdZce03}w5@03aqo*6YfB`pzBL4-Lr$aBFuB4#ltc9rmR%gt4 zbrn#_lD7&}_b|Ocb@fbZcO&qFzBc8$y#d=+RN_JAO^IikzZFL2kD^1Pa~AIywB`aB zVF_kT13~^pF-f}xlcFo|rLO?gdC@`y{9LQe54*ym#V@r8*!Xedh@NSA$ zr1}T7%3u)3+*HF3mz3Zc{b(#nNTo1i+sZDJkQ%TgtI|!>!(uBmySW8E+MkHIhoC#J zXGGPb)wXGV65bj*x_1}1z0_@E^BV84#?`I8T3~&#RFVh1cpaL88wnrLr9>zIE33?Q zuDvRgBSNX{nWjv0Z~70x7QKDU4Ij1YnL57-THOY9KAe~GP|}&IFJx=g7r4}FMc6HT z0>Dj#gG_$2z!imKK4sd1r{d&(8?>aWWz+$=sg`mePtJX+VK9~gYC`6GH_P9!QcJP5 z%l%F>KbcWFi93XtLz~Y*Z9djpolPB(J?iS0U^sC~!D^O@3E)jBqO>WS#aQcdp z$V|^X8<_;RLqhyj0Y$Wd&3Gns4PgX&Y#owNOy<)?X4r6p3f?Cs1`=c7kNEGbPnY+e zGZxx@5-%ObqNyUa=)|}CdD_f^lUj&YU#F@(KR6AHomeBY8Mbr~y0U66EFC!_ z@+I(|r{nhVW}r}zBu>jk^>FkxCE--Q)y@IE%L%l~CM*8~`GR58#Um*yr-7siu7$G5 zr5VOef|afX`B2HltHx)uP#hy_-W$oY+nnJ|W;?S}%u!^jKCSS>}@NE)8Zaad~^hqb1aDDNqt1<8WNnn##L zW*zHJns5N8g?Sv7dLD*xzKiJ<&5C#t3vD2WIBJiK`I4MpPiq zYv^Pqu;#*Q8O>w*Sg&{&hN9eIa{N3BF%t`wJb=wBlP^ZIABaU_Zk_*F(bG3$2#|r^ zkz`Vnf(-)UXws7TPa*uEV!NZw^LZ(?7=YYuj9?Pm1SKOmy2E?v6k_j)_Gy zXi^b~j3bsA>!NXlnX^32N+!i=x}v*^i@8nwOj(#Aex~fSKK;BiGZ>e}aSI>F?5vn4 zu=no3X4t%25V$2Phnob(3{HGQ+hyPMG-|JWeYhr_wGI`wDc9EJAOzq#86{_Q%D^iw z@-~52Tw-Jwhndviykhk7$aqEDp5>)-w-M&MGr}wvTrv8v2#{Ytjg%eRl;sjtTl`6E zC0VRR`Q)kE2tPl0x``5~UZ*H^Pe82|aViN`4SM8s#?09v_|fAY&$>8yPc#7S9-LY0y%u!(EHgy8_Q? zh^fkN0Ub@Hj6zwK&>HAy%li#MN8`X#qgxfiqlv4?5}?z3cQubYdC}ZdReO)sqDkNB zWFy^wUQcO*0{=<&N(LS zFekEy^oy?#=!Y+|M#Gh%&h`cqm?-?7-nUlpUs1QVgU3~x2gv9DjXt^;^R6|N0NhiryFVkv*_-Y>AD^e z#lj);eCq*25_3f?^BUY(Es`xbp_-E|HoRhYUMv_)Es4cBhtD*;z|ptuYpj54Jx*r= zgF|~jO|%%MuZ3OL#ER9m3)I659NmmOX`OiC+8UW4bVRK%b=EeDkvgJzqfsSj)ILe$ zJ7oPZ4oNzgQCsG%2;os1V=N(`eND$D3lNd~x1&iK^!`S^RiC!Ajo*Yuh;&J=5z?6r zU_m*R`}&NG@@yC*W4kbumN|`P+pQB`upm>-%;M0BSPPU{q^1#ggFv19I--?$OEK18 z=33mPT(L~#s=HVtHb#~VV_L<`+XP5XotGlyjX{dEN7|o?TlI*gJ}b6agv?j^t3cPJKVdGF}SX$!r3Xm_KUA7llV3AUE7L%SCXJmsNooo6x* zoLx6ByDIETw32_cOgq1odUt4l)elj-N*I@P2r{$B<;>#2%pGsZU1YHr@Lc8|fzaUF zBW@Prxum%?#$QX0*ax#>5@%z482kd;k2ac4QYLFqe}tjat`y3}5>6DZqfsbAi!Rs1 z2TbVO3cNFp%vxgBdTlj_0@DZ%M__4RlNm|50C+FWGgK2#22(;$Q-(l|@CaO4IpkP^ zC-JsrHF-!=);cCWwayMJHh>fl;uoy-#anE>l(vq=zRwdriGD@Nmb(LESIAkvb=&~5 z)-nFx(%8#s>%b%5dQl`~sCAH2t<#Xkz9ZNA^ewh7ORGVind-NGp@l{xbB)$HVMvgn zbE5Rc4Ny;x`WOHZkae#E4slT0DIS&}qES(GGav6wC^-S~R1?t{d#`a(#K)t-Rte4meT-3lsnZ3X}sJ9t6O-$g=J16e<)^GD33t{8H+M2<_Oc zdys0+H%F6`Q@2-%`^7-S10Ec%d8ori?bZgby}#qTrlh_~rm$zF&1C+sw>5=9s)rEs z67`TAs`VPo3lNd<3dmKAv}MeTWGvj&&a|$We0aqM#jXotj_n9xR z9cuIjG?TjNyRqz!jmDzU?l{o2)S8Y1bxRykgfz))pXQ0PG%*v#N zS`9lnixT$q4VY#c8Sb*J8aRjvG_@@;NxqJ7BjZx(QifTJN@~AhQ9B>O1;io7 zC18w%z8~2U`v$w7tbZ1~3T2UnQ^rC04-l11pqWGfU>HH?Hkuo;61LtNT5k0czpF-wZl(!sz)e7B#hg}hg`_X!M^n%q4qQH zm^)t@G0u9gCBx!(El=^sq~nZqoKA?2cN84#CW$QQac^dl&}q$d+EwR7fgo7ceE(4`=3yAW%tmo(cC8%~b;q6yGh%}`$pH+(2!@tqPH-Fv`H zHxip{4M}XWq$whu4>}=B)qZ!XAALV6SNpxHb(|^w)DOe32W=4nnXK=q z6@@7#4yuPeJXY#q>GNKLVb!5gKt^Xq$w^6k>a2<&{SAWVAbV?1<0`19W00+7O|Ykj z0;-iL!q{E-TT67;6w}kx(m)gJd>=-Z3#7QDJ)XpsyJ>tU%1~oz>HQST2DUacx*5k& z$uYL_OVw7`Ojp=AY(HJcPgqTGY>lrl^k{pv6089@S9kWzFEvXo5trInZmFpktdgj3 z99V8>Vpwdb%srs2FA1P?pC_}pQ~SJf9TgvAvX|_17V9gXywdzBmpWZurpqWs_gin# zhp`Ee9z)!ldBDLix;|2>RS)f#5GAD;noQ~TP^n58D`LUtIOjz`-pA7@%<#rW8!F{O z1tY2Ay5bZ$z{{kSfL+yaMLjXfpKIY@CHuDZ*)(|8XEL^_&tjb;n6c_Qgw>x88-xl2IO3IziXWZ%hAa}ab=T6}&!F4)47YYfHD~R01Ip zqA3uVOV`%{AhEn0>bn)od%w|3h$I2^+i;h=X_hw|Ekx9i)I8(j&esaFz)t9FH!_9>PR#|m_J0(ra(%o(fT7^eB+PDp2ewM;)f|m5YHxD z`cRxkm=QrkeTmM(0yo!_`#Mvz%L)yU(%p8dcrR@&t%`{WR!9j@v zTa6Q4JNekWwTgIa2>^zi%BU6>NJi`iD5|5d^w(O?HPmlarDn9F%bwuI|8YFOR!0=eG{;bs=6^(2#gJVfi_~hl7^u1N0a3V&ZnzAx37@A zQp^sh)3o@1pyixcqjuRKsJwgub|Wy z^on{lECoXp2>qNn=1NcFVp-7cQIAt^IWwAnIWv0P zj^>jJw;smL!;kP@1+CTu?5H#37R?XhQR(_RUDj-Inn+Req@gLG)kEu%AJ85Lx+#xl z3Ka0_ZPWV25hV?sC9STKRKVO6$MH%*f5~k<)UI~^Uxo<=N<$*Lg-^tIQofF%f~P5Y zteo(49mgsjr^?@O!H7hq)YBQAY*=C{{O~Gl!6!<%YN%U51njm#{T%GzcI?W_X zoTLeU`0WCt(g3K$!j;t2>50IB@hCxb7FzyZ-qI3j+lH zs~PBYwy{9Rq1Gw|;ZabN>yGB)Pw_#U3w6~e1UajWlgPlVsH^%aGEn>~-qu@82)-{b z5thxW2TC^|_m+GkD%4HUx2E$r=s0dszI~AL{vR$GoWM9;yS=*LjWQLm*|Ad1$?zE#2VAk z=;1gc;=F7@knU(B_ss_c|$kHCOFp?w&=JfG6gl$u*Otfi6-t>!}me1bp3WItNw~dZw`qpXyIV3MRh!LP4pp_4X-f6HNRXoZBC6JWGO^of3|gcBLTg|c zTO+Qf6N>st6AFDDo>1uBlYo;gP{-LCZX3>SF|mfTagnmDg|lc`0ZG(B{t`TlxkYZO zNw=29AFLElYR`Yc_k8M~FRq{FEJf`;e_U8UjdpwE)p*bPOMm+Pp`X5LKb7^?tNqLS zv-jV$bvRETCNb{D-@ga2BdjNTGyHF~>E(ZGXy z_#+WbH}KcxugBj${)*%+$+GC=KNEIG)kLv2jdEgga!y&KOgl=ktYy6{*&hpUw^(+_ zWUTFw{68i6f6D0me!WOmEk$?i0WOQgelBCK*-t+v$(_fy;VTLh2lV7bIAAU$LApPoA^8v#(#Q~2^z=%C24hP8qgz0U2XAN|oRSv9p+{~K0$#m&&8V7Rq4`ys zZqlYiXGzl!=Y+E-aLCmpEG5csWto0HhK04&#v*T65sOd zU3#`*{|tVYeBj-?c=jmI%K4gSVVyPnV|w}+u8_1pzUA;4ylE4rq)qT)-mMpP>@`pp z!fKeuXy$H)0ey93Ci;{%w7*c?qc`f|9!s#<3-uIPqCA%3i&P7@0bgivH;h7xD2_9N z%I;LPu$wWZKWD0i93I_k{q+%QIckLWFv5EoA=JLVTz!<{25I!T-Wm(XEip(hjAf%7 zMq2Bji?Hd?rE9niLuZIl*Pu0%4lxxFrFF`U@;>XYk5U9jqdd+i?_-q2koQN)wV<$% zu%p(MmXb&@0#fX1&?oefS~wA>ww4XrMeTHa-!W5r()#Oz7KPQIPcZ0{3>vm`)1Z4k zXl10=uli@N{t5bry(H4=h90{ln_66^d19SjhoyFVyihESkB^th4lk{;AZh7<7KES} z=m;l6V}Pq0Sscjbc7}wKmZDxXVk;751j-P|2{{wg2zxlYLhsjj-$>ln@6(5EkvL$` z2z#wdN*1|bJyW8=g>=@xJ=A|mOi+!!1skrI(|MGvDp+H0opBF4OIO0yNNu$)VeC3TPu8`eF_XGMQm1$}24y zOEv6b`QkMqTf4$RjX%OqvAYC&xzt+_E2Aj&1ypINUUDIiT2szgP@wTr?NqPLBA+J>f7HtwlKZLw>On z4iKhok)4l>d%8FP=L{3P2$R3xFJ>eftB1R!EKtW*5Dd{MEq3>!7DL)xLeoo#IKK@7_{&&?mrYO}(Kg`gMITemkeIFZy=0 z^|$%bwzea!MY`SRbHF&OSxPw{DWT~@TEEh-U(VMb@7EuT^?dhXUD{eD%Exra4x1&d zMhp!LVd>ku?JbzlV=ehP(AqBZ7uyS8l z`_;X}P4N{@NK08t_;NVumjKOO-b+%-d30dO6p*Cj)U%+Adsf>j2={v}SQYN|OBPC4 z@yp-glCVd;hU!*8H`7(V-mdIc z8@-{fNW*Pu>^OAIyK*Go727e>t^`qx+tQV_QC%7HuIMZ`3m&Vp1LvS}zgkbbV%zj> z>B=Lcx+3c>P$4gs&VPhsQlJDT1*y4v7@HouWZKetn9w1GKH(gOLs-Zi#jJ=<)-`nt z{FBkUL!ZI~XiKC8qJb8JoXO9Mou+H?puCe1TEKpsT@ z)O|NiMW2)|Eg8NbieYwqsK^ozV-FUf5~2Jcqy^$3e*(-rB9d6T{WE4$)LD*9qY>7S zk}krdm{@UfHieDGKkJs)AfH9qY>pWL^;tICM}hb$a<~l=(Rxqnx#S2CKsgDDDiCB% z$K#R6%q+5OYV-}G(}{x44yc?c$OMJQdHp0l5Mv28vQo09%-*a)x8bras7o>GV=Q6o z5QClFv%QD}JN;rv2pCe9j=P{EA%)r1(cF={M+^d430#RHwHQy}(KD5|Ap$UzZB3c1 z{8W@9ABO(g#H#r)X=?IwBBKXNIsNar*rgeJ%w?J7I=Il$!!Z zoBa!5aBi}I!BY_!Jf)ExO(D@{gn3A`hal1R5Sbh#Y#1hvp&3xjmT;8hq8wgi@wy{S zJUnLfw#OM^NUSnW6Li-?azmp>eiN+{r8((MV>OOT<;cfh>T!g`c|D;8qQqsuXgY-v zr==l03P#fgBeazq>}E@Y{AlFWGnfLP#BzJKVNeV#lMa@Sfn^vNIbaSW05dR%Bby+X z!Wg`mi9iy7Y}>&M2Y?6yWrr+!>SU!VD{yPz0KZx#{SAO)3Y&cn90U=bZ^0JoKhGT- zfimSlu`t4^6dGvYM?r%lhJ+;34h?`JB$>UV(2(PS*b70!#8WdsmX3Aj`U{;A6%*SQ zdloo-10>Ng**U17a2Q6C`2i%^B_x?o!GZ#M6j&_Uunp5_NCI>Ombp6$mR&ipylU(} z(im9sFuD@*bPT~JO6^Opv4U<6IG9kj0~~e$;mnc)XTgE9c;|o<0mB04c!Z)HghXTZ z2sr1vimfk7&JcM;N&XsZXeWt~bJ${;HAk%>CD>$pu{ER&n`5$n#N3c!h@#XT9>L+U z$KkQ}cEJN$n}s9x3AZmHKte1U3G@VnmD1Cxe1R|~5Ot}(0X^x3ULF>`t>{TF2a8?` zi{9vkGw!fJ&|{m~20abxsCa}(Pi<$3+ioPORAoDJo6CXyDN;YY~$Phsmv0ywJzjw@PlPXIXAyDNq)QGdi4Ft33u-O$Ygq`TDu>gEL0v?DDMR`jJS&j%E8zeAyJP{SS%C9Jy_!Y*hx0W3F6FocX53V1bltdiz z4~u!bD-`+fE<~KWUOs)~ijGz9e!@DV<7Qt@5IrKmukLi6({98^8Yd{^gwee?du_>!&*w zIVnOC#TB$ZF>e=2C!D0?D{{!$KOXHHn?aQVcQnQ#{)QD7mt<>YA)%WiJ9`$e2p2-nhai@gA&6TELDu~7u=hshC^K4& z%S*{nLjDhhu-CsO8!F#2MsN{N4QT|&!eR;z(?sZTP3Uc#xtMZ2Vq^OGP1ClZUlzTe z2yf>CSx!FstSV(erPmy6aSq?0SgGi3DkoJrlU53!sg%DPZ=rT3fv zL*;_9R_>UEjte&)>Cv**s8KVRa1oZdY_9@aX49sW=fZuwW` zxBOp?`!W7di*5T)IbTQp6{s)rSB`(WAO5@1@1&JXZsl*1_w?6}WqLncPVxH={xtq+ z{$}`7|4O;C-Pj;P*tBzwg`lhLM2d#E&_`DM+@t1GD$lYsH~7AbAK>~re&IS6unIp= zvjbbkB0n(p5+32k4=C8mRi0(3JnOIotoM?9P4qQXzNY!KlqGdGc(j~S4%bu8Ao

z{YIg)q6lWUfte;#i4#zILJFXX_&c-Vgck}~Rd3$^1lfx_+Gg?oz?Wsj&5(JueKF^d~| z*<2u`l0;%<4-d7MT!k8H0zBI2V%n_5yNSN3H~Or(IN%?tEu@(LdhW~cX;LBUt0Irt zS1bNi7!JixlnC2$u|lw+f>;9|jU~RK4NOJ}8~jyK*c6C@KnAc35;X&W@j@DZ8nS2I z9)t#VGbUKFXE`zEjsUp`pm#N#xGaP)gk4$I8qR0*;LaOdH|+M?JAjB_o292n(?3nq7?06W3NmP56dOYma#Ga zJa5hi-sR`cr-|McWb^+4bJOcmn!MgKL!yFRw77L(6xY`kO2U6NU+APk^o7pp$Z?_b zm@RagVaU8gXhgQwSq zL#r*3Cyv}5FnEdMF?AS%kvV!_kgXk{Fm~>AHbPZu{+QU?q@RL^25BDc=@bHSl|>NX z#KFKB#k`~(g$moW#!*|94cUgSvD)YOMg$kp#b&c%@JK8sTCq$|l%A$hnfR67C*^M% zUwf`H0e+r(u8jS=R|c2M$;SBA${< zLKxJlQoagoT#wP0jnYHKW|%nrQ-m^wlfVj}JD~;fVcsL<8#h5pF;qmz`9kI3X^xok zj%cB(BUO{oy(1(xe5nWNII_4TO*JE4lW zU=xzYYT+g!mRON(A**kWyqXzv^pNHOOtp?$E_82N_ zXL_U;;hELat5whuQSR7EFs`_ zSR7y$WHrB-&g{x&nCxGGTazTt!Y8EKpAe{^9#-!`57|wH8H`2;U-<%~L3+}ZO9zpv z%i8mGB%k3ZhQQPx1S?6~5mrKraJ77j&N2Ac!cuq!ur$L+UvUUd6E=y^KJ&4xgYbL| zv_7LqQGvqH9sy~>wxdz4v#y3)2T)ogHGN)d#9ObW>mk>AO(2M^H)x%YdFxzk-TDXO zI^DEB!#Z)rgKdjOLpy25PC)=%RTCjYW4+gTnPsOjD$=)9mB`fc1p)RL9NI<57!)K=orb1 zQKB^f^{npZC6Gd2;_R}K4#Ric$JhqG<9+zHN5EHEU{m-iVFVv@_;RrczSD$~vu{sd zYKfI4$O=DSQ9dD#VM0^0Isu4{)Y`GT^u*Rcs9j;_pP)HNGy4t%mEPGpqS0dKYor-i zDSf5NASqvk1S;3yqMm46Q4_OdGZCj#vvow(;vm0edOPykNHQwmEQVCzM00gEhe!c8RB0701iA-g9kau zB>8ewYk>_{)T?@h1*!ZE5J26VPHndblkZ8UwGZ!2{-Jr=1m91)&e8S!nSIF)J+tgg z!T!WdLI;dHL`7}ytt8J|6#8m%QjZ=ACGD?={WC}WGi&~tyZr8`H+(GlU+n`v@r>u3 z_uy`S6-;&h0`GGCfdIF#I&%yv>yxiSzx2(o5R$Ip%>o-ZyPX%<2gt3Uj#$QS9<#US zMa|4r)$j3PJMaFm>~MiDaG)HHD0+{a?2G0Ml}sO|!H8Zn`JxHaY;(}?X-@prMgjqsYSFyVBEin_$3%8$s*FWe zsFGORV6E7Bnqqv-N7X)V+o`^*T@A*k8ZMoK9mM4ZsTs0t55wGCBCSo_(R+GdsA6~( zCcK~chl-c_B3`gX$#^&H7u>Mz2tv$oS=;Z9$L=}ROjAlHo z#D9Y>`?$(u-gV73if-u=O#~P^c2WzNjlEn}2DTjK^$^uT->_ zX?K;Gg^F)Mf3@azh~3yBGOZ)kU*PjvzMYT2W`E^(zg)mKqH~PvuSb0t@i14=q9v0Q z6(s<^qFL)wprhDBQEVjlb+0gK{pJ7vU)@Ovge&b2m8!LJWvt$w+A%Y?b9#1u*WTW~ z<^2Z^uB;weyX)w&yN};@;^h4gJp9<{Gv_Zo@z$rm>$~6kf$#l+AN;=W|KRt$@BQz2 z=3Vc8$2;Hl_9vgZeC5K$v*+IO_^ITPM<0CXo_h}+E*2IRmv-;zhH>R{?4a@uZI&eq z;1k8>Pr;=6qEy93vH6_rt*T*>HrK^`Yjv|cKO&BLTuWyn%u$?ceaP_W6_BN1xdyH@ z|2khYd=C?ye+ZwqR(P>&WavYv*se7HQ+@{NSIaM!rHV2|t33{L7ga5|!SZbgsYqLs zCaS#mGViHL7Poi6*Y+8H7VdtLpU>-Oy!arax@v~mtJ=Rll>Aez-oM5Z9DEA#46_$n zf3ukUAFBNoYB>_&I;8s&|IH%!&gLZWzfny7Pd)Zmc?=Qwl0@KFiUj^p_XWLrruA2f z$v@NWOWcaV=5xsBmynE`{MP(#uO$cc_co|ql%MCjl7Fr@KCd@CkNvcT6eM+O|FS*{ zL8GU*DWbM&hKuXrGMA>AE-OfZeF67JsVO+q;e*LIul>io#(G~@Cm75 zh))_$5IMNsyDXfbdn-^`ipf7w z?Vs1^geg12MgH3frtHjN%8SM1clFrkcnnOrC`|c_#pL%?_X~RUOzY>0$^WL?|Bzcr zdbaC?i_-P+Tl1pVvTuSj7hMiGpZxE7^xeVHXb%UYh{i5GYR=hJs3v)ueS zZhWPdm?0V}r>?=}Fmbd{e5lA&*>*l>>-}BH9B=&$Z;7Qqsm%U0;mRj+$27y7*tMoK zJ{Ew(5OB7T($Q2^#H#8P4HGW?!6L&_O8*(dki5QRT7+qukBhND&}{0W87`k|y@S&v zuQWeHA0T!b_dK_s)~(o%i3GOenPeArKW*I<`|;l9GyF^&!qHT1_+FS)p8B(TlYa6O z8vF%nK4mp(SG4nO$s%=shPq2ojV2l$V(Jfyw$dHoQoeby+) z7QH9g%M+jA31^RfWCc0>Rr10ry?W|Ds=i%zE+_^s>nTZhy29?v_-;>)(YFCpCXEece=X z+1z|r@;~XW|=aTtJGX=gcJGK-k$s&RkH^l^4AV?_d|`a8ee-`@;~VJ4>iKc{A+JZ z{$5gy6E_GI#9Rllzh9`)Cba`)aw z*dJeeB6*Yw7UN_2x1LBIqn0JG>@OYT4tlvSzH}vdn2L8d!m0dASCU7leHS?+{H43O z`>sal#+NQ94^r{YMo986T}~dN_8pB7{H1%idzwrj@uf@2{ZzcY5l-h{x|BRX?b{mR zE&kHI+`W~wB=Mz-$q6c+YJ|u0FI`MdQu`#Sdiue*CSpW_I@04xn$L)l$8d-q`Yy^ zZx3Kh;BLPc%MBwz`*cw7m1eJD1f}amXe1&Kq_a^$Y8$P4jzCet@h4i&i(V`=60K4) zKB?f44=p~Ns#VOP4W!_ZWfh!Stfj&^t11w`v;sI{Lj?zr3bApXP{GlC!dQ;(Q^B!) zLPfNfDkd6DmS{^G;S8$Y z-kEULL}el&cCGj3gGWk3hF8{Yw@lTjVzsRj>c2*1W(CG*Zua06XSw#H=&8okyRFi1&;SS^L^gZYvUT*O9nvOcTn-5-lx0sW&;`$V!fYy&VpbM>zuCEgki4cq9^J4Gp z%h-~lJ(r^!qdm7HBnZmL7Y_4A^maJ!;FP)aJgPUOm+oQy=K14zd7@JUBNrGA2L-oh zV9T^{JO8K@mYBjW8gMhMkf2qjmEHjvSL)Jh0ee}r2yoML<6*~Iq1m;_s^~mPyLGw% z;(aQX&#NSs zbfaiP=jEs9PMTty+o!viwJJYbb{Scgip$Il*-~}P6fHe80kNLHaoV|wQ}>ZgxjW9n8V_=h$(8CY}=&u(W?Im znLqJs*4H=;Pq-E?1E&%kM7JgdWRVJ)Y3XqAwA-I8Yvm#JEA2L>ih`J4P$Z|>KnL9j`lPWig-KV_cF$cHVh?N=|JexBt(2Z7%Fs+s)R~`2h22G;pXlyR2 zf-n58lKZA|`2r6#gIB3C0kJNEY+_eEJRw7QJv@1`Bpm^eB z`9~>QC(9q9c=BZVL#0zJA|r`H!0*!vqWpl=)d$Xy>ye$+P>4iwm9XgOLm~8896}#q zvxy_@lU;iL=~C+Yx#g=iyb%I`H_Eu|*dV--cug|jWw?v2S#4hq7pz%#aIO4f@D1~r++Mb?^1zD}Md(M(WL@pFq~=C{;ekNqgBv+&d|K6>7w!kl~6=# zU*X@n(u`k@&z}jGd$v6^6`rLc|*YEERlY5oZ|1Z9EOEqU56=m!JHnJ|5| zcb^8R4{CN3|*;%odu zao}B+YWsrr8GfOcm-vcxy&f)Si|mq{A6b4%?J}q5KUap01PKiALQytGZMP8vv|Pu97?(vVnpv|ohrtOWeCy!^AN94JK9^tCDG+LT zAjn@R1A=WVEGc?-Ip`DWv(ZsNuU=hRCnP4EVR*gEpo@V4ADgT{mmLg@iO34b6wm*0 z37i59DZWL}4kO*P<*NY*%Nd0}lo945o9VF@y&EoIHJK+{@&Udp9M^`?T{I4XQumnZ zBKreJvlZ*(OPS@Ojqj-*?AT|aPP!q;7xmlI3>YdP)>&K;>y<)?1G&+84F-5^-%fP+ zsisZa36I^8W65Zb-LROUUyvW}wy1&)*xN2A809|_ z4zya5A#4prL^B-XBn#a#ZGH7+;ifQ01Pmw- zt{|w2tsv0Yy5gwAxHHsYYyu~{K&aGXok7R*bzWC*(i#Pjr6T1PEv2`~SKu6-6Yxh7kJXW(V_xj||oxb2^ff zkDQKVkeAbuoRQ>oBspGAM{-7z)6oS=IUUIT#IUUIvNlr&+C^snOlq6@P!<15k<7^~9Bwfz9OVoeK#)jcP`E6+OAxiNr z=r)eT%Vl?1`VzmMqw0&47b$;-Zyu+VKa%{A5xB4@v$=@;}P^Bgy|L?~f$^ zqr5+o{EzbfNT;}$KT<*|eUzd=#;R$TNR0VygS~X zG#)iOo@hHr%?Tkj?6*j26G&>d`7y=lTlM2GO>B zja^b3ccB`u7^Tobs2-Q324{)}1X?B{X1<_usfX58jXqlX8N}pyzDKdd%SYXL=x%o& zT8dsv$J{En$9;w__%nOm-RM&4(PUmr``l}3zk4kmh+azv-D_#ly_Qz|GiUrWtNs~B z5SWMH)rY+YYtemaxA)+@znZ!urS3^4_FJ+n4!LZdUc$X~H}0*K)V*~#qCLRBY@8`n z1sxl_BsRZtxNM9UghuMdIxJ@$=o$54Yr2|D62+xozVOe#Twr<1xdh<3U$-AYfzJ_p zAHtDTBt~c_Lh}OcbDej2pU9a}>0Ib-H&8JO2VJ_x$61Sd-E?!26 zC@8U#Nf`=d|8kJXLJ96^4P|ay6QGeB7-dQnhtU-xun9;}R1faP+6)Z_2#2H$S(7sE zH7>N^)Z2{RQ>fxD~LjGc(%BU2rP>rE~kPLc4u*bqV{`j@@%>i}kg&#>B$%&hhD8-My3T{RhhP zW3^UqW?yNlvZq=s%&r{lG)a$uowtbMP-684^ji}#Gz1|*v zemC_iBkB)Qe{e+oD)k3O)CcPKkEq{E{qjJ)_rJNR-upj8eJ}Ss{si@=hL?66<4hea z2@^VkypN!vWn?wI|>GK>Bj}f9@pB$xPF;|g3c!2taTs_8|I+lw5 zo9TnI)RXHY>v&qfk9w4faUPGvJ1Ge{WZ3=Sk3~QDnzV+>tSnb~4}k`a@d#g11*F#( zoe)3_8uXiFVt)9PanoXG>HrQcTI7J*=+t^`)7eUkeP5}dkh#|LKysX(%;x%wr$Qb3 z%H{#=p?-Qq{T%f>a`l+2>eyoXAHYIZ*MaPD=;e5q&1{_txYSJ$TcI9~Z&Up|^;+7F zQRJewyYzD@ymwNMynFW9vy5}kGaj<7_*A>!x&4H$!}Br67@2uID+2A z9eZE)RI(N;yw~V>`B_#Y`k&GKKJD~)Uym*_n$OmLUR#40+eq)LMmI~EjApkcb!*(4fHsRUBcE^^ z3K!GvBbla9kO~o!x=MJ^NycItH2#H$j44{vkSTew*sHcn_=9N{SKIz91Z3V7<}egp zX~vr%eYR85UuH?taaD>Ae$#(S_s&kq8~mgnI3|$|AdY~Q10YxpdNKaWu(^{KGwrRm zt(Z`D$K8dN6vf)g20J<8Ve=*(c*;ggMHghGW` z?<=2t-Yc6dMm9Wy4*kj+m&Pl0Yjfj_oMjM`nM^=T5T7J_8;OWP{J};;>c{yxa9;7+!v88 zqN^<+?fk58#3c+lTc=RhlO6nqN%K3y$jYfVOJUHF1ZhnM7v_$K&S%3P@ERdIJmk?I zNj*h)&shHzZJjwldF`@l{e{#=q%i1GQizTTYBu!;DGa)g6yz2izmocX6b4;IP>W}e zq<$WSLAQ`X^deD12eR=ExPTO*$A}(D{Wl7O?jD8c9im6}WnUTa?I=V~5Ixe(9vSfD zKe^m-<~42E8;2;aK*SrL3U=pNvBE;80&uKcs@W3gxEisDCA0 zNS`h~k2M6drbN%3!H?(S{jP!166S1TB# zs~E)z8*>|Sn4#y;K8(Re`(%^F!Ox;U?5ZMO)oj+&#)-2aIm=znmmM~0(5x?%wNp{7 zE@=RACQ(e9dMI9A6oYhm^lB!Gnbr_#%8sb5rAO2@WHf`IY1hYNIErFzlO@7j7iT#W z#o7|Zl=pU66sz||F(65yqE z0I}2WX5=9;6K4IcoO~(u%LKt*snBxS;ta4wu7I}ugLJ=AI^X%nrJ$piovvEc7pB5O z0PQ>)%yd@7AS@^bVZma}DoSgReBoap9NuTLAu^=J_`(8O>~H_4EF3t71v4`ie3q3H z@zp3^ikY-ee1)7KgBPDoYtjqJZ2m|;2ErD<$^0yWuc3T_&WjlTcK?#7;9M97%1gpH z(EZrjWykR6skTs#SN`iTr?9`2sfKk`EH?2N!W zr5fi&HP$@Gf0;!Af{K{zQ#HXw!@+pfm&Hi0y!^bT#{;pn?<@GvCWIzj6Knj&iaxc2 zfDtgIbEx2{)W($6Oo7<3DV>x}TdYk+Vl?LRAb29`)COqbNhU%ta+)6rNAchT;x0RkF$6b^f zCPK-tDD5|;)tDn^gY*2}J9{K9dmnF8R%- zjrD_QE%}W#OENVR0!Fpj@-~}l^FeQO45pP7+O#>QHXl-(OKF>9vZCI4i6BW)A`oh)Y$H{u_leNA?=a-ZQ58rJf0&>V`EdV)!6BgjlD&U z?HOupubg(%=_FON@6v1?X$KUk@1s=*EFlFuin;>IpiLYxu@T7makp$@J^Ob$?!9SO zT0ZU|N8q&CTLSXMk>kFkafh_A2;{EZhttM{ygo+7v-^y4ki1_}W+t}FPr{+kEBi8gv#nrV~6DYy}2=tPL3nvl;<0d3^W>nTxT>gLY)CDls>M} z!}1DGKTM{dp%0^yK`$pnV%xaTdQ8{XdkFdbmr)wa^l;ceOdyk!^CQhmB=*rHHWf2q zR}F;$#49}e;}zce@#@{#6@K-x4rlpzg|D7nwG=fF>n>+k7qY9f+0|RJt5fl+*?ffL z{b(YaEu8enBG1^AYO)2?BjX2fRDlnDTG6r!+8`yZSi|_lnf??0N-|tQbLltyi3j=> z%6Zdj@lk-9`{=#>C;XM8!xe{zD^Pb2wz98Zp{_Sud$X=5f1}#n1sJ@#AV+~eDDin@WcpIWRYPK@K4)K}Rs(dp4m{JqX29YYg}wwj;`<1Aerw}@)k)|cr| z$LTK$d|b9mu1$*$RkFgSnbJJ$mUiSEp`qYK#88?VO2vj!fuX4|2H4(6V*p#W>t7A{ zq%lQKF2><%lw5}#Y)S?PW?%1B0Iu#AVV~)@x#YT`PcJcb6(>99pj|PPN5{&LePP8C zrGg1|S^;2=3J^yHc%uTeQ89!y%2JkgRzo(dQ5PL+81)#OGa6eEr_Km{+7W=H`IX6q z6apCvMr3qeDEk;QttaU6dSVIQ%WQ@{Fi^GS)5Vh|91mphRYrNskJDWMJ;5~)q}B!9 zl0u?`wUS>bGXP>!eo-ZMp_^+vYPRL5n{OPMUX7DYSLPV3kBU5tjS*jdT3;qlSiaAD2uigY zG8)5L=r^t)aq%i8fC_a>>#+UDUvU?RS9lo2D|{dnZv_{3LgXRZ3ZZY0dtQ8O&9Z~~ zmQJVF6P=4SOs>+k6#bld?n3JaM~>=48dW4$=~^numnHTG!X5jwyuJQxCfv?&%3VdA z=E$y^d0s53%Yr||M_591oBuM^9(zL8RY_XPXi_4m*Sp%(9%JIynHFLWxqN+(fhUTf zV_MK-MbN>Ajo^(N&KtuNH|Q!m%7m|?4z8DR=RDh*73&j$LhIX_B%N?Ka^!tyG@GPn zMo!XuM@~|2#3aG!Y^OiBW0KxCa+2OZa+1Iu!>9Zt(fvC(Njt%g zOvecN@V=3g^le^AOvi|o^nsC+grvV|lJ?)xNt%>vRh*<_+ngjZ@!OfCiz6qA?I@!m zeR8)tVkH5MH)R+6Gr9Wyf|V=9K~1N34wZj+~4XZ*Kp} zU@CN~l!dR9XlfUO^B=QVX?QTd{g@II6) z>VJBbtBSW(FEjvY_1^91RG|gkM^*T{9G$GksNLu>5?D!QTALbE?m_$YKC_Zwk=(GA8X#B)LPV;`W~O?fikt* zrS*5}K5ak!ep;sO-ePGchPS(=;cZ^L)r+URc+!g}ytv}UWiKvyanTEMcS+NJ-ivcy zkh@EjXS{gai??`j+Ka@CQ(lm}OD~YSO9iGu6<7vUU>H<^T~GyPK^0g9RbUiUflW{a zCP5Wg1XW-VRDnHE1?E5%SOZmH3{-(FPz9zy6<7jQU%TAR{}4QjtT$IC51_ndaE?dn=LyotsE7IyC?`WHfC>qbczU{#gi03pG)TJumHt z$NWy&QEL^vN7zs})~V8)O~{y4;+w8~AGgDvEO;p&i->mq0&y6|fIx!zPfidPhGH{1 z+-cN}vC|kMt9F{ui)P*Meg!+-!5PXS2w7Po}T>ms!=Ta%oo ztKCX);^7D<_Sx8ERZWiCfNBP(mYPdjwPxs#GNIKXxCr@B^00vEHa}xFUj~RNZ9{n& z$k>DEJ~(lkVK8nJH*Qv=@xIl_I^=p&CQgT>$%Ygr=+;D-REl`EAK8(!8s$lvv_x=W zs!O0$#L6&nRY(XV|3CKL1j_E>y7Pa(tzWmgUv~>hXlV&vw}~SX9EfdfCvjp*v9O8b z*iJkdPbQghX3LClW{mAP$&77;B!m!~*muwZT95={)dB*oAdmpDN@xKI(8el2?Av_4 zx9azn?k5S6$@!oEIX>@n*R5O2ua;Z4Zr!?7Wt-cnV*`miY&Qk_Z|n3{XQGgL%>)g5 zsY3g@oM6!gwOXc5n9wCmrroW1t;{yo`>XBxY^)#Vzipe-)s1zipwGrS9ag`w-dB#W zjrD`#!<(%T8IrpR<94voGj1qo+XpB;NmvU#hXd9UQjj?-X zX_=RcwT#jR7$aBXjaeyYi83d#p)T8Q8(G>V*HCZr#v~f*7-t~N6R=;F=sAmJ%lOV& zVp+Vj+*w-;Ped9x64n@ipDUDlI$U;Qi2?b!LYu}VC$s|7#DWzccmL(gwd%sCs@nx9 z>QCZJMs&S624`11t3PnP>=kph3gg(a;Rv*bD5F?=!u`CNjRFj(_5e=w& z3zS?euc?&k1Z~DsrqzaGO{dXimoR93BrfPJq71EZo_8cAv%zb`Z&NqXPogtzj$mZ- zs}!B0Xqi+cL3aBjoaYbx|T%uU0Fx5=t%_PC#^vBrQ6`U+Dc@28s)n@x>P2b&tBZcU}SHnoGl zcK4{JN{-$i+Ei&zG4_W8>9SmzmPz--_+)LNmvoE0i6keH-mXof3_(q!w7aHJjW`ME zcG#t2oQGz{&bnj_8wR>8ajCC{o!EY#ey@?3eYOm`CMKR-RQBc2gvt`HyTk}7>2{uG z35;#5EmEy5fKx2mjn-IoAcCQ~DltwphcZ9u9)%VqhNeOtLJc5!?Cy+t$e7Ej!fmjk zcT+M|s=~Y#s-k6ps!}ppyJWI#X5Sga3lD0=mJHS|!($p%^1n*b5A#wTYHul*PR4I* zs}5Cw!`=2}KUX1isASBhmWR4ft1OIX%+{8&sd4gF7@#71d&`U-*YPEFDRWh52Z~dY z?hzxdG37y;=2#S~&Nx3)BkZTW2PwB&(&5hAzU|HU4Bw&U51n+%tn@g@s_TGtlLDke zhWI^`ZT5$~L_A`$x(x$LQHyCUA|}h_(z>Em>5a+uTFEr!D;adTz1gbWSl7$0fd@9! z$1O0`8n()%pEXQMCc|Q}ZtEyS7Efj-#a>$w4 zLRQEe3xscq*_j$e*9_pNrp8aJ>zj3A)>v5{8nc#}45Juvk##k;er5+OW}UBV0w3|* zr20QFwy?%A)>bEzOI!_WoT^M-mBL`oCa(5b2YZ=3tZ@QI%Y|`c55|^Tx{J21f$L(f zBswrFCzwf9&0?I6g+HxXvsU2pF+cLFf?6c8B1mW^9qxav(70T*9yE-(WIl8&Dn;wo zsuCh7UwkXpNJQ1u6{hDBFpWL;8oJ1vm4Sdr7KSdYs?X4sl+;%u67y8Xwu0t64Q9sN z7>iH!9lBMCs5J~-*taGWE3q*feL?;(t6@u4DKS}6Vv~rdUyz7YQ--eDLF7X=mr--K zPD0`d29t=Yl2PwL=KZ|GVDW4?R3)cix9g zA!$KOIrFlYIB_m}HBw>J$zCEx7Cjtz=p}nq>)@rZf!!Sp_YTbHN1~;c@?uC2FNS*^ z@6a*F(t4@u(t6xBKS$u>pkbka20IPM3w3XZOohPf<4umm59qZ=Ij?g+Q27s|sV zpCHj7%eewKBmHdNt2xRP0-;c3Wi3Dv5I!XB84=lqekR@R zp9eRX6f9G1BAi@qS7T^up+xOkFwi1BzD0V;fS>W)Nv+`}%~+R&p(mE88U#TaB`?ik z<#v;Jo0Kg{PS#5TW!|2)3lvDmH|ZRG`jZY+RDC#UL9a9EfZ#7 zcnKN|nkm3-x<(9`3ypjnjU%sB2}e393qOfarWP^Dfx|U)p_Zi?Y7xvstEs-|=bLIO z6TFVse4{Oje1JFAryAWb)rm?a)m5I#uHCDC>vtNaI##J#YEt#nx3pS@GRca;=PA=n zu5$K39W^9+?C_q6Af(Z`R^ZyJ5v)2k?Q3;I!&oE4x_^%uS^AkU8nFyOx(;JtNZ8!5 zQ3o9<&(v!wd2__p8s%o=0;Cr~TP2|kl>mC?S7DbLd(=?tyS!Z@so=wRnWhNf;F)oO zqH%$uxPWJu_BjoIebqi=T(f9gvrIX8#kQ7VR}11)TajkYjz%>qNRXguYW69uAlwhe zQ6Qe5fgKG}LA+RI1!2J^K17RfffzbcGn@+*;ReKNSJkP~Xbg3gNjmT+(JQ-epZ6n^ zX6Gll!RYl1)sgAx)!S?^2s>`fKNH|h-WAW!%3=6@koG&QCQZV;%aiZ3@Rh?Y~nAQ0-IQ-v(}LV8-X zN)=jgRJy7$Rk(&!F{&?B&@&vTt)U7wkt$SC9^p>?DQn2Dox(vv4zc1N@-sK&AKa;b zqPewF22anPGOJAF09QKHlZ)|;S|$Qznv&O=Y=j&8QF4kad_xjm7&jf|;opD-SA_to zQEeYPGFiiOH0aaD{rK75{rH=W`jI(3^g|dfec4Ro(alk3qzqYlQC_dpKoB#(*J*Tc ziGyS==`_k6LA*+V{9&{br9u6l>p8e|D_lg!kV9aROwoZr$K_PY-*g__=!+n%5Q*l< zIbrvf=1~*)pIJ~V(|$EOf#_b|VfhbA>j$&m#c)wf-~ zoNs(mmn-GEdd#+~zk6lH?Q@&3$7-Aw`;#ER_X`3%%c2feYVEd(GMIvO5hppZG!&3K z8vHg0!DfWxGnM2c@lj=Gy#iBUX(~2WU9Z>~+yS1Av3kOEZCFnWN>KVlw+$l|$u=D` zP1=dMr;J#t{k=vi9?$B-OjOcN1q_QtD~mdoPHHulH zzQi|+x3$A`bGJdFM-Pr0W43DSTziEgmI=9r&SYg10TGf_S>V2V5o(+2a#h#R zXt@g04jU2FwEorr>S88RYDGKjZW{dk=oh7O$hC^hZ-<#x#~|%%GLa!;qkE5Ye2-ba zc2R>N>OjJWp^O-&{eIk%pWslVN7jQxkRF@;Qpul8@>)4yelg644o6()+K(Y1?SW0q zvuz7$Fm1-07|rYem^M?^hR4)V3A4DU#2St@>q+!gXgICWD%S!G^->baMu!b+JcQ#IGNvbg3Q=h=T>9LN4Dk|Fmg$>T?~-o*o)qY zu5iGkx^@1AtkX}xn1QPhq*&`Jm$c>`P9{Sz9`Nl1(Q`MYJu6V4&3cm+YkY1z6kFkg z?FQ*d1bwj6<7+?2N2;GxB5Pr_?;zj4&AwH{@dnekyb?zrd)>NbLAIAmcJT$d{4ts( zN{ThLqvlpI^&_sM93DsI9%qB>f5UDUviqMFq=)kdzn)V#hNkn3cZ z&CABCQYSK}R^fC3)FtyKHYTMBq?NgSx_AnktermxLE|+4TyLtnW;-K6aCC|-;rG*X zbXsl}j+|!VP!Nw?XtZ8iM~y6#Eed9D3d8D64#gLbY($E&F-%Pz+WN^!GAGAWdlh#7 z>fv_(Dm37)_JDk-R5|;Jh5`1EnlhOi!Zg66q(Pr&o3v)SAx_UUrEln48Um5AINl^S zYh%$r4AE>|nae>^XGn2S9bd|4FFnA)Cr?88gF3f%_A>J&rVBAw1$yIFyO^lPJcds( zX=(O?t>~Kvn7#NG@hY$`pM`pKl(ckb)+B@@LsHRgl4OgPjSsKB9sE}x95wxw49j-^sI1ytG_ zNWBoi@R7J`Ba6I_#TZ}vFBVfo&mVNq%`il+`AzyB6>P0UdhmOoEdN?dd$f`!4#HTv zQ7SjOoUD=5={v+A<|aQ0u} z%i$|0c2l~pOj2`Fo+4dTv@Qx3{Rt?2Q^?r z)GIHF-ZSV^6q+{_1wLqG(#N{rZxPp%2@e+8hOx~1`IC8nK_ZVHb?;-#4^@bI)Cm$* zltBA%dcMvGima8KXuWOuE0^Ro*hbgIMqY(y;;U_=599-^EP8FD5AxqOZBTU^otm3! zrB)l%#{$MK$%C&l-_ZEtLXBssPqU3qo+okhkCCjtAb;3K$JAJ@WhJH;p<4V^3z#-p z!1!%+1Wih2VoENq^mcPC4X+Ea@afNKWW?NOFSOy_c+Dr|qmhUINfeol60IwPZ4wjk^1b=N(Y4AcA{L4T1X* zVx;Ls>U;gyzF)V%uUp{PE%56W_;m~Xx&?mS0>5s7U$?-&ZVQx$wohy-G)HmrYL;fj z_p+vzeywe#!v-CGMmi}yGo75Cm7blRlb)NNpI(q&m|m1#oL-V%nqHP(o?ek&nckY- zkgZSdN+%>s)4S7q(q-xLbVa%{eKOsUZcLv_U(R01Hl>@>4cW%*scciWIopzL&7RJl z$+l(NvuCsCvgflM+0JZNwmaLCy^y__y_7wjK9g=sx2Mmh&!s!lUFq(0Px?aoV)|10 za{7F_BVCoQPVY_cOV_0Lrw^oS(}&WB)Ai{i>7(gm>ALj6^up|-?BeW_?9%MA?8@w_ z?CR{A?AmN}*bUdNwgTBb$_+nN7~l$cYPRqt+k0g&K=cQB9!9zxryFYvMZ~gWQ(TmYb(aX{6(VNj*(Ff6o(MQq8(b)L3 zcw9U_o)DiNPmIrqC&g#RljF1E^WrJ-`SAtuh4Dr4#qlNa4e{J~UOYcuk*&;bjBkqP zW%IKevzxL7+0EH4*{#`a+3ndK*}`m5wm4go-I?8$EzR!E?#Y&A%d=bK+v3~fJK}}$ zqWI4Eu6SvDcYII0EM6Y3h!@98;!ESp;>+VJ;w$5;;;Z9p;%V{pct(6(e0@AKzBZm3 zzZkz1zZ}03zZ&n2--!3cZ^m!MZ^!S%@5b-Nuf?y&{5U-8b#Sg|0#Sh2p<45902GM zx+r}mdNtY`y%z0@KF;2VdOma1Z;Tw@^qWJ6bqzoA?d*v5j?VrA-^>PViMB>hN6$pt zqV3W1(T-?mv@6;j?TMa^o{Kg||7U#ki(mfg)UnaH=)>%^XhL*)G%-3OniNfm&Wt8U zXGLd6=S1g4Z)E32=SLSr7e*IF7e`k_S4Y=GGoqQ%tmuYlPBb@~7tN1ujBbh+L~EmU z(Syt<4_F9?sThk7SQ#k7bW%Ph?MKx1{T` z2eVDllH|_hu4HMlB3Yf>o2*M7Odd)ePVP(AB=;u|Bx{q~)7#R!lY5e7$?{}X@=>-j zc_?}~x;a`DEsmB%cSg&imC>r`{%B+LRJ1y}H@Yuc6K#mbH9Z;K6)lbKj_!$8MEkPk z(F4(~(QVPf==SK2=$7c(XlgVqnjT#ry_;PZT@qayT^3y)T@}5aT^Y@e<|Xr!8ExA3Jn;i4S&;8D^$NlaX-p@XN{FlD`mEZd#H|nbN>hzlQ z+H`6p^oDe9Ixn4{-k9E$E=X@quS>5_|M=@C{pq*=>^tB6H$V7y zfA#PG`l96GB)@by5#!g&U8t7S#o)DMRH|wO)|FW z>g0QW{ukf>x36V?Ir_wJeDhoHWPkGefAG~mJmIbEYZH?*l1a&#$>ij$= zazS!oa&~e~a(ePN|Mfro#~<#^{`Nopmk+Z4{NMiWzyFW_dCJfK`OW05$oT81zt2V$lWOldY{+_bkjw_8@toXb+NOJ?v__ZI zBOPz)Y~FQ1!*I7p{!Gu;^OGLhj+@SIa!mv;Rq*K2EgU$&cNac=QJP}ui%PdOwcX06 zO|>|>bTe;X5^ITKg@Sn94GO60h0ka}hPEvxj<-|xnyp4w1i@mibb6C(CCMU^px@^s zZTJ@2NAyI1)W|%s2ks7VI@X~x9olnEp1+-@QMJt-aD$lsIF^*{bSDQ%jgVaDO) zyXzp$ZT1Df!EG1H*_MTFgP}D}lltyf%asO2)qYaxnkF|+*jqeS_9}H|7le;j_{|C* zUAn2+O^|niKBG28Jx7~nrJI}E7NC=~p3T~BqC$11*Zs1btOI5*Zp2f z$|L4O+vX8y>N-;ynt@B7)6KalBGoO;Y2wlFp>1o80@t&hpqkZAAD73ZJR) z(WR-)?n8O6$6MD%)0^9-RoiHxwj$6}qE5V~*?puG(@D{=jTWi2(+EA3M!Kcw7AxIU zB8Q6lmGCzeezn3!mo98}JPkgy z?JB%sh?z>Zba8XrMR`@*+7@W{SxVW_rSqHJ+e&dcDNufTaNI1S->jQ5>2v?1eRkDap+1%u^h6!MD_${ShlvI3(MJ%xl4te z=&`jXa(1GN@XHi_y23}77PYv`<(;6coTxvTVP{WCRlsj776-sd$ zDX<{(G=^fH8GwS(4EL+pV+n1@gX&x30bBwzS<4aO?`71sK|ER*Sn(Dc%Cru)UsFY2PIDP}*x^i`$`e`$&f^ z3M9Ex-Z${}!`5JzJg+NEebVZ7%l{hwx)veTBo%Eh0o4{+mANy8ebr<8vvwKO{U0`8uklD-f?!?QT6YdpxcHr?>=&*J)@;-yt+AkNRZfI$n11>N($mljj+p1^>U~cmj zX$z4)DRZO$7AnnV(!kvK&LVj?$%}z&Pk-IudKi0iCAU}sPZ7WkCWwsw0wC_P;uIpa zSfbF4gv!R_m;!eJcp-#ces=6chuD3DolL#u6nL5rO9UU6)8)*K{9adn8_3T{6NY(G z3Cejx*e5;qXFY?Mk&5L(NT`^keN*B46#j(5N0-*NxHsi}9B&}aLC90Z(t|B+>jI8v zV6Fok1ao5?-QVKgQi?}FHI;dvilXUEe1*B)rO@?+R!NhRvA3vGLur0$NCqGNypY{( zY@AUndwPp|Q5if;239K*3(jwGFA4jQ$Lc*5i3OGWhzWmL;SVZ&bm^WJ_lmrE4G=K= z9mUIA+LjSTHN|B28o+Q(@zNIes#4q!DqK`-kET^>b+zL>myy&ECes;;ekajWN`(Qk)+9YxV^Xi{6tu*Gyd(5t3x@quF=klPj3nGo$K|TAPXD=Cs(sc z;L}us5t)rxR+Q9jwqh=%L~MC$Ny#DV3o|!I*gHH{lL?J(hUd1XB>V=2->z_LptVT=>?i3LL31VX~y&GOucN9#kaCRro;qy91%#x|JaY^1qG(dJt;J2r?#0}a~h zZWVqW___(01k*JG&9wx%2zO@YW(X^J0xr>K0w(-Ag==93jG5q`D8rz#vFy4hVL@3nYCE$uz?(pk-Ilk-}( zw%tuFWsHWU*cr|4TBW#(6j;=GB7s&awOpjqUP)-RmV8QFub!9Vx3iyRzXEFcM(K7I ze@ZO*rls7{Q~XA0X|e4tzTJWFb*F+Zv!LRMrNu?JM2Jg46hBwc$SDRA(j|v1itkeJ zB?M!1i+8EK7vsg=)!i+RIA(jfzh>i9#~V3iw4~_nQP7175^GS?GEv**%Wj#1E+8mn ziO$&9Rbz<`UE1L)>jZAU_=8Bsw)3zh=Bvw<g% zBMCeUubnth%QB%K8-4W;3Np`$X~IfUyH?U9`k;z3R>Q%LqrKToGp6@iR#1fZRfH)N z0lRxusOT#srY1wBZVuA;kG{d;bxCjv>!iKRD-?h;|ov3%xn$bEaU zZ5ye=wazl_|2R2ibZKAFU9N}{)m1MjmiE3>D6J{0Uwx+NK2XWd1j`AZXN&Gbc_-m* zC&fqdoPkF)-`(Gc6V3~bjuh7wlk9*2e5_~_i6%>DJFWwSz$5WTqQUl}J4fHvN~`L9a!b*BJR?y2Vk?`{rK3?IYOFN5hioE0OJ60#81AlgPcd>1k21k&^ifvo*h0741 zFS_%U?qdd0ejOt5{B1xgAq?;|Mfiva*oy_0YLd?ZmvtM9Zk*D6sEk!pl3RsOE_ZyV zw5jMOD)a+FIU!|+Z6}qsrS1%2-v45&dU|MrXhg%6pm!=opO7-EJR;+)5 zB%$%1qG*nwRSMci5Hk}rH>21#ot&k0sSw-@)L)AAx@GW-Kya&tdd*Nq^rAb_`c*}D zuY&dx1l3I|y8GmP6|bmnjXba55!Im;E4urIc^QnjBQYM3|0VpT(zV65sj9f=i%jX0 z)nG3WhT>DBSMBDf(a_lw6k!h$=xjPhaY)bMDVUNj@Ph;0P;{p&)^1{{M9=7ZyYLKx z!wo94K!2;L?M?JVVu_O!xPw3xNGFy)V1+5f^UbYpvVi9lB5es0+xwY2OE|5?{Y$pXH`Dd^W&iA`>gxe+@9p&KK#JfniXDpuO zSLqzWE>_snK9A5j=L)seP;`z?N&OhPrnIfeou`m3grH!2w#iMAcQanjRJrrz*@UO) z70+>4c<+0D^=umgd%MO9%Ji}1M-+% znOmiFYn7|#ZraZ91QYbJdos5}Uw(i%)yGtprf#RO_k#_bMuztlPDA)Eg|AWg=+eR_ zw_D!(^dVK4yu@ZKWRF7bRfr!*DoL*gCE9k-6xJ%O?p~F6m7-HlD^g{Q<+@m|gL^)6 z_bK8^B1#v#MxGUn8m-2|i4@#cZz8*#0GXOTpjgYy)8y95bB}pioL%;Jw|V-x2Nkl^ zJh8vt{4Vnha%Ka4r+GS@-A%T{JnhcTbT2kfe}B*GBJ&izZR$eGS#ZN7WklkRspGAQ z&6#^#pSq)2*7<3BN8v!5_yyE=YRcQm3f<|X%snUXZFnQ!rG|W7$Xg8=rfx>Z`ofr_ z3S2b-7ulVrYtzx38-&zeO5`bpM%^gXO@=aVBbM@9=AIJzMnjv*){vWooDVW3 z;bwW}S&XB^Fo==5Eke#UWZ83(nu5VB_N4A?m3@vyshrq+D|6=vJ=@S$C6>Z0`Y;+V zxpNgXi=aT?qf5j;Pso`<@@X@jLID_tnmR72HrN7&az3b~e$Hi@Pwj;%{am)^+S#R|K|!mRd` z{1TzARz})x(|MQ|(P9gE7061rZ%N%{LSAXezTM8Ucn9idMY+5-9mofSylg+|Xs3r$ z_q00hk`TocFM6$YnR`Y77ZU(WGQ>6^v;mVU_&ND5v~*UV(WQq{_q>o77}DmMPTo+i zkSBV`O{u$AMVeBLV#xc1JkOAQ>&HB@Hgz8;>vO8#6S+Q`xetXtyPDFdM@J4y?jr@A zMNnIqGpR5sJ{DR_C+J73l0X<^RfID^=Y&DjGliQZTra{PY_h`6u&_{McbZTW4OL4R zsM5zN`USZ;;b=N7%hZe<;P1*{!@u1KjR8v}WjpT&2dq^Sg zOSY?A*~ zi&WdeaQe*(dBrj|!XI6t-M0w&vLXAH6VaM^_Gv|Vu{PaPj65Md#3AM*ifg9bI^n+%5xUQx1R)`%-tdMv(=O~ z+EO%WCAUyP+X;d^n}X=SAHFoc%M|CDmc8SoNBQXw~jtdQI_sk=wW z4TkL7m1sCGP2E+B@`OdHG}#R(bA*1pnzDvLU8A7K2&!RFq_|e-M}@9qP*a6|1a#hN zM4cntdf|Gt8eumm>|qPb*~>Jc9x_yItIf>ZbcJY9SYc4J(Z&fWwP$EUTI@QZq>*fs zj9t36=SwgM>S!vzLshch2eTMAYx?GxaX6oiEigbBV zm6=b^+>Ju7s-`p|8z=^KlR{P!QW?-hUm)ZPAw2=yEdO$gG|)4iABpi$&RZ0+%rXuG zdP3@M74jZK_AO`BIVp0#MTDh9sLpyF*w9?94S_pBx0IP%pJ;N|2(g62W7i5;tdOt_ ze7wm`6>gDmm1SUy?_QRH#M3gcrMe7!waHCW3aN;wYrYJeF5Df$g=HY|<_LGY#j9Ti z5_W^aZu5DBW#9~ z%@Xz|uv!Mrmgh!ADYNzX01GOusON)VHp07C-g$Vn417(Vxp)q38Th)A-9WOw%fS1a z+-WMo973zhz>i}$PT1KV+h-X__;`iSQaI91lbay#OuS+zm1W@irnZNx%fQuuVHvot z$(^ngGnAsyGH{=YEd9x$ECZKeJfn2el43<{`-fe1ohwlyH&W;|*jjJ9DB8 zMdk`|5&6s$aG^q|kLIi=GdEwj3xo@!53PvMq>woS1h-${-7fD$yhDimtURaV2|I(d zkypPA*T&h%cnC&trk79LQ7T*yPtdyOlxPBp`VPCbnR{KK;|Z+}yFIacL)dX1+h^Dj zzE9z&Dct1dH{~6Rw{F-ynzcQW>lw1P`>NU(#P7G1;zN;NqhYs0p&t->D8p_==5{LG z`^t4c!w!p)7Zv9{;#9RS&&KX0Vc!MYXxI_{vcg5akR+MBBJbP!P~EU2xNz1g=wzc7?+GsCSW04Yd=}~v9g(Y>-17>3n$YTqoZjSi2)or|`;17!cPe~~ z!fn3ZCGTdubt7_JQ`_2rLm#>vFieDNP$(+JMuj#SksB1cfzU%4k#{w@jY{{Va^25} zyt~P5Rh%b?Qyr04Ho2#TeH?6~5lQ$n3V%%Dtn8ZHHhCY_hw4ToA=?%5h(h*1BA0}O zu**$~ZsNj$M&#lqw^qaF0%BlOdy|Rn{Tp?k9R4-ezE3doY zDqB2yXq3l=PApApa?6yb`pb49+uU;bA5cldgJ+C0qOB16eqVtULA2L6BgRU_SVN4O zakfgh`-BVQjCcwNTQpYp2M>eA|<_y2;(Ekd=glamI4& z+9r3Ouq(i7oUM^Z6lmk@(k6Gm5X(Rm{Y`ZYH*$JF*n7ZgxUH2(G7FnU+)GzG>PDBY zYI5rozLapL!mktmLHX~(k0|KhF1F`_?d@X9-01D%7XNm!)YolxyFuHXbSfR#wic#s z9j6UuI*$F-`i|?AS>K(p8^}i&^HGt-AmBy7w%N2Kc8B9%NQQ%P?+{*V45R{rhJdiO~$AvWz9cP!ilmf|^bp21-XB@;)Wjt>WjmShV^+CG0kZ-R!dn zecAM2_c;&L z$(_EFbv*{=T#WfJK-+GOLmx9L_ut2JGPh1r+jV?YrkfASGXsyUC0V6EB*b*O`C$Rm z6cW~w1g;lus&JK#&exJGBGu76cUA3ZQaqv**ODUiw6+u<74910!tf>DGs0bM@#?#p zux$#v%I6Wf`Z1xdG*oS0U&khiLarc$&PEgQguIvImAv|-JeT1KYe~BMdbD`LUJ90* z4c$h0E>RS%C9gthC&a}dnkzj%BXgUCy$Gzje6u_k;%U_9s0p?x`~t#5r*D=2eEgMO zH}j59(CcEwzSo~t9-JQl(d4#Bq&m+$MfX|Ya}928y9%1H{p!-@)a_L)JI@rZAMzpZ zWbRqozYFdo!}Z-Kf K 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 !L=q0>evlC^~oz)NIpUD*4Y1)W}lqS63} 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

RW;w!ttbyK5mk)?EkpqJ7H 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 eymSC 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

SXMG(z7c}WwErEb&C4X> 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::put(new); } + + /// Set the validators who cannot be slashed (if any). + fn set_invulnerables(validators: Vec) { + >::put(validators); + } } } @@ -260,6 +265,10 @@ decl_storage! { /// The length of the bonding duration in blocks. pub BondingDuration get(bonding_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); + /// Any validators that may never be slashed or forcible kicked. It's a Vec since they're easy to initialise + /// and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets. + pub Invulerables get(invulnerables) config(): Vec; + /// The current era index. pub CurrentEra get(current_era) config(): T::BlockNumber; /// Preferences that a validator has. @@ -501,6 +510,11 @@ impl Module { pub fn on_offline_validator(v: T::AccountId, count: usize) { use primitives::traits::CheckedShl; + // Early exit if validator is invulnerable. + if Self::invulnerables().contains(&v) { + return + } + for _ in 0..count { let slash_count = Self::slash_count(&v); >::insert(v.clone(), slash_count + 1); diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index a434b4510be8f..cf5976f88ae1b 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -123,6 +123,7 @@ pub fn new_test_ext( current_session_reward: reward, current_offline_slash: 20, offline_slash_grace: 0, + invulnerables: vec![], }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 5, diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 88ce66c8d79e1..801c15d3e1267 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -35,6 +35,22 @@ fn note_null_offline_should_work() { }); } +#[test] +fn invulnerability_should_work() { + with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { + Staking::set_invulnerables(vec![10]); + Balances::set_free_balance(&10, 70); + assert_eq!(Staking::offline_slash_grace(), 0); + assert_eq!(Staking::slash_count(&10), 0); + assert_eq!(Balances::free_balance(&10), 70); + System::set_extrinsic_index(1); + Staking::on_offline_validator(10, 1); + assert_eq!(Staking::slash_count(&10), 0); + assert_eq!(Balances::free_balance(&10), 70); + assert!(Staking::forcing_new_era().is_none()); + }); +} + #[test] fn note_offline_should_work() { with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { From 21dd6aa4807f3d6f1751a985b287aa9cd427fbe7 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 8 Jan 2019 11:14:18 +0100 Subject: [PATCH 23/44] Make AuthorityId generic (#1296) * BlockAuthorityId convenience type * Rename AuthorityId -> Ed25519AuthorityId to make it more precise * Generalize AuthorityId up to substrate-client * Fix in client-db * rename: BlockAuthorityId -> AuthorityIdFor * typo: should be digest item * Fix test-runtime authorityId mismatch One states that AuthorityId is u64 while the other states that it's Ed25519AuthorityId. * Fix more u64 - Ed25519AuthorityId mismatch * Fix compile of most of the srml modules * Continue to pin aura and grandpa with ed25519 and fix compile * Add MaybeHash trait * Fix node-runtime compile * Fix network tests --- core/basic-authorship/src/basic_authorship.rs | 7 ++--- core/client/db/src/cache/mod.rs | 13 ++++---- core/client/db/src/lib.rs | 6 ++-- core/client/db/src/light.rs | 14 ++++----- core/client/src/backend.rs | 5 ++- core/client/src/blockchain.rs | 5 ++- core/client/src/client.rs | 13 ++++---- core/client/src/in_mem.rs | 18 +++++------ core/client/src/light/backend.rs | 7 ++--- core/client/src/light/blockchain.rs | 7 ++--- core/client/src/runtime_api.rs | 6 ++-- core/consensus/aura/src/lib.rs | 22 ++++++------- core/consensus/common/src/block_import.rs | 5 ++- core/consensus/common/src/error.rs | 4 +-- core/consensus/common/src/import_queue.rs | 5 ++- core/consensus/common/src/lib.rs | 10 +++--- core/consensus/common/src/offline_tracker.rs | 9 +++--- core/finality-grandpa/primitives/src/lib.rs | 6 ++-- core/finality-grandpa/src/authorities.rs | 14 ++++----- core/finality-grandpa/src/communication.rs | 16 +++++----- core/finality-grandpa/src/lib.rs | 31 +++++++++++-------- core/finality-grandpa/src/tests.rs | 12 +++---- core/finality-grandpa/src/until_imported.rs | 4 +-- core/network/src/chain.rs | 8 ++--- core/network/src/test/mod.rs | 5 ++- core/primitives/src/authority_id.rs | 28 ++++++++--------- core/primitives/src/ed25519.rs | 12 +++---- core/primitives/src/lib.rs | 2 +- core/sr-api-macros/tests/decl_and_impl.rs | 5 ++- core/sr-primitives/src/generic/digest.rs | 4 +-- core/sr-primitives/src/testing.rs | 24 ++++++++++++-- core/sr-primitives/src/traits.rs | 14 ++++++++- core/test-runtime/src/genesismap.rs | 10 +++--- core/test-runtime/src/lib.rs | 7 ++--- core/test-runtime/src/system.rs | 8 ++--- node/cli/src/chain_spec.rs | 8 ++--- node/primitives/src/lib.rs | 2 +- srml/aura/src/mock.rs | 6 ++-- srml/consensus/src/lib.rs | 6 ++-- srml/consensus/src/mock.rs | 6 ++-- srml/consensus/src/tests.rs | 11 +++---- srml/grandpa/src/lib.rs | 6 ++-- srml/session/src/lib.rs | 24 +++++++------- srml/staking/src/mock.rs | 8 ++--- srml/system/src/lib.rs | 3 +- srml/timestamp/src/lib.rs | 4 +-- 46 files changed, 234 insertions(+), 216 deletions(-) diff --git a/core/basic-authorship/src/basic_authorship.rs b/core/basic-authorship/src/basic_authorship.rs index 5f8d1898785bb..0464d96dc4af6 100644 --- a/core/basic-authorship/src/basic_authorship.rs +++ b/core/basic-authorship/src/basic_authorship.rs @@ -26,8 +26,8 @@ use client::{self, error, Client as SubstrateClient, CallExecutor}; use client::{block_builder::api::BlockBuilder as BlockBuilderApi, runtime_api::Core}; use codec::{Decode, Encode}; use consensus_common::{self, evaluation}; -use primitives::{H256, AuthorityId, ed25519, Blake2Hasher}; -use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi}; +use primitives::{H256, Ed25519AuthorityId, ed25519, Blake2Hasher}; +use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi, AuthorityIdFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::BasicInherentData; use transaction_pool::txpool::{self, Pool as TransactionPool}; @@ -125,8 +125,7 @@ impl consensus_common::Environment<::Blo fn init( &self, parent_header: &<::Block as BlockT>::Header, - _: &[AuthorityId], - _: Arc, + _: &[AuthorityIdFor<::Block>], ) -> Result { let parent_hash = parent_header.hash(); diff --git a/core/client/db/src/cache/mod.rs b/core/client/db/src/cache/mod.rs index db2a1762db575..11fbd93392ce7 100644 --- a/core/client/db/src/cache/mod.rs +++ b/core/client/db/src/cache/mod.rs @@ -24,9 +24,8 @@ use kvdb::{KeyValueDB, DBTransaction}; use client::blockchain::Cache as BlockchainCache; use client::error::Result as ClientResult; use codec::{Encode, Decode}; -use primitives::AuthorityId; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, As}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, As, AuthorityIdFor}; use utils::{self, COLUMN_META}; use self::list_cache::ListCache; @@ -65,7 +64,7 @@ impl CacheItemT for T where T: Clone + Decode + Encode + PartialEq {} /// Database-backed blockchain data cache. pub struct DbCache { - authorities_at: ListCache, self::list_storage::DbStorage>, + authorities_at: ListCache>, self::list_storage::DbStorage>, } impl DbCache { @@ -112,14 +111,14 @@ impl DbCache { /// Cache operations that are to be committed after database transaction is committed. pub struct DbCacheTransactionOps { - authorities_at_op: Option>>, + authorities_at_op: Option>>>, } /// Database-backed blockchain data cache transaction valid for single block import. pub struct DbCacheTransaction<'a, Block: BlockT> { cache: &'a mut DbCache, tx: &'a mut DBTransaction, - authorities_at_op: Option>>, + authorities_at_op: Option>>>, } impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { @@ -135,7 +134,7 @@ impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { mut self, parent: ComplexBlockId, block: ComplexBlockId, - authorities_at: Option>, + authorities_at: Option>>, is_final: bool, ) -> ClientResult { assert!(self.authorities_at_op.is_none()); @@ -179,7 +178,7 @@ impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { pub struct DbCacheSync(pub RwLock>); impl BlockchainCache for DbCacheSync { - fn authorities_at(&self, at: BlockId) -> Option> { + fn authorities_at(&self, at: BlockId) -> Option>> { let cache = self.0.read(); let storage = cache.authorities_at.storage(); let db = storage.db(); diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 9df93e45b56c6..371f0a4013a3e 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -64,10 +64,10 @@ use hash_db::Hasher; use kvdb::{KeyValueDB, DBTransaction}; use trie::MemoryDB; use parking_lot::RwLock; -use primitives::{H256, AuthorityId, Blake2Hasher, ChangesTrieConfiguration, convert_hash}; +use primitives::{H256, Blake2Hasher, ChangesTrieConfiguration, convert_hash}; use primitives::storage::well_known_keys; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero, Digest, DigestItem}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::BuildStorage; use state_machine::backend::Backend as StateBackend; use executor::RuntimeInfo; @@ -315,7 +315,7 @@ where Block: BlockT, Ok(()) } - fn update_authorities(&mut self, _authorities: Vec) { + fn update_authorities(&mut self, _authorities: Vec>) { // currently authorities are not cached on full nodes } diff --git a/core/client/db/src/light.rs b/core/client/db/src/light.rs index 729519020c34e..cbed1348a93a2 100644 --- a/core/client/db/src/light.rs +++ b/core/client/db/src/light.rs @@ -28,10 +28,10 @@ use client::{cht, LeafSet}; use client::error::{ErrorKind as ClientErrorKind, Result as ClientResult}; use client::light::blockchain::Storage as LightBlockchainStorage; use codec::{Decode, Encode}; -use primitives::{AuthorityId, Blake2Hasher}; +use primitives::Blake2Hasher; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, - Zero, One, As, NumberFor, Digest, DigestItem}; + Zero, One, As, NumberFor, Digest, DigestItem, AuthorityIdFor}; use cache::{DbCacheSync, DbCache, ComplexBlockId}; use utils::{meta_keys, Meta, db_err, open_database, read_db, block_id_to_lookup_key, read_meta}; @@ -306,7 +306,7 @@ impl LightBlockchainStorage for LightStorage fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, leaf_state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()> { @@ -510,7 +510,7 @@ pub(crate) mod tests { pub fn insert_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -521,7 +521,7 @@ pub(crate) mod tests { fn insert_final_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -532,7 +532,7 @@ pub(crate) mod tests { fn insert_non_best_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -762,7 +762,7 @@ pub(crate) mod tests { fn authorites_are_cached() { let db = LightStorage::new_test(); - fn run_checks(db: &LightStorage, max: u64, checks: &[(u64, Option>)]) { + fn run_checks(db: &LightStorage, max: u64, checks: &[(u64, Option>>)]) { for (at, expected) in checks.iter().take_while(|(at, _)| *at <= max) { let actual = db.cache().authorities_at(BlockId::Number(*at)); assert_eq!(*expected, actual); diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 290159bdc5be8..1f370f0e1b627 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -17,9 +17,8 @@ //! Substrate Client data backend use error; -use primitives::AuthorityId; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; -use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, NumberFor}; use state_machine::backend::Backend as StateBackend; use state_machine::ChangesTrieStorage as StateChangesTrieStorage; use hash_db::Hasher; @@ -67,7 +66,7 @@ pub trait BlockImportOperation where /// Append authorities set to the transaction. This is a set of parent block (set which /// has been used to check justification of this block). - fn update_authorities(&mut self, authorities: Vec); + fn update_authorities(&mut self, authorities: Vec>); /// Inject storage data into the database. fn update_storage(&mut self, update: >::Transaction) -> error::Result<()>; /// Inject storage data into the database replacing any existing data. diff --git a/core/client/src/blockchain.rs b/core/client/src/blockchain.rs index ddc8ba866ae96..7ff395113be19 100644 --- a/core/client/src/blockchain.rs +++ b/core/client/src/blockchain.rs @@ -16,8 +16,7 @@ //! Substrate blockchain trait -use primitives::AuthorityId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, Header as HeaderT, NumberFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::Justification; @@ -90,7 +89,7 @@ pub trait Backend: HeaderBackend { /// Blockchain optional data cache. pub trait Cache: Send + Sync { /// Returns the set of authorities, that was active at given block or None if there's no entry in the cache. - fn authorities_at(&self, block: BlockId) -> Option>; + fn authorities_at(&self, block: BlockId) -> Option>>; } /// Block import outcome diff --git a/core/client/src/client.rs b/core/client/src/client.rs index b0dfb939d07c1..79a112e616740 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -20,7 +20,6 @@ use std::{marker::PhantomData, collections::{HashSet, BTreeMap}, sync::Arc}; use error::Error; use futures::sync::mpsc; use parking_lot::{Mutex, RwLock}; -use primitives::AuthorityId; use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, @@ -28,7 +27,7 @@ use runtime_primitives::{ use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin, ForkChoiceStrategy}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, - ApiRef, ProvideRuntimeApi, Digest, DigestItem, + ApiRef, ProvideRuntimeApi, Digest, DigestItem, AuthorityIdFor }; use runtime_primitives::BuildStorage; use runtime_api::{Core as CoreAPI, CallRuntimeAt, ConstructRuntimeApi}; @@ -281,11 +280,11 @@ impl Client where } /// Get the set of authorities at a given block. - pub fn authorities_at(&self, id: &BlockId) -> error::Result> { + pub fn authorities_at(&self, id: &BlockId) -> error::Result>> { match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), None => self.executor.call(id, "Core_authorities", &[]) - .and_then(|r| Vec::::decode(&mut &r.return_data[..]) + .and_then(|r| Vec::>::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) } } @@ -541,7 +540,7 @@ impl Client where import_headers: PrePostHeader, justification: Option, body: Option>, - authorities: Option>, + authorities: Option>>, finalized: bool, aux: Vec<(Vec, Option>)>, fork_choice: ForkChoiceStrategy, @@ -1030,7 +1029,7 @@ impl consensus::BlockImport for Client fn import_block( &self, import_block: ImportBlock, - new_authorities: Option>, + new_authorities: Option>>, ) -> Result { use runtime_primitives::traits::Digest; @@ -1098,7 +1097,7 @@ impl consensus::Authorities for Client Block: BlockT, { type Error = Error; - fn authorities(&self, at: &BlockId) -> Result, Self::Error> { + fn authorities(&self, at: &BlockId) -> Result>, Self::Error> { self.authorities_at(at).map_err(|e| e.into()) } } diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 1bf50d715d62a..896f9821deffc 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -22,10 +22,10 @@ use parking_lot::RwLock; use error; use backend::{self, NewBlockState}; use light; -use primitives::{AuthorityId, storage::well_known_keys}; +use primitives::storage::well_known_keys; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, Zero, - NumberFor, As, Digest, DigestItem}; + NumberFor, As, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::{Justification, StorageMap, ChildrenStorageMap}; use blockchain::{self, BlockStatus, HeaderBackend}; use state_machine::backend::{Backend as StateBackend, InMemory, Consolidate}; @@ -108,7 +108,7 @@ pub struct Blockchain { struct Cache { storage: Arc>>, - authorities_at: RwLock>>>, + authorities_at: RwLock>>>>, } impl Clone for Blockchain { @@ -368,7 +368,7 @@ impl light::blockchain::Storage for Blockchain fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> error::Result<()> { @@ -409,7 +409,7 @@ impl light::blockchain::Storage for Blockchain /// In-memory operation. pub struct BlockImportOperation { pending_block: Option>, - pending_authorities: Option>, + pending_authorities: Option>>, old_state: InMemory, new_state: Option>, changes_trie_update: Option>, @@ -444,7 +444,7 @@ where Ok(()) } - fn update_authorities(&mut self, authorities: Vec) { + fn update_authorities(&mut self, authorities: Vec>) { self.pending_authorities = Some(authorities); } @@ -632,13 +632,13 @@ where {} impl Cache { - fn insert(&self, at: Block::Hash, authorities: Option>) { + fn insert(&self, at: Block::Hash, authorities: Option>>) { self.authorities_at.write().insert(at, authorities); } } impl blockchain::Cache for Cache { - fn authorities_at(&self, block: BlockId) -> Option> { + fn authorities_at(&self, block: BlockId) -> Option>> { let hash = match block { BlockId::Hash(hash) => hash, BlockId::Number(number) => self.storage.read().hashes.get(&number).cloned()?, @@ -652,7 +652,7 @@ impl blockchain::Cache for Cache { pub fn cache_authorities_at( blockchain: &Blockchain, at: Block::Hash, - authorities: Option> + authorities: Option>> ) { blockchain.cache.insert(at, authorities); } diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 185b7cfa06971..79a636bfbc183 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -21,10 +21,9 @@ use std::sync::{Arc, Weak}; use futures::{Future, IntoFuture}; use parking_lot::RwLock; -use primitives::AuthorityId; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; use state_machine::{Backend as StateBackend, InMemoryChangesTrieStorage, TrieBackend}; -use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use runtime_primitives::traits::{Block as BlockT, NumberFor, AuthorityIdFor}; use in_mem; use backend::{AuxStore, Backend as ClientBackend, BlockImportOperation, RemoteBackend, NewBlockState}; @@ -44,7 +43,7 @@ pub struct Backend { /// Light block (header and justification) import operation. pub struct ImportOperation { header: Option, - authorities: Option>, + authorities: Option>>, leaf_state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, _phantom: ::std::marker::PhantomData<(S, F)>, @@ -185,7 +184,7 @@ where Ok(()) } - fn update_authorities(&mut self, authorities: Vec) { + fn update_authorities(&mut self, authorities: Vec>) { self.authorities = Some(authorities); } diff --git a/core/client/src/light/blockchain.rs b/core/client/src/light/blockchain.rs index ed75043164956..62e40c579e213 100644 --- a/core/client/src/light/blockchain.rs +++ b/core/client/src/light/blockchain.rs @@ -21,9 +21,8 @@ use std::sync::Weak; use futures::{Future, IntoFuture}; use parking_lot::Mutex; -use primitives::AuthorityId; use runtime_primitives::{Justification, generic::BlockId}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT,NumberFor, Zero}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero, AuthorityIdFor}; use backend::{AuxStore, NewBlockState}; use blockchain::{Backend as BlockchainBackend, BlockStatus, Cache as BlockchainCache, @@ -41,7 +40,7 @@ pub trait Storage: AuxStore + BlockchainHeaderBackend { fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()>; @@ -227,7 +226,7 @@ pub mod tests { fn import_header( &self, _header: Header, - _authorities: Option>, + _authorities: Option>>, _state: NewBlockState, _aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()> { diff --git a/core/client/src/runtime_api.rs b/core/client/src/runtime_api.rs index 9ad92fb493c5b..596b355ddf2f4 100644 --- a/core/client/src/runtime_api.rs +++ b/core/client/src/runtime_api.rs @@ -21,7 +21,7 @@ pub use state_machine::OverlayedChanges; #[doc(hidden)] pub use runtime_primitives::{ - traits::{Block as BlockT, GetNodeBlockType, GetRuntimeBlockType, ApiRef, RuntimeApiInfo}, + traits::{AuthorityIdFor, Block as BlockT, GetNodeBlockType, GetRuntimeBlockType, ApiRef, RuntimeApiInfo}, generic::BlockId, transaction_validity::TransactionValidity }; #[doc(hidden)] @@ -34,7 +34,7 @@ pub use codec::{Encode, Decode}; #[cfg(feature = "std")] use error; use rstd::vec::Vec; -use primitives::{AuthorityId, OpaqueMetadata}; +use primitives::OpaqueMetadata; /// Something that can be constructed to a runtime api. @@ -91,7 +91,7 @@ decl_runtime_apis! { /// Returns the version of the runtime. fn version() -> RuntimeVersion; /// Returns the authorities. - fn authorities() -> Vec; + fn authorities() -> Vec>; /// Execute the given block. fn execute_block(block: Block); /// Initialise a block with the given header. diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index b57dab030c76f..f544c2f0e7357 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -67,8 +67,8 @@ use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; use consensus_common::{ImportBlock, BlockOrigin}; use runtime_primitives::{generic, generic::BlockId, Justification, BasicInherentData}; -use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, ProvideRuntimeApi}; -use primitives::{AuthorityId, ed25519}; +use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, DigestItem, ProvideRuntimeApi}; +use primitives::{Ed25519AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; use tokio::timer::Timeout; @@ -91,7 +91,7 @@ pub trait Network: Clone { } /// Get slot author for given block along with authorities. -fn slot_author(slot_num: u64, authorities: &[AuthorityId]) -> Option { +fn slot_author(slot_num: u64, authorities: &[Ed25519AuthorityId]) -> Option { if authorities.is_empty() { return None } let idx = slot_num % (authorities.len() as u64); @@ -168,7 +168,7 @@ pub fn start_aura_thread( I: BlockImport + Send + Sync + 'static, Error: From + From + 'static, SO: SyncOracle + Send + Clone + 'static, - DigestItemFor: CompatibleDigestItem + 'static, + DigestItemFor: CompatibleDigestItem + DigestItem + 'static, Error: ::std::error::Error + Send + From<::consensus_common::Error> + 'static, { use tokio::runtime::current_thread::Runtime; @@ -211,7 +211,7 @@ pub fn start_aura( I: BlockImport, Error: From + From, SO: SyncOracle + Send + Clone, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, Error: ::std::error::Error + Send + 'static + From<::consensus_common::Error>, { let make_authorship = move || { @@ -266,7 +266,7 @@ pub fn start_aura( slot_num, timestamp); // we are the slot author. make a block and sign it. - let proposer = match env.init(&chain_head, &authorities, pair.clone()) { + let proposer = match env.init(&chain_head, &authorities) { Ok(p) => p, Err(e) => { warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); @@ -373,7 +373,7 @@ enum CheckedHeader { /// if it's successful, returns the pre-header, the slot number, and the signat. // // FIXME: needs misbehavior types - https://github.com/paritytech/substrate/issues/1018 -fn check_header(slot_now: u64, mut header: B::Header, hash: B::Hash, authorities: &[AuthorityId]) +fn check_header(slot_now: u64, mut header: B::Header, hash: B::Hash, authorities: &[Ed25519AuthorityId]) -> Result, String> where DigestItemFor: CompatibleDigestItem { @@ -446,7 +446,7 @@ impl ExtraVerification for NothingExtra { impl Verifier for AuraVerifier where C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, E: ExtraVerification, MakeInherent: Fn(u64, u64) -> Inherent + Send + Sync, { @@ -456,7 +456,7 @@ impl Verifier for AuraVerifier, mut body: Option>, - ) -> Result<(ImportBlock, Option>), String> { + ) -> Result<(ImportBlock, Option>), String> { use runtime_primitives::CheckInherentError; const MAX_TIMESTAMP_DRIFT_SECS: u64 = 60; @@ -600,7 +600,7 @@ pub fn import_queue( B: Block, C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, E: ExtraVerification, MakeInherent: Fn(u64, u64) -> Inherent + Send + Sync, { @@ -633,7 +633,7 @@ mod tests { type Proposer = DummyProposer; type Error = Error; - fn init(&self, parent_header: &::Header, _authorities: &[AuthorityId], _sign_with: Arc) + fn init(&self, parent_header: &::Header, _authorities: &[Ed25519AuthorityId]) -> Result { Ok(DummyProposer(parent_header.number + 1, self.0.clone())) diff --git a/core/consensus/common/src/block_import.rs b/core/consensus/common/src/block_import.rs index 488112f0ebe02..f4a60d435db8f 100644 --- a/core/consensus/common/src/block_import.rs +++ b/core/consensus/common/src/block_import.rs @@ -16,8 +16,7 @@ //! Block import helpers. -use primitives::AuthorityId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, DigestItemFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, Header as HeaderT, DigestItemFor}; use runtime_primitives::Justification; use std::borrow::Cow; @@ -146,6 +145,6 @@ pub trait BlockImport { /// Import a Block alongside the new authorities valid form this block forward fn import_block(&self, block: ImportBlock, - new_authorities: Option> + new_authorities: Option>> ) -> Result; } diff --git a/core/consensus/common/src/error.rs b/core/consensus/common/src/error.rs index 14a3fb81e1993..ec378d24cbd48 100644 --- a/core/consensus/common/src/error.rs +++ b/core/consensus/common/src/error.rs @@ -44,13 +44,13 @@ error_chain! { } /// Error checking signature - InvalidSignature(s: ::primitives::ed25519::Signature, a: ::primitives::AuthorityId) { + InvalidSignature(s: ::primitives::ed25519::Signature, a: ::primitives::Ed25519AuthorityId) { description("Message signature is invalid"), display("Message signature {:?} by {:?} is invalid.", s, a), } /// Account is not an authority. - InvalidAuthority(a: ::primitives::AuthorityId) { + InvalidAuthority(a: ::primitives::Ed25519AuthorityId) { description("Message sender is not a valid authority"), display("Message sender {:?} is not a valid authority.", a), } diff --git a/core/consensus/common/src/import_queue.rs b/core/consensus/common/src/import_queue.rs index 3a048f781a461..5264b29cef792 100644 --- a/core/consensus/common/src/import_queue.rs +++ b/core/consensus/common/src/import_queue.rs @@ -29,10 +29,9 @@ use std::collections::{HashSet, VecDeque}; use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use parking_lot::{Condvar, Mutex, RwLock}; -use primitives::AuthorityId; use runtime_primitives::Justification; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero, AuthorityIdFor}; use error::Error as ConsensusError; @@ -68,7 +67,7 @@ pub trait Verifier: Send + Sync + Sized { header: B::Header, justification: Option, body: Option> - ) -> Result<(ImportBlock, Option>), String>; + ) -> Result<(ImportBlock, Option>>), String>; } /// Blocks import queue API. diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index e9b5d82951f62..23bde0c0568be 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -40,9 +40,8 @@ extern crate error_chain; use std::sync::Arc; -use primitives::{ed25519, AuthorityId}; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::Block; +use runtime_primitives::traits::{AuthorityIdFor, Block}; use futures::prelude::*; pub mod offline_tracker; @@ -60,7 +59,7 @@ pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult, Fork /// Trait for getting the authorities at a given block. pub trait Authorities { type Error: ::std::error::Error + Send + 'static; /// Get the authorities at the given block. - fn authorities(&self, at: &BlockId) -> Result, Self::Error>; + fn authorities(&self, at: &BlockId) -> Result>, Self::Error>; } /// Environment producer for a Consensus instance. Creates proposer instance and communication streams. @@ -71,9 +70,8 @@ pub trait Environment { type Error: From; /// Initialize the proposal logic on top of a specific header. Provide - /// the authorities at that header, and a local key to sign any additional - /// consensus messages with as well. - fn init(&self, parent_header: &B::Header, authorities: &[AuthorityId], sign_with: Arc) + /// the authorities at that header. + fn init(&self, parent_header: &B::Header, authorities: &[AuthorityIdFor]) -> Result; } diff --git a/core/consensus/common/src/offline_tracker.rs b/core/consensus/common/src/offline_tracker.rs index bd8eab8b1bb51..1ed923da2c590 100644 --- a/core/consensus/common/src/offline_tracker.rs +++ b/core/consensus/common/src/offline_tracker.rs @@ -16,8 +16,6 @@ //! Tracks offline validators. -use primitives::AuthorityId; - use std::collections::HashMap; use std::time::{Instant, Duration}; @@ -55,11 +53,11 @@ impl Observed { } /// Tracks offline validators and can issue a report for those offline. -pub struct OfflineTracker { +pub struct OfflineTracker { observed: HashMap, } -impl OfflineTracker { +impl OfflineTracker { /// Create a new tracker. pub fn new() -> Self { OfflineTracker { observed: HashMap::new() } @@ -114,10 +112,11 @@ impl OfflineTracker { #[cfg(test)] mod tests { use super::*; + use primitives::Ed25519AuthorityId; #[test] fn validator_offline() { - let mut tracker = OfflineTracker::new(); + let mut tracker = OfflineTracker::::new(); let v = [0; 32].into(); let v2 = [1; 32].into(); let v3 = [2; 32].into(); diff --git a/core/finality-grandpa/primitives/src/lib.rs b/core/finality-grandpa/primitives/src/lib.rs index df224fa9d4ad1..15e4a027f6c24 100644 --- a/core/finality-grandpa/primitives/src/lib.rs +++ b/core/finality-grandpa/primitives/src/lib.rs @@ -34,7 +34,7 @@ extern crate substrate_client as client; extern crate sr_std as rstd; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use sr_primitives::traits::{DigestFor, NumberFor}; use rstd::vec::Vec; @@ -43,7 +43,7 @@ use rstd::vec::Vec; #[derive(Clone, Encode, Decode)] pub struct ScheduledChange { /// The new authorities after the change, along with their respective weights. - pub next_authorities: Vec<(AuthorityId, u64)>, + pub next_authorities: Vec<(Ed25519AuthorityId, u64)>, /// The number of blocks to delay. pub delay: N, } @@ -97,6 +97,6 @@ decl_runtime_apis! { /// Get the current GRANDPA authorities and weights. This should not change except /// for when changes are scheduled and the corresponding delay has passed. - fn grandpa_authorities() -> Vec<(AuthorityId, u64)>; + fn grandpa_authorities() -> Vec<(Ed25519AuthorityId, u64)>; } } diff --git a/core/finality-grandpa/src/authorities.rs b/core/finality-grandpa/src/authorities.rs index 64e9f3690634b..ca9bd61a88390 100644 --- a/core/finality-grandpa/src/authorities.rs +++ b/core/finality-grandpa/src/authorities.rs @@ -17,7 +17,7 @@ //! Utilities for dealing with authorities, authority sets, and handoffs. use parking_lot::RwLock; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use std::cmp::Ord; use std::collections::HashMap; @@ -38,7 +38,7 @@ impl Clone for SharedAuthoritySet { impl SharedAuthoritySet { /// The genesis authority set. - pub(crate) fn genesis(initial: Vec<(AuthorityId, u64)>) -> Self { + pub(crate) fn genesis(initial: Vec<(Ed25519AuthorityId, u64)>) -> Self { SharedAuthoritySet { inner: Arc::new(RwLock::new(AuthoritySet::genesis(initial))) } @@ -66,7 +66,7 @@ where } /// Get the current authorities and their weights (for the current set ID). - pub(crate) fn current_authorities(&self) -> HashMap { + pub(crate) fn current_authorities(&self) -> HashMap { self.inner.read().current_authorities.iter().cloned().collect() } } @@ -89,14 +89,14 @@ pub(crate) struct Status { /// A set of authorities. #[derive(Debug, Clone, Encode, Decode)] pub(crate) struct AuthoritySet { - current_authorities: Vec<(AuthorityId, u64)>, + current_authorities: Vec<(Ed25519AuthorityId, u64)>, set_id: u64, pending_changes: Vec>, } impl AuthoritySet { /// Get a genesis set with given authorities. - pub(crate) fn genesis(initial: Vec<(AuthorityId, u64)>) -> Self { + pub(crate) fn genesis(initial: Vec<(Ed25519AuthorityId, u64)>) -> Self { AuthoritySet { current_authorities: initial, set_id: 0, @@ -105,7 +105,7 @@ impl AuthoritySet { } /// Get the current set id and a reference to the current authority set. - pub(crate) fn current(&self) -> (u64, &[(AuthorityId, u64)]) { + pub(crate) fn current(&self) -> (u64, &[(Ed25519AuthorityId, u64)]) { (self.set_id, &self.current_authorities[..]) } } @@ -249,7 +249,7 @@ where #[derive(Debug, Clone, Encode, Decode, PartialEq)] pub(crate) struct PendingChange { /// The new authorities and weights to apply. - pub(crate) next_authorities: Vec<(AuthorityId, u64)>, + pub(crate) next_authorities: Vec<(Ed25519AuthorityId, u64)>, /// How deep in the finalized chain the announcing block must be /// before the change is applied. pub(crate) finalization_depth: N, diff --git a/core/finality-grandpa/src/communication.rs b/core/finality-grandpa/src/communication.rs index 02a079b909448..b8435cef6cc84 100644 --- a/core/finality-grandpa/src/communication.rs +++ b/core/finality-grandpa/src/communication.rs @@ -20,7 +20,7 @@ use futures::prelude::*; use futures::sync::mpsc; use codec::{Encode, Decode}; -use substrate_primitives::{ed25519, AuthorityId}; +use substrate_primitives::{ed25519, Ed25519AuthorityId}; use runtime_primitives::traits::Block as BlockT; use {Error, Network, Message, SignedMessage, Commit, CompactCommit}; @@ -34,7 +34,7 @@ fn localized_payload(round: u64, set_id: u64, message: &E) -> Vec // check a message. pub(crate) fn check_message_sig( message: &Message, - id: &AuthorityId, + id: &Ed25519AuthorityId, signature: &ed25519::Signature, round: u64, set_id: u64, @@ -55,7 +55,7 @@ pub(crate) fn checked_message_stream( round: u64, set_id: u64, inner: S, - voters: Arc>, + voters: Arc>, ) -> impl Stream,Error=Error> where S: Stream,Error=()> @@ -92,7 +92,7 @@ pub(crate) fn checked_message_stream( struct OutgoingMessages { round: u64, set_id: u64, - locals: Option<(Arc, AuthorityId)>, + locals: Option<(Arc, Ed25519AuthorityId)>, sender: mpsc::UnboundedSender>, network: N, } @@ -143,7 +143,7 @@ pub(crate) fn outgoing_messages( round: u64, set_id: u64, local_key: Option>, - voters: Arc>, + voters: Arc>, network: N, ) -> ( impl Stream,Error=Error>, @@ -151,7 +151,7 @@ pub(crate) fn outgoing_messages( ) { let locals = local_key.and_then(|pair| { let public = pair.public(); - let id = AuthorityId(public.0); + let id = Ed25519AuthorityId(public.0); if voters.contains_key(&id) { Some((pair, id)) } else { @@ -177,7 +177,7 @@ pub(crate) fn outgoing_messages( fn check_compact_commit( msg: CompactCommit, - voters: &HashMap, + voters: &HashMap, round: u64, set_id: u64, ) -> Option> { @@ -216,7 +216,7 @@ fn check_compact_commit( pub(crate) fn checked_commit_stream( set_id: u64, inner: S, - voters: Arc>, + voters: Arc>, ) -> impl Stream),Error=Error> where S: Stream,Error=()> diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index abd737d357a3c..00ea6734af56d 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -92,10 +92,11 @@ use codec::{Encode, Decode}; use consensus_common::{BlockImport, Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, Authorities}; use runtime_primitives::traits::{ NumberFor, Block as BlockT, Header as HeaderT, DigestFor, ProvideRuntimeApi, Hash as HashT, + DigestItemFor, DigestItem, }; use fg_primitives::GrandpaApi; use runtime_primitives::generic::BlockId; -use substrate_primitives::{ed25519, H256, AuthorityId, Blake2Hasher}; +use substrate_primitives::{ed25519, H256, Ed25519AuthorityId, Blake2Hasher}; use tokio::timer::Delay; use grandpa::Error as GrandpaError; @@ -138,7 +139,7 @@ pub type SignedMessage = grandpa::SignedMessage< ::Hash, NumberFor, ed25519::Signature, - AuthorityId, + Ed25519AuthorityId, >; /// A prevote message for this chain's block type. pub type Prevote = grandpa::Prevote<::Hash, NumberFor>; @@ -149,14 +150,14 @@ pub type Commit = grandpa::Commit< ::Hash, NumberFor, ed25519::Signature, - AuthorityId + Ed25519AuthorityId >; /// A compact commit message for this chain's block type. pub type CompactCommit = grandpa::CompactCommit< ::Hash, NumberFor, ed25519::Signature, - AuthorityId + Ed25519AuthorityId >; /// Configuration for the GRANDPA service. @@ -306,7 +307,7 @@ impl, RA> BlockStatus for Arc { inner: Arc>, - voters: Arc>, + voters: Arc>, config: Config, authority_set: SharedAuthoritySet>, network: N, @@ -381,7 +382,7 @@ struct NewAuthoritySet { canon_number: N, canon_hash: H, set_id: u64, - authorities: Vec<(AuthorityId, u64)>, + authorities: Vec<(Ed25519AuthorityId, u64)>, } /// Signals either an early exit of a voter or an error. @@ -432,7 +433,7 @@ impl, N, RA> voter::Environment: BlockNumberOps, { type Timer = Box + Send>; - type Id = AuthorityId; + type Id = Ed25519AuthorityId; type Signature = ed25519::Signature; // regular round message streams @@ -611,7 +612,7 @@ impl> GrandpaJustification { fn decode_and_verify( encoded: Vec, set_id: u64, - voters: &HashMap, + voters: &HashMap, ) -> Result, ClientError> where NumberFor: grandpa::BlockNumberOps, { @@ -830,13 +831,14 @@ impl, RA, PRA> BlockImport B: Backend + 'static, E: CallExecutor + 'static + Clone + Send + Sync, DigestFor: Encode, + DigestItemFor: DigestItem, RA: Send + Sync, PRA: ProvideRuntimeApi, PRA::Api: GrandpaApi, { type Error = ConsensusError; - fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) + fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) -> Result { use authorities::PendingChange; @@ -1030,10 +1032,11 @@ impl, RA, PRA> Authorities for GrandpaBloc where B: Backend + 'static, E: CallExecutor + 'static + Clone + Send + Sync, + DigestItemFor: DigestItem, { type Error = as Authorities>::Error; - fn authorities(&self, at: &BlockId) -> Result, Self::Error> { + fn authorities(&self, at: &BlockId) -> Result, Self::Error> { self.inner.authorities_at(at) } } @@ -1158,16 +1161,16 @@ pub fn block_import, RA, PRA>( fn committer_communication, B, E, N, RA>( set_id: u64, - voters: &Arc>, + voters: &Arc>, client: &Arc>, network: &N, ) -> ( impl Stream< - Item = (u64, ::grandpa::CompactCommit, ed25519::Signature, AuthorityId>), + Item = (u64, ::grandpa::CompactCommit, ed25519::Signature, Ed25519AuthorityId>), Error = ExitOrError>, >, impl Sink< - SinkItem = (u64, ::grandpa::Commit, ed25519::Signature, AuthorityId>), + SinkItem = (u64, ::grandpa::Commit, ed25519::Signature, Ed25519AuthorityId>), SinkError = ExitOrError>, >, ) where @@ -1176,6 +1179,7 @@ fn committer_communication, B, E, N, RA>( N: Network, RA: Send + Sync, NumberFor: BlockNumberOps, + DigestItemFor: DigestItem, { // verification stream let commit_in = ::communication::checked_commit_stream::( @@ -1217,6 +1221,7 @@ pub fn run_grandpa, N, RA>( N::In: Send + 'static, NumberFor: BlockNumberOps, DigestFor: Encode, + DigestItemFor: DigestItem, RA: Send + Sync + 'static, { use futures::future::{self, Loop as FutureLoop}; diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index a357fa81dab39..18bfaef1a5ff2 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -230,12 +230,12 @@ impl Network for MessageRouting { #[derive(Default, Clone)] struct TestApi { - genesis_authorities: Vec<(AuthorityId, u64)>, + genesis_authorities: Vec<(Ed25519AuthorityId, u64)>, scheduled_changes: Arc>>>, } impl TestApi { - fn new(genesis_authorities: Vec<(AuthorityId, u64)>) -> Self { + fn new(genesis_authorities: Vec<(Ed25519AuthorityId, u64)>) -> Self { TestApi { genesis_authorities, scheduled_changes: Arc::new(Mutex::new(HashMap::new())), @@ -260,7 +260,7 @@ impl Core for RuntimeApi { unimplemented!("Not required for testing!") } - fn authorities(&self, _: &BlockId) -> Result> { + fn authorities(&self, _: &BlockId) -> Result> { unimplemented!("Not required for testing!") } @@ -300,7 +300,7 @@ impl GrandpaApi for RuntimeApi { fn grandpa_authorities( &self, at: &BlockId - ) -> Result> { + ) -> Result> { if at == &BlockId::Number(0) { Ok(self.inner.genesis_authorities.clone()) } else { @@ -325,9 +325,9 @@ impl GrandpaApi for RuntimeApi { const TEST_GOSSIP_DURATION: Duration = Duration::from_millis(500); const TEST_ROUTING_INTERVAL: Duration = Duration::from_millis(50); -fn make_ids(keys: &[Keyring]) -> Vec<(AuthorityId, u64)> { +fn make_ids(keys: &[Keyring]) -> Vec<(Ed25519AuthorityId, u64)> { keys.iter() - .map(|key| AuthorityId(key.to_raw_public())) + .map(|key| Ed25519AuthorityId(key.to_raw_public())) .map(|id| (id, 1)) .collect() } diff --git a/core/finality-grandpa/src/until_imported.rs b/core/finality-grandpa/src/until_imported.rs index 028b710acb7e1..8cb825ac84c3b 100644 --- a/core/finality-grandpa/src/until_imported.rs +++ b/core/finality-grandpa/src/until_imported.rs @@ -27,7 +27,7 @@ use futures::prelude::*; use futures::stream::Fuse; use parking_lot::Mutex; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor}; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use tokio::timer::Interval; use std::collections::{HashMap, VecDeque}; @@ -181,7 +181,7 @@ impl Stream for UntilImported } } -fn warn_authority_wrong_target(hash: H, id: AuthorityId) { +fn warn_authority_wrong_target(hash: H, id: Ed25519AuthorityId) { warn!( target: "afg", "Authority {:?} signed GRANDPA message with \ diff --git a/core/network/src/chain.rs b/core/network/src/chain.rs index 166dfe55a7c22..457f8852b2cb6 100644 --- a/core/network/src/chain.rs +++ b/core/network/src/chain.rs @@ -20,16 +20,16 @@ use client::{self, Client as SubstrateClient, ClientInfo, BlockStatus, CallExecu use client::error::Error; use client::light::fetcher::ChangesProof; use consensus::{BlockImport, Error as ConsensusError}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, AuthorityIdFor}; use runtime_primitives::generic::{BlockId}; use consensus::{ImportBlock, ImportResult}; use runtime_primitives::Justification; -use primitives::{H256, Blake2Hasher, AuthorityId}; +use primitives::{H256, Blake2Hasher}; /// Local client abstraction for the network. pub trait Client: Send + Sync { /// Import a new block. Parent is supposed to be existing in the blockchain. - fn import(&self, block: ImportBlock, new_authorities: Option>) + fn import(&self, block: ImportBlock, new_authorities: Option>>) -> Result; /// Get blockchain info. @@ -77,7 +77,7 @@ impl Client for SubstrateClient where Block: BlockT, RA: Send + Sync { - fn import(&self, block: ImportBlock, new_authorities: Option>) + fn import(&self, block: ImportBlock, new_authorities: Option>>) -> Result { (self as &SubstrateClient).import_block(block, new_authorities) diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index 94518978bc091..48b401b21ae1a 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -29,9 +29,8 @@ use client; use client::block_builder::BlockBuilder; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Zero}; +use runtime_primitives::traits::{Block as BlockT, Zero, AuthorityIdFor}; use io::SyncIo; -use primitives::AuthorityId; use protocol::{Context, Protocol, ProtocolContext}; use config::ProtocolConfig; use service::{NetworkLink, TransactionPool}; @@ -92,7 +91,7 @@ impl Verifier for PassThroughVerifier { header: B::Header, justification: Option, body: Option> - ) -> Result<(ImportBlock, Option>), String> { + ) -> Result<(ImportBlock, Option>>), String> { Ok((ImportBlock { origin, header, diff --git a/core/primitives/src/authority_id.rs b/core/primitives/src/authority_id.rs index 9a6abf1f033e7..7773e1a930711 100644 --- a/core/primitives/src/authority_id.rs +++ b/core/primitives/src/authority_id.rs @@ -20,17 +20,17 @@ use H256; /// An identifier for an authority in the consensus algorithm. The same size as ed25519::Public. #[derive(Clone, Copy, PartialEq, Eq, Default, Encode, Decode)] -pub struct AuthorityId(pub [u8; 32]); +pub struct Ed25519AuthorityId(pub [u8; 32]); #[cfg(feature = "std")] -impl ::std::fmt::Display for AuthorityId { +impl ::std::fmt::Display for Ed25519AuthorityId { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "{}", ::ed25519::Public(self.0).to_ss58check()) } } #[cfg(feature = "std")] -impl ::std::fmt::Debug for AuthorityId { +impl ::std::fmt::Debug for Ed25519AuthorityId { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { let h = format!("{}", ::hexdisplay::HexDisplay::from(&self.0)); write!(f, "{} ({}…{})", ::ed25519::Public(self.0).to_ss58check(), &h[0..8], &h[60..]) @@ -38,57 +38,57 @@ impl ::std::fmt::Debug for AuthorityId { } #[cfg(feature = "std")] -impl ::std::hash::Hash for AuthorityId { +impl ::std::hash::Hash for Ed25519AuthorityId { fn hash(&self, state: &mut H) { self.0.hash(state); } } -impl AsRef<[u8; 32]> for AuthorityId { +impl AsRef<[u8; 32]> for Ed25519AuthorityId { fn as_ref(&self) -> &[u8; 32] { &self.0 } } -impl AsRef<[u8]> for AuthorityId { +impl AsRef<[u8]> for Ed25519AuthorityId { fn as_ref(&self) -> &[u8] { &self.0[..] } } -impl Into<[u8; 32]> for AuthorityId { +impl Into<[u8; 32]> for Ed25519AuthorityId { fn into(self) -> [u8; 32] { self.0 } } -impl From<[u8; 32]> for AuthorityId { +impl From<[u8; 32]> for Ed25519AuthorityId { fn from(a: [u8; 32]) -> Self { - AuthorityId(a) + Ed25519AuthorityId(a) } } -impl AsRef for AuthorityId { - fn as_ref(&self) -> &AuthorityId { +impl AsRef for Ed25519AuthorityId { + fn as_ref(&self) -> &Ed25519AuthorityId { &self } } -impl Into for AuthorityId { +impl Into for Ed25519AuthorityId { fn into(self) -> H256 { self.0.into() } } #[cfg(feature = "std")] -impl Serialize for AuthorityId { +impl Serialize for Ed25519AuthorityId { fn serialize(&self, serializer: S) -> Result where S: Serializer { ::ed25519::serialize(&self, serializer) } } #[cfg(feature = "std")] -impl<'de> Deserialize<'de> for AuthorityId { +impl<'de> Deserialize<'de> for Ed25519AuthorityId { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { ::ed25519::deserialize(deserializer) } diff --git a/core/primitives/src/ed25519.rs b/core/primitives/src/ed25519.rs index c6f28c64c1177..05077fbd37e80 100644 --- a/core/primitives/src/ed25519.rs +++ b/core/primitives/src/ed25519.rs @@ -21,7 +21,7 @@ use untrusted; use blake2_rfc; use ring::{rand, signature}; -use {hash::H512, AuthorityId}; +use {hash::H512, Ed25519AuthorityId}; use base58::{ToBase58, FromBase58}; #[cfg(feature = "std")] @@ -169,14 +169,14 @@ impl AsRef for Pair { } } -impl Into for Public { - fn into(self) -> AuthorityId { - AuthorityId(self.0) +impl Into for Public { + fn into(self) -> Ed25519AuthorityId { + Ed25519AuthorityId(self.0) } } -impl From for Public { - fn from(id: AuthorityId) -> Self { +impl From for Public { + fn from(id: Ed25519AuthorityId) -> Self { Public(id.0) } } diff --git a/core/primitives/src/lib.rs b/core/primitives/src/lib.rs index 83f6a8d0bc9c5..98289ddc18939 100644 --- a/core/primitives/src/lib.rs +++ b/core/primitives/src/lib.rs @@ -109,7 +109,7 @@ mod tests; pub use self::hash::{H160, H256, H512, convert_hash}; pub use self::uint::U256; -pub use authority_id::AuthorityId; +pub use authority_id::Ed25519AuthorityId; pub use changes_trie::ChangesTrieConfiguration; pub use hash_db::Hasher; diff --git a/core/sr-api-macros/tests/decl_and_impl.rs b/core/sr-api-macros/tests/decl_and_impl.rs index 47822e538beb3..699c8c01cf315 100644 --- a/core/sr-api-macros/tests/decl_and_impl.rs +++ b/core/sr-api-macros/tests/decl_and_impl.rs @@ -4,9 +4,8 @@ extern crate sr_primitives as runtime_primitives; extern crate substrate_primitives as primitives; extern crate substrate_test_client as test_client; -use runtime_primitives::traits::{GetNodeBlockType, Block as BlockT}; +use runtime_primitives::traits::{GetNodeBlockType, Block as BlockT, AuthorityIdFor}; use runtime_primitives::generic::BlockId; -use primitives::AuthorityId; use substrate_client::runtime_api::{self, RuntimeApiInfo}; use substrate_client::error::Result; use test_client::runtime::Block; @@ -57,7 +56,7 @@ impl_runtime_apis! { fn version() -> runtime_api::RuntimeVersion { unimplemented!() } - fn authorities() -> Vec { + fn authorities() -> Vec> { unimplemented!() } fn execute_block(_: Block) { diff --git a/core/sr-primitives/src/generic/digest.rs b/core/sr-primitives/src/generic/digest.rs index 1bf53a9c0179f..f2185c23dbdd5 100644 --- a/core/sr-primitives/src/generic/digest.rs +++ b/core/sr-primitives/src/generic/digest.rs @@ -19,7 +19,7 @@ use rstd::prelude::*; use codec::{Decode, Encode, Codec, Input}; -use traits::{self, Member, DigestItem as DigestItemT, MaybeSerializeDebug}; +use traits::{self, Member, DigestItem as DigestItemT, MaybeSerializeDebug, MaybeHash}; use substrate_primitives::hash::H512 as Signature; @@ -124,7 +124,7 @@ impl DigestItem { impl< Hash: Codec + Member + MaybeSerializeDebug, - AuthorityId: Codec + Member + MaybeSerializeDebug + AuthorityId: Codec + Member + MaybeSerializeDebug + MaybeHash > traits::DigestItem for DigestItem { type Hash = Hash; type AuthorityId = AuthorityId; diff --git a/core/sr-primitives/src/testing.rs b/core/sr-primitives/src/testing.rs index acbcd9241dc4f..f552600de9100 100644 --- a/core/sr-primitives/src/testing.rs +++ b/core/sr-primitives/src/testing.rs @@ -19,12 +19,30 @@ use serde::{Serialize, Serializer, Deserialize, de::Error as DeError, Deserializer}; use std::{fmt::Debug, ops::Deref, fmt}; use codec::{Codec, Encode, Decode}; -use traits::{self, Checkable, Applyable, BlakeTwo256}; +use traits::{self, Checkable, Applyable, BlakeTwo256, Convert}; use generic::DigestItem as GenDigestItem; -pub use substrate_primitives::{H256, AuthorityId}; +pub use substrate_primitives::{H256, Ed25519AuthorityId}; +use substrate_primitives::U256; -pub type DigestItem = GenDigestItem; +#[derive(Default, PartialEq, Eq, Clone, Decode, Encode, Debug)] +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +pub struct UintAuthorityId(pub u64); +impl Into for UintAuthorityId { + fn into(self) -> Ed25519AuthorityId { + let bytes: [u8; 32] = U256::from(self.0).into(); + Ed25519AuthorityId(bytes) + } +} + +pub struct ConvertUintAuthorityId; +impl Convert for ConvertUintAuthorityId { + fn convert(a: u64) -> UintAuthorityId { + UintAuthorityId(a) + } +} + +pub type DigestItem = GenDigestItem; #[derive(Default, PartialEq, Eq, Clone, Serialize, Debug, Encode, Decode)] pub struct Digest { diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index 8bdfd7eda6e10..0354953bfbbed 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -413,6 +413,16 @@ pub trait MaybeDisplay {} #[cfg(not(feature = "std"))] impl MaybeDisplay for T {} +#[cfg(feature = "std")] +pub trait MaybeHash: ::rstd::hash::Hash {} +#[cfg(feature = "std")] +impl MaybeHash for T {} + +#[cfg(not(feature = "std"))] +pub trait MaybeHash {} +#[cfg(not(feature = "std"))] +impl MaybeHash for T {} + #[cfg(feature = "std")] pub trait MaybeDecode: ::codec::Decode {} #[cfg(feature = "std")] @@ -500,6 +510,8 @@ pub type NumberFor = <::Header as Header>::Number; pub type DigestFor = <::Header as Header>::Digest; /// Extract the digest item type for a block. pub type DigestItemFor = as Digest>::Item; +/// Extract the authority ID type for a block. +pub type AuthorityIdFor = as DigestItem>::AuthorityId; /// A "checkable" piece of information, used by the standard Substrate Executive in order to /// check the validity of a piece of extrinsic information, usually by verifying the signature. @@ -575,7 +587,7 @@ pub trait Digest: Member + MaybeSerializeDebugButNotDeserialize + Default { /// If the runtime does not supports some 'system' items, use `()` as a stub. pub trait DigestItem: Codec + Member + MaybeSerializeDebugButNotDeserialize { type Hash: Member + MaybeSerializeDebugButNotDeserialize; - type AuthorityId: Member + MaybeSerializeDebugButNotDeserialize; + type AuthorityId: Member + MaybeSerializeDebugButNotDeserialize + MaybeHash + codec::Encode + codec::Decode; /// Returns Some if the entry is the `AuthoritiesChange` entry. fn as_authorities_change(&self) -> Option<&[Self::AuthorityId]>; diff --git a/core/test-runtime/src/genesismap.rs b/core/test-runtime/src/genesismap.rs index 5e6adec86aff5..82e9423f05f01 100644 --- a/core/test-runtime/src/genesismap.rs +++ b/core/test-runtime/src/genesismap.rs @@ -19,23 +19,23 @@ use std::collections::HashMap; use runtime_io::twox_128; use codec::{Encode, KeyedVec, Joiner}; -use primitives::{AuthorityId, ChangesTrieConfiguration}; +use primitives::{Ed25519AuthorityId, ChangesTrieConfiguration}; use primitives::storage::well_known_keys; use runtime_primitives::traits::Block; /// Configuration of a general Substrate test genesis block. pub struct GenesisConfig { pub changes_trie_config: Option, - pub authorities: Vec, - pub balances: Vec<(AuthorityId, u64)>, + pub authorities: Vec, + pub balances: Vec<(Ed25519AuthorityId, u64)>, } impl GenesisConfig { - pub fn new_simple(authorities: Vec, balance: u64) -> Self { + pub fn new_simple(authorities: Vec, balance: u64) -> Self { Self::new(false, authorities, balance) } - pub fn new(support_changes_trie: bool, authorities: Vec, balance: u64) -> Self { + pub fn new(support_changes_trie: bool, authorities: Vec, balance: u64) -> Self { GenesisConfig { changes_trie_config: match support_changes_trie { true => Some(super::changes_trie_config()), diff --git a/core/test-runtime/src/lib.rs b/core/test-runtime/src/lib.rs index cceeee74d114d..8aafd9979130f 100644 --- a/core/test-runtime/src/lib.rs +++ b/core/test-runtime/src/lib.rs @@ -61,8 +61,7 @@ use runtime_primitives::{ }; use runtime_version::RuntimeVersion; pub use primitives::hash::H256; -use primitives::AuthorityId; -use primitives::OpaqueMetadata; +use primitives::{Ed25519AuthorityId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] use runtime_version::NativeVersion; use consensus_aura::api as aura_api; @@ -143,7 +142,7 @@ pub type BlockNumber = u64; /// Index of a transaction. pub type Index = u64; /// The item of a block digest. -pub type DigestItem = runtime_primitives::generic::DigestItem; +pub type DigestItem = runtime_primitives::generic::DigestItem; /// The digest of a block. pub type Digest = runtime_primitives::generic::Digest; /// A test block. @@ -197,7 +196,7 @@ impl_runtime_apis! { version() } - fn authorities() -> Vec { + fn authorities() -> Vec { system::authorities() } diff --git a/core/test-runtime/src/system.rs b/core/test-runtime/src/system.rs index 3703fb553e685..81cbabe90692b 100644 --- a/core/test-runtime/src/system.rs +++ b/core/test-runtime/src/system.rs @@ -25,7 +25,7 @@ use runtime_primitives::generic; use runtime_primitives::{ApplyError, ApplyOutcome, ApplyResult, transaction_validity::TransactionValidity}; use codec::{KeyedVec, Encode}; use super::{AccountId, BlockNumber, Extrinsic, H256 as Hash, Block, Header, Digest}; -use primitives::{Blake2Hasher}; +use primitives::{Ed25519AuthorityId, Blake2Hasher}; use primitives::storage::well_known_keys; const NONCE_OF: &[u8] = b"nonce:"; @@ -51,7 +51,7 @@ pub fn nonce_of(who: AccountId) -> u64 { } /// Get authorities ar given block. -pub fn authorities() -> Vec<::primitives::AuthorityId> { +pub fn authorities() -> Vec { let len: u32 = storage::unhashed::get(well_known_keys::AUTHORITY_COUNT) .expect("There are always authorities in test-runtime"); (0..len) @@ -94,7 +94,7 @@ pub fn execute_block(block: Block) { // check digest let mut digest = Digest::default(); if let Some(storage_changes_root) = storage_changes_root(header.parent_hash.into(), header.number - 1) { - digest.push(generic::DigestItem::ChangesTrieRoot::(storage_changes_root.into())); + digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root.into())); } assert!(digest == header.digest, "Header digest items must match that calculated."); } @@ -164,7 +164,7 @@ pub fn finalise_block() -> Header { let mut digest = Digest::default(); if let Some(storage_changes_root) = storage_changes_root { - digest.push(generic::DigestItem::ChangesTrieRoot::(storage_changes_root)); + digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root)); } Header { diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index 26e86f596bdf8..b2d4b2ed4a4c5 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -16,7 +16,7 @@ //! Substrate chain configurations. -use primitives::{AuthorityId, ed25519}; +use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, @@ -158,7 +158,7 @@ pub fn staging_testnet_config() -> ChainSpec { } /// Helper function to generate AuthorityID from seed -pub fn get_authority_id_from_seed(seed: &str) -> AuthorityId { +pub fn get_authority_id_from_seed(seed: &str) -> Ed25519AuthorityId { let padded_seed = pad_seed(seed); // NOTE from ed25519 impl: // prefer pkcs#8 unless security doesn't matter -- this is used primarily for tests. @@ -167,9 +167,9 @@ pub fn get_authority_id_from_seed(seed: &str) -> AuthorityId { /// Helper function to create GenesisConfig for testing pub fn testnet_genesis( - initial_authorities: Vec, + initial_authorities: Vec, upgrade_key: AccountId, - endowed_accounts: Option>, + endowed_accounts: Option>, ) -> GenesisConfig { let endowed_accounts = endowed_accounts.unwrap_or_else(|| { vec![ diff --git a/node/primitives/src/lib.rs b/node/primitives/src/lib.rs index e2336acafdc48..967b0d775c040 100644 --- a/node/primitives/src/lib.rs +++ b/node/primitives/src/lib.rs @@ -56,7 +56,7 @@ pub type Balance = u128; /// The Ed25519 pub key of an session that belongs to an authority of the chain. This is /// exactly equivalent to what the substrate calls an "authority". -pub type SessionKey = primitives::AuthorityId; +pub type SessionKey = primitives::Ed25519AuthorityId; /// Index of a transaction in the chain. pub type Index = u64; diff --git a/srml/aura/src/mock.rs b/srml/aura/src/mock.rs index 125466c9c048a..eb1fc9756bfa4 100644 --- a/srml/aura/src/mock.rs +++ b/srml/aura/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header}}; +use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {Trait, Module, consensus, system, timestamp}; @@ -34,7 +34,7 @@ pub struct Test; impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } @@ -66,7 +66,7 @@ pub fn new_test_ext(authorities: Vec) -> runtime_io::TestExternalities::default().build_storage().unwrap().0; t.extend(consensus::GenesisConfig::{ code: vec![], - authorities, + authorities: authorities.into_iter().map(|a| UintAuthorityId(a)).collect(), }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 1, diff --git a/srml/consensus/src/lib.rs b/srml/consensus/src/lib.rs index 2c72642cf680e..2a55ac9e1968f 100644 --- a/srml/consensus/src/lib.rs +++ b/srml/consensus/src/lib.rs @@ -143,12 +143,12 @@ impl RawLog { // Implementation for tests outside of this crate. #[cfg(any(feature = "std", test))] -impl From> for primitives::testing::DigestItem where N: Into { +impl From> for primitives::testing::DigestItem where N: Into { fn from(log: RawLog) -> primitives::testing::DigestItem { match log { RawLog::AuthoritiesChange(authorities) => - primitives::generic::DigestItem::AuthoritiesChange - ::(authorities.into_iter() + primitives::generic::DigestItem::AuthoritiesChange( + authorities.into_iter() .map(Into::into).collect()), } } diff --git a/srml/consensus/src/mock.rs b/srml/consensus/src/mock.rs index 5945a89018a2d..78351309acd16 100644 --- a/srml/consensus/src/mock.rs +++ b/srml/consensus/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header}}; +use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {GenesisConfig, Trait, Module, system}; @@ -33,7 +33,7 @@ pub struct Test; impl Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = ::InstantFinalityReportVec<()>; } impl system::Trait for Test { @@ -53,7 +53,7 @@ pub fn new_test_ext(authorities: Vec) -> runtime_io::TestExternalities::default().build_storage().unwrap().0; t.extend(GenesisConfig::{ code: vec![], - authorities, + authorities: authorities.into_iter().map(|a| UintAuthorityId(a)).collect(), }.build_storage().unwrap().0); t.into() } diff --git a/srml/consensus/src/tests.rs b/srml/consensus/src/tests.rs index 9c57739fbc856..9dc65136fbc28 100644 --- a/srml/consensus/src/tests.rs +++ b/srml/consensus/src/tests.rs @@ -18,21 +18,20 @@ #![cfg(test)] -use primitives::{generic, testing, traits::{OnFinalise, ProvideInherent}}; +use primitives::{generic, testing::{self, UintAuthorityId}, traits::{OnFinalise, ProvideInherent}}; use runtime_io::with_externalities; -use substrate_primitives::H256; use mock::{Consensus, System, new_test_ext}; #[test] fn authorities_change_logged() { with_externalities(&mut new_test_ext(vec![1, 2, 3]), || { System::initialise(&1, &Default::default(), &Default::default()); - Consensus::set_authorities(&[4, 5, 6]); + Consensus::set_authorities(&[UintAuthorityId(4), UintAuthorityId(5), UintAuthorityId(6)]); Consensus::on_finalise(1); let header = System::finalise(); assert_eq!(header.digest, testing::Digest { logs: vec![ - generic::DigestItem::AuthoritiesChange::(vec![4, 5, 6]), + generic::DigestItem::AuthoritiesChange(vec![UintAuthorityId(4).into(), UintAuthorityId(5).into(), UintAuthorityId(6).into()]), ], }); }); @@ -54,8 +53,8 @@ fn authorities_change_is_not_logged_when_not_changed() { fn authorities_change_is_not_logged_when_changed_back_to_original() { with_externalities(&mut new_test_ext(vec![1, 2, 3]), || { System::initialise(&1, &Default::default(), &Default::default()); - Consensus::set_authorities(&[4, 5, 6]); - Consensus::set_authorities(&[1, 2, 3]); + Consensus::set_authorities(&[UintAuthorityId(4), UintAuthorityId(5), UintAuthorityId(6)]); + Consensus::set_authorities(&[UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); Consensus::on_finalise(1); let header = System::finalise(); assert_eq!(header.digest, testing::Digest { diff --git a/srml/grandpa/src/lib.rs b/srml/grandpa/src/lib.rs index 50ab852891915..1a0d0f7c31dea 100644 --- a/srml/grandpa/src/lib.rs +++ b/srml/grandpa/src/lib.rs @@ -61,7 +61,7 @@ use runtime_support::dispatch::Result; use runtime_support::storage::StorageValue; use runtime_support::storage::unhashed::StorageVec; use primitives::traits::{CurrentHeight, Convert}; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use system::ensure_signed; use primitives::traits::MaybeSerializeDebug; @@ -105,7 +105,7 @@ impl RawLog { } impl GrandpaChangeSignal for RawLog - where N: Clone, SessionKey: Clone + Into, + where N: Clone, SessionKey: Clone + Into, { fn as_signal(&self) -> Option> { RawLog::as_signal(self).map(|(delay, next_authorities)| ScheduledChange { @@ -243,7 +243,7 @@ impl Module { } } -impl Module where AuthorityId: core::convert::From<::SessionKey> { +impl Module where Ed25519AuthorityId: core::convert::From<::SessionKey> { /// See if the digest contains any scheduled change. pub fn scrape_digest_change(log: &Log) -> Option> diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 6992a5311f9f1..05381e6df97e6 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -248,8 +248,8 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use primitives::BuildStorage; - use primitives::traits::{Identity, BlakeTwo256}; - use primitives::testing::{Digest, DigestItem, Header}; + use primitives::traits::BlakeTwo256; + use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; impl_outer_origin!{ pub enum Origin for Test {} @@ -260,7 +260,7 @@ mod tests { impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl system::Trait for Test { @@ -281,7 +281,7 @@ mod tests { type OnTimestampSet = (); } impl Trait for Test { - type ConvertAccountIdToSessionKey = Identity; + type ConvertAccountIdToSessionKey = ConvertUintAuthorityId; type OnSessionChange = (); type Event = (); } @@ -294,7 +294,7 @@ mod tests { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(consensus::GenesisConfig::{ code: vec![], - authorities: vec![1, 2, 3], + authorities: vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)], }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 5, @@ -309,7 +309,7 @@ mod tests { #[test] fn simple_setup_should_work() { with_externalities(&mut new_test_ext(), || { - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1).into(), UintAuthorityId(2).into(), UintAuthorityId(3).into()]); assert_eq!(Session::length(), 2); assert_eq!(Session::validators(), vec![1, 2, 3]); }); @@ -405,25 +405,25 @@ mod tests { // Block 1: No change System::set_block_number(1); Session::check_rotate_session(1); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 2: Session rollover, but no change. System::set_block_number(2); Session::check_rotate_session(2); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 3: Set new key for validator 2; no visible change. System::set_block_number(3); - assert_ok!(Session::set_key(Origin::signed(2), 5)); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_ok!(Session::set_key(Origin::signed(2), UintAuthorityId(5))); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); Session::check_rotate_session(3); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 4: Session rollover, authority 2 changes. System::set_block_number(4); Session::check_rotate_session(4); - assert_eq!(Consensus::authorities(), vec![1, 5, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(5), UintAuthorityId(3)]); }); } } diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index cf5976f88ae1b..b6efce154d085 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -19,8 +19,8 @@ #![cfg(test)] use primitives::BuildStorage; -use primitives::{Perbill, traits::Identity}; -use primitives::testing::{Digest, DigestItem, Header}; +use primitives::Perbill; +use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; use substrate_primitives::{H256, Blake2Hasher}; use runtime_io; use {GenesisConfig, Module, Trait, consensus, session, system, timestamp, balances}; @@ -35,7 +35,7 @@ pub struct Test; impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl system::Trait for Test { @@ -58,7 +58,7 @@ impl balances::Trait for Test { type Event = (); } impl session::Trait for Test { - type ConvertAccountIdToSessionKey = Identity; + type ConvertAccountIdToSessionKey = ConvertUintAuthorityId; type OnSessionChange = Staking; type Event = (); } diff --git a/srml/system/src/lib.rs b/srml/system/src/lib.rs index ec080219ceadf..68dcfad8efbd6 100644 --- a/srml/system/src/lib.rs +++ b/srml/system/src/lib.rs @@ -178,8 +178,7 @@ impl RawLog { impl From> for primitives::testing::DigestItem { fn from(log: RawLog) -> primitives::testing::DigestItem { match log { - RawLog::ChangesTrieRoot(root) => primitives::generic::DigestItem::ChangesTrieRoot - ::(root), + RawLog::ChangesTrieRoot(root) => primitives::generic::DigestItem::ChangesTrieRoot(root), } } } diff --git a/srml/timestamp/src/lib.rs b/srml/timestamp/src/lib.rs index d89bb50a648ac..0d9360b74771e 100644 --- a/srml/timestamp/src/lib.rs +++ b/srml/timestamp/src/lib.rs @@ -190,7 +190,7 @@ mod tests { use substrate_primitives::H256; use runtime_primitives::BuildStorage; use runtime_primitives::traits::BlakeTwo256; - use runtime_primitives::testing::{Digest, DigestItem, Header}; + use runtime_primitives::testing::{Digest, DigestItem, Header, UintAuthorityId}; impl_outer_origin! { pub enum Origin for Test {} @@ -213,7 +213,7 @@ mod tests { impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl Trait for Test { From 77209362ca6830af919194fdd34bd07f7dbaf92f Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 8 Jan 2019 11:15:42 +0100 Subject: [PATCH 24/44] Updating parking_lot dependencies to 0.7.1 (#1361) --- Cargo.lock | 1318 ++++++++--------- core/client/Cargo.toml | 2 +- core/client/db/Cargo.toml | 2 +- core/consensus/aura/Cargo.toml | 2 +- core/consensus/common/Cargo.toml | 2 +- core/consensus/rhd/Cargo.toml | 2 +- core/executor/Cargo.toml | 2 +- core/executor/wasm/Cargo.lock | 29 +- core/finality-grandpa/Cargo.toml | 2 +- core/network-libp2p/Cargo.toml | 2 +- core/network/Cargo.toml | 2 +- core/service/Cargo.toml | 2 +- core/state-db/Cargo.toml | 2 +- core/state-machine/Cargo.toml | 2 +- core/telemetry/Cargo.toml | 2 +- core/test-runtime/wasm/Cargo.lock | 83 +- .../substrate_test_runtime.compact.wasm | Bin 42266 -> 42281 bytes core/transaction-pool/Cargo.toml | 2 +- core/transaction-pool/graph/Cargo.toml | 2 +- node/rpc/Cargo.toml | 2 +- node/runtime/wasm/Cargo.lock | 83 +- .../release/node_runtime.compact.wasm | Bin 807803 -> 809938 bytes srml/aura/Cargo.toml | 2 +- 23 files changed, 767 insertions(+), 780 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf5313a33880f..bf66d66b91297 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,3 +1,11 @@ +[[package]] +name = "MacTypes-sys" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "aes-ctr" version = "0.1.0" @@ -34,7 +42,7 @@ name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -45,9 +53,9 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -71,7 +79,7 @@ dependencies = [ "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -81,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayvec" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -105,48 +113,46 @@ name = "assert_matches" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "aster" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "autocfg" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.24" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "base-x" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -183,29 +189,23 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.29.1" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", "cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "clang-sys 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi_codegen 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bitflags" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "0.9.1" @@ -231,7 +231,7 @@ name = "blake2-rfc" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -274,7 +274,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -288,7 +288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -323,17 +323,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clang-sys" -version = "0.21.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -356,7 +356,7 @@ name = "clear_on_drop" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -372,7 +372,7 @@ name = "cmake" version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -398,7 +398,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -406,7 +406,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -417,14 +417,14 @@ dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "criterion-plot 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "criterion-stats 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "isatty 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "simplelog 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -452,8 +452,29 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.2.12" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-channel" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "crossbeam-deque" @@ -466,11 +487,11 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -478,7 +499,7 @@ name = "crossbeam-epoch" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -489,12 +510,12 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -510,12 +531,7 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "crossbeam-utils" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -582,7 +598,7 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -593,9 +609,9 @@ dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -629,7 +645,7 @@ dependencies = [ "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -662,9 +678,9 @@ version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -678,7 +694,7 @@ name = "error-chain" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -686,8 +702,8 @@ name = "eth-secp256k1" version = "0.5.7" source = "git+https://github.com/paritytech/rust-secp256k1#ccc06e7480148b723eb44ac56cf4d20eec380b6f" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -699,30 +715,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "exit-future" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -736,7 +752,7 @@ name = "fdlimit" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -759,7 +775,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -789,7 +805,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -819,7 +835,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -840,7 +856,7 @@ name = "getset" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -858,8 +874,8 @@ dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -868,7 +884,7 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -876,7 +892,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -902,7 +918,7 @@ dependencies = [ [[package]] name = "heck" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -944,7 +960,7 @@ name = "http" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -956,7 +972,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "humantime" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -972,8 +988,8 @@ dependencies = [ "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -985,7 +1001,7 @@ name = "hyper" version = "0.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -995,14 +1011,14 @@ dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1030,7 +1046,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1053,7 +1069,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1063,8 +1079,8 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1089,19 +1105,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1114,35 +1130,35 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1150,13 +1166,13 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] @@ -1208,10 +1224,10 @@ dependencies = [ "interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rocksdb 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1231,30 +1247,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazycell" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.43" +version = "0.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "libloading" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libloading" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1263,7 +1269,7 @@ name = "libp2p" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", @@ -1285,8 +1291,8 @@ dependencies = [ "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1295,7 +1301,7 @@ version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1303,13 +1309,13 @@ dependencies = [ "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1323,7 +1329,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1333,17 +1339,17 @@ source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371 dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1352,7 +1358,7 @@ name = "libp2p-identify" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", @@ -1360,10 +1366,10 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1373,10 +1379,10 @@ name = "libp2p-kad" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1387,12 +1393,12 @@ dependencies = [ "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1401,14 +1407,14 @@ name = "libp2p-mplex" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1423,8 +1429,8 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1432,8 +1438,8 @@ name = "libp2p-ping" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1442,8 +1448,8 @@ dependencies = [ "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1456,8 +1462,8 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1465,16 +1471,16 @@ name = "libp2p-relay" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1485,7 +1491,7 @@ source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371 dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", @@ -1493,13 +1499,13 @@ dependencies = [ "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1513,9 +1519,9 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1526,7 +1532,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1538,7 +1544,7 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1552,7 +1558,7 @@ dependencies = [ "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1561,23 +1567,23 @@ name = "libp2p-yamux" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "yamux 0.1.0 (git+https://github.com/paritytech/yamux)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "yamux 0.1.6 (git+https://github.com/paritytech/yamux)", ] [[package]] name = "librocksdb-sys" -version = "5.11.3" +version = "5.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bindgen 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1588,10 +1594,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lock_api" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1649,16 +1655,16 @@ name = "memchr" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "memchr" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1698,8 +1704,8 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1712,7 +1718,7 @@ name = "mio-extras" version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1724,7 +1730,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1747,9 +1753,9 @@ dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1770,12 +1776,12 @@ name = "multistream-select" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1793,15 +1799,15 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1810,7 +1816,7 @@ version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1820,9 +1826,9 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1831,7 +1837,7 @@ name = "node-cli" version = "0.1.0" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1842,7 +1848,7 @@ dependencies = [ "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", - "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-basic-authorship 0.1.0", "substrate-cli 0.3.0", "substrate-client 0.1.0", @@ -1855,7 +1861,7 @@ dependencies = [ "substrate-service 0.3.0", "substrate-service-test 0.3.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1884,7 +1890,7 @@ dependencies = [ "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1894,8 +1900,8 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -1913,7 +1919,7 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", "sr-version 0.1.0", @@ -1946,7 +1952,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "nohash-hasher" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1983,15 +1989,15 @@ name = "num_cpus" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num_cpus" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2015,15 +2021,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl" -version = "0.10.15" +version = "0.10.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2033,11 +2039,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.39" +version = "0.9.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2055,6 +2061,14 @@ dependencies = [ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "owning_ref" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parity-bytes" version = "0.1.0" @@ -2070,8 +2084,8 @@ name = "parity-codec" version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2136,16 +2150,16 @@ name = "parking_lot" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2154,9 +2168,9 @@ name = "parking_lot_core" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2165,10 +2179,10 @@ name = "parking_lot_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2177,10 +2191,10 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2244,7 +2258,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.3.8" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2260,7 +2274,7 @@ dependencies = [ [[package]] name = "protobuf" -version = "2.1.4" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2273,26 +2287,6 @@ dependencies = [ "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "quasi" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "quasi_codegen" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "quick-error" version = "0.1.4" @@ -2308,7 +2302,7 @@ name = "quote" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2325,7 +2319,7 @@ version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2335,7 +2329,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2346,36 +2340,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_chacha" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2401,10 +2394,22 @@ dependencies = [ [[package]] name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_os" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2418,7 +2423,7 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2449,8 +2454,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2471,7 +2476,7 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.40" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2479,7 +2484,7 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2488,7 +2493,7 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2496,12 +2501,12 @@ dependencies = [ [[package]] name = "regex" -version = "1.0.6" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2511,15 +2516,15 @@ name = "regex-syntax" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2549,18 +2554,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rocksdb" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "librocksdb-sys 5.11.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2569,15 +2574,15 @@ version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-demangle" -version = "0.1.9" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2608,9 +2613,9 @@ name = "rw-stream-sink" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2662,17 +2667,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2690,27 +2696,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.80" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.80" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2750,7 +2756,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2775,28 +2781,28 @@ dependencies = [ [[package]] name = "slog-json" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "slog-scope" -version = "4.0.1" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "smallvec" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2814,7 +2820,7 @@ dependencies = [ "substrate-client 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2840,9 +2846,9 @@ dependencies = [ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -2857,8 +2863,8 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2874,8 +2880,8 @@ version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", ] @@ -2887,7 +2893,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2904,8 +2910,8 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2925,7 +2931,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2942,7 +2948,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2960,7 +2966,7 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-sandbox 0.1.0", @@ -2969,7 +2975,7 @@ dependencies = [ "srml-support 0.1.0", "srml-system 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2980,7 +2986,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2999,7 +3005,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3016,7 +3022,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3033,7 +3039,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3050,8 +3056,8 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3068,8 +3074,8 @@ version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", ] @@ -3082,7 +3088,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3101,7 +3107,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3122,7 +3128,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3148,8 +3154,8 @@ dependencies = [ "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3165,7 +3171,7 @@ dependencies = [ "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "srml-support-procedural-tools 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3175,7 +3181,7 @@ dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "srml-support-procedural-tools-derive 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3184,7 +3190,7 @@ version = "0.1.0" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3195,7 +3201,7 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3209,7 +3215,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3226,7 +3232,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3243,7 +3249,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3271,14 +3277,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "stdweb" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3288,29 +3294,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stdweb-internal-macros" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stdweb-internal-runtime" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -3333,22 +3339,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3392,17 +3398,17 @@ dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "srml-support 0.1.0", @@ -3413,8 +3419,8 @@ dependencies = [ "substrate-service 0.3.0", "substrate-telemetry 0.3.0", "sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3431,7 +3437,7 @@ dependencies = [ "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -3458,7 +3464,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-executor 0.1.0", @@ -3479,7 +3485,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-version 0.1.0", @@ -3494,7 +3500,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3519,12 +3525,12 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3532,12 +3538,12 @@ name = "substrate-consensus-rhd" version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3551,7 +3557,7 @@ dependencies = [ "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3565,17 +3571,17 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3588,8 +3594,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-consensus-common 0.1.0", @@ -3599,7 +3605,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3631,9 +3637,9 @@ dependencies = [ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3651,7 +3657,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -3661,7 +3667,7 @@ dependencies = [ "substrate-network-libp2p 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3669,22 +3675,22 @@ name = "substrate-network-libp2p" version = "0.1.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3706,13 +3712,13 @@ dependencies = [ "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-serializer 0.1.0", - "twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3727,11 +3733,11 @@ dependencies = [ "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-client 0.1.0", @@ -3741,7 +3747,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3752,7 +3758,7 @@ dependencies = [ "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-rpc 0.1.0", ] @@ -3761,8 +3767,8 @@ dependencies = [ name = "substrate-serializer" version = "0.1.0" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3770,15 +3776,15 @@ name = "substrate-service" version = "0.3.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3793,7 +3799,7 @@ dependencies = [ "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3811,7 +3817,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3822,7 +3828,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", ] @@ -3835,7 +3841,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -3848,11 +3854,11 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slog-json 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3879,8 +3885,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3900,9 +3906,9 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-test-runtime 0.1.0", ] @@ -3915,7 +3921,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-keyring 0.1.0", @@ -3956,7 +3962,7 @@ name = "syn" version = "0.13.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3973,7 +3979,7 @@ dependencies = [ [[package]] name = "syn" -version = "0.15.22" +version = "0.15.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3988,59 +3994,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "syntex" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_errors" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_pos" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_syntax" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sysinfo" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4066,13 +4030,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4099,8 +4063,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4117,8 +4081,8 @@ name = "thread-id" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4137,11 +4101,11 @@ dependencies = [ [[package]] name = "time" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4155,34 +4119,35 @@ dependencies = [ [[package]] name = "tk-listen" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4190,9 +4155,9 @@ name = "tokio-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4200,26 +4165,26 @@ name = "tokio-core" version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-current-thread" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4230,130 +4195,133 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-executor" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-fs" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-io" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-reactor" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-tcp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-timer" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-tls" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-udp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-uds" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4422,10 +4390,10 @@ dependencies = [ [[package]] name = "twox-hash" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4440,7 +4408,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ucd-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4493,11 +4461,6 @@ name = "unicode-width" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "unicode-xid" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -4524,7 +4487,7 @@ name = "unsigned-varint" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4581,21 +4544,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wabt" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "wabt-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wabt-sys" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4612,7 +4575,7 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4628,19 +4591,27 @@ dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "which" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi" version = "0.2.8" @@ -4693,7 +4664,7 @@ version = "0.7.9" source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4710,12 +4681,12 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4733,7 +4704,7 @@ dependencies = [ [[package]] name = "xdg" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4743,20 +4714,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "yamux" -version = "0.1.0" -source = "git+https://github.com/paritytech/yamux#8f3d16e7645447645d3552a52159d56c8a01de27" +version = "0.1.6" +source = "git+https://github.com/paritytech/yamux#957bccae409e827db4be05abb67d1d6246d5f5c8" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "nohash-hasher 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] +"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" "checksum aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f65958ff3692041c36fc009261ccd63f24cd8e0dc1164266f068c2387e8b4e4f" "checksum aes-soft 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67cc03b0a090a05cb01e96998a01905d7ceedce1bc23b756c0bb7faa0682ccb1" "checksum aesni 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6810b7fb9f2bb4f76f05ac1c170b8dde285b6308955dc3afd89710268c958d9e" @@ -4766,21 +4739,19 @@ dependencies = [ "checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" -"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" -"checksum ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5fc969a8ce2c9c0c4b0429bb8431544f6658283c8326ba5ff8c762b75369335" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "766afdc5c6d7c15de1abe4c9c15e360be3aa972c363ba5b606be3c4271235886" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" -"checksum aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfdf7355d9db158df68f976ed030ab0f6578af811f5a7bb6dcf221ec24e0e0" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" -"checksum base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5cda5d0f5584d129112ad8bf4775b9fd2b9f1e30738c7b1a25314ba2244d6a51" +"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" +"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d55aa264e822dbafa12db4d54767aff17c6ba55ea2d8559b3e17392c7d000e5d" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5032d51da2741729bfdaeb2664d9b8c6d9fd1e2b90715c660b6def36628499c2" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" -"checksum bindgen 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba610cba0c1727ed837316540068b51349b8268c073906067b7c3948598929bd" -"checksum bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4" +"checksum bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1b25ab82877ea8fe6ce1ce1f8ac54361f0218bad900af9eb11803994bf67c221" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73b77e29dbd0115e43938be2d5128ecf81c0353e00acaa65339a1242586951d9" @@ -4791,14 +4762,14 @@ dependencies = [ "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" "checksum byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96c8b41881888cc08af32d47ac4edd52bc7fa27fef774be47a92443756451304" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" +"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum cast 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "011941fb53da1a8ac3e4132a1becc367c44fe13f630769f3143d8c66c91c6cb6" -"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" +"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42aac45e9567d97474a834efdee3081b3c942b2205be932092f53354ce503d6c" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" -"checksum clang-sys 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e414af9726e1d11660801e73ccc7fb81803fb5f49e5903a25b348b2b3b480d2e" +"checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" @@ -4810,14 +4781,14 @@ dependencies = [ "checksum criterion 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f58b0200bf321214bdda8c797cf0071bcc638171c40ec198c3f652a4edaacde3" "checksum criterion-plot 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "885431f7865f9d4956b466126674e5ea40a0f193d42157e56630c356c5501957" "checksum criterion-stats 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c71521cb4c7b7eac76b540e75447fb0172c4234d6333729001b886aaa21d6da4" -"checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" +"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" +"checksum crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "137bc235f622ffaa0428e3854e24acb53291fc0b3ff6fb2cb75a8be6fb02f06b" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" -"checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" +"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" -"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" +"checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" -"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" -"checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816" +"checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" "checksum crypto-mac 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0999b4ff4d3446d4ddb19a63e9e00c1876e75cd7000d20e57a693b4b3f08d958" @@ -4825,7 +4796,7 @@ dependencies = [ "checksum ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b669fcb8e20124db86dbd9b01e74ec0e9e420e65381311ce5249864fc7ff0c0" "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" -"checksum data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67df0571a74bf0d97fb8b2ed22abdd9a48475c96bd327db968b7d9cace99655e" +"checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" "checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" @@ -4840,9 +4811,9 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "" "checksum etrace 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f17311e68ea07046ee809b8513f6c259518bc10173681d98c21f8c3926f56f40" -"checksum exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9aa7b56cef68c4182db7212dece19cc9f6e2916cf9412e57e6cea53ec02f316d" -"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" -"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" +"checksum exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "87559b08e99a81a92bbb867d237543e43495857749f688e0773390a20d56c61c" +"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" +"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" "checksum fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1ee15a7050e5580b3712877157068ea713b245b080ff302ae2ca973cfcd9baa" "checksum finality-grandpa 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a1dffe3c9d4c59d964f25cea31880e56c20414cdae7efe2269411238f850ad39" @@ -4864,14 +4835,14 @@ dependencies = [ "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" -"checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" +"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4da5f0e01bd8a71a224a4eedecaacfcabda388dbb7a80faf04d3514287572d95" "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "733e1b3ac906631ca01ebb577e9bb0f5e37a454032b9036b5eaea4013ed6f99a" "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" -"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" +"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" "checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" @@ -4899,9 +4870,8 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0" -"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" +"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" "checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" @@ -4920,9 +4890,9 @@ dependencies = [ "checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum librocksdb-sys 5.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0fa7f4ca5ceff76237db63802cb073d84e64a327e38478e79a669093fb7fa5" +"checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" -"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" +"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum lru 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6f5fb2abee91622dfb5fbcf2f277dc8c421c9259c6ce5484eee46ab7ae2282d6" @@ -4931,7 +4901,7 @@ dependencies = [ "checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" +"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" @@ -4948,21 +4918,22 @@ dependencies = [ "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum nohash-hasher 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "27593c72432b8cec9ae79e92792a73c38341064d525b6b612a9fccf8b7d17407" +"checksum nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d138afcce92d219ccb6eb53d9b1e8a96ac0d633cfd3c53cd9856d96d1741bb8" "checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3" -"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" +"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7" -"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" +"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5168b4cf41f3835e4bc6ffb32f51bc9365dc50cb351904595b3931d917fd0c" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -4973,7 +4944,7 @@ dependencies = [ "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" @@ -4985,12 +4956,10 @@ dependencies = [ "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" -"checksum proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7" +"checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" -"checksum protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "671a9cce836bd3635b40b2b0a72783481755ee988c493891f4e974b45264cc9d" +"checksum protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eae0479da11de87d371fa47eb033059715ffa8f714748da20aa364d56ec5bee2" "checksum pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "efd695333cfae6e9dbe2703a6d040e252b57a6fc3b9a65c712615ac042b2e0c5" -"checksum quasi 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18c45c4854d6d1cf5d531db97c75880feb91c958b0720f4ec1057135fec358b3" -"checksum quasi_codegen 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9e25fa23c044c1803f43ca59c98dac608976dd04ce799411edd58ece776d4" "checksum quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb6ccf8db7bbcb9c2eae558db5ab4f3da1c2a87e4e597ed394726bc8ea6ca1d" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" @@ -4998,30 +4967,31 @@ dependencies = [ "checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1" "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de3f08319b5395bd19b70e73c4c465329495db02dafeb8ca711a20f1c2bd058c" -"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" +"checksum rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b65e163105a6284f841bd23100a015895f54340e88a5ffc9ca7b8b33827cfce0" +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6ecfe9ebf36acd47a49d150990b047a5f7db0a7236ee2414b7ff5cc1097c7b" +"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de5ac4de1c2973e1391dc305cb0fbf8788cb58068e98255439b7485a77022273" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" -"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c747d743d48233f9bc3ed3fb00cb84c1d98d8c7f54ed2d4cca9adf461a7ef3" -"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -"checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467" +"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" -"checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e" +"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a09bc21b21795c366c8bf0e87afb71175f5f736b3a5b279b6f4e81839d0a877b" "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" -"checksum rocksdb 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a806011ca1d26f37729ed4dc78afd607cc86d37ee913718108b0b267e768d46f" +"checksum rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39be726e556e6f21d54d21cdf1be9f6df30c0411a5856c1abf3f4bb12498f2ed" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" @@ -5035,12 +5005,12 @@ dependencies = [ "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" -"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" +"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" -"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" -"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" +"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" +"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" +"checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" "checksum sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "171698ce4ec7cbb93babeb3190021b4d72e96ccb98e33d277ae4ea959d6f2d9e" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" "checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" @@ -5049,36 +5019,32 @@ dependencies = [ "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" "checksum slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1e1a2eec401952cd7b12a84ea120e2d57281329940c3f93c2bf04f462539508e" "checksum slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e544d16c6b230d84c866662fe55e31aacfca6ae71e6fc49ae9a311cb379bfc2f" -"checksum slog-json 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddd14b8df2df39378b3e933c79784350bf715b11444d99f903df0253bbe524e5" -"checksum slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "053344c94c0e2b22da6305efddb698d7c485809427cf40555dc936085f67a9df" -"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" +"checksum slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a" +"checksum slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60c04b4726fa04595ccf2c2dad7bcd15474242c4c5e109a8a376e8a2c9b1539a" +"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" -"checksum stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "22203527a18dc1c5c83bbd247fb005f5877d040783b6626571d6b7ed7a6f5e75" +"checksum stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b84f9c829ef7d2e6abf1965393b231c0fd495f0293d612f32dbadd637e91fd0d" "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" -"checksum stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbc9155af9606d44c740197d7d6672b49c4ee93a176c7cecde8b49322677604" -"checksum stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b74fe9de4c0d07e91987f4d798b95f27f3cb7769fbc222fa951fa386908297b5" +"checksum stdweb-internal-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d60e306bddd5d213f86f7b417b6cdcefbf742917414ac9dda6e9750ef4553dce" +"checksum stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a2a2f4a2eb556337b2d1a302630bbddf989ae383c70393e89b48152b9896cbda" "checksum stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "30dc6118470d69ce0fdcf7e6f95e95853f7f4f72f80d835d4519577c323814ab" "checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "41c4a2479a078509940d82773d90ff824a8c89533ab3b59cd3ce8b0c0e369c02" -"checksum structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "5352090cfae7a2c85e1a31146268b53396106c88ca5d6ccee2e3fae83b6e35c2" +"checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" +"checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" "checksum subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc7f6353c2ee5407358d063a14cccc1630804527090a6fb5a9489ce4924280fb" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)" = "14f9bf6292f3a61d2c716723fdb789a41bbe104168e6f496dc6497e531ea1b9b" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" +"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum syntex 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a8f5e3aaa79319573d19938ea38d068056b826db9883a5d47f86c1cecc688f0e" -"checksum syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "867cc5c2d7140ae7eaad2ae9e8bf39cb18a67ca651b7834f88d46ca98faadb9c" -"checksum syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13ad4762fe52abc9f4008e85c4fb1b1fe3aa91ccb99ff4826a439c7c598e1047" -"checksum syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6e0e4dbae163dd98989464c23dd503161b338790640e11537686f2ef0f25c791" "checksum sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c747a1fbe091faa7bf76c19f40099f9f12495384c811485d81cf3d60c0eae62" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b" +"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" "checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" @@ -5086,24 +5052,24 @@ dependencies = [ "checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" +"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" -"checksum tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dec7ba6a80b7695fc2abb21af18bed445a362ffd80b64704771ce142d6d2151d" -"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895" +"checksum tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5462b0f968c0457efe38fcd2df7e487096b992419e4f5337b06775a614bbda4b" +"checksum tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4790d0be6f4ba6ae4f48190efa2ed7780c9e3567796abdb285003cf39840d9c5" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" "checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" -"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c" +"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" "checksum tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb9bf62ca2c53bf2f2faec3e48a98b6d8c9577c27011cb0203a4beacdc8ab328" -"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" -"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" -"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" -"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018" -"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" -"checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68" -"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e" -"checksum tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e53fdbf3156f588be1676022fe794232b24922d426e8c14f4e46891c1e31c440" -"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c" -"checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70" +"checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" +"checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d" +"checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" +"checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" +"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" +"checksum tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "17465013014410310f9f61fa10bf4724803c149ea1d51efece131c38efca93aa" +"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" +"checksum tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" +"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" +"checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum trie-bench 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum trie-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" @@ -5111,10 +5077,10 @@ dependencies = [ "checksum trie-standardmap 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1eef327f05b0d0ec1b9d7d119d8f4d9f602ceee37e0540aff8071e8e66c2e22e" -"checksum twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4f85be565a110ed72ed7048cf56570db04ce0a592c98aa59b7dacde3e5718750" +"checksum twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "555cd4909480122bbbf21e34faac4cb08a171f324775670447ed116726c474af" "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" -"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" +"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "082df6964410f6aa929a61ddfafc997e4f32c62c22490e439ac351cec827f436" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" @@ -5122,7 +5088,6 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c1441164e5da61f00acd15f5a9e61939693c2c6e8b9fae36a220b82de7e212" @@ -5135,11 +5100,12 @@ dependencies = [ "checksum vergen 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "93fb2d57fbc535fcd45548c99b141d2d960995daaf04b864c4d9fe1ea011c819" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff1f0f87e467255240c1faf5cf13a04410723407840d7733e75967224e191a5" -"checksum wabt-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0cc8982bfe0a923f152e96d991e50a6f97fe73ca4af6d9d84d76634f03051fa2" +"checksum wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0246aa1834c47c5f3dd87c0932a2c78edd1e9318ced5e92a41f30a0ab4e3a91f" +"checksum wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "462336bb61096e64761730e0dea1bc8b777bd4e3689c7e813c81f1cfdf4e8a51" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" -"checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" +"checksum wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" "checksum websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9faed2bff8af2ea6b9f8b917d3d00b467583f6781fe3def174a9e33c879703" +"checksum which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" @@ -5150,6 +5116,6 @@ dependencies = [ "checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" "checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -"checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61" +"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" -"checksum yamux 0.1.0 (git+https://github.com/paritytech/yamux)" = "" +"checksum yamux 0.1.6 (git+https://github.com/paritytech/yamux)" = "" diff --git a/core/client/Cargo.toml b/core/client/Cargo.toml index 1da261cb4bc69..82a72920dad00 100644 --- a/core/client/Cargo.toml +++ b/core/client/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] error-chain = { version = "0.12", optional = true } fnv = { version = "1.0", optional = true } log = { version = "0.4", optional = true } -parking_lot = { version = "0.4", optional = true } +parking_lot = { version = "0.7.1", optional = true } hex-literal = { version = "0.1", optional = true } futures = { version = "0.1.17", optional = true } slog = { version = "^2", optional = true } diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index 9536fe803af0c..a228a8e9cab05 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -parking_lot = "0.4" +parking_lot = "0.7.1" log = "0.4" kvdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index dee59d8f06abc..f1b569c91f0dc 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -17,7 +17,7 @@ substrate-consensus-aura-primitives = { path = "primitives" } srml-consensus = { path = "../../../srml/consensus" } futures = "0.1.17" tokio = "0.1.7" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" log = "0.3" substrate-consensus-common = { path = "../common" } diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index 7f95b39a14e7e..e204e7c36d33a 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -6,7 +6,7 @@ description = "Common utilities for substrate consensus" [dependencies] log = "0.4" -parking_lot = "0.7" +parking_lot = "0.7.1" substrate-primitives = { path= "../../primitives" } error-chain = "0.12" futures = "0.1" diff --git a/core/consensus/rhd/Cargo.toml b/core/consensus/rhd/Cargo.toml index dce6a6d7f445a..3aae924115181 100644 --- a/core/consensus/rhd/Cargo.toml +++ b/core/consensus/rhd/Cargo.toml @@ -19,7 +19,7 @@ sr-primitives = { path = "../../sr-primitives" } sr-version = { path = "../../sr-version" } sr-io = { path = "../../sr-io" } tokio = "0.1.7" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" log = "0.4" rhododendron = { version = "0.4.0", features = ["codec"] } diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index dcea860163e71..594a34f964153 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -17,7 +17,7 @@ serde_derive = "1.0" wasmi = { version = "0.4.2" } byteorder = "1.1" lazy_static = "1.0" -parking_lot = "*" +parking_lot = "0.7.1" log = "0.4" [dev-dependencies] diff --git a/core/executor/wasm/Cargo.lock b/core/executor/wasm/Cargo.lock index d5f2b2cacb54e..97ac5c5d6f1db 100644 --- a/core/executor/wasm/Cargo.lock +++ b/core/executor/wasm/Cargo.lock @@ -42,6 +42,14 @@ dependencies = [ "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "nodrop" version = "0.1.12" @@ -65,6 +73,17 @@ dependencies = [ "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro2" version = "0.4.19" @@ -159,16 +178,14 @@ name = "substrate-primitives" version = "0.1.0" dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", - "uint 0.5.0-beta.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -183,7 +200,7 @@ dependencies = [ [[package]] name = "uint" -version = "0.5.0-beta.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -204,9 +221,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" +"checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" "checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" @@ -216,5 +235,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum uint 0.5.0-beta.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4630460173a57c0af94b8306091e018025d988473f641a4af754b6cde980e1e3" +"checksum uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "082df6964410f6aa929a61ddfafc997e4f32c62c22490e439ac351cec827f436" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" diff --git a/core/finality-grandpa/Cargo.toml b/core/finality-grandpa/Cargo.toml index 017eca9449c36..2bef01f193d3e 100644 --- a/core/finality-grandpa/Cargo.toml +++ b/core/finality-grandpa/Cargo.toml @@ -14,7 +14,7 @@ substrate-client = { path = "../client" } substrate-network = { path = "../network" } substrate-service = { path = "../service", optional = true } log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" tokio = "0.1.7" substrate-finality-grandpa-primitives = { path = "primitives" } rand = "0.6" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 6b0fb9af40177..d02652daa6883 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -12,7 +12,7 @@ error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "d961e656a74d1bab5366d371a06f9e10d5f4a6c5", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } -parking_lot = "0.5" +parking_lot = "0.7.1" libc = "0.2" log = "0.4" rand = "0.5.0" diff --git a/core/network/Cargo.toml b/core/network/Cargo.toml index 7eadefb3637f3..221036032eb3d 100644 --- a/core/network/Cargo.toml +++ b/core/network/Cargo.toml @@ -9,7 +9,7 @@ authors = ["Parity Technologies "] [dependencies] log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" bitflags = "1.0" futures = "0.1.17" diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index 7d5e931c95a3f..f8f2589c2c504 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] futures = "0.1.17" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" lazy_static = "1.0" log = "0.4" diff --git a/core/state-db/Cargo.toml b/core/state-db/Cargo.toml index bef12d1ae6a61..1806bce40385d 100644 --- a/core/state-db/Cargo.toml +++ b/core/state-db/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -parking_lot = "0.5" +parking_lot = "0.7.1" log = "0.4" substrate-primitives = { path = "../../core/primitives" } parity-codec = "2.1" diff --git a/core/state-machine/Cargo.toml b/core/state-machine/Cargo.toml index c0254116feee8..6ae2ae1655ba5 100644 --- a/core/state-machine/Cargo.toml +++ b/core/state-machine/Cargo.toml @@ -7,7 +7,7 @@ description = "Substrate State Machine" [dependencies] hex-literal = "0.1.0" log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" heapsize = "0.4" hash-db = { git = "https://github.com/paritytech/trie" } trie-db = { git = "https://github.com/paritytech/trie" } diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index c74cb956d7ed2..7dda91279254c 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] description = "Telemetry utils" [dependencies] -parking_lot = "0.4" +parking_lot = "0.7.1" lazy_static = "1.0" log = "0.4" slog = "^2" diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 8721c4d21b369..bdd4fd0534be2 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -298,6 +298,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "integer-sqrt" version = "0.1.2" @@ -537,14 +554,6 @@ dependencies = [ "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -585,15 +594,6 @@ dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot" version = "0.6.4" @@ -605,24 +605,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot_core" version = "0.3.1" @@ -657,6 +646,18 @@ name = "pkg-config" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -1078,7 +1079,7 @@ dependencies = [ "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -1115,7 +1116,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", @@ -1131,7 +1132,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1159,20 +1160,19 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1194,7 +1194,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -1207,7 +1207,7 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1486,6 +1486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1647,6 +1648,8 @@ dependencies = [ "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" @@ -1677,20 +1680,18 @@ dependencies = [ "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" -"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6..81ebc41cba2fd76b0f351690a23482ac162df581 100644 GIT binary patch delta 2416 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 diff --git a/core/transaction-pool/Cargo.toml b/core/transaction-pool/Cargo.toml index 93768f16d2264..e2f19b839a81d 100644 --- a/core/transaction-pool/Cargo.toml +++ b/core/transaction-pool/Cargo.toml @@ -8,7 +8,7 @@ error-chain = "0.12" futures = "0.1" log = "0.4" parity-codec = "2.1" -parking_lot = "0.4" +parking_lot = "0.7.1" sr-primitives = { path = "../sr-primitives" } substrate-client = { path = "../client" } substrate-primitives = { path = "../primitives" } diff --git a/core/transaction-pool/graph/Cargo.toml b/core/transaction-pool/graph/Cargo.toml index 9c154d4b3a405..7910e10d9fd75 100644 --- a/core/transaction-pool/graph/Cargo.toml +++ b/core/transaction-pool/graph/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] error-chain = "0.12" futures = "0.1" log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" serde = "1.0" serde_derive = "1.0" sr-primitives = { path = "../../sr-primitives" } diff --git a/node/rpc/Cargo.toml b/node/rpc/Cargo.toml index e6d39f709325e..1e4ea9896b51b 100644 --- a/node/rpc/Cargo.toml +++ b/node/rpc/Cargo.toml @@ -9,7 +9,7 @@ jsonrpc-core = { git="https://github.com/paritytech/jsonrpc.git" } jsonrpc-macros = { git="https://github.com/paritytech/jsonrpc.git" } jsonrpc-pubsub = { git="https://github.com/paritytech/jsonrpc.git" } log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" parity-codec = "2.1" serde = "1.0" serde_derive = "1.0" diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index ab578ac885445..1a8cd74f4e139 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -298,6 +298,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "integer-sqrt" version = "0.1.2" @@ -594,14 +611,6 @@ dependencies = [ "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -642,15 +651,6 @@ dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot" version = "0.6.4" @@ -662,24 +662,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot_core" version = "0.3.1" @@ -714,6 +703,18 @@ name = "pkg-config" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -1438,7 +1439,7 @@ dependencies = [ "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -1475,7 +1476,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", @@ -1491,7 +1492,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1531,20 +1532,19 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1566,7 +1566,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -1579,7 +1579,7 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1830,6 +1830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1991,6 +1992,8 @@ dependencies = [ "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" @@ -2021,20 +2024,18 @@ dependencies = [ "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" -"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index b7c15d3bfc806b744e19f2f13d9837b14074b74a..b73bd2e691a2704cdf31e0ba762d627c57ed11c1 100644 GIT binary patch delta 157366 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 Xoy|`+ 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 delta 155376 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 diff --git a/srml/aura/Cargo.toml b/srml/aura/Cargo.toml index 2c8ea28eb8a87..6d9e8dd35e508 100644 --- a/srml/aura/Cargo.toml +++ b/srml/aura/Cargo.toml @@ -20,7 +20,7 @@ srml-staking = { path = "../staking", default-features = false } [dev-dependencies] lazy_static = "1.0" -parking_lot = "0.6" +parking_lot = "0.7.1" [features] default = ["std"] From e947581ce9d49027d51a7be112ca08a8ca45c0c9 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 8 Jan 2019 12:30:45 +0100 Subject: [PATCH 25/44] Expose all authorship APIs (#1366) --- core/basic-authorship/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/basic-authorship/src/lib.rs b/core/basic-authorship/src/lib.rs index 44caadea3c62c..0d7e31075084e 100644 --- a/core/basic-authorship/src/lib.rs +++ b/core/basic-authorship/src/lib.rs @@ -31,4 +31,4 @@ extern crate log; mod basic_authorship; -pub use basic_authorship::ProposerFactory; +pub use basic_authorship::{ProposerFactory, BlockBuilder, AuthoringApi, Proposer}; From 1ad59f3636b3dc5febf4484bed8e46565bde698a Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Tue, 8 Jan 2019 15:13:13 +0300 Subject: [PATCH 26/44] State cache and other performance optimizations (#1345) * State caching * Better code caching * Execution optimizaton * More optimizations * Updated wasmi * Caching test * Style * Style * Reverted some minor changes * Style and typos * Style and typos * Removed panics on missing memory --- Cargo.lock | 16 +- core/client/db/Cargo.toml | 1 + core/client/db/src/lib.rs | 88 ++-- core/client/db/src/storage_cache.rs | 416 ++++++++++++++++++ core/client/src/backend.rs | 8 +- core/client/src/call_executor.rs | 67 +-- core/client/src/client.rs | 14 +- core/client/src/in_mem.rs | 6 +- core/client/src/lib.rs | 2 +- core/client/src/light/backend.rs | 7 +- core/client/src/light/call_executor.rs | 14 +- core/client/src/light/fetcher.rs | 12 +- core/executor/src/lib.rs | 5 - core/executor/src/native_executor.rs | 123 +++--- core/executor/src/wasm_executor.rs | 123 +++--- core/network/src/on_demand.rs | 17 +- core/state-machine/src/backend.rs | 9 +- core/state-machine/src/ext.rs | 5 + core/state-machine/src/lib.rs | 28 +- core/state-machine/src/overlayed_changes.rs | 2 +- core/state-machine/src/testing.rs | 17 +- .../substrate_test_runtime.compact.wasm | Bin 42281 -> 41771 bytes node/executor/src/lib.rs | 78 ++-- node/rpc/src/lib.rs | 1 - node/rpc/src/state/mod.rs | 3 +- .../release/node_runtime.compact.wasm | Bin 809938 -> 808984 bytes 26 files changed, 793 insertions(+), 269 deletions(-) create mode 100644 core/client/db/src/storage_cache.rs diff --git a/Cargo.lock b/Cargo.lock index bf66d66b91297..1b66b2ec2d824 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1587,6 +1587,11 @@ dependencies = [ "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "linked-hash-map" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "linked-hash-map" version = "0.5.1" @@ -1618,9 +1623,12 @@ dependencies = [ ] [[package]] -name = "lru" -version = "0.1.11" +name = "lru-cache" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "make-cmd" @@ -3462,6 +3470,7 @@ dependencies = [ "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4891,11 +4900,12 @@ dependencies = [ "checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" +"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" -"checksum lru 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6f5fb2abee91622dfb5fbcf2f277dc8c421c9259c6ce5484eee46ab7ae2282d6" +"checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21" "checksum make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8ca8afbe8af1785e09636acb5a41e08a765f5f0340568716c18a8700ba3c0d3" "checksum mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" "checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index a228a8e9cab05..77dd4d9bf8d94 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -8,6 +8,7 @@ parking_lot = "0.7.1" log = "0.4" kvdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +lru-cache = "0.1" hash-db = { git = "https://github.com/paritytech/trie" } substrate-primitives = { path = "../../primitives" } sr-primitives = { path = "../../sr-primitives" } diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 371f0a4013a3e..f663cc0834d33 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -29,6 +29,7 @@ extern crate kvdb_rocksdb; extern crate kvdb; extern crate hash_db; extern crate parking_lot; +extern crate lru_cache; extern crate substrate_state_machine as state_machine; extern crate substrate_primitives as primitives; extern crate sr_primitives as runtime_primitives; @@ -52,6 +53,7 @@ extern crate kvdb_memorydb; pub mod light; mod cache; +mod storage_cache; mod utils; use std::sync::Arc; @@ -75,10 +77,12 @@ use state_machine::{CodeExecutor, DBValue, ExecutionStrategy}; use utils::{Meta, db_err, meta_keys, open_database, read_db, block_id_to_lookup_key, read_meta}; use client::LeafSet; use state_db::StateDb; +use storage_cache::{CachingState, SharedCache, new_shared_cache}; pub use state_db::PruningMode; const CANONICALIZATION_DELAY: u64 = 256; const MIN_BLOCKS_TO_KEEP_CHANGES_TRIES_FOR: u64 = 32768; +const STATE_CACHE_SIZE_BYTES: usize = 16 * 1024 * 1024; /// DB-backed patricia trie state, transaction type is an overlay of changes to commit. pub type DbState = state_machine::TrieBackend>, Blake2Hasher>; @@ -270,8 +274,9 @@ impl client::blockchain::Backend for BlockchainDb { /// Database transaction pub struct BlockImportOperation { - old_state: DbState, - updates: MemoryDB, + old_state: CachingState, + db_updates: MemoryDB, + storage_updates: Vec<(Vec, Option>)>, changes_trie_updates: MemoryDB, pending_block: Option>, aux_ops: Vec<(Vec, Option>)>, @@ -292,7 +297,7 @@ impl client::backend::BlockImportOperation for BlockImportOperation where Block: BlockT, { - type State = DbState; + type State = CachingState; fn state(&self) -> Result, client::error::Error> { Ok(Some(&self.old_state)) @@ -319,8 +324,8 @@ where Block: BlockT, // currently authorities are not cached on full nodes } - fn update_storage(&mut self, update: MemoryDB) -> Result<(), client::error::Error> { - self.updates = update; + fn update_db_storage(&mut self, update: MemoryDB) -> Result<(), client::error::Error> { + self.db_updates = update; Ok(()) } @@ -349,7 +354,7 @@ where Block: BlockT, let (root, update) = self.old_state.storage_root(top.into_iter().map(|(k, v)| (k, Some(v)))); transaction.consolidate(update); - self.updates = transaction; + self.db_updates = transaction; Ok(root) } @@ -364,6 +369,11 @@ where Block: BlockT, self.aux_ops = ops.into_iter().collect(); Ok(()) } + + fn update_storage(&mut self, update: Vec<(Vec, Option>)>) -> Result<(), client::error::Error> { + self.storage_updates = update; + Ok(()) + } } struct StorageDb { @@ -503,6 +513,7 @@ pub struct Backend { changes_tries_storage: DbChangesTrieStorage, blockchain: BlockchainDb, canonicalization_delay: u64, + shared_cache: SharedCache, } impl Backend { @@ -550,6 +561,7 @@ impl Backend { changes_tries_storage, blockchain, canonicalization_delay, + shared_cache: new_shared_cache(STATE_CACHE_SIZE_BYTES), }) } @@ -669,7 +681,7 @@ impl client::backend::AuxStore for Backend where Block: BlockT client::backend::Backend for Backend where Block: BlockT { type BlockImportOperation = BlockImportOperation; type Blockchain = BlockchainDb; - type State = DbState; + type State = CachingState; type ChangesTrieStorage = DbChangesTrieStorage; fn begin_operation(&self, block: BlockId) -> Result { @@ -677,7 +689,8 @@ impl client::backend::Backend for Backend whe Ok(BlockImportOperation { pending_block: None, old_state: state, - updates: MemoryDB::default(), + db_updates: MemoryDB::default(), + storage_updates: Default::default(), changes_trie_updates: MemoryDB::default(), aux_ops: Vec::new(), }) @@ -697,6 +710,9 @@ impl client::backend::Backend for Backend whe // blocks are keyed by number + hash. let lookup_key = ::utils::number_and_hash_to_lookup_key(number, hash); + let mut enacted = Vec::default(); + let mut retracted = Vec::default(); + if pending_block.leaf_state.is_best() { let meta = self.blockchain.meta.read(); @@ -710,10 +726,11 @@ impl client::backend::Backend for Backend whe // uncanonicalize: check safety violations and ensure the numbers no longer // point to these block hashes in the key mapping. - for retracted in tree_route.retracted() { - if retracted.hash == meta.finalized_hash { + for r in tree_route.retracted() { + retracted.push(r.hash.clone()); + if r.hash == meta.finalized_hash { warn!("Potential safety failure: reverting finalized block {:?}", - (&retracted.number, &retracted.hash)); + (&r.number, &r.hash)); return Err(::client::error::ErrorKind::NotInFinalizedChain.into()); } @@ -721,17 +738,18 @@ impl client::backend::Backend for Backend whe ::utils::remove_number_to_key_mapping( &mut transaction, columns::KEY_LOOKUP, - retracted.number + r.number ); } // canonicalize: set the number lookup to map to this block's hash. - for enacted in tree_route.enacted() { + for e in tree_route.enacted() { + enacted.push(e.hash.clone()); ::utils::insert_number_to_key_mapping( &mut transaction, columns::KEY_LOOKUP, - enacted.number, - enacted.hash + e.number, + e.hash ); } } @@ -766,7 +784,7 @@ impl client::backend::Backend for Backend whe } let mut changeset: state_db::ChangeSet = state_db::ChangeSet::default(); - for (key, (val, rc)) in operation.updates.drain() { + for (key, (val, rc)) in operation.db_updates.drain() { if rc > 0 { changeset.inserted.push((key, val.to_vec())); } else if rc < 0 { @@ -792,8 +810,8 @@ impl client::backend::Backend for Backend whe self.force_delayed_canonicalize(&mut transaction, hash, *pending_block.header.number())? } - debug!(target: "db", "DB Commit {:?} ({}), best = {}", hash, number, - pending_block.leaf_state.is_best()); + let is_best = pending_block.leaf_state.is_best(); + debug!(target: "db", "DB Commit {:?} ({}), best = {}", hash, number, is_best); { let mut leaves = self.blockchain.leaves.write(); @@ -817,6 +835,16 @@ impl client::backend::Backend for Backend whe pending_block.leaf_state.is_best(), finalized, ); + + // sync canonical state cache + operation.old_state.sync_cache( + &enacted, + &retracted, + operation.storage_updates, + Some(hash), + Some(number), + || is_best + ); } Ok(()) } @@ -898,7 +926,8 @@ impl client::backend::Backend for Backend whe BlockId::Hash(h) if h == Default::default() => { let genesis_storage = DbGenesisStorage::new(); let root = genesis_storage.0.clone(); - return Ok(DbState::new(Arc::new(genesis_storage), root)); + let state = DbState::new(Arc::new(genesis_storage), root); + return Ok(CachingState::new(state, self.shared_cache.clone(), None)); }, _ => {} } @@ -906,12 +935,21 @@ impl client::backend::Backend for Backend whe match self.blockchain.header(block) { Ok(Some(ref hdr)) if !self.storage.state_db.is_pruned(hdr.number().as_()) => { let root = H256::from_slice(hdr.state_root().as_ref()); - Ok(DbState::new(self.storage.clone(), root)) + let state = DbState::new(self.storage.clone(), root); + Ok(CachingState::new(state, self.shared_cache.clone(), Some(hdr.hash()))) }, Err(e) => Err(e), _ => Err(client::error::ErrorKind::UnknownBlock(format!("{:?}", block)).into()), } } + + fn destroy_state(&self, mut state: Self::State) -> Result<(), client::error::Error> { + if let Some(hash) = state.parent_hash.clone() { + let is_best = || self.blockchain.meta.read().best_hash == hash; + state.sync_cache(&[], &[], vec![], None, None, is_best); + } + Ok(()) + } } impl client::backend::LocalBackend for Backend @@ -1092,7 +1130,7 @@ mod tests { ]; let (root, overlay) = op.old_state.storage_root(storage.iter().cloned()); - op.update_storage(overlay).unwrap(); + op.update_db_storage(overlay).unwrap(); header.state_root = root.into(); op.set_block_data( @@ -1138,7 +1176,7 @@ mod tests { op.reset_storage(storage.iter().cloned().collect(), Default::default()).unwrap(); - key = op.updates.insert(b"hello"); + key = op.db_updates.insert(b"hello"); op.set_block_data( header, Some(vec![]), @@ -1171,8 +1209,8 @@ mod tests { ).0.into(); let hash = header.hash(); - op.updates.insert(b"hello"); - op.updates.remove(&key); + op.db_updates.insert(b"hello"); + op.db_updates.remove(&key); op.set_block_data( header, Some(vec![]), @@ -1204,7 +1242,7 @@ mod tests { .map(|(x, y)| (x, Some(y))) ).0.into(); - op.updates.remove(&key); + op.db_updates.remove(&key); op.set_block_data( header, Some(vec![]), diff --git a/core/client/db/src/storage_cache.rs b/core/client/db/src/storage_cache.rs new file mode 100644 index 0000000000000..27d5cec088769 --- /dev/null +++ b/core/client/db/src/storage_cache.rs @@ -0,0 +1,416 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! Global cache state. + +use std::collections::{VecDeque, HashSet, HashMap}; +use std::sync::Arc; +use parking_lot::{Mutex, RwLock, RwLockUpgradableReadGuard}; +use lru_cache::LruCache; +use hash_db::Hasher; +use runtime_primitives::traits::{Block, Header}; +use state_machine::{backend::Backend as StateBackend, TrieBackend}; + +const STATE_CACHE_BLOCKS: usize = 12; + +type StorageKey = Vec; +type StorageValue = Vec; + +/// Shared canonical state cache. +pub struct Cache { + /// Storage cache. `None` indicates that key is known to be missing. + storage: LruCache>, + /// Storage hashes cache. `None` indicates that key is known to be missing. + hashes: LruCache>, + /// Information on the modifications in recently committed blocks; specifically which keys + /// changed in which block. Ordered by block number. + modifications: VecDeque>, +} + +pub type SharedCache = Arc>>; + +/// Create new shared cache instance with given max memory usage. +pub fn new_shared_cache(shared_cache_size: usize) -> SharedCache { + let cache_items = shared_cache_size / 100; // Estimated average item size. TODO: more accurate tracking + Arc::new(Mutex::new(Cache { + storage: LruCache::new(cache_items), + hashes: LruCache::new(cache_items), + modifications: VecDeque::new(), + })) +} + +#[derive(Debug)] +/// Accumulates a list of storage changed in a block. +struct BlockChanges { + /// Block number. + number: B::Number, + /// Block hash. + hash: B::Hash, + /// Parent block hash. + parent: B::Hash, + /// A set of modified storage keys. + storage: HashSet, + /// Block is part of the canonical chain. + is_canon: bool, +} + +/// Cached values specific to a state. +struct LocalCache { + /// Storage cache. `None` indicates that key is known to be missing. + storage: HashMap>, + /// Storage hashes cache. `None` indicates that key is known to be missing. + hashes: HashMap>, +} + +/// State abstraction. +/// Manages shared global state cache which reflects the canonical +/// state as it is on the disk. +/// A instance of `CachingState` may be created as canonical or not. +/// For canonical instances local cache is accumulated and applied +/// in `sync_cache` along with the change overlay. +/// For non-canonical clones local cache and changes are dropped. +pub struct CachingState, B: Block> { + /// Backing state. + state: S, + /// Shared canonical state cache. + shared_cache: SharedCache, + /// Local cache of values for this state. + local_cache: RwLock>, + /// Hash of the block on top of which this instance was created or + /// `None` if cache is disabled + pub parent_hash: Option, +} + +impl, B: Block> CachingState { + /// Create a new instance wrapping generic State and shared cache. + pub fn new(state: S, shared_cache: SharedCache, parent_hash: Option) -> CachingState { + CachingState { + state, + shared_cache, + local_cache: RwLock::new(LocalCache { + storage: Default::default(), + hashes: Default::default(), + }), + parent_hash: parent_hash, + } + } + + /// Propagate local cache into the shared cache and synchonize + /// the shared cache with the best block state. + /// This function updates the shared cache by removing entries + /// that are invalidated by chain reorganization. `sync_cache` + /// should be called after the block has been committed and the + /// blockchain route has been calculated. + pub fn sync_cache bool> ( + &mut self, + enacted: &[B::Hash], + retracted: &[B::Hash], + changes: Vec<(StorageKey, Option)>, + commit_hash: Option, + commit_number: Option<::Number>, + is_best: F, + ) { + let mut cache = self.shared_cache.lock(); + let is_best = is_best(); + trace!("Syncing cache, id = (#{:?}, {:?}), parent={:?}, best={}", commit_number, commit_hash, self.parent_hash, is_best); + let cache = &mut *cache; + + // Purge changes from re-enacted and retracted blocks. + // Filter out commiting block if any. + let mut clear = false; + for block in enacted.iter().filter(|h| commit_hash.as_ref().map_or(true, |p| *h != p)) { + clear = clear || { + if let Some(ref mut m) = cache.modifications.iter_mut().find(|m| &m.hash == block) { + trace!("Reverting enacted block {:?}", block); + m.is_canon = true; + for a in &m.storage { + trace!("Reverting enacted key {:?}", a); + cache.storage.remove(a); + } + false + } else { + true + } + }; + } + + for block in retracted { + clear = clear || { + if let Some(ref mut m) = cache.modifications.iter_mut().find(|m| &m.hash == block) { + trace!("Retracting block {:?}", block); + m.is_canon = false; + for a in &m.storage { + trace!("Retracted key {:?}", a); + cache.storage.remove(a); + } + false + } else { + true + } + }; + } + if clear { + // We don't know anything about the block; clear everything + trace!("Wiping cache"); + cache.storage.clear(); + cache.modifications.clear(); + } + + // Propagate cache only if committing on top of the latest canonical state + // blocks are ordered by number and only one block with a given number is marked as canonical + // (contributed to canonical state cache) + if let Some(_) = self.parent_hash { + let mut local_cache = self.local_cache.write(); + if is_best { + trace!("Committing {} local, {} hashes, {} modified entries", local_cache.storage.len(), local_cache.hashes.len(), changes.len()); + for (k, v) in local_cache.storage.drain() { + cache.storage.insert(k, v); + } + for (k, v) in local_cache.hashes.drain() { + cache.hashes.insert(k, v); + } + } + } + + if let ( + Some(ref number), Some(ref hash), Some(ref parent)) + = (commit_number, commit_hash, self.parent_hash) + { + if cache.modifications.len() == STATE_CACHE_BLOCKS { + cache.modifications.pop_back(); + } + let mut modifications = HashSet::new(); + for (k, v) in changes.into_iter() { + modifications.insert(k.clone()); + if is_best { + cache.hashes.remove(&k); + cache.storage.insert(k, v); + } + } + // Save modified storage. These are ordered by the block number. + let block_changes = BlockChanges { + storage: modifications, + number: *number, + hash: hash.clone(), + is_canon: is_best, + parent: parent.clone(), + }; + let insert_at = cache.modifications.iter() + .enumerate() + .find(|&(_, m)| m.number < *number) + .map(|(i, _)| i); + trace!("Inserting modifications at {:?}", insert_at); + if let Some(insert_at) = insert_at { + cache.modifications.insert(insert_at, block_changes); + } else { + cache.modifications.push_back(block_changes); + } + } + } + + /// Check if the key can be returned from cache by matching current block parent hash against canonical + /// state and filtering out entries modified in later blocks. + fn is_allowed( + key: &[u8], + parent_hash: &Option, + modifications: + &VecDeque> + ) -> bool + { + let mut parent = match *parent_hash { + None => { + trace!("Cache lookup skipped for {:?}: no parent hash", key); + return false; + } + Some(ref parent) => parent, + }; + if modifications.is_empty() { + trace!("Cache lookup allowed for {:?}", key); + return true; + } + // Ignore all storage modified in later blocks + // Modifications contains block ordered by the number + // We search for our parent in that list first and then for + // all its parent until we hit the canonical block, + // checking against all the intermediate modifications. + for m in modifications { + if &m.hash == parent { + if m.is_canon { + return true; + } + parent = &m.parent; + } + if m.storage.contains(key) { + trace!("Cache lookup skipped for {:?}: modified in a later block", key); + return false; + } + } + trace!("Cache lookup skipped for {:?}: parent hash is unknown", key); + false + } +} + +impl, B:Block> StateBackend for CachingState { + type Error = S::Error; + type Transaction = S::Transaction; + type TrieBackendStorage = S::TrieBackendStorage; + + fn storage(&self, key: &[u8]) -> Result>, Self::Error> { + let local_cache = self.local_cache.upgradable_read(); + if let Some(entry) = local_cache.storage.get(key).cloned() { + trace!("Found in local cache: {:?}", key); + return Ok(entry) + } + let mut cache = self.shared_cache.lock(); + if Self::is_allowed(key, &self.parent_hash, &cache.modifications) { + if let Some(entry) = cache.storage.get_mut(key).map(|a| a.clone()) { + trace!("Found in shared cache: {:?}", key); + return Ok(entry) + } + } + trace!("Cache miss: {:?}", key); + let value = self.state.storage(key)?; + RwLockUpgradableReadGuard::upgrade(local_cache).storage.insert(key.to_vec(), value.clone()); + Ok(value) + } + + fn storage_hash(&self, key: &[u8]) -> Result, Self::Error> { + let local_cache = self.local_cache.upgradable_read(); + if let Some(entry) = local_cache.hashes.get(key).cloned() { + trace!("Found hash in local cache: {:?}", key); + return Ok(entry) + } + let mut cache = self.shared_cache.lock(); + if Self::is_allowed(key, &self.parent_hash, &cache.modifications) { + if let Some(entry) = cache.hashes.get_mut(key).map(|a| a.clone()) { + trace!("Found hash in shared cache: {:?}", key); + return Ok(entry) + } + } + trace!("Cache hash miss: {:?}", key); + let hash = self.state.storage_hash(key)?; + RwLockUpgradableReadGuard::upgrade(local_cache).hashes.insert(key.to_vec(), hash.clone()); + Ok(hash) + } + + fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result>, Self::Error> { + self.state.child_storage(storage_key, key) + } + + fn exists_storage(&self, key: &[u8]) -> Result { + Ok(self.storage(key)?.is_some()) + } + + fn exists_child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result { + self.state.exists_child_storage(storage_key, key) + } + + fn for_keys_with_prefix(&self, prefix: &[u8], f: F) { + self.state.for_keys_with_prefix(prefix, f) + } + + fn for_keys_in_child_storage(&self, storage_key: &[u8], f: F) { + self.state.for_keys_in_child_storage(storage_key, f) + } + + fn storage_root(&self, delta: I) -> (H::Out, Self::Transaction) + where + I: IntoIterator, Option>)>, + H::Out: Ord + { + self.state.storage_root(delta) + } + + fn child_storage_root(&self, storage_key: &[u8], delta: I) -> (Vec, bool, Self::Transaction) + where + I: IntoIterator, Option>)>, + H::Out: Ord + { + self.state.child_storage_root(storage_key, delta) + } + + fn pairs(&self) -> Vec<(Vec, Vec)> { + self.state.pairs() + } + + fn try_into_trie_backend(self) -> Option> { + self.state.try_into_trie_backend() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use runtime_primitives::testing::{H256, Block as RawBlock, ExtrinsicWrapper}; + use state_machine::backend::InMemory; + use primitives::Blake2Hasher; + + type Block = RawBlock>; + #[test] + fn smoke() { + //init_log(); + let root_parent = H256::random(); + let key = H256::random()[..].to_vec(); + let h0 = H256::random(); + let h1a = H256::random(); + let h1b = H256::random(); + let h2a = H256::random(); + let h2b = H256::random(); + let h3a = H256::random(); + let h3b = H256::random(); + + let shared = new_shared_cache::(256*1024); + + // blocks [ 3a(c) 2a(c) 2b 1b 1a(c) 0 ] + // state [ 5 5 4 3 2 2 ] + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(root_parent.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![2]))], Some(h0.clone()), Some(0), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h0.clone())); + s.sync_cache(&[], &[], vec![], Some(h1a.clone()), Some(1), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h0.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![3]))], Some(h1b.clone()), Some(1), || false); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1b.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![4]))], Some(h2b.clone()), Some(2), || false); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1a.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![5]))], Some(h2a.clone()), Some(2), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2a.clone())); + s.sync_cache(&[], &[], vec![], Some(h3a.clone()), Some(3), || true); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h3a.clone())); + assert_eq!(s.storage(&key).unwrap().unwrap(), vec![5]); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1a.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2b.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1b.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + // reorg to 3b + // blocks [ 3b(c) 3a 2a 2b(c) 1b 1a 0 ] + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2b.clone())); + s.sync_cache(&[h1b.clone(), h2b.clone(), h3b.clone()], &[h1a.clone(), h2a.clone(), h3a.clone()], vec![], Some(h3b.clone()), Some(3), || true); + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h3a.clone())); + assert!(s.storage(&key).unwrap().is_none()); + } +} diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 1f370f0e1b627..88e97c7ec400c 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -68,9 +68,11 @@ pub trait BlockImportOperation where /// has been used to check justification of this block). fn update_authorities(&mut self, authorities: Vec>); /// Inject storage data into the database. - fn update_storage(&mut self, update: >::Transaction) -> error::Result<()>; + fn update_db_storage(&mut self, update: >::Transaction) -> error::Result<()>; /// Inject storage data into the database replacing any existing data. fn reset_storage(&mut self, top: StorageMap, children: ChildrenStorageMap) -> error::Result; + /// Set top level storage changes. + fn update_storage(&mut self, update: Vec<(Vec, Option>)>) -> error::Result<()>; /// Inject changes trie data into the database. fn update_changes_trie(&mut self, update: MemoryDB) -> error::Result<()>; /// Update auxiliary keys. Values are `None` if should be deleted. @@ -127,6 +129,10 @@ pub trait Backend: AuxStore + Send + Sync where fn changes_trie_storage(&self) -> Option<&Self::ChangesTrieStorage>; /// Returns state backend with post-state of given block. fn state_at(&self, block: BlockId) -> error::Result; + /// Destroy state and save any useful data, such as cache. + fn destroy_state(&self, _state: Self::State) -> error::Result<()> { + Ok(()) + } /// Attempts to revert the chain by `n` blocks. Returns the number of blocks that were /// successfully reverted. fn revert(&self, n: NumberFor) -> error::Result>; diff --git a/core/client/src/call_executor.rs b/core/client/src/call_executor.rs index 8cbb40dfa2a3b..62104d4aa0e5a 100644 --- a/core/client/src/call_executor.rs +++ b/core/client/src/call_executor.rs @@ -24,22 +24,11 @@ use state_machine::{self, OverlayedChanges, Ext, use executor::{RuntimeVersion, RuntimeInfo, NativeVersion}; use hash_db::Hasher; use trie::MemoryDB; -use codec::Decode; use primitives::{H256, Blake2Hasher}; -use primitives::storage::well_known_keys; use backend; use error; -/// Information regarding the result of a call. -#[derive(Debug, Clone)] -pub struct CallResult { - /// The data that was returned from the call. - pub return_data: Vec, - /// The changes made to the state by the call. - pub changes: OverlayedChanges, -} - /// Method call executor. pub trait CallExecutor where @@ -58,7 +47,7 @@ where id: &BlockId, method: &str, call_data: &[u8], - ) -> Result; + ) -> Result, error::Error>; /// Execute a contextual call on top of state in a block of a given hash. /// @@ -163,16 +152,22 @@ where id: &BlockId, method: &str, call_data: &[u8], - ) -> error::Result { + ) -> error::Result> { let mut changes = OverlayedChanges::default(); - let (return_data, _, _) = self.call_at_state( - &self.backend.state_at(*id)?, + let state = self.backend.state_at(*id)?; + let return_data = state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), &mut changes, + &self.executor, method, call_data, native_when_possible(), - )?; - Ok(CallResult { return_data, changes }) + false, + ) + .map(|(result, _, _)| result)?; + self.backend.destroy_state(state)?; + Ok(return_data) } fn contextual_call< @@ -192,28 +187,40 @@ where //TODO: Find a better way to prevent double block initialization if method != "Core_initialise_block" && initialised_block.map(|id| id != *at).unwrap_or(true) { let header = prepare_environment_block()?; - self.call_at_state(&state, changes, "Core_initialise_block", &header.encode(), manager.clone())?; + state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), + changes, + &self.executor, + "Core_initialise_block", + &header.encode(), + manager.clone(), + false, + )?; *initialised_block = Some(*at); } - self.call_at_state(&state, changes, method, call_data, manager).map(|cr| cr.0) + let result = state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), + changes, + &self.executor, + method, + call_data, + manager, + false, + ) + .map(|(result, _, _)| result)?; + + self.backend.destroy_state(state)?; + Ok(result) } fn runtime_version(&self, id: &BlockId) -> error::Result { let mut overlay = OverlayedChanges::default(); let state = self.backend.state_at(*id)?; - use state_machine::Backend; - let code = state.storage(well_known_keys::CODE) - .map_err(|e| error::ErrorKind::Execution(Box::new(e)))? - .ok_or(error::ErrorKind::VersionInvalid)? - .to_vec(); - let heap_pages = state.storage(well_known_keys::HEAP_PAGES) - .map_err(|e| error::ErrorKind::Execution(Box::new(e)))? - .and_then(|v| u64::decode(&mut &v[..])) - .unwrap_or(1024) as usize; - let mut ext = Ext::new(&mut overlay, &state, self.backend.changes_trie_storage()); - self.executor.runtime_version(&mut ext, heap_pages, &code) + self.executor.runtime_version(&mut ext) .ok_or(error::ErrorKind::VersionInvalid.into()) } diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 79a112e616740..f02e25f78c07e 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -230,7 +230,6 @@ impl Client where let (genesis_storage, children_genesis_storage) = build_genesis_storage.build_storage()?; let mut op = backend.begin_operation(BlockId::Hash(Default::default()))?; let state_root = op.reset_storage(genesis_storage, children_genesis_storage)?; - let genesis_block = genesis::construct_genesis_block::(state_root.into()); info!("Initialising Genesis block/state (state: {}, header-hash: {})", genesis_block.header().state_root(), genesis_block.header().hash()); op.set_block_data( @@ -284,8 +283,8 @@ impl Client where match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), None => self.executor.call(id, "Core_authorities", &[]) - .and_then(|r| Vec::>::decode(&mut &r.return_data[..]) - .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) + .and_then(|r| Vec::>::decode(&mut &r[..]) + .ok_or_else(|| error::ErrorKind::InvalidAuthoritiesSet.into())) } } @@ -602,7 +601,7 @@ impl Client where ); let (_, storage_update, changes_update) = r?; overlay.commit_prospective(); - (Some(storage_update), Some(changes_update), Some(overlay.into_committed())) + (Some(storage_update), Some(changes_update), Some(overlay.into_committed().collect())) }, None => (None, None, None) }; @@ -633,7 +632,10 @@ impl Client where transaction.update_authorities(authorities); } if let Some(storage_update) = storage_update { - transaction.update_storage(storage_update)?; + transaction.update_db_storage(storage_update)?; + } + if let Some(storage_changes) = storage_changes.clone() { + transaction.update_storage(storage_changes)?; } if let Some(Some(changes_update)) = changes_update { transaction.update_changes_trie(changes_update)?; @@ -646,7 +648,7 @@ impl Client where if let Some(storage_changes) = storage_changes { // TODO [ToDr] How to handle re-orgs? Should we re-emit all storage changes? self.storage_notifications.lock() - .trigger(&hash, storage_changes); + .trigger(&hash, storage_changes.into_iter()); } if finalized { diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 896f9821deffc..606f03d870d31 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -448,7 +448,7 @@ where self.pending_authorities = Some(authorities); } - fn update_storage(&mut self, update: as StateBackend>::Transaction) -> error::Result<()> { + fn update_db_storage(&mut self, update: as StateBackend>::Transaction) -> error::Result<()> { self.new_state = Some(self.old_state.update(update)); Ok(()) } @@ -491,6 +491,10 @@ where self.aux = Some(ops.into_iter().collect()); Ok(()) } + + fn update_storage(&mut self, _update: Vec<(Vec, Option>)>) -> error::Result<()> { + Ok(()) + } } /// In-memory backend. Keeps all states and blocks in memory. Useful for testing. diff --git a/core/client/src/lib.rs b/core/client/src/lib.rs index fb07c130b25ff..3bb65df9d184e 100644 --- a/core/client/src/lib.rs +++ b/core/client/src/lib.rs @@ -102,7 +102,7 @@ mod notifications; #[cfg(feature = "std")] pub use blockchain::Info as ChainInfo; #[cfg(feature = "std")] -pub use call_executor::{CallResult, CallExecutor, LocalCallExecutor}; +pub use call_executor::{CallExecutor, LocalCallExecutor}; #[cfg(feature = "std")] pub use client::{ new_with_backend, diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 79a636bfbc183..6beaf1271bf4b 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -188,7 +188,7 @@ where self.authorities = Some(authorities); } - fn update_storage(&mut self, _update: >::Transaction) -> ClientResult<()> { + fn update_db_storage(&mut self, _update: >::Transaction) -> ClientResult<()> { // we're not storing anything locally => ignore changes Ok(()) } @@ -210,6 +210,11 @@ where self.aux_ops = ops.into_iter().collect(); Ok(()) } + + fn update_storage(&mut self, _update: Vec<(Vec, Option>)>) -> ClientResult<()> { + // we're not storing anything locally => ignore changes + Ok(()) + } } impl StateBackend for OnDemandState diff --git a/core/client/src/light/call_executor.rs b/core/client/src/light/call_executor.rs index d30e45921538d..84d7545d6f0f4 100644 --- a/core/client/src/light/call_executor.rs +++ b/core/client/src/light/call_executor.rs @@ -31,7 +31,7 @@ use state_machine::{self, Backend as StateBackend, CodeExecutor, OverlayedChange use hash_db::Hasher; use blockchain::Backend as ChainBackend; -use call_executor::{CallExecutor, CallResult}; +use call_executor::CallExecutor; use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; use light::fetcher::{Fetcher, RemoteCallRequest}; use executor::{RuntimeVersion, NativeVersion}; @@ -74,7 +74,7 @@ where { type Error = ClientError; - fn call(&self, id: &BlockId, method: &str, call_data: &[u8]) -> ClientResult { + fn call(&self, id: &BlockId, method: &str, call_data: &[u8]) -> ClientResult> { let block_hash = self.blockchain.expect_block_hash_from_id(id)?; let block_header = self.blockchain.expect_header(id.clone())?; @@ -105,12 +105,12 @@ where return Err(ClientErrorKind::NotAvailableOnLightClient.into()); } - self.call(at, method, call_data).map(|cr| cr.return_data) + self.call(at, method, call_data) } fn runtime_version(&self, id: &BlockId) -> ClientResult { let call_result = self.call(id, "version", &[])?; - RuntimeVersion::decode(&mut call_result.return_data.as_slice()) + RuntimeVersion::decode(&mut call_result.as_slice()) .ok_or_else(|| ClientErrorKind::VersionInvalid.into()) } @@ -189,7 +189,7 @@ pub fn check_execution_proof( executor: &E, request: &RemoteCallRequest
, remote_proof: Vec> -) -> ClientResult +) -> ClientResult> where Header: HeaderT, E: CodeExecutor, @@ -226,7 +226,7 @@ pub fn check_execution_proof( &request.call_data, )?; - Ok(CallResult { return_data: local_result, changes }) + Ok(local_result) } #[cfg(test)] @@ -273,7 +273,7 @@ mod tests { retry_count: None, }, remote_execution_proof).unwrap(); - (remote_result, local_result.return_data) + (remote_result, local_result) } // prepare remote client diff --git a/core/client/src/light/fetcher.rs b/core/client/src/light/fetcher.rs index 1171e15f49d6a..5f9aed2fe1632 100644 --- a/core/client/src/light/fetcher.rs +++ b/core/client/src/light/fetcher.rs @@ -28,7 +28,6 @@ use runtime_primitives::traits::{As, Block as BlockT, Header as HeaderT, NumberF use state_machine::{CodeExecutor, ChangesTrieRootsStorage, ChangesTrieAnchorBlockId, TrieBackend, read_proof_check, key_changes_proof_check, create_proof_check_backend_storage}; -use call_executor::CallResult; use cht; use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; use light::blockchain::{Blockchain, Storage as BlockchainStorage}; @@ -118,7 +117,7 @@ pub trait Fetcher: Send + Sync { /// Remote storage read future. type RemoteReadResult: IntoFuture>, Error=ClientError>; /// Remote call result future. - type RemoteCallResult: IntoFuture; + type RemoteCallResult: IntoFuture, Error=ClientError>; /// Remote changes result future. type RemoteChangesResult: IntoFuture, u32)>, Error=ClientError>; @@ -156,7 +155,7 @@ pub trait FetchChecker: Send + Sync { &self, request: &RemoteCallRequest, remote_proof: Vec> - ) -> ClientResult; + ) -> ClientResult>; /// Check remote changes query proof. fn check_changes_proof( &self, @@ -344,7 +343,7 @@ impl FetchChecker for LightDataChecker, remote_proof: Vec> - ) -> ClientResult { + ) -> ClientResult> { check_execution_proof::<_, _, H>(&self.executor, request, remote_proof) } @@ -392,7 +391,6 @@ pub mod tests { use futures::future::{ok, err, FutureResult}; use parking_lot::Mutex; use keyring::Keyring; - use call_executor::CallResult; use client::tests::prepare_client_with_key_changes; use executor::{self, NativeExecutionDispatch}; use error::Error as ClientError; @@ -410,12 +408,12 @@ pub mod tests { use state_machine::Backend; use super::*; - pub type OkCallFetcher = Mutex; + pub type OkCallFetcher = Mutex>; impl Fetcher for OkCallFetcher { type RemoteHeaderResult = FutureResult; type RemoteReadResult = FutureResult>, ClientError>; - type RemoteCallResult = FutureResult; + type RemoteCallResult = FutureResult, ClientError>; type RemoteChangesResult = FutureResult, u32)>, ClientError>; fn remote_header(&self, _request: RemoteHeaderRequest
) -> Self::RemoteHeaderResult { diff --git a/core/executor/src/lib.rs b/core/executor/src/lib.rs index 5f05b33f53852..ae2b383ae7ecd 100644 --- a/core/executor/src/lib.rs +++ b/core/executor/src/lib.rs @@ -44,9 +44,6 @@ extern crate parking_lot; #[macro_use] extern crate log; -#[macro_use] -extern crate lazy_static; - #[macro_use] extern crate error_chain; @@ -84,7 +81,5 @@ pub trait RuntimeInfo { fn runtime_version> ( &self, ext: &mut E, - heap_pages: usize, - code: &[u8] ) -> Option; } diff --git a/core/executor/src/native_executor.rs b/core/executor/src/native_executor.rs index 15cc8abac3edc..09606bc904f7b 100644 --- a/core/executor/src/native_executor.rs +++ b/core/executor/src/native_executor.rs @@ -14,38 +14,34 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . +use std::borrow::BorrowMut; +use std::cell::{RefMut, RefCell}; use error::{Error, ErrorKind, Result}; use state_machine::{CodeExecutor, Externalities}; use wasm_executor::WasmExecutor; -use wasmi::Module as WasmModule; +use wasmi::{Module as WasmModule, ModuleRef as WasmModuleInstanceRef}; use runtime_version::{NativeVersion, RuntimeVersion}; use std::collections::HashMap; use codec::Decode; -use primitives::hashing::blake2_256; -use parking_lot::{Mutex, MutexGuard}; use RuntimeInfo; use primitives::Blake2Hasher; +use primitives::storage::well_known_keys; + +/// Default num of pages for the heap +const DEFAULT_HEAP_PAGES :u64 = 1024; // For the internal Runtime Cache: // Is it compatible enough to run this natively or do we need to fall back on the WasmModule enum RuntimePreproc { InvalidCode, - ValidCode(WasmModule, Option), + ValidCode(WasmModuleInstanceRef, Option), } type CacheType = HashMap<[u8; 32], RuntimePreproc>; -lazy_static! { - static ref RUNTIMES_CACHE: Mutex = Mutex::new(HashMap::new()); -} - -// helper function to generate low-over-head caching_keys -// it is asserted that part of the audit process that any potential on-chain code change -// will have done is to ensure that the two-x hash is different to that of any other -// :code value from the same chain -fn gen_cache_key(code: &[u8]) -> [u8; 32] { - blake2_256(code) +thread_local! { + static RUNTIMES_CACHE: RefCell = RefCell::new(HashMap::new()); } /// fetch a runtime version from the cache or if there is no cached version yet, create @@ -53,27 +49,48 @@ fn gen_cache_key(code: &[u8]) -> [u8; 32] { /// can be used by comparing returned RuntimeVersion to `ref_version` fn fetch_cached_runtime_version<'a, E: Externalities>( wasm_executor: &WasmExecutor, - cache: &'a mut MutexGuard, + cache: &'a mut RefMut, ext: &mut E, - heap_pages: usize, - code: &[u8] -) -> Result<(&'a WasmModule, &'a Option)> { - let maybe_runtime_preproc = cache.entry(gen_cache_key(code)) - .or_insert_with(|| match WasmModule::from_buffer(code) { - Ok(module) => { - let version = wasm_executor.call_in_wasm_module(ext, heap_pages, &module, "Core_version", &[]) - .ok() - .and_then(|v| RuntimeVersion::decode(&mut v.as_slice())); - RuntimePreproc::ValidCode(module, version) - } - Err(e) => { - trace!(target: "executor", "Invalid code presented to executor ({:?})", e); - RuntimePreproc::InvalidCode +) -> Result<(&'a WasmModuleInstanceRef, &'a Option)> { + + let code_hash = match ext.storage_hash(well_known_keys::CODE) { + Some(code_hash) => code_hash, + None => return Err(ErrorKind::InvalidCode(vec![]).into()), + }; + let maybe_runtime_preproc = cache.borrow_mut().entry(code_hash.into()) + .or_insert_with(|| { + let code = match ext.storage(well_known_keys::CODE) { + Some(code) => code, + None => return RuntimePreproc::InvalidCode, + }; + let heap_pages = match ext.storage(well_known_keys::HEAP_PAGES) { + Some(pages) => u64::decode(&mut &pages[..]).unwrap_or(DEFAULT_HEAP_PAGES), + None => DEFAULT_HEAP_PAGES, + }; + match WasmModule::from_buffer(code) + .map_err(|_| ErrorKind::InvalidCode(vec![]).into()) + .and_then(|module| wasm_executor.prepare_module(ext, heap_pages as usize, &module)) + { + Ok(module) => { + let version = wasm_executor.call_in_wasm_module(ext, &module, "Core_version", &[]) + .ok() + .and_then(|v| RuntimeVersion::decode(&mut v.as_slice())); + RuntimePreproc::ValidCode(module, version) + } + Err(e) => { + trace!(target: "executor", "Invalid code presented to executor ({:?})", e); + RuntimePreproc::InvalidCode + } } }); match maybe_runtime_preproc { - RuntimePreproc::InvalidCode => Err(ErrorKind::InvalidCode(code.into()).into()), - RuntimePreproc::ValidCode(m, v) => Ok((m, v)), + RuntimePreproc::InvalidCode => { + let code = ext.storage(well_known_keys::CODE).unwrap_or(vec![]); + Err(ErrorKind::InvalidCode(code).into()) + }, + RuntimePreproc::ValidCode(m, v) => { + Ok((m, v)) + } } } @@ -154,10 +171,10 @@ impl RuntimeInfo for NativeExecutor { fn runtime_version>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], ) -> Option { - fetch_cached_runtime_version(&self.fallback, &mut RUNTIMES_CACHE.lock(), ext, heap_pages, code).ok()?.1.clone() + RUNTIMES_CACHE.with(|c| + fetch_cached_runtime_version(&self.fallback, &mut c.borrow_mut(), ext).ok()?.1.clone() + ) } } @@ -167,30 +184,30 @@ impl CodeExecutor for NativeExecutor>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], method: &str, data: &[u8], use_native: bool, ) -> (Result>, bool) { - let mut c = RUNTIMES_CACHE.lock(); - let (module, onchain_version) = match fetch_cached_runtime_version(&self.fallback, &mut c, ext, heap_pages, code) { - Ok((module, onchain_version)) => (module, onchain_version), - Err(_) => return (Err(ErrorKind::InvalidCode(code.into()).into()), false), - }; - match (use_native, onchain_version.as_ref().map_or(false, |v| v.can_call_with(&self.native_version.runtime_version))) { - (_, false) => { - trace!(target: "executor", "Request for native execution failed (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); - (self.fallback.call_in_wasm_module(ext, heap_pages, module, method, data), false) - } - (false, _) => { - (self.fallback.call_in_wasm_module(ext, heap_pages, module, method, data), false) + RUNTIMES_CACHE.with(|c| { + let mut c = c.borrow_mut(); + let (module, onchain_version) = match fetch_cached_runtime_version(&self.fallback, &mut c, ext) { + Ok((module, onchain_version)) => (module, onchain_version), + Err(e) => return (Err(e), false), + }; + match (use_native, onchain_version.as_ref().map_or(false, |v| v.can_call_with(&self.native_version.runtime_version))) { + (_, false) => { + trace!(target: "executor", "Request for native execution failed (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); + (self.fallback.call_in_wasm_module(ext, module, method, data), false) + } + (false, _) => { + (self.fallback.call_in_wasm_module(ext, module, method, data), false) + } + _ => { + trace!(target: "executor", "Request for native execution succeeded (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); + (D::dispatch(ext, method, data), true) + } } - _ => { - trace!(target: "executor", "Request for native execution succeeded (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); - (D::dispatch(ext, method, data), true) - } - } + }) } } diff --git a/core/executor/src/wasm_executor.rs b/core/executor/src/wasm_executor.rs index 40357946f023d..60e2c84b1eb5a 100644 --- a/core/executor/src/wasm_executor.rs +++ b/core/executor/src/wasm_executor.rs @@ -19,10 +19,10 @@ use std::collections::HashMap; use wasmi::{ - Module, ModuleInstance, MemoryInstance, MemoryRef, TableRef, ImportsBuilder + Module, ModuleInstance, MemoryInstance, MemoryRef, TableRef, ImportsBuilder, ModuleRef, }; use wasmi::RuntimeValue::{I32, I64}; -use wasmi::memory_units::{Pages, Bytes}; +use wasmi::memory_units::Pages; use state_machine::Externalities; use error::{Error, ErrorKind, Result}; use wasm_utils::UserError; @@ -39,19 +39,17 @@ struct Heap { } impl Heap { - /// Construct new `Heap` struct with a given number of pages. + /// Construct new `Heap` struct. /// /// Returns `Err` if the heap couldn't allocate required /// number of pages. /// /// This could mean that wasm binary specifies memory /// limit and we are trying to allocate beyond that limit. - fn new(memory: &MemoryRef, pages: usize) -> Result { - let prev_page_count = memory.initial(); - memory.grow(Pages(pages)).map_err(|_| Error::from(ErrorKind::Runtime))?; - Ok(Heap { - end: Bytes::from(prev_page_count).0 as u32, - }) + fn new(memory: &MemoryRef) -> Self { + Heap { + end: memory.used_size().0 as u32, + } } fn allocate(&mut self, size: u32) -> u32 { @@ -83,10 +81,10 @@ struct FunctionExecutor<'e, E: Externalities + 'e> { } impl<'e, E: Externalities> FunctionExecutor<'e, E> { - fn new(m: MemoryRef, heap_pages: usize, t: Option, e: &'e mut E) -> Result { + fn new(m: MemoryRef, t: Option, e: &'e mut E) -> Result { Ok(FunctionExecutor { sandbox_store: sandbox::Store::new(), - heap: Heap::new(&m, heap_pages)?, + heap: Heap::new(&m), memory: m, table: t, ext: e, @@ -638,51 +636,43 @@ impl WasmExecutor { method: &str, data: &[u8], ) -> Result> { - let module = ::wasmi::Module::from_buffer(code).expect("all modules compiled with rustc are valid wasm code; qed"); - self.call_in_wasm_module(ext, heap_pages, &module, method, data) + let module = ::wasmi::Module::from_buffer(code)?; + let module = self.prepare_module(ext, heap_pages, &module)?; + self.call_in_wasm_module(ext, &module, method, data) + } + + fn get_mem_instance(module: &ModuleRef) -> Result { + Ok(module + .export_by_name("memory") + .ok_or_else(|| Error::from(ErrorKind::InvalidMemoryReference))? + .as_memory() + .ok_or_else(|| Error::from(ErrorKind::InvalidMemoryReference))? + .clone()) } /// Call a given method in the given wasm-module runtime. pub fn call_in_wasm_module>( &self, ext: &mut E, - heap_pages: usize, - module: &Module, + module_instance: &ModuleRef, method: &str, data: &[u8], ) -> Result> { - // start module instantiation. Don't run 'start' function yet. - let intermediate_instance = ModuleInstance::new( - module, - &ImportsBuilder::new() - .with_resolver("env", FunctionExecutor::::resolver()) - )?; - // extract a reference to a linear memory, optional reference to a table // and then initialize FunctionExecutor. - let memory = intermediate_instance - .not_started_instance() - .export_by_name("memory") - // TODO: with code coming from the blockchain it isn't strictly been compiled with rustc anymore. - // these assumptions are probably not true anymore - .expect("all modules compiled with rustc should have an export named 'memory'; qed") - .as_memory() - .expect("in module generated by rustc export named 'memory' should be a memory; qed") - .clone(); - let table: Option = intermediate_instance - .not_started_instance() + let memory = Self::get_mem_instance(module_instance)?; + let table: Option = module_instance .export_by_name("__indirect_function_table") .and_then(|e| e.as_table().cloned()); - let mut fec = FunctionExecutor::new(memory.clone(), heap_pages, table, ext)?; - - // finish instantiation by running 'start' function (if any). - let instance = intermediate_instance.run_start(&mut fec)?; + let low = memory.lowest_used(); + let used_mem = memory.used_size(); + let mut fec = FunctionExecutor::new(memory.clone(), table, ext)?; let size = data.len() as u32; let offset = fec.heap.allocate(size); memory.set(offset, &data)?; - let result = instance.invoke_export( + let result = module_instance.invoke_export( method, &[ I32(offset as i32), @@ -690,22 +680,57 @@ impl WasmExecutor { ], &mut fec ); - let returned = match result { - Ok(x) => x, + let result = match result { + Ok(Some(I64(r))) => { + let offset = r as u32; + let length = (r >> 32) as u32 as usize; + memory.get(offset, length) + .map_err(|_| ErrorKind::Runtime.into()) + }, + Ok(_) => Err(ErrorKind::InvalidReturn.into()), Err(e) => { - trace!(target: "wasm-executor", "Failed to execute code with {} pages", heap_pages); - return Err(e.into()) + trace!(target: "wasm-executor", "Failed to execute code with {} pages", memory.current_size().0); + Err(e.into()) }, }; - if let Some(I64(r)) = returned { - let offset = r as u32; - let length = (r >> 32) as u32 as usize; - memory.get(offset, length) - .map_err(|_| ErrorKind::Runtime.into()) - } else { - Err(ErrorKind::InvalidReturn.into()) + // cleanup module instance for next use + let new_low = memory.lowest_used(); + if new_low < low { + memory.zero(new_low as usize, (low - new_low) as usize)?; + memory.reset_lowest_used(low); } + memory.with_direct_access_mut(|buf| buf.resize(used_mem.0, 0)); + result + } + + /// Prepare module instance + pub fn prepare_module>( + &self, + ext: &mut E, + heap_pages: usize, + module: &Module, + ) -> Result + { + // start module instantiation. Don't run 'start' function yet. + let intermediate_instance = ModuleInstance::new( + module, + &ImportsBuilder::new() + .with_resolver("env", FunctionExecutor::::resolver()) + )?; + + // extract a reference to a linear memory, optional reference to a table + // and then initialize FunctionExecutor. + let memory = Self::get_mem_instance(intermediate_instance.not_started_instance())?; + memory.grow(Pages(heap_pages)).map_err(|_| Error::from(ErrorKind::Runtime))?; + let table: Option = intermediate_instance + .not_started_instance() + .export_by_name("__indirect_function_table") + .and_then(|e| e.as_table().cloned()); + let mut fec = FunctionExecutor::new(memory.clone(), table, ext)?; + + // finish instantiation by running 'start' function (if any). + Ok(intermediate_instance.run_start(&mut fec)?) } } diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index 0c5140f2fe06d..db56eaf592779 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -24,7 +24,7 @@ use futures::sync::oneshot::{channel, Receiver, Sender}; use linked_hash_map::LinkedHashMap; use linked_hash_map::Entry; use parking_lot::Mutex; -use client::{self, error::{Error as ClientError, ErrorKind as ClientErrorKind}}; +use client::{error::{Error as ClientError, ErrorKind as ClientErrorKind}}; use client::light::fetcher::{Fetcher, FetchChecker, RemoteHeaderRequest, RemoteCallRequest, RemoteReadRequest, RemoteChangesRequest, ChangesProof}; use io::SyncIo; @@ -107,7 +107,7 @@ struct Request { enum RequestData { RemoteHeader(RemoteHeaderRequest, Sender>), RemoteRead(RemoteReadRequest, Sender>, ClientError>>), - RemoteCall(RemoteCallRequest, Sender>), + RemoteCall(RemoteCallRequest, Sender, ClientError>>), RemoteChanges(RemoteChangesRequest, Sender, u32)>, ClientError>>), } @@ -312,7 +312,7 @@ impl Fetcher for OnDemand where { type RemoteHeaderResult = RemoteResponse; type RemoteReadResult = RemoteResponse>>; - type RemoteCallResult = RemoteResponse; + type RemoteCallResult = RemoteResponse>; type RemoteChangesResult = RemoteResponse, u32)>>; fn remote_header(&self, request: RemoteHeaderRequest) -> Self::RemoteHeaderResult { @@ -529,7 +529,7 @@ pub mod tests { use futures::Future; use parking_lot::RwLock; use runtime_primitives::traits::NumberFor; - use client::{self, error::{ErrorKind as ClientErrorKind, Result as ClientResult}}; + use client::{error::{ErrorKind as ClientErrorKind, Result as ClientResult}}; use client::light::fetcher::{Fetcher, FetchChecker, RemoteHeaderRequest, RemoteCallRequest, RemoteReadRequest, RemoteChangesRequest, ChangesProof}; use config::Roles; @@ -567,12 +567,9 @@ pub mod tests { } } - fn check_execution_proof(&self, _: &RemoteCallRequest
, _: Vec>) -> ClientResult { + fn check_execution_proof(&self, _: &RemoteCallRequest
, _: Vec>) -> ClientResult> { match self.ok { - true => Ok(client::CallResult { - return_data: vec![42], - changes: Default::default(), - }), + true => Ok(vec![42]), false => Err(ClientErrorKind::Backend("Test error".into()).into()), } } @@ -796,7 +793,7 @@ pub mod tests { }); let thread = ::std::thread::spawn(move || { let result = response.wait().unwrap(); - assert_eq!(result.return_data, vec![42]); + assert_eq!(result, vec![42]); }); receive_call_response(&*on_demand, &mut network, 0, 0); diff --git a/core/state-machine/src/backend.rs b/core/state-machine/src/backend.rs index f9949deae9db1..ea1d19859ea42 100644 --- a/core/state-machine/src/backend.rs +++ b/core/state-machine/src/backend.rs @@ -40,10 +40,15 @@ pub trait Backend { /// Type of trie backend storage. type TrieBackendStorage: TrieBackendStorage; - /// Get keyed storage associated with specific address, or None if there is nothing associated. + /// Get keyed storage or None if there is nothing associated. fn storage(&self, key: &[u8]) -> Result>, Self::Error>; - /// Get keyed child storage associated with specific address, or None if there is nothing associated. + /// Get keyed storage value hash or None if there is nothing associated. + fn storage_hash(&self, key: &[u8]) -> Result, Self::Error> { + self.storage(key).map(|v| v.map(|v| H::hash(&v))) + } + + /// Get keyed child storage or None if there is nothing associated. fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result>, Self::Error>; /// true if a key exists in storage. diff --git a/core/state-machine/src/ext.rs b/core/state-machine/src/ext.rs index 1bcb3fb732b1f..6274eef720593 100644 --- a/core/state-machine/src/ext.rs +++ b/core/state-machine/src/ext.rs @@ -184,6 +184,11 @@ where self.backend.storage(key).expect(EXT_NOT_ALLOWED_TO_FAIL)) } + fn storage_hash(&self, key: &[u8]) -> Option { + self.overlay.storage(key).map(|x| x.map(|x| H::hash(x))).unwrap_or_else(|| + self.backend.storage_hash(key).expect(EXT_NOT_ALLOWED_TO_FAIL)) + } + fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Option> { self.overlay.child_storage(storage_key, key).map(|x| x.map(|x| x.to_vec())).unwrap_or_else(|| self.backend.child_storage(storage_key, key).expect(EXT_NOT_ALLOWED_TO_FAIL)) diff --git a/core/state-machine/src/lib.rs b/core/state-machine/src/lib.rs index 5f9757bd55cd6..bc0189d398716 100644 --- a/core/state-machine/src/lib.rs +++ b/core/state-machine/src/lib.rs @@ -65,9 +65,6 @@ pub use proving_backend::{create_proof_check_backend, create_proof_check_backend pub use trie_backend_essence::{TrieBackendStorage, Storage}; pub use trie_backend::TrieBackend; -/// Default num of pages for the heap -const DEFAULT_HEAP_PAGES :u64 = 1024; - /// State Machine Error bound. /// /// This should reflect WASM error type bound for future compatibility. @@ -98,10 +95,15 @@ impl fmt::Display for ExecutionError { /// Externalities: pinned to specific active address. pub trait Externalities { - /// Read storage of current contract being called. + /// Read runtime storage. fn storage(&self, key: &[u8]) -> Option>; - /// Read child storage of current contract being called. + /// Get storage value hash. This may be optimized for large values. + fn storage_hash(&self, key: &[u8]) -> Option { + self.storage(key).map(|v| H::hash(&v)) + } + + /// Read child runtime storage. fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Option>; /// Set storage entry `key` of current contract being called (effective immediately). @@ -171,8 +173,6 @@ pub trait CodeExecutor: Sized + Send + Sync { fn call>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], method: &str, data: &[u8], use_native: bool @@ -297,14 +297,6 @@ where { let strategy: ExecutionStrategy = (&manager).into(); - // make a copy. - let code = try_read_overlay_value(overlay, backend, well_known_keys::CODE)? - .ok_or_else(|| Box::new(ExecutionError::CodeEntryDoesNotExist) as Box)? - .to_vec(); - - let heap_pages = try_read_overlay_value(overlay, backend, well_known_keys::HEAP_PAGES)? - .and_then(|v| u64::decode(&mut &v[..])).unwrap_or(DEFAULT_HEAP_PAGES) as usize; - // read changes trie configuration. The reason why we're doing it here instead of the // `OverlayedChanges` constructor is that we need proofs for this read as a part of // proof-of-execution on light clients. And the proof is recorded by the backend which @@ -328,8 +320,6 @@ where let mut externalities = ext::Ext::new(overlay, backend, changes_trie_storage); let retval = exec.call( &mut externalities, - heap_pages, - &code, method, call_data, // attempt to run native first, if we're not directed to run wasm only @@ -357,8 +347,6 @@ where let mut externalities = ext::Ext::new(overlay, backend, changes_trie_storage); let retval = exec.call( &mut externalities, - heap_pages, - &code, method, call_data, false, @@ -614,8 +602,6 @@ mod tests { fn call>( &self, ext: &mut E, - _heap_pages: usize, - _code: &[u8], _method: &str, _data: &[u8], use_native: bool diff --git a/core/state-machine/src/overlayed_changes.rs b/core/state-machine/src/overlayed_changes.rs index 29ff7262da2e8..3a208ad3e2c01 100644 --- a/core/state-machine/src/overlayed_changes.rs +++ b/core/state-machine/src/overlayed_changes.rs @@ -44,7 +44,7 @@ pub struct OverlayedValue { /// Current value. None if value has been deleted. pub value: Option>, /// The set of extinsic indices where the values has been changed. - /// Is filled only if runtime ahs announced changes trie support. + /// Is filled only if runtime has announced changes trie support. pub extrinsics: Option>, } diff --git a/core/state-machine/src/testing.rs b/core/state-machine/src/testing.rs index 876a190a966a9..b9f14f18e5a0f 100644 --- a/core/state-machine/src/testing.rs +++ b/core/state-machine/src/testing.rs @@ -23,7 +23,8 @@ use heapsize::HeapSizeOf; use trie::trie_root; use backend::InMemory; use changes_trie::{compute_changes_trie_root, InMemoryStorage as ChangesTrieInMemoryStorage, AnchorBlockId}; -use primitives::storage::well_known_keys::CHANGES_TRIE_CONFIG; +use primitives::storage::well_known_keys::{CHANGES_TRIE_CONFIG, CODE, HEAP_PAGES}; +use codec::Encode; use super::{Externalities, OverlayedChanges}; /// Simple HashMap-based Externalities impl. @@ -31,11 +32,17 @@ pub struct TestExternalities where H::Out: HeapSizeOf { inner: HashMap, Vec>, changes_trie_storage: ChangesTrieInMemoryStorage, changes: OverlayedChanges, + code: Vec, } impl TestExternalities where H::Out: HeapSizeOf { /// Create a new instance of `TestExternalities` pub fn new(inner: HashMap, Vec>) -> Self { + Self::new_with_code(&[], inner) + } + + /// Create a new instance of `TestExternalities` + pub fn new_with_code(code: &[u8], inner: HashMap, Vec>) -> Self { let mut overlay = OverlayedChanges::default(); super::set_changes_trie_config( &mut overlay, @@ -47,6 +54,7 @@ impl TestExternalities where H::Out: HeapSizeOf { inner, changes_trie_storage: ChangesTrieInMemoryStorage::new(), changes: overlay, + code: code.to_vec(), } } @@ -94,13 +102,18 @@ impl From< HashMap, Vec> > for TestExternalities where inner: hashmap, changes_trie_storage: ChangesTrieInMemoryStorage::new(), changes: Default::default(), + code: Default::default(), } } } impl Externalities for TestExternalities where H::Out: Ord + HeapSizeOf { fn storage(&self, key: &[u8]) -> Option> { - self.inner.get(key).map(|x| x.to_vec()) + match key { + CODE => Some(self.code.clone()), + HEAP_PAGES => Some(8u64.encode()), + _ => self.inner.get(key).map(|x| x.to_vec()), + } } fn child_storage(&self, _storage_key: &[u8], _key: &[u8]) -> Option> { diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 81ebc41cba2fd76b0f351690a23482ac162df581..56ba7e35f138a83916bd8f93c578ab046b606de7 100644 GIT binary patch delta 7135 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 b_QHuxEiqWNs;06AjYngd-dMahp6dR8z=}Co delta 7787 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::new(map![ + let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -134,16 +134,16 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, BLOATY_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let v = executor().call(&mut t, 8, BLOATY_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); + let v = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); let r = ApplyResult::decode(&mut &v[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn bad_extrinsic_with_native_equivalent_code_gives_error() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -155,16 +155,16 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let v = executor().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); + let v = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); let r = ApplyResult::decode(&mut &v[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn successful_execution_with_native_equivalent_code_gives_ok() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -176,9 +176,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let r = executor().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; + let r = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; assert!(r.is_ok()); runtime_io::with_externalities(&mut t, || { @@ -189,7 +189,7 @@ mod tests { #[test] fn successful_execution_with_foreign_code_gives_ok() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -201,9 +201,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, BLOATY_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let r = executor().call(&mut t, 8, BLOATY_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; + let r = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; assert!(r.is_ok()); runtime_io::with_externalities(&mut t, || { @@ -212,10 +212,10 @@ mod tests { }); } - fn new_test_ext(support_changes_trie: bool) -> TestExternalities { + fn new_test_ext(code: &[u8], support_changes_trie: bool) -> TestExternalities { use keyring::Keyring::*; let three = [3u8; 32].into(); - TestExternalities::new(GenesisConfig { + TestExternalities::new_with_code(code, GenesisConfig { consensus: Some(Default::default()), system: Some(SystemConfig { changes_trie_config: if support_changes_trie { Some(ChangesTrieConfiguration { @@ -387,9 +387,9 @@ mod tests { #[test] fn full_native_block_import_works() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); - executor().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0, true).0.unwrap(); + executor().call(&mut t, "Core_execute_block", &block1(false).0, true).0.unwrap(); runtime_io::with_externalities(&mut t, || { assert_eq!(Balances::total_balance(&alice()), 41); @@ -431,7 +431,7 @@ mod tests { ]); }); - executor().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block2().0, true).0.unwrap(); + executor().call(&mut t, "Core_execute_block", &block2().0, true).0.unwrap(); runtime_io::with_externalities(&mut t, || { assert_eq!(Balances::total_balance(&alice()), 30); @@ -505,7 +505,7 @@ mod tests { #[test] fn full_wasm_block_import_works() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0).unwrap(); @@ -646,7 +646,7 @@ mod tests { #[test] fn deploying_wasm_contract_should_work() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); let code_ctor_transfer = wabt::wat2wasm(&code_ctor(&code_transfer)).unwrap(); @@ -682,7 +682,7 @@ mod tests { ] ); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &b.0).unwrap(); + WasmExecutor::new().call(&mut t, 8, COMPACT_CODE,"Core_execute_block", &b.0).unwrap(); runtime_io::with_externalities(&mut t, || { // Verify that the contract constructor worked well and code of TRANSFER contract is actually deployed. @@ -692,7 +692,7 @@ mod tests { #[test] fn wasm_big_block_import_fails() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); assert!( WasmExecutor::new().call( @@ -707,12 +707,10 @@ mod tests { #[test] fn native_big_block_import_succeeds() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); Executor::new().call( &mut t, - 8, - COMPACT_CODE, "Core_execute_block", &block1big().0, true @@ -721,13 +719,11 @@ mod tests { #[test] fn native_big_block_import_fails_on_fallback() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); assert!( Executor::new().call( &mut t, - 8, - COMPACT_CODE, "Core_execute_block", &block1big().0, false @@ -737,7 +733,8 @@ mod tests { #[test] fn panic_execution_gives_error() { - let mut t = TestExternalities::::new(map![ + let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.wasm"); + let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -749,17 +746,17 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.wasm"); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "Core_initialise_block", &vec![].and(&from_block_number(1u64))); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); assert!(r.is_ok()); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); let r = ApplyResult::decode(&mut &r[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn successful_execution_gives_ok() { - let mut t = TestExternalities::::new(map![ + let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm"); + let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -771,10 +768,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm"); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "Core_initialise_block", &vec![].and(&from_block_number(1u64))); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); assert!(r.is_ok()); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); let r = ApplyResult::decode(&mut &r[..]).unwrap(); assert_eq!(r, Ok(ApplyOutcome::Success)); @@ -786,15 +782,15 @@ mod tests { #[test] fn full_native_block_import_works_with_changes_trie() { - let mut t = new_test_ext(true); - Executor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(true).0, true).0.unwrap(); + let mut t = new_test_ext(COMPACT_CODE, true); + Executor::new().call(&mut t, "Core_execute_block", &block1(true).0, true).0.unwrap(); assert!(t.storage_changes_root(Default::default(), 0).is_some()); } #[test] fn full_wasm_block_import_works_with_changes_trie() { - let mut t = new_test_ext(true); + let mut t = new_test_ext(COMPACT_CODE, true); WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(true).0).unwrap(); assert!(t.storage_changes_root(Default::default(), 0).is_some()); @@ -808,9 +804,9 @@ mod tests { #[bench] fn wasm_execute_block(b: &mut Bencher) { b.iter(|| { - let mut t = new_test_ext(false); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0).unwrap(); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block2().0).unwrap(); + let mut t = new_test_ext(COMPACT_CODE, false); + WasmExecutor::new().call(&mut t, "Core_execute_block", &block1(false).0).unwrap(); + WasmExecutor::new().call(&mut t, "Core_execute_block", &block2().0).unwrap(); }); } } diff --git a/node/rpc/src/lib.rs b/node/rpc/src/lib.rs index e96078ff6e33c..2e7d4b1fa8a88 100644 --- a/node/rpc/src/lib.rs +++ b/node/rpc/src/lib.rs @@ -37,7 +37,6 @@ extern crate error_chain; extern crate jsonrpc_macros; #[macro_use] extern crate log; -#[macro_use] extern crate serde_derive; #[cfg(test)] diff --git a/node/rpc/src/state/mod.rs b/node/rpc/src/state/mod.rs index d044962f0a09e..19f4046aa813c 100644 --- a/node/rpc/src/state/mod.rs +++ b/node/rpc/src/state/mod.rs @@ -144,8 +144,7 @@ impl StateApi for State where .call( &BlockId::Hash(block), &method, &data.0 - )? - .return_data; + )?; Ok(Bytes(return_data)) } diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index b73bd2e691a2704cdf31e0ba762d627c57ed11c1..657189d728982a285676bb91353fb1a98e30e24a 100644 GIT binary patch delta 86591 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%0A)uiyorl{1^EG2%Y^jn5I)gHHS2o1Jj5?WJPm+- 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 delta 87779 zcmeFacVJXS7dO0jZrfyclO?@#cL|U{LPAGsZsMMVY0iUbQHb|ruaqEsn^bPxnl zic&5jLI4q@21Gza4T?$^5ClZ!`<=PF$p(Tx&-1?jeJ={Lcj`H3&YU)L=T2T)dyiFn z?DTlGa3KCTddY=_^zXodg^pfqVBv?$=P>yMJ2w60t;uaZf z{Ks-?pSXBUV@#u*1X0VODH3Ces-|d65jiLnH5mO-kRSNNG`l;LVx({>Nz$0AYMO-q zS#okRMpE2TaxxkuCnt{2Q>u@DRLRXmYlZ%xHjTF&FF-gk(dmrA5_>^Js}^xgOpExvFEyTFdK^X$3R ztl2c_V`(mXq3tZ`j^_uy^72bBz9Y?%W=k`q>Czf$J=@5N*fRD#>v}?3D80)DNxhb{ z6>OvQ0ox$0mv*zJZ%dP(utE6H!E{=W9K4Y8MNp^~zX1}sCEc~MjHIFSDseio6yY{#B4%6=qb2wb#4)f2? zmfc=7TaR8dX@jEy>tZldYQQ=nIka(n(c#yZjoY$Bt+24)f&0dPv~z2PWnC{+Tef1? zY^B1&qQfJWo!i@2uBdQXzXJnq+-lIb*%cNpD>`gS6?HcrKrVaw$LA_8Bq*!=lpbDT zOB9YD^y_o~Q(4KG8@KzXvKx>0#{U4vjoSR*%C9#5pK$r7vK!<1&wc(=yZ^21MzkO} z?ifGdPhW*}FFKquzW97N_(L1N_s<3u)*=46F%2@u|Nd9j|IqG#<;ff4`M=TapK$xX z4da8>t*Ue`@&?qp5oZ4{pCowK3;%zk!-H0%D$>Y`^;y>ock|jcr5fz$B;K>8)Qg=u z!`Ic6l32+Z{tcyj&sZ00N}VM(cN1@$E!AfeHdzC+rP?gOe7UxI%o6I6Z^)6puBgCT zoGW>x=*bt?L!)|8mo;E+B-1|UJ8MhTv=2Vt=j%2N`gHG_k?_a1z^T>uQnOCpRUM!!pyFPm)G{@kNHDI-+D||)+)+4kapB>)G zZ)?bAhh`@8^hRu1mH8jTJgDofHjNfGaSo!8LeFjUi#>6rF4Pj1fUMZCS*EX{js zwY9T3+a;yWoNhK26`ciCmrpONGiJKAI*)ZKH<-bj2@rYX3O#{VfCoMYPl3ilkf^AXDoy8$wTI8Rx_#sp!qiq^0fMYm1YvMv$^9JP*p#iZTVgB#cznzY9{y@kD` zixKKNqxryMmP^nrEoQ0GRlXAm+rq6=#cYHEB%b?ua`ysv-9l>(oK^rJPbB>Ak6fy{tpuF-5c%9CV?Cy+SYyILyAKUIedi{gEZ` zfj_W(Dgomq@Pj|FZ$gWEm6o(R!d8cth=y_8{E0Q8Is<=VXQ}w9pY0Bi*5WV!!b&{l zfaHCSvX`k|kgeUk(Fx|J1t)mBG5WH49Alr9O%`}xR2o=8Gcb4$tHnvS{`%^bh&yZY zo~M~{gINXC6Hl`{+0w22^l6sDCePsRU)kEwVO-YnUs*>q&P*MCdLUYmo)y9A~y@oiRYbFIh<{q#_v|; z%0W@Z%yObibT?)?pQOrfm2ccllW!@XvrDtP`$m%!|0BU1uglqN;`e<0H+l-2JD;Da zrN^@3GyEkTZg`Mj+r#8q{5_{ke9V7x%6mdfCK(}Xp`IyuQyi{nhv6{g224RR@;z%v zxZGQYKsoM_AJW;rt-MRDoWjPw&!32u+tKK&==s1>F?z@1Go%Ko2WLUP){r?|GvQPh zR&kg`j=p{=-C;=PRn%}J-E*`Eznu8xX~1F($-t8rPq_uAyTDZVxp+A}pfU|)LnWpl zS+j{}Cdip=`zEVfg1lIg4qI}P9L1y`cwCCyTKbXqNRe-?R0$&)jtl}NgDKt^r(nt1PVxKhw#21_t! z!FM)YfFz{=-Dfa&B?rF}D<@YvzlU&lqG^V}K;x^^9;}L#284|vRU-maM8P#g-NhockhBl%HYLrOG+MR}(#SZj}Hr08dUtS#}xeQ1C zh(Ut}84YEcb#H+o^V+SUC3{toRjXeWxvy#+%aA{kdW=1}!Qst-Cb)DW@Z;!TfgeL> zgTz#{lm~K(b_Odi4E#7b%dP_vCfF2^m`>tX%CLT^A-9Fv<2hL}DPtr)J~T^?3jSV| zCC9V5tNHFMxjUhsEjLBdJ6ql_&F3v@$*&>VR7-w}&3&C8sv##xzwxd)axT%BPi-w% zvc~7g%aueB!ds9jI~vMfL(XRnWhX|bIpMwP$=OmaAC06?37rSkQ0#fg!aUG}mN`?LT5}1?VcVkvV?L|7H&@& z8r9(W_2mUja#5ih)qpW3o9P5>Zb7!gLB^SER;TBajslaF<+&|qQ@N^CSQ4D<;B^zo=Bi) zvzz1tfwCPKpshzQT@VWIVah$zkW0mwM!yQOP#s!{Zm|+ozTcETMIDDv#&R*_#ty7z z5LZfR;!v?@F!>7qC|{l;sr=@aa#LRUHd*6iTFUX^Fp=#>3SZh%PL)(^XG{4mDI8oN zR;N$l5pCtT7KUPr2uO;+G7K;dJrk>?J0e}?f#qfR|E9>SP#!1?8gOY_cx;f_8`aDu z9`|V^8zi8i2sCs-5@%~*?=ya*iyUPw7+R!X)ajY;O1AR-}}0n#;;tIK*b&Ogh1v^^$Y=(ud`6>uh&2jI>^@yAiewle3ZpGy?_wk(G!2GiHcyBphN_~4;Ih@7? zAA!?|X?**m^84PSyVnyGm3^wasmpwAHXq(ceznvdtXu#iao%ixPl24Fotp}{;t8&F zzNkQU5oK2w$Tu@Kc#akJIOzXhQO4^2glw_@lUcDkJS8Vd^@;)_tm1G*a2b{_<;_=W ziTuOO1e`u^+69CKy0RLx{-9Aq4 zdaW;8V?0&>2KjNk7{rbxRhc07#KImtL5^>78BD|s1=6#?4=|$6yupG?Wd({k zODce=5~#qxoFLaiKWw6$OMYIxiE^#1z--6?77NS<*_y;+f!TohO0&TSP0?cb)tTDU zVJwdrnf#-)Nswmf4a+CN+B*r0-&Jat7wxpN-j*lG?zyW2wmW|CGvCYAc=2R8mUmw( zd->nfWw%vjx_nHITS*F5*cC_{k+on*-kF?#DYxLmXUQ+{naky{T;x?;ky_hE27YW2 z)`n>R>u0jT>&}sfx=LM#rJVozz1)zW>B2PY>Kys1>?(CMj{aqZ&4+N8R<2wquau;j zlNJKj>8s%)pP4VeU_JeTe7oifnu+F_<91i!%j5%Wro_)4l=CO8Mm+%A*6Eu2dJy&3 zt+Q+7=Ok$;@3U4uB(1dCtdk2c3jc7u9IMR~xbr90$_dty_411nD%`hGuE$(KgAA6L z7|Hr-ll-#gx)gMJE-kcrY?q%^+@&58eh`%#@G;$)#*=o-XIw$g$UHfV1B_fi*q1Ne zBOikA4QjdJW_VW;rFRhy_pOtg^Hcj!rKAgjo;!zWI?wn@-XzVmPJbnzX0B5A?9vGv zrnIl2P^FoC=Rx@blFz=83tT}v$Sj&F#^j^71$vx+QVVV=`=rcLaxap&&d&Qg}36V=j1RUiYOGb>$L3WjgQHB zY{*=G_Jo|lbN;rAmmHJtp!L<|lpM!XkIPl44dRrwc)#QFXQ3UW@P|*xFe;eUMvUvyS(psk%-*&7Uhe{t@M{%gEE`_B@YWlB!!>vpd)%n3u|P=fLqlG%yMAtVEn6qp@+UXpT?Z3R>} zA_G})z_NM5 zXbjpNi-M0(3iIY!-&R#_h4SUO)s==w9<8o4LNdF$(iF*e)s-Po%=c#~e@dkzi}@Q< zLut--%;URiC>;@xORlNp5c$B+IsB!XN?qhFsi_RVK@fcD3f?(OsZA3;I7=aY%ok@V zCyBkLWh;~Q)BwyuMHYZrD6)C;c-Q*MXliq~zA}_pvv&g}HFwum3e8arje<2uVhYTd zpsQ>atq^fFWIGG;bqZQqA2v|dOUA_SuW4o!m|=FalmfH(v(kv`dyN#tM7LX;8!7KQ zgX?SDSS6eH=&HD^rKSR9G=!D~LiWhE>b6ooRJBQEIZiLU-!OCG7rb%@<#-Uspf?o2 zk&&_nj@3FU@4Lorg-f9tPR|I5AHG>h)OO56|8acwNTn(_Iw`gg>7?AIeL@9McEOTP zg3Yb9oiK^zN?v}*E~(d9xxloAWuOrbpJ2`sZdEc;=WPy{c(xTWeRII+0ALe0^PaaV z+t|Um{Qgl&CimX02)TXlZAw3#_%F@8#J{>tsY_EE-c4!3c3|VRn_{5vN4qI?1dnu5 za{2adN*XKv+&bA!c})u6@im+lry1)D=P5l<`u-it8tS3XooKRiGoOB^lKwAXeRrqw zF7-aFyVCYwsvhsIyhByT+@;(Bxc(ZZ#Pht{FuTZ0zFX`)|@d+iQ~mR z@z0=p6yds!yhrJQ9oS>{D4A3-riXGKorLuaLGJOMO2?qcqp6BC9XqPyHkw?s62c&g$=Z6JbwA@Ww|v2$xmOvFwHJ1ulFycG7f>T6CecX?_%rT#f-a*$eL-IW2e%NI$+s2C?_*X(o z4=P6q^Ais$ZKWan@v%yp_8xiNzH*;~021l`;l0su20wt$dVng8-A zC@^O`uh~b*(B2{jkEZ6?vWaRV`Y7F4@pk@wAEjkrqB8l-1$MtZ3Y0$Vz0G{oSbJ8k z6o7_j`K^7G#{&>HprJ1JRZfA@zdWYYL=yeDl7%Giait!TXC7C6NAlPcN^ADs4!-OO z<&l43s|HUhQ>j;M(dBZvpVCHpm3Qc;6e7;NwVyJZI(rHW;W8g(CySp_GVrwjDJ2{8 zs`ghBWa%hRdqzo@{+lpmG-}#9IoLZnnC} zGE#!-;-f;PZj%r-RPoQ(ArMXcCt8)O!i_Wh{zd4 z@#H~@uU5J4N==g+<%;n_HmQtC6%E9V!Ajya>bT8dB`q}T(hlpX!OC}n3%kCmy!bB@ zcJx){^Q;}413@GTQRO(cZ4LyHY}vOlMD~5MnI9ag^n(M?@ipa3={&DIOlcU(vFUuw zFr^vWv=tV&Qp=Vs!U_}|@#t_RB`EW6po?b@S8igV2!Wu#jDVb3y26TjLs=qp@WwZl zr-OPxsGre8m2m#_NHEhWK5ZmKZjcAVMk#6WbG8UMP&p`Nbhk$5KzQ>}iZ39>+fWO! zP`@9A^)vYketMMB*ohz%VzIA(!E;9whw^(zgDp__!f2&3So`hKN{yg$5sUitXxkz| zPy0~)z!+shKz@WQMQi<7;6nqRd`syq&Enn0E4BYyhFLaVIZa)ZiVEwi39w$se2AE& zv|xnSEt8eI{=3QDJ6W0eFB~)WZD3!>wnTX`a+NWA3%dqTlq;~?P zhc@z(#Sk}(XDb8#r97DrnWNk;4Yv-=QCIa4OOywsH+lS0 z<^HxKC103HdzP>iu=Rw^B-4@Y`2L7E0R+n@$MNkE6G2>2$J5%Q7@k0#AM83Fs#C(( zEmd}ScJGEps3*=fy|#zH{h_j{678$0X0e2A0&}cf;2mW>`H`|gmPT83R)X7*PO+3B zGW%cyPy0j}nl=X8b*8JaV=QQCI0a2TMtGp{7^~lp}oy+lwTb!>`=7PRWi(vhN9iA*wZb}`2 zUT8a4Bv_TS1%fBqKS7mEMM{^bZ;z};u!v&a^b6#<%&V_gwnJ~6Uk`J{^V%NJqCtQb zR?m&fR9PBtUH)8AnDn~!_ZDR_QjW9=FW#n<*f@2T7Eaos+z~kOMj;`vRZ}G3Dl=Wp zwBFjGG?T0yJK+*Yo4Ho3G;kjSSPa1(#2dEqcEw74_n)CTBPi!`XwFv3`8_npwHrCV zh30gkoHL<0qbTQ8XinrF!18XwEpwIUJH>?b)OJB}of-@m{4{)@aGp zg4k|av z??^8G_dewT{{BI5*bJWZ4Xlf8R+Dd(Oi3EYA3mfE1m7K@WDI}sTcyaoQ8L2k`@vl8 zJR5n=cS`TrSrRrG96ozaVGax$Bzb@5?|-Mf1Y@K6_b@g-=bgV-;*dQ2z0w4kv%gpR zR$2hqLXlX&Q%jWTDep;!9Gd+e;RYi4T<$|0=%@08y|C+|4l9$TxB2^r!B^|}k;6)k z#CgmQN`|{gAX$k3EaL5cQ2NVLZ6urXD?dP;OyXmIRN_)&&?VW_I{s?->opZ$H2%io zugur|sN5_?anBK@O{|JYCpIS$h@}16Arh9UPvyOjD5-@pwB&$z25ai`P}0Z*wO=wc zlcKI@ry1V1Xc>uZSjC8JpX~Q8%2$T@o%zP=^F21Cf&q#ov9qbsFwxipmApy*XpiKs zhXo8#7v0)Z*JVWeV(}My!?K|l_$9-0C;6DPeGGGF(4d!}GNR1Fr->>08)|=lCA$>6 z#=;k+{aJ&K3jh-LEuI&RNQgyWq@g43>(dE%@F+2|PvZ~$q_nDNNrNA&^B;avCRCbt z%{0y9!+%ybC(e<~FrVU{59t%>^AKAQZFTn#y!S6kRq1O!>K7$ZD(3TlQEt1z0BPL& ztK#Cnx>TJvI|?&lKks=|X7tIjv+?I4FrV{%NvWmH&Pm&czmq-;%8U!|(vI9sl%%(n|X5 zA3Lo@=z96fCl!~pp1*$b#yGd*si%~7c*EyE85vdcWtaQoe;hlL=PIhkr<_(&r4|2J zvpP@y6^nQ?zY__GspZEw~DN(Qan1v)I-iI&$EPa-p7! zj;laR;j9doeuFU{%X5EIa@=nV0RwT{4sx~cZ%V#9Rvbt(5-4=UpZo!i{;uDY__Vmv z1sG4iA`G=Xwqyso1jf%<%6UbX(5d@^lH4+$1czc&A_Rdg36vkS>^>%kjFP)Q0i5vS*D%9+IjGIWg9@r zxu~2?U5lmdO?0ot%tUz;U4VjRJDQp*39@+J?2=NmkffOeX(lboPZ=1HW}#%UrCB6N zGZ}Iw)fFr4vXa4~tGS?3JZ>)~ zq*)@|>HMxMO5NBR?wWQ{bx~w^Jz4H&`Rpq&P{HUsuPD`t(a$D9j3oW3WO`%0iAJ2q z+^&7V-TX%&|y^Im@`(Nao9E%UGIsqNoNwQDky`O?3Y z1S!E5ZvB!~Eu?}lA97;V2wPnBx~h1kIR4aCCD98e!TiRV$^h&RCio=YtG!y6@3^W& zX2iGl#2X1fEyj~Thx%+~=1wC8k1aLgP}RVDmAv=@!Z0_Ix){5bq)r^9##N63ZJ5hU zfI`5W3!}w3!0_~k%7nrL7^Kg9?ukFEFGk|PC-@BYysbUmj9C7xr2ZX(ku{B}-GeXg zm6!5DEJKQQQ^^wY^6gF_v_?_$DiY#BX|GyMRJC!19R{l`_{a7f?cIEiu6|rmH8O!~ z@o7$Venq9h5makPn0os^0ujZlxYV&X=)~5T7BnVaFtHuH3P{t)qxQpw{d*pj-bT1g zPZxPXgzAH?8yTTKNK_7yX@hgXrv^XLN8v=_MatX&xVB^35 zfshP2cja1?Zw&J}jj%F5NP7Aw)b=&0O;Kjc+gxZ~wKBi^4( zMpHar;#CJ%hg63kPY~mUVLTz(AsLazqB1(_i^E>A{LV^hy*3z`DvHW+MpR!zx&;tI z%oq4|BdWcp75H2l;8!3EbVGsI60#e)qz@8|I3b)8`0h$-Oyh*so+R|{i*unQDxd)Z zE*Vye?u){>&>{u?*p3k9jKm58umFu$j#A^2A%_fu89EWbh+8zYAxlRgNtrm_B}z^A zB^c3k`VoCqvh6Yj2c4h7vZ(yj03)tHs!fbi8#nAanoxQ1;S%b$){_d%3(NKh-s#T)Kmrw(5t8Rh6Wo);#lNm4wY zlAyK<5eryJ(H!JR;&l_%E;m{Ojoccrf_NjX6wePPswb(B5V_u71Km@N1fG|yHVEmT z&q!A91Z2M_t9O9VH>apwDj>8y8Rt{f0jSz1Ref60`M0U+LsEj3pQgS+x_(DxHAjoJ z8J!vGY!7jC6#f#2B=Dt%+NEIv%~cf4g$OWjvOj?)q!|DgWWhTC_gT|Bzz-b-#TpR1{^b66gp1&h;}d-9NWkRtt38km^s7CQ z9P+C*ItxoiGLpfNMq+pU9$SO zQM*M;-&vdQ!s11pZuh9qOCziu_oyosq(ghDx4Dsh;4$@K)N1~?I!9-FH}D?@Kt)`# zqMuRmg4%-hR`Ih~9@0oF>v=G5-0y=VCA?4?n1_?zRUCd96qL&3T zO*XhjHn?p5z<0c;j#P`}CQ=E%_a$|dRK!odr0#)dzwTwVN~;pJAzsl@?aF(U;BkMI zY`mOKcmtkDvVR4C4A^0^^U@+r%XCLOykg=`1n(S7enc^Z>HnT z;G=!C_|@Q}y>D~nWZ7G!zlq;&-DPG$;=*B7&}RlZ$#DF7vfL2A1Y6M%g_(};gU|LD z`-6}67`uXxfM&D!OICepb`vyje0nvHY< z(ppHzBF#Zc>|qr6asxl1h-%{}A>%B7Z!4RxqhcMTLy^`+IvHs_qzjPNN4g4W14Aw_ zx8O%ZWPFCS5z+%lZ$i2kX=9{Ekv2hk1Zh*Gmyk9?dLC(Wq^|?T7Dy)}g<)(iKx!gg zg)|@Oa-=PhZsDK4s=g&H{deej`(l@r*o*zOQ}6KghD=Z32fvs{d2gnRd5*=IY7FcJbN zkD3e!EQU*ou`}f&nO^UpjZzF&WDS2qtty3IqW7i@n4QIZ<(uluo^svr79-Wzi1O|D z10&U}rl^K~{4n(eN%EZy(LHqwD8jt^gzzbn{jp*j#ve{|5MAKI`#~A(Gro1Cni;lN z!PF71{Lhi<_W?NE1jkRK)Q*s#wMRqa74e%#LopOtd^GH_Xfy(0?l%3vYar-D&GoU+ zTbH;wR!yr@qMBiCJ>AVcG;=QoXHEpl%&Yh#V^5;H`6ZRUAetY+!6LP?RAPNNR&A@s zH6qFDhq+*z>GpIt;t`Xeu^RErNou=jh~uE_&9H@Q79TnZ`xDq$S~y8p{F(3}+6}G={4_x6N4g(&i>t)1sQgz-ouTHSxD4 z{zl2;&xV0}A|=+j?X-LJ05^ zV~k9Ss>wjEw653hCh;AE_cCGsx$z$Wj^Ra<)uxE}|20{yT389;2g7|cyu(TeN}*5K zUw(ut5?P+n+=w9iJc67krxDTKlS01-AZF>re_=4#n~V6IM}+uO49|SOlPvfY;ZjAA zX2>f<0KB|ysxZF(nhI+*k!Md+XV;~-6YW8g zF^G|D4}gSdk$lYnLZ_8*X}TH*sg^KZt%;=7bk*M%sDz<9U&q8Kl*35f$KN}Z$|slj3r ztkg*j!zh=9PO=PtFw2m2TO=;!kIht@s!Q=+Y7t*FQ>|P%9{!z}KO{unurl(l!Tj+P zGu2igXznaEwKiy19~D5*I6+W%fS?VKIRU~j&RmLro#u-L{!UrH1eL}SCFn~j+-;wxvX^^tjUw)!lR2j>W*_{}+@?2|caLuCFoN9`ke zTgvZ$M{UqK?#8@Fu+#L5B@RB;#O^$#HgPc)u;55+P&JVtBLa+h_#If_OL@jzwT+zU zPU26^6_Yt*t^hLt%7wXVqe`SmG+P%(8)3J2;(7CVYSU^72nm66@S3Yw1G6wSLL7@F zOcOZ^bnn7v&QrIM=B0VVJG5BN_=QDUy3)}KyeJBs^d1DMGJu{bHv;uYwGP4o0b7T@ zNnW=QEdhZ6J5HsI4G08b>5;r3^R6aRGVfxM!n`ZQDzNQ4GP}sWYloEVJ2Jb-z9XGZ z_8r+?WZ#jUNcJ7shh*Q8eMt5l*@Z<&s~{!wu02vR@2Vmt^R6ROGViJ(C9{s~!V6ifwR5@jFD00$CF*y^*JFANoMT!Rl;pg!mVzeJz_ zVa{-VW`SC*5CI*XT>k_pQzR)UtVw2|!-zGb$qVab?srg{Z6HeJFxuG`WsY5^wh7D8 zVdUD@W(plmaTsZ)MoDE;wDXxmA@dwY6|*7bwl~DiLJx(L9twvp zaX}AZC&gLl6XyxS(Tlx!`~j(i12zF2f^FC>(!XavqAp4Y6UR zlAgxz_MXZx1fi$hC<#YwG1(t3w&HC)U77SWlvg`XWmZVdVRQ*?2WtiMH~@+=$&c{5 z85rw^f}#G=rZuuI0DP{nbYSnYaqWy1^HExpIJeED)KWb$ght4 z>J{V{W}={41qBB3t5%R-8Tsku@@)j%*X7#?#2_E!FGbAsA_FrP$SCx=5wdhrAl;QI z6UMoCLIAh4L68!@8{{V;KedATiO5e0$v1P5ksOjCIxfVB)lh(4j?xivfXPW_XlX_e zgjnRmD7`Mf3i7ej9GJ?iz!RC9PFm?{Sm|}K(iv8|Mk~E840$(J6>R9L@ak;C(MMa$ zxF^6-+P?;~fenDud0yJUj6#MUk`e4V8TknLlvWJpryyTNzRhyA@PwWC(pqMA zAY;-}HM>xF8+b3Q0Q!esJjQBvkrYQPm1GWN6Uih@p0J~gaPo(!I^0MIomBdbqY97( zXa}LAhRE5}QlXP7q?Qo=w%{SbA>>YBxNt~>v_U!MuT1b`U?FGA30c^yWkOcyIf$Q3 z1Xt*~2I2i1nGOdX8Yq>jLZ$|y5U`^Hr!Gw|I5WHuvK=^xj$qZmn1$|!BM>;5Db$TB z^p_o<$No6>0wlrULT#uve}iq@B7y-M6wGf+X|bz^7AR6_%hVvH0?|rsT&+C_n)(Vg z$cEBl5y*B^AX`9ze@SNqV2P{kz)1!>uRN3$R2K15EaUeXFuTIkd}Vi<4Cvdh#GW) z7K&FOiMWC|xt3*Du`^=|@^NC`Vbn4_l-QZjy0Go>M9LMRD4F6R0UL3{@ z8qFcoiLGHeY7%GQj7|*kbT-0n6jN~+ZHcRbK@@aOKDK=zCI&mWcAXC8>m=jRu9A`M zz(vZUAE-iJxJ-?WCM#E5d16X#p-eQA{{ zrBxb~uhOctim$Xv!}3+?mR6};TIHq;p0FIdJ83+3x$3W#Qd-cgeB0d8wzW&EwBR`_ z)Y$5vVY|}2yzTg6SH_gfybqqS&zXHB3lvFFrj?y3bk2ynUT)b zmFj%S!xybo`-Em2minF)&bL}>-Rg%F+O?n+NFhvGE{I<$02|L;=$~%%Pj{ZaO3f@x zp^ecLqY_q-Lf7m7w)0?!Kv4B$*-z|`galV%n+uLUBX9*H+Y1EQN65+=85&?cKx&2rfYFV8{l)}2(6;o)XThA{57-l;djJf2^)spoX_`S` zV{edxgx(qs7hPS5Qw`tIjYQ%qrq&6lpa<9ybLIMYj4VfEe@x|T-_*>v!q<+kQORZH zeWI>a`Ah3?W_0(b*kW8=gtHi_MQXCudA+(t#V%a@X7!f%tO7q?IS{j!FX220q!fTL z_$!;$hqEwaU~kJEP*4G#{(u)OD1 zH8BjRh<6$f@WQQXr|8fjVc^n`{JX7ciX=L3$m?uVmqprv6+gY~Ab>r;O>Jy+gTAD2 zs_sc~cMwR3@Jm^(&fCk?igdTWL9HadVY_OCbXdvV=7v>Mc9g3cjr)3RDwA7U3L(Z$ z;?I_^8e1^{-kqpgT)t{j#Q>mcdAyrfG`8q)=uXwRtBgcxZmLT2sgto8_(f4GJ1;of zx|?K_okuR8{mb?Usco#C$N$=s>E55pM0l~uE*FXRVPk{OD?otRERtN#Dmo}a#a-RYt)V_8E0o==b z{sThX@}+73gEB(EVHFs-X`#_MD;Q_+NmcuHG7+Ne#{YplzkFFn9^c+;Ab|HQaC~`h z*;Jh0dkq9|y|04+?)7yLG~_RRg)O4MR4o4Lnz7)Aim}4>m5nuc-!()JuJN5;2Z`P_ z*kP0X*K`O!R&==ZU|EL|2d?QbII4Ld*kMCH@jwvFUga1wShozqm&)WkI$5p_{1T1Y@#=@v4t`sBlD@~fqV1~757VA zdBZ`;l(=D`m_0X7{thv?16I%P)ai8D;*}B{O6g{09ahIeTUwv~tR~@oW$VBx^?npv zjnAkL(3P^&e^Up@I-DgCA(DT0O093*d{Hf;DiMFEQFM*9?~1xH96kP|YA+|;NT*sa zXxf*O2RaIR6A@ShYaP71Q+w1IRF`~nwC1^akTs+dRfsIa z3_!U&J1#~l5ymAPKDr~bRQdAoaIHlxl45ao@E!sPlSrNh94gYr_&2DYy|)qvbm9HN zwYr5NAmS`hlx^_|o-iV8m5XpNb%kT{6?H|L7o8#ID3m*#B!LnkgwTHmYlZDS0e%?x zBOYYMwwe#;LSbo8Y>p?nw20cbfg61a&1qNLFc5uUC&Fg1Zaz9qNu34E>O6jzOIw+G z8!;8Nq3cO)hAV5sv)tOsu(B2>+}fitfkWlxAmfjCG~APJZS-h;Xo9mNwT4p9lz>Ml z(?KE;`xa6?1~WPo-fIzdnu#i~K*~{tdB32YN5llWig_;sjKTtK1JvScy;@3ap19-D zP$*VQ7kyBxw$`s+?M*W1UW(HO+?c=gc&##>$*P{9J@_DCwIL)}1BMb90I-seOV_Ew zxg}^3)A;Y86&?%CFF&53wYvetZ4=!8l`lVV8?KbHUf3b#kzf_D{ZnfUALCZ|_eB^Y0h(Hvky&LadQ>%u43TtYe z3|c|3TWL`RIohVO7kf~oxqqpt4GQV!9jALvu%DN+L_hCjX-iPUEskTmJ(Ha7iNPAZ zvqg>3*;+ctyDVF)BQX0GUQ0R5^jcasK-8m_R<$C`#@EvB0A|N)X%7LjTXI4$^LW;T zxjzY*Lws9~81Gz;)>&YN3A-_7J#w`-N-^_z7KOP#2=;R&SM=krt?dh`F+I#ZEm*@- zN7SfSM;k3rT38;X-oWOjx)o#7uddd*5GKxhVdlrGFVTGneUi^$_A9{hj>HS0t10^% z8VZww|8eSDK>{&g3lY3Uk8MRKGCg!e5Bn^vjb~w)`3bcTW!xdVX+fX)8X0w>zgQCC_4l0Qkyj*Q*wBKm7uQ8g~+@P4D=j|}K z#>hQj=MJD_HTW+U(ZpEVq(S)wD&Jp76?86@q$Kn0sd+52E^A z{EW3_^|mncBDMGuSswCL02{4W@E_nrJnvH~-Gfp@>JfvW3IMIZ{Oj`7=MWu~2bc*@ zncl*upEX-N1@YRS0iY}y?X)PI0>5wuMeBKKdps%~pKHP1-_H!vn&*JfocMk--`R8dD8xYGW;2YVO2619S#$ zt!}QDL51;zEv*_x2Zh41j0AC^8zpSM=3;Hx!6R6B1b;~rEv8|vefccHrq0s(p2iNS z2bd6~EUq;gGHs)wdQ(ZK1s+ z{U_GpXjA)~)bZ^twfYiHguK~Gn~bw$>8-V%^f;sqv~&qy-9~#7NsYGjWIfQMVH3=CE%bw(H*1TU6T9TdShIPCEl7{7P@_J@hv3QLQ?L($=|H17nU|OtLZ)Hb5S#^>HUytVZ2nS z{*7*D0`xcjb`*bfu$CjkyW`m}hh^|Ksd5A_9*m=T7rF0MErn+c(b@-pj~=4Y8ym>a z<(GzFdf@rJs@y83gmd!;cJjfw`0xonMbhtsuoO0Qx44!s`ub0i zY~#JAC^7uW5n83xRrV*SgaPHqbSw)#;`jSs^XVhB;Eg;F@KJAQ-b!U85FoAF$``+( zVX!ax_BXU03>T{!yIEyx^_$vTGFz~LcOIivWn*XYXU1q9>z9a+gLN1FDeHt;xiphb zPq)J__zLxqZ24n7G7S6zVssem$Y=b*7_A;#Fw3erR+}xcQ9tvY<1}#}ChiHsSHY%f zRe0W8T9P!6-}9E17BNqJfpN&7~>aGgVv5 zY_$CR*QuH-6t{PA&(+FlT2}Q165f!9luRXmI+=D=t|83sW1wg(Q8bM{HW$1J5Ub1K zCHP@rY{AVi<*E7V==D5uqUPfRrfUyGma!+^@$c^7!=`ID@w6FQ34pjdLyJ!e-XRT1 z;@1qg0}NZ(j4qevxij&a&1K$orbbst51Og9$eMG!98IPiFGrKNf{&od8^=qpj($FX z{R8})S(=yb-aIu+dxSD^pLR5VbT;~5!uf2iJ(c}1TdN&D9G?I(qX37O7d2psJY~Ly z+h*rzF{Om;JxA+WLjX^wO2kf|LL{UQkfb}zzd$-fvrC_>ALc;T)0~W&tMv%ZEgga< zeh84~}u^J#Db|TCw1zZj?@H!+Doxp$pEXqCYpBr(wsKhHqj+HyiRgx-`w)?P6V zr~bh&e58r1Y5mKzCEE5sKu|XkG@C2SA*82`=6TEQ86c6!Pg`07pSD~}WV?^?tDChn z9dFzTg??zc<`bFAAsLrk;OjPPK2JVA`T}kbR4MCW)(Z5n^#cE71(b_Dn}NO~R%(%K z)(KvDrIt#oi&*Q?GNBN1FC);SJJ6!NEzQ@1-{z^X;=dJ_HR7{Z(TcsmmwpVLbcsL+ z0WO)hv9xThgqSXhf3gaT<{bS_;_FsuNu`7cV%dZcthoyJ#f0>czz45_GDL~BN^7o7 z8x7eQL+ulYR*s5j)#+mp76g6rW32_r1HdM_EaO1;YVGd-_IAMutF?EeDORITV1jCI zlk`gEIjg|VYu0GuvRk1ipZHWu<`>pz)z}A;O`MUx6HdNTY=hNih1_i!I!Td%E%j9= zc&)YCt>9v72rPFdZ-UtW@MFy%R)%vBqsN0{J1Fh~Vmm0y0%BVT8HnxP>$Qc#KuEnt z;Q1Y)BCpN{?M<2r0r8#<+T8`5h#VArgz%l7eJQlGFimMv#Bq7uo_4#_F>bPD1_fH22;%ZkrazL!2B^}+Y4a#Z_}DWOU7*1=<_f4ZHGI)luz8QjR`D=Tt0KYQ?>5d zq20yUkzIV{F0BvEh_4u;0V!@`PvG5(wY#H^lJiqo;FF1{P+{IevDFG^gdx5zZAtWRT*v|;! z|LrjZjrQ~Bb!R6&_Bdu0IBh%*FaI)^PiVJF2lyQ)w3<<&y}}!2-hF)h3GJ=_VYC?j z%t@_Lc4&uz39~2583YwkLioKn;T{C_)Jd&Pc|d>-0BLDu`n}6~BV{ibO zR^EN0KbsODfqk17?w7u3-TEtnKQu{I&T37FA$y&*6(jC!@4=6q)yAXH8hB3YqiD;1 z#$rz7Xa3Y`TWJ@yO|mwUmUo<;lXOKZme{!q*2zD$dBTKSqv$?f9H~2r_t*Zd^^-1J zIajsTvh*>r}@RDBD$Nd3Sy@wKg0ASeo59hkODw&!oxVB z=mXf#$E^EReTYP=_a{vkpC(Ar^)&YCXx>!Ue_=me=2e~g=P>e5I`syLWP!TK0!8TL zh`6wW!3s66Ugk~0^mOX}{xDs97y{kb3Y*Po`_ z!JE1Cuj6bCsN*0G4)e{+*iI|$wFZCLtqa{U+^vtmI;iB)>6=is>9cB=`K=zEZi;@% zqrYBznPf&`b^&X$z1|!-jvp_VyR`V5%fg^#Wb=M`*{TY0>zFjAk0zWaH_fMdO4zz@A*z=K{r7iF$WdV0`&6`fA|+G zF-m_t`NPX%V*HpG+JZMrV1yvBAr*M1@V?Rd{@b?%tP#Yrf}df6mcMa);l^LA4ryjP zi%Vnl`8O>K@G#2@5-A{*{*6d{Y^=WaS{!@C>CZ6D_Fwq+aJ?2+6ZHny)Z*4x# zVCxkN&m8{;ua%^~6f}B;KrC}gf>-?qoDxAxI3-^t>CfY;yUxi7()@Ld?@HEJqz0xm z=+g(LRCx4X;`0nC`UILhd}+EPACjt*ULrCi@K$Mh`acIgtk=>INs)fxy_V~7mS?Fx zggys7cDX*)j?N_V)+_XO!Klr`75dOf+~`EQ4aPIRNr;yMDYj$XwNk%Lw;sySk1Oo0 zZM;i1K2W>rB7Y)VUtIdZ+M<)fuSvY#uMrWJOMx%V7N6p;*V4h>3Ov1v-*n>cwnB+nML z=H5T7tGW6##%6Bh)9aSu5H!>RI0!=xIGnAk57+kmSw!Y@VKcpIB$*IcJ2*IM`w-%5 zbDQev$>;~USIFY{(O^fudjE~)>7jbUR+<#<{ca8RoIa~dA|mFBLZMy zgZ~787#`J7?@W|@prM`xB93XO)0XY>hI-GMble?FSsbXJr4*Ql?2njA;z)T3Ha$e4 z$mUHOA)t8Cy1SA7Cky&bIeB_LKDLRz%SAn*nalikBrj+R5eP9kwyA!MFnOsN0-XS0 zNi%)3HhCl#d8|ziTh*13LkQdNTIi{~q&WoFl}Y#s8!@eg-jOXD$@{iIzne$$aVpV4l7%$XpdqjMc)#x^PVne#I8c?5BLa*?;uu=GHCs0^FOs zv?Xxb^QU#BrG8e$UEcfJ>nXvj-ZHSPaE3S?$)Syw+EIUzwk`&B()+M)RDPn9Zd&i& zqMyg-bvx-VGG25Sn(p9F&2z@`88ekgF5Rua7QItK^Rc*;ftd&JI>Z^w41fD>ngVX! ztsBuqaFRUu2XFVn2S)kvyY-%_7a4Yq;Rn;_HR-)!e0xk(w5vRHkA9D|ix=IaH{`$F z2^AuQL>BMd9g-jS0C(4K3#YE}LE84XP_S#=@MNBNm);p=kKUzsPaaoEQE==wOk7K2 zo{_~jSYd8RUV%Y0VGz!9dO+dewwxaNFlmLgzXuS+UZd`VvzUmfPA!$P1Uh)c9FN8u6IK+ZMuF3lHaE5^|1qzIYWO6Pg7^;6#xEdhMt3t zVrS|@LS!jy8qCDIGxc9XGNCq+Id_&m83Q$&t*>Tm^&Wot9X;2&_Yu9hB<NsUHfLSZn*~x6t?z{cVc( zhors8Tld%fNFMDEGh#RYyTAT1+bi)?FX_q21e{_S&*(j38=7CA*8Luv zGY0`q$-Bf#8-PidUgIUt=pSR$DbHdmm-F?{>c5l?`uTJE?HDHIdC+{R_0;paE}`lR zFX)+o{+$=}CMf*=1^qcBcfP3KiS|og)bB%;$d~j3=;r84#BNsD%UGJ|V8AQ-7nC+H z)bFKq`XGG~&1uIW0;wm4=%di~&mn+hDX;P>Dlf54y{Zq!4MzOQ*Yt_{Zi#H}+j!yQ zdOFV;hJ$X`As=%+^7js>?ybSYVL@WFwIjr6heu#$mh(5?5Jdmw4UD#wfB2?;v$Wj0 z`ljxZQ0N+^4+NZVjMASV#4nH5dm#6YG5Su_tvVK~bg9*Ctd6g_@8)a9>*Fw)ohRt$ zRHWt%00NDC;y|zva5Jh4b|vq+)B-0{sP9+GFV- z=#63I|8K64@;|#mG38t#1NuyA;NS~C)l;)4#l=(faLE z{eIyS-LX#3V_Wz0$?NRxL41!Znjc-KznmNFPlQK=S1eJlB0NC%i{newUO$|6a*nZD zp`}iv>HH$SkF?*av|hI)>UZk~{l4@v-!U|RZYYjY*s$EzH~rsG?e_~3(jGNm&P>d#Y}@Qq%L(!6i<%w*a_LyxM7 zD+bW3w&ZP423*hZx2JylB^#q>%nI6Mee5PkdS5T8*_)LF} zpnYPKjm4Xr;343deXh64dh619M?sFmflwP=l}jIQ5a?*7=uogopd<6oztUe#qL{RZ zRpD@#hJAS4#(d`gBkoPWqbim^(3wfdoMjRw3HurX2w|OlVa>4bpaP$>Yl}J+Sbrj)WO~Z-$z>=cTc`{DaOb(#f=RP;TQzmuV2Ih^T zwaDFHm?vB=&$!Rrm)IV#&)kK=Mf;M%PXo8qq?%Ng8%g?X!N=w&O^dg)7CX$X-Nhfh zYv4!D(gPnFdgGh8bY3U0eD*fH5t2^JOn4J#3XTxr9M5!9e_G54%>RVV-(jv>{p4H# z;dBhLJiRmNa|^&cxq!X51AE~|{$kdh7%$heI=juy*vy^gs?FA4+G^;oy=5um>+2HM zNTh(4NEZ#`LSo#K)W8%tJcB*B+w5cKcbe6-XJ>9>@-B1h$ifejU-F&=^z;C-Ko6)` zQ=qMLBd%DYmw^K%d$AUl9`N#ot}R+*db+mkm57;mY`GTuNLvz{zn3l9Wp?o*vv-=? zvC6y6mb9P1K)v1O_Ra9{clNc!a_m3w5V0RHO`pxS??$ghXe=>5XIl6HTU7#){K!s~ zm{*y(LTx!0U$F<%^IUB|*+)X84d(Q~ruW(YPs}dU-uGF~r{)p4Z=9!2PXJi>A%KJL zvpJudJD6sEz;=9U{*K76*=ydK``!fs265@ zjV;M2%=syG-SJR-*!Sj6raT(aWo&93Fj`At)A0TuVjy^c98X-u%eMY#_F(Q=`lGpn zhk$WxK?BASc|9Pq_+h>*;-2pRfyuW9_7jQG2hD|zHC%dk`G64@kP9MJ%MoFF4w8=& zKYGw?p@FvakhuYZT8Cjg&axqg`Sj+#!#K|Yhv=|*Oar1SfurTq%1CktH_3m$BW4Gn zXB;tC!zD5eGEiGx?N%KzH%9I*1f0XF7#E2(a445mvm8c^pUr{l2aQ~_Rc)0PY7HjR ztOwcnpUsI?TDl~WmS7h@#FqVR9>N*LtHz*-OC~hRwXnRaW2O2p=9j?AwqMM5XiK_S z{N*H4mUP+mN6kYlqT;-b;z!L+pdQtN`p3*KqC70YNoXys;!zDO z-ULRsP*nsbX<&nnoBMSJ7+pSH24)b{XiuJ~(YhyBA9~j^z*nSk%^9(uhx;wnK4bR(Q9+w%MQbmhtesSlSF~21mIJ!a zUoao4)P$EN_7Zp@W(}TiU}KI;zQ=)w*as%5Vdj5!V_?J*x3xpy(cSU0CTXC_v}AX@ zZzZX~NbAc}Go+p_&3%%f2iV3*Y_DJr$K5CFoYFsX%PQDkkj&CJxKP+%*vwrtuPpJ; zuuYVu-u$rAo>``v>`Pgyl9++uq9HJ|gPoHl>b`l3bGmNtQ%fG=ZR6cgJT}mTJ&v zVxO@}V-aL$OKzEDg6Zb*cUk{zX)jV6_c>y4M^N9~NJ-G4Yx0nc`uS$lCiB%daZ+Z>t@!Ith8vo3jT=Zf^h>M;_=A_g=6LEoSlK^`+;HCfsQGL<8w@qp>tz z&`?@L;g&{{m%`GWBFJkh-HM>7sf5dk<1aUrviYL?+Xd2iOvGC^ld2o5 zQ}d+3Yog_}Sr{^LhNXn&?zc3D4&vIy77|YUvWHtpHz4?~g|ySSiLGfVCD*vlwUnl( z9GNOEG1XvCx00;*f=_WP$(1p8*B1JcW}aVa%qq8*?xY2>S*@k(Omla!{jH^5H0x+; zllVzPKAV|flX_61n1yD@CAF#E-i+l^ma%yO-twD1sACUF@rB__o4$Ww>Tw!E)8)TE4)!MEBR*a zOWV``V!NGE;|v^-qTME5mHIBJYN9GO7IR7Yw9oS&m(-_Ig|nx?{9W4&)}~O0inGh5 zvKnrwrKxl`>+Y8L@jTAb>u#x*>CJg;H)U#k+gK}))KDB==)TZU5msw$LlJ&nTukR@LeV3_7w&60)&nJ}EzA={)4t zU_qx;kJH1=H1G@V!!rHLi~Le8ewN_UeONF2s|a6K@9LNM0aV_sWBk(ix~JyR_x8|B zwBu60%;Wban`rCkhk5LrUt%aP{&*WHWUQgJ`g|C6zT8NRqV=&Gn%NF!8epy4NzWMv zX{M64GmSLcoKNQkusmtqXT$@JD4|mt0~#&71j_S-2Eph+gJ9U9HS=+MYF;|cyD>&4 zCdchMNL>?b2voQmMlx1lRKV&MO4*bn z>ThPf3Z*K>PuZ|S>3$qF_@Pj`Hl_Q}iNoRLlmP<&_d8a3i4Ct!vl51`97(nT@;9E3 zH|ivPWpd4YmfZ1^TyAD8Py|lW9q}X(yTg3# zX3cs?5g40!J*4`k)m)6+FhB!y*`Gb6$4pzFWpjH~gKy`|O&di0h$Ab7a9WJj=}x6}r~>E6;%6n||W7*l-hw+|nZ z-{~V28qY53D|JL#VP9z_f}i?Iw*lVuc+lTWQ-ZZpyi$p)5Z55U~K-!b_@KWAbY19)hEn%kyNUKQ1 zORkkhLQyMSCvBlUzYngHMpH6xj+>`SnXLF;7?ly%OOuR$v9GVkVEY$qFi`4=;P!#= zZqBm>1Em#+IS28)y9V*RcL(vjp9e`(iEMbV)IJBR6UG3IgVpnD!l;;Wdgisk(#<(I zVFL?=blet|R|ltE&$IeBNRMFq<>ebBCxY*8ka}oPTd<>07cMg30OcPdJx@CH{g5(y z$@^!GIE?!rrUp+h4dh!%e{nJjD@z3ihJ*|{sD$mX0>iwe@xeo-#x#+;_f{#N`!c-i zW9x#ClCRtWth}6fzXC^9nQ7t z!QoPix)(%G(fIg7M8U=JXW6ddP{t2gdJyjFZq_O&wNDUP3f9yRcMQ9PBnQ3rjCtH{ zc3(&ug{;FNX;2l7CD=`Hfqt#6h7Sl!%>ZyuSZYu)Kyg^24Vdr3Qni#yVb!O6rE(+a zx0oYDq^{L;M&_U}JO^j7O%W;Dl`|Kp+zrbxTpk*kz+TNs!~`Fv+sv&igq28!2}+{{ zeXLq?)4!X=qS654DHe}P!^oD@h)KQ3=LwI1KAmE-M@VP-}rMt)9As=_wiCJiF!+}ow%wyT~h)C?sZWNU4B{;9+P3hfN>vZoRU zC^U{2i6}UJ^eOh&?b7E|*Uv{w%}gyeEGc)4daYJFu~q$|hyr!R64qiIdhzBZ?DKIF zKUtbK9!Bmg8$KR)=V`sT2HQAZa*#DXF}}?E;fXcafC+G+@wJKxQg_qr=h>zSQo&Vi zMB<=m4VE_%9^ffvpD4AUqJ~YBs$t7u%0#KXY^M8Tpay2PX`<9TjW(c;Pn0@h#@4{h zT1=7#@}yalqz>t(K-1CegGti38ru0GK1e}7XoAd#sn1!z$A1@}h*?l18sabG zAP#bA)Gv!qCnGg{YzdN!fa!c<_(_{0^-C}(&@qS7di>{X)D+26`wGO_TT`R~GzEpP z+gI$V3r`v6`=R!5&9v8a$Orr1ooEXj70#NfjdQ{dKZYG&c4Df;j|&M!q`mv=?~-1x zg|GA(3({6)bTVFtGx}U`v=BhHKksg7I(9Wz+>PlLK0b0c`cLBY1HJuA{U>p90QddV z>4$i~doUy>lqZ+b5D>=@P}7K==a24#CV`K??vtiu9HjFBnVK8<^fXB&6fs`A>yS++ zo~+=e?9}9zneF+RNo$exx!A|&vVa>}ndMEF_zO@Sr%N4%>I{wUaXYrnA^bGHZm^Fc zw5~;q2s)ru$Ns?&XJ1a23aIC%&yXG`wx66KITE|tvoH*C-?fy4_w5YnaJ~I}<~*Hd z!`i%>PJ&`ujT3~JRWs|$QZ*B%(C6=$8rNL#KMdS7N3`CCwFrC#mL6PzB`f0o2hd$i z>z`r0XG+Zqj=hd0Z|E6TV@`@k4GAfyDMdpqrM>xFTC`dIMtt2&slAcTu>A3$)VSHP zRY?-!v5Z8iNU0RKu!?ngNLpr^{$l*#L(;byHMMy!7I)A@w2Xo|F0CzCcd@VMN=*`S zz_JfApdkBbEw1XL5`P7UPMgNZJu2}%^*Qq(JxH;^e5tAbAQuuXu4pnkLgE5>tVD{n zhXZ)zG~tR;DvF?`hx_MCFHe1&OIZX8~kw*v=lSqYEMc%((!p4Hhd}OZU>%bGnY!q*Q)rWzYo|DuT_}>xVg%O z1o2uGpYYc~0_OYa%P@VNzMQpLCcRyi1ej;64b7J55634-S2CYQkEI#i)7qqypG|-2 zY0MlREMcEMt=V3YSckcmOU{&;!Q|yqLEbSgNK9>nB=?cfAW3}Ng6rGn<#=NWa@)6D z`pS5ay}m*kfsS4K8L6(9kHEBGM4&iCjQ{BX2dOd~2Wn2-36NN!Nleiw#>PE^7Cp=6 zJi`|hjv`iAMv52#5shGyRJo%aoOt>2Sode8y4+teV6o@+XE8XSg!@;*G2hL$u9Oy2 zli&OtMynlc{c{qnRi1iI>WskiyfoM}YY%($d59eHeD8V95_0{R`2wc7&KEH0f>67? zfNl&j6JC%Gg6elKV^(_mDoHl&`-DwdCB0Vf^wss;TVKSqd-Wc6_lwdv(*wV;qc39q zlA!n6OH$$0(5bcqW%0!zoh3r&X!o-8j7IB5V)^aWl8sm%y&9u}E`D;gG}83=UUt(O zsjdIrj1&!1bootNsPv zB4j`{GrDaGnkd=Y>!d32-EU&46`fgLFTKhQ0#}2b8>GLGxZ^G9 zXA_Ql#p9bLds=={K6Hs+V8?rjnK4#Wxoud?n6ec!`rr4lSGP*Fz|%)tvA%eg`L|(x z_bhvHo79OK=lC{^m7m2k-jxofyJo`8^_Xayr*VuguTgKLLm1kUDk_8LrdUwTLkQ8K zZ`Ru`&8n(-1&PVCIK<92ZkOs%A^hMz4z5>O^dVMqaaiR;=?HHz>0_yvcq8l9yXAV7 zO<0(we?*Vja{Pf{54 z-u+3s4a%%h9SmkfAX7)cMBgX~909@1z)TEA3VkpF7m&~gBgXtJZ34AszhH7y$_D;| z)q_&D;TOzDOIgdKyuip&uvp5rAC4iL*3b|5pj;xX!a~ zC$R8&o?Sd4jWnKNv6Is6ozE?UKA%pb8z=);^DI_gE^JNc*M+UD%5TzE66Y7cVTi_f zc}lv)_-B05DJhE@hduB+)-w=p{T(h2!UMlcuNZHQ&pVAN3V3|`59uZZHP1*-0{Qhb z(j}6#5wlbh2|g=;6?a3xMw0&UtW*NfrGHA@*nv{19-c3iN=vmQv_V`sCw)nJaPWd; zr1jqhbh!kP$>3yg2?de4a1r`{HeUTNtP%nD{!0)?DLZ;edeB(<#02>+{C`v?2@f;M z4}t0-qdXgp7$2V|-(XC`p4JoR<$QK5U8awkw5=q+fZ)eU@>f*3cQRyJZ_!lh1*nt> znf+uWma^HhOlRA^MSyuJlu1n}6ZsoiV62-WQ&U2d>aq_MxdxsODDw4MQVrHemFwVn zlq!D@GQBPGEkveznMx5E8DutDWYmv+VUh98Jhs3p*JR5xWec9yWTFP8tWuVIH-hO| zax*Ql7W-e8OrI3Fm?duq>id=Dj}QZDV+3)lJPbkgZ25m!Rr@9zvT3N-l~kShBHbt# z;hvERxpE8FE?gAs>{9kHbZ(~IRv1pUQ;eaV%M6K7=Hz~ZW@d9_4xnlS@aEln<@+@x4$A0PKYjn z$#vvzrXRj!*Vd8U%^&#+W1l6^5LZgl`$gokVCBI2K7A*u9i}Vv!if@Saa-WRMz*$& zJeU+tt}72V?qb91%JX5$`w?6#2j1wxP%^+FXBr{eTb;7YxSc)j zl*brvWk#1wE6t-_a)vRhy#BE1Zn+VZ?>VV6X-|+F6zIF8+BJxvsI^UU+}l)iVj!w!?^-$UV@OVY9o*(VMjyjOKG(fXL|xGMLUH95bNt zQBVyfk-;N8JqcQwPJWRaoNzsC8X2~yn_LeyI@t~Sf0o_UU0&S;$DYf;lEo#{1ZvA3 zGM)AA+XEergwaE8(_+y|zG)&L`|fGu7i~3Fil6K+&r3J9WYY)AEgRysMB3Zq z7uGePlkWW0;R1{f6rqtbgJtEX)kXt0%TLR1PcsvGm$60}QYAeSMF&~ch_-UksXtVo8DO$pA^GTZ+bS)-W(xM;u%fMxvc$2 z*fA^y-#1d`Tj8&al>h65Ak;v0?IpmPQ2WZgHOvo3m=ZQ8X7T|Jvtv{3UW`PwNN@tW-IDRL)E5;ZTA z&F?2yV~hI9)-;sB+;_qk#;VPoa=5j&rA)gwR9C#Kh1=x$jxrrIwN1 z6T&r%<-1L$^~+hoQ}RsH`fcphr)0i(LK_zGj3x3#zFNb#FIqkg55cxf_M1w!vD=qv zW{PhWtXd`)n!ex0URkagHUU11+bcQ|z;SashRqeK6Zf;e%7T%AcPVqS|4qDId*t=_SF7cX8OBxdMX$@}(v0uL7sR2!;uzH0Etp*Xv0gr6TpRy(gFHCH zID@&j$W!QG*P1PIduo$oTjXnLnYQCrnZIc{X)C52S{$Ep*^0)XF^Ptrk8_l|%(G3d zC04f{%~r0VlOgen12;|G2ZoF8+W}Y=T$Opjt}}!wwp|6 z=CFE)9WOd?7zg1^x7ed^4R{419@!;ZHW^OSuJt|9*+-(4X<$U&?#Zu6+C{ zzWE#Z{tTiNI4FCJ86VPFtD0=<8QI0w{)DdZVhQ{GC;4LHkmJm`IAAU}O4OH5AjJnC zM#tjWX@QR)VK@IQcel{-C{v&$D_BVMSy?)!{lzhgtsDu^%E*F?Km&9-XUB1VtZ#Rkk zdPY{_4gZiA8x!o><4D2@=RaBXQrRB)H@)>eu@YA-oUZBOVI?ig)1kZ_8xju(gwwU; z6SlfkZc?=4Bsr?suu4lT@vevCNS}y#gTft8q4X*MM>0`i=gj8G!JG8nS7(TX2J>b zCqe;A`=Pk`ntK10jltMTN<8C233@?|Cpsu_2Dw@!mgX~*<&c-jtSo@M7Mhh;jR{cp zQm)dNjg=Kg3%-e+j^j`C_CZF1jl^a)PYk%rc#H3l6}L8$k_oM*DzA_L-dC0TDePrY z9>ic%Vp062zrJE>rozX`@tMl-_D_8c=QJZwA9lfr)iiTbF`xymvJy~_3JxE#%q(S) z>8-C>Buk;w=?`Zq{7M9F$iYSZcwS|t*jO_uJ$%%$27F>jgG}~D_On&#p&tjTv0Jm1 zW;AmACtK-4dtW8lfDnU2%N(V<>G*y&B}XYNOT>uLixR8nDs$;>pyzWHeh!mg4ftEG z(%X4*)0KSTK(WZ)E*`L=GOmj9veCFQUb~v|tjV~Ny;DQki+!qvHI+(6OlAICOSy<( zac!k8EZVx-%1ej^>nPO_Os%8fK7&p1?RAu)m4xn!+o}?}OVdfxqJ-{p#{jxJAYWNq z_sE_^n^dBe-G@KnvFiMLTR7EKuc6YAuPvd)+8734-5v`vblZM9xzqR`7iQp)S*W2h z%e3qhcC4Yo&uOo1q_k#(8Y%gS!~(u!1aKVt*3=RZAqX2uAUZn-A z=}>%$)B5432p)EGQ}(hO>?Yv;a4Q91u)asBhZ=P7 z@ESxsq6SUb=alp|yWmmkXs?RUQdm1!G5Qc5u4cd?JN}-&)2lR0yq7Wy`#?tP8W#2{ zv`vLtM=Gjt9&`DWdo)H8HQnn|nt_{3K5lEHesul>pB>tuJ|Njfxdx*6Pa9>XmeYti z+bRv}?&NEG`}nO=SmfKEhPS0m^!acwQYM8*+bS+le-{X->rZWYUDbAInpaq-cFNGd zF}bE4_*=sY+N01{*nsv5-K#LVy^;s?x$Qan>+O{`Nc>extlWVox;r58O-y%{VL&hG zpzMPLU+f6Hv+Sdeit}#;Sqhaopz>s)Les?03zhCDuU2!B zs~njOXi>w?$`+70*qJM*rHeAM90)1e16?p$oMq0g3cWe9qATp~S@vF6h31o>U5C}` zrsRO>mfd)r2X^CH_GC9@00{rmjZ`n5(_M)e5xuhqSDHmV&@^Y+#vUNDll{>H(%s3b z_tfXz+*6^$ohYCdd$*@Tuk!!cQ)!E&`n@2kRQ1aJyLv6?#W{VWm(mMlO65N%kuY8mICC9J{<2{AF%T#tJ#-#p*#9=rGL6FWQkh!1hvaC&`%iwgg^UneW==BxdpLF{goCdVR?UL8mQDC zpiDsGf&m<44Fzl1hXXLmLc0e*if^(e*D6Jby>KmJJK64Qm8QTey%s*lE3C+SmMxwyZ%Ug?a)1_OCw=YfLc-{@l?-HU_ zhC?m)ur|Xv(6HgkSK=lYTpK{B=-);J}Yi8q>(dUm-}-yh!0p(1#Rh__EfCw-~8ZO%tzw^;w% zl|@t#AIQ($t~eosR-=_iXi0nHXk`bSr&(i^1^o0@?TOr0-8fOf35EFTiOS$~k6#0;8bM_?RR}Sm3Q`PcR_vrj8DExN$1;Pci*k}8?4$&?m65^k_O(N zpa47Uw6f9^F<|e#Tj_(n{Ra0aYiP%O_q`Yapzfw=a1GDKpPi;mqG2VT;REEy??0=W_eo$FmRnwSaI+ur>)f9rD_m0&88u z-8M(5n~cpXm$wCZHwZ{@z$<|3HW;zvyUlHacTK!v^%r{xYdYmUl$SA+e+CPmYQbx~ z=n(+KS_Y(B#mts2Rz_vLrz`30W$fiA6`ngj>l0nZ4xSOu`azfW)iO5zzsj7f zQ@XTYmNDfib(`pMxw6)PRUxU!#Ds+;zG#hN{jzPu588q;k5tBWm#o)%4l`#xQunbp z)}yxjSm}D0-7lGK1N@vX*@GLDFA&`FmQvK>)kC}onG+`t)*Ry6Vup#M4)ok1-kHqw zyz~&0HY)8i)9H9uZNEi3dbfW8%DyiQf;g?pu^btl4H|N@iTZfxES= z!8=NGwr{i2rK0qKZ&#dNQepbIib!mKN9oe$TT!IO_!lCoF}_QSkQ;>$XLy zknZsHl1{W~}A*is{~Sne-30 zSFAl+}Kxqn7)A)M~!pk)Xei-A)pV>Fx zD?QsR5NVn^&k<3rh?yd)6>;GRXPFZ?&4&M=)MIz=f&Vv~{kR8fEbzjseFA@XHoN{4 zoRCBGzE70xh<5u_`7z;G(l#&F!`mUi&QiO*%8gl1pMbCbje#GU{pMHp>|W*8+{JJd z$tmXFqaon;-i=rJ42yo`R2P1s9JW|+i~5U;RS<0YA3JeMDQLLkf7)7k9k7Di(gHs$+D5PK;6{3KM{!;-+YnFRk2_3Q z``?uf@CnZTuKYo6`|&@N#f?@18;&%b*&}pH*96xPKAus{G<16A=o^d9J^sq}N8>M^ zQ9d#zIG{sS;DEnN@&S9OR2gdgKK^4V%>@4MSD`gE?vIZy@}V5jhS;kOEVb))2DASsD~HDuQ94&Q{71; zgLjUd91Kkyb@!;&UB-p)7!w^kc~a}{qbB#bBg7s}Q+t{W2DT?nZQ0c0i$&dbpCjz| zcpYwkH0JY1LQ$vP8FhtXK3mM?4!WIDZI3*sv;U>#MF)^yulSj6iIEl?0sa9oKZB-YOnySs&r6y{}`0PS; zg2`pTul2+`CQS~vzUpGMy4UWiu8hxXsy?6j54CCIQIG#0${FWX`(M3`4|&xN#=yjA zaMB$U@5&o6Zt}pg=ZWLSkDC-6J*oAeNzsXuT3=apUv8sb^AGjOY|R_z_VD_-1I{W87k9pgt#3`U~Y-w_!VL2Bob!LcKv?5|Gh zpo~F0i{0Euy(xZuXLY-gz1c_YY5TWr&dzjI$NhsmZtJGzv$wmcH&U1XcdhnNcXdKq z>wl?-%+p)#@o#(VJH6F8SJ!AtUv<+z)cE7R>hddt#K-qjJEgHN($pqbt-~ziI(6i~ ztXKTi>r|&~(d#s;KT&nCszcSMugoGtE$YTUAFB3Di`N>i-ttct_1>Ub@DCKZ(S1Lt zW@q@g!sEYx*|rJ$T7RT^;vdS&9iP%yIde!d#Qt<537`633 z5OTWa|*bh_GSK0R?)s|PTKKt}e)t1#GIB8_w*m0Bdq7&{2j%I07 z)m{I#zsED~Qh%`)9f9wq&VSoj6-P=Mp_;$lWi?bs7=YQ45wA_CUB1=`9g{Kf#Li8H2%>W;Jw2I2(V+;=c!xX3@ou472v-36#44nGy#x z7!KTHH5_=?oxC8SHsH(K+n*j z^Li!G^+G)fPDB+%xby#3`WHagx5>X`{-+e?k0LH7nP2kQl{Eq{5tgg_ImBym^r|E} zX<+2Kv%D>^vM;V&%Ju|dn-U+oPz!=;+47Rc*mRx6!BYF z0s3nIr_Lut$-5P304xciVQF~W%h=*iH?}QP2T`9Awj{& zdsGh{V^>Sd0$m}aXE4-H*6LFbyGjKa4Sd0a2!FaPdVu7jugc66^f9Uxiya1oA0bU6 zPAFDGFN7ZaRQ%UqyVuM|SGKAW*!%`NJK$7;x_Az2Mg5K;;B>xlUE2p>au6T)K% z2O$i|RzrV;^AQd}cmN^BzB0T&5WfNOPtDqhGNF>ya0}wQ5bEjwf%we^eEfJohSe|> z0ILxatAc?uh!f)VAVfotNS}^4F(wLV!!DvqMQ0(j&Pd*Zn)?xok;{saj?n3sWl0V~ z=?kp}WR?9~h>HdgiPZov6r~;Vh1IA0nL2pj6>*${(7^Nrb~hkXQ_$};(zWS~!O#QG zc}Tkl`I_fpFvRO7iRd;sg8$mND5vA;hq4<$DgR(%~{EsA=!{JT%Ke}Vfg`}i?5765~U|0{)TSVq37XQlq$j_QB8tc*#^T@kgJ!pv`uyB6)}Gi=%fLH zoZjtO1X4n;3DREB;;tVe1s*~PcvArx*`)7kt*`1)RYWvgKlw~B20BDGOb;}J>c zZuz=o3kiapvhKeYfEOL2$CKsFOGQm|C(0A>Qvoj|lAy1d6p9Etbq^54xHA9m2xY7Y zJ2e;ZVnn?XykNqH3W(lqjuj%=mo3qN&8Z*A&9+^t1=S(o^4 zvi6jhhq$OH#kUp#n1*EjO98g&fY&9IhNcKq^VG1p)oLh2dK$u}2uncMsf!EKl4?PU zgl%~~Tbl$80TQ*5wTd>xY{}Kq#Sk+f5oefsP}f_II8CAioR~xjxTSy-{&Y{!6p{oA z`IIKTPg=aZOm2oPcow=M!ok2720wwXN8heP-&Xf*()vhq59rWOR)9V^ zrS!7dnl`J^VM{Ci&ik~K!jop&&5Zz1#Lrp*`eQ)P6#xjIW8eQ*t8hBDUZSg)kU@LU5*CZn z_^6hg66z(oPlqnV&>86Z?w3T@`j3wJlNF%%1-h^VRQlyLf$AcDqVSs&auDew*o0+? z4j?^~1h0W-fg(WX0W}F>Fg%U8Hl5@BCr^iN)1eD8uK-*)5=3$X;`O=Ia)?o%4!y@S z?A+UGEtxFvwYBkr6Ei-h=GLr?$4*G9OX&C!(Vlv~*F4QhJPqsY7lnFA5x{!l}c8hpxOxE~?SIKEAUZIE9J z@k7=!YD$TI;FzDUyTnq8HQKzfDfgEE8}Bq#&Weu zQ7@$Qr~t)^bYf9Yie^juAW*R^{1`-4*5OwsyA!|+wv;%fJq>ta7YmUOE0A<4mLoyT zNJMMCrYm4O@|Z(j<+NyJ4>%^HZIN}VJ_sqlv9 zlkidkeqV#6l*u|439IXaLnXK#Szq(&#sipKjO_@8Si9p{NGuE-G1}-SjBj_=)SSv3 z1b9(~9{yIO!*kT?FA8j)rxo}BLh29SA*AjpY>XL5g^1Hn&#)kT0F3w6vJLz3ESgQ^ z-;FftKZ4%k`bAblmjuF1$P}FFYY;}dkc@uHt7kw|;O=@>!;PT#DZ)_*+a(I5A`YXe z1RcT9TSb^>6GAQ!Xi;MfLeZrv66rAzA<6Ur-T;J)5!OdYKYanh$6WyU!N|J{A?-Od zMmSIx=kossViiVn`|hOD0M4)lN~G8FBY+jUkUBTto&sA6SfL*!DS7*}xX^!tAw55- zSO<_PG@Y0@sY6~5I9lF$5g|F_!nq!eczeWa-mK9PVGhzsvcjn@?>mPLh6kHi4P?2C z5t1dGfd*HKh2ZybMZ`i`UPmv2qk*pam2BRS7hkaOdHac zBD@6v=Mc8m0TzHj5bXG! z#d=zYPN4MrF{ShrbiKA+(4mXEp8>jFSq-hg4e#b$LDF@NS_RJnO@uoKYHMmDu2%}q ziN++i*Lqf3R6r{SMH4FtTGy4EJ&R$Q=#jSRO+c3lh}8ixz4LS!d7RtT?7r6_LP*nW znx}UdAq^EH5YpnYo`?ESO*~$e!8_b4(&$Rn9s;6J&H$d659SYJT?N910l_} z^wemWJ_BjAOG(c|d;`+kv+M=fM(c{l$tfT-qBlpnFhSS2lP)PWivBnG_2lR+(whTb z%sl2GUuX^GuhhXKU32UlKoD-hrW6Eyfx-m00ld)Wy(#d=5EpR54e0`SG9&c6pv&jw zw|FC20~-42H$;c9ep~q(bOF4mk#N*UUje?44qnXPrURba5~}||9RL+RS{D~$d>jZu z&-bM;G#T)s#zKnA0WUTuQt8js(J!0W#epD3;yF41VrZoGq>EXBAaoGKyP%M!$n*2!DlU++z5}di9xhCcl?(t9C|EHI@{?~vF4K}aUtYC``b zn@>NZZV&HjcForJN?N(~>&iEqP%uuHQ-^f03?jN`otqN9glxWE(ewkW+A-M!h(>k9 zb*}mJ4M|IE!?REgswn;H0sIR7%19l0A)W=A2<<@EPcl;+jvhMnAr+vv1G=!L#LX3$ zA6@}^A<%{OCiE0%OV9k&3eY35q`4$?DT;W~EzpZ@eg)`a3tPy7qZ1wcI)k%(?UCD& z#lRQ8RXSQCEed$uY&*j+773c`HHg%tScktwhfihyR;alYT?3kdeH!uWkggx+9f;qD zbmGa6unS+Gu9SgCr#8fYg91|>85-i>MmpT%a?~h&I?_8Jq~E z-$s-+8}MSxGHm2pr48|vSwl;p$1-)B4+J5eJml+jX1WeuX!nzV7jwQ@x_qL!To)IN ztqK$+2c%SlRX`AgMZpyvc_HGjW3^KB2Qf}%AdL*-wFvtnT!v6g-7j@YNP_C$W0*E> ze1b$_Z@PbY>#04rSuk^)5sN=j~yH zXkn!d(mEns4{_4URAt1QBcz{%_7~!#IJZf>^He2;P2ZGMcy8yk1B(Z?s8Z2E2tYLd z%mYcILS*zdk>d3Gw>I=B=!-#p2lx;jlxXeUgwaHwa1y{`AWmI_Jg7q!2Ln7^w8c*` z?41KXdC&Cghdg1tQ!CPCvtT5l>Q^ebPZ_Ymun}2z8dNR?cpZR6(+ohKzJ*7oz-|Vt5HlytWuW~xJ_UB0j)|gF;Hf%bVMHJAs<|}c zq|}XwV_{9R(FjGlXa+y>^N?N*VMBx;p+H)B6H9tJr$B3ek&)^Zi1bviU`sd6tGEuz z(intAdPBaV8 zLT^R*7|?}rAoP^ccfJmNc?IZC16|mP3ebyn=&LF~e>nv`Wqn$YzNG^6EkGA@2`W9g zz|8A@L|6KDJPQj7tl%aLX_NmB{Gj9Pl%Pev7Xj} z3TTyI8zI!=5gi%nH4)NJZ$js9OKK9biVUlekSgAHP^i$%)VXbmj)0Kg zhkzHYnL716se>2geA8PP7nma<@OzO+dxU!tis4@G_lg1SA_}7|Yx;;$v*1<0>M=J2a~HKYC$>>Uw100w#@d>HJKSVep(p2-S{_)0ue z6VPulhzW_!dAFR14GR$$HLuxM8)%;aJk6tu&f*~-55n@KT95~UKuq0+kPeqNLP!%T z1+^gYKZZEt0r%#PCZs!&MrWa)Y>7+yi?{Q)kF1Bot)&JDjFeQE{h zLx4_dCR&1{6CM0UBCn$ENyPQF6w6J-Co#5N$Jo9yVoBUzK`TQ?>onq`ujCF& zPAd-d0kH!*VkhwogUWxzi0wvgSKW#*4{`l~)dcYqL#&1d2-hL>^9gFsC_MH>k_(|5 z;oCQ`R@>ETne%VZR?Isg?8hgtwXArgX|A3s4TC=pX48OD_w~WraH-GFLw*s`UE13s zgYj5U0g39UZNW}fnfATC;f;`AGX%9AwdH@tj)Q8@&G zs6Tf-HKl-6y0{o$CZPafN7o}?v;Z%0N0K3t{s7>$ksJCW=>P~JPZt-{$Av&3t*2j8 zmHSx8Ud z6E8cFF6d%;wTQRX3M2{%oJJu+Sw`+G-#jw_Y0Xs%FiCs(#C(8dD6Jnqib3SnzM;JBHR3a`y;SLJND%GzM z{!W8iw1wfK$5FKCc0j}@*Aqc{R zP*H(nQTywWCv;~k;th219}pjaxZ_sMZVyLD9{fgxw6c_gvRaDv*T06f3ZfI13UG!k zhzk)?+&Da`^{L0r_UT~7I)Mm=HbaC-1}GN<5Q2pgonB6VEhvc@58`M{V)9F_BISSljRnr?80Esss`8(K_Jo zy97{2JRia{6;O!3UlY#(JfFccx#pelC$>mBZvIhbXjInBT$36GL}GtIHS&BTp!!P;$Ze z1fogpPd}mcLIP8fDF8(;5YzqXx;)Vu@fq@8 z4zb%lL%xtGBFOYvI#P0qA z`9ctsKa}#DX#AfEv1a>_FDgv=!!-Q$`_#OuFQUFe29&oBaR=q+@{I-8SHihXj5gYP zjxD}arLG@BLxq!=exST@sFM;W(qadXp6T}+in8#c_*8P`*U6&Zz_UlL^G)eVk~O`&i770z7Vs1`ZI8Uc^fO70ic%s z^gjAbzzah_0D5>KW4%kBIA5XlP`wjB4t_hWjL}b@u77D$f5KkuZxMV&FMo=$Id!OA zK9Ux|P`+645`d{=b@3=|C9DJ?4TE#>M-micc+cCkm9%Y0qnfTAt@(2Ww`=JUq>*Ii zBArG;kv^Kzss7!O(L$H;Jf8dDuQJkU@D~Ux@!Sl5he5chF8w(?JMgy{=@bh19eAdK zCm@}s_xREW;nsmJlai zL^|08EXl^3V6rz1|zix6TI&tk^45;SrV$4@h^aU^K_<=jf_{WjTkxmsyfV#hbw ze*Cvq;%kt$Xk{51rC5=6y0}o;!+;k`*1wZ!XKIX9}%ZX zSqVbY%|Rea_?Hl;&YwsxGW0=pxmz(=J5{+InY03P0P!9OMF;ri4z0!~5Rw9(oMJVM zL6{FstB!Cp;*Aj&Ox57pA|$8%!kwDSk%2gMm|BVSsR&gvU-Vmni0C7F!%KPXekiXa zYZC-0FBP_n4)!y^5kp%L^0kkA^ckRX@j>7A*q(gZ?5GR8M4rcs7EPafSSHN0IB^B$b29)TF?=n!Awi3HSHzn#<3nnY72l<1u;D+d%X5~`)MlC|9|F(7K8gG2 z52}aKi>4zZ57;z9(1wqQH^p0tlKA);ai**9N1)lTpC%6>Vwt^cHhvB(zjOk;8 zW1_|--x#N-8LC95P98QQ8o%>rwVBE4^V(fDuQ%iiIbwEq(9YH#Rd2DzV$QHV62U#P z5uYyG8Pjc7Md{ z^TeDDMr*}Lzp7oWL5Iuh4cnqFPtX+%`tv#N$4B9}+kRE+R1Svy?r1FP^G0nRkJrt1 z{Hl8WHg7Z(3_DPxXfPOydKxtjjvhTO+@?)z%w+sGZsM3A!jZ`Kgnc2OElQ+qj>dPD zuU^+2x6L2%MNlQX&F%9}SVMsMoYdTFBwD zJ7U40J>-vin-+GaL#z9R3z; zK!&Abwk_<5_(J{|{=C3(wxs039DmRswMX2sU^o_ZIGwE?HnQvss8jz_Xz`!}4G{{* z+-R&|EEa9ukuvMBI_FetE?D*lV}8Fs77p9O&WOz)Vt<`d^Kybdr!DAnK#t+4&FS{p z+iF;Sepf5!*qkA6&=w5&B2kAe=JYw*unA}2JYQ^!Z`#cJU6pceX#1Gg;Rw1MPP@bB zbl%dAWv5%JGFvB$%+BXqT4h5MeQsph-1eX|a6!izgLDVT0@`jyWpPx1O zLoLYhh3s~pCuDbdJrR!sQuOKAp7w{DksXUU{Emn(8g%>ZQLo4D=VG_|{ho*)S2H`p zP{Nqa!4CeRcFeJdJ#L5B9gK# zy*bcXupfhlJ0s4Z%U0;-b*LR1H8wbU)Ff!-NIP`j8F58@F0>^wAo$GXfTSKsGa`KXf4u_Ri&ymCm8fZBIu1_ugf2H z$NXLJE(B#BDphl`-Cmd5h8A`^BH^gp(Y3Rd*Z5DhdXCrWb%M>1&m9W6-QjSz1mbsf zE!kFYC}N9+9o~q|7xdUeG4{xxYB&eY61F+~L7&~>!Ts0a9z8UAP}Vv*9$2z4iV1t8 zFgY<-PcP4`9UXhem|>Hm)c@VVU?k-Bc|9;s5r-qpW}H*o=J;HGAG&VH<8V8IAzQ4s zizC*WG+I*^do%)(q9G$L8w{GGk6SA>@4PDK#GFy5FX)R#{7$b6#r zk5#^)HnRp@9!E6jbwtC+viYN|=LNM_j@t!;;&D2Ij;PP&@H(%XpxKno7u23PQ3uS7 z!|#HD3E zZ8oPf6877|VK$Ib9rh6P)B_tHvDrO#Cwtmx@mSF@?KZE|6@wbvTz)_M$!PKC#KLwv zbk-IPMPpunFdFN}ep4*fST~cUsWs@gWBhYF+)=;V9*()#G?S%Gw$Byy`W=vK*c(O= z9C;ZIv(hYsvu#nB5?jy~a>e{%pTm3G6Ga&F(bjcxU}QWtAB2c83*w31-agr&-=i}jnFzhhI0(3ZeJKgqrND!W>{=lPP8=c6OY)u z@IjocUxp=+4YLB}iP>QXgC4KTH<`1P69cFV!>S)96(-4ZM|UbaAK#$0RL${6FgCiV z17RqRgo9H$Ynf!lvYi+S!;z5J;qjy6hr)MK=gQBv2VLQi3uCtvclx{CQzvQ7IZTHC z^tjp5AqRE>jpoCUYe#dteRoaJK}eFNU5>+VbNao0pT`-BqEy%2lXVdHNS4BEuOk#e zCi-+NXp7qJxkm@^n`G&h6M-_pqQ}V5al5>cdncAb^vQwUc6*_45ogQ;79#iETb5aw z{UBSq=eQgwz~}a3Y>Qy54^6wH3?iF_6iWy6k|^5OjuOIAzt0seVrvyks~krR{+-M2 zbig~bd1ChIMs`xM_;Q_YM+oC@5QfU(fL}Pn7}h9Wt6JJ;huu*0NW^0gy3t)?uKU^3 zs>PX&F%(S}a=~suo$S5`D7g_cTP&5~rJ^snpg114AGXsslP%A)xN`jVuoteH3vQ7= z6pPv(G-?VNg;hX@fvSc)aIYc{vCS5XJ=^8W*fV)-;U#gxoLgi*}R`=sg@gdli`fOHHyFi zvHAaF?9EPAwzOvTvMiQtSo~1bVUKx2P7JFK&m*jDmZh~7T!do|cg%^g${F;`VRvU) zx>pI>;Q#nTa7tVeuh(gxYkbkj+GknnvEQ>S_gZZpZxrkVJ&u^$<#avDiYi-LM4yV$|ZEvM=P0`Op^7LHM-Z`Rv!qmVvo$hu<4= zL?YghAMSu7w!nBDyEn_?U=Ld@)?7ynqc#i?M!HA@j?iPqcI-euOKtW)d@w54?jpa# zYY)ND!t6O7H*)W{^Z!%Uxd7W$m3Ms3ZbtuarcMl!uvzz1wclFrcr%w`-LmO+Ls-fc|PFa?I z(!F|;I3;40E7V)TD6D%?+}v3?xMWu`HyTbxb2q zCCY(`xy{`ac=cGoWwk(;_m93NJ6E=eJ2;Ktyg?r?uLPfTCX z?i{}iu5QYm+qUlj^^8Q0fFU|mlbgES-+A}wAMVo2W{$gAFQ0I-yKY!?A+9t5WOfSW>yT6$x=7iGt zW}vYp9N|XGFS>`PiKQWSqE4Vs)Q8q4;|E-4I+Y9<^}i|yg=+8!@q_Mt)5ZLd$3u}b zj#JJDQrSc9w&`L)lw~#E8RJ<}->~49I;Xq63(<|f2B0vWJrnFlYnwVd;I3UL7V-G> z5u8KG{@}0Mhg~&;2SQ|N!KTSj7+p&HW%u}Ek%u_yyv|rI{9j#G?IZ4n8Df<3E6ddC zntsMY=JqS@&xrfMy=sPSHNfE+X zeXH|37C-V_*}y?LHUm9Lp6J}_-N}yKv&Gz~2Jh1*L6nH3sx<$0Cvy)i7c)JV#6k{dXs6a1FGr2)Uk`xVBWS zHyI|+sd8oV@3{lB2~QxqG;6tG=4Gu>-yi(=ad|4Qo<{ik$M5&&iD@A?k!s{UZZU$o&_8hLJTcm>h!y%Gnm}N=dB*F^ zl8AJnf-k)trkGXyLxk?ic?ho;x*pn=H$@E^)h#DC|53-=rydqXfwmgtEwFMi-v?Hn zD^7OtLNTR>q4xqosj+)i@oY!AYd4G8(H1&OTS7I2fLW=nd~R?v0x=GeMxk*cMHWB* z`ptwpe?Cuak6>#FGq`W#5$E6?#gmZ5{UO-DV4r- zpS`G$9iGrDgVgeAtKz4fC4+YtEXI$LK#|{N{*lRJ3iXn^ZV?O4X{&T?la}DrKrR1v z)Gd2GL^FnhXr8oFll|CN&Dv4@A1lmx}FOvL0AmLRL+aa7Ns3mWpj%qO6RiOF$8CeM@&m z>>Vqdi`UE1YkxMSdo&hhkHi>}gBdv<)+F**9k*elIH#vE`u?DD&^2VDe?54;+vZsY zKwz_LBB!cyK`O59qVqL+S@DJk#q{1AQlUECoV=}3L~w;+%`@d*lH#7QDo7+f@W%#Y z*XAE^>vQP-i40R*=Q&$I`XOZ<7q$NDz#V!UXK$ZkovzHpaL7`ZuuhxX8YGJC2amqG zXbo|n55h`lR(_~|^`@?@0B<54Y9;1e6mDHEF6gS9)E0e?t z$BnPCOC_ziv?@{V$h$nlTPC&J`6N_PW_Xl5p)F(5-Q6QRiRW+h01gB@u`7FmGX_uc z!x3@3Te3{NIcjTSQ-%=UCHJ(oNzITj|ek$YLO{<|ZiVyLT(Y{}_p{mfk2I&l|_inQy~ z*rcG_V(SyqLbq>JJc|`6RP2*jQXeoa-*@Eix#Lvv)}G=3LvZX2d@IZAgG=0@Q%O}` zJXNfUH1T0+GPnj$qHJ?RaQfgO&RZ^`r~yO?!s@I<(|Dd6gXM#F2eE`rhzyw@v~)33 zCO5f5%S9Do^Ks=RJco)_rv7B02N(5mIxDSD<8jD^g{j+{-QLr1Dr8+Lh(~SE767kX z+`-eJpEpKfpK|HxV*PN+9Dz0CIHd&@p4=MzE|_Xg8|Dl?#5n+4pLWlm4$09HtbqeF zPBhIUzReASon$6 zeqr$V_{O&KVgL?5=w4VY;vT~l0JSKHaT-5!d?;`a&laaeczdLWaGL%_{8)Y|_|pLb zf8-2;3R%R|aH=$W52BR^g7^F7e2@FzF>!nsd?&Xfm1|n%Lj`yE3~`}5sJ+uu{o4}O zrhMgQoqyT=^h`d#rBO4`VUy4(nB@^SV@%ixCr99oj04(0to+I``nu*!^p*6hBD5f? zCir3W_h@j%YZAOR%BZn?1f~`h1?nQwcwoBeq^#6 zJ4=K^8LQ(h6~uwcwdU)=UvvhsQ-5&#)Y(Ya{{aO#Zuc6Z(v&D%A;qXE zYhPyHc8{%LU;xpwB9(4Azi_sCvR`1Ke=T7?OtX;`Y5X0xXe~~X`bX(74oHWDoWAR- zwIU|4$o&M8?L+55uBY6MYl(U=mNEL-NfG^ID=!z&d?XT+Wj}DUHjt6xlS`j3AUcG%ZTt*iK*BcH{rv{tdWe}? z;1tzkX=pw1dXe^EiG~=LMUTC!OMWy!9T1%9U&(Ajvb$|t{Ik1!9S*?IZ7SwuAW)$g zs6Tt87J~I+dPF)3=f!*-ZB55++UJ7R18aG5mvKwV?1G+1s19^tWZbWq+ftDO8|5-4Y`dBubfwlil0GZaYdvudXB0rCY6B%+)B8kin28+Ds z86IM9(5M=`qZdQ;2+)5F>IpPp?T8;}#6%JL=kC>W#971rn%>eF0}E3sx&N`O{Y7x0 z>ueTdQ|c|HCl)dRvqvCrE)Lz!Q?aZD^B?X+9~b<)ny27RG$A&@TRTpRwkt{_y178_wru_Z|0S) z+b(N=J$PyBdtV8T8z1LeQ!m?jvHVT&mT`*vQvUec{>xjpHT>CKdY+g&^&zoZo Date: Tue, 8 Jan 2019 14:46:07 +0100 Subject: [PATCH 27/44] Bump jsonrpc to fix hang on exit (#1367) * Test RPC fix. * Fix meta in unsubscribe. * Fix meta in unsubscribe. --- Cargo.lock | 12 ++++++------ node/rpc/src/author/mod.rs | 4 ++-- node/rpc/src/chain/mod.rs | 8 ++++---- node/rpc/src/state/mod.rs | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1b66b2ec2d824..cf6342f77dc49 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1105,7 +1105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1117,7 +1117,7 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1130,7 +1130,7 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1140,7 +1140,7 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1150,7 +1150,7 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1166,7 +1166,7 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", diff --git a/node/rpc/src/author/mod.rs b/node/rpc/src/author/mod.rs index 7e2603552533e..be8648750994f 100644 --- a/node/rpc/src/author/mod.rs +++ b/node/rpc/src/author/mod.rs @@ -64,7 +64,7 @@ build_rpc_trait! { /// Unsubscribe from extrinsic watching. #[rpc(name = "author_unwatchExtrinsic")] - fn unwatch_extrinsic(&self, Self::Metadata, SubscriptionId) -> Result; + fn unwatch_extrinsic(&self, Option, SubscriptionId) -> Result; } } @@ -149,7 +149,7 @@ impl AuthorApi, BlockHash

> for Author whe }) } - fn unwatch_extrinsic(&self, _metadata: Self::Metadata, id: SubscriptionId) -> Result { + fn unwatch_extrinsic(&self, _metadata: Option, id: SubscriptionId) -> Result { Ok(self.subscriptions.cancel(id)) } } diff --git a/node/rpc/src/chain/mod.rs b/node/rpc/src/chain/mod.rs index c4e0899fa17cd..3f57bfe6fc559 100644 --- a/node/rpc/src/chain/mod.rs +++ b/node/rpc/src/chain/mod.rs @@ -65,7 +65,7 @@ build_rpc_trait! { /// Unsubscribe from new head subscription. #[rpc(name = "chain_unsubscribeNewHead", alias = ["unsubscribe_newHead", ])] - fn unsubscribe_new_head(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_new_head(&self, Option, SubscriptionId) -> RpcResult; } #[pubsub(name = "chain_finalisedHead")] { @@ -75,7 +75,7 @@ build_rpc_trait! { /// Unsubscribe from new head subscription. #[rpc(name = "chain_unsubscribeFinalisedHeads")] - fn unsubscribe_finalised_heads(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_finalised_heads(&self, Option, SubscriptionId) -> RpcResult; } } } @@ -189,7 +189,7 @@ impl ChainApi, Sig ) } - fn unsubscribe_new_head(&self, _metadata: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_new_head(&self, _metadata: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } @@ -202,7 +202,7 @@ impl ChainApi, Sig ) } - fn unsubscribe_finalised_heads(&self, _metadata: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_finalised_heads(&self, _metadata: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } } diff --git a/node/rpc/src/state/mod.rs b/node/rpc/src/state/mod.rs index 19f4046aa813c..209fe5bb3a504 100644 --- a/node/rpc/src/state/mod.rs +++ b/node/rpc/src/state/mod.rs @@ -85,7 +85,7 @@ build_rpc_trait! { /// Unsubscribe from runtime version subscription #[rpc(name = "state_unsubscribeRuntimeVersion", alias = ["chain_unsubscribeRuntimeVersion", ])] - fn unsubscribe_runtime_version(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_runtime_version(&self, Option, SubscriptionId) -> RpcResult; } #[pubsub(name = "state_storage")] { @@ -95,7 +95,7 @@ build_rpc_trait! { /// Unsubscribe from storage subscription #[rpc(name = "state_unsubscribeStorage")] - fn unsubscribe_storage(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_storage(&self, Option, SubscriptionId) -> RpcResult; } } } @@ -281,7 +281,7 @@ impl StateApi for State where }) } - fn unsubscribe_storage(&self, _meta: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_storage(&self, _meta: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } @@ -333,7 +333,7 @@ impl StateApi for State where }); } - fn unsubscribe_runtime_version(&self, _meta: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_runtime_version(&self, _meta: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } } From 791d8c6bdf46c40dccea6f76a3d0e3a5c87fb281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Tue, 8 Jan 2019 22:44:39 +0100 Subject: [PATCH 28/44] Remove unneeded Deserialize impls. (#1370) --- Cargo.lock | 20 ++++++------- core/basic-authorship/src/basic_authorship.rs | 2 +- core/service/src/components.rs | 3 +- core/sr-primitives/src/generic/block.rs | 28 ------------------- core/sr-primitives/src/generic/header.rs | 14 ---------- core/sr-primitives/src/traits.rs | 4 +-- node/rpc-servers/src/lib.rs | 3 +- node/rpc/src/chain/mod.rs | 8 ++++-- node/rpc/src/lib.rs | 1 + 9 files changed, 22 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cf6342f77dc49..356c0b0a734cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1105,7 +1105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1117,7 +1117,7 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1130,7 +1130,7 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1140,7 +1140,7 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1150,7 +1150,7 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1166,7 +1166,7 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -2376,7 +2376,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2397,7 +2397,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2434,7 +2434,7 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4402,7 +4402,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/core/basic-authorship/src/basic_authorship.rs b/core/basic-authorship/src/basic_authorship.rs index 0464d96dc4af6..d4d39c4541f65 100644 --- a/core/basic-authorship/src/basic_authorship.rs +++ b/core/basic-authorship/src/basic_authorship.rs @@ -26,7 +26,7 @@ use client::{self, error, Client as SubstrateClient, CallExecutor}; use client::{block_builder::api::BlockBuilder as BlockBuilderApi, runtime_api::Core}; use codec::{Decode, Encode}; use consensus_common::{self, evaluation}; -use primitives::{H256, Ed25519AuthorityId, ed25519, Blake2Hasher}; +use primitives::{H256, Blake2Hasher}; use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi, AuthorityIdFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::BasicInherentData; diff --git a/core/service/src/components.rs b/core/service/src/components.rs index 4f40246c150d6..45c90109f6be4 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -27,7 +27,7 @@ use network::{self, OnDemand}; use consensus_common::import_queue::ImportQueue; use substrate_executor::{NativeExecutor, NativeExecutionDispatch}; use transaction_pool::txpool::{self, Options as TransactionPoolOptions, Pool as TransactionPool}; -use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::{BlockId, /*SignedBlock*/}}; +use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::BlockId}; use config::Configuration; use primitives::{Blake2Hasher, H256}; //use rpc::{self, apis::system::SystemInfo}; @@ -137,7 +137,6 @@ pub trait StartRPC { impl StartRPC for C where C::RuntimeApi: Metadata>, - for<'de> SignedBlock>: ::serde::Deserialize<'de>, { type ServersHandle = (Option, Option>); diff --git a/core/sr-primitives/src/generic/block.rs b/core/sr-primitives/src/generic/block.rs index df9f656513edb..390bd22af5995 100644 --- a/core/sr-primitives/src/generic/block.rs +++ b/core/sr-primitives/src/generic/block.rs @@ -19,10 +19,6 @@ #[cfg(feature = "std")] use std::fmt; -#[cfg(feature = "std")] -use serde::{Deserialize, Deserializer}; -#[cfg(feature = "std")] -use codec::Decode; use rstd::prelude::*; use codec::Codec; use traits::{self, Member, Block as BlockT, Header as HeaderT, MaybeSerialize}; @@ -73,17 +69,6 @@ pub struct Block { pub extrinsics: Vec, } -// TODO: Remove Deserialize for Block once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Header: 'a, Extrinsic: 'a + MaybeSerialize> Deserialize<'a> for Block where - Block: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} - impl traits::Block for Block where Header: HeaderT, @@ -118,16 +103,3 @@ pub struct SignedBlock { /// Block justification. pub justification: Option, } - -// TODO: Remove Deserialize for SignedBlock once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Block: BlockT,> Deserialize<'a> for SignedBlock where - Block::Header: 'a, - Block::Extrinsic: 'a + Codec + MaybeSerialize, - SignedBlock: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} diff --git a/core/sr-primitives/src/generic/header.rs b/core/sr-primitives/src/generic/header.rs index ec70d5d66ba5f..3fed9e600dc18 100644 --- a/core/sr-primitives/src/generic/header.rs +++ b/core/sr-primitives/src/generic/header.rs @@ -16,9 +16,6 @@ //! Generic implementation of a block header. -#[cfg(feature = "std")] -use serde::{Deserialize, Deserializer}; - use codec::{Decode, Encode, Codec, Input, Output, HasCompact}; use traits::{self, Member, SimpleArithmetic, SimpleBitOps, MaybeDisplay, Hash as HashT, DigestItem as DigestItemT, MaybeSerializeDebug, MaybeSerializeDebugButNotDeserialize}; @@ -42,17 +39,6 @@ pub struct Header { pub digest: Digest, } -// TODO: Remove Deserialize for Header once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Number: 'a, Hash: 'a + HashT, DigestItem: 'a> Deserialize<'a> for Header where - Header: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} - impl Decode for Header where Number: HasCompact, Hash: HashT, diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index 0354953bfbbed..67e441c792447 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -441,7 +441,7 @@ impl Mem /// `parent_hash`, as well as a `digest` and a block `number`. /// /// You can also create a `new` one from those fields. -pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'static { +pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebugButNotDeserialize + 'static { type Number: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + SimpleArithmetic + Codec; type Hash: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]>; type Hashing: Hash; @@ -481,7 +481,7 @@ pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'stat /// `Extrinsic` piece of information as well as a `Header`. /// /// You can get an iterator over each of the `extrinsics` and retrieve the `header`. -pub trait Block: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'static { +pub trait Block: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebugButNotDeserialize + 'static { type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize; type Header: Header; type Hash: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]>; diff --git a/node/rpc-servers/src/lib.rs b/node/rpc-servers/src/lib.rs index ec823b15fd2b7..bef0d4a368eb9 100644 --- a/node/rpc-servers/src/lib.rs +++ b/node/rpc-servers/src/lib.rs @@ -49,9 +49,8 @@ pub fn rpc_handler( ) -> RpcHandler where Block: BlockT + 'static, ExHash: Send + Sync + 'static + sr_primitives::Serialize + sr_primitives::DeserializeOwned, - SignedBlock: serde::Serialize + sr_primitives::DeserializeOwned, S: apis::state::StateApi, - C: apis::chain::ChainApi, SignedBlock, Metadata=Metadata>, + C: apis::chain::ChainApi, Block::Hash, Block::Header, SignedBlock, Metadata=Metadata>, A: apis::author::AuthorApi, Y: apis::system::SystemApi, { diff --git a/node/rpc/src/chain/mod.rs b/node/rpc/src/chain/mod.rs index 3f57bfe6fc559..7675f42e221b0 100644 --- a/node/rpc/src/chain/mod.rs +++ b/node/rpc/src/chain/mod.rs @@ -26,6 +26,7 @@ use rpc::Result as RpcResult; use rpc::futures::{stream, Future, Sink, Stream}; use runtime_primitives::generic::{BlockId, SignedBlock}; use runtime_primitives::traits::{Block as BlockT, Header, NumberFor}; +use serde::Serialize; use subscriptions::Subscriptions; @@ -37,7 +38,10 @@ use self::error::Result; build_rpc_trait! { /// Substrate blockchain API - pub trait ChainApi { + pub trait ChainApi where + Header: Serialize, + SignedBlock: Serialize, + { type Metadata; /// Get header of a relay chain block. @@ -148,7 +152,7 @@ impl Chain where } } -impl ChainApi, SignedBlock> for Chain where +impl ChainApi, Block::Hash, Block::Header, SignedBlock> for Chain where Block: BlockT + 'static, B: client::backend::Backend + Send + Sync + 'static, E: client::CallExecutor + Send + Sync + 'static, diff --git a/node/rpc/src/lib.rs b/node/rpc/src/lib.rs index 2e7d4b1fa8a88..90caaaf291f5f 100644 --- a/node/rpc/src/lib.rs +++ b/node/rpc/src/lib.rs @@ -22,6 +22,7 @@ extern crate jsonrpc_core as rpc; extern crate jsonrpc_pubsub; extern crate parity_codec as codec; extern crate parking_lot; +extern crate serde; extern crate serde_json; extern crate sr_primitives as runtime_primitives; extern crate sr_version as runtime_version; From 6ba8c783adeefe497048a60b52d1a34b5f546988 Mon Sep 17 00:00:00 2001 From: kyegupov Date: Wed, 9 Jan 2019 09:42:49 +0000 Subject: [PATCH 29/44] Some documentation for ext_ functions in Substrate Runtime API (#1369) * Some documentation for ext_ functions in Substrate Runtime API This would be useful for using non-Rust language to write Substrate-compatible modules and debugging modules at the WebAssembly level. * Update without_std.rs Update comment styles --- core/sr-io/without_std.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/core/sr-io/without_std.rs b/core/sr-io/without_std.rs index d0f112b76e8bf..6cc5a15d7f280 100644 --- a/core/sr-io/without_std.rs +++ b/core/sr-io/without_std.rs @@ -53,11 +53,23 @@ pub extern fn oom(_: ::core::alloc::Layout) -> ! { } } +/// Host functions, provided by the executor. +/// A WebAssembly runtime module would "import" these to access the execution environment +/// (most importantly, storage) or perform heavy hash calculations. +/// See also "ext_" functions in sr-sandbox and sr-std extern "C" { + /// Most of the functions below return fixed-size arrays (e.g. hashes) by writing them into + /// memory regions that should be preallocated by module. + /// Functions that return variable-sized data use host-side allocations. These should be + /// manually freed by the module. fn ext_free(addr: *mut u8); + + /// Printing, useful for debugging fn ext_print_utf8(utf8_data: *const u8, utf8_len: u32); fn ext_print_hex(data: *const u8, len: u32); fn ext_print_num(value: u64); + + /// Host storage access and verification fn ext_set_storage(key_data: *const u8, key_len: u32, value_data: *const u8, value_len: u32); fn ext_set_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, value_data: *const u8, value_len: u32); fn ext_clear_storage(key_data: *const u8, key_len: u32); @@ -66,18 +78,26 @@ extern "C" { fn ext_exists_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32) -> u32; fn ext_clear_prefix(prefix_data: *const u8, prefix_len: u32); fn ext_kill_child_storage(storage_key_data: *const u8, storage_key_len: u32); + /// Host-side result allocation fn ext_get_allocated_storage(key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8; + /// Host-side result allocation fn ext_get_allocated_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8; fn ext_get_storage_into(key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32; fn ext_get_child_storage_into(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32; fn ext_storage_root(result: *mut u8); - fn ext_child_storage_root(storage_key_data: *const u8, storage_key_len: u32, written_out: *mut u32) -> *mut u8; + /// Host-side result allocation + fn ext_child_storage_root(storage_key_data: *const u8, storage_key_len: u32, written_out: *mut u32) -> *mut u8; fn ext_storage_changes_root(parent_hash_data: *const u8, parent_hash_len: u32, parent_num: u64, result: *mut u8) -> u32; - fn ext_blake2_256_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8); + + /// The current relay chain identifier. fn ext_chain_id() -> u64; + + /// Hash calculation and verification + fn ext_blake2_256_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8); fn ext_blake2_256(data: *const u8, len: u32, out: *mut u8); fn ext_twox_128(data: *const u8, len: u32, out: *mut u8); fn ext_twox_256(data: *const u8, len: u32, out: *mut u8); + /// Note: ext_ed25519_verify returns 0 if the signature is correct, nonzero otherwise. fn ext_ed25519_verify(msg_data: *const u8, msg_len: u32, sig_data: *const u8, pubkey_data: *const u8) -> u32; } From c7d595c53338c714acc2472a9d65e298476f4f41 Mon Sep 17 00:00:00 2001 From: Alexander Krupenkin Date: Wed, 9 Jan 2019 13:26:17 +0300 Subject: [PATCH 30/44] Fix duplicate sources (paritytech/polkadot#62) (#1351) --- Cargo.lock | 29 ++--------------------------- core/network-libp2p/Cargo.toml | 2 +- core/telemetry/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 356c0b0a734cf..2a7854ae237d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2082,11 +2082,6 @@ name = "parity-bytes" version = "0.1.0" source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" -[[package]] -name = "parity-bytes" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "parity-codec" version = "2.1.5" @@ -3691,7 +3686,7 @@ dependencies = [ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3868,7 +3863,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -4684,24 +4679,6 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "ws" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -4945,7 +4922,6 @@ dependencies = [ "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" -"checksum parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5168b4cf41f3835e4bc6ffb32f51bc9365dc50cb351904595b3931d917fd0c" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1117f6574377d21309bfa1f7d69ff734120685d92b02c3f362b122585758840" @@ -5124,7 +5100,6 @@ dependencies = [ "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" -"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index d02652daa6883..6eb7f39859738 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -26,4 +26,4 @@ unsigned-varint = { version = "0.2.1", features = ["codec"] } [dev-dependencies] assert_matches = "1.2" -parity-bytes = "0.1" +parity-bytes = { git = "https://github.com/paritytech/parity-common", rev = "616b40150ded71f57f650067fcbc5c99d7c343e6" } diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index 7dda91279254c..8b055329131e9 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -12,4 +12,4 @@ slog = "^2" slog-json = "^2" slog-async = "^2" slog-scope = "^4" -ws = { version = "^0.7", features = ["ssl"] } +ws = { git = "https://github.com/tomusdrw/ws-rs" } From 521a009f3d08e310c76cccf589751b42360e8640 Mon Sep 17 00:00:00 2001 From: kyegupov Date: Wed, 9 Jan 2019 10:27:53 +0000 Subject: [PATCH 31/44] Test compiled wasm code in test-runtime (#1364) * Test compiled wasm code in test-runtime * Drop lazy_static * Move substrate-executor to dev-dependencies --- Cargo.lock | 1 + core/test-runtime/Cargo.toml | 3 ++ core/test-runtime/src/lib.rs | 2 + core/test-runtime/src/system.rs | 46 +++++++++++++++--- .../substrate_test_runtime.compact.wasm | Bin 41771 -> 43197 bytes node/runtime/wasm/Cargo.lock | 2 +- 6 files changed, 47 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a7854ae237d1..85b72bafe67bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3898,6 +3898,7 @@ dependencies = [ "srml-support 0.1.0", "substrate-client 0.1.0", "substrate-consensus-aura-primitives 0.1.0", + "substrate-executor 0.1.0", "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", ] diff --git a/core/test-runtime/Cargo.toml b/core/test-runtime/Cargo.toml index d43cb5d0cf1c8..49389a0b5107a 100644 --- a/core/test-runtime/Cargo.toml +++ b/core/test-runtime/Cargo.toml @@ -20,6 +20,9 @@ sr-primitives = { path = "../sr-primitives", default-features = false } sr-version = { path = "../sr-version", default-features = false } srml-support = { path = "../../srml/support", default-features = false } +[dev-dependencies] +substrate-executor = { path = "../executor" } + [features] default = ["std"] std = [ diff --git a/core/test-runtime/src/lib.rs b/core/test-runtime/src/lib.rs index 8aafd9979130f..eb5efdf684afb 100644 --- a/core/test-runtime/src/lib.rs +++ b/core/test-runtime/src/lib.rs @@ -45,6 +45,8 @@ extern crate substrate_keyring as keyring; #[cfg_attr(any(feature = "std", test), macro_use)] extern crate substrate_primitives as primitives; +#[cfg(test)] extern crate substrate_executor; + #[cfg(feature = "std")] pub mod genesismap; pub mod system; diff --git a/core/test-runtime/src/system.rs b/core/test-runtime/src/system.rs index 81cbabe90692b..19739b21cb2a0 100644 --- a/core/test-runtime/src/system.rs +++ b/core/test-runtime/src/system.rs @@ -248,6 +248,10 @@ mod tests { use ::{Header, Digest, Extrinsic, Transfer}; use primitives::{Blake2Hasher}; use primitives::storage::well_known_keys; + use substrate_executor::WasmExecutor; + + const WASM_CODE: &'static [u8] = + include_bytes!("../wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm"); fn new_test_ext() -> TestExternalities { TestExternalities::new(map![ @@ -265,8 +269,7 @@ mod tests { Extrinsic { transfer: tx, signature } } - #[test] - fn block_import_works() { + fn block_import_works(block_executor: F) where F: Fn(Block, &mut TestExternalities) { let mut t = new_test_ext(); let h = Header { @@ -282,13 +285,27 @@ mod tests { extrinsics: vec![], }; - with_externalities(&mut t, || { - execute_block(b); + block_executor(b, &mut t); + + } + + #[test] + fn block_import_works_native() { + block_import_works(|b, ext| { + with_externalities(ext, || { + execute_block(b); + }); }); } #[test] - fn block_import_with_transaction_works() { + fn block_import_works_wasm() { + block_import_works(|b, ext| { + WasmExecutor::new().call(ext, 8, &WASM_CODE, "Core_execute_block", &b.encode()).unwrap(); + }) + } + + fn block_import_with_transaction_works(block_executor: F) where F: Fn(Block, &mut TestExternalities) { let mut t = new_test_ext(); with_externalities(&mut t, || { @@ -345,12 +362,29 @@ mod tests { ], }; + block_executor(b, &mut t); + with_externalities(&mut t, || { - execute_block(b); assert_eq!(balance_of(Keyring::Alice.to_raw_public().into()), 0); assert_eq!(balance_of(Keyring::Bob.to_raw_public().into()), 42); assert_eq!(balance_of(Keyring::Charlie.to_raw_public().into()), 69); }); } + + #[test] + fn block_import_with_transaction_works_native() { + block_import_with_transaction_works(|b, ext| { + with_externalities(ext, || { + execute_block(b); + }); + }); + } + + #[test] + fn block_import_with_transaction_works_wasm() { + block_import_with_transaction_works(|b, ext| { + WasmExecutor::new().call(ext, 8, &WASM_CODE, "Core_execute_block", &b.encode()).unwrap(); + }) + } } diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 56ba7e35f138a83916bd8f93c578ab046b606de7..1dd3d898b2b94f6108230e6c21b2afa010c1883b 100644 GIT binary patch delta 15812 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 delta 14084 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 F{l8P%R)zoo diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 1a8cd74f4e139..f318f568466d6 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -1059,7 +1059,7 @@ dependencies = [ ] [[package]] -name = "sr-sandbox" +name = "sr-" version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", From 380462976d634b1a2e0710a161d7a81d82c79b2c Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Wed, 9 Jan 2019 13:18:09 +0200 Subject: [PATCH 32/44] drew.tupletimestamp - Add tuple macro for timestamps too, break macro out into support (#1372) * Add tuple and dont mess up spacing * Update lib.rs * Add timestamp tuple macro : * Tabs * Add docs. --- srml/session/src/lib.rs | 13 +------------ srml/support/src/lib.rs | 15 +++++++++++++++ srml/timestamp/src/lib.rs | 24 +++++++++++++++--------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 05381e6df97e6..ea33395021346 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -42,6 +42,7 @@ use primitives::traits::{As, Zero, One, Convert}; use codec::HasCompact; use runtime_support::{StorageValue, StorageMap}; use runtime_support::dispatch::Result; +use runtime_support::for_each_tuple; use system::ensure_signed; use rstd::ops::Mul; @@ -51,17 +52,6 @@ pub trait OnSessionChange { fn on_session_change(time_elapsed: T, should_reward: bool); } -macro_rules! for_each_tuple { - ($m:ident) => { - for_each_tuple! { @IMPL $m !! A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, } - }; - (@IMPL $m:ident !!) => { $m! { } }; - (@IMPL $m:ident !! $h:ident, $($t:ident,)*) => { - $m! { $h $($t)* } - for_each_tuple! { @IMPL $m !! $($t,)* } - } -} - macro_rules! impl_session_change { () => ( impl OnSessionChange for () { @@ -80,7 +70,6 @@ macro_rules! impl_session_change { for_each_tuple!(impl_session_change); - pub trait Trait: timestamp::Trait { type ConvertAccountIdToSessionKey: Convert; type OnSessionChange: OnSessionChange; diff --git a/srml/support/src/lib.rs b/srml/support/src/lib.rs index 291ebc8e740d8..b28d9f3131dec 100644 --- a/srml/support/src/lib.rs +++ b/srml/support/src/lib.rs @@ -142,3 +142,18 @@ pub use mashup::*; #[cfg(feature = "std")] #[doc(hidden)] pub use serde_derive::*; + +/// Programatically create derivations for tuples of up to 19 elements. You provide a second macro +/// which is called once per tuple size, along with a number of identifiers, one for each element +/// of the tuple. +#[macro_export] +macro_rules! for_each_tuple { + ($m:ident) => { + for_each_tuple! { @IMPL $m !! A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, } + }; + (@IMPL $m:ident !!) => { $m! { } }; + (@IMPL $m:ident !! $h:ident, $($t:ident,)*) => { + $m! { $h $($t)* } + for_each_tuple! { @IMPL $m !! $($t,)* } + } +} diff --git a/srml/timestamp/src/lib.rs b/srml/timestamp/src/lib.rs index 0d9360b74771e..27dcc81babbec 100644 --- a/srml/timestamp/src/lib.rs +++ b/srml/timestamp/src/lib.rs @@ -55,25 +55,31 @@ use runtime_primitives::traits::{ }; use system::ensure_inherent; use rstd::{result, ops::{Mul, Div}, vec::Vec}; +use runtime_support::for_each_tuple; /// A trait which is called when the timestamp is set. pub trait OnTimestampSet { fn on_timestamp_set(moment: Moment); } -impl OnTimestampSet for () { - fn on_timestamp_set(_moment: Moment) { } -} +macro_rules! impl_timestamp_set { + () => ( + impl OnTimestampSet for () { + fn on_timestamp_set(_: Moment) {} + } + ); -impl OnTimestampSet for (A, B) - where A: OnTimestampSet, B: OnTimestampSet -{ - fn on_timestamp_set(moment: Moment) { - A::on_timestamp_set(moment.clone()); - B::on_timestamp_set(moment); + ( $($t:ident)* ) => { + impl),*> OnTimestampSet for ($($t,)*) { + fn on_timestamp_set(moment: Moment) { + $($t::on_timestamp_set(moment.clone());)* + } + } } } +for_each_tuple!(impl_timestamp_set); + pub trait Trait: consensus::Trait + system::Trait { /// The position of the required timestamp-set extrinsic. const TIMESTAMP_SET_POSITION: u32; From 9d05c20bb3a794def3c9244d67de021eef6a9745 Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Thu, 10 Jan 2019 00:18:24 +1300 Subject: [PATCH 33/44] expose peer information via rpc (#1362) * expose peer information via rpc * fixes tests * cleanup Co-Authored-By: xlc * Update docs Co-Authored-By: xlc * Add missing docs * keep original type for PeerInfo best_hash/best_number * cleanup * Update mod.rs --- core/network-libp2p/src/lib.rs | 2 +- core/network/src/lib.rs | 2 +- core/network/src/protocol.rs | 14 ++++++++++++++ core/network/src/service.rs | 12 +++++++++++- node/rpc-servers/src/lib.rs | 2 +- node/rpc/src/system/helpers.rs | 17 +++++++++++++++++ node/rpc/src/system/mod.rs | 23 +++++++++++++++++++---- node/rpc/src/system/tests.rs | 28 +++++++++++++++++++++++++++- 8 files changed, 91 insertions(+), 9 deletions(-) diff --git a/core/network-libp2p/src/lib.rs b/core/network-libp2p/src/lib.rs index 8c5df15c4954e..6890450763140 100644 --- a/core/network-libp2p/src/lib.rs +++ b/core/network-libp2p/src/lib.rs @@ -53,7 +53,7 @@ mod transport; pub use custom_proto::RegisteredProtocol; pub use error::{Error, ErrorKind, DisconnectReason}; -pub use libp2p::{Multiaddr, multiaddr::{Protocol}, multiaddr, PeerId}; +pub use libp2p::{Multiaddr, multiaddr::{Protocol}, multiaddr, PeerId, core::PublicKey}; pub use secret::obtain_private_key; pub use service_task::{start_service, Service, ServiceEvent}; pub use traits::{NetworkConfiguration, NodeIndex, NodeId, NonReservedPeerMode}; diff --git a/core/network/src/lib.rs b/core/network/src/lib.rs index 5f10051b15ea7..95b6d68113d4a 100644 --- a/core/network/src/lib.rs +++ b/core/network/src/lib.rs @@ -69,7 +69,7 @@ pub use protocol::{ProtocolStatus, PeerInfo, Context}; pub use sync::{Status as SyncStatus, SyncState}; pub use network_libp2p::{ NodeIndex, ProtocolId, Severity, Protocol, Multiaddr, - obtain_private_key, multiaddr, + obtain_private_key, multiaddr, PeerId, PublicKey }; pub use message::{generic as generic_message, RequestId, Status as StatusMessage}; pub use error::Error; diff --git a/core/network/src/protocol.rs b/core/network/src/protocol.rs index 42c59545322c6..41612c788d7c4 100644 --- a/core/network/src/protocol.rs +++ b/core/network/src/protocol.rs @@ -240,6 +240,20 @@ impl, H: ExHashT> Protocol { } } + pub fn peers(&self) -> Vec<(NodeIndex, PeerInfo)> { + self.context_data.peers.read().iter().map(|(idx, p)| { + ( + *idx, + PeerInfo { + roles: p.roles, + protocol_version: p.protocol_version, + best_hash: p.best_hash, + best_number: p.best_number, + } + ) + }).collect() + } + pub fn handle_packet(&self, io: &mut SyncIo, who: NodeIndex, mut data: &[u8]) { let message: Message = match Decode::decode(&mut data) { Some(m) => m, diff --git a/core/network/src/service.rs b/core/network/src/service.rs index 5487accd1b118..501b5d6eb39bf 100644 --- a/core/network/src/service.rs +++ b/core/network/src/service.rs @@ -26,7 +26,7 @@ use network_libp2p::{RegisteredProtocol, parse_str_addr, Protocol as Libp2pProto use io::NetSyncIo; use consensus::import_queue::{ImportQueue, Link}; use consensus_gossip::ConsensusGossip; -use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus}; +use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus, PeerInfo}; use config::Params; use error::Error; use specialization::NetworkSpecialization; @@ -45,6 +45,8 @@ const PROPAGATE_TIMEOUT: Duration = Duration::from_millis(5000); pub trait SyncProvider: Send + Sync { /// Get sync status fn status(&self) -> ProtocolStatus; + /// Get currently connected peers + fn peers(&self) -> Vec<(NodeIndex, Option, PeerInfo)>; } /// Minimum Requirements for a Hash within Networking @@ -228,6 +230,14 @@ impl, H: ExHashT> SyncProvider< fn status(&self) -> ProtocolStatus { self.handler.status() } + + fn peers(&self) -> Vec<(NodeIndex, Option, PeerInfo)> { + let peers = self.handler.peers(); + let network = self.network.lock(); + peers.into_iter().map(|(idx, info)| { + (idx, network.peer_id_of_node(idx).map(|p| p.clone()), info) + }).collect::>() + } } /// Trait for managing network diff --git a/node/rpc-servers/src/lib.rs b/node/rpc-servers/src/lib.rs index bef0d4a368eb9..fb09799ef5c63 100644 --- a/node/rpc-servers/src/lib.rs +++ b/node/rpc-servers/src/lib.rs @@ -52,7 +52,7 @@ pub fn rpc_handler( S: apis::state::StateApi, C: apis::chain::ChainApi, Block::Hash, Block::Header, SignedBlock, Metadata=Metadata>, A: apis::author::AuthorApi, - Y: apis::system::SystemApi, + Y: apis::system::SystemApi>, { let mut io = pubsub::PubSubHandler::default(); io.extend_with(state.to_delegate()); diff --git a/node/rpc/src/system/helpers.rs b/node/rpc/src/system/helpers.rs index 0d3b7e56cd81e..5a679de0ad2f3 100644 --- a/node/rpc/src/system/helpers.rs +++ b/node/rpc/src/system/helpers.rs @@ -45,6 +45,23 @@ pub struct Health { pub is_syncing: bool, } +/// Network Peer information +#[derive(Debug, PartialEq, Serialize)] +pub struct PeerInfo { + /// Peer Node Index + pub index: usize, + /// Peer ID + pub peer_id: String, + /// Roles + pub roles: String, + /// Protocol version + pub protocol_version: u32, + /// Peer best block hash + pub best_hash: Hash, + /// Peer best block number + pub best_number: Number, +} + impl fmt::Display for Health { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { write!(fmt, "{} peers ({})", self.peers, if self.is_syncing { diff --git a/node/rpc/src/system/mod.rs b/node/rpc/src/system/mod.rs index 634dd1c0639d6..1d33104483004 100644 --- a/node/rpc/src/system/mod.rs +++ b/node/rpc/src/system/mod.rs @@ -24,14 +24,14 @@ mod tests; use std::sync::Arc; use network; -use runtime_primitives::traits; +use runtime_primitives::traits::{self, Header as HeaderT}; use self::error::Result; -pub use self::helpers::{Properties, SystemInfo, Health}; +pub use self::helpers::{Properties, SystemInfo, Health, PeerInfo}; build_rpc_trait! { /// Substrate system RPC API - pub trait SystemApi { + pub trait SystemApi { /// Get the node's implementation name. Plain old string. #[rpc(name = "system_name")] fn system_name(&self) -> Result; @@ -55,6 +55,10 @@ build_rpc_trait! { /// - not performing a major sync #[rpc(name = "system_health")] fn system_health(&self) -> Result; + + /// Returns currently connected peers + #[rpc(name = "system_peers")] + fn system_peers(&self) -> Result>>; } } @@ -80,7 +84,7 @@ impl System { } } -impl SystemApi for System { +impl SystemApi::Number> for System { fn system_name(&self) -> Result { Ok(self.info.impl_name.clone()) } @@ -115,4 +119,15 @@ impl SystemApi for System { Ok(health) } } + + fn system_peers(&self) -> Result::Number>>> { + Ok(self.sync.peers().into_iter().map(|(idx, peer_id, p)| PeerInfo { + index: idx, + peer_id: peer_id.map_or_else(Default::default, |p| p.to_base58()), + roles: format!("{:?}", p.roles), + protocol_version: p.protocol_version, + best_hash: p.best_hash, + best_number: p.best_number, + }).collect()) + } } diff --git a/node/rpc/src/system/tests.rs b/node/rpc/src/system/tests.rs index 5c8f0b9058d72..976dbe509a4e1 100644 --- a/node/rpc/src/system/tests.rs +++ b/node/rpc/src/system/tests.rs @@ -16,8 +16,10 @@ use super::*; -use network::{self, SyncState, SyncStatus, ProtocolStatus}; +use network::{self, SyncState, SyncStatus, ProtocolStatus, NodeIndex, PeerId, PeerInfo as NetworkPeerInfo, PublicKey}; +use network::config::Roles; use test_client::runtime::Block; +use primitives::H256; #[derive(Default)] struct Status { @@ -37,6 +39,15 @@ impl network::SyncProvider for Status { num_active_peers: 0, } } + + fn peers(&self) -> Vec<(NodeIndex, Option, NetworkPeerInfo)> { + vec![(1, Some(PublicKey::Ed25519((0 .. 32).collect::>()).into()), NetworkPeerInfo { + roles: Roles::FULL, + protocol_version: 1, + best_hash: Default::default(), + best_number: 1 + })] + } } @@ -129,3 +140,18 @@ fn system_health() { } ); } + +#[test] +fn system_peers() { + assert_eq!( + api(None).system_peers().unwrap(), + vec![PeerInfo { + index: 1, + peer_id: "QmS5oyTmdjwBowwAH1D9YQnoe2HyWpVemH8qHiU5RqWPh4".into(), + roles: "FULL".into(), + protocol_version: 1, + best_hash: Default::default(), + best_number: 1u64, + }] + ); +} From b6c4968859991d938c19192c92b699a61a997360 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Wed, 9 Jan 2019 12:52:16 +0100 Subject: [PATCH 34/44] Cherry updates (#1373) - Introduce compact extrinsics into Cherry - Remove UpgradeKey from Cherry (Sudo is enough) - Remove networkId from Cherry properties --- core/network/src/on_demand.rs | 4 +- core/test-runtime/wasm/Cargo.lock | 60 +---------------- .../substrate_test_runtime.compact.wasm | Bin 43197 -> 41787 bytes node/cli/res/charred-cherry.json | 1 - node/cli/src/chain_spec.rs | 12 +--- node/executor/src/lib.rs | 13 ++-- node/runtime/src/lib.rs | 12 +--- node/runtime/wasm/Cargo.lock | 62 ++---------------- .../release/node_runtime.compact.wasm | Bin 808984 -> 791471 bytes 9 files changed, 21 insertions(+), 143 deletions(-) diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index db56eaf592779..d71352e86ea48 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -947,7 +947,7 @@ pub mod tests { // last peer was not updated let (_x, on_demand) = dummy(true); let queue = RwLock::new(VecDeque::new()); - let mut network = TestIo::new(&queue, None); + let _network = TestIo::new(&queue, None); on_demand.remote_header(RemoteHeaderRequest { cht_root: Default::default(), @@ -972,7 +972,7 @@ pub mod tests { fn tries_to_send_all_pending_requests() { let (_x, on_demand) = dummy(true); let queue = RwLock::new(VecDeque::new()); - let mut network = TestIo::new(&queue, None); + let _network = TestIo::new(&queue, None); on_demand.remote_header(RemoteHeaderRequest { cht_root: Default::default(), diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index bdd4fd0534be2..29dfcf7e99916 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -208,19 +208,6 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -530,30 +517,6 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "openssl" -version = "0.10.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "openssl-sys" -version = "0.9.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -641,11 +604,6 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "pkg-config" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "primitive-types" version = "0.1.4" @@ -1212,7 +1170,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -1531,11 +1489,6 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "vcpkg" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "void" version = "1.0.2" @@ -1583,7 +1536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1591,7 +1544,6 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1635,8 +1587,6 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" @@ -1678,8 +1628,6 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" -"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -1690,7 +1638,6 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -1756,7 +1703,6 @@ dependencies = [ "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -1764,5 +1710,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" +"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 1dd3d898b2b94f6108230e6c21b2afa010c1883b..451cac0489f4632dad587a0e8fb8ecc07753ba98 100644 GIT binary patch delta 13787 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ÿ+k0lhFZB-s9Q3D#qhj!#ud%*AL-#FWrV1 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 diff --git a/node/cli/res/charred-cherry.json b/node/cli/res/charred-cherry.json index 4f9905f720bbf..11f64f098d42e 100644 --- a/node/cli/res/charred-cherry.json +++ b/node/cli/res/charred-cherry.json @@ -2,7 +2,6 @@ "name": "Charred Cherry", "id": "charred-cherry", "properties": { - "networkId": 68, "tokenDecimals": 15, "tokenSymbol": "CHR" }, diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index b2d4b2ed4a4c5..ebf35a7491db5 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - UpgradeKeyConfig, SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; + SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; @@ -130,9 +130,6 @@ fn staging_testnet_config_genesis() -> GenesisConfig { block_gas_limit: 10_000_000, current_schedule: Default::default(), }), - upgrade_key: Some(UpgradeKeyConfig { - key: endowed_accounts[0].clone(), - }), sudo: Some(SudoConfig { key: endowed_accounts[0].clone(), }), @@ -168,7 +165,7 @@ pub fn get_authority_id_from_seed(seed: &str) -> Ed25519AuthorityId { /// Helper function to create GenesisConfig for testing pub fn testnet_genesis( initial_authorities: Vec, - upgrade_key: AccountId, + root_key: AccountId, endowed_accounts: Option>, ) -> GenesisConfig { let endowed_accounts = endowed_accounts.unwrap_or_else(|| { @@ -258,11 +255,8 @@ pub fn testnet_genesis( block_gas_limit: 10_000_000, current_schedule: Default::default(), }), - upgrade_key: Some(UpgradeKeyConfig { - key: upgrade_key, - }), sudo: Some(SudoConfig { - key: upgrade_key, + key: root_key, }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 626deb0a7e3ee..b8d459689b618 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -90,7 +90,7 @@ mod tests { match xt.signed { Some((signed, index)) => { let era = Era::mortal(256, 0); - let payload = (index, xt.function, era, GENESIS_HASH); + let payload = (index.into(), xt.function, era, GENESIS_HASH); let pair = Pair::from(Keyring::from_public(Public::from_raw(signed.clone().into())).unwrap()); let signature = pair.sign(&payload.encode()).into(); UncheckedExtrinsic { @@ -260,7 +260,6 @@ mod tests { timestamp: Some(Default::default()), treasury: Some(Default::default()), contract: Some(Default::default()), - upgrade_key: Some(Default::default()), sudo: Some(Default::default()), grandpa: Some(GrandpaConfig { authorities: vec![ // set these so no GRANDPA events fire when session changes @@ -313,9 +312,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("0bc6c118c326c65da9d0f93199f471aab4f636cfe87ab9a56c823024ca83995a").into() + hex!("22e7fc466d555b9dce285425081d89751b2063243684979df3840b3ac7e8ecdc").into() } else { - hex!("58e1f1493e311d9b1fef3660426ee289736c38eb6f7d98911551c51765163056").into() + hex!("7395363e53e682984f817fb1d5a862c5ce8b817375c06270d7a39be7097ad953").into() }, if support_changes_trie { vec![changes_trie_log( @@ -341,7 +340,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("ced5607b16774cdbf750f8f7f0a99cd4afd7eb14db376a44bb8656f2ce02b18e").into(), + hex!("66b9625c9c824de867815215528fe43014d50af7fb95c8da120910c220a46f6b").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -370,7 +369,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("8a506a6f72c7efb75fd069a8c4f57c8e0b6b5adbea9646522bda64d4c78f5412").into(), + hex!("66dfdf3a0ef93ec49ec36c0a65fe328d085a865c2382397b2cd6468e391f2f51").into(), vec![], vec![ CheckedExtrinsic { @@ -660,7 +659,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("ce21753c3f806443c2758c982850861708054b65097fed82689e7b16cd5d6e24").into(), + hex!("8197608e90fff1f7d92b35381169242d081779b1718c910689f2589a8ac09b44").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 00d03729613ac..cc0c195780066 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -51,7 +51,6 @@ extern crate srml_sudo as sudo; extern crate srml_system as system; extern crate srml_timestamp as timestamp; extern crate srml_treasury as treasury; -extern crate srml_upgrade_key as upgrade_key; #[macro_use] extern crate sr_version as version; extern crate node_primitives; @@ -97,8 +96,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 11, - impl_version: 11, + spec_version: 12, + impl_version: 12, apis: RUNTIME_API_VERSIONS, }; @@ -202,10 +201,6 @@ impl contract::Trait for Runtime { type Event = Event; } -impl upgrade_key::Trait for Runtime { - type Event = Event; -} - impl sudo::Trait for Runtime { type Event = Event; type Proposal = Call; @@ -238,7 +233,6 @@ construct_runtime!( Grandpa: grandpa::{Module, Call, Storage, Config, Log(), Event}, Treasury: treasury, Contract: contract::{Module, Call, Config, Event}, - UpgradeKey: upgrade_key, Sudo: sudo, } ); @@ -257,7 +251,7 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; /// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedMortalExtrinsic; +pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Executive: handles dispatch to the various modules. diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index f318f568466d6..673e92deefb1d 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -208,19 +208,6 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -587,30 +574,6 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "openssl" -version = "0.10.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "openssl-sys" -version = "0.9.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -698,11 +661,6 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "pkg-config" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "primitive-types" version = "0.1.4" @@ -1059,7 +1017,7 @@ dependencies = [ ] [[package]] -name = "sr-" +name = "sr-sandbox" version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1584,7 +1542,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -1875,11 +1833,6 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "vcpkg" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "void" version = "1.0.2" @@ -1927,7 +1880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1935,7 +1888,6 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1979,8 +1931,6 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" @@ -2022,8 +1972,6 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" -"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -2034,7 +1982,6 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -2103,7 +2050,6 @@ dependencies = [ "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -2111,5 +2057,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" +"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 657189d728982a285676bb91353fb1a98e30e24a..f601f830c113655094f7fe59fc3d97ff584e8eb0 100644 GIT binary patch delta 257283 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%0D{O@3vgYm5Rvvt7x*|Wo`!Ay5) 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 delta 271240 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%0A+^Y7G4a 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 Vh%6d3Q6{@l4Cw)$e}EtD^M7=0-01)S From 9cdb6fc19cb00d273f327d4b4501947a9e75d2e8 Mon Sep 17 00:00:00 2001 From: joepetrowski <25483142+joepetrowski@users.noreply.github.com> Date: Wed, 9 Jan 2019 15:55:43 +0100 Subject: [PATCH 35/44] Updated README.adoc (#1278) * Updated README.adoc Added a new section with instructions of how to join the Krumme Lanke testnet. Closes Issue 1217 * Update README.adoc Instructions for joining Charred Cherry + some minor typos * Updated Runtime & API in README.adoc Properties of these functions are changing quickly, updated this section to be more generic. --- README.adoc | 83 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/README.adoc b/README.adoc index 4525a86b038f1..2d1f653515780 100644 --- a/README.adoc +++ b/README.adoc @@ -48,38 +48,35 @@ Other examples include the parachain-heads extrinsic in Polkadot and the "note-m === Runtime and API -Substrate chains all have a runtime. The runtime is a WebAssembly "blob" that includes a number of entry-points. Some entry-points are required as part of the underlying Substrate specification. Others are merely convention and required for the default implementation of the Substrate client to be able to author blocks. In short these two sets are: +Substrate chains all have a runtime. The runtime is a WebAssembly "blob" that includes a number of entry-points. Some entry-points are required as part of the underlying Substrate specification. Others are merely convention and required for the default implementation of the Substrate client to be able to author blocks. -The runtime is API entry points are expected to be in the runtime's `api` module. There is a specific ABI based upon the Substrate Simple Codec (`codec`), which is used to encode and decode the arguments for these functions and specify where and how they should be passed. A special macro is provided called `impl_stubs`, which prepares all functionality for marshalling arguments and basically just allows you to write the functions as you would normally (except for the fact that there must be example one argument - tuples are allowed to workaround). +If you want to develop a chain with Substrate, you will need to implement the `Core` trait. This `Core` trait generates an API with the minimum necessary functionality to interact with your runtime. A special macro is provided called `impl_runtime_apis!` that help you implement runtime API traits. All runtime API trait implementations need to be done in one call of the `impl_runtime_apis!` macro. All parameters and return values need to implement https://crates.io/crates/parity-codec[`parity-codec`] to be encodable and decodable. -Here's the Polkadot API implementation as of PoC-2: +Here's a snippet of the Polkadot API implementation as of PoC-3: ```rust -pub mod api { - impl_stubs!( - - // Standard: Required. - version => |()| super::Version::version(), - authorities => |()| super::Consensus::authorities(), - execute_block => |block| super::Executive::execute_block(block), - - // Conventional: Needed for Substrate client's reference block authoring logic to work. - initialise_block => |header| super::Executive::initialise_block(&header), - apply_extrinsic => |extrinsic| super::Executive::apply_extrinsic(extrinsic), - finalise_block => |()| super::Executive::finalise_block(), - inherent_extrinsics => |inherent| super::inherent_extrinsics(inherent), - - // Non-standard (Polkadot-specific). This just exposes some stuff that Polkadot client - // finds useful. - validator_count => |()| super::Session::validator_count(), - validators => |()| super::Session::validators() - ); +impl_runtime_apis! { + impl client_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn authorities() -> Vec { + Consensus::authorities() + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialise_block(header: ::Header) { + Executive::initialise_block(&header) + } + } + // ---snip--- } ``` -As you can see, at the minimum there are only three API calls to implement. If you want to reuse as much of Substrate's reference block authoring client code, then you'll want to provide the next four entrypoints (though three of them you probably already implemented as part of `execute_block`). - -Of the first three, there is `execute_block`, which contains the actions to be taken to execute a block and pretty much defines the blockchain. Then there is `authorities` which tells the AfG consensus algorithm sitting in the Substrate client who the given authorities (known as "validators" in some contexts) are that can finalise the next block. Finally, there is `version`, which is a fairly sophisticated version identifier. This includes a key distinction between *specification version* and *authoring version*, with the former essentially versioning the logic of `execute_block` and the latter versioning only the logic of `inherent_extrinsics` and core aspects of extrinsic validity. === Inherent Extrinsics @@ -175,7 +172,7 @@ You can distribute `mychain.json` so that everyone can synchronise and (dependin === Hacking on Substrate -If you'd actually like hack on Substrate, you can just grab the source code and +If you'd actually like to hack on Substrate, you can just grab the source code and build it. Ensure you have Rust and the support software installed: [source, shell] @@ -223,7 +220,6 @@ You can start a development chain with: [source, shell] cargo run -- --dev - Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev`. If you want to see the multi-node consensus algorithm in action locally, then you can create a local testnet with two validator nodes for Alice and Bob, who are the initial authorities of the genesis chain specification that have been endowed with a testnet DOTs. We'll give each node a name and expose them so they are listed on [Telemetry](https://telemetry.polkadot.io/#/Local%20Testnet). You'll need two terminals windows open. @@ -255,6 +251,39 @@ cargo run -- \ Additional Substate CLI usage options are available and may be shown by running `cargo run -- --help`. +=== Joining the Charred Cherry Testnet + +Charred Cherry is the new testnet for Substrate 1.0 beta. Please note that 1.0 beta is not compatible with the BBQ-Birch testnet. Ensure you have the dependencies listed above before compiling. + +[source, shell] +---- +git clone https://github.com/paritytech/substrate.git +cd substrate +---- + +You can run the tests if you like: + +[source, shell] +cargo test --all + +Start your node: + +[source, shell] +cargo run --release + +To see a list of command line options, enter: + +[source, shell] +cargo run --release -- --help + +For example, you can choose a custom node name: + +[source, shell] +cargo run --release -- --name my_custom_name + +If you are successful, you will see your node syncing at https://telemetry.polkadot.io/#/Charred%20Cherry + + == Documentation === Viewing documentation for Substrate packages From 4b40344361a3e551ecb2e42002f9ff2d9ee6dee7 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 11:34:25 +0100 Subject: [PATCH 36/44] Updates for CC's recent upgrade (#1381) * Updates for CC's recent upgrade - Version bump to 0.9.2 - Runtime version bump to v14 - Avoid misuse of error return type for system_health RPC * Fix tests --- Cargo.lock | 2 +- Cargo.toml | 2 +- node/rpc/src/system/helpers.rs | 2 ++ node/rpc/src/system/mod.rs | 20 +++++------------- node/rpc/src/system/tests.rs | 16 ++++++++------ node/runtime/src/lib.rs | 4 ++-- .../release/node_runtime.compact.wasm | Bin 791471 -> 791471 bytes 7 files changed, 21 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 85b72bafe67bf..d4271cec71403 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3371,7 +3371,7 @@ dependencies = [ [[package]] name = "substrate" -version = "0.9.1" +version = "0.9.2" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 729c3b6486ed6..d1e59bab2528e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.9.1" +version = "0.9.2" authors = ["Parity Technologies "] build = "build.rs" diff --git a/node/rpc/src/system/helpers.rs b/node/rpc/src/system/helpers.rs index 5a679de0ad2f3..3ab75fb50e091 100644 --- a/node/rpc/src/system/helpers.rs +++ b/node/rpc/src/system/helpers.rs @@ -43,6 +43,8 @@ pub struct Health { pub peers: usize, /// Is the node syncing pub is_syncing: bool, + /// Should this node have any peers + pub should_have_peers: bool, } /// Network Peer information diff --git a/node/rpc/src/system/mod.rs b/node/rpc/src/system/mod.rs index 1d33104483004..a06aaaad2384b 100644 --- a/node/rpc/src/system/mod.rs +++ b/node/rpc/src/system/mod.rs @@ -103,21 +103,11 @@ impl SystemApi::Number> for Sy fn system_health(&self) -> Result { let status = self.sync.status(); - - let is_syncing = status.sync.is_major_syncing(); - let peers = status.num_peers; - - let health = Health { - peers, - is_syncing, - }; - - let has_no_peers = peers == 0 && self.should_have_peers; - if has_no_peers || is_syncing { - Err(error::ErrorKind::NotHealthy(health))? - } else { - Ok(health) - } + Ok(Health { + peers: status.num_peers, + is_syncing: status.sync.is_major_syncing(), + should_have_peers: self.should_have_peers, + }) } fn system_peers(&self) -> Result::Number>>> { diff --git a/node/rpc/src/system/tests.rs b/node/rpc/src/system/tests.rs index 976dbe509a4e1..169d5b914b000 100644 --- a/node/rpc/src/system/tests.rs +++ b/node/rpc/src/system/tests.rs @@ -97,11 +97,12 @@ fn system_properties_works() { #[test] fn system_health() { assert_matches!( - api(None).system_health().unwrap_err().kind(), - error::ErrorKind::NotHealthy(Health { + api(None).system_health().unwrap(), + Health { peers: 0, is_syncing: false, - }) + should_have_peers: true, + } ); assert_matches!( @@ -109,11 +110,12 @@ fn system_health() { peers: 5, is_syncing: true, is_dev: true, - }).system_health().unwrap_err().kind(), - error::ErrorKind::NotHealthy(Health { + }).system_health().unwrap(), + Health { peers: 5, is_syncing: true, - }) + should_have_peers: false, + } ); assert_eq!( @@ -125,6 +127,7 @@ fn system_health() { Health { peers: 5, is_syncing: false, + should_have_peers: true, } ); @@ -137,6 +140,7 @@ fn system_health() { Health { peers: 0, is_syncing: false, + should_have_peers: false, } ); } diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index cc0c195780066..6295a38b6f99e 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -96,8 +96,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 12, - impl_version: 12, + spec_version: 14, + impl_version: 14, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index f601f830c113655094f7fe59fc3d97ff584e8eb0..e8aee63b4fb8eb497626e412acfd2cb83eb928d1 100644 GIT binary patch delta 54 zcmZ3#++h83gN7Ey7N!>F7M2#)7Pc+ym-86;reDcppTfx3o|(@M#2i4(3B+96GxNFK GmH+@Dy%TBx delta 54 zcmZ3#++h83gN7Ey7N!>F7M2#)7Pc+ym-85TreDcppTfw~o|(@M#2i4(3B+96GxNFK GmH+@DQxj$Y From 41228a7627853e1c2585cac21e72f82a596cf0ac Mon Sep 17 00:00:00 2001 From: Stanislav Tkach Date: Thu, 10 Jan 2019 11:42:42 +0200 Subject: [PATCH 37/44] Escape dashes in shell commands --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 2d1f653515780..90b5f49a980c9 100644 --- a/README.adoc +++ b/README.adoc @@ -220,7 +220,7 @@ You can start a development chain with: [source, shell] cargo run -- --dev -Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev`. +Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run \-- --dev`. If you want to see the multi-node consensus algorithm in action locally, then you can create a local testnet with two validator nodes for Alice and Bob, who are the initial authorities of the genesis chain specification that have been endowed with a testnet DOTs. We'll give each node a name and expose them so they are listed on [Telemetry](https://telemetry.polkadot.io/#/Local%20Testnet). You'll need two terminals windows open. @@ -249,7 +249,7 @@ cargo run -- \ --telemetry-url ws://telemetry.polkadot.io:1024 \ --validator -Additional Substate CLI usage options are available and may be shown by running `cargo run -- --help`. +Additional Substate CLI usage options are available and may be shown by running `cargo run \-- --help`. === Joining the Charred Cherry Testnet From 05650b1f17bf32f3dcad1a6a12f4f009586959d0 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 10 Jan 2019 13:32:27 +0100 Subject: [PATCH 38/44] Update ring to 0.13 and subtle to 2.0 (#1383) --- Cargo.lock | 268 ++++++++++++++++----------------- core/keystore/Cargo.toml | 4 +- core/keystore/src/lib.rs | 2 +- core/network-libp2p/Cargo.toml | 2 +- core/primitives/Cargo.toml | 4 +- 5 files changed, 132 insertions(+), 148 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4271cec71403..c52f494163923 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -604,7 +604,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "datastore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1235,11 +1235,6 @@ name = "language-tags" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "lazy_static" version = "1.2.0" @@ -1267,28 +1262,28 @@ dependencies = [ [[package]] name = "libp2p" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1298,20 +1293,20 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1322,12 +1317,12 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1335,16 +1330,16 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1356,15 +1351,15 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1377,21 +1372,21 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1405,12 +1400,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1421,13 +1416,13 @@ dependencies = [ [[package]] name = "libp2p-peerstore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1436,15 +1431,15 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1456,11 +1451,11 @@ dependencies = [ [[package]] name = "libp2p-ratelimit" version = "0.1.1" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1469,14 +1464,14 @@ dependencies = [ [[package]] name = "libp2p-relay" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1487,7 +1482,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1497,28 +1492,28 @@ dependencies = [ "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-tcp-transport" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1527,10 +1522,10 @@ dependencies = [ [[package]] name = "libp2p-transport-timeout" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1538,25 +1533,25 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-websocket" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1565,11 +1560,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1756,13 +1751,13 @@ dependencies = [ [[package]] name = "multiaddr" version = "0.3.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1770,7 +1765,7 @@ dependencies = [ [[package]] name = "multihash" version = "0.8.1-pre" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1782,7 +1777,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2103,11 +2098,11 @@ dependencies = [ [[package]] name = "parity-crypto" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2371,7 +2366,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2392,7 +2387,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2429,15 +2424,7 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2552,14 +2539,13 @@ dependencies = [ [[package]] name = "ring" -version = "0.12.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2614,7 +2600,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3639,13 +3625,13 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", - "subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3684,7 +3670,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3714,14 +3700,14 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-serializer 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3954,12 +3940,12 @@ dependencies = [ [[package]] name = "subtle" -version = "0.5.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "subtle" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4398,7 +4384,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4498,7 +4484,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4784,7 +4770,7 @@ dependencies = [ "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" "checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" -"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" @@ -4855,28 +4841,27 @@ dependencies = [ "checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" -"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" "checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" @@ -4898,9 +4883,9 @@ dependencies = [ "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" @@ -4925,7 +4910,7 @@ dependencies = [ "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" -"checksum parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1117f6574377d21309bfa1f7d69ff734120685d92b02c3f362b122585758840" +"checksum parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8adf489acb31f1922db0ce43803b6f48a425241a8473611be3cc625a8e4a4c47" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" "checksum parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fa12d706797d42551663426a45e2db2e0364bd1dbf6aeada87e89c5f981f43e9" "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" @@ -4963,7 +4948,6 @@ dependencies = [ "checksum rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de5ac4de1c2973e1391dc305cb0fbf8788cb58068e98255439b7485a77022273" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c747d743d48233f9bc3ed3fb00cb84c1d98d8c7f54ed2d4cca9adf461a7ef3" @@ -4975,7 +4959,7 @@ dependencies = [ "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a09bc21b21795c366c8bf0e87afb71175f5f736b3a5b279b6f4e81839d0a877b" -"checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39be726e556e6f21d54d21cdf1be9f6df30c0411a5856c1abf3f4bb12498f2ed" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" @@ -4983,7 +4967,7 @@ dependencies = [ "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f7bf422d23a88c16d5090d455f182bc99c60af4df6a345c63428acf5129e347" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" @@ -5021,8 +5005,8 @@ dependencies = [ "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc7f6353c2ee5407358d063a14cccc1630804527090a6fb5a9489ce4924280fb" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" +"checksum subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "702662512f3ddeb74a64ce2fbbf3707ee1b6bb663d28bb054e0779bbc720d926" "checksum syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)" = "14f9bf6292f3a61d2c716723fdb789a41bbe104168e6f496dc6497e531ea1b9b" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" "checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" @@ -5079,7 +5063,7 @@ dependencies = [ "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c1441164e5da61f00acd15f5a9e61939693c2c6e8b9fae36a220b82de7e212" "checksum unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8abc4b7d8158bdfbbaaccc35331ed3c30c2673e99000d7ae665a2eb6576f4" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" diff --git a/core/keystore/Cargo.toml b/core/keystore/Cargo.toml index 760e064158ac2..9d31557b420d7 100644 --- a/core/keystore/Cargo.toml +++ b/core/keystore/Cargo.toml @@ -5,14 +5,14 @@ authors = ["Parity Technologies "] [dependencies] substrate-primitives = { path = "../primitives" } -parity-crypto = { version = "0.1", default-features = false } +parity-crypto = { version = "0.2", default-features = false } error-chain = "0.12" hex = "0.3" rand = "0.4" serde_json = "1.0" serde = "1.0" serde_derive = "1.0" -subtle = "0.5" +subtle = "2.0" [dev-dependencies] tempdir = "0.3" diff --git a/core/keystore/src/lib.rs b/core/keystore/src/lib.rs index 6d8e3b3ae9f23..baeeab27556d7 100644 --- a/core/keystore/src/lib.rs +++ b/core/keystore/src/lib.rs @@ -110,7 +110,7 @@ impl EncryptedKey { let mac = blake2_256(&crypto::derive_mac(&derived_right_bits, &self.ciphertext)); - if subtle::slices_equal(&mac[..], &self.mac[..]) != 1 { + if subtle::ConstantTimeEq::ct_eq(&mac[..], &self.mac[..]).unwrap_u8() != 1 { return Err(ErrorKind::InvalidPassword.into()); } diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 6eb7f39859738..12f92bc9a1331 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "d961e656a74d1bab5366d371a06f9e10d5f4a6c5", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } +libp2p = { git = "https://github.com/tomaka/libp2p-rs", rev = "997d0163bc8a7e11559524ad8466bc3b1850c8ec", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } parking_lot = "0.7.1" libc = "0.2" log = "0.4" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index 72fd73f5b45b4..edd0f3731bceb 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -17,8 +17,8 @@ impl-serde = { version = "0.1", optional = true } wasmi = { version = "0.4.2", optional = true } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } hash256-std-hasher = { git = "https://github.com/paritytech/trie", default-features = false } -ring = { version = "0.12", optional = true } -untrusted = { version = "0.5", optional = true } +ring = { version = "0.13", optional = true } +untrusted = { version = "0.6", optional = true } hex-literal = { version = "0.1", optional = true } base58 = { version = "0.1", optional = true } blake2-rfc = { version = "0.2.18", optional = true } From 00a397274e0fe84dcc0e47fb4ffc5793f9feae21 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 15:47:12 +0100 Subject: [PATCH 39/44] Fix telemetry (and a minor cleanup) (#1384) --- Cargo.lock | 21 ++++++++++++++++- core/cli/src/params.rs | 6 +---- core/service/src/lib.rs | 47 ++++++++++++++++++--------------------- core/telemetry/Cargo.toml | 2 +- core/telemetry/src/lib.rs | 2 +- 5 files changed, 45 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c52f494163923..a6e6ae1acd9d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3849,7 +3849,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", + "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4666,6 +4666,24 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ws" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -5085,6 +5103,7 @@ dependencies = [ "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" +"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" diff --git a/core/cli/src/params.rs b/core/cli/src/params.rs index ed22438fdf37a..8a7ee082b69d6 100644 --- a/core/cli/src/params.rs +++ b/core/cli/src/params.rs @@ -103,15 +103,11 @@ pub struct CoreParams { #[structopt(long = "name", value_name = "NAME")] name: Option, - /// Should connect to the Substrate telemetry server (telemetry is off by default on local chains) - #[structopt(short = "t", long = "telemetry")] - telemetry: bool, - /// Should not connect to the Substrate telemetry server (telemetry is on by default on global chains) #[structopt(long = "no-telemetry")] no_telemetry: bool, - /// The URL of the telemetry server. Implies --telemetry + /// The URL of the telemetry server to connect to #[structopt(long = "telemetry-url", value_name = "TELEMETRY_URL")] telemetry_url: Option, diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index fc8567df5e21c..cf05832b57eb4 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -255,31 +255,28 @@ impl Service { )?; */ // Telemetry - let telemetry = match config.telemetry_url.clone() { - Some(url) => { - let is_authority = config.roles == Roles::AUTHORITY; - let pubkey = format!("{}", public_key); - let name = config.name.clone(); - let impl_name = config.impl_name.to_owned(); - let version = version.clone(); - let chain_name = config.chain_spec.name().to_owned(); - Some(Arc::new(tel::init_telemetry(tel::TelemetryConfig { - url: url, - on_connect: Box::new(move || { - telemetry!("system.connected"; - "name" => name.clone(), - "implementation" => impl_name.clone(), - "version" => version.clone(), - "config" => "", - "chain" => chain_name.clone(), - "pubkey" => &pubkey, - "authority" => is_authority - ); - }), - }))) - }, - None => None, - }; + let telemetry = config.telemetry_url.clone().map(|url| { + let is_authority = config.roles == Roles::AUTHORITY; + let pubkey = format!("{}", public_key); + let name = config.name.clone(); + let impl_name = config.impl_name.to_owned(); + let version = version.clone(); + let chain_name = config.chain_spec.name().to_owned(); + Arc::new(tel::init_telemetry(tel::TelemetryConfig { + url: url, + on_connect: Box::new(move || { + telemetry!("system.connected"; + "name" => name.clone(), + "implementation" => impl_name.clone(), + "version" => version.clone(), + "config" => "", + "chain" => chain_name.clone(), + "pubkey" => &pubkey, + "authority" => is_authority + ); + }), + })) + }); Ok(Service { client, diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index 8b055329131e9..7dda91279254c 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -12,4 +12,4 @@ slog = "^2" slog-json = "^2" slog-async = "^2" slog-scope = "^4" -ws = { git = "https://github.com/tomusdrw/ws-rs" } +ws = { version = "^0.7", features = ["ssl"] } diff --git a/core/telemetry/src/lib.rs b/core/telemetry/src/lib.rs index 927994cca5172..ab7964ed1644f 100644 --- a/core/telemetry/src/lib.rs +++ b/core/telemetry/src/lib.rs @@ -66,7 +66,7 @@ pub fn init_telemetry(config: TelemetryConfig) -> slog_scope::GlobalLoggerGuard thread::spawn(move || { loop { - trace!(target: "telemetry", "Connecting to Telemetry..."); + trace!(target: "telemetry", "Connecting to Telemetry... {:?}", config.url); let _ = ws::connect(config.url.as_str(), |out| Connection::new(out, &*out_sync, &config)); thread::sleep(time::Duration::from_millis(5000)); From 559483b710036316d4b88da3f73da3f487db64c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Thu, 10 Jan 2019 15:03:15 +0000 Subject: [PATCH 40/44] Improve offline slashing calculation (#1371) * srml: apply slashing for all offline reports at once * srml: add regression test for slashing overflow --- srml/staking/src/lib.rs | 87 ++++++++++++++++++++++----------------- srml/staking/src/tests.rs | 39 ++++++++++++++++++ 2 files changed, 89 insertions(+), 37 deletions(-) diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 527c916008a54..70f71de152780 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -508,55 +508,68 @@ impl Module { /// Call when a validator is determined to be offline. `count` is the /// number of offences the validator has committed. pub fn on_offline_validator(v: T::AccountId, count: usize) { - use primitives::traits::CheckedShl; + use primitives::traits::{CheckedAdd, CheckedShl}; // Early exit if validator is invulnerable. if Self::invulnerables().contains(&v) { return } - for _ in 0..count { - let slash_count = Self::slash_count(&v); - >::insert(v.clone(), slash_count + 1); - let grace = Self::offline_slash_grace(); + let slash_count = Self::slash_count(&v); + let new_slash_count = slash_count + count as u32; + >::insert(v.clone(), new_slash_count); + let grace = Self::offline_slash_grace(); - let event = if slash_count >= grace { + let event = if new_slash_count > grace { + let slash = { + let base_slash = Self::current_offline_slash(); let instances = slash_count - grace; - let base_slash = Self::current_offline_slash(); - let slash = match base_slash.checked_shl(instances) { - Some(slash) => slash, - None => { - // freeze at last maximum valid slash if this starts - // to overflow. - >::insert(v.clone(), slash_count); - base_slash.checked_shl(instances - 1) - .expect("slash count no longer incremented after overflow; \ - prior check only fails with instances >= 1; \ - thus instances - 1 always works and is a valid amount of bits; qed") + let mut total_slash = T::Balance::default(); + for i in instances..(instances + count as u32) { + if let Some(total) = base_slash.checked_shl(i) + .and_then(|slash| total_slash.checked_add(&slash)) { + total_slash = total; + } else { + // reset slash count only up to the current + // instance. the total slash overflows the unit for + // balance in the system therefore we can slash all + // the slashable balance for the account + >::insert(v.clone(), slash_count + i); + total_slash = Self::slashable_balance(&v); + break; } - }; - - let next_slash = slash << 1; - - let _ = Self::slash_validator(&v, slash); - if instances >= Self::validator_preferences(&v).unstake_threshold - || Self::slashable_balance(&v) < next_slash - { - if let Some(pos) = Self::intentions().into_iter().position(|x| &x == &v) { - Self::apply_unstake(&v, pos) - .expect("pos derived correctly from Self::intentions(); \ - apply_unstake can only fail if pos wrong; \ - Self::intentions() doesn't change; qed"); - } - let _ = Self::apply_force_new_era(false); } - RawEvent::OfflineSlash(v.clone(), slash) - } else { - RawEvent::OfflineWarning(v.clone(), slash_count) + + total_slash }; - Self::deposit_event(event); - } + + let _ = Self::slash_validator(&v, slash); + + let next_slash = match slash.checked_shl(1) { + Some(slash) => slash, + None => Self::slashable_balance(&v), + }; + + let instances = new_slash_count - grace; + if instances > Self::validator_preferences(&v).unstake_threshold + || Self::slashable_balance(&v) < next_slash + || next_slash <= slash + { + if let Some(pos) = Self::intentions().into_iter().position(|x| &x == &v) { + Self::apply_unstake(&v, pos) + .expect("pos derived correctly from Self::intentions(); \ + apply_unstake can only fail if pos wrong; \ + Self::intentions() doesn't change; qed"); + } + let _ = Self::apply_force_new_era(false); + } + RawEvent::OfflineSlash(v.clone(), slash) + } else { + RawEvent::OfflineWarning(v.clone(), slash_count) + }; + + Self::deposit_event(event); } } diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 801c15d3e1267..fc3209bae3480 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -557,3 +557,42 @@ fn slash_value_calculation_does_not_overflow() { Staking::on_offline_validator(10, 100); }); } + +#[test] +fn next_slash_value_calculation_does_not_overflow() { + with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { + assert_eq!(Staking::era_length(), 9); + assert_eq!(Staking::sessions_per_era(), 3); + assert_eq!(Staking::last_era_length_change(), 0); + assert_eq!(Staking::current_era(), 0); + assert_eq!(Session::current_index(), 0); + assert_eq!(Balances::total_balance(&10), 1); + assert_eq!(Staking::intentions(), vec![10, 20]); + assert_eq!(Staking::offline_slash_grace(), 0); + + // set validator preferences so the validator doesn't back down after + // slashing. + >::insert(10, ValidatorPrefs { + unstake_threshold: u32::max_value(), + validator_payment: 0, + }); + + // we have enough balance to cover the last slash before overflow + Balances::set_free_balance(&10, u64::max_value()); + assert_eq!(Balances::total_balance(&10), u64::max_value()); + + // the balance type is u64, so after slashing 64 times, + // the slash value should have overflowed. add a couple extra for + // good measure with the slash grace. + trait TypeEq {} + impl TypeEq for (A, A) {} + fn assert_type_eq() {} + assert_type_eq::<(u64, ::Balance)>(); + + // the total slash value should overflow the balance type + // therefore the total validator balance should be slashed + Staking::on_offline_validator(10, 100); + + assert_eq!(Balances::total_balance(&10), 0); + }); +} From dd58195b1b646eef44a8677ffc50247109b8ed35 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 16:06:19 +0100 Subject: [PATCH 41/44] Urgent safety fix for #1371 (runtime version) --- core/test-runtime/wasm/Cargo.lock | 140 +++++++++--------- node/runtime/src/lib.rs | 4 +- node/runtime/wasm/Cargo.lock | 140 +++++++++--------- .../release/node_runtime.compact.wasm | Bin 791471 -> 791790 bytes 4 files changed, 134 insertions(+), 150 deletions(-) diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 29dfcf7e99916..6bd62383c2d39 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -98,15 +98,6 @@ name = "crossbeam" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "crossbeam-deque" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-deque" version = "0.6.2" @@ -116,20 +107,6 @@ dependencies = [ "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-epoch" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-epoch" version = "0.6.1" @@ -143,14 +120,6 @@ dependencies = [ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-utils" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-utils" version = "0.6.2" @@ -208,6 +177,19 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -227,11 +209,6 @@ name = "futures" version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hash-db" version = "0.9.0" @@ -517,6 +494,30 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "openssl" +version = "0.10.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl-sys" +version = "0.9.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "owning_ref" version = "0.4.0" @@ -604,6 +605,11 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "pkg-config" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "primitive-types" version = "0.1.4" @@ -740,25 +746,6 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rayon" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon-core" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "redox_syscall" version = "0.1.43" @@ -766,14 +753,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ring" -version = "0.12.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1125,13 +1111,13 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1170,7 +1156,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", + "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1476,7 +1462,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1489,6 +1475,11 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "vcpkg" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -1536,7 +1527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1544,6 +1535,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1574,11 +1566,8 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" -"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" -"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" -"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e07fc155212827475223f0bcfae57e945e694fc90950ddf3f6695bbfd5555c72" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" @@ -1587,10 +1576,11 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" -"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" @@ -1628,6 +1618,8 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -1638,6 +1630,7 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -1653,10 +1646,8 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" -"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" -"checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" @@ -1701,8 +1692,9 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -1710,5 +1702,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" +"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 6295a38b6f99e..3567edbbf6f04 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -96,8 +96,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 14, - impl_version: 14, + spec_version: 15, + impl_version: 15, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 673e92deefb1d..f1987f32d23e8 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -98,15 +98,6 @@ name = "crossbeam" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "crossbeam-deque" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-deque" version = "0.6.2" @@ -116,20 +107,6 @@ dependencies = [ "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-epoch" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-epoch" version = "0.6.1" @@ -143,14 +120,6 @@ dependencies = [ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-utils" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-utils" version = "0.6.2" @@ -208,6 +177,19 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -227,11 +209,6 @@ name = "futures" version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hash-db" version = "0.9.0" @@ -574,6 +551,30 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "openssl" +version = "0.10.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl-sys" +version = "0.9.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "owning_ref" version = "0.4.0" @@ -661,6 +662,11 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "pkg-config" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "primitive-types" version = "0.1.4" @@ -807,25 +813,6 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rayon" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon-core" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "redox_syscall" version = "0.1.43" @@ -833,14 +820,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ring" -version = "0.12.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1497,13 +1483,13 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1542,7 +1528,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", + "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1820,7 +1806,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1833,6 +1819,11 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "vcpkg" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -1880,7 +1871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1888,6 +1879,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1918,11 +1910,8 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" -"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" -"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" -"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e07fc155212827475223f0bcfae57e945e694fc90950ddf3f6695bbfd5555c72" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" @@ -1931,10 +1920,11 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" -"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" @@ -1972,6 +1962,8 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -1982,6 +1974,7 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -1998,10 +1991,8 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" -"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" -"checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" @@ -2048,8 +2039,9 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -2057,5 +2049,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" +"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index e8aee63b4fb8eb497626e412acfd2cb83eb928d1..4319fbc77cfdf1650ac987dbf7b073a9b58dce47 100644 GIT binary patch delta 46566 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 From a52674beea61ff4aa087c40de2980a44c24a4b4a Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 18:16:49 +0100 Subject: [PATCH 42/44] Bump version to 0.10.0 in preparation for 1.0gamma (#1385) * Bump version to 0.10.0 in preparation for 1.0gamma * Update lock file --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6e6ae1acd9d8..01366b6bb7d3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3357,7 +3357,7 @@ dependencies = [ [[package]] name = "substrate" -version = "0.9.2" +version = "0.10.0" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index d1e59bab2528e..1823986573f17 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.9.2" +version = "0.10.0" authors = ["Parity Technologies "] build = "build.rs" From 07ad624bafd7e167ac531a73720847f80e421186 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Thu, 10 Jan 2019 14:19:31 -0300 Subject: [PATCH 43/44] informant: display finalized height and hash (#1387) --- core/cli/src/informant.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/cli/src/informant.rs b/core/cli/src/informant.rs index e9dab4ae8beca..0f24f5f6e69f7 100644 --- a/core/cli/src/informant.rs +++ b/core/cli/src/informant.rs @@ -48,10 +48,10 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe let display_notifications = interval.map_err(|e| debug!("Timer error: {:?}", e)).for_each(move |_| { let sync_status = network.status(); - if let Ok(best_block) = client.best_block_header() { - let hash = best_block.hash(); + if let Ok(info) = client.info() { + let best_number: u64 = info.chain.best_number.as_(); + let best_hash = info.chain.best_hash; let num_peers = sync_status.num_peers; - let best_number: u64 = best_block.number().as_(); let speed = move || speed(best_number, last_number); let (status, target) = match (sync_status.sync.state, sync_status.sync.best_seen_block) { (SyncState::Idle, _) => ("Idle".into(), "".into()), @@ -60,14 +60,17 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe }; last_number = Some(best_number); let txpool_status = txpool.status(); + let finalized_number: u64 = info.chain.finalized_number.as_(); info!( target: "substrate", - "{}{} ({} peers), best: #{} ({})", + "{}{} ({} peers), best: #{} ({}), finalized #{} ({})", Colour::White.bold().paint(&status), target, Colour::White.bold().paint(format!("{}", sync_status.num_peers)), Colour::White.paint(format!("{}", best_number)), - hash + best_hash, + Colour::White.paint(format!("{}", finalized_number)), + info.chain.finalized_hash, ); // get cpu usage and memory usage of this process @@ -81,10 +84,12 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe "status" => format!("{}{}", status, target), "peers" => num_peers, "height" => best_number, - "best" => ?hash, + "best" => ?best_hash, "txcount" => txpool_status.ready, "cpu" => cpu_usage, - "memory" => memory + "memory" => memory, + "finalized_height" => finalized_number, + "finalized_hash" => ?info.chain.finalized_hash, ); } else { warn!("Error getting best block information"); From d01b25b2f177918ea446d7349171056dce6b8c35 Mon Sep 17 00:00:00 2001 From: gguoss Date: Fri, 11 Jan 2019 11:16:47 +0800 Subject: [PATCH 44/44] Fix merge error --- Cargo.lock | 21 ++++++++++++++------- core/service/src/lib.rs | 4 ++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01366b6bb7d3d..5c6634ce61e59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -383,7 +383,7 @@ dependencies = [ "ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1617,6 +1617,11 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lru" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "lru-cache" version = "0.1.1" @@ -2453,14 +2458,14 @@ name = "redis" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "combine 3.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3140,7 +3145,7 @@ dependencies = [ "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3401,7 +3406,7 @@ dependencies = [ "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "srml-support 0.1.0", - "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-client 0.1.0", "substrate-network 0.1.0", "substrate-primitives 0.1.0", @@ -4731,6 +4736,7 @@ dependencies = [ "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" +"checksum ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5fc969a8ce2c9c0c4b0429bb8431544f6658283c8326ba5ff8c762b75369335" "checksum asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "766afdc5c6d7c15de1abe4c9c15e360be3aa972c363ba5b606be3c4271235886" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" @@ -4886,6 +4892,7 @@ dependencies = [ "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" +"checksum lru 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6f5fb2abee91622dfb5fbcf2f277dc8c421c9259c6ce5484eee46ab7ae2282d6" "checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21" "checksum make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8ca8afbe8af1785e09636acb5a41e08a765f5f0340568716c18a8700ba3c0d3" "checksum mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index cf05832b57eb4..18097e87e071a 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -34,7 +34,7 @@ extern crate substrate_client as client; extern crate substrate_client_db as client_db; extern crate parity_codec as codec; extern crate substrate_transaction_pool as transaction_pool; -extern crate substrate_consensus_aura_primitives as aura_primitives; +//extern crate substrate_consensus_aura_primitives as aura_primitives; //extern crate substrate_rpc_servers as rpc; extern crate target_info; extern crate tokio; @@ -106,7 +106,7 @@ pub struct Service { /// Configuration of this Service pub config: FactoryFullConfiguration, //_rpc: Box<::std::any::Any + Send + Sync>, - _telemetry: Option, + _telemetry: Option>, } /// Creates bare client without any networking.

<0t!6cLk{4eNAV9i8GQs%oP~53F+zqd=Tv}{jE4$vtQ4+l zD7SAiX&jTt92_KwP}?a7>RHUBu_~vd)hH7sE@5w>%N$cOk9X%kb1@8a^yxcSi| zwyT(tD|$%3i-0bSCyH8HN(k+=-JjWrp|ya93x2ol9%Xz8qUG?DV~iB4!JY6)`{RTM zs~0+1HDbGLcO*-r5+pPM#^@3KB;<}F77On9x2-A{AwHV%0nC*j{n&QLFnR*hk59kK z!?IW-!NPX*6Fahxq@d9_ai%ikSSJv&=9trKj=QFU`?t9fEGPIocs zXB3%12?N?^5W3kZ-#5C|b_<#M6H-G?c`o2+<*txBgxDW}#j-#>-o}4PJs#;pnf?RQ z^P^jAcNnAJBkH#r#i7;N(Yo90$kw!GXGh*cEH%6v?8ti6`5dcZVv6l9W4phWO7FuO zz*)69t4LbTq$5bOWmc!!ktryL7D;kSr^1M0u0vA5zd3lApA|%XB`E9w>8iQ7JYl;l zne-)+Fs+jlw!4b)gNSopS2J<|5pp`LE!$l~%oo6rS&?Hc7oABPba6c4oq3)pFn^I628UMYcPb**-xwHt9oF zxDSykSS_kJHM&K=u_9l?bRp*sW#UIjgiX^m`XjVLBKG2G-r)rHFogyJmck#x?nA^; z=d!&E6jAk27prz+ujP(l(k>){E$+sE;lQywlDH3v!<@L-{zbk=h}$XoO0pKx9%b4N zU4}OgqlnrrD9l3$bagwHwCIPHJDMpUASImNFS^@u$1uJParjH!v5ag*#MWj%R@H_? zZH6k}*Q!zHld$_Sv#w!XG`YpBSr~Hn5xZKsu2roSqMtCj3YkEOuUhV>jIQ(>grAZv zCFL`wtWYCd>&%LK(IihlT**q8WvFF+t?CI?=|uS@bT+2EiWCy%At-H( zzk)c4avCFZ5y>P`$_DUPwmY5JIlz)ApJQY;v(UhK%XYscC%+5?h!WAS7@dVEiSiI5 zGku~w%-BmT=Om)sfUSR~zKGNmQ4R{Z16bV)nkW$+$msLTlpig&-9e1bK(qu=zH3L` zfza}Zat%O_C^tdw@E6lHQGU%Dr)i>uGWZRn&w50;5;B+ZXINK~D31o+pNM^06D6X! zvk$!qnLv8@%~3|D_zl8OHBlnv7*i%|qFm~?F5CT%=!qqXa*6GJPxMnLheY`UBTouZ zawkhRwh+Qd5F)iAi%6XCV?p{KwIe^H^y=90oxz_elmUs_HTr?&K2OBsDCY$N7qcsCG6{qk&3r9Zkv70k%7bNu!WdMOz^dmxF9~F0mtlCGoz( z$OvZP3bM&^cTs*m1Oy(#Ky){w!x62H%zGFSWmLcQfq~%11o_ejzHhA_yx6MNaWC@> z#Sc!V*Nv8Yn5jdMnxfZ(LH7u;g+i~r5dE6b!OWB&eHTtbMh78Uf?nUZBJZVy=sJKN zy%t;UxBSHkTeY~vs%C%8$S<}kKF?~Fxzcj?F@9W?>uc3?R$K1pj2^@6rwI0wp!)@} zM{TwA602$}#1Ak|8o|8dM+X`G$sWcBoR{|!}v-fRosn60!d#=tem@v`3_2?yxvtlAdw1qUkNE+NF=Pc2|q_W18xnT zG%~1*VGFodbadE#mpS*_JVX;JS3WQ%JT^Qo{BZb@@T1|!!sEk_hgEn&_=)h7;itj@ zIO)t>Wd96h!8f@m=3Iusf3I?Y266tyMWOijfbHC!*DL$uXM9 zZA5~N(1J0HQ#p?4Wsf4J2!2VTx9DuV?UgNhm^+T>%|QEt16dVu?-N(jyh*T}2~5=5 zwm(=86ZNj-PZu1|hTTV)BFg~<2X5y5E=y`eQ`B&4RFTja~C@ z(Mj+a6S)aUqk?V@T>K&Tabh>h)W)#(Jpo@YF&miA&j#dLBG*f{tD&O~4!JuyLG)Vi z+fJJPpiBG`azA7O*DHt=LF^)8H4#kS%h)RUop+-dE8<5)uC&$l{j91nI3>q~+?A}6 zzJO#ifLul7GEImOo+q$$@s~?d#c{d|!|qX{7YkZOmq+^eoDbHTV@!GzN#1yIUh#|L zL@y#5nonw8e<7MizCW+XI*hGIyg_8iiDfy%nMi{@Ww)MS84CoJKCf^%3}EK@NTG5o z6FMmD4kU7(AbrXhMAU17f=a{ruiQiD9~gEAGm*A8TAqX1FJzn>OUc>)2^J%fbAe0_ z=hs1ZD3NpYaKage;apG5%aToV4+aOEy@BXif|e%9_~hOK|Ik}ZnaRq0RzmiTM9RL9 zW~EJxzbKhJx`hmQo5&XgiK;pZ&lMB*yx?;6(s?D#5ctvFVag1oB-{UE(0!N4BHeyi zWIqJm_lcP<*^=!a2gyYAG(o4@Py5N;!jxyFMo9rvKs*uo43WD1+ZcaZGNn%-gzX1R znTnK($#!8}w-Y->w+m*(5$p>QLnAbq4W7~uiJT}%f1-C0^^~AQUgk#+1>N05J}F2U zz7kT;%#VH)beA#9g!J-(Tn?leQMw(l6Fv;OuQ1)q!~^18 zK-3sPr4RLyko!7QMzd0_RwZTkHzD^8rj25np0I_Ck7Oyn06g3OY4LTBJ;5(hwx2i4^=|648Z3mk=qFi5?8J zKTOD4L|kGJk)=cm5@#@RprrY9GKHuCf=VBzZ6S9mQ%+FR@kPq^koz=|zX;MV;TfWi z3(6NMJ+(;rAml#F#A8}rqDYy>_))}@KqiNCanOB^$e%2AWGLtFau{K|(Ap0yLza>&n@ym>VBbh2|QGv(W zvZH9%Y^KohQYqQ61wnTXu}5^n@{OFqhT9y7L&%oWAjI(n3#4oG9n1ZZM%I^j=H@2? z2az%2M!C|tSm!oiw_imsvto&(O#MRIAr2Yb=W>q`_c?K%74eDX4&;f9{gSVw6@j!t zO#4ii!8yQ)A7>Gt3Mzeq_gd~RO!)*U!Ut;RWmZO~6U6NUE{dNHU}+yS18u1lmRro! zkAT1e50&^GM)x90n-;aHR5usrSYj+gkKt))%MG+_VyO$*0-z3e?r!04;>U{+Y{E&$> z8X#4Wcb9tL3hNAGw;F$i)y&?;#J4SRbae6@9j{yN2SjheZ>XYgXJjL$2xbp7@DeII z;&S>~)&7IkICn8~ZeTkoJRWx3Z^}UHnt8{j6`c@FNQc&sBH_38WGGzr)WcqNuI6peYa#s;c`vm7s-PMeU zM~V}uEO!kNOOc9m@_Y*s^N5nx61&98wqzpLsjIKF>Qq=y#Ptm&cU}Rtm=g3su!-Za?8&*-CFq3%lHvg@YmJet1PG00ux_5h7tf|2Abgjevzfp z3HY+<#t?r2aWmPWd8+l*RwLsz^{1o<;fMDNN7hhvls#44xlaa%pPvrPe{p%Xc=Po8q zWKwcjdWWc|1eHFY(_n5fNV@6UzZ_ZWQwQ5y5_Gco}Y&l3e*01EqNVimA>x5eGU z$m7gHPZV}Vw}#@tj0YwoIX18WwlUvhz>;Y{P;LKc)v3CjxJQ8V=6VO?538|PT1^u< zcux#$!Kv2cxRZ(FWbQ3@J8j#s5(&HY0po}ba@uK@K{U0h#9$Sq*J~NyL(8X!%j+p zW`~ERu*RO0@&Yt>_H1xk3Z;9RRQFebM0ASjHbmY5$m@NP7K7Ocm=o|ld5;y*fS7E$ zje-3|u%3YmTod4q14sL`Dd1z0UQe%@7_Vl)9Ti-e#;NnH>F(wM?Vlu1Qn&cbgb54u zkLu91R+U@#68-^Mk_rwod_?5;MC#??W5&OeOxmu72>sM__YwWA&X#7JenRv&K>M_g ztOtqvTHWy{t5O2dFBv_;EJ>RGl&HgkN~igcO!qUU9AY)4%+Y?P4@}X(C31?9MW=xi7$3w zxs;!#nVySHw-xZ8vL0HVh_^=k6UG^7hsZwpk+ds6`jF|i2kzsrn4P-1M@?6;y1i0e z0t`FMbl+y9=sWiw;UbBwGVw(&pmzyc6qqy{^BpFAh@>=y5Wjer=$%BDPzc{6dI!+{ z^dRd_;*9Njeh~kV@ei0MIX~|cwM|gz^Rvu!H#21`>+y9!u;LaXw+PbL0k;yhSx~+X zsEK*G>271%`%KGiD`w>fM7#$?au(k(-R(ra3#89v(Vq=>2a)gSN$k_lg4gb^Rw%K} zbf4nTzAd>^Dxa8<6PdD!h5ITWvQHv%BaxcuCo}$*Wb(|&t)@GL$PI$@>1`@e>jjmv zBAx8$d#3v|lhz?A+1_J@`wWq5OSc!fr!ir*wfn>h=~f zzCtpkPf)Sx&S1)NDcGa^?+y2PB9{pgWvVm&VwLZK1^7F|eUT|k(z9JMtB65-1|7Xj|JYcxv8GS>OH#|9?8SXG*7RaxXGU;^_uWAB4KUIF3 zP52O#<{=4mEH)vsk09m$Uyf>)gH`jb^50mP$3%w?t|agQQu zj-b-V?lsdL&6L@!sFWQDJ!A~iUS^t}fw7FwVky4lnQgk`h@1(e&_I+c)lS2GnAn#% zE;SNc4EGRe_yx(79F(c1dzk3w1ugTQ#`8y*Gy_R#Jda;|O>_~_C3yZDqMrlW9~Wdj zM%;9NT!1)E#586~j?1@1Ju9g6aeKJAecGq~w++r0l$bOnHKZ z`%I7QgNU3!q@KdTj4R2MZs%dGC}hgxQn1HFD-3rCk?_u=Z9WsJV+B?Q{ni_?Kr;DJ zNtS7q#zbgze!`STSP$yuK0I=NO5DT5`3(f}Ga|K`xY^8J9ACv8ZsB*6AVNiSJ(BkE@&_(=&q-7cr=vlZXob8ZWsF-d`NtYxSv9Le-H7EjQ@x{ z+~3>8$Pb8M$YuxKw;BDO(bQ3iV&c9d&a>i>ZwGPTN|tQVBw*wavv7ZJdeGfW#8*IAj(sP{G0a1GIM{*h zK9snHsb35?)@}ou>a+@1?pY0LRHn{7Hdwo7ibT? z4rY)8&X2+ zOoYR{a414v02+euF%nK8fJH1}FaTcf8H7;IF%1Mz9*6-5a}eSK-EIYhzaXrH@HoOM z2#+C*Av}tZZiU3p9^xm2bQ%1Jum-{(5Y|Nay%&Cm@Jz(NMd%>>24P)ji%UjlfNz(D{L2pk9|FhqpD0O~OUp92_5U_XEp9JS8?NQs{U z_==cM0PG^L55Oh@9|LHC@FRrWJl%_sM&urZGz)io;Vy*qF@ETUI};wT!wa{2;Rjy0 z%?r1B;TA94?1k@p;d@^At{1-Jg~eX@wij;l!i`>-c*_Gec;R|4T<3*ry>N{euJ*!J zUbxZ=S9sxaFI?t@OTBQ37cTa~H+7hZEbe$eBBEdc;S36oacqFdEu*G_=*?K z^};z`INJ+f_QF|SI8(v|6g&^{q8CCK${aoKg)@$Z_Y(lbs+s`c9X3S) z5R2|{0AeeS2O!qpV?OXG0I}vC0U(yz!vMs_9tS{t3S&us;y4%sKy3KY0K_>k3V_)A zBYj{505RMj0w5aSZ~#ZxpkV+++Z+l&6xksFL^Cb)fx!So(;Ngqw8(+vKhfC+042KL z2{YRj{q7e4qLv>A@DMrj7=Y0Pjsg%P;%5M275wA_KLQX9{|5kK*?kW{Ovh`IPJ zfT=9!8xyZLi{14#P}7Mz0zhoE!vJOya|nRk0sIQUYs7pBU><>k02UB90N`~3UjSH0 z;Bx>XDfj!pX8`12=cfP`GtVag5=#i}1GJRD#{iZQ_z1uX0($|hB(Mj-Y680ftRb)q zz*+(y0$4|2CjdEDvID^L^p0%@u!Fz{0Nx|84Zu1ATLG+25ZVH01%b@~mJ)a$z+3|F z0eFGHy8xubcK|#=Ofi6m2)qs8Csw}+zzzZ%0lY`xEdW~xYyj{9f%QJH4!{99>9Q8k z$4pxTU^ju)06r(M3V>+gD*=dNy}}2U0}zFB8356fmjV!-a|r-ZQWpad_4iExqR}q$ zfrS8&8T|hSAlV9k9l$Zxx&Xic_G~_YUx=9p-~@r!eBf08vIYMN0NGxj3t&8dH3xtk zCz%aEj*PqvK+bE-0wBjiW&+^Zjzr`o4~o19;4%LG1pu;<_B?=z#LNINl|T^y*(-bw zz!YL|Ay@;`0LTX3vjAjs?im2G@%1zS*+82LKsL#y09eGICnf`u{oF|aWIuHx0NJ*E z3V`grKIsEb09eSMO#mRPz%0Dd7* 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 C@eO|f diff --git a/srml/sudo/Cargo.toml b/srml/sudo/Cargo.toml new file mode 100644 index 0000000000000..9cdd75c7569e3 --- /dev/null +++ b/srml/sudo/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "srml-sudo" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +hex-literal = "0.1.0" +serde = { version = "1.0", default-features = false } +parity-codec = { version = "2.1", default-features = false } +parity-codec-derive = { version = "2.1", default-features = false } +substrate-primitives = { path = "../../core/primitives", default-features = false } +sr-std = { path = "../../core/sr-std", default-features = false } +sr-io = { path = "../../core/sr-io", default-features = false } +sr-primitives = { path = "../../core/sr-primitives", default-features = false } +srml-support = { path = "../support", default-features = false } +srml-support-procedural = { path = "../support/procedural" } +srml-system = { path = "../system", default-features = false } +srml-consensus = { path = "../consensus", default-features = false } + +[features] +default = ["std"] +std = [ + "serde/std", + "parity-codec/std", + "parity-codec-derive/std", + "sr-std/std", + "sr-io/std", + "sr-primitives/std", + "substrate-primitives/std", + "srml-support/std", + "srml-system/std", + "srml-consensus/std", +] diff --git a/srml/sudo/src/lib.rs b/srml/sudo/src/lib.rs new file mode 100644 index 0000000000000..c814224aa5a0c --- /dev/null +++ b/srml/sudo/src/lib.rs @@ -0,0 +1,88 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate 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. + +// Substrate 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 Substrate. If not, see . + +//! The Example: A simple example of a runtime module demonstrating +//! concepts, APIs and structures common to most runtime modules. + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate sr_std; +#[cfg(test)] +extern crate sr_io; +#[cfg(test)] +extern crate substrate_primitives; +extern crate sr_primitives; +#[macro_use] +extern crate parity_codec_derive; +extern crate parity_codec as codec; +#[macro_use] +extern crate srml_support as support; + +extern crate srml_system as system; +extern crate srml_consensus as consensus; + +use sr_std::prelude::*; +use support::{StorageValue, Parameter, Dispatchable}; +use system::ensure_signed; + +pub trait Trait: consensus::Trait + system::Trait { + /// The overarching event type. + type Event: From> + Into<::Event>; + + /// A sudo-able call. + type Proposal: Parameter + Dispatchable; +} + +decl_module! { + // Simple declaration of the `Module` type. Lets the macro know what its working on. + pub struct Module for enum Call where origin: T::Origin { + fn deposit_event() = default; + + fn sudo(origin, proposal: Box) { + // This is a public call, so we ensure that the origin is some signed account. + let sender = ensure_signed(origin)?; + ensure!(sender == Self::key(), "only the current sudo key can sudo"); + + let ok = proposal.dispatch(system::RawOrigin::Root.into()).is_ok(); + Self::deposit_event(RawEvent::Sudid(ok)); + } + + fn set_key(origin, new: T::AccountId) { + // This is a public call, so we ensure that the origin is some signed account. + let sender = ensure_signed(origin)?; + ensure!(sender == Self::key(), "only the current sudo key can change the sudo key"); + + Self::deposit_event(RawEvent::KeyChanged(Self::key())); + >::put(new); + } + } +} + +/// An event in this module. +decl_event!( + pub enum Event where AccountId = ::AccountId { + /// A sudo just took place. + Sudid(bool), + /// The sudoer just switched identity; the old key is supplied. + KeyChanged(AccountId), + } +); + +decl_storage! { + trait Store for Module as Sudo { + Key get(key) config(): T::AccountId; + } +} From 74279e2c478682a82d23e5553da5ffbef4b7610e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Fri, 21 Dec 2018 16:30:45 +0000 Subject: [PATCH 04/44] node: fix shutdown (#1308) * node: remove grandpa authority flags * node: exit-guard grandpa and aura spawned futures * node: wait for futures to stop running on shutdown * core: run connectivity tests on same ports * core: pass on_exit future when starting aura and grandpa * node: add issue number to todo * core: fix aura and grandpa tests --- core/consensus/aura/src/lib.rs | 13 ++++++++----- core/finality-grandpa/src/lib.rs | 3 ++- core/finality-grandpa/src/tests.rs | 3 +++ core/service/src/lib.rs | 8 ++++++-- core/service/test/src/lib.rs | 12 ++++++++---- node/cli/src/lib.rs | 16 +++++++++++++--- node/cli/src/service.rs | 25 +++++++++++++------------ 7 files changed, 53 insertions(+), 27 deletions(-) diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index f22e20930c0fd..c9692cbde22c8 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -179,16 +179,15 @@ pub fn start_aura_thread( } }; - runtime.spawn(start_aura( + let _ = runtime.block_on(start_aura( slot_duration, local_key, client, block_import, env, sync_oracle, + on_exit, )); - - runtime.block_on(on_exit).expect("Exit future should not fail"); }); } @@ -200,6 +199,7 @@ pub fn start_aura( block_import: Arc, env: Arc, sync_oracle: SO, + on_exit: impl Future, ) -> impl Future where B: Block, C: Authorities + ChainHead, @@ -352,7 +352,7 @@ pub fn start_aura( }) }; - future::loop_fn((), move |()| { + let work = future::loop_fn((), move |()| { let authorship_task = ::std::panic::AssertUnwindSafe(make_authorship()); authorship_task.catch_unwind().then(|res| { match res { @@ -369,7 +369,9 @@ pub fn start_aura( Ok(future::Loop::Continue(())) }) - }) + }); + + work.select(on_exit).then(|_| Ok(())) } // a header which has been checked @@ -760,6 +762,7 @@ mod tests { client, environ.clone(), DummyOracle, + futures::empty(), ); runtime.spawn(aura); diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index dfbea1fe8135a..3e699ba3823ae 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -1186,6 +1186,7 @@ pub fn run_grandpa, N, RA>( config: Config, link: LinkHalf, network: N, + on_exit: impl Future + Send + 'static, ) -> ::client::error::Result + Send + 'static> where Block::Hash: Ord, B: Backend + 'static, @@ -1312,5 +1313,5 @@ pub fn run_grandpa, N, RA>( })) }).map_err(|e| warn!("GRANDPA Voter failed: {:?}", e)); - Ok(voter_work) + Ok(voter_work.select(on_exit).then(|_| Ok(()))) } diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index d01a48d62f3b7..de6c4f1cb3977 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -376,6 +376,7 @@ fn finalize_3_voters_no_observers() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); assert_send(&voter); @@ -436,6 +437,7 @@ fn finalize_3_voters_1_observer() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); runtime.spawn(voter); @@ -592,6 +594,7 @@ fn transition_3_voters_twice_1_observer() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); runtime.spawn(voter); diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index c64308270bef1..43f8cd050e69c 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -265,7 +265,7 @@ impl Service { let impl_name = config.impl_name.to_owned(); let version = version.clone(); let chain_name = config.chain_spec.name().to_owned(); - Some(tel::init_telemetry(tel::TelemetryConfig { + Some(Arc::new(tel::init_telemetry(tel::TelemetryConfig { url: url, on_connect: Box::new(move || { telemetry!("system.connected"; @@ -278,7 +278,7 @@ impl Service { "authority" => is_authority ); }), - })) + }))) }, None => None, }; @@ -308,6 +308,10 @@ impl Service { None } } + + pub fn telemetry(&self) -> Option> { + self._telemetry.as_ref().map(|t| t.clone()) + } } impl Service where Components: components::Components { diff --git a/core/service/test/src/lib.rs b/core/service/test/src/lib.rs index d5aafbe675606..4335bffe86551 100644 --- a/core/service/test/src/lib.rs +++ b/core/service/test/src/lib.rs @@ -33,7 +33,7 @@ use std::iter; use std::sync::Arc; use std::net::Ipv4Addr; use std::time::Duration; -use futures::Stream; +use futures::{Future, Stream}; use tempdir::TempDir; use tokio::runtime::Runtime; use tokio::timer::Interval; @@ -188,7 +188,7 @@ pub fn connectivity(spec: FactoryChainSpec) wher const NUM_NODES: u32 = 10; { let temp = TempDir::new("substrate-connectivity-test").expect("Error creating test dir"); - { + let runtime = { let mut network = TestNet::::new(&temp, spec.clone(), NUM_NODES, 0, vec![], 30400); info!("Checking star topology"); let first_address = network.full_nodes[0].1.network().node_id().expect("No node address"); @@ -198,13 +198,17 @@ pub fn connectivity(spec: FactoryChainSpec) wher network.run_until_all_full(|_index, service| service.network().status().num_peers == NUM_NODES as usize - 1 ); - } + network.runtime + }; + + runtime.shutdown_on_idle().wait().expect("Error shutting down runtime"); + temp.close().expect("Error removing temp dir"); } { let temp = TempDir::new("substrate-connectivity-test").expect("Error creating test dir"); { - let mut network = TestNet::::new(&temp, spec, NUM_NODES, 0, vec![], 30500); + let mut network = TestNet::::new(&temp, spec, NUM_NODES, 0, vec![], 30400); info!("Checking linked topology"); let mut address = network.full_nodes[0].1.network().node_id().expect("No node address"); for (_, service) in network.full_nodes.iter().skip(1) { diff --git a/node/cli/src/lib.rs b/node/cli/src/lib.rs index 3b7a89403520e..e084b448cf56e 100644 --- a/node/cli/src/lib.rs +++ b/node/cli/src/lib.rs @@ -52,6 +52,7 @@ mod service; mod params; mod native_rpc; +use tokio::prelude::Future; use tokio::runtime::Runtime; pub use cli::{VersionInfo, IntoExit}; use substrate_service::{ServiceFactory, Roles as ServiceRoles}; @@ -138,8 +139,8 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul let mut runtime = Runtime::new()?; let executor = runtime.executor(); match config.roles == ServiceRoles::LIGHT { - true => run_until_exit(&mut runtime, service::Factory::new_light(config, executor)?, exit)?, - false => run_until_exit(&mut runtime, service::Factory::new_full(config, executor)?, exit)?, + true => run_until_exit(runtime, service::Factory::new_light(config, executor)?, exit)?, + false => run_until_exit(runtime, service::Factory::new_full(config, executor)?, exit)?, } } } @@ -147,7 +148,7 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul } fn run_until_exit( - runtime: &mut Runtime, + mut runtime: Runtime, service: T, e: E, ) -> error::Result<()> @@ -164,5 +165,14 @@ fn run_until_exit( let _ = runtime.block_on(e.into_exit()); exit_send.fire(); + + // we eagerly drop the service so that the internal exit future is fired, + // but we need to keep holding a reference to the global telemetry guard + let _telemetry = service.telemetry(); + drop(service); + + // TODO [andre]: timeout this future #1318 + let _ = runtime.shutdown_on_idle().wait(); + Ok(()) } diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index f4796343b5c05..d173c7419e4cd 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -19,19 +19,20 @@ //! Service and ServiceFactory implementation. Specialized wrapper over substrate service. use std::sync::Arc; -use transaction_pool::{self, txpool::{Pool as TransactionPool}}; -use node_runtime::{GenesisConfig, RuntimeApi}; +use std::time::Duration; + +use client; +use consensus::{import_queue, start_aura, AuraImportQueue, SlotDuration, NothingExtra}; +use grandpa; +use node_executor; +use primitives::ed25519::Pair; use node_primitives::{Block, InherentData}; +use node_runtime::{GenesisConfig, RuntimeApi}; use substrate_service::{ FactoryFullConfiguration, LightComponents, FullComponents, FullBackend, FullClient, LightClient, LightBackend, FullExecutor, LightExecutor, TaskExecutor }; -use node_executor; -use consensus::{import_queue, start_aura, AuraImportQueue, SlotDuration, NothingExtra}; -use primitives::ed25519::Pair; -use client; -use std::time::Duration; -use grandpa; +use transaction_pool::{self, txpool::{Pool as TransactionPool}}; construct_simple_protocol! { /// Demo protocol attachment for substrate. @@ -89,12 +90,13 @@ construct_service_factory! { block_import.clone(), proposer, service.network(), + service.on_exit(), )); info!("Running Grandpa session as Authority {}", key.public()); } - let voter = grandpa::run_grandpa( + executor.spawn(grandpa::run_grandpa( grandpa::Config { local_key, gossip_duration: Duration::new(4, 0), // FIXME: make this available through chainspec? @@ -102,9 +104,8 @@ construct_service_factory! { }, link_half, grandpa::NetworkBridge::new(service.network()), - )?; - - executor.spawn(voter); + service.on_exit(), + )?); Ok(service) } From 37cf94ba4f6cb3ce281b5a13af2a9304a9f05963 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Sun, 23 Dec 2018 00:35:49 +0800 Subject: [PATCH 05/44] typo: Hash -> Self::Hash (#1319) --- core/sr-primitives/src/generic/digest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sr-primitives/src/generic/digest.rs b/core/sr-primitives/src/generic/digest.rs index ea2dafb758411..1bf53a9c0179f 100644 --- a/core/sr-primitives/src/generic/digest.rs +++ b/core/sr-primitives/src/generic/digest.rs @@ -133,7 +133,7 @@ impl< self.dref().as_authorities_change() } - fn as_changes_trie_root(&self) -> Option<&Hash> { + fn as_changes_trie_root(&self) -> Option<&Self::Hash> { self.dref().as_changes_trie_root() } } From b2240c02453eee871c170964ccb6688ee42ebfdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Sat, 22 Dec 2018 17:37:05 +0100 Subject: [PATCH 06/44] Make `deposit_event` work with none generic events (#1309) * Make `deposit_event` work with none generic events `fn deposit_event() = default` will now be used for none generic events `fn deposit_event() = default` is now for generic events. * Update wasm files * Fixes some spelling mistakes * Update wasm and fix new module --- .../substrate_test_runtime.compact.wasm | Bin 42266 -> 43804 bytes .../release/node_runtime.compact.wasm | Bin 804690 -> 841783 bytes srml/assets/src/lib.rs | 2 +- srml/balances/src/lib.rs | 2 +- srml/contract/src/lib.rs | 2 +- srml/council/src/motions.rs | 2 +- srml/council/src/seats.rs | 2 +- srml/council/src/voting.rs | 2 +- srml/democracy/src/lib.rs | 4 +-- srml/example/src/lib.rs | 4 ++- srml/grandpa/src/lib.rs | 2 +- srml/session/src/lib.rs | 2 +- srml/staking/src/lib.rs | 2 +- srml/sudo/src/lib.rs | 2 +- srml/support/src/dispatch.rs | 26 +++++++++++++++--- srml/treasury/src/lib.rs | 2 +- srml/upgrade-key/src/lib.rs | 2 +- 17 files changed, 39 insertions(+), 19 deletions(-) diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6..440d0288d7fb526d5efdb5c36574dda232b197d6 100644 GIT binary patch delta 15954 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