diff --git a/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs index 8237748708a..ca23d0175b7 100644 --- a/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/consensus_params_update/mod.rs @@ -600,6 +600,7 @@ mod tests { mod evidence_policy_tests { use super::*; use crate::platform_types::epoch_info::v0::EpochInfoV0; + use dpp::version::PLATFORM_VERSIONS; use prost::Message; fn epoch_info(is_epoch_change: bool, current_epoch_index: u16) -> EpochInfo { @@ -680,6 +681,37 @@ mod evidence_policy_tests { } } + /// Tenderdash refuses consensus parameters that break the evidence rules of its + /// `ValidateConsensusParams` (`types/params.go`): ages in blocks and in time above zero and + /// a byte budget that is not negative. A refused update fails the activation block on every + /// node, and again after each restart, so the chain halts. The age in time must also fit the + /// Go `time.Duration` Tenderdash decodes it into. + #[test] + fn should_have_an_evidence_policy_tenderdash_accepts_in_every_platform_version() { + assert!( + PLATFORM_VERSIONS + .iter() + .any(|platform_version| platform_version.consensus.evidence.is_some()), + "some protocol version sets an evidence policy" + ); + for platform_version in PLATFORM_VERSIONS { + let Some(evidence) = platform_version.consensus.evidence else { + continue; + }; + let case = format!( + "protocol version {}: {evidence:?}", + platform_version.protocol_version + ); + assert!(evidence.max_age_num_blocks > 0, "{case}"); + assert!(evidence.max_age_duration_seconds > 0, "{case}"); + assert!( + evidence.max_age_duration_seconds <= i64::MAX / 1_000_000_000, + "{case}: the age in time overflows a Go time.Duration" + ); + assert!(evidence.max_bytes >= 0, "{case}"); + } + } + #[test] fn should_not_repeat_evidence_update_after_activation() { let latest = PlatformVersion::latest(); diff --git a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs index 92f8b912a3c..afcb916dd5e 100644 --- a/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs +++ b/packages/rs-drive-abci/src/execution/engine/run_block_proposal/v0/mod.rs @@ -172,7 +172,7 @@ where if let Some(core_chain_lock_update) = core_chain_lock_update.as_ref() { if !known_from_us { let verification_result = self.verify_chain_lock( - block_state_info.round, // the round is to allow us to bypass local verification in case of chain stall + block_state_info.round, // only logged: no generation verifies differently in a later round &block_platform_state, core_chain_lock_update, true, // if it's not known from us, then we should try submitting it diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/mod.rs index 31bba1f3cea..03d41408c98 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/mod.rs @@ -23,8 +23,9 @@ where /// Updates the voter identity in the masternode. /// /// This function updates the voter identity in the masternode. The old identity key is - /// disabled (which might make the identity unusable) and a new identity is added with - /// the new key, which is a non-unique key. + /// disabled (which might make the identity unusable), and either a new identity is added + /// with the new key, which is a non-unique key, or, when the voter identity of the new + /// voting address already exists, a key is re-enabled. /// /// When the masternode returns to a voting address it used before, version 1 (from /// protocol version 15) re-enables the key of that address's voter identity. Version 0 diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/v1/mod.rs index 02a476ae9f9..6b4f9ad57f5 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_identities/update_voter_identity/v1/mod.rs @@ -27,7 +27,8 @@ where { /// When a voter identity is updated the following events need to happen /// The old identity key is disabled (which might make the identity unusable) - /// A new identity is added with the new key, this new key is a non unique key. + /// Either a new identity is added with the new key, a non unique key, or the key of the + /// existing voter identity of the new voting address is re-enabled. /// /// Unlike version 0, when the voter identity of the new voting address already exists /// (the masternode returns to an address it used before), its keys are re-enabled on that @@ -92,7 +93,7 @@ where keys_ids: old_voter_identity_key_ids, })); - // Part 2 : Create or Update Voting identity based on new key + // Create the voter identity of the new voting address, or re-enable its key let new_voter_identity = Self::create_voter_identity( &(pro_tx_hash.to_byte_array()), &new_voting_address, @@ -112,14 +113,13 @@ where platform_version, )?; - // two possibilities if !new_voter_identity_key_ids.is_empty() { - // first is that the new voter key already existed - // if it is disabled re-enable it + // The masternode used the new voting address before, so its voter identity exists. + // Its key is re-enabled whether or not it is disabled. if new_voter_identity_key_ids.len() > 1 { return Err(Error::Execution(ExecutionError::DriveIncoherence( - "more than one masternode voter identity for an address and pro_tx_hash pair", + "more than one key on the masternode voter identity for an address and pro_tx_hash pair", ))); } @@ -127,7 +127,7 @@ where identity_id = ?new_voter_identity.id(), keys_ids = ?new_voter_identity_key_ids, method = "update_voter_identity_v1", - "re-enable voter identity keys if they already exists and disabled" + "re-enable the keys of the existing voter identity" ); drive_operations.push(IdentityOperation(ReEnableIdentityKeys { @@ -141,7 +141,6 @@ where "create a new voter identity" ); - // other is that the drive_operations.push(IdentityOperation(AddNewIdentity { identity: new_voter_identity, is_masternode_identity: true, diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs index a32101611ee..f735b5468e9 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_based_updates/update_masternode_list/mod.rs @@ -94,7 +94,7 @@ mod test { use crate::test::helpers::setup::{TempPlatform, TestPlatformBuilder}; use dpp::bls::SecretKey; use dpp::core_types::validator_set::v0::ValidatorSetV0; - use dpp::dashcore::hashes::Hash; + use dpp::dashcore::hashes::{sha256, Hash}; use dpp::dashcore::{Network, ProTxHash, PubkeyHash, QuorumHash, Txid}; use dpp::dashcore_rpc::json::{ DMNState, DMNStateDiff, MasternodeListDiff, MasternodeListItem, MasternodeType, @@ -234,6 +234,163 @@ mod test { .expect("expected to commit"); } + /// What `should_store_the_mainnet_masternode_lists_as_shipped_protocol_versions_do` expects: + /// the app hash each protocol version it covers leaves, then the stored masternode list they + /// share, as [`mainnet_masternode_list_replay`] describes it. + const MAINNET_MASTERNODE_LIST_SNAPSHOT_PATH: &str = + "tests/supporting_files/mainnet_protx_list_diffs/stored_by_protocol_versions_13_and_14.txt"; + + /// Replays the mainnet full list at init chain and the next diff in the first block through + /// the dispatcher at `platform_version`, and returns what the platform then holds: the app + /// hash, which covers the masternode identities the updates wrote, and the stored full list, + /// one line per masternode with the start of its ProTx hash as Core prints it and the start of + /// the SHA-256 of its stored entry. Asserts that the evonode list holds exactly the evonodes + /// of the full list, as stored there. + fn mainnet_masternode_list_replay(platform_version: &PlatformVersion) -> ([u8; 32], String) { + let mut platform = TestPlatformBuilder::new() + .with_initial_protocol_version(platform_version.protocol_version) + .build_with_mock_rpc() + .set_genesis_state(); + let (init_core_height, next_core_height) = (2128896, 2129440); + let mut evonodes = BTreeSet::new(); + let responses = [ + mainnet_list_diff("1-2128896.json", false, &mut evonodes), + mainnet_list_diff("2128896-2129440.json", false, &mut evonodes), + ]; + platform + .core_rpc + .expect_get_protx_diff_with_masternodes() + .returning(move |_base_block, block| { + Ok(responses[usize::from(block != init_core_height)].clone()) + }); + + let transaction = platform.drive.grove.start_transaction(); + let mut init_chain_state = platform.state.load().as_ref().clone(); + platform + .update_masternode_list( + None, + &mut init_chain_state, + init_core_height, + true, + &BlockInfo { + height: 1, + core_height: init_core_height, + time_ms: 1, + ..Default::default() + }, + &transaction, + platform_version, + ) + .expect("expected to process the full masternode list"); + let mut block_state = init_chain_state.clone(); + platform + .update_masternode_list( + Some(&init_chain_state), + &mut block_state, + next_core_height, + false, + &BlockInfo { + height: 2, + core_height: next_core_height, + time_ms: 2, + ..Default::default() + }, + &transaction, + platform_version, + ) + .expect("expected to process the masternode list diff"); + platform + .drive + .grove + .commit_transaction(transaction) + .unwrap() + .expect("expected to commit"); + + let full_list = block_state.full_masternode_list(); + assert!( + block_state.hpmn_masternode_list().iter().eq(full_list + .iter() + .filter(|(_, masternode)| masternode.node_type == MasternodeType::Evo)), + "protocol version {}: the evonode list holds the evonodes of the full list", + platform_version.protocol_version + ); + + let app_hash = platform + .drive + .grove + .root_hash(None, &platform_version.drive.grove_version) + .unwrap() + .expect("expected the app hash"); + let stored_list = full_list + .iter() + .map(|(pro_tx_hash, masternode)| { + let entry = serialize_masternode_entry(masternode, platform_version) + .expect("expected to serialize the masternode entry"); + let entry_hash = sha256::Hash::hash(&entry).to_byte_array(); + format!( + "{} {}\n", + &pro_tx_hash.to_string()[..16], + hex::encode(&entry_hash[..8]) + ) + }) + .collect(); + (app_hash, stored_list) + } + + /// Every node replays shipped protocol versions with the binary it runs, so what they store + /// from Core's diffs must not change with the binary. Core's diffs reach Platform through the + /// Core RPC client's decoding and diff application, which a rust-dashcore update can change + /// without any Platform file changing. One such update made the client keep revived heights + /// and decode operator payouts in diffs, which would have changed 227 entries of these lists + /// had `update_state_masternode_list` v0 and v1 not undone it. Replaying the recorded mainnet + /// diffs at protocol versions 13 and 14 must give the masternode list, which both store + /// alike, and the app hashes the Platform 5.0.3 release gives. + /// + /// Regenerate the snapshot only for a deliberate change to what those versions store: + /// `UPDATE_MAINNET_MASTERNODE_LIST_SNAPSHOT=1 cargo test -p drive-abci --lib + /// should_store_the_mainnet_masternode_lists_as_shipped_protocol_versions_do` + #[test] + fn should_store_the_mainnet_masternode_lists_as_shipped_protocol_versions_do() { + let [(app_hash_13, stored_list_13), (app_hash_14, stored_list_14)] = + [13, 14].map(|protocol_version| { + mainnet_masternode_list_replay( + PlatformVersion::get(protocol_version).expect("a shipped protocol version"), + ) + }); + assert!( + stored_list_13 == stored_list_14, + "protocol versions 13 and 14 store the same masternode list" + ); + let snapshot = format!( + "app hash at protocol version 13 {}\napp hash at protocol version 14 {}\n{stored_list_14}", + hex::encode(app_hash_13), + hex::encode(app_hash_14) + ); + let path = + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(MAINNET_MASTERNODE_LIST_SNAPSHOT_PATH); + + if env::var_os("UPDATE_MAINNET_MASTERNODE_LIST_SNAPSHOT").is_some() { + std::fs::write(&path, &snapshot).expect("expected to write the snapshot"); + return; + } + + let committed = std::fs::read_to_string(&path).expect("expected to read the snapshot"); + let differing: Vec<(&str, &str)> = committed + .lines() + .zip(snapshot.lines()) + .filter(|(committed, replayed)| committed != replayed) + .take(10) + .collect(); + assert!( + committed == snapshot, + "replaying the mainnet diffs no longer stores what {MAINNET_MASTERNODE_LIST_SNAPSHOT_PATH} \ + holds ({} lines committed, {} replayed); first differing lines, committed then \ + replayed: {differing:?}", + committed.lines().count(), + snapshot.lines().count() + ); + } + /// A `protx listdiff` response from the mainnet fixtures. With /// `core_23_addresses`, every masternode and diff also lists the /// `addresses` Core 23 prints beside the legacy fields. `evonodes` diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock/mod.rs index 038a7365ac8..f0d0eb1868c 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock/mod.rs @@ -16,9 +16,14 @@ impl Platform where C: CoreRPCLike, { - /// Verify the chain lock - /// If submit is true, we try to submit the chain lock if it is considered valid or we can not check to see if it is - /// valid on platform. + /// Verify the chain lock against the chain lock quorums Platform holds, and leave it to + /// `verify_chain_lock_through_core` when Platform cannot tell on its own. + /// + /// With `make_sure_core_is_synced`, a chain lock found valid locally is submitted to Core + /// to find out whether Core is synced to it. A chain lock left to Core is submitted by + /// `verify_chain_lock_through_core` 0 without a signature check of its own; from + /// `verify_chain_lock_through_core` 1 (protocol version 15) it is submitted only after + /// Core's `verifychainlock` accepts it. pub fn verify_chain_lock( &self, round: u32, diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/mod.rs index 167ca05da0e..ebd9175b2b1 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/mod.rs @@ -33,11 +33,11 @@ where /// Platform holds exactly the quorums active at the signing height; version 0 also returns /// it when Platform might not hold the quorum the chain lock was signed with /// * `Ok(None)` - Platform cannot tell on its own, so Core has to decide. Nothing about the - /// signature is known yet: `verify_chain_lock_through_core` has to check it + /// signature is known yet: `verify_chain_lock_through_core` has to check it. This is also + /// the answer when Platform holds no quorum to verify against /// * `Err(Error::BLSError)` - The signature could not be deserialized - /// * `Err(Error::Execution)` - An unknown method version, no quorums to verify against, or - /// from version 1 a platform version without DKG mining schedules or with a schedule whose - /// interval is 0 + /// * `Err(Error::Execution)` - An unknown method version, or from version 1 a platform + /// version without DKG mining schedules or with a schedule whose interval is 0 pub fn verify_chain_lock_locally( &self, round: u32, diff --git a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v1/mod.rs index 5e5b176bea4..2044d385522 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/core_chain_lock/verify_chain_lock_locally/v1/mod.rs @@ -704,6 +704,66 @@ mod tests { } } + /// Platform versions that verify chain locks locally from version 1 on. + fn platform_versions_verifying_chain_locks_locally_from_version_1( + ) -> impl Iterator { + let platform_versions = PLATFORM_VERSIONS.iter().filter(|platform_version| { + platform_version + .drive_abci + .methods + .core_chain_lock + .verify_chain_lock_locally + >= 1 + }); + assert!( + platform_versions.clone().next().is_some(), + "some protocol version verifies chain locks locally from version 1 on" + ); + platform_versions + } + + /// Version 1 fails every chain lock in a mining window without the DKG mining schedules of + /// its version table, and so every validator fails the block. A table that selects it must + /// carry them, not inherit `None` from an earlier table. + #[test] + fn should_have_dkg_mining_schedules_in_every_platform_version_verifying_chain_locks_locally_from_version_1( + ) { + for platform_version in platform_versions_verifying_chain_locks_locally_from_version_1() { + assert!( + platform_version + .drive_abci + .methods + .core_chain_lock + .dkg_mining_schedules + .is_some(), + "protocol version {} has no DKG mining schedules", + platform_version.protocol_version + ); + } + } + + /// Version 1 leaves to Core chain locks version 0 rejected locally, so it is only safe when + /// Core checks their signature: from `verify_chain_lock_through_core` 1, `verifychainlock` + /// does before `submitchainlock`, which skips that check for a height Core already has a + /// chain lock at or above. With `verify_chain_lock_through_core` 0 a forged chain lock at + /// such a height would be accepted. + #[test] + fn should_check_chain_locks_left_to_core_with_verifychainlock_in_every_platform_version_verifying_locally_from_version_1( + ) { + for platform_version in platform_versions_verifying_chain_locks_locally_from_version_1() { + assert!( + platform_version + .drive_abci + .methods + .core_chain_lock + .verify_chain_lock_through_core + >= 1, + "protocol version {} submits chain locks left to Core without verifychainlock", + platform_version.protocol_version + ); + } + } + #[test] fn should_find_first_possible_quorum_change_from_dash_core_dkg_schedule() { // Dash Core mines a commitment only at offsets mining_window_start..=mining_window_end diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v1/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v1/mod.rs index 44f15545997..62c1188507a 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v1/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/build_untied_withdrawal_transactions_from_documents/v1/mod.rs @@ -33,9 +33,10 @@ where /// block's `transaction`: `update_core_info` records V24, earlier in the block, at init /// chain or in the first block that moves the chain locked height to one where V24 is /// active, and forks never switch off, so a recorded V24 is active at the chain locked - /// height of that block and every later one. Until V24 is recorded, which can be a few - /// blocks after Core activated it, withdrawals stay at version 1, which Core always - /// accepts. Core is not asked. A withdrawal whose whole amount is below Core's dust + /// height of that block and every later one. Until V24 is recorded, withdrawals stay at + /// version 1, which Core always accepts. The record is the chain locked height at which + /// Platform first observed V24 active, not Core's activation height, and it can trail that + /// height without bound. Core is not asked. A withdrawal whose whole amount is below Core's dust /// threshold stays at version 1 (see `withdrawal_amount_is_core_dust`). /// /// The version is decided here once and kept in the untied transaction bytes, which every diff --git a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs index 5a1eb4f749f..9a2929ef692 100644 --- a/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs +++ b/packages/rs-drive-abci/src/execution/platform_events/withdrawals/mod.rs @@ -54,3 +54,60 @@ fn withdrawal_amount_is_core_dust( Ok(amount_duffs < core_dust_threshold_duffs(&output_script, dust_relay_fee_per_kb)) } + +#[cfg(test)] +mod tests { + use dpp::dashcore::hashes::Hash; + use dpp::dashcore::{PubkeyHash, ScriptBuf, ScriptHash}; + use dpp::identity::convert_credits_to_duffs; + use dpp::version::PLATFORM_VERSIONS; + use dpp::withdrawal::core_dust_threshold_duffs; + + /// FAILED may only ever reach a withdrawal of asset unlock payload version 1 (see + /// `withdrawal_amount_is_core_dust`). A withdrawal pooled as version 2 under one protocol + /// version can expire under a later one, so a later dust relay fee must never be higher, + /// and a withdrawal of the minimum amount must never be Core dust, for the output scripts a + /// withdrawal can pay (P2PKH and P2SH). + #[test] + fn should_never_raise_the_dust_relay_fee_nor_make_the_minimum_withdrawal_dust() { + let output_scripts = [ + ("P2PKH", ScriptBuf::new_p2pkh(&PubkeyHash::all_zeros())), + ("P2SH", ScriptBuf::new_p2sh(&ScriptHash::all_zeros())), + ]; + let mut previous_dust_relay_fee = None; + for platform_version in PLATFORM_VERSIONS { + let protocol_version = platform_version.protocol_version; + let Some(dust_relay_fee_per_kb) = + platform_version.system_limits.core_dust_relay_fee_per_kb + else { + continue; + }; + if let Some((previous_version, previous_fee)) = previous_dust_relay_fee { + assert!( + dust_relay_fee_per_kb <= previous_fee, + "protocol version {protocol_version} raises the dust relay fee of protocol \ + version {previous_version} from {previous_fee} to {dust_relay_fee_per_kb} \ + duffs/kB" + ); + } + let min_withdrawal_duffs = + convert_credits_to_duffs(platform_version.system_limits.min_withdrawal_amount) + .expect("expected the minimum withdrawal in duffs"); + for (name, output_script) in &output_scripts { + let dust_threshold = + core_dust_threshold_duffs(output_script, dust_relay_fee_per_kb); + assert!( + min_withdrawal_duffs >= dust_threshold, + "protocol version {protocol_version}: the minimum withdrawal of \ + {min_withdrawal_duffs} duffs is below the {name} dust threshold of \ + {dust_threshold} duffs" + ); + } + previous_dust_relay_fee = Some((protocol_version, dust_relay_fee_per_kb)); + } + assert!( + previous_dust_relay_fee.is_some(), + "some protocol version sets a dust relay fee" + ); + } +} diff --git a/packages/rs-drive-abci/src/rpc/core.rs b/packages/rs-drive-abci/src/rpc/core.rs index 2208254390d..b4182a184af 100644 --- a/packages/rs-drive-abci/src/rpc/core.rs +++ b/packages/rs-drive-abci/src/rpc/core.rs @@ -1086,4 +1086,103 @@ mod tests { assert_eq!(core.asked(), ["getdeploymentinfo"]); } } + + /// The JSON-RPC requests `DefaultCoreRPC` sends for a chain lock. + mod chain_lock_requests { + use crate::rpc::core::{CoreRPCLike, DefaultCoreRPC}; + use dpp::dashcore::{BlockHash, ChainLock}; + use dpp::dashcore_rpc::jsonrpc::{self, Request, Response, Transport}; + use dpp::dashcore_rpc::Client; + use serde_json::value::RawValue; + use serde_json::{json, Value}; + use std::fmt; + use std::str::FromStr; + use std::sync::{Arc, Mutex}; + + /// A Core JSON-RPC transport that records every request and answers each with `answer`. + struct RecordingTransport { + requests: Arc>>, + answer: Value, + } + + impl Transport for RecordingTransport { + fn send_request(&self, request: Request) -> Result { + self.requests + .lock() + .expect("requests lock") + .push(serde_json::to_value(&request).expect("request is JSON")); + Ok(Response { + result: Some( + RawValue::from_string(self.answer.to_string()).expect("answer is JSON"), + ), + error: None, + id: request.id, + jsonrpc: request.jsonrpc.map(str::to_string), + }) + } + + fn send_batch(&self, _: &[Request]) -> Result, jsonrpc::Error> { + Err(jsonrpc::Error::EmptyBatch) + } + + fn fmt_target(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "recording transport") + } + } + + /// A `DefaultCoreRPC` whose Core answers every request with `answer`, and the requests it + /// sends. + fn recording_core_rpc(answer: Value) -> (DefaultCoreRPC, Arc>>) { + let requests = Arc::new(Mutex::new(Vec::new())); + let transport = RecordingTransport { + requests: Arc::clone(&requests), + answer, + }; + let core_rpc = DefaultCoreRPC { + inner: Client::from_jsonrpc(jsonrpc::Client::with_transport(transport)), + prefetcher: None, + }; + (core_rpc, requests) + } + + /// Core checks a chain lock's signature against the block hash it is given, so a block + /// hash sent in the wrong byte order fails every genuine chain lock Platform leaves to + /// Core, and every validator would reject such a proposal. `verifychainlock` takes the + /// block hash as Core displays it, the signature as hex and the height. + #[test] + fn should_ask_core_to_verify_a_mainnet_chain_lock_by_its_displayed_block_hash() { + // Mainnet chain lock 2555653, as Dash Core's `getbestchainlock` prints it. + let block_hash = "0000000000000001a26bc13523d40ae79f5680207c0d8486c4939ce2ef01c6c8"; + let signature = "83fae388eb55f8e8d9fd89623b5018a1294550f6032b96d5c89de71bf7d567d19cced4023eefcbf9898d77744a2c90860614854ae35d32c0d9268ef06c4859effaf3b9e5f132af58aae0f760cd94ab8b987a6663f01f660d61dbe2ea0856b197"; + let chain_lock = ChainLock { + block_height: 2555653, + block_hash: BlockHash::from_str(block_hash).expect("block hash"), + signature: <[u8; 96]>::try_from(hex::decode(signature).expect("hex")) + .expect("96 bytes") + .into(), + }; + + for answer in [true, false] { + let (core_rpc, requests) = recording_core_rpc(json!(answer)); + + assert_eq!( + core_rpc + .verify_chain_lock(&chain_lock) + .expect("Core answers"), + answer + ); + + let requests = requests.lock().expect("requests lock"); + let [request] = requests.as_slice() else { + panic!("expected one request, got {requests:?}"); + }; + assert_eq!(request["method"], "verifychainlock"); + assert_eq!( + request["params"], + json!([block_hash, signature, 2555653]), + "the block hash as Core displays it, the signature as hex, and the height" + ); + } + } + } } diff --git a/packages/rs-drive-abci/tests/strategy_tests/test_cases/core_fork_activation_tests.rs b/packages/rs-drive-abci/tests/strategy_tests/test_cases/core_fork_activation_tests.rs index bf43f49af08..8c932d2f9a2 100644 --- a/packages/rs-drive-abci/tests/strategy_tests/test_cases/core_fork_activation_tests.rs +++ b/packages/rs-drive-abci/tests/strategy_tests/test_cases/core_fork_activation_tests.rs @@ -241,11 +241,14 @@ mod tests { .expect("expected to read the V24 record") } - /// Once V24 is recorded Platform never asks Core about it again, also after a restart from - /// disk, so nothing node-local stands in for the record: a node whose Core then refuses to - /// tell the coinbase payload version commits the same chain as a node whose Core answers. - /// Only the V24 question fails here; the withdrawal scan still reads Core's credit pool in - /// the blocks that move the chain locked height, as it does at protocol version 14. + /// Once V24 is recorded `update_core_info` never asks Core about it again, also after a + /// restart from disk, so nothing node-local stands in for the record: a node whose Core then + /// refuses to tell the coinbase payload version commits the same chain as a node whose Core + /// answers. Only the V24 question fails here; the withdrawal scan still reads Core's credit + /// pool in the blocks that move the chain locked height, as it does at protocol version 14. + /// The masternode list's operator key normalization still asks Core about V24 when Core + /// re-reports an operator key unchanged or re-encoded; this chain never does, so a node + /// whose Core refuses would fail such a block, as at protocol version 14. #[stack_size(4 * 1024 * 1024)] #[test] async fn should_never_ask_core_about_v24_again_once_it_is_recorded_even_after_a_restart() { diff --git a/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/stored_by_protocol_versions_13_and_14.txt b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/stored_by_protocol_versions_13_and_14.txt new file mode 100644 index 00000000000..de9f1f0787c --- /dev/null +++ b/packages/rs-drive-abci/tests/supporting_files/mainnet_protx_list_diffs/stored_by_protocol_versions_13_and_14.txt @@ -0,0 +1,3720 @@ +app hash at protocol version 13 470ae14131592f7e5de5f747439d7939275c900da50843ac901dc70538041608 +app hash at protocol version 14 b111638a74adc061bb460d5137f0d6caba19d1344163285894824bc9d2b324fd +002d824dcc837852 f553b6aa354ef5ff +002de9a798c01eb8 6256f34c571b2de4 +0034527c826c4ecf 60032a2ef3abf889 +0037c2c534d2d9ac 23b9b988ce549254 +00560e41e283875d 2f41038c8de5a8a9 +0062e548ac39d518 536ced1e98079287 +007a7d6e5fc0adca 1494cd752f5b252d +0092aa49ee56297a 80acbb817a6ccc3d +00a6aa2d8bc371d4 58312d94e83727ed +00ae93fc9706943e c73844f916c69113 +00b062b6809f6234 1ab09ee8c62cbea8 +00be6bde5965da11 5a03d38a94ecb560 +00c5bc7941973452 991b9806b85e72e9 +00e7abe1d2a98c50 8ec5aa562b4a3850 +00ebcbd8e49ee0a1 83da5e9b9cff3b25 +00ee2be1b9118544 c59ea1282c013529 +00f2b6b872a94f92 b3ddbb67b53a60f5 +00f3583e4810e06e 03f0121a450ae1a9 +00f857f0b62faa97 7b9d8b634cc36798 +0110cad9fc9e7aeb 928ba76391c09995 +016753d5c82c0061 05f18ec8bac5857b +0186e587f4578711 29901fdf3a1495b7 +018b0376636fdecf 6c46d997a0120418 +018f4eb9bf31743b 23e250cbc6ac6acc +0195552213c96756 4375f3ddd561552e +01ab6185339d04b5 84f3ef6f3fc7a4bf +01b2a52acc478332 a300a46af5451683 +01c1241272fec89b d18580dfe7131190 +01d6c9b8661fc28a 292a371bef59418f +020ff723205798c7 e63c5849651693da +021be59f248e59d4 a183bf51065fa595 +02244e2360d915b7 30ca9e7dc505fb32 +02245c5981af2ad6 5d0141469ee979a3 +023447f20a556399 7860d1d33b2df4a1 +023ba488bcebd33a 2e21041222c9f01f +02477c8a4dcc67cf f8dcfc02abd83934 +02880d82a5458023 f53c5a745edc0839 +02a1268116bde0a9 ddb1c67b189c0c55 +02aa28b0eedeb9f7 71392b265c3e96de +02b55f4701675fbd f8645278006a7f95 +02e8a113c2de4f0d 96e9f5bbb78f14d9 +02ea5d030da10c84 1bfd42458de654e4 +02fd3dbcc8e70b72 bc82fc3da9bca278 +0314c060ddfc51cb 064a4996847e03d0 +033be55c8a3338a2 0389741d36efd8d7 +03451f64002fdfb7 f93068408dc585c0 +035b9cbe7f9fd2c4 03cbb38aad01bd7e +035d2fa64db2b9a5 508bada1cccdeacb +0374b82cca4b0e2b fb7277752c8e5cec +03a9d19b983a8595 c26fc146695c8045 +03a9e80f3293d96f 5518a9ad975964cb +03d8a74b91a769dd 2febf4ebcb92c677 +03e0ac65173d6807 8e657f0db9aa3528 +03e1998fbb531bc0 7cd71057eeaf857a +040d36784771c05a 168b7c7df02826ee +0420e415b742f270 f048c8f4a061026b +043433308206c302 c1fbddf208d2e92a +043905d429eabc84 b4f376c7eb054065 +0467d2d224faa3de df3b17e3242f2a38 +0492103872b74383 03456338ea890b1c +049fc8f0474e162f a9ada0e8d2ce031b +04a63ccb2112395a abf2c6be56f6d57c +04a851d736321ed7 584841594b9b9ffd +04a8dd62c3686b0d f07e7eb109cd7d13 +04b8f3d920019be1 0818e54ac31f92e4 +04c64c5321d293df 1fc998a053af5007 +04cefd74dbf70bf1 c436c34f35436d1c +04f0da96bd19aa64 baca854122ed53d2 +0501e3918f79d40c 85ae7e70dd1875b0 +0505613f4db057b9 7be3b7c5cdf7d328 +05231fe0fd6bba8f 222e05c199d09f67 +052b9892a3768aea f51c5a06d248dee2 +0549e26f0ee0ce7c 7fc691976d3e5ac7 +05570aca9865dad5 7792eb9705d83b2f +056178378002cd44 3d5e3e337342b629 +0563c2057d4fe4b2 96b5ad8792e61a9d +0582c5ecc6bb7dd0 b24181fc2f0b98ca +058a33de919dd30c c992a8660f0a84ca +05991034adf969a2 b0b20dcb1483eb01 +05a1a4868a3fc695 41975d39cd0f0f5d +05c7cf06162bf490 8a2f272ca2f55093 +05d21de0bf8acb71 0a8f696f705500bc +05d6c2471b69c0ec b9269599ff1ea0e8 +05e90f074f83221a c9b5dfee1c4aa5a7 +05f42dee064ef681 36eed237ed5b8364 +060ee8a0c01682e7 ffe6ec42347fea89 +06198421286efb25 d7227c25a99089e9 +0625db5c1bfa232b 9e4cafbfc18784ea +0633f37c22cb2151 f4e7b17c9dca1522 +0653864aec2522c9 aaaa6772270f0cb7 +065820051a19ef7a c2de6ba3702a95c4 +067c4b245fa9ca36 a51eb4c089e13bce +068f02cd536e8aa8 eb370317519692bb +06a1812bcc3d33e8 f9f8dd6452d70db8 +06a9ee248111bf6d e8119684549ba90b +06b12fb8f43cedc7 52e0f08c98c2d700 +06f74e4cdf74168f bc6622da529498f8 +06febeca9a2487eb 0c4b1b5d540a349c +071d1ca48c393818 789ae6da844b0ffd +075ecfb048bd1d0e 98c4b0a3eabd1a1a +076a86b320712712 e5bed6e609e6176c +077625355482b815 6e4346d7a88f201e +0783bde786ef7c21 66f968a4a2840464 +07a627c2f8d93edd 79a74eb475550ec0 +07a996e87af481d6 4d8783c40fb3eba6 +07bffaa884f78cfb 7983f7f6738187fb +07db7d1619bed100 4f0ed57988a61b2f +07e9eab9358f1027 b17a152b611b174b +080768ef7f9025cd 65ede3d9d81e94ba +0808b941ea3f8380 8fd6025d4fb21a78 +080b38002f7e178b 4ce9904d0d72c095 +0816018cd703f2e5 91950e1586e7a168 +0842eec6a5110ab6 7d66527c7c7fc476 +086ac1966c3c1bcc 6b856b912ae3b266 +0871b350678b9cf0 d4d063106c66375b +0872c1d864082621 d9ee291344c2cd24 +088bdc297abfc8ab 4d4533f19441f55a +088ffae1e31f2cb4 f465bc55d4e093a7 +08a0381c156734fe 975e357c1bcfdfdc +08abbbec1043163a 796c601faa7ae228 +08bef1551d9a44b7 04c75ddeb2f1b347 +08df46272431f1eb 13e71f074d9b2a14 +08e7ef5559ebd076 cce9306c0a729121 +09065e3227715e05 75806730e1170c65 +090745328d55a6fe c91a6a3ac2dd1832 +09086e05d5debe5a 2e91a81f72859a93 +0910964e3735c8d0 22d2754ef2dc0ecb +0911a5921394b1e8 b896170b4e57dbf7 +091672d18cf45e70 ba714b00c71579c6 +0927256960d4e34b bdf496f667a88970 +092828edc081d3ba bc508c4b6d72ae17 +093915cf03ffa4fc abea27484caf675d +093c7924743d735b 4b4924481118afcd +0940ab0f9a7cc88f eb2430b9f88a5200 +09615521fa04a2c5 108988a6be85360a +09b683980f03d129 bb4c8c661225603c +09bae4a35c8cb70e 950495e2251e4596 +09c37e3110ccefc0 02e059199bcac2d2 +09d6600097bb80f9 dad06e19dce744b9 +09e008fc2cd4c879 06eeadb87ce9cd4b +09eb390d80f496f1 d3b42b073f4b88d4 +0a1dc4c81b3ba192 cae3be46be89cd56 +0a2484f276668230 e68ca6bdd953dade +0a52dee7d797c07f e8dbab22be0401fc +0a618db7f50e9a4a 5ae1ab0083ee31e1 +0a7867ee2c48403f 392c6c7fdab17624 +0a80702f607f463e 699f5299f92cafdb +0ab26ebd92c16d8b bcf543400cad269f +0ac025f48eae92e3 c68c75f705c007db +0ae5804e7ce572b4 32f8d5b5b1b5214c +0aea1803be980a74 e3ab7aaff2821707 +0af1cef9f8810df9 31734662ddb0f6e6 +0afa3cc579687af9 7722a22c01368204 +0b2749202fcc2924 1ec1350f2266bd9b +0b281dc2cd8e488b 98661be47d1da1c1 +0b479cb3338ee803 824752e7732c6cc1 +0b64de24afec066d bfc6b11a6ba72212 +0b7cd58e8d630ee2 1747702dd379e541 +0b82ca099216fb20 877858510d601526 +0bb46b2bc2f96443 1806edd1b4dadb1b +0bd3e8b009811531 5d110b4edc8f303d +0bd97c542f920da1 16f9c0566504d968 +0bf43408a4dd07ed f981733101cc013f +0c00d16531a1ca30 5ec6c8e4149cac28 +0c0702ee0b2c1095 6a8010de72a77373 +0c0bcb449d7b4562 61552e0bfa07df45 +0c3774b735180708 3145d31232814168 +0c387489c877ec18 2ae6fd961ba05f30 +0cb7c3b7eb90ae94 e23c8e1319fe4def +0cc3a17dc9e832a4 38c64a09f21e67bd +0ccc9eb11967459b c5976e7fb9ffd57a +0cdc857aaabb3c46 92b14fcd30b23743 +0ce628a28068eb13 d73455d6e2c729ea +0d04d0b12b9c2d3c cad838d23fbce8a0 +0d0e2a98e6d9313b d1ad88af5021e209 +0d0ee825329e5762 14fa243dfbbff3fb +0d192a736ca81e5b 1fc193d1be4894ad +0d23c74358a4ae19 3654a93ef383b7b6 +0d2656bf77e57b9d b74cd79c67f62b39 +0d4997d8ac4c1dfb 77a327c209b0d5cd +0d6748530fe0dde8 97a99661adcdaf31 +0d698fb3f6a3319c e3a7e6c3d21955f4 +0d6eec8a8c6de819 33b2e33faa1a3ec5 +0d8327f4022119b5 61d0491ce1391d0c +0d90b3b37d00c242 e305f945309d0ce1 +0d91aed9eeeedb60 4a093d8fdd94caf9 +0dc2f355622da18a ad062b2e204b9e1e +0dc91efd618fcb5b d6b5be3c4c8dfcec +0dc9b52ff9a69237 7f7b4bc44ca7d3e3 +0df1bbe80e534d13 4ecf94211f5b6acc +0e25ad85e6e39c33 675024e2bc2eddd2 +0e300b22894ada63 0463ba8aaffc9cb5 +0e3818a4426e1525 14e7e127066d0bed +0e46835bc1f8e0c3 e2d1c1b0f8aa2d57 +0e50f9ad3a95055d 80ef08c035a619c3 +0e535f5812866565 58e0e1aa25319a80 +0e595bdd4838e81f 7b234c732ed1a01e +0e62d0bc2f00c408 bb65062d679842dc +0e7554535604d2ab eb6f318a25b5a5c0 +0e8a2ca4bcddab9c 419a63e6095c262b +0e9728412b7431b3 0c9b0b3841a9dc94 +0e98fdf7488a6929 132cf273858d358a +0e99dc5245738f94 289be54dc52d3d0d +0e9a4f75c4bb0cee 4f34261df49e34b6 +0e9b6f4856b31db8 9e02eafae98515f2 +0ea516ea42dba2ac 4de3cf9de753b671 +0ead7e2fb39b1044 294f9a22981d9aa4 +0eba73fdb5dc4ba8 4c1936603eeb8957 +0ebff194d1768f77 dd86853b19554f0b +0ee79652348497cf 44b7350a0e00287f +0efa048192b6d4ae a8dc0c96f70e1c03 +0f142865a9ba76c4 e4fefe0e2caa02a9 +0f1dc0c2dcf9b0fc bc16959a3d16f3c9 +0f338ef2f198a3f2 5932b23f2cdeb5de +0f49402a00bd7f29 2b5aaa7e5886777f +0f75c92b0427b2f6 9f2588230923a273 +0f7bc171ba4ccad2 b540ff9aab915a41 +0fa69221feeb29d4 7f90679f21f32d1b +0fb4333041be1620 3c85158e3b4f42a7 +0fc1df4d3f6d5b83 6a7397804b390207 +0fd63137e2bc071a c72aaf01135cec3c +0fdbdef745b288aa 38645e853b59d7f9 +0ff436fff18586db 249ec67b8c5b8705 +0ff94b156645ad9a 73bad6f13eb450a9 +1001aaa1c40f5225 81a420f7db761a43 +101301a6b8fe9474 5b57461d57e631a3 +101e80ac8dea6954 95dd8692cc4ac3f2 +1022cecbba9519cc 767d2bd0abc5c16b +10268611ffd8a8f1 96238a27308400c7 +10289f2582f1b5d3 f697f321a843ac1e +102e7f07f8c40613 73f11de2826b7503 +104fb5144ca25869 d314c92627ab3dfe +108448bfd2babed6 f3c21b3b77bf6535 +108a0089ad01e99e a4c1f1c764221bb7 +108c66a14f1319af 5492de270df628ca +10a8d2cb9261228f 022a384dd921d76e +10a9953f64e22fe4 4d5c750db45306ce +10cb666de6a84948 ae1c919e9179e43c +10e6403d88b062b4 7b69020fe7493163 +10ea0b9cc1294329 0c1fc289000834ee +110c7c7bc6d52cdd b43fafa297ee69a9 +110d16a7e4f4eddb c5fce2c7ad1421e1 +1119ed78a318408d 29069168940ce788 +111bc0f0402a2dfb 223c6c0834a48a46 +1133198f95fc0c39 cc97ea228d1419a1 +113673823cf38eb5 b560ea1bfe1a9395 +113ff81c88decba3 5b1c30cbce0a9f55 +114335549418eb61 848de20f920fffe3 +11458559445f58a7 3d1fef6b1fc243dc +114edaf079b652b3 2ed309d8ab2172d9 +115161f859a2d1a5 4742dba815da740c +116ef8a56eff919b 2acca783bfbdf5e8 +118b4d140743448f bb375096e4b41cab +11b688fc8ad1352a 1584ac670485d548 +11bbd0b5da3aa121 bcd1052e9fcea887 +11cbc637f8f51bf0 596c547aa51b9fd4 +11d8588fd7555f72 a10e6c043958442f +11f9f00be4344714 8cd74a7661f5d29a +12084286be2ce05b b761570235fa24a7 +12204244b05de61b 0738b7dd9edb71de +1228ab001235a90e 6dc1d8c8cff7aee0 +12438456d54a665b 9f7a4a72cf53f3d7 +124ff0f15c34d3ab ff0aae8e13aa2514 +125c10b837535081 e1297c57355fcef0 +125fe184594b8d2b c846723b2b765a2b +12777044a7367311 186c082c4441ea8c +128e4cddd02e73ec af5d954af3c0ca50 +12a4774757e6fea4 bd4c33380cd51787 +12ad39cebf01b3a1 14935a166448b196 +12adbb06eb38745a ee0e0eb22e26deb1 +12c289c797b2058d f714009bf36b89f2 +12dd85ca6a817a89 5bd270dedbf58b16 +12e1b1b88a3c0d3e 43878411e91a7924 +12e46bce64971700 a2bd9edc4cf1177b +12ec28c86dccccbf cd8b30a7674897be +12f35c3050a1e08b 7849994bfb5206ed +12f6e58291131b78 2b28b22112d6162d +13389b0cc2d9cace 964d57c2d1ffcf25 +13498142da3ff383 9c7d4f82000a751f +135273957ae87b52 1c57fb215d73dec2 +1364d12920ea44df a5dc46560bc85516 +1375ce3e596e7d55 e2c58c690e70f889 +137cf55684b78079 48aadec66dddba3f +1383b3930a3c1396 623ae844d14c7f60 +1384c6f7453b887d 7af80c9637f0095a +1385476525814cef ee542545e7125ed1 +1387032748c2a7b1 ce6adc68d26c5bdc +13b694fd6b0bb45c 6d17498b2baeac8a +13bc6b5a424a21dc 310eb2f5e7748703 +13ce871b9562e032 45fd64371823c519 +13cfe1dddea3ffd0 b7724522c3569eee +13dcc4ebecea14d9 6fdde1599a54fb3f +13f27e0eb9125fae 4c5a717af2f8d6f5 +13f70c06d242b5cf 7006d9b77d1d70e7 +1438a73ff32a1251 66d8142732930725 +1452b7d2c2e7944a c909a9538700acfc +14629366ec5807fa d44e3058eb152188 +146a9956e7531ec4 3286eedf6ed35c47 +146b558d2329475e d4f3ed14740035f6 +146c92fef58ad630 7edc47ab6377590f +147050185386a7ee d81b0759b35193cf +148394a30f05c5e9 c6210c55e85ddf6f +148c3fd705347b77 7022af234de14455 +14ac3c1c75e80dbc b1d2c8bc893aef01 +14d53cbf8dee2b98 08a75b234d22dd0c +150662a1f3635235 a4db6497e3ae4803 +1526b68cb5f14f7a c9e80fba7419b641 +1535d7b317c8b158 1a9173a92ed8b926 +1550dae73a70147d 18242f7ef814d272 +155c88972a99386f 130b9b7020d5c225 +1562c5201b0e01d6 3b1818cd90f80e4a +15752ec004f86d22 29bef644384ffd03 +15760b8e62173e35 347a154e2cbaf25a +158371d0abe83efc 59285a6ce1b11a08 +15adbf1d69693bc5 665e13bd04f4482c +15ae6a9dc8cd00b9 ce167fdb664d6060 +15bfd8c4f721a7b8 afbeb824f16b2ec5 +15d687e8af3de748 cec2d3a319a2e0ee +15e55de6891ca8c6 984c066bd801dde6 +15e9b286ff76a274 7043da6d3b31ff70 +15f1103476a45bc0 35adad0e5d888356 +15f1987af214e2d1 85e0ed386183e7c9 +15fa451c698b192e c6c0c9e10ba9c50c +160ad68449b9d8f2 1458ae1e2c73cab3 +160dd00ef2d9eb37 0faeff3d664a4104 +1679adfbd2ae30f0 e8ddb4712ba84a13 +167e9a1209c52d3a 64e60be488195510 +168157f2d00ed216 0170ac53bee754b7 +16a4d8165a2329ca 8ad7db2898817c4a +16ca7584b2e8a50b 5879b5b4dbe21291 +16cd333a82c35b71 f6bd1540cbb5db56 +16cd4d921f8b8363 ac46e805cd7a84f7 +16d040557ad124f9 0ae0df5999b9bff4 +1706c7970e969aaf 3d65af8ea62ef7db +1736153caee0ea7c 480d1a558325febf +1737a5ecfceff261 6787e27fd35834a8 +174defd7f00894ef eb4de832cede81be +174fd2843393f5e4 c1c5ed1c9ce6fb8b +175a322f42c9453c 8ea373c61f94880c +178d95904c685bb5 14d80623609cdcba +1794dc9eacd7e5c3 33726a3975f1776b +17a0b98865cf4fe8 cea4f5c4da291860 +17b861154235f320 3cb522149c7eb7c3 +17dcf3c4b4a2857b aeccf1b604614777 +17df4b74bd306215 114037293429d4b3 +17e2310fb28bd4b5 06443bbdfc6fc67f +18022f3f8f7c8900 584609b5b4f4a3ed +180b9e2017d5a330 11f37b3df5d3781d +182ea91d5a111e89 4c8963d6ed26b08e +18353af453ff7262 48da318351245464 +1838348a19ce0315 09dcd8c142fbaa9c +1844b1eb7bb1b222 c79758013ddeed38 +18f58ee5ab41a57c bd75765b83640f0a +19109d253c15e6aa 50f6980e7253677a +191bfab0a0dbaabd 860963ff0a6bf02c +192e7cd62fbfe2bb 77af2201800197ce +193603f5b2fedf34 90fe029b0130f306 +1948f3beda90d4aa 00e6d4c9856256ad +195207b7b8c2b8f0 2cb06350cd7ada5d +195b6c16d5789e68 3162194cdccf6b3b +1985bf5a1e2c3caf b20c37baa2624f94 +19a0d3fa9f1d92d6 ece348e89e9ed4a1 +19b0120f276ea518 67079e9e9b9c8aa3 +19d5a3796aa4d92b 5851d2fbfcac5ba0 +19db0157b098b580 b4783f4c9af093c0 +19e048c6c30173c9 bd10e66a413ff4c9 +19e470b220624ad0 35388347313af170 +19e671ef2ddcb6f7 54174328b8f2fc95 +19faa586dee7a28f 0edafa39dc0053e5 +19fdafc6cd50b1a3 24cb43013120ffbb +19fdbc77f52d0a39 f46715627d887106 +1a20d475bc38f5d1 2be705a7ed64d3c0 +1a343f8af6cada75 e3aac0c7f3c94cfa +1a4971b284fa3b5b 986a6e70b5e41c44 +1a4ab20526835c7e cacb65dfa02a49cb +1a52f4b26868d37d 78f72d7e92bfb5ad +1a535006c8f5218e b162c68a95b9538a +1a663fe238dd71da df54739f38ec5567 +1a6653fc218b4d84 51c056d47e5f3c28 +1a6d2aa33a75c78e 2be5475e793dfe85 +1a72394be79d9e10 da99543bfacf8820 +1a72e7631b3bd114 f222bb7193d9d96f +1a79ad1acaca9bfa 4f54b2613c60c56b +1a7f988e2a277b78 11e7d9e81dcb2fe9 +1ad069965f261a00 5f2a3346ba1db9d6 +1aed5d6ab5397e14 89a4d531a4853dd5 +1af38033011aabbc f0c3fce3c2d1af57 +1af692e45d5b8b2b e27d6ee11dda5a7e +1b0d1f8cd66a7a70 55ecc6c9909769f7 +1b42af375a0c3f26 a1c41586d7ff283b +1b44955af0f27438 18afaf90ee82e911 +1b48a3d93e3db04b ab6decce9d07f711 +1b4ea57c6c9fcb76 7bbb41ecf2d1ab1a +1b4f75790aa4bc68 7234da34afff4921 +1b5946c573f63129 b58f23cb485f3fb9 +1b5f7a9214933275 81f08054c75a8582 +1b68fdbec4d58065 6538227a6f2d1591 +1b712dbacff53a48 8c7d0b530e320dd3 +1b87a352204dcab9 59987b9d01249a6c +1ba07d2d3a3a8d9c 2e7e9ace7a677d8f +1bb846e890e938b9 40464744f2894af5 +1bc144f5de86f1d6 d79de489f1692ba0 +1bc9e4b6e7e910f6 6758f33a6d78d60d +1bfb4725f30511df e71a437829e91fae +1c0a831b315c011a 38a32254d34958df +1c1a4223b6b495fb 2c8ba533c3d19b93 +1c1da24cd2e078a5 3995ebc1d2fcced4 +1c2b19d136daa7de 885cf7d670869a70 +1c359d8332b5738f 01b855f3fb7d38c1 +1c3a911a7d61db06 b9456481be462a49 +1c40a59dd9e6c888 cd27fcc777896beb +1c458c0b0d51bb1b 167a2363a3f22042 +1c4dfd1578b8baae c09310aeb522f8fa +1c6847ea993fb7f9 ce7ee6fd443b55ef +1c77732e531cec11 c93a50946c129366 +1c7c3b94e57100e6 a7ffc2814cb22fcb +1cd70c43e622095e 85672c2e2a79730c +1cebd333ff6c50c9 53f6be4f56673284 +1d027604b1a3eef3 20bd480e02123f9a +1d33938842240c4c 5d3ef3cca98723fb +1d3f38a1e8683e34 0e30bc55b5066d08 +1d4583610c16be6a 7ec6acf7eb20a510 +1d5b90ce411206f3 6d18325757dbf6f4 +1d65667a8768a5dc 53c0f6259ab09174 +1d77bdc8ef92af12 996d007e688b56b9 +1d9442dc0a7d1ddc fdae3703c5eb3aaa +1dae04eaae642a25 b037502f33fd8a32 +1dbb815355b1a890 6a0930626ab952ff +1dbcaa3b1cf12c0d 38eb150e9f8d2f9d +1dd4ec053e0c6fc7 202fd8a683175c7f +1de6e6e776cdbbd6 ed35f0fc764410ae +1dee3d5ae5716486 9ba9bdbbfdc4b036 +1dfdf2e59110bf08 d9b02c9b52a06e03 +1e129fe347843024 ee7d95dccc448b74 +1e1be260236371bf 80dd47fd997e540a +1e1c5f9d893dc132 67a0041a57f30715 +1e1d45c63881d362 c0e77bfbc5f71576 +1e1e5d5882bda699 19441e3506c60191 +1e214c849e3bf0cc 8c6dc4be85636ae0 +1e702840e3dd3104 674002120dd2c723 +1e70e74b329e536e 3f2b3918b27f5919 +1e773aabfd85d073 f4ef41bcf0cdf605 +1e964fcd4064ba2d a7614ab2d274c10d +1ea05da9574b9fb3 d40d50fe151c8d83 +1eb05da8e76ed4c9 66028fa02ecd79c5 +1ec0015dc56c529b 7c14c18e85ae3cac +1ec40b4b8864f7f9 0a8c236d49622272 +1ee849dbe7480a9f 047cea6ce40c04a4 +1ef8e1b6867f0a7e f66dda5baafd215e +1f0ef94da74b14d2 13b3b39009ab7a0e +1f3f0835685420e6 8715f7d9a5afb27b +1f51015dd6a571b2 d8a5c9034645f521 +1f545ceeb083364a 4b0e34ec27f8b936 +1f6a56c309394def 3966caf6043f92f2 +1f90412ef279ea7a 81cfaaa60616956f +1fa146dd609f7d1f 4420616bc2c5ccd5 +1fb3066c8175dd3b 18a729890e51b129 +1fca19d74b3a0dcc 705f86cfd05a07b9 +1fe40a5016176f04 f97b6ae64046dbfe +1ff17a2d56a31356 d5b3bf17a5717899 +1ff4e7e6f15acb8c f7ffd0ca9b564f7d +20081902183024e8 4ae19c1a8a7f98d2 +200a4c237150cb06 64e96671cf160dec +200ccffb2ef1da26 d2cc40adbc20283a +203c497413026e42 362c6fd6e201008e +2050c4130227b9a2 9b087f5dec915b91 +206c1ba4e21033db e53fd83c4489032b +209ab67cfd5f757e 698b50a094c34527 +20a063fdf88b3602 e66fa6e2c46a187b +20a44f65904e293d 6599a03d49b8b41f +20d618f06375130b 64035b2be71b6232 +20e1a7d032b199c6 e0447dea602c32dd +20ea325f10633a43 f232b744c22095d5 +20ede6c4805c2b05 45bc5dc8535b8e57 +210938a15d3b7185 1628755e2e0380b4 +210d4d8e65482e2a 77c73664e8c6f71d +210d760dadb59c94 284b818f255a963c +21173e00737bac46 db4bbb319a3784b8 +2128727b5683dd30 cb80c23cc6c8f398 +213512f36fa4a31a af32989684acf26f +2138e8bd108076a3 3c30a8701904aaaa +21464a7e36b43feb 2ef706667fcadf40 +217844f21811bd6b 4fbf5589557f99f3 +2181ba13d685c02a 8d2158afe922552b +218cadd3dd270da2 8b587492cf1bff4d +219b32d75a7560ed 23d077e62c5fc4cf +219edddca6b0973d cd30226b3309293d +21a02f56813292b8 126bd537a1f09991 +21b02cad2fef91d1 f580dbb7965dfdbb +21fcfcae2578c6aa 6b43cba64c64d8cb +220c43630719e834 87796a2db0308c87 +221492f2b49bc969 0f4a4f9a34a0ee8f +2228747b00f351e5 b4a2150bd7ebaa82 +222abaf161a16988 de6d1ad30bd6c081 +2234e17cf807531a 60414850b60572fa +2281de9e9fea3544 5fa677aa3d8a3217 +2292551a56ef040d 5da2244aa3078a2a +229e38ba785b679e aed343868035a482 +22b9d59398d7f836 57c8e75ad543af9e +22c2ac2b888a26cf c322fbca606216aa +22d1fc2c14b2b9a7 70c4e54669823a3d +22ec6f3cdfeba23d f991329c2f199c0c +22f1542de39d1582 f4c4c4f13a85711f +22f418457220b461 3ba3c6857508cfe8 +2304f648ef4d7c47 dda24201678fa4c2 +230b1f0c3fa672c5 5f7d8b9e1daff5b9 +230e9cb2fa5520d1 e6c55175381e03c9 +2320e263b65769d0 a7dfa705e826db37 +23234232ff0ebe00 874a05d704862d85 +233f109446f91a05 282a3bae379872ca +23583f459a617087 9d391961fdd641ff +236987e4e61c4804 24ab6c17c22124b9 +2388a0a2f81634b0 6c00b50f23d17943 +23a697e38591825c 381d3c45bd3f865c +23ab40023dcf32cd 5deb54714bd14862 +23d78948e6f790c2 6f89385e1b145de3 +23e6b8961e3f9df0 415ba656fa2ca9d0 +23f72319ff77338f 11b238ea70ad2d12 +23fa43bbdddc6b3a a012f96155e6fc51 +23fb4642ac80f472 98326ec00d215dea +23fe42795cfc81bf 11cc67aab184c7c9 +24179655b9005187 0aee3c0332003adc +2420971711a8f496 d3b8d5636105bc40 +242939f5b5efacd2 a81a31a4a0f8b3d9 +242b96ea71241b4e 2ecff7fdac504059 +244a01ac9d648b12 5eab99a4d275056c +245618dacd729375 dec1407ef7ed7e55 +245bb59be308f210 87cc9ebcfe67bae1 +2465f2d56cb2e8ca 3ad5c54a8d7a2780 +24707887731e9050 473c2a7713a547ee +24740fe88f5e1b30 93fad8c2ae0383ab +24956d9a8ae6726b 5d891b9e058b6c46 +24a19a58c286eee8 bd5b643f8966c982 +24a36a43646b1358 552f556acf564e46 +24b7c279197ace1e 1cab4b37f311cf2a +24b9604f41fc1c47 7071b8fac18e0644 +24ba736989f35677 274b382b89997991 +24d9c815d4b81f69 758d1d15891358e7 +24dc24a79e14ecfc a5e3c1c34e550c25 +25047cc2a049ba0b 2bf7d653012eabc1 +2524850ab5600627 a43a4de8919bb302 +2536ffbaf219a75f 7b861a6fc1d9744c +255c26ad38ecb04a 220b48b75029ffdd +256e97575cb77fc5 cf8c2d8b7661d455 +2577d7ad2b2f1f43 0568b717a2872c7e +257c02ac5bdc59c8 09eb841838b57653 +2583ef29dc8b29ce f53d91160da51a1d +2591acb50280534f 8c76de822b409978 +25993b19c5e11c34 4262e3ffcb6b545c +259bde9368faabbb f6815f00f910d0b7 +25a386e611273364 d3ce7c597fdbec12 +25a8b283b81a0c3b 9cdc60ce8402c2d8 +25c477584c93d23b 2bcc1e38f70783ce +25cf387b3e468fca 11067e43f8fdbc73 +25da1991bb9d4886 67ef4121deaafc38 +25ea80063c1fe74b 7cd0d85407234bd5 +25f1cfe653932234 afdd1a40b1586ed9 +26095ca9ffe15ee7 4005b539c4b77e86 +2625baa64de9e7aa 2618a7ef8d9e09fa +26547cb7f7f9a37a d7ddda507210a991 +265f7708910345bd ba0c4612b9335958 +266b1579a2517a4a cc848418f7be72af +2676d54838e33f0f 2b48ea9783d184a4 +267731517bd29073 3173a8de8888cdcd +26924289c0329544 6cd5a8d9c4a9def9 +2696211c9280843c 79fa770a76a887f9 +26a96223cbe04b83 43edea8271ad2116 +26b8c4d88eb80238 d09b37efbdd12aa4 +26b9dee1642a6c66 885294aa73cc84a2 +26c3b778040df0b5 6e4aaf0e3257c010 +26d7da33f8121790 0e79219edd3910ab +26f37262d71255dd 3aab593c202eb34d +2708e549e48306a3 4d07af589f7e5b05 +27229ebfad2254c4 d1a2648ec124ffc5 +272c13b64739b985 9298f2c5a901e5cb +2748fbffb4f75e9d 767fd67ffd2ad8cc +275b003bf05733b7 b6e3c97f00309f5a +275bf5b7a4b0af97 c14c24d7ca33793a +277681c3029b7ba9 68b17ba858105f2c +27844d5fae71957a b1ca7ee0cfe6d764 +278a391a497b3fe3 e2fde26824df346e +2793b8cfe8a204ca d90424602ce524e6 +279478340dc02bea bc84857340a8fbf6 +27c457ee77f6f08a 3e7826fb3d60a87a +27d302288df88b92 290d3e8ae058175e +27ef261be25cdf1c 47111909e64232d4 +280705af7ab4a5b0 663662c9658700e9 +2808c6d3ce99c6c3 94aca6ce8fb7f61f +2809fe8a470b4939 95c10fc6230515e9 +280e8370cf3878ab cd253e5e38deb711 +2833ec6e1f256e74 ddd034556c078a39 +283cb9a7f6c1085a e50f2422634ad0e1 +2846bca0f1b919cd b110c7f11cccdad9 +285d6ac35857cb73 b570d5647df34160 +288aa361ef8c806c 28b13a538ee3d484 +288c68e4071a57de b89769186b8951fc +288cbb59fac5fbfc efec0e174203cef7 +28a1841f20c38dd9 fc09f3305b284dce +28b4ab8c030635d8 49087aad9f24d33e +28cdae2272c4e529 eb4e216408fa13fd +28e24a013ea100fa db885debe9405be0 +28e7a809285a690c 61019a0392ad5f7c +2908936ffbf1294f 1c4e146ba43bcc4b +2925138ae00b8b79 16ee7de9b33c0655 +29412459c4822da5 7d56083b6bd677b5 +2945e3d075945de2 50d7f6b32b923ad6 +294a325bac5c9d58 303b7a7d8afed96b +297f7320503d5917 5882ec844150d079 +29a0672f1bfefbbb 57ae76553d5a6177 +29a647921e1be4ef 773b92d07ac4ea46 +29b6d6b512a15917 72a02dca0ec0d9d3 +29be36ec41b8e393 2340140df8c8bdca +29cdf603f1c59f7a b306c3315faf7000 +29d2e282c6afc066 e87ddd4357f01303 +29d9c0f9cc304305 9cfd4d26fe37222a +29fe5d3d59a11e18 f17fdec619a5490e +29fee065df4ac82b 0911bb285c5a1143 +2a0b4bf837d0a117 bb6ec39719770eb7 +2a0ddd14c0aa7d14 99a5943ebfcd925b +2a0e91eb1d0852a7 45c06c4dca8ee67f +2a12dd4a16f264c8 4180f563e286c638 +2a2c069f92e18fc6 d0c03e066ee19292 +2a50a72c40e67677 b2e8939e8c110eb1 +2a526a0a8e4566e4 8f125f17905045b8 +2a9320c6379233cb 3bceb79256df445e +2aa11d14c9e4e5f5 1ee7a4accd1d3bcb +2aba887568e2b7d1 80cf4b8e7613ff0d +2ae238443919bfdd af78fded7971c2d4 +2af26b51bb03870c b1faee73c3b6b3ac +2b0e6df3743db027 2bca87a921767926 +2b1605c628323a47 894b999da14e6f77 +2b1a3ede67b3d2a3 d62720e980e899fb +2b5071df563850c3 acfa681bf5a701c3 +2b5faa610119997e ca6824e077401a10 +2b6aaddc8b3c59ed 9901df07487d6dd3 +2b6cf611e4e7afcf 7f9a9d8c5bcd73ea +2b7071b4c3a799dd 510ba585a56c30ad +2b72bd4f167f75d0 9d28961a8e442c71 +2b759fd7c0da427d 3589e6c34df09e6b +2b7e92af1a9aae35 d2559262575134ec +2b87e50306b31a72 99afb438f15156b2 +2b934fef8fb93d8a 59bde8e328eafd9a +2b96ad72b8833911 817588673ab68aee +2bdb3934bc56ef0c 07cc3ae218507850 +2c03509a9d2738dd 11f1608597d1c28c +2c1f5e9144d97f8e 671dce58f045af8b +2c251d609e2b32a2 7feb29bca9d520cc +2c2d17806d770a04 b7bcb225ba4e309a +2c313b67b15e4044 9cfe4a1fccc9a803 +2c32560070d7599d e645e70858716c5d +2c41989563fb0caf 8f1fb66926143880 +2c493638dc58d5e1 0ad54ca832ef94b6 +2c934365539b2c4c 53299a2edb707c0b +2cdfb947263949b5 735a551b49cc8dbc +2ce489b307579637 3efc8300bc280c32 +2cf22fe7d5658571 9455e78c20b9c7c5 +2d01a728d85efe85 f1b8e9b2412c34b5 +2d0af2ddb7e9eb38 68d2d574ae3cf988 +2d461ee1e601f40f 6a5c68a937fa9973 +2d568bc5fbefda80 cd1ebf3caada9de2 +2d58ed9746dd200e b59bb8bc646e3e6d +2d80ca81d3ce7236 0d389d9b49556533 +2d822de106f1c1b9 5e47307c8a993af7 +2d925832565fcf67 45e6984a39ab3212 +2daee4707f07f270 4dc87cd09da6603b +2db9de9567006fea df30ecb674c289df +2dd4d1b3a3a93bad 5efc6a6fbe58239d +2dd77607bc89957e 2e87455cdeecf341 +2de3be6ab0ebd9de bcd4d4be2a88935a +2de7021b44575d03 fbea926a9615e136 +2dedf714e70a7ea1 e5ecfd81c36e366e +2e0d863f2c524a59 8a416191686a1f80 +2e13cbbcbe0095ac f1c4987333fe6dfa +2e52e4f272c24a10 1c47bfe75defce30 +2e8a6833dfde9761 008df9c2399a8342 +2ea7596cac50d168 5d53eea1e078cc0a +2ecfdcb9ea0cc70d 3747933af102f97c +2ed7b3471b988297 e9366a307f0ddb07 +2edec6f0419e5916 18519e993b5391e8 +2ee8c08b5a572ac4 0a2759e7c9385e6c +2eee5b0d82757202 55a4c74c5ec514bf +2eef564aaebf3e6a 11016e649b489c74 +2ef7cc83b6986ad8 f285a7332e68e2c6 +2f2883e916ce4ec5 7c74623d06f32304 +2f2fff14255b8dfe 8aec5c057f9b7533 +2f38c46af0369599 527649ba58dd31b1 +2f67c55db7eb620e 87f320bcd7b1e5e0 +2f7dabe1ba7b83d7 fdf3998156a6de51 +2f7dbe9d810215f4 7619decc4c86f2a3 +2f91eb46842dd12a 708cf3df2799201c +2f9b93aff5c3a58a f65416e305ebaeb5 +2f9bb78caaacd38b 51b6bd93b08f044c +2fa93e519b7a70d6 3a13078cdc01a29d +2fb70ca571d932bb bf2e5141564a8e25 +2fbdb48261be9bf3 b55e2ff161b87498 +2fd9481a5bea77af ed65d6634f4681ce +2fdc05323d018230 d2bfa8f2a68d59d1 +2fe1dcac2f4b742f 9137d39330b44a88 +3025e76f14b69315 f20ca5eda1923f72 +3099cb1b4ff3ac7b 91581db0a51616f3 +30a3d4d6defc8d2a 38b97dd5885a508f +30d4ebcd100f0393 e45184f299a46ae4 +30df31a5d13235d2 a4a31e09ac6e4fec +30e4b671e5f434ec 6a03fcae102f9ded +30ec16a89541db24 37137c2c8e33f52a +30fac3990292aa34 8d200b1a34ddc753 +310ddbe463c8e295 5bfff2033a3578c3 +312960fd81f10d81 eb47cd10602aff0b +3145ffe2aaa0e332 f85fc754a9c7e3bf +317f1faf42decd1a 73f8b71a25eeb250 +317fb910cda4c59e 2af4c108ee7449ab +31a47b4f1eb89833 040993054065a830 +31a8d40f82846fe5 128f86f250386330 +31cc55e53f8e0cc8 596a1fed53516c80 +31ce7e11cbcaf859 f2a50d7027885708 +31d42c3f3181f0e7 bd9be7a0f4c1c5f1 +31ef84ee0614a38a f8ca230e85e73a85 +321a1300b3ec63b3 ceedd77adb97ce07 +321a1ad675b70087 44e76437e5a666d8 +3228fa8c43170b3f 10bab77348a47065 +324f40de901fafcc ef9d9f947a41b077 +3257ccd80dcc8e22 a93c664f6f1e9e3f +32596393f2ea654d c6cc2dac01287ebf +325ae1da2755b3f9 091ddc777691aaf1 +328d162101195977 fbbcf612745d60da +328db6689ae2d4b5 2b57c4f7b89690d5 +3295f226d3344b70 5e774fb18c69d6e2 +32b8897df248096d b87e4528b1b007e3 +32bdf68db42e4d35 c708fe2797d68e9c +32d120a25e4d202c 1efa0a9bd9d07735 +32e0ec5d008edb34 20c97000d15ddfb2 +32eab155059d040f 2ec17fe835ee9757 +32f07e8510eac6c8 8a52064d8bfa3765 +32fd1fe77c9b3a5f 9e4547e2d1b445d0 +331bc8bd4e6dfe3d 5fa3ed273fee03b9 +331dcaca797704b7 e1d6e144572680d2 +33250e1101a0e422 c956061f2f64aed2 +332b7896ca60b05d f17b94cd336e93cc +333f479f8ae83b23 87cace27b7c9b3c9 +3385a08ea2497d06 ede2a96e1ed78585 +33c29b8f23bd3aa9 76c08caec08daea7 +33d2ea147de893ea d20c156b1d171b3b +33dc3ac6d20255f4 64298f61f0089523 +33f65e4de4f0859c b7d0c867e20fd4ff +340b0689d93754ec 79e5717ec09158a3 +341eca6bbef9ff7e 066bf2b9376183d5 +34275283d67d69a5 39c2d5025ddafbc5 +342de2fb26f14e22 bf897e30703f8b4b +347392831a07429a e4f18a58226881c3 +34aafd1d0ebfc89f 5a8e9a99a68a3303 +34b45d8461b5b075 8974a4176322ca40 +34b77eed71cdc35f f8e2ac44f9cd69f2 +34de6dee101af4ed 60017bcb8587494f +34dec6f7a3fab760 3e0b8c024a0bb1bf +34ebef23bd828837 518c775b00dc14da +34f3652d00b037af ec77f214dfb6e5c6 +34fdcae80d451315 bc4c5fabbcf17475 +3510b0f3f1635eb2 fbbed2caeec94389 +3512a01abeefade7 3e3e9ca35be9007d +3538f5ab6588a756 77e864f1bbc91c70 +3569469fd805d104 f8d126ac1c346239 +3588ccaffdd398a0 644527b81c77d266 +35978e1a9095afc9 68515baaa86bdfed +35b03320138ad2af a1502d6df411bd9c +360186441914d7ae bfdef15c7920cd04 +364ea45a475b4ded e5134814da1cef1e +364ee14241a4adf0 4d4bace31aa76847 +365fffdded42ab25 b83976429f438490 +36632ecb3406198f f5116b1c837ba903 +366526db09046367 b51b3bc77e45cf1d +3681187d4209f47c 4b9b3346272daa95 +369209293d5d2327 de944e0608f4eaea +369d281ceb4c4a25 4da71291aaadd7c5 +369ecabdda35bcb4 85d882d92f9f285f +36aee1d8c11588f6 92ac01fb078f37d9 +36b3e63ba54aba9b df83ad6efa6f965f +36c3e571845c0e25 3bc8a51ddf6212a5 +36d014b83c54f350 ae307855b72945ec +36d4176c91a30607 5dc0da0eceacbf46 +36ef5a2943d74ae1 27a8cd7b387231d6 +37009baa3c2f952c 756af3f12ef275c5 +3729037a8f884a31 4041f9edbd620963 +37803ed22913eb3d 51eb2284d3305e22 +37875a395fef9579 7e4b494e4a6d974f +37a4bf11436043b6 5faeb858de10f720 +37cd1d98a806432d 5009ee4ecd45ff86 +37ecae95cf090934 84a82331fa3a535d +37f280838246bcf2 1139e6a538aa52bf +37fbfeb740d05858 f5bf454f0f6c4d00 +37ff1b92f5e4eed9 cbd53fc8ddbd2549 +37ff7a2e9c00d97e d1215ebf5d295dc0 +3802c1fd740fb81f ec54e88d0fc791b0 +382449b3c7bd30b3 38b605d1353354f1 +3824f53813b8dda9 fcdc5765464840f8 +383590ce824fcf59 9a2dec55815a1de9 +387338d0d7617d53 6f49856fbeef0518 +388f1345608b762a 90bc65fff4c215dc +38c05fbdc8f205b1 e25becfd5c61e057 +38cbf3408f75b3e7 89acac6d3322e615 +38deb85129fac5da 945a46334f1a2619 +38f12ea083173de4 1e3d360e77206012 +390e6b731013c3da 0534dc451f162216 +3926da8fd5ac954e 7dd205fcebedfce2 +3928871744ef9f65 429450d6fa1750cc +3939addcbe82e742 23baa5e9158e94cc +39430a000f1c3815 73cc6f662fcfbb16 +396dc4a6ea0ecb6e 0f776502dc8d77d8 +39787429404a3bd8 2575bf802f16fbd2 +397d556826cabe08 faf8d8e2d86cee6d +39865264d3b66ca9 d68432cd53f4377e +39903a0d576f05bc 6ff5d80ca4094fc3 +399150351393ed99 6ee2bdac789a5168 +39a282fc99b677d1 30248925818afa4a +39a55c72a69e271a 59d6429f5bac575f +39b4552615512ae5 4fad97330fecaf27 +39d29a71c08a9de7 ee20f195ac943de2 +3a00656238f207d4 2a0e4961bd892bf2 +3a0630a795ae6904 78d1d479c0ff8ab0 +3a21b44617555e59 ce5f43837f9820f8 +3a350046627d0d57 962094f28bb21aa4 +3a4af75a902141eb 89a2c9fda0acfd9a +3a6b4022ee414931 dafd1aaf4edfb7a7 +3a754b31d456b9ca 76afe0765e3e2fdc +3a7fd50b99bed6fb 7a19fe21fecde1c4 +3a83f18afd41ac26 eee1dcd8a46e58d9 +3a86c362b46ceeee cd41447884fb85a9 +3a91192ba54e4e43 731b1166202d9e45 +3a9a692264be68a1 34ef79e073bccb34 +3ab159b7c95dd0f0 b80fa59589616caf +3ab2512519ee28f4 204c94b6df69617c +3abc901c870c1b80 2ff6fb6e0af3bf03 +3abe89c3c0153e22 b3051d3a84bf8750 +3abf36f38c98bc8c e7424daa0f187923 +3ac528737c5a3746 3c61669899260269 +3ac77decb0cbdf16 c8b453a242a0a8a7 +3ad66c847c92081a 5f793427384bb83c +3ae7c93cdc96938b bc2dfdb043c34ca0 +3af018f4ba7b50a8 db6da68cca7c10c3 +3afb040498a11881 3c2bc83efa63a697 +3b08c9c6b92d3258 1a6b25e2c502dd6b +3b1273a1ecce8e9c 40a9c39cbde52670 +3b154e9da84f0f2f 3754a397e472dcd8 +3b2c432a3e1f896d 7a6fcf58df666fe0 +3b3401b097d7b1fa bd9024d6ca91c186 +3b3a9b4f4fade220 83c21f5fc9481fd9 +3b3d551cdb1deaee e7c12e8ff6da3a5d +3b59310f807c8e40 d260f2babe15c009 +3b79a6250d676a83 1653081ea38d7983 +3b993d6f7c707e50 5a47eafd91bf5f38 +3bbf256ab5615456 ed454e5afd67d4a7 +3bceb972e8f224dc b923c81e3252b3a1 +3bd644760dd5a407 9b9fbbb89accd7e9 +3be6da17824f5190 ed7978a366410bba +3c1ffb551b1d3b7c a9e2f51871be7cda +3c21a81af32a9ed0 41bead08808988e6 +3c24921eb673ba62 c85defc2329b7923 +3c2f947f88b04a62 c3d415473dbdd4d1 +3c48e3c0a779acfd 528327f8d75aee37 +3c631592a49fc919 02726b0fda404345 +3c67272ba7145d51 2f6969385d20aa7d +3c71ec67e9d091af 0da20d733d5c23cc +3c73a6c8e74e64c1 9a23b1f57635ed78 +3c9b7bf18d68b021 76a44db91d0259d3 +3ca9a244b6f2cd8f b2470d2de28b207f +3cd089f374f7d607 721ba29307a5114b +3ce47e7b980d29aa ea55b40a2416a428 +3ce69e89cbf5395b 5a5f0e4e14c71010 +3d039ce62023346c 9019213c87e2c6b0 +3d1babd752d50c51 7b16096ea3729ccb +3d20bb558e424c63 1ed3a17085c9135c +3d5e8d50d0ddc4e9 33951306b3167457 +3d75c31891f91616 e33732bbcb085457 +3d7c7f69cad63b3b f2c4b1203296567c +3d9fc21a0f154698 fa586ab91d0fe9af +3da232a300320b9e 43cf003efbdad27e +3dafdf7eb1f56dc7 17103a92661ddcb7 +3dbd35d07ab1c811 47b60a221eacf32f +3dc0295583f9d44a f2d5a9766d333d5e +3dc80e8703813b9c fbbddf11e1f6440d +3e416aca42041bd8 c5ddc684b86b99e2 +3e596421618da23e 9fd512637be35789 +3e6191fc563b8f8f cf108b28aedf4599 +3e685a223c9aad90 1d0c71bcbeb72ed4 +3e75b887ff111eeb 084619bedc41f2c7 +3e78ad110f975ae6 cbd8bdc48963f06b +3e7e6faef727c5f7 796259b60d77ed92 +3e991c57ff5f5385 70c58133f042356b +3ea2422b2d86f9ab 4d6de0e78cd7d152 +3eb87b4ee9274759 cd16e38f0beabffa +3eb9c1ed9c0f29a1 23c24fd4327ac18e +3ebb34aed273c071 02d053c94d73ee30 +3ec6930cbbc8da52 87679a2ab06a4cb0 +3ee1ba80075c803e 9295e931cc04a73d +3ee28aca3474ddab d73a9b2b10a20fca +3ef857e664aef540 1fd846da8d3ea940 +3eff034a96b2d2d4 72fd99811dc1d371 +3f02bc39838df056 606bf5185be8aa7d +3f06e7c308f04765 670c7975aaea6840 +3f1c20766fc9d1bb 8fc6ca17adf5b19a +3f4145afe10f96ff 8f35ca276cd098d5 +3f4885496b8da45b 86a58640e1a498c3 +3f4e32dd8fb76d66 4e9f671295e1d620 +3f6b6e6451b1b3f0 b2c026910c944d69 +3f7d3adf1f005d76 0d8a68eee6aa302c +3f892c559ddf354a bd210effcc654255 +3fab2e8d418a4846 51267cdde185040d +3fbdd7235b42a52a 00b2d034676e0ba5 +3fda0681cabe2f2e ca6d2bc5e28cbee2 +3ff3fad66bbf63eb 2c75b3d856c7d868 +400266988ea524ce b3ea5d71e2513774 +4030316b3a1aaa4a de56b37f11920159 +4040458775dae2b9 c162f036a1ca6bb6 +4047e86455a99b07 e5bb471e3eb75558 +404f83c976c6bd6c b6e61817a4392f47 +40794c0e9f328fdf 05227b31b1e3c94c +407a7629d0fb2279 8d11e6f51cd5744a +4089f0ea972dcb9a 722316134acadab2 +40ac47d68313057e d165c64ca74f2f29 +40cd8b1cb048b22f 8b0bb30a263264bf +40ebfebe581fe28b 6987bada37ac92f9 +410585c03167636c 9ed3ae9cae41b301 +4105c17c98df9b77 4a0ab60e6ea4e98c +41074c1102d82f77 ab10d7f8f9d43dc1 +4112d78386ac5f78 6a248750b3ee70ec +4135a60699d25c0f 73d92c2c5e293b35 +413fd6f9687eb439 696c4e7a0a1ffeb0 +4155cffae0e53761 ed96ad58a05501eb +4166d3060dcfb9df c4130f6f6b3a67c4 +41721674911fe602 d29967e4e2438186 +417bdb23fd07cdf9 c38812fea40cc2df +418eb50d53135d54 f3497b63de926c97 +4195e017c05ec113 e7d51d2c94a77240 +419d89e03144801e d6eedf8d349ea250 +41b06ade71a9e4e2 27484e32842ead17 +41c180ca7da99171 07bf002d54dea3a2 +41c2796506348522 d936af64ff5a2d4f +41c38e77de66d6ca 804b6f72d16e1292 +420811d1d907002e 359c09525f6c3246 +4209cb9f4b1c981d 09d8e5c0b0447603 +4233fd4ad7d70c07 19f844a54e19bd8f +4240cfd375e322ba 92b7f172a557f5a7 +4251e194ea2d3f7e 31a0b93d4f874952 +4268bf176064b815 0d8d03c6f71dc86d +42913014745aab1d 58662527092b27ba +42a74c5f21ac8d95 5d85ad0409d033c3 +42b9dc6d9043ff38 41d2d567290caf8d +42c105a76a51c763 712ef53a7a394478 +42c2758fccb3532c 7be0b1a674ddfdb3 +42d1794725f9e065 2b286bd799e64523 +42db8a61c1877ff7 f5c6623e3c1badc7 +43081ae8229218ac ed93f48312fa34ed +4309efc75b64d77f 8a9f1adaa76da842 +431fb10dfe87bbb8 df6754cb47b9878b +432dd1a064d4a57e 4c99260ea6f8a29d +433adff1e9da3dca 3884f30f92835057 +433b6b2c5f88e8e5 c5abc2eef3fb2124 +433b9d720db2c219 126b921294890124 +4340c031bde96598 bb881f08cb90f1a0 +43476324e6fb965a 8ec929dc98b71e2c +43659b25d19bed6c 59292eacc6212e94 +4387add2f959bc64 a2b945f94a7dabc5 +4387e1f4cc8e8dc6 5ec2214a2d5e92b5 +438d296e97c33a8b 555d40a2ecfefff2 +43bd79e698d0784d 391d388479b46614 +43c31bacad4f4323 2b18f8b8747953e1 +43c94cb00d47132d e025f070e59aae73 +43ce153fe5ef0bf7 31b869f5ed2402f6 +43fdb5f9bfde7117 e9efb8140d2ee742 +440075126edec49f 92cd5b924eb3db33 +4407087767e00039 5d545e4575e3016b +440948225f957281 1edec2481c0c00e6 +4433aa278f35ad23 3b6aaf0d8ab6f465 +444d54ade2f06d72 d87e59abb804c9f1 +44556882267a578a b48c1e682de16a90 +447ea324892e0617 f5f3bc00033eb7a3 +44a4844a552002b3 e2da4195d9a2c361 +44aad042df6429d0 3e5a5cf07ee31530 +44b70685d1f6f38c 96da85ca29e6c0e7 +44e2ac7f83983e6d 716c723c20d84a9a +44f52e1a6ba950ea 4463f636bc815b9f +44f55fa413180961 7b1f1c866eabe6fc +44f6dde7fcc32a6c ce9c34f8c7775404 +44fa685814db99da b90a8bdcde945183 +4514ae3a73bc1b19 c6b1a8615bfa83fd +4516a9d4d0d929e7 d1bc22301d8a7c97 +4546242b596c24cd 12a96c112b2e4f8f +45527aa15ad7a3b2 9dcec11059dffd86 +45610d400bda9659 14baa4c080205712 +45ad8f5c29832640 7d9e8a7238dd362e +45d0c1e98f609151 77c00bf3a5328661 +45e0d7bbb4aa0531 73a7fca74e7582d6 +45e437ed6f10f588 d3626627bc6c5629 +45f4ff0091cd109a f61b1d651b58f275 +45fb31b87d6e4092 fa4cf8be966d4949 +460ecc6c1ab6fce1 efe1f8659b1a920f +4618d59354ca5394 29177da0ff328499 +462aa6ffd298b36d 67ab3b68fb02d644 +464633648cb12387 4fcf47ae3558aacc +464ebcf168438724 b4d78f697b7ece1a +4684e50618122629 621640b0f3a39c97 +46a9114284da0aa8 15dbece2bf86f596 +46b38e1cc1fa8d6d eb6c7181d015abcf +46d32df104ef8b08 131e49ed85cc18ab +46e0f3450781ab6f 02e97e73d2774705 +46e151ab9d34a16b 53c7716b89ddac7f +46ebc18bf2d970ee 97288de8c025d4d5 +47290b5a0d8af601 398a86560938651d +474bcca94592ae9d 587004df3f341f3f +4751df16672c92c8 de3a502917fbe755 +475c0434d16c4076 00c224a4c0d01c1a +476cc3d56d8b9d06 018afeb0d3ba2dd3 +476fa7729c39bb22 9b082ea706457588 +477132f960748ead 01020c99813b6317 +477405bf7aa4519f aff6ad6c43272642 +4774941fbb47fd7f e9f900b94678149d +4797d8f141b4da04 cab11ce40e6c1674 +479e9f98ce47556c 3b36df5dcbf36897 +47a1e39dc22fbec4 5ce77d0e7ac01edc +47aab8e3800b1ce8 83154649deed4b4f +47b1197bca506b44 d4a9ac45d81d97dd +47b1a5d557796aab e9ed62129d5e9359 +47ba14d326e51f64 111a7825ff6fec1d +47cdf2afd4eaa7b0 5a5a4ffddecf054d +47d8e41410e9f509 9cd516d15291ca88 +47da9c1fadfe2382 05a4af3bf40e9083 +47ee1618f510156c 287bf73b0fd22386 +47f7ee14191b1b28 f4a1b2f6fc859935 +480d9f43cc80f2ca eb138e26bfba48be +4810f2a149542152 654d2bf9ca053cae +481a668a5b44f0e6 c3b152ab1456e3cb +4838727c8d61ad12 564606462c9ff288 +48560808aca72739 c815a289b983382f +486ac14a91964cb1 2a0e256f9c81cc5f +48721a0f4aa32673 0ad686ee2541f28f +4876aa185b47d522 17aec5ca7530d381 +48799deb5fe91024 94fdb0ac96c8afcc +487df28eec711648 02153f8577135589 +4897cbc9af1c231f e2a1357d8dd7609e +489ab60e91a568f6 03e36a62bab4487c +48a7769eaa1285be cf1f8823961cfae4 +48b5d23f56a7f64a 89d9f78e8b884529 +48ca9205ebe4b15e b971ff14f8bee12c +48cdd62f070d3bf1 deb3b0d7ebda280e +48dcd48582cff290 f6b77b93f9028e66 +48ea79852276430d abb4a68e2d9c4dd0 +48f8e135e0ce4e72 4c4bc5e917204af6 +4917499c57b20069 9cb42cca673b93d6 +4926a229fc77a7fa 7916e58c90b089f0 +4930133c83958393 cd0f69592c6f1bc2 +49702156c3a09032 8faf0d0905357793 +4996fcbcededcec0 da26ec7f9c5ccb5f +49aa5bc398943d54 ff29bfe0db274cd5 +49d0db663c2e3a55 6dc453078e83f6d7 +49d12fb8ed4861dd 0e072ffae5d1c33c +49d1a3e0cce16f7c 29693dae4b86bc2a +49f18efbf5d19809 8af7923086f90507 +49f6941da238d6c9 70df94393cd78407 +49fb7756df2c9698 0e7e2ed998909685 +4a0348788789b85c 0dc9b3c86b7a54fa +4a0fbccd9820bde4 00393488304da15a +4a312ca9a025bb35 7de771c716617218 +4a3a7ed413c74263 8885130745ce0727 +4a450c5b7faa30d9 b0b0c223aa189c50 +4a563342d1d4e43d 6bdfc526e7467c82 +4a8ada452321b804 28ce6d26faa80726 +4a918d9f1d0f81a7 624d373671fe5583 +4aa5502fff51d0a1 e47462a3a064422c +4aab9e7703709986 b2fd350c02cf4865 +4ac57f68ac0e9c15 6dbfa58575c54a36 +4ad133a1b73271ff f499221f7f2cc301 +4b2fb2565b4eeab9 95349f63ee3dd97a +4b50b6b2edeb62b2 dc95c430eba91109 +4b65094c0d220142 1fe60d2bbfdb92ed +4b6c0f2e9a1c1c7d a5b23750902a8d36 +4b77cee8f36507fe c62ee19ef9d586ac +4b77e5deb602f51d 21e890b531f8db99 +4b803da2f9fd9b01 ca9b9ac399dde316 +4b9e75808b451aa1 db9f9b891be48243 +4ba60e485e74a1d6 1cc960f2e77800c3 +4bb68e455a18495b f03f6a7363c33e34 +4bc0865c3848003b 403b3109f8d51719 +4be3c2d162feb2b0 d88c352befe117e7 +4bee92fb0fd27a3b 6db95116d0683e1e +4bf630f6bc8fc35c 1beee9fb55b40fb2 +4c2e231fe2732724 56326d9f3909feec +4c45936d429df01c 338b7d6ef13bffe2 +4c58e115ce55e32e fafd0d07b63d7131 +4c6784fdd49fff3d c7c20455c9b75036 +4c681bcdbf40fe44 fc9913723bb7ca71 +4c75decaf4d0ccd5 b531b89918347046 +4c793c626af1f255 a1eeeffe41529802 +4c84f01e1a07d0b9 c7786576dbbbf3a4 +4c86df48d7e2d470 c43926556a7b27ad +4c987e42c65901e8 8888dc19c87bff08 +4cac1d5c7267b3b4 94ef7154138e0b76 +4cad8728bb473c80 2b8a033b99e57cfb +4cb8fc33832d1b88 ee1ea5f6ccef63b2 +4cc56f326b88041c 797572c4de66fd3e +4cd226491211688d 73099c9a8dbdd3a2 +4cf64bf38fd1b13b 596665376af6a017 +4cfbaeda6deb0f05 bc26ede4c8fccf16 +4cfdf66b18f01406 1e4c89a107a8ff96 +4d23f5e43e69b492 48166d0c2aa868a6 +4d459a1f05c80c3b 76e75b2af7cacbaf +4d48dff2fbb97e77 bdc55cf1dc869789 +4d52aa7e13dac3a2 761b9924ed800df5 +4d64024933014030 1297fb51dfda53ad +4d65a994d70db84d 4dc962ff4222b01b +4d84a44f531ed9ef 19bcf7dce513c7c4 +4d9e7cec54885592 0435fad8af26db71 +4dbb3aeb27e30607 be7bfa487075c8f7 +4dce1d4df82dd067 9641b1cc5208aa22 +4de8f90b8fb0d6d9 34437020d2bbb465 +4dec28ee37f10c6c 66ce0f05358885c1 +4dfc4621ec8022a6 d015adbefd1cf478 +4e00bafbe9ae99b5 6bc2dd8520135f13 +4e0ebb223e120943 c86a5e34aa904831 +4e2fb474e997448f 93854588e2dd4c63 +4e407ef93a3087d2 87282d54c39d35a4 +4e551ede4405f0d1 1a9bf0c35d92f55d +4e600745070b126d 0f931ab6a886e9e5 +4e63dacc6937d8d0 13c669b936950ee7 +4e6f17b1b4721201 b7425443ff57a931 +4ea27896413c952c e177e6a7a27790d8 +4ea6e06bfea0099e fcf2779e6c3cc458 +4eba7299acd92321 e05c620fd23ab121 +4ed230fee3311079 14e2c65260c66898 +4ee21eb400f37418 8adadd67129bcf32 +4f141eb2663c3e1b f87243655bce4fd3 +4f1af60cababec4e 0eae68340f3b11d7 +4f282821913266f5 8babcc07d208d4ef +4f5ba9d8d25d5ee3 a0ec57913992ba25 +4f65046a3417aa3c c425845a3dad03f4 +4f673315a2a87ccd 625698038e28a28e +4f69de48c2f50961 e47deb7d3689fc24 +4f6a4d8c144bee69 632b9fa000fc18bb +4f8d301a6e0da088 8d5bf6c46f79c983 +4fc4408e5725ade7 6e2e1621c7efac0a +4ff085ab5889ccc2 2aca05347f5efc81 +4ff640fbe1244bc0 57fc3e513529d914 +500121ee95163563 dad42e051c899a7b +501671d663a6df80 857a75ec896326eb +5029d0dcb6ae9fbb f4b054ba9385a5a1 +502c2eb07cc483a7 f21514cee0a69e0d +5031dfff1c257b24 0a3005417b94a1e2 +503a5eb723456eec b1504f6f11ad81eb +50457cd879065472 2b71fb8c1f73f5df +505ad2bf63a5db9c 25be569dd60e2f2d +506893d2633c2e2e 236f11a556905598 +507cb9546d7545ba 37b51966e2275902 +50bee87660a4a564 842fb61ff9a896e1 +50e484ea48a0b9b1 c59252cbab55a09c +50e53ec79b8860ea fe9c17a5300f7041 +51132bb87793fee9 d4e2052abf6614f9 +5117e2a842e9b437 142045fd7ea7f1a0 +513ed7be63657884 1950f3ce698e1e99 +516c384e7544561a 445ddab1bcacc7be +51786cccad68c8a3 2dd75f596252fabe +5189175aac8cb983 d4ea17522d1d9ac6 +5191144a3f105a2b bde7ffbad9f38d3c +51a4fb382b4469c9 dcaf6ec8df9f4214 +51b7641a899c9327 214c9a5f35510208 +51ccbcd029613c16 f396c83dc7d46ca9 +51ea0323ce5b3756 5297e0e5037ccfda +51fb0711d3b699ba 0bbceb91b0013ede +5200c9f1acbc299e 0c78a548187f355a +520ee1b4d5487283 ea41468df158732b +52170b0ad10e8c37 c182ce0adedbfe4d +522abf767ba78f6e eeb13fc6e8ff822d +5230834d9f501372 3838611add722901 +5231a43e0b3c9da2 39c52926057bedaa +52417747be3573df 091cbb82ae08bfd5 +525efb260f2a1f49 2103a3b0667aa05d +526df51f2bf43ccb f236c754e9bbe003 +527dfdc10b412932 4133f297c3e4ec70 +528142667a3a6a62 91439261fcadd224 +528532e2fef93b53 ba57275ce1ec14f2 +5287f288098a76b8 c5545e6c3d52ebe8 +52882407701dbd3b 62d93d999e232219 +5289554760b43b1e 63358c9f2832d33d +529fe30a1b9bd33a 163befa83210a9e0 +52bab27ead33409d 6b85164b5c9cb22b +52cb57b41d2dcc21 a37e28688b6d8f40 +52d6bf22d13713d6 5f6f2d1ad8a617ce +52f3db8e30c17e19 2271027388358fc0 +52fc4d740991fa55 5bdc932aac8d68f4 +52fd1e8e7486d5bc 3d38b0f3c958f505 +530f3fdcd058307a 381f9436d25bac67 +531c4a13291a40fd cd96e47e3b4b717a +5348f5464e85cfea 1975b3cb70b9d93b +53560e11ffbdde3d 7633aa32639f7a30 +5366fffe3b3f93c7 25071aed32290ac4 +53ac7a956450e59f 643b8cc443c2e6c8 +53b891c2b7589ecc e1c508e4ddc896c0 +53c6ec9b95afa968 fafdcde3a731fd18 +53c902f600b06d3b 62d7c1e71e78ebf7 +53d7054f6b484580 2bc82fc994ab9fa5 +53ee6c66f32d26d9 6ba7bf91c8caf459 +53f5c40acbf3acff fb89fead70f802f3 +53fa62033273eb2d 7373361898a1620b +54019f39ca8c364b 77bec66cda36b42a +54022c3696d84dce daf95eb9425e2197 +5422f2847c2884ca 574e66f73da55512 +542c37bf022d714c 1c18b79a9b311b57 +542e208d5b041957 e003f6ade899a85b +542ea6807c3391fc 1f1e8ec41760363e +543773032a5c7d9a 0401fea54c9ebea1 +5439f9c15fa28e81 33b79dd2fa4e7016 +544a497c4bf88b40 30e6b20f60a701cd +5451bc97eca61f9b d0dbaa7c3f9347a2 +546c1c4eecef7321 c2566051a3eb6e81 +547f46a7e2d243f1 354eb801bd3c82c4 +5480f489c2e7d4e9 e31ff8b84a1fa7a5 +5486188ec8f0fcdb dfc65d7347d7189c +5494e1866985d551 d932035cae2c305a +549f5e42f98a4c7c 55449e31535ade86 +54a0e55725a32c0e 5db212359bdc6bdc +54cf07f00b43a257 05e62a2d5104d86f +54d3fc8846edd4f3 b5d0a06b851a95fb +54dcbf3038227b35 bc4c18910defe8ad +54df432fb25c88bc 1fda3d77f4f0c5b2 +54e92238c523b445 e4628bb493880bf4 +54fc7a71b92139ff 79dc0c5ea970be56 +55030c16aa62288f 03da0d673c628185 +55262be8d343b499 bc8a1cdc1d2e6b14 +553c53d48b266f18 876519768ff3ebe0 +55437bdc89f7e81f ce446a30e2e22268 +5543983a394d7238 c0928698bb792b19 +5543a38d0d24a7df 73280874598d1c8a +55533032625033f0 3f6714ba02fdfdcb +55677b9610be38f7 209c2736891e0262 +558eae093562c814 b10755e108d6e400 +5598bc3fcd40bc3a 22a154bc69b69f69 +559fefb4987bb459 1136b62af6e378c1 +55a5256f96d512bf fa13f16bb92434c9 +55bf63b8875413fd 3a5217ad19ab59d4 +55cd6d8398523775 01663fc0762e7277 +55fa0fd8647d6a77 238f8b02f68f991c +5608cf94101958f7 abda6f0bc006f2e5 +5638715aa8c3b04c c192237dbedd5e58 +56421f23d721f954 b3969ebd64c5baf1 +564ba21355e0b2f4 d8a4e45697c1ba66 +5651057fe97b7f8c 95b089787ab7bb48 +565df1e10c3230e3 ae1a3d24c4d93e07 +567361737007642a 9ce706665ec6e07d +56852e938fbd90db 3e3751f5aec27817 +56894355c1b8596c b0ced3fb715f0753 +569e774b04a47e5e 354a64d0eb5c41fe +56a3e3fd7ecf3680 f5e67fcedd1aa48f +56b257caab48f1c6 d5ae6cca25182f4e +56d3d205fe14631d 29aad9f155becb6c +56d86d05eb956726 1aba49f2ac17a1ca +56e201ff1a040d01 c94af0fedc9af04d +5700bafafe1d403c 84455dafed808012 +5705b98a9e4aaf21 2cde140a7ab135cc +5706437cb5ad24be 53e9f36fd284d7e4 +57145b85b062eed0 ede401ad1a511571 +571e3eefc4be8d04 1a2d9a3795a85a50 +5731fa3be25c0c14 af44efaf4d46ddca +57713ec2ea5975ab 558af2542bddbd27 +5777906422126e00 f5b064324092d69c +578096aa8c9e9cfc 641496696482f823 +579c8bd3368d3e84 52f5d2717f0b5a12 +579d4b923303a277 d421d7ea27633612 +57caa25d697eef89 bff2dff2550e4638 +57da1145a7051841 4aac307bc4fe3aaf +57e630e406290dba adff56c580f3e16c +57eb2627121afff8 3b69fe9c4d068e37 +57f2e758bdf8c592 5adb06070cd705eb +58265b9c9346ab99 27961bf771ef2e02 +58286520e060ab74 543b2edfbd2a6c6a +5836d3ce0a4308c5 8965ea8bba969ed4 +583a55a9ab585735 5b16d0cf43595f62 +583bc742020412bd e2b6ef8c16f4b20e +585d5c3ba12ace52 ba216ab296a616d2 +5874af60e87b5fc8 a22cb6a6e048a8c5 +58850f9bc48710a4 7fbec602d6bc4ad1 +5886ed11ba8e1d27 b6904b61f4bd4984 +588ce8c03270caf7 97604fbaea9da321 +5894e06041f263fb 2c1f12181e4a3ef9 +58a2806455c5c1a2 b1efc992d48c1663 +58a3e9b92ac47212 79ce39ae52346d5e +58a54272ab75d8f3 08c0a4b39cde6d35 +58a7a0ae25b69fe7 9b1cda257c591e2c +58ab0246cb3019e7 4ec5742ce7d4fe5b +58af792e8e680e77 f7d5d4c3daf0411b +58b38dcb81ddc582 31f8fddf881041d1 +58be6528adf1438d 94231bc07b809fdb +58c14166e680f583 f043addd4098da1e +58dbac03784a2e06 d6c0aa87986a258b +58e15bd9ffafbe30 b539435f695a9e9c +5924bac752f97b77 07d07198dad3feda +592740873eb20908 ebc05eb910f8661f +5942017987a75dad 93fd2cb69bebf2bd +59455d6258083b77 976d68424e2aa890 +5948f76d923fffd2 28b77f0618b164bf +5955f23d69a3f98b 9b0040717a1e61f5 +5967a41a80ea778a 93f9c4dc8446b523 +597c503ed0ba77b6 db18077387678bb3 +598852fd536bad4c 6740584af2e7c372 +59c1b4e2ccf90a6d f246e8fe95473b80 +59c588d510591e75 267d33815da7d441 +59d95c9f142c62c5 97b0684f5378983f +59e5438d9d42cc36 69e599ba947bf4e2 +59e7eabfed489074 afb654fabd7fba0a +59f02fe0f046de2c ea924f5a2758db90 +5a7a0b06a982aaf0 185afbbf8dc22820 +5a93e959061807fb 09415d590ad0e69a +5a99f63c5f5c4009 2575269ed479046d +5ac78e0eec346c22 db63c88da0942926 +5acdf4ec4fa90a6d ee892b118506dc5f +5af8d25470e491c3 7715cd7e7aed73e6 +5afdc63f082f813e 620fed334b95bc75 +5aff186238b7e52c a24ba6eb03769cdc +5b0163e910a64b68 a0faaf657099c5e7 +5b023482df38894b 6cb0b9edbe98242f +5b0a648e35155edc 4cdace6fce5144b8 +5b0b41e3756c6861 9e8acd0760f2c9a3 +5b0cc8c0a0d4029d 44a78bb202f77f55 +5b15192c91c253da cad6c8fdf4186381 +5b687a89b3ade756 bcf6c3bb21ddbe7a +5b7935c085603c48 308fc3c985686f00 +5b8104101001bf53 b17db2809a77883b +5ba85ecf09bdd9c8 cb11b766b518b9a2 +5bc8a264128db756 4f964f12cd4e2465 +5bd3e0d5483c632e b7dcd0070602a26c +5be3146c3e2119ca 66432a8f6c1ba00c +5bec4038dc41c46b 915f58201f7cb83b +5bf21e88eaa67d87 6e1429e11eac99b8 +5bf280655cca677f b1276b45db92ddbe +5c02bba63a5753a2 10901ae69105fbd0 +5c1884fb7b2b01a2 3b05f771f1a5a79b +5c1dc0cf442156e8 9f571e770c8c434a +5c237996a54b18ea a8d549a47354f68c +5c5674300be3205b 1a9ee21fcdc46cdd +5c8b0881a67c1d16 5fdb14cd7ff462fa +5cb1ebbeb0451f45 2fb969957f7ed0af +5cc4a17b64e38c50 23fe134b946357f7 +5ccfa32f0cccfac5 56755e90beba8110 +5cdfcfd741502e72 7612c1f907dfc658 +5cedca64d83b6e11 f8d11e2af6bfb52c +5cf844a788d706ab 626508af56d62e6e +5d0271f807ee1759 329c5778d4d38692 +5d11de462ba33742 cb3f5704fdc308c3 +5d142f257e9a1ae0 6dec811fc81f91e6 +5d2f8a542829fd7a 077d7bde22295cb6 +5d39edb9bd3a86a4 9de038501a6b5585 +5d464a29e7dba9da cfc3425e5a36a1d4 +5d47e4f3a15e472c b596ccf320c53a8a +5d53e276bf2fade8 f4ca2dbaf627a465 +5d7339e09e9b6990 bba0724fef0d9e7f +5d77cd2868b6a4ff e546a24b78aa4794 +5d90bbdf2e6798de 1bb886b0e0c33e50 +5d98a19a641db216 951e24f6b076b87e +5db21a305cdf8f5e c281098bd2efc4a2 +5dbd24d1f1c1807f de8ae368338f109f +5dc71405a57182b9 480842c87a78aa60 +5dc958115ea894e1 40406afba14b1daf +5dcf7d8d546dbfd9 74c8f48bd0f2b79d +5dd452add244d7db 037cd37b4649b0e0 +5df6de8c92cac873 f6938c09a98ac280 +5e1902db56ee99fa ba9154fe93a5e237 +5e1950f12af4ea34 c24719f9691b77c1 +5e2cfcaddbb899c6 13c986deab164b45 +5e3494b75a525b24 f17fc7ef596b96f0 +5e4c3a248ef6de76 e527862bba30e747 +5e921536fde0e013 c98a9432cd0d2a34 +5e9a103b9b477ede c48f3312e85e0b75 +5e9d21e02262ed19 e53001ccf14f8983 +5ea2495cfd60c240 56df79797e4cc745 +5eeaa47168de6773 2021f857007a9a49 +5ef5ec14b542ba48 7b4f3838ccf89a42 +5f0f9700d4e6c9ce a1a10e8ac847f6e6 +5f1ecccda2abcbab d0bf79f2fda22de0 +5f206ec4ca418f07 1f9b75a4cfe177da +5f239b6dfe40a46d 0ac5bac645c87585 +5f6e679df5d08adb 8c81519e3daa2493 +5f7e649dc00d0b06 f1379dfb2c178698 +5f89c40d694843ad defd008fb42035bc +5f99d7b3a5a6d726 683860433da47199 +5f9e3a664db53fde 6b7672a4309c66c8 +5faa996478963f74 bebb0adabefe9ffc +5facf013b99aed10 3508c48201b41920 +5fae706fed2344c9 f89ddaaa76c03af3 +5fbe5b453bc240d5 2296557dbc4043e1 +5fe57739954ff97b ba053c4215b5d758 +600c8240fa9b2d78 7ed3ba730e1daa22 +60161082b09a35f4 0ad6f3be8d76ac0b +602596d1532d604c f2bf032eb49c2fda +604b507247fb857c 01974789cae58938 +60583d09d94eb33c 5accfd8d17722085 +6061a819440ade28 09d274ea2b6ac602 +606aee5d876c84ba 996b022815b18464 +607d69dbbe986c4a 188a35ad0862065f +60869d88c31ba5f5 548f221d9e639bca +6096c63875dbe3b5 f3b99c49d11bddfb +609ef9a5c1b77d6d d3f02dda01307620 +60a4739609beff65 8de05248d11d6c16 +60c216ae419e98ab 3a15427216c2c2be +60e4f2a6561d156a 01c055bf5bf6cf9f +610319ffb4da94ed 3d039278c2cd112e +61153d402efb4a83 9067c42031455073 +61187db6de788e1d 2ae419aa22dc4b58 +611beb9939aed8a0 c0b2ccc84d8143ec +613bc1d39b2d5796 63ea04943ac4dab9 +613d41444638879e d382e7ae42b8c1bd +6144173f3c0217de 7860e9cefea7a3bd +6148067761525cd5 0a96b2d4278d679a +61569ed796c4e1e3 a409a7407c3733e2 +61686948244f19b8 bb25b4ccff567e10 +616d923dce7f05d3 11e308912ca78d2d +619ed4c9a428d0db dca3d5ceccf82e49 +61b09312bcf78a0c 656d5434c96eaa62 +61b8708fa63f790b de9be046bccf4ea4 +61b9b95e33a0b69c 1e44c92215c0a47c +61d6f455c6695a00 3cb330f3d6b9d04b +61f94298a0182da6 50766c72f4a84ba7 +620419714bc9f158 81056b899ca9c002 +620c54f3e6a1235f 5de1ef84337e7a14 +620ea4839737e145 27e69b7e3bcc0383 +6220c40004546db1 5c2569248e725ed8 +6224b13ce6a0621f db48073e961c9ae8 +623aaa2d8c21715b 1fdddbeb90f00476 +6241fac03e1eee65 5e662d63e022ea6c +62472f43d140786a 513046ac273f652e +62a01314c6fcc70f 611287f8de7c8881 +62a9d301388ee2fb 5c45c7a8b00dc1a3 +62ab2736bf85c1e1 93a5c66d95f4cb65 +62aeca86982ebc2e a81263ed3f18ecce +62c86102eb734be6 830102231edbb8af +62d14d33577baee4 ef9b8c2de04a2950 +62d5e2f02b798896 a389bb795bf7e0aa +62d9bc7564f15c17 9d1096e872662093 +62e7eb2755e0ec66 04eb79e0e41afb2f +62f15dce085179d9 78ee94c736ea1105 +630207b9bb7cd379 aedddc0d70e085bf +63086ea2d7211078 910fe0b15b04706d +630a794d7ec7501a 64711af6a63cf203 +631a5e99e59bab2b 642d5507e12e7a92 +63282bd107284cf3 7243fedb5121fdc5 +63294dd7f642289f bd959e018dd22e98 +633047eea0093b67 161f7b04e8859b5d +636cd738d98babe4 7b670aabc693e4fe +637df4b65988e803 ded61e4bfe619415 +638bba4994748ff3 275c01365299aad9 +638ff7161ade3562 59876f68b5271f96 +6391df4369d30e12 a940a803d4111e36 +63aa159a4b7bf5c0 ac24b32e18e907c5 +63f6a153ea24962c 99672b037a3dd880 +64006928841e0b2f 5c3196de2c82baf7 +6400c08370692c4b 935c152e4a194d62 +640368db560b2d3b fb5dde7ea7b5c2ad +641d46f462a70705 685e5f43b8676cf8 +6420a1ac270f8a1e dc421430745ed51a +642d26637caf6770 364bfe8f93f57c53 +6431fd5421f73fac b2178e79e26dd2c3 +64594ac7eac0f9cb cbcba0092202519f +646a9c8092fafb88 c79c23b138c1ba52 +647e0abbd1e957e9 c2037453fcaaba30 +649e2d8e0550a649 047c54d050a5e31f +64a3dc3f65b3ca78 77fa2a7ede5b8b17 +64ad1cf94c1bd4ec 3ac1ce0a797dce79 +64c9c11cfe31be3c a134a0c9df893337 +64d0dd5470811e34 228f38fabeac811e +64dad6caaa5f7087 b7e62e3d0be88f30 +64f3b1aa839287b5 2c4e281198590db4 +64fe8c60e2e4e47f 7645cc8c70539a7a +650220452554bb09 0054108d519b5d9f +6516d0d412c0d94a 9be6fa64bf531543 +6534b58e8a1c39b3 6203a7caad4c661d +65385b19eaadecc5 c3ac35cf794042dc +65398363b0d8dd7f 5525aedf1a4250fc +65650b10d273b74d c675eb85702834f2 +656baf01c5a3f63e 6174da0e29e2b86b +656c1745f2c4906c 65d845eee6786e07 +65a8001f362fcc7d 6046585526a44c77 +65b107c41f9e6fe5 edc2c43f98938216 +65c11e751596f3e2 7636e48f4aa36b25 +65c26cb5ae42fe93 a0be729621c9bcfd +65c4123f4d724d5c f5d9565cef08c4e4 +65c892fd43c443fb 4875f2b91057d91c +65cee06144d78a1b 1e411bf24d5a6704 +65ddf37566f7aaf1 54e73ffc08f4be0c +65e423fdfcdf0105 692c1dbe2a5c6496 +65e96ab5f30551fa bcc102ba2bff680b +65f0314c58681731 a107c45cbde1edee +65f2573918509a2b 4c5bf714ed88e8cc +660f203c6189a9e0 388e2d65554114cc +661aca313e5ed1d3 bafe5915ae05af8b +661b47ac590023ae 4245e7fd9af48928 +664a9d8284ed557e 9aeda20f8df38c88 +664bbc97831bc2a2 546502c01d47273a +66698158718c3f47 d70fbd356850438f +6691cdff0b1c6dac e76eb4ab317460e2 +66a12a5df6430dbe 62fb8b37d66ab80d +66b49ef8c3b3e79d 8f0af9d05f47e0de +66cd6dc20e3f4b85 19248cb7cfebf6a9 +66ee8e4560f013ac dbb5965393377d16 +66f0010300337221 d903e56623505cee +66f03c7be7c28fac a4dd5bebd6e8d31c +6701c74bbd22b937 ac2dcb0668288207 +6705e0ff4be76083 ae64ece97e71ffb0 +670a2d8a3ca943ed 812a16509cd57171 +6711160f9b48d72a f8626712ddc7e6da +672cf250ed6da5b3 2a7e981eae03efce +672d1d5e38b407e8 97c66855aff1f256 +673fca00097b0044 3c3149a70c29e7ca +6740eff4c8418cd5 1bec083455a27a46 +675e0f206a30e6eb bd653d350c9556b8 +67715e751626a411 49d490c00b1780b6 +6773e69de6e1cf3d 55d8e9f3ae1ea92a +678f4b5b3aba95be 1f0aed228869c4ab +67ba45567fd2d0fb 07c93b108f17a1fe +67d73dd3a9462d42 3e4ea8c7af61470b +67e7e49104d4cfa4 dc6d71e4ed077b4d +6809b0ea4a39bdb5 bf47d64d10af9b1a +680b9bc91bce520f b9b164a7bfe9550e +681781be1b243957 d43cdea6f4585d2e +68391dade9e175bb 5679036276f60d54 +6855d693c9163096 cb0f9d4bf751c294 +687555cfe0d10e48 8f1cc5218ee64063 +687711b0f8514f5a 355c455dc4a1d10f +68915ef27cd021de 2719c2241516640c +6894311f6f8d6d0b a29e4923bac6e2eb +68b87ed8e158d358 3fd7dfb3a431234d +68da16c36f7238a6 09241e1ba7a97c53 +68f509167fed4aaa 148bd57e57109efb +6905574fabc3dadb 32bf1d23a9e90db8 +6922b43bee38a0da b504d2ccecbb4356 +692d509ed7b8c530 b4ee77a7daf5f962 +692dfb82cf41d175 a56f57749cc9b37d +693e0371d2ed6c18 a85a5e25e90a92aa +69588fabf5068768 ec546551fde65b6e +69796014597450fe 98837697b9c33e26 +697cb8db5c2f854a 59cf4df361941d5e +698733bb0872c94a affa9cb281f3af26 +69974be59ab9b117 f10aa1232b5f64c8 +69c92d5073e00bbb 4143bc48046abc9c +69c9c09918f7313a 73a73f74a50adfec +69ec16c416d9c657 5417ff6c5dcc77ae +6a19aeb470921a85 32852fd01c4a49a1 +6a1c7009f6cd08d3 7ac4ef68a204d1a4 +6a32c992887999aa 2282adb915e1ca93 +6a39989f3873e75e fc1e3bcd9feb6813 +6a6d91bd49ce32bf ab7724ccd05d436c +6a7d56379f83f688 264c0fc84f49863e +6a8129993bfb9be2 c886f7c773514fd9 +6a86eff1d0b937da 93ddc9b32f0d2cb9 +6aa911489d2b5eda 65066fbe4d2bd297 +6ac4ecd142dd5198 cc3252fd682d3eb0 +6ac921521490fb8f 0b5c5af5fb23c6c2 +6ad8f93cdf437ffa d1443fade68760e9 +6ae15ced830710a6 9bd4b9e80c1bf52e +6b17d6e16977fe93 6a8e385a6ff2cdc9 +6b2667c03e638982 e90724dae9fd99ca +6b2e8b45a3eb32ce 6af70eb0b68cbacc +6b527d4e1f436106 152d1fc5744299d1 +6b5eb7df2faccf1c 56f6d37f42ba5f05 +6b64cebc61129af6 06e918d901e7cbb6 +6b749d05a7ead770 0088f3af5cd4c545 +6b806b7c0baf9df9 79326dc5dc43e1e9 +6b8a7acf27e7bbc8 2b0ad439a5193bfa +6ba5ccd3e46d6700 d274a240de5c524b +6bab8ee43f87b3cd 01a8f9a34b8a74c5 +6bac5a5fbfe5e643 a46087e5ae43befb +6bbba33548023cc1 c5cc9ec6b5ae86b9 +6bc7044f49cb26db 07ff5c72e1ebe72b +6bd7bebca8469ca9 7b74d30be00e9e52 +6be8ac01a06ec2c9 e6c35bd51537d15d +6bebf746e4839a94 4c603e42fdc202f0 +6bf5bc3ca3019104 aa2583799e3c90d7 +6bfe315dbdd671cd 2225103f34db8f36 +6c08c964bd41005e 4ec2feae89bd5510 +6c50b2d79aecadb3 ad074808b29ea99c +6c78cebe7df613bb a62b53728ccc1bc5 +6c8f8b3c569496da bf8e3b3ed0564f26 +6cb98f7d923cf159 7a31923164f24c38 +6cd07585b6d1f0e2 c6e7f28805c2ca4a +6cd6f9427405345b a17974eb96c6f129 +6ce3d52d730f36d9 d3131b4ca853cdc4 +6ce438752f0e2983 188e378178073af3 +6ceccf35f53a368e f0d6433dc101fd2b +6cfdbaaede02ab2e 6b2448aee256fa79 +6d01af715a381e17 7f09d5b9b00b31c1 +6d21fbc09b430f2b 1d5ad91c7690c1f5 +6d2de38c1f12b3d5 2c79e76db9ae8e22 +6d34f608a6cc6b4b 9ade8a2e1ce2f3ee +6d59dfc1f5764d16 755f7b0438370117 +6d5b2711a0328200 48426228d6926a0f +6d5fd520ebf4db38 bd66cd8561d674dd +6d60cb8dbec6a73f 33ab18e25be52ab1 +6d662103ba5d8383 f8d540bd5672836b +6d69b7e463b90d7a 576c0ddac2bd17ee +6d76ab1e45d94fd8 59d76bdba77f1309 +6da2b580b51123ad 864d2f14724c7c63 +6db4ef0ae2032d72 88063e2d4c9b85ff +6dbae85a978dc523 5566e2d47495c2f9 +6dd6552e37f71820 7108c040342b4ce3 +6df84952acd453b2 a0058fc097af15f9 +6e25212bf83ca983 0688d0fdfa1bbd61 +6e27739c5affe0ec 4edb038bd9e5e885 +6e65d662f69dd6d2 52a908e1559665a4 +6e8d52daa195d09b 94800cbedfa99930 +6eab52a79affc0ee 22136a4c0e2deded +6eb4430b557754ea 84d42e7161910358 +6ecaad81b3ed6286 2c597bf3f392e672 +6ed6a9168cefdd29 18cd976c37ae8221 +6ee0be87042267b3 726a642d7f462cfe +6ef0d1845ae9aa9b 3b208b64dba17de7 +6ef6b11a6aaf0053 ca1d9930df9bdd66 +6eff957955f2d4f9 3de66c928b9ebaa5 +6f05396c151508f2 5b7c8f5589d54491 +6f0e4c06de7c10cb c2abe7478f478210 +6f17c87b5a515038 83eb3eba0f80e2cd +6f1cee009f28b3c4 bf04aac249bd31ac +6f3df37e54d16546 df0e891e9af97851 +6f58d3df27424632 534d7b401283dc9e +6f8fb2171d074cfb a6110d616ca633a2 +6f9df18a07fe6ef0 2c1d706e9e4c6dfc +6fc21e44ceb4d79e e1885d621bff13e1 +6fc9f6068f195db8 e74e10a3f65ee4d9 +6fdb51c2b1a85e27 76c700730fca4fac +6fec016a24d6f7b6 0df1a0aec80af0ca +6fedbfd5f0d64936 5e0d1fd46716cf6d +7011fbe537fef15a 6727e63f0fcb6c00 +7017218c756cb3f2 ddc7b37f76dc5e9e +703f82ab1e60a9b8 a8170dab19b2775d +7055e66f895af672 da6ac1fc2a2a370a +7058fdd8c004c30c 30df31d67e133d20 +706b871255d45be7 803ed8943ab0df50 +707ef0fc0dc6136d 6be8a92ea1731095 +7098a71d02d6d9db 085c88a78c740f51 +709b6291ec9495c1 82265798381858a5 +70a8389e923d046c d4cfbd993c4c5782 +70b7ec3b79e8696f dd4530754e86f020 +70ba7dc69fccb7eb 987286f9a015c495 +70c88f398c2e10b7 5fb86634802f8b2d +70da587cecde4348 a63e92a089c38d3b +70dbc59946857410 3b609775424cce70 +70dff49b0395eb2a 23235beffcd7368b +70e1c049e9d35dbd 9c2a8f3c62cbebdf +70e1c86cb5afd02e ae9d780b9d41c0a2 +70e4f40bb888326a 09db639d75b8de97 +70e6875cb94107e7 1ea6c9ad5c1e9aaf +70e8aeea3bd08d78 db9a141748b1465e +71075ecf01676159 9917bae550b4a95d +711249399cbc59b3 e14ad685dd91f60e +712069571b9410c0 46894ae97bf11812 +712355089a257f3e 84d4a414156c3ac2 +71298c005030f156 15b831140962b076 +713746ce4dddf779 0c895c8296609511 +713b073b184216c1 dd5f788b660db34c +714c5ac7dba9854f 8d577a4af006dc8f +716822c6c8ab5274 4e1fed4417d178c0 +71908afba08b4f55 5ccb07c862ec235b +71a44259b4ecc249 d551a30add3f91ef +71abeddcfe85a187 d292cadd3caee3d3 +71b56d0155d17769 4c31ed4e9724d642 +71b726def3a066d8 970299481eaf7266 +71db45ddb6fce7bf 5fa7396f1e72eaf3 +71ea28eef43609db 9627fbb47a660605 +71efc64e14126d11 fafd15bc154a390f +71f33163403d54af 15fcbacd7528e1d2 +7210495b51636822 9c7cdded97aa23a9 +7238d1c4d38e5585 7a6a162b53c34851 +726317ab32461791 db3ea18bb6423555 +72716d7eb429acf0 7878224247cf15f1 +72748112269647ce 9d74e389babfff37 +727edd3a1fcc7b06 7bbf89e690d706bc +727f3638c7c63d11 0908652c9155ae6c +72b0847688c3a6b1 4490590182647ac8 +72b23ecde739b239 e598e1ebec4ff8b0 +72c3ef1099ef2dc7 cf3d54d2655b4a0b +72d455aa4085694a 14645355f4d94ab0 +72efaa8a7bd3bd4c c174ff528c4e3373 +72f897341c8ecd90 961ab567bea1bb9e +7301ea2a6f1f41a8 f95ed715809c211e +730dc9367c4418c1 9451b14b71dc2fa2 +73156aeb83a98e9d 008c51aecc239263 +731d99bcd0878000 8f945a567db0d93c +73243bbf50caadf6 3d3009d2556653f6 +7336adb5940f2e8e e25f4c9420939785 +73603f06c4f76dbb 67284449f4b6fdaf +7378516639ee793e 31bca235b872f1ae +73bc326fa11ba1f9 3d1214651af93db0 +73d1f149ab826ac5 02d07d6696c04bae +73f472209276a487 0350720364ee01d7 +73ff78ab94b5f58a da3e209cec0d46c7 +74056fe5b57c3361 364e1717b1a28400 +7418e63e3740c368 103ae8e602563141 +743537e1207f4da1 0e69228df5b5478a +7436f2c83297cf0e 4b4f498b8cb1dc54 +7445c254447af2b2 9b73df3dfa3a3b36 +7457a10b5a1ca008 2694f2b2c873b8e3 +7470161b513ab7f9 8e5849e2a49b0570 +7494ab33759421b6 ffe392a058320e01 +74a08086d3bf920c 6e7984042976c22d +74ab69ef7e1b6b3e 2095f1bf492ee67c +74bfe6591243aca3 5427bfadfd4a8bd0 +74d432b149279e12 1bec563d55d58114 +74dea39a57c84f1d c377e60b0ea38499 +74ea6b1babee18f3 9042aab30e8a1e3d +74ed5974ebc2c3e0 85316be7dfa56342 +74f0be72ebd84974 d762193453b217a8 +74fcea82a8f3a1a3 4dae14a8a165f3e1 +751a45dc311703a1 b63ed731de2aaf17 +752df201f51fcc4a 8455ce2170949b29 +752e1eb546b5b980 9e736c413a044164 +75357ba3fb4ac057 c4200610a877871b +754285ad30ce2aa5 31420d103b4cb19b +7544ca3b9824d54c 53729905a5377e58 +75516eb892c5bbf9 fc615b64d6754b8d +7565c207732b8e08 6136b1e49dcb9b3d +7576a88d50cdb3f7 4d681a957404e117 +758808b7bf471639 65be36ca50726133 +759d6d87b3ba0b6b 83b70b92355ab08b +75a261807aba6b9f 1016a7febfdf2ffe +7607ac418599ac20 f9ebc3e50bae66dd +7607c48cb6611dc2 929780d603a1a351 +760aeb2f98d1b1cf ad90d72d2e433422 +76749c3ca125cd62 6ceb8c62929ce93b +7676ae03ff79f0a0 3f5c9439dd73c097 +76a8aefb37373558 7b174cdb5e29a635 +76b5a12b116fa98e f18461de0888f268 +76b9f786eaba46f2 1d35f057b39146a6 +76eb56d3596db1e0 8413a4786ff06feb +77015d7737753630 a693ae02e005fdf7 +770500a62828b7bf bcaa42b90b40822b +771bc99c662b0ba0 c32f4569988c6a35 +7727d3c436ef68d4 50a83375af3a87dd +772f69fbb87538cb ce684a5ccb0a0c8e +775dfaea33800a8f 2ac3a323496bdbb8 +776cbacfaeafd988 c2894adb49934ab0 +778cc721843f820c 62593f24dcd7a5d2 +779915d10863c7c4 af17fa937b38ccf6 +779df702412051a5 dbaf1f66f0883fd0 +77afacf1e55e721a e7557c09c37dea32 +77b4c5a7d5da5aec 0c62ae9ab9f43984 +77d23cf380b0005b f2dbe8a0b6f5f7eb +77e9cc56d0b3b95d 2626ba57cc7b00c8 +77ef39878f4a399d 72147fce0bed87a1 +7809806921bd837b 6d6ee700709d7074 +781cf2a16c92d056 b6bb54600743604c +783504e434997093 4f0afca55b4770ff +7844e6d4aab7010d 82007b8393930ea2 +784a0529d150a44e 250c3a874640859e +7855dfe920ebd5e2 4ab8c40dfb99898b +78621c5604a57175 dfa7b49f08bd6139 +7865cac30f1111f4 7c5c95890f54b387 +786ed984ab4fadbe cbd3a60ade7290ae +787b1ae5f9e86ee7 04824d4981fcc616 +78b1cabed82af582 ecedf111967b0e47 +78bcafa99815cc9d cd806e16a3664ebb +78be51cae43abf78 68c3a0c73618b958 +78d5d6e1d6626bd3 cf099ad74df58160 +78deb99d08ba1e31 4885cf19fdfd5a71 +78fc0590dfa8f386 8f66b480640267e3 +790c8360bf9bce3a b85d4189bd7d5fee +7932f8ee72d582b9 30d71204983f7612 +793d8e852b173156 dbeb0dc1dc10ae30 +797eca1df452270e 579f27c01ce732f2 +79b0db2d77cca8b8 e05d237b7f6cbf8c +79be053ec691833f 630a97bcf6a19f6e +79cccdfb7514e5f1 15a961dfde793366 +79f6b7508b8982b8 f7d3a48d8bc55a4a +79fe10b7e2b01099 b3bac2ddd51a4b6f +7a09ed228766fba1 cca93f27eaa5f9de +7a1218e508c1e6d0 463ca6177cd28653 +7a1664d6f0515d6c e7b2975254b025f9 +7a169a665418adce 509caa12f4240eeb +7a16c86c3ba2b7ec c0e36be9f4410562 +7a1e5cf10031f7b9 00a98478afaf6da3 +7a26c877c1e2dafe 4c39f1d3853b0cd2 +7a6b734a35a8485b 869c3f2436b8370d +7a706bf63a69002e fac9cb37c110d7f3 +7a7e372527f616de 6df11971bfdfdf88 +7aa96af2586ad564 c6c8b657fe60be18 +7af5f57b1a86a263 51199d9922f40a1b +7afbd798bda1e975 a51101e2af0d680b +7afccfe4be5bca95 60d4ea74dab67774 +7b09e83c7d56e821 7cdc4814631d9caf +7b18e7941f448a17 0a51ba5d9e92cc01 +7b6c7c559704c875 c77165d3dccf2f66 +7b86b4e6c680949c 35501b9681bd5676 +7bb6b567236e0aae 5f564da2811dd285 +7bbba6d20097c575 024634ca3a396ffc +7bbe5103f6a0ab2e 08b5c7c936026359 +7bcfdb45218aea98 b80f2627ddeb0ab5 +7bd6f72b06522305 7e3cf3545a734a1c +7be07a457ced20c0 c6d474c4fbba7c30 +7bec5ce500d80cfb db4f90687993d06c +7c0252b67f38e2ff c78b4a222290f413 +7c2fc2a772a666c3 dbd8f13a09846c74 +7c3556b0b2f7683b d312bf924468a5d0 +7c36131c1d034cc1 4dda474764667d0c +7c39204fea35650e 11c27efbbbdad30a +7c3ca852098c1791 dda14a3d946db290 +7c5dfd92e1a7968a d6647e18539feafb +7c659eaa9c738700 9bb3f9e478a60bd4 +7ca2d6801cd133c5 b99032a5ec66fb58 +7cb19372485f1638 65aa6092e3947efe +7cbf35d2bc6345a6 43eb6146802e8735 +7ccdecdd6ffb52d5 a449a491f9d8f1c1 +7cf1f341487e3173 df361cf9deacd421 +7cf22b643695657d 79d21118ccbdfcd2 +7cfe6fa4be29b63a 45895116fd530f9d +7d23bb8dfca0a0f9 10cf569f17825f04 +7d31e8ddc12027bf 18b11f806a6ef888 +7d346739032d4236 cf8520928285399b +7d6eab097edba4e7 daf7083d722af660 +7d6f2c4fee74b350 bf97002297443830 +7d711cd10855b500 dd2b2043cc6273b1 +7d7edf1430eaf166 caa187553928eb57 +7d8cbe202440dadc ac2db78306f76132 +7d9d6d7d133dc15b 8ef9195432bedcf7 +7d9f3ffcc5e332bf c64372ff45dd93ed +7dbf80dfcac9d698 2d91006b45b4c60c +7dcc8db11b2d9313 b384d29fe61a3652 +7dffd287ca1df3ab e883e7b12f3f2187 +7e2e02e600a83109 58ebbe0b9317f830 +7e324528b13f61a2 e2767a254e511f76 +7e412a787b7a37d9 b466a6c71e2bbb26 +7e6db42d70d2a339 96fc3aeddb4b773a +7e7934bc27e03700 ff767764aac31179 +7e864e36db68539b 3b33073d8434538f +7e8bf9d0b3c8e7ec cfb8871bb739f3d4 +7ea81723964cb105 ceb4c5ec98b9c98e +7ec1b79eb53ac708 cd9379fdca11f199 +7ec2a6e899e40deb a456ba2a6578d7bf +7ed3a05d17c50a8f 0bd2877c602d1515 +7ef1d0d40b30111c 72019c7c48791d55 +7ef32d572ec8698c d773dc7d4aa41877 +7f23d5f191482246 c5988367908115dd +7f41688477bd354d eb15a511fafc7131 +7f4325ffecfe46c1 22f74c790d5ed6aa +7f6873ffaa7d28ae d1cb97f1ad038701 +7f855fedd2a0046f 45d46095b43d9681 +7fa4f46adc5ac94b 4fb242e301ff23b5 +7fb37becb7f574f5 c9823541816faef8 +7fb94d9841ee0cc6 4b687b2334b2c1b7 +7fc302d87dce2d61 246f519952025997 +7fd0a504278a1e6a fc20d1cfd8f6e904 +7fd17304ae7a065b 00df777a6ee03749 +7fecde2f19db241e cbf3a71f9fab8c14 +7ff19a30865c795b ef41eb1a68b464df +7ffec5def480d757 24971786066d5cb4 +801aca37b65aee7b d2310df37e997206 +801e436e08a0f1f6 cc6b838889a658cb +802567c9dce4bd7c 9bd5f4da95c76082 +803c9126ae8d8490 39bc57c00dfe4785 +803ecde675e03eba 708b01986587feba +80443995c2dc56bd e781062d6d300d93 +806c3054f2aa6282 2134feab5b783057 +806f277741d096ef 20a327ddfaac1112 +809adf607834e2cc 05ee60f23edb6ca1 +809b5c31d70c813b faa1ec7b0874b292 +80a80e40c69238b3 c7aa108f423552c5 +80b4892bf01e19ef 32c78fc4b0bc7a75 +80b6a0c2bd98a49a e779bdb72f57bf8f +80cfea8b77e44f03 e61ac152d44d549a +8105705677eb363a ffcaed1cd859e626 +810b83cb53a144e4 703112a81a27218c +811a911af1812c3c 4669456bfdd7564c +812e3da46a31730b 314cebbe575336b0 +81318461d3a453ca 928695db8757a770 +815fd46305843681 75a0f3369a235656 +81686ab61a732ac7 b8584dc63c1386bb +817987aa71ad97ed 56c2be3718e4d0fa +8185dd58f231dd9e 64afe315f7e5d0e2 +81981dfc3daae32c f57a2ab7f92d6622 +819f8a5aff68f67e d308a2cae8c497ea +81aabb72da033570 172ba389c519be91 +81b79ade9e289d79 6a9b8ed61e6415c7 +81b7f30abb2fc8f2 bbc6d76902cf04cd +81bdf6460a9f3775 d001ddad12936663 +81c8b62528bce99f cfd4e37c1bac9980 +81dbd7d6543a002a 0f41b8777b4ebcfe +81ea8f0b0374266c 625ad92cd2ae62be +81eb1bdccc7a660b c1b09f6dcc3b2769 +81edd69b2bb59ef1 41b2b420df660627 +81ef8269e056cb08 70d46235c23c9fd5 +81f41457299ab182 5210b3b67fa378cc +821eb332f3d3f81f 7f5f32f3b99e0114 +822052a8b33cfed3 c253a1dcde5a8ce2 +82388b53ce47135e 6ea49360ded336b4 +8239cf70aba27910 abdfefeae81bffe2 +8246baebc4edecd6 1f94c54fe76af583 +8247950b7ddb0264 840f03af3e5760d3 +8270c05563a4893f 3532a25783321c30 +8284ca5217c4cdc9 a40315fc723be37b +8297e9ec9c1e8283 d9613485cfb291a4 +82a75dadca666a54 5a70d3a6c10b2026 +82acb850f60678b0 0a8938ca5c7b938b +82acd2f7457476e6 1de2b41dc6aef83b +82b61b0a6ea7cca4 2fc45275b943d705 +82dd94ee3b532829 d852eff74b3b5cd6 +82ed15ac4bf7a35c a4a8e76a8b677ce5 +831010246ca2df1e 84c540cb754cbe52 +831647b4be0807b4 3b37d4edd21c7512 +831838a9315f5c22 fe94aac7d11ae7dd +833e6ed4c47c386b b21ed170c3839cc3 +834b8b76d9a8fbab b1d396b73a0530c6 +83680aaafe08e21c b79e6fe42efc0d00 +836ad0cdecf42281 77f6493d6c8b7619 +836f66f32f4389df 5f1c99b35ae785b2 +8376abf4e29c529b fd49e9d29e58e3e8 +83860a0f37684c05 a0669ca04ac98c86 +8388cd3f64b9e8ab 6346ca37a86b0898 +83a5bcccc3632cbd b8ffce489f9c8b50 +83c629853f94c2e1 b21bb209d409b2e8 +83ccb614fcc17fa9 f87a40d58f859021 +83df686961f7c3df b33e3a35d9dc520c +83e24c6c90befc8c c266dd62263b01ce +83e75d206c930b2a 903d045c49fdbbcb +83f09131cd091b51 f840d8578e4769f6 +840df5710fbe22a7 cb6f9a0554e6bad3 +8410079cef81f5b6 7956121b35811512 +8411efa9e286831d 7a6871b6fbed6b01 +84359ed70510ec75 f6128f33a8ee06fc +844f2130dbf3fe06 771f94999409ba33 +84623586ec667faa b75f421ca84c5ca3 +8463d6b9e07abe6a 97cb3a1118c58141 +847806ee2daea63c dac88768f4805d3b +847f7390a1e5d49e 1f70acac6aca3b02 +849bdfd2fe1b32fc 7ac1b65997ec482a +84c5857cb3974dd4 ad77124614f44906 +84cd8a83f0909c95 3c4a47851a601c6e +84d819a598a3f54e b567061867f4b977 +85087a52479b6b6e a6a930811b26845f +851871f2df90c612 904c32f2583f580d +85237145429f7a23 ad146a847972e33e +85266320c071261f dd6bbfa542ff0259 +8534da651fb6855e 442426c6242b047f +8555bd022b3d8395 784f669803d9ebdd +855bc3bbd9f5cc14 541378b62cd34c06 +856e1ad9987de485 4b41457b7d3d9085 +857b424eb29ad076 bd6eadc7ad2dd2d9 +857de59d343bc73a 4d75d030a4d915a0 +85981fbc23be98b8 e2701e88f5c1b08d +85c1f20f85a2149c ed447d7f3c0f4bd6 +85ca07dc2107988d 635dfaa1709eaff7 +85dc830b0c0ad3fe 2727018d7266bb71 +85e58aac069f5d34 7960b23349486e2b +85f66efab1cdfbba d670b311fe8e5fb8 +85feae74e6d3a147 48676ac3d29cad69 +86147b250d902d4e 745b5c9b89e3e08f +861c2be57c521172 365a7062a62310f5 +86450aad6d1e3447 a4a121f36b264452 +865612dd2741689d ab1aee267f18fc97 +865d91d2dc1179f2 d3271ca0c9ad7421 +865f12671bf4517b 7ad4145816c3ab71 +866e728a75a035e4 052aa3f30e78fe2a +867fca87b176b1a9 d4d187c6f279309a +8685d53248b2b494 a1129ce104125d9d +86892b78056a9cc6 46f55757c83d37b7 +86922fb9c8130b48 5d363c234b43d2f2 +8694aa404f2dd2b9 e6d064665ae22fdd +86a0e908a4020ce8 28d36fae5001c4d6 +86a3602ed3c2affe c9cba85766affbfc +86c39ca07a3c5221 158ecbf0b815457b +86df403ad70ff51c f2ac8c27dbfacab0 +874b8066490cea7b 31e740a2c2285ca9 +874c4500184dc46e ab8fed0e18d0e931 +874fd98a4e4000be 4567bf81f9c3bd63 +876857c306ee9cec cfce3c24547f1a5b +876b7fdfc60b90fd 5a293e31dea4c45c +8779d3379488c924 4009c0b5f63bc04e +8787fb54f9e62817 7582f1164cd92ccc +8791812c27fd9e3f aade072b050957e3 +87990e8f3c0e442d f6aabfdbead35db8 +87accbbdbeaf2e94 0b13608e03b03aeb +87afc436cdb2ae73 7a99e64adc70a45f +87b0764ed73d2af3 a3a2f2ffd06ea931 +87c6c4efcd250a38 d2ad3677570dae1f +87d2c030f930329b 3018134e1a1797be +87d2e7cdc63c0583 66d8d9020bda8df2 +87e60fdc618001e5 6460e424c7314a36 +87e6720b76fb69fb 9c939906171332ff +87e886c82eef4446 a4193bf1a8465876 +87f04e652c103f34 2cfd8c9631d03efc +87f398c274ae7f07 4cd8f41dd6904c09 +88011a1d0f18baa8 7dd049ff28d4973f +880551e949445ed5 d0f3807297018664 +880d5d8cdb3b23c2 bb13356f0cac45c2 +8828c3d3ced43dfc 75212825f7c9bfd9 +882e12910531d9a5 920f5142d974e369 +88611d51071bf30b 65f5135b48d6ab28 +887cb1467004f290 a076477aba91d38b +88944bc8f0e0a1a7 2567e396e60c9f5f +88a805acb081238f 9860b7d42ea9f974 +88ce9dd3bd53442f 961707ed408cf48c +88d26b93a53f8870 07dc443a9f99541f +88d4ff161f4833bf ff2caa057c201bf2 +88e59196dc4d5406 10b51bf13f148d91 +88ec88ceb95d93c5 e8ce66ffc058c331 +88f021c8a3d7b499 975333e1d1eaf690 +890c9ee2e41f914b 1443ddb822ca9467 +891f1e75c339c66c 6a385aa0868401cb +8954a426836f71a0 f579013cf989248b +895ec3a67ca98a2b c4814bb24ec1d353 +8986f136c95d7629 d5cfe4498045a1ba +89abf63d87197e23 2536c3036ad1945d +89c22358f68e42fb b698c287648da119 +89c51cbc0147431d 13f8ac9974764024 +89cde952d0fef338 9b342dda99c98a57 +89eeb928053abab8 a59926ed443987f8 +89f8b6395a38c480 4c5314961f5f7518 +89fe1fb45c966546 5e3cb431d996ff14 +8a0b02c6e6eae493 f797a9e049ad6e84 +8a16402979e99fe5 39a5979deb64e91a +8a276b78a1b0ed30 a71fc9bc40079829 +8a31cbc2d4ba083f cfcb3f390dadb29d +8a31fc12c7b4e4bb b6f1be8e75a4cfc6 +8a44f87f4068e9fc 3f9bae6122da4a2e +8a85b23f9831ecc1 f5544d6b13c7b7a1 +8a891e51e1c4a21d 9d7f39365e549cfd +8aa37fc6c0f30734 44d4e50b735a35cc +8abcee559ca985ba 765818f5f204df99 +8acba4eb45d69627 360dec72f703489b +8adb9ad3f4e32c60 567ea0a5a76b5577 +8aec91285788a8df e23740e80a94dc3d +8b001f1b1b510da4 007802d430cda3b5 +8b08c02e54094a04 76d48510c94ad5e7 +8b11dd4a15fd913a 227bf84c3c88e352 +8b1e7e4400469aa7 a9f3378f0e09df92 +8b20c3e31b9e76b7 aef92cdf4a37e5d9 +8b2167e90baa4f31 96a7224ec48f0cd1 +8b3c67a98beea93d 87601e528323af46 +8b447ad22f5068a9 6d1f26654cebb3aa +8b4483e06e341f91 3b7f9910c150c393 +8b834965ac7cf0e9 64914c49ae9e969d +8b9132cc1b8631e9 a9afdb7676cb9f8d +8b9d978daec0d224 d6a992455d73f550 +8ba7c20456f0dd76 b9c43c7ca472f107 +8bb9d201875923d2 852c2170d729b838 +8bbd6148d2b18a24 b9017206754da843 +8bbde268378e5062 8812f60736f1fefb +8bc76ca7a979ded6 1693f756772f59cf +8bd1644adacb1296 ba0b0cd053e6aa73 +8bea86c4bcaf5a3a 597f14d3b750a70e +8bf38c234264d6e8 ccebd4b1fb4dda9a +8bf772f30d6e6318 f01ead790063fa74 +8c321211cb881425 14ee0d5956c27bea +8c5da7fafb0900bd 7f5346a5177b26a5 +8c618567caeb7ab6 8aeda20b426ff4f5 +8c68c93de1153b98 2611c5be7d69e919 +8c6cc9daf12a550d 3f72cdd77a925c65 +8c7b345379f7e550 42ea4b3947b21e1e +8c898f3a32ad84cf 59d79f8cb7c6f8f2 +8ca15cb36826ba0f 94d5ca436eb28c67 +8ca4618f0e08108a 9e9701e236e73d57 +8cd7e1ef26804cc6 477c5fa50e56fb1b +8cd8e70dde38a211 a2aabe847a16b18e +8d01b72ce03ba2a5 ec0150fb52c2a8d2 +8d436c26dc2d2557 9f8b6a8ed97e5d10 +8d4ae79af1d24f70 7a28be16eb22d69d +8d55373c405a716b bec11049e6257e4d +8d7706f103b2ff6b 1b803e0afa56ab96 +8da027b6f709c174 1ab0b868d3cbd28f +8da176a780a29994 a991cfc0dc0f96f2 +8dc4879cbd7cb716 541082b7f2769684 +8dc85b5b4d6f424e d03083ad8176941d +8dd17b0ad8de1715 06f9818089d97219 +8dd770ec3b319c24 9d901ef112e3bce7 +8dd88eaca9515cad d848927492b04b75 +8dfc25f8f5c7cb73 5a2ddca8384da4a4 +8e0f4a9ad6d737d9 8595ca7b2a14ed5f +8e3230fba8983730 d2298bd8c0158de9 +8e42c90f1f1b9277 60304800539b0132 +8e483b9308737fe8 5e937e5d983c08ea +8e5edd7e2efca9e2 47b28878d893af3c +8e905d80fbfc7664 85237d43bf0cc57a +8e94637a0b4295d3 07aaee17b7d2742f +8ea0bbc4c9728046 7be168f5ad5f8071 +8ecfa50e623f3aa3 cd837243bdce927c +8ecfae740a7f2ddd 3524b74117239cdf +8ee1839db846c536 a4b3466d69bf41d6 +8ef3fc82dfa76ecc d3eac91bb63f3580 +8ef5f57933286019 a2eee19938656bb4 +8ef71d8296c6e516 1b49037eb0f08021 +8f3b081366c54e82 6cb122ddb81b86ab +8f3c31571df00f49 ba9021644534e47b +8f53afa39189ea07 7c5fa639d9660032 +8f76889580f945ef 83052d90c4da840b +8f7739aea4c7fd64 3dda3de9372db115 +8f7ef1006ac03846 d4edc57076da82f8 +8f84ac62452d5a8d 10950e912c6c7adc +8f8dc8da08b5771f c16efcc395587626 +8f9567b522676b21 e2dfc520a08ec7fe +8f9b99272e31b51b 281afde5a009c74f +8fd257421cda2afd 149f8c70f91dd2f3 +8fd3ad20b7bde02b d57b119f1cad948b +8fe1154ab9324acc 1588e81e90bafba0 +8ffc80302e1d26cb 95a48db18a58c072 +9021d7ff104e1ba3 d6bf0dfedf25754c +9025435ab7440c8e d9bacffc5c413914 +9048d48382b3cc2a 77fdab9b37283b1b +905ad314f849786c 16f25f4b4e15c4f3 +907421b4242d7e53 31a581ba6b54997f +90a9eb66521a0850 b6298618df3b7875 +90c9b4855184b95f 50844f1260869c71 +90f884c76dc5961f d1a8157061fbdc80 +9100def293aae818 4ddec1a461ac5a50 +911035d61214d454 988270cef75fc5c2 +914061c38f73b0a5 e338d27b1881fc0a +9191469949daf049 aab134cfd226ddde +91b4bd0455e19dbc 475373c8f8092e9a +91b60e2b5a3a9375 15b3e5a295545b26 +91b9bbe3e4879021 881a8e345c582af1 +91d3787634e52541 5f4f1ced09cb4f39 +91f0bde1e452915e f02d32d337651e2b +91fb3284ae64d1ce a7fce32172c70161 +9203f42511fbc43f 90022ddd6690070e +9204f1cb4d44752e d38054d3eaa4822a +9208962a55a96f3f 23afc4d84687542a +922d19605e79c514 33beb6e4f9279a8b +929976d218efd33f 00e979876b0eee30 +929f2662f21cb04e eed79aa83a22c7d9 +92c9037270fc16e5 7c7ce26fd6d1f99c +92f3812fd3013184 04d1efdcaa652392 +93050fd7d7550635 800075a08e446cf6 +9307366035d7d06c 1fddca24e95b4d0e +931a1cae13eb6550 a4d272fb0ea645b7 +9321d1088b262c3e e853d9f134660f81 +932d373f6098c255 7e023bf7527a7976 +93464074b530dbf0 9b7b5d9885b8e570 +9349ec3fd1286b26 efb7548432649aea +93527406f27bc074 71234c2eede52f4e +9358e0ef156c9cca 07f05c5f0183c204 +935f07abdfb80382 5d8f5bb2d0f978ed +936876aea7292446 25de65d3fceb80b9 +936dcee01b167ec4 597f1425a5e2c6cc +936fe30e8960d0fb 8c1c4f4780c3a2d0 +9389d805cb14e9cb c65279d43cb784e1 +938ad4661db04615 a0a0f7ab0424e3e3 +9390c31dcabb3210 858bbb8cf16792aa +9396442d477e99e0 2813100e49cb8be5 +939b5de485a20129 36865b48e1818264 +93b040be3a56605f 6d4f9c58ded26085 +93b32aabfc98edcc b63d0638cb003dc1 +93cf79432f34ba8c c7ca653e755aedaa +93d023796393d445 cd03e213750c2376 +93d196b986da321c 3b226cad93c8bbc4 +93f4a4d224914ecd 79bb1e42b8a432ca +9406164da4a7efea b4d0a555cd9f3a72 +941aaac75af7f356 fb6a3d36351c685f +94293c737ee9128d d533f1d94c030efd +9432ca44bc867471 1da7b2cb9cfe3346 +9432f922d4a07631 b9e9a9ec0c4ee108 +9433001cb2722bf6 a8550a1a4d023631 +944bce0e7fbf4040 a6bf53d91b1e5491 +944cef7c21c3d6da e9c153b4527a4646 +944f9d0eeaf4464f 76fa08cb14d07ee2 +9455cb290c9c1c53 cabf5aed510c6bba +9493762d8d69dd28 b5da1793a80b38cf +94a02bd4ea720853 8bca4d156fc0fd30 +94c28ef1b760fd6d 0d6335bf4bb200c6 +94ec9cf9726317a2 216f7a1aecbca0bd +94f6ab53429e3e8a 52ab58c057a9885d +94f9bf1cc112df8f 343185284c1f206c +951a4b2140029eba 2f80cd8474e22c30 +9557bb0f1b00c679 2cb74ac03b4edf5c +9559d386f88c3071 b4900055676d4ced +957df0188188cecd 5fd080e360de8041 +95888f43dcab5dd6 78b6251d220f2755 +959f41018ba69aa1 fb432d3890a63c6f +95cf85c7817de7b9 f8d14009fe93e9d6 +95e54f309763c35a 708058982d634128 +96015c281ba71430 d6f03929ec436d21 +960808f4a34e174d 8762ec56e6d5744b +96172a5caeee869b 9215d21ca3365912 +961983d5d2a17bf8 b00be1314bc0a56e +9619c5568ad36a92 f1fcb9cb5c9dbff4 +961bd963d8396893 869a11ade66f1b2c +961ca6942dbf2af6 e5c5db855769d736 +96467f5d9ca7f22c 9eb43a49eab08931 +9661cea56646843d 5542da934bbd706b +9669de13a19f9b17 cbe309cf0c28e690 +96c83ca97e43e307 7d35d4aeb63dae5d +96e449b66ae68220 16789d9b4b265214 +96e8173b44c8ef15 9362502b63b19907 +970a44307d6c11a0 d71aa6d16ac755fc +972f35055a6bb939 4c3ffcd59b15735e +974c0b88c255f58b c82d36cb2796472d +974d547b0d3971ee 51187ac563250d7a +974da38bce2e72fc 815f1f45183be7d9 +975f3ed61f5ecb09 52994909da4cdb7b +977520b0b0ab77c3 792e3d40cb7906f8 +97a6990e760ac134 d4fe4f7574e1f3f4 +97af1e3fa87da9b0 5079403339fa1e0d +97d90767074d50eb 80013653feb0225b +97ec97773242ec14 e4104d31c9a94087 +97eeaa0cf086a2cf 84355a39c76053d2 +9802e401e1df2f22 bb7321add6201e81 +98124811f0fc6c8c 96e064e42cdeb257 +981bb38bcab920be 3f96d7dc950d7c44 +981f04ee0e01a315 51016b2b51b757b9 +983adedb7c045b32 3083fc088a9919fe +984254c773d08aec 6045d56fdb7d7887 +98488b5f46dd7c68 118bcb424f3b005f +98728e3d097e9792 a084f27b436aa61b +9878f0e05a8fad98 193aa36ac929f2ca +98795876db7c10c8 8ecf93b0034f337b +9879c5d568764726 c2277a78f640b31d +987aec42ce040e81 fe77662521cef995 +98822caf82e1b223 1d0de0e65714488a +98a22082844afc89 fe5c6981e0b8da8f +98ab90be8d7aa795 d0ceeceaff621727 +98c655e46e3fe631 7037672ffb1d3dba +98ce60b8e1c83ef3 dbc49a86d82bef57 +98e6e434e9309318 bb8e7ee2dd43c2d6 +98eb4997040a4872 0d07efc3af2db207 +9906892db58dcd17 86f1c643a7be4629 +9918f7f3afbf6c4a 7909dc881438bd10 +9920e90293a6c387 56b17ec011fb9e19 +99349e07700a8b6f 5b0173e3edca6a24 +9940e671555c9c98 1cb870c35226d5ea +994c2f6c2d00b067 3805fd2fb9762271 +9951c932fa70afce fc2997f02cfce5c3 +9968dd7f3db24f65 bed77048ac534b04 +9972062ab9c6f69a 23f7972cb88fd08a +9978a995672fb639 e2b07b94527f7741 +998179d5ad904987 61f2d88c83179fc9 +9988bd570aead7eb 8f4f49ce57baac56 +999e2f9d8deca9df c90d48e65662e77f +99beef03e2692bca 7157b91dc0022cba +99cdfca81e4fed19 02ae3c30df1f2e47 +99d73ed1edd5bc08 0591fd37d993d531 +99ee801e03f78744 7e6fe72c83fc2e4b +99f3250a2c0a2d5d 61681b4de165bc89 +9a2fe3cde570ff56 604ac086e780e572 +9a57b157f6ff1c74 d5f29574726ff476 +9a8aa10f1b62a4da c5708f18b2e578d6 +9aa6c92a400314a3 fd26536e3f2d3431 +9ad5bdf3563cdc1e 904b95c571a9294f +9adca4c612c40547 993bc5b7a164fee8 +9af45707fb53927b 826e43e8f809d30a +9b255da43c2f0b9f d1ed53846b434903 +9b44b4c082fcf45e 078c27f6db3b5d1a +9b5ea17f4e11abd1 527ad803485aca60 +9b68754955dc56fb de6fe5de10084f6c +9b6a42efb2f4ed0b ff499de4e0e5ca1d +9b851bec41bb82b7 0bb4af5671da10d8 +9b893b6f01f21c58 3a65e10556d6f4bb +9b8b44de9c9d47fd f031405b62679d46 +9b92cb2091365a5e d2f71109a9361b28 +9b987adc36c9a747 67fb8eac1ca0a4b8 +9b9f53469379d8cb d397a5e7fabb4dcb +9ba63f6e6a120161 02b35c66d1408561 +9bb2df68fc180fd6 1ca602a99a7f72fc +9bb851615de383c3 192c1e255dd74bee +9bc869729b8c3a0c 0471130e79e6e7fd +9bc9b7a879c13711 c073b5978bcbbd43 +9bd5565cdddfb660 3cad1657df975c2d +9be7be3fe8426adb f4bc0edd5781cf3a +9bea5652c06faa2a adb1d8475d87d2cd +9c147afedbdd1042 32c3f1cf1201445e +9c1a949fae0c9fa3 4f9563e1888213fa +9c2e6a26785e52b8 e0d75a85ddd7803a +9c341220ff2d511b 70727cd005b730fc +9c48e2b7bdc3ba6a f2af2d444930e3fb +9c55a18619ad89c1 a04bb214f4cffb42 +9c663ed039e98d05 7d3325a424307af2 +9c8c773b9029e303 164e7f6908a84cfb +9c9ad387d11790d4 483ead456c64e579 +9ca6b0a82b687929 c95882442dfd74cb +9cca656eeaf9e858 7b63ea0d6fe0192c +9cf746c3fe907868 d316c8c7c544bf9f +9cf7d6b1d314c6fb 9896c5b8104a825f +9d0fde247a3915b4 f75693130597f289 +9d13faa3500889e2 fafbe410a7265889 +9d193a122804f1ea c7cf8854d26d19b3 +9d292421e7803216 9b039cb9bf1ef809 +9d4aed34ff2c5cac 4e663321825a1b1a +9d4c4462f3b4e38b 3ad85b91646f22a3 +9d5c6148801b6cb0 b8d85bdd0a7854e9 +9d7a0cd3531b8859 78f4c70a39179d71 +9d8584edcc8a2e6c 846ba8e492449211 +9da97869a57c4909 05cb3b793b33da9c +9db07647ecebfd67 dac41dac0a503a94 +9dd02230281bc9dd 889c10871ea07e03 +9dd1c4bb48fc69ce 1d38db5d54b0029c +9dd70e2a9d711510 6e72f719c4fbc8b4 +9df7b0df297a7a5e b0d5b91d11c7318f +9e049cb8a3900f71 aea4258859329bd0 +9e0b9df2281008a9 bc2d6cc7c45535cf +9e14664ea5bbc80a dc4af06b0b373857 +9e330afe6bc7bd45 48a087d371d27ebf +9e3ff349fbe7944a bdd4893c55a5c6fa +9e7ac760bd32ac8b 433a224cba8cd7de +9e7e29d71cc6d324 f3e164a7c4d1858a +9e83857d3a8f031c 4ca726bd6f66a75a +9e8ecd117e722124 3f6120e2e464a2e6 +9e900f5c10eee7cd fa4ebbd61cdec85e +9eb168da804b2e37 04cbc03a3fcb1474 +9eb193e12eb19d60 8187b74beb929da1 +9ef322a0ad4277b3 4f9ba928b069a19e +9ef71a1e00b9605f 7aeba8c11004fd88 +9efce3e890f32b40 79d72938f71c1264 +9f036e3425035010 c2c43593e637e964 +9f195b87da7880f5 67e8498442bb308a +9f1ea2f0b6c71a9c 8d4eede7b2127fb3 +9f5765cb504364b1 98bec008a1c4fba7 +9f7702f3e459cfcb e3789356e9506e6a +9f88f12d2bd5778d 1f5735cfe05d77a5 +9fa181eb6da98d67 629ae0fedb936126 +9fa5e5f12e3c19d5 5d6aae6f00abccb9 +9fc2e53375969bde b02cbc8f008066fc +9fd605df7b687462 206f092bb4a3ed7c +9fdb9dc9fd5b5103 36739ae9315d9055 +9fdf1b7048e1406b 5a61ffb921137aa4 +9fe424cf9269d647 0bd9a244a2611601 +9ff40ce557f82f8f 84dd8ee2bae217da +a02503eb032c8d2e 9c66c44bcbb0c7e7 +a03171d0ef160d54 935f7bbae64e05c7 +a0426514ef833eb1 18b3de6a5b3cd9a5 +a04b68f20480d8d6 a437fee78be16cd5 +a06379b62ca055d9 1f1f0f59cc35c400 +a0651e0e9953be9a cf4f3be324cffce6 +a07313deaf12b147 0c43936a2873d363 +a0975da9ad342a40 812fd295ddc878ea +a0b79296670312d0 2c3a4204a29f0e16 +a0c9b5138ac6709c cb5b62e9ca1f9599 +a0d852b247159ea6 78f1dcc4b849e1c3 +a0fcc557204a7f0f f71397608be4ca8a +a116c0ec761f0542 23034bc4a7377878 +a11848fca1e9edc7 237952860422f95a +a13179cf741a1b08 d0cb18f3ead0b6a8 +a164e170fdffc803 d9656cc2961d8f75 +a165577964f64559 d05addd970e769b8 +a1872519ddef48cf 25cf7fc6210ba15a +a1a5f31da90a76d9 ca3e2e196c71516a +a1c2cb5e077bbe87 0f0c96d4e7b7b69f +a1d56b38df0a1e16 f826698e733772c6 +a1f56f291bc5b04e a96129a6a321c45c +a204d2bb8e743a58 8ec93eb48a037832 +a2053ebf527fad06 4a0b4582945f1b4a +a20eba99d076056a 19c177ec32eecb67 +a20f3edb99394ad9 c27e75ada6080522 +a24c0f9ad26c5954 92e7ddaefd0c85df +a26ee19ced74fc55 af8226aa027b5b4a +a284dc65db52b3e3 90c9954ee408802b +a28c652709db6030 abb11bab11e5d79e +a29b36a4fcc2611e 3be62d5119c71ef3 +a2abec5337887261 385cf9420d1beb1a +a2be67e65e3ed552 3a57467a9d6d921b +a2e28a5a0a9249c0 0ec1b003a0681a63 +a2eafcb12e78f91f c2d24dee97b57ecf +a2f154ddd969df64 c8ac99a4a12bc616 +a2f3e21f50ea9704 3ef48904c83cd393 +a3087f7bb52d9609 4d5ff23ef5b5b53e +a308dfe7eca28439 5ddcd4a856d092af +a3212bb52d08b098 2635f4a408470488 +a3296ab32830651a f4c19d1080b67f61 +a3327c6f3a5df5ea 34dc23bc3f88f979 +a3328a794a062715 34a1cd18bc7e229b +a33c980453a0b5c6 65a2a66494e6860e +a3430c0282aa49d9 101cfaae108c1cee +a344b642aa3830ec ceff88b24372c4af +a361e2eb9ab04396 ad48ecedd2d5967d +a367b847d8d9ebf0 e899b1fe6c5d097a +a36e376199e47433 241a11c159667862 +a37020753d7f2bb7 84badbe6623cd7a8 +a388a5f05b782532 4f7e4ac1c6a2c642 +a398d0ee0c53cdfc 0884bd3f02368b3a +a3a4a419c66b1ee4 1511db803938a0f0 +a3a711633b36a2af 2c1a484dd122a055 +a3a9194e41153fc1 ad3e89b45c618b52 +a3d855d9a84ed9ec 07451c5b7986a26a +a3fb3038d99c35fb b513bfa7e6e46ced +a4313722c75f52e1 3c0159c143ef5528 +a4513d11fa164a26 97908ad6e7e29620 +a46678ae4046e6d4 afd0857be69bc264 +a476da5c9ea334a6 6e4c54d12c543523 +a4929792a1b04a8c a9380a42833935f5 +a4b56cc337ffe101 e6c45d8cd7cf71a2 +a4bf129005ce5155 d44f751f4a298bc7 +a4c23e2ea57b34e5 bc72bec84765d40d +a4cb133878fae0ca 35cf50ac7c5b175b +a4d127e4690bc72c cbceb20491685bfb +a4d4a1c75320a195 2b75358cc9814e84 +a4f792fb43cf0021 6a5ac7b9d64459e3 +a500473301d56209 29e6d2aff606f871 +a50674e910fe5222 ba805860c10c800a +a51abf9a632ea2e7 1f86079356e5eecd +a520cd9f5fd4b72f 371002967d5ae5bf +a524b4bcd75cb884 e9454ba3d8df7db1 +a532a475f021fe80 0859de33d1ac3ced +a536ff223a79b480 be7f9a19383d7581 +a53c0d23ec2e9cc0 073af3de22ddd49b +a54917bf280cd06e 07189c3fbce4e6af +a54d925c699f8cff f039ca0832cd045d +a55b7ff05f85380d 87ad6817f62a9bc3 +a569acf816ff49a7 d7983860844f5be1 +a59a5a495e70796f 0aaf9baffe1027ac +a5b46322a08ca2d4 5a04ddc4dae3cd4c +a5ba71df261c6184 ac5750e507050874 +a5c050a6b74be5f1 9afeea5834f0c888 +a5c36b84429d820f abcdda11133441ac +a5c389e4a02922af d26dcaf7f1783188 +a5ca4c081a8455a2 c36c0052e50ebe9b +a6024d343794bd41 47185dffbd3422f6 +a604705dda2e4998 828c5a5046bbd0c2 +a61da3f47bf21d00 d648569f1dde7dce +a61e0dddd59e515c 0d0b5e2dbf63845a +a6237660068ca2e1 9c3793bb70f732ae +a64998c3e81c6fb6 c1751f789d1994ff +a665dc86baa4fb4a b55dd3fd1ac38032 +a67c368824d723c8 e99aecefccbb5b09 +a68f2ee96ba47093 87b2a28903ba07df +a690fa4bb26378bb 1a56eb23d7eac291 +a69548e3df63ca46 009c6d45545874aa +a6c278f0630bfa52 30a69864fb3eeafe +a6c8c56d16159789 aadf089164328467 +a6efe6505567b187 bed3b365fb390c6d +a6f94a1a7f734183 681fae94541006d1 +a717fb0d0df097f7 d486c51d8aa4116c +a7301ae34518dc78 fa6676445b309787 +a7463888cc18ab5e e56afe37768d3dfd +a75c65443807b24a c3fea82dbb0c12df +a764a261d271b6f5 031600962b4dab32 +a780b4d2e293ae70 d6d3e8d799856bc0 +a7a8be1fda31a5e5 861bbdb45889ea5f +a7b27265e3239895 dd9d352e27dc118e +a7dc3d7cd73b37cd 5918444d98bc3325 +a7ddc0384a321436 c58779a7fdd0915c +a7e1587394b8d26a 954dcb6c719b558a +a7e58e2306e818c1 65b620a4e8ec179d +a7ef86259531aebc 6d3a6f92955b4745 +a826977dcbd09940 fe76da9cc0af3926 +a8355582b280be94 7f29917b47cfd984 +a872f1c32573dadb 75663e8e8493c6aa +a8ae743985169332 b02054b5ee802e3b +a8f3cf91e12b9f05 2d495afb26e358dd +a9357e703917e431 0f6a2b30f4d4253f +a98e626ccfed8654 912aa9df1987466d +a98fa3d1df05902e d6ffedd20976c20d +a991c6992a48cbaf 27cd09691ae59451 +a9953cc3422fa52a ae9d5d8c44a62088 +a996057cea02fe0b 2e3836ec40ffdd7f +a9acb5e8993af1e6 cbbbacc22f47b6cd +a9b01a0def5643c0 31b2eb2dba92655e +a9b23ca7bbf841d2 ed33837e11b9e56a +a9b5dcecfa5f65fc 37aa4184dff848bb +a9c4fc44f87c5289 705718a3c999d4bd +a9cc0baca3c02e74 14d6c772b0a34aa2 +a9d5a2d5b79dbf0e 97fc20b48dd44a89 +a9d72679a7f920dd 1aab981b8898f700 +aa1d7efb277b4434 f1a2d655a931251f +aa2682688e884d04 ba4653c18885f9b0 +aa30c55832982e12 7ed9b36b8f2b64ad +aa3ef1b4973f851c 536b04f10187be69 +aa630adf5305e088 0e67159c58ea751a +aa70f7098016af6a 9d3bf794aa648c9f +aa737be0bcf1c0bc fc1050fc0d921464 +aa74bec90951e8a6 58d037cfdeb1f2a0 +aa91dbd15ea91622 dfd08ffc6151665c +aa9a2528ed43845b b49f8722390efc6b +aaa0dddee42cad41 4a3f25ced276eebc +aaabbd7d944efa7f 72329451b0358447 +aabc6311a7036a7b 98e7a27a1c7496e5 +aaca8ff4d392dd11 55c8669fab6f9ac1 +aad478868ff0ace6 9a1ade7fbce3e878 +aadd2eac24d6cc9a f4ff3254da939326 +aae2b5e444b8a990 4b679db5f8d26dc6 +ab01c5d1d21833b1 1a3268047845f02c +ab03441377cabda2 e813adba1599f724 +ab0a9a2c15d87827 e5150ea710bf793c +ab250b45017ed7ba 479d59c19047f12f +ab282009325a06c6 2ff84b044089d718 +ab34565beb2403f7 7b93c12f7ad97b58 +ab363e2cb5309749 0fe5cef045b2c9cc +ab37b78429a04143 ae6ac9fbb100cdd5 +ab448e32e5508780 3361a64fb8dccc3f +ab51f6e98cb044b7 c5f66b308099f92d +ab65e314b9d04d6b 4ce27997407cb87e +ab7a5a0e7ed4c25b d2a72a6780fef97f +ab84ebe52266a9a5 51833f94788547c1 +ab97d70106946bd8 fae94eedc69e6b82 +aba7bca5e1f3a816 ab89fad49c001fe3 +abdfdd443daee7fa c753f553d9995b37 +abed77f325805906 c3e80835cf8f1080 +abf2f87787fd4336 fc8e685b44165fed +ac0d77c6bdeebdc0 fdd0276f59d649d2 +ac423bd3714f34e6 bbd3018e98531038 +ac51259af5d8fcd5 9d1dc2862e91e704 +ac85afef45c60a06 44bb16891f807d5e +ac8d70898dfe492c 904e2d903ba60e55 +ac8f3c1846006469 29686a2faf3870bd +acb10a2cad09133f 6d3ad6dd9ca786ee +acc1b390700a1543 ee5f9f155c248b16 +acc250e9c6aa1458 a19689bf47a95365 +acd1708ea9fc2472 91f81f1195dbb92f +acd4502a180caa86 ab9adc058f844073 +ad02e2e0a2f7fbe5 30e90d40c7b7b86f +ad03e4865f03c7a9 36b2875fdf9a07cb +ad17d40921a85dd3 61bc3e3d6186a1a7 +ad22fda29cea1ab1 aac35a07b35b7e3a +ad28f97f2cae085c 22670789af9b06bc +ad34caf5c5136842 2b7a33784dad22b4 +ad35702e6c9dacb4 eaf3898fe714ae9e +ad4e38fc81da72d6 acb960e9f1d7220a +ad5a28e98495afc0 b63a44a852db4281 +ad73ff40a23aebb2 b8ea835ce0cf072a +ad954279f2e61d8c 38b83eb13b3e3f9c +adb282e29e9ff076 ec5ab747aa043d48 +adcc454391d9f53e 33c7e22f025e6b50 +add8ed572c5c8b45 3744657233825ba1 +adfc4f530097b9e6 95e736509f4edb90 +ae0a8dbc0ef1c53f 90e8acbf0d03cffe +ae37d0cfbdfc815b b4f8241585bea768 +ae54be6ef488ed30 50f47c70e1d14908 +ae56021d72b82a35 8fa66788e72d2453 +ae645fec7f3c4c8d 9127d71857ac7c7b +ae6a8702632bb3c6 f66b055d114e2f1f +aea18dc0d503713e e97e9f8c521c7487 +aeaa961f986d5328 cf7b5f9d4195f1a2 +aeabb2b87274d88f 5ad799fcd2550667 +aeb6dd0a9d21b588 2c49b92fd8f9513d +aeb85eb056a1d10a 4215c7c5baf12ba3 +aebb4d74c20efc13 e9364a94b884876b +aec5e5fb55764e88 96c75c1482edf1fa +aeedbc500211f1a1 5b2086788ed80525 +aef80a4712eba6cf 6c182b803ad32af8 +af5125d0767fc9da ce661bc82200265a +af53f4c094da40ce e286033ecd20daaf +af9a34fda3f9567e 1740a8306ca81b60 +afa3871603adaf06 9ad2a139d82523bb +afa60d33b854467d 9dcf6a24f18e7a39 +afa66dabd439ceb7 6bfafb2f3204a378 +afa8aa1d7fa4d26a b431dd0b10d40f1c +afac5e66e66e8dad d049a748e6418a8e +afb19b622c454a66 77573bb5cda34e99 +afd1946158779c50 f43a3fef2897f888 +b01b0a491efae340 a1816a80055fbf51 +b0219f34cc8fccaf 4183b12cdcbe67ee +b0224a48a29101f0 9566b468d01caca3 +b029f5a707f3758d d50c4fe0d417ec14 +b0320ffe1f461e04 54aa63dda7dba052 +b03483417f6ae162 3de4ab44645a6597 +b0355c25a7f69b14 625bcafe87f0ba12 +b069fde95c0db96e 4f521a0c40d309d8 +b08b4b92ebd356f3 1490a99c2653d921 +b09cfb1d82a64340 e0ebc9a58c3ded64 +b0af8c4ba35d62dd f49e95606bd458ab +b0b1aae4e8b0741f 28943aa79c67cc55 +b0ccf1a400efbb17 7c20fc4ca88c2818 +b0cfe2f82907c5a9 614398e04f770a80 +b0d84b6939d0be2c 2b45d311bc97aaaf +b0e233241fac342d e8350c7cc6104411 +b0e4bd42c89df447 7da1e4e3528e409f +b0e6311060d58c9c 435052979b89d448 +b0e8bf20b8aa55e7 8f6ab37a07155fe9 +b0f1ff74eacdad3c 37857be730dc834f +b100a91cb9500ac9 c62650d4d2e397d9 +b104d3f51bf495e1 f21216ef5f368603 +b10d32ea73f52faa 63b67108f086af0b +b11ecbbd8e1e3b63 5832572ac30e8a07 +b1252bfc1a4851bb c870fde739e9480d +b126f9b1a05a6257 e1022ee185480297 +b129b62d5d03a8b1 14bd4b952abdb5dc +b15684fe7dbe45cb be1cee66700cd86b +b168031295f69d8a 80ac11c0c97197fc +b17483082e8a45b4 fca8bf1845bff63f +b177ebfcb9889c91 526e0bfd9eaeec6d +b1a4dba671b6c0b5 510dc969d9227a73 +b1aa779c9cef8e2c f1d816a283976b0d +b1b14c7da5f385ec d8cb8230a995b4d0 +b1c3644094c1bfc2 93e54692a9784e62 +b1c9f08427c5eb8c ef0cb64aacb851ff +b1dc1066b0282393 2bc06e7dedd9c390 +b1e7442ff262cb99 dadb7625acc0841c +b1e7d848bf9d0d25 79563a1707e27a40 +b1f5c4976fc59f4d cb85095f5616a3e2 +b211a1a645f881c9 e1d148a10738c47e +b21e86254535fe27 8ac9cabc99400ca3 +b223f91593eb4d66 abe48566c6dfbe93 +b241a5c21dd204e9 2bd86e6897520b68 +b24c02d54f53bbb0 3752fb83c0e9db3b +b24d8a7a4bafa637 1e0fbc22dc516599 +b24fa9e8cfa845b2 b98da9f31bb32a92 +b2553b964c80d7af 9c01dff47a89fcaa +b27ad1a860d66e0b 1c63071a31ac321c +b290c827c973307d 00a546a0a656db19 +b295cbb1351b9c6d 13a54a760f7e3387 +b2b6c661885a6442 f812004cd96b3025 +b2d19febc5c05ccf cd648f3ded61e4ef +b2deadd3bda2551a ddb3a54578159aff +b2e4d784149c04c5 d46ca0ced7fbd2f8 +b2e6f5ed2a7820c1 5fcc25b6dbfe6d01 +b2f9daabac912b83 161e62461966ed4d +b2ffe05b358c365e 393fe30bd5a1cc99 +b3153329f815446a 853263c152ebc541 +b316c715fb035a4c 9c995b7fb09f319c +b33505fffb773745 4df8257dca925f3a +b35a16ff9d920913 56d6d106d9de482a +b385ad38ac251a73 9cb41ca824bc39e6 +b38a9b716c883849 39df26c6bce417df +b3c122969132630c 26fbf23e65b18ad3 +b3d2a4aae6467667 531fd17486ffe418 +b4073b8eb46369de c9b0f162bfcdd858 +b41591cf598c31fb 6da307b30bf71b5f +b435a06740b1555f 32ec1c29d7eef972 +b4429f77d4fde093 7e92dd52641b5ce6 +b44edbdffa9b7dbb ae31ad24ee44c15d +b46d40a8a5523bcb 5f14ea0bf0c1bf81 +b47e7267d411d39f 8931d6c513a17d23 +b481c990d08ad364 8a03d4a332e03f82 +b484b1c512124b1a 3e8fa96f20855a1c +b485011d1987e997 851d63dee076f108 +b49365a75a33ad7f 83659edefbc260a7 +b494027b61e6e201 be470066db3c7066 +b4ae0b5e0861335e 9dc6bb7012155dba +b4b0d5fcdd169c7a e3e92907819bab77 +b4c48bc72dcec182 1867d76b2db43be0 +b4dc56d22a95bdeb 28c2a9e16b9c9697 +b4fe56e2c71d9daf 6cf728fac1ce9245 +b512fbd9cd89a6cb 5de212ca0f66201c +b5146ade3b6e1c4b 719e82c848115687 +b5154772e13aa966 1f04bce6d4f8e708 +b5282ed3247dd174 b541c11746bb6536 +b5368bf8ad61f860 d72f5f0ca4df0a9f +b54b5e2bc24f835a 0196cc2f584c5bf4 +b557ca607b69b893 e341af6233b5e1bb +b55cde7cec8c956a c960869d278f56f9 +b55da16cf89762b1 62ba831365ce9642 +b5c4d7bba1b11f98 c5ee2b66728360cd +b5d05872d0bb1d9d 317c292db70c9ea1 +b5da9e91919865ab a05827c614023e1b +b5e5d0a4398a9402 deec8c8eb006efe4 +b5e9d95c3a1876b3 427783477fa5a094 +b6078e4a01b36c90 6e7786529234f779 +b61cf4878f215c80 13047c8e7d3ac812 +b61e02cc18da85a1 5dfd79bc4faf0c3b +b628b2b5ef2cf736 c95d19eb1b4c52ca +b62d4c599a3e82ef 179361ee282836e5 +b63234d5dfc8616a ab5f3699daa2bc71 +b636acc8069ee621 d657fa7a15c93f9d +b654a68a9e674b9e 22080cdc84e86763 +b65a7fc5c1381e68 7b5a2bd8d68295fc +b65f51322fa70dcb 990dec1ddc9c07da +b666a350be4fdf31 6e02b2fff2ef4844 +b68e61a0aafbb089 e41c0ac89228dac9 +b6b8e48493ac3927 4f13a288e9e34971 +b6ce1add2badf8bc f7ce81266482151a +b6ed31eddba613e9 fdbf540f62b70015 +b6f0d2365af76024 648e542671066ebd +b712dd73425a1756 292281e5513fb2f7 +b71d199a89c5d555 75f3255e18c3a002 +b72241cd8b8c19fa 06e7a15f7a074559 +b76603556d6872b9 b9eda21cd1bbf4a1 +b78662a8ed4823a2 cc9dc01bbff46522 +b78f34453e5c9948 ea70cd9ed4d4d726 +b7919fba8085a30c 99d042cb4ec9a6ad +b79aac61ca0192f5 95fe82cc899b90fd +b7a0542418989eb2 318b8ea190d4956e +b7abbc1aa1eab53a b3f0eea1b48bac3b +b7dec9a8d2dd898d 9bb4dfa63e3f4645 +b7ee82c07440783b cbf259c50e2c7844 +b7f2027249cd854d 913df6aa913b69bc +b835a13e3ee5080c 19afe007d605d158 +b83612423993b9f1 2dfbc5bfdb4710e5 +b836d451a50d7d33 4ac92516a4db8a34 +b83852cc3c717e18 d11846b0768eaa66 +b8672a7234699459 01e186a972ea045e +b86a2503a0b765ab bf37924e473300ce +b86c5924f2e52655 9e88b3a5f2402942 +b86f9ae4178a3425 ecd5ec7e5cba851a +b87a661f45e53598 9960aa4818c1c544 +b884a876b845e787 219874ca8435c48c +b88e2759ade3a6bc 81fa4244a9eddf48 +b89c5a516a1dfabe 229a436e71f8c0bd +b8b718b241081b5d aa55d7608941cc8d +b8b912783dda56e0 8d58d81c6f43816a +b8db2eddde53104c f3b035e272fc22ea +b9010349b0724845 0e4bf4486d79246b +b9033fb3593219ff 25e70189ffc08b61 +b90d0c7e9b6e3791 0f5209c5a3bd93f8 +b915b0cb81461821 0cdf72eea92d311a +b936260397eef1cd 76c1aae7afbb508b +b959cccb296184e7 42475b12e0196cd6 +b96e010c230161da d1b833e00c2131a7 +b97f0a525f051b52 e55a393845fbc4c2 +b99abd7aae10472b 205a35490e45cb06 +b99c926d56c8414a a85d4b582b13e69a +b9b002693a41b32a 5167a05ad2857aec +b9c3c46951873efb 18deb301aca2bcf4 +b9ccfbb097b5451b f619754cf72c951b +b9dc34a12a52549a bbbacd3e2daeb946 +b9e94419b8423ad9 f8ad629281ecada4 +ba30246808528f1c d06ad497b2711e24 +ba47988e107d105e 811739fddec7bc5c +ba5ae5f1a49ff5fe 6ca283fbdbe247d9 +ba77edb708ffda34 b785e288009ad3b6 +ba9a3076cca4657c 9b1da499118d3f0f +ba9eff9f2c280cb1 1b46728dd4e286a5 +bab66332c071051f f37b4eda667e8657 +bac5e7ef6742e385 82cc787c42e58e1e +bad0ff2141cde652 377796933002549d +bb0f4459a4a593d9 925c40c52ed2d353 +bb14009b238f81de 055b946ce2791ee2 +bb20e0bc59ba6852 655f274fe8bd15a3 +bb3bb04b81ae33ad baec17fe60ee4ec2 +bb6199e76618c98a 32ea6dfedfa4b5bd +bb678c98b6a40853 fc1a12dbc1e074e0 +bb72eaa4ab7edd9b 9cc76bb7c23ea850 +bb888603f5df510d 9018695e9a8d0cd9 +bb94bcd4032f425e d872d4943f9e5fef +bba653ce8594daad e98602489f1157a7 +bbc6140b3be36b4f f74a4068f0042bc2 +bbcbd529ffbb3ca6 b5af4f9986705daf +bbcf99e4d0e27628 a0371b9ff3e15076 +bbcff3397b542344 0a35fc054ffd1f3c +bbe16c114d159925 10e0a35b3d7ab71e +bbe1c8020251f927 44fe9d8ddcbbc195 +bbebe22c677861c3 2e4d5b4d2dc6997a +bbf2d6a06a186cef 06a9676b33f2706a +bc02134a856c3a13 8094dc28c539b197 +bc1adf3d1d641829 a7611d12e974de35 +bc1ed7836d2233bb a600a68295631962 +bc3dc21a25d7064e 9b8934911c1fd14f +bc4db9ed2e6181bb 208224158faa9284 +bc54e4943e7c8083 efc1a5ea9a61bb51 +bc5677f5e799b572 7f4dad3ede3d8b79 +bc5ef0b277cb808d 96be363020a7b13e +bc8c58c5c2fb3253 67798a67ce59b055 +bca5b528092c64ae 937e29bb4e7ff435 +bcb3067258958d8f d8698da7f242d3ba +bce2680a80746b7d 392b349f15d83adb +bcf18c161f9eebb9 a2e1a5c4c41861b6 +bcf5209ca5e27748 20b3561f577f7624 +bcfa6690eed12365 c74011b76bdc088e +bd0742170f987cba cf88033e7a5b7e53 +bd079bd29a9b4032 b5274c5c5ad49b8e +bd0862e3546aaeb3 60378a63ddf18886 +bd0ed565ce4d2b5c f150c2d4c70ef68f +bd1137def6ade157 5c01e480a159d9a7 +bd117be08f77246d 39c3640f24e5bc03 +bd3cf32cc7d43229 f5d022a2e1c2df0d +bd454d237c0d1f97 976af3d46bee29c2 +bd71ff0ed8664638 92ed4771f6bd2f95 +bd734b9c30c0c49b bafffa2b017cf8d0 +bd8920955f93d5a9 ed2174334f541cf3 +bda4d38656cf581a b668eb41dbc14caf +bdae97f674de60d2 94f0c08a3f048986 +bdb0deb1f5446b78 e84e91a71ab85913 +bdb2f3831f23756f 18f134f0a23df11e +bdb8c701b316f245 e1f74a356fe54b13 +bdd7de4b9bcfa4b8 f5e2f303ab825227 +bddae505c27df1e0 7f8e9ccc91361624 +bdf094725d041a06 0eb9890050ad5779 +bdf8eb6498cf70e8 5f956aaf0824b0aa +be1cfde128dcfb63 17d765fc9ade5c95 +be3202a2c405a5c4 aac4f52604075091 +be38f8e89bdbe128 c9c8b79dbc1e2223 +be4af6fab2cd4894 69c0c27d14db2aae +be5138c98a29be5f 9f9fe0b34021b2cb +be581acd801a3f21 b8596dc088e59ad5 +be5f0277899dcc95 58c31d2a08d93aa9 +be6ff0fc63b10e84 73d1202fabfda63c +be707842d4081c0b 99816b66196ad801 +be740e438347006a e35d1c9249616b50 +be929c9769a48af9 3bb7181bad4a0747 +bebc1c8153125276 75d7cf51ac257fd8 +bec21d57da059a64 50ea75389e067243 +bed8c26162aa6814 a4aa9eee73c334af +bed8e001df4137ff d4d70b2b05035e16 +bee41ac62e3f0d24 9ffe406dd7bb1bc5 +bf0f38bedfac5070 cb7e34eb83b866be +bf6216b352edea65 91fdafdba5912848 +bf78daf8d825e7b7 5d4fd409115935bd +bf7dc2c78e03b04e d1eaf3f58c97f755 +bf86442200d72693 342ba8023be93b88 +bf8e3ace3639e4b7 c9b01fdffad24a1f +bf9157545fb578fd 4a39e55675c4c7c9 +bfa0e86d5774ebc6 b4e18c1cc0630704 +bfb20edc24fd9d52 76b8478bb33282bc +bfb4e30b7d2b8d46 f556790f0ce5380d +bfb61dd443373407 1fcd807039e79943 +bfbf84f39c3b1a15 5ce07341f8a55adc +bfe7622b8a4d85a2 bdaece41bb5aee8c +c020238bc5b65382 08b3edffed51dd14 +c02e12618d02173d 9f317a476a5340b4 +c047506094af8945 10c4798983bcd19d +c069d697fca794bb c08a27e461d6be51 +c06ab623ce5fa91d f31cfeb48accfdb4 +c07b17f48176958f 613969eb65b7c27b +c0849d285b580980 a7ea37f9ca2945c1 +c094c53053c1a1ec c158c66adff15916 +c09b7d1ff2691eaa 770596e3a5a957e6 +c0b811bbe7bad358 b843970662e30c07 +c0d365b9d1722f66 fe04d1af46775579 +c0d3669e770aa84e c745bd06bbf5cea6 +c0e341ff3443ca44 7477f402ed3b4d42 +c0e8c3a4a17ae05f 4abf5937bea1261c +c0eac14a38182aaf cb0397c8acf73251 +c0f14f9861c98254 d58d4b4bb1086c05 +c104bd80860fc0b1 df0ecc40f518d909 +c12129bdd5d78740 10595938c8c8e32f +c12ab4e87d71b1f5 865652643bf181ec +c12b9cadd461e1e5 c0e51cc6fee1dd50 +c159af02371feeaa 8b00aaae778e6fc4 +c160cdf965d6f510 4922a9d811ba798e +c1adab490fd804d9 360d38dd1156dded +c1b1762516632ed6 dae6dc18cc8ced3f +c1bad00c50e8d7b0 93789b3c9a2ee3fc +c1cbe304ca7f20fb 30c7b78b2b1b042c +c1d0788e79377da7 4a8768fae2b0053d +c1d12573ebe85f5b 9d8da2f004b7a291 +c1d8124606ba752d 639346e36cdffde3 +c1d9000e5b796518 4c9c0f97d72b3598 +c22205489a124dd5 73d60bc774442cc5 +c2224689a3f245b6 cd10f87c711cc8bd +c227d53dd911cf01 43698a9e0b2b6f4c +c242d1e7a6a4c671 843da9114078e37e +c24615b8da7df663 2dde5c8f19551172 +c2690e15104cd0d1 be9c0895d05914cd +c26a52045b291ae3 bb8e5ca6b4f947d2 +c275846e82b6839a 6d3dfde02369e0c2 +c2780a4f92e3aabc d63aeb8c65a7e27e +c2862ee01c21d6d6 01c17a70976873c7 +c28d28656401d582 04bcab2d14c3591f +c299c434dd3d8fec dc2f70d1e2791acf +c2a1621c37eefebf a1be9a81574ed529 +c2b0580eb48013b9 8dc1ee584e6cc4f1 +c2bec66a4d123c9e 85d6411466ac624d +c2da6e0f0b6deb5c 200cbfe3d7fb454f +c2f404620a1c24c0 28dee687a676be74 +c346b478160ab629 361cca8c7b0cc71a +c38d243b24d66775 559509150fcbe6d8 +c38f64477f03f4c1 49d4c7163513bf6b +c3a213b255a6321c e0584edf7f07733e +c3a403ea6a0d1db6 9b1d9a06d5dc624f +c3a628d525f3de6e 18bffe12bc7e232a +c3a8d8c96b232d6e d6e8bc3f7dc897a5 +c3c45c5da30582d7 0efa9f820a460b24 +c3c56b3771bbeda4 806ac57654617e21 +c3e575b9949413c1 b029def739cb8c42 +c3ea85026d5b223d ee73a1b2d6f5faeb +c3f6ffedca62ea0f 6c25b2a957231129 +c40d18ca8d96a388 56d535c3559fa1e4 +c410d31c1fe7b902 d1717ddd08bf7dd0 +c418f3897f923d8b bf8fc179d6c1f8cd +c43abf1906ae0561 ee23742e1bb86075 +c47ecf6f1e261e8d e6ac886da938f597 +c4a111f44e4aea7e 6ef93f4c314a99b8 +c4a15fde0759164e 625b9f857ba6c21e +c4bbcb3b47169b90 0af95f68d8e586a1 +c4f10ed9ebb9cc9d 4c93065552dec1f6 +c519aab6118ca20a 9e19ab588445aa19 +c51ac2f873764196 4703ed475a8d7e40 +c52b252703a7c073 c15871dfdcebb844 +c55d8786adab9a39 5b494553ac3ce1a7 +c565f5c98cdd2b1b 1e8a1521f97f690c +c577a10dbb543660 830d5f35030e63d8 +c57aff0505e7a1ff 208702260bc48f88 +c581ac7c383adcad 4d38e172df6a6f00 +c58e48d4a497214c 69c8b99a7464cf5d +c59205475a6774ed 9a077a718a335373 +c5be14e16f1172fc c51a02c4a97cad52 +c5be5d0514dd5e0b 6462e77f37cb4efd +c5bed38fd315533d 252087619363bc35 +c5c4612ee4dff316 70f37386c29fca0b +c5c4d509babaf397 614eb837fad135ad +c5cdebf5908af66e 804e4094521ce3e4 +c5d3848a66392f8c 2d377c906262b84e +c5ed79b52723d550 52caaf8570febfd0 +c5ee6df867689b26 ea6b0264e940e202 +c5fde3c2821c8c62 76218f18e55d00f2 +c611d560beeec1e3 669ec3a37d769feb +c6254e281fdada33 c2f61bae70839cfb +c626c00656f86d62 0f2518ce6ef2ca2a +c62dcd8f7b9c7e03 cef17819a81900b5 +c63a1caa6e08b965 7604cddb87128f53 +c646cdbf76e5d5b7 fae9b9f08d33c178 +c64786f53d6171ef a24c7e0f37a924b0 +c661655f19ec6980 9e1aa1994c9530a3 +c67b4769934f5606 02ada64cacb37d9c +c6a1ae326c75d291 c3aac5562f72519c +c6aaf7de8773277c ade6355c4a0d6d8d +c6e63f45af46e31c c183e9f1ae87e6ee +c6fa7c504aa7f2db 26c2e1530a86fa9e +c7537583e7b2ab80 1561d5115e458a0b +c75b5aaf2a9c127b 1bc4156ca975049f +c7618cabfa833a86 012613e3f24f4797 +c7675739086e3d0f 6e61b9b83e9dec57 +c76809be2d86f7e4 bfa0eab5d7b8ddb2 +c79b739a4538f137 d428354b175c0139 +c7a697fc9a18866e 702121cdb569f1fc +c7b11bf5643026f8 5eb480b1d580d5e8 +c7b1cfeca9341f0d 1e18cf2dc93e5fb8 +c7c00c511130f5e9 83b7cc813ad47502 +c7c1b2701986dff1 901c8be30e2f4a1a +c7d45c00de87649d 20f4b9db29048c08 +c7f1c2fd8bca7eac 5c97778563d700df +c7f1cca19dc1af01 5b67a10d99afdc89 +c858c85f92fb0581 00cc86806aae9b99 +c878233511e6b4cc 4d9a404c89cd7638 +c88167756f5cd9f3 95605d12289b13b7 +c88da71e9e268c79 ad826456d6c9871b +c88fde361025b69b afb08190b332c18f +c8b15344a0a46ed8 8978e5dd4e6854f8 +c8b72cdb034ebb83 04f65a9acb7190c1 +c8b88a66bac4d294 1d32d156728aac2f +c8b90ce78bc0f422 afef9d3cac205aa4 +c8bd77945618d19f 62a8b65e4a6a43f3 +c8c0705b11a8bc3e 2abb7658b4cf8589 +c8c433e4aeca70bc dbff74455daf52af +c8d076cdc5c03713 a7e4e4c0e90d63cb +c8d5cbb564e27630 a30edc608cc154bd +c8d7a31b10e009a9 ccb64a0850db913a +c8e075fc6417d325 d502db64990978ed +c8ec1547238a7fe9 bdca2a3edb343ac0 +c92b9732ccfd2bfd 0caa44f1a7d29221 +c942c25954b98141 36bdda570a166f85 +c98870821a35647b 77449b90134c145e +c9d22f2f221c7cd1 5aeac81330dd22ca +c9dcdcabe68450c6 5c0cc7149b3ca2be +c9e90509b2267157 e4e52bcf573d897a +ca1318207c873a1c a82463c419b0a3ec +ca29b00eab6ac180 5b59060ac0311511 +ca301c09908fcd2f 6e1c04c3dab74e22 +ca317d659382e172 9b82ff6c42987f49 +ca4f1b75614cfa27 8d8dba3efb6a582b +ca55f40df5dfda16 0bf1122276b2c3cd +ca597e6d95ebcd7f b57c3b3a44628757 +ca610ff225b54e8d 0928c9353ad088e5 +ca62c6f37ed35a07 e7da13e0d2150436 +ca96adf50f2d0d01 8e6981f20ac3d192 +cabadd86c7804e58 55011ba116d0388d +cac8fe7c551fe427 0916a0a1035d358f +cae3d13451f45f15 a290c53efe2737b6 +cae8ea64148ed721 7e171365c6eae8ef +caf370f972954d87 f4bd8335ae809f28 +cb314ca77f490f31 36b66fa4a6ad563e +cb324143ee99c626 a9f064e5585ad2b8 +cb41b35569d917f9 fab613c0ff405d3e +cb55bcfac42f7a12 6aaeb1dd5edd7da7 +cb698b6ff3190bd5 4b4bb8a06e0c45b7 +cb838a65cd1deaa0 cbd8b1eaa6e45e6f +cb8e26cd37095066 69d19c71c3c92218 +cb96c2950f5da497 91711c4bc5d26fee +cb9d7a813dfa15f8 716dd2eec1fdcd8d +cbb95a31a451914c cd6692400d325ff9 +cbc9dd1b3c28213c d1f5e82f11b149ce +cc24b14632c945fd cf657a9c6e0c3a5c +cc515f5dfb1c6733 4d1273562791730a +cc543fdc2cfa9439 5d394c7a8b693854 +cc54edc875aae715 22db052b23de3c94 +cc9ca2e84afcc0d8 9ce250a5d1f9d817 +ccbd9a13768d65e0 f6f600f13b7062c1 +ccc1c65eaaf33b5f 713ca295e74884bd +ccec6335aa29d451 f7a0b76bed43e58f +cd1d11b4c20bb7c8 1b352265bd67fc46 +cd41c7d470d77cef 945f0fc79d23f181 +cd6d17847132a88d 616530f6ccbb9885 +cd711163789916e7 6f87f516168f2f01 +cd7ddfcf2a14181c 9e61478006378e18 +cd8a2d9237f72cef b48083785944f096 +cdaf075c15ffd4fa 3cc66f7f7f160ade +cdc4b51ae8b17a54 5d6c5d2fa361465e +cdcc5f9c69617aa3 e1f0063fe9891676 +cddb6746d679b557 8b990da17cfd586b +cde7f3e79d3b230f c4889aeb80334ae3 +cdf6ed64e724982d e86c057b9db7c551 +ce070cea04eb51e6 6718e5b3154a89fc +ce07fc2a6b3b0db2 05500fe7a2395901 +ce1736ddffa708dc fa94bed954892226 +ce4153fbfacbaf75 ab614d64c00b52f7 +ce4d55d48c153f7b 9795b1ea1f5deeea +ce6ca219907bdf64 ba161113a1699b3b +ce7da0137c150157 b7491ac8e4749df6 +ce99b1297bf30cd8 a618460e0b9030e4 +ce9b0789fbd6fba9 b7cb01fdd12f8c2d +ceb453ca85ef06ed e153250b4bd338e2 +ced8a039e797cdb3 cfead5939861ba7c +cede760dcf94a8c9 b870c78078a1786c +cf04420d4660d9fb c51395376c8b49b9 +cf238983415297bb 73319d6a3d2d7118 +cf2b6c9a393710d5 2f1df30f1f370c10 +cf2f6aa65f43859e 93562b737680684e +cf5649c6ba139efc b64576879ef0f586 +cf61ba8d86dedcdd 85d8b172d59fface +cf655c475813d1d4 47f91ef544b41adf +cf743d9082ceb9c7 ea406bb3d4cf7319 +cf74f1fa6049b13d 1fffe9e34db7a8b2 +cf75468bd031c4ef 0d7106c733b90a0d +cfbfb127849a9e93 73b14f1a99c458c9 +cfbfcccfc99cea35 5c2b850303eb57a2 +cfc8fb9b9a3ca23b f99a86ecad6eb2aa +cfcc0eaeb015205c dc248015f07d5135 +cfea72271afd273a b65e298e19e75f72 +cfecb849168d4452 85c9514aad4df707 +d0066cab07fe8de2 e4aaa791d40a3ed9 +d00fe6b6c63575be 891349784a88575e +d014f16e0dc12e9b 5a15d2b2007a30c6 +d0340f069a12191d d95c52c06e6682d9 +d0427bf21db161a8 4bffcb863cd88260 +d0437d0f347b1214 31793f97a8d0620f +d04b017caa0bfa31 dd00b8a46a1aecf4 +d05a3532ca47cd6e de708658afd79dc3 +d06263d0628755ad 6a6476f2ac876893 +d07a7d89e087d101 188cf1569d1eeebf +d07e1f491d48947f 9ef75099336102ee +d083dc3c0879388d 4224503e1829e57f +d092de644b2432ce 3f129f63233c1858 +d09e231f2f826085 c44cec263d31f09b +d0a0287cbb80560b 9c1864a6603ceb65 +d0a6da19f6a80176 ccc1e19e13edda33 +d0ac8249f001a680 b89034b35eb4bb52 +d0b97b6271e0409c b1d9b813bd437299 +d0c0586325d3078d 84fd2d0b4255f644 +d0c4501d72934438 66a06c35b48f01d0 +d0c8e82fa2bb3b21 9a7a60a089162b35 +d0cb1e7b8a516e30 32f2087c04f2701b +d0d81317e2f6534b d6256327b444959f +d0de9450f5d99452 b428c71697ab4207 +d0f9dcd818bb7600 9e5b728dc07378d3 +d0fb7c03fc69e824 3e5bb21dedd0d71a +d1042d345d562ebd 57f72eb20346fe06 +d10fcc2c21b83f45 40217c5b4e49db12 +d1166018ed7c6340 b9531923619cc201 +d152029ea6feb650 3de856d169c4f054 +d15afeaea40025ac 96f1b52a0209beb6 +d169e69fddc8cbb0 10baf2b238cac3fa +d17b2f2d0ede9aed 8080c0be7632f3ef +d189b3d396a67d1e d3f3f98e492fa9b8 +d195a68986590b6b f78dad070c46675c +d19b616bb0aca0d4 3da328742b7f1aa1 +d19bfcac322306eb af4833cc9831c8c3 +d19f501c73b293d7 6887e4ab473833f0 +d1aa0f8d745d9ba7 ba6196e5b6153078 +d1aacb9efce3717e a0a3b60d670a7d8e +d1bc15478d0b5b9b f4b0f7d97b5ac3e8 +d1dc61fec1fb3c58 a470fbe0710040c7 +d1f965259f4d14fd ea68e35a42d55d6a +d1fbc5b1ce495866 9b03f21d3bceb670 +d200ee773f0f93fb 8774758bce1a3be3 +d20bfd90360cc88c 48656ba6558e36d4 +d20e157f7f043f2d 15f0880e66e78ab6 +d20fa96676997535 1e85569c42c2259b +d22d2d0778ac82ad 59b7cb5af337076b +d23104cb8d101950 ce3b163a7b309b0e +d23c417a1096b21a 23a14ce5587617d9 +d24c364d16915cfd 414a44ebfff79338 +d26efcb1066b38a8 c8ae75847fa316d5 +d297539819d521d4 f7498ccab8c7459e +d2adc2ca369a84e6 d179f80ba52a7a56 +d30a1310e7fadbb4 c7cd6d5df53251e5 +d30c12b6cfa7b069 c3209652a4a1f92a +d31b6078fb03a562 416133472de0a81e +d33c23ebe4b1758f fa9f1a3bdc9c88ee +d33f508a3177d106 a6076abf07db44d3 +d34332bbe094d5d3 5fa3461dc2048612 +d345010cdc11366c fed2545f1dee653c +d353cdcae5307140 381d62be4403fc20 +d35bf81e3fd0e70f eccdba4ec8370f74 +d36a0ec9b6d7eb2b 77e78c465cb963f8 +d36f26a754b07c6d 36f0ad5ef56c6441 +d37b4167323b7870 7342973d52428531 +d390e48a5f9a5b94 174fc9ad81a99f65 +d399dfb7977073b5 837d59ab83b88d0d +d3a2b9417d2130f4 1861eb4b34369b96 +d3b356cf825601b9 b0e211d85f155879 +d3b3e6d6574bb298 c07e6e79ea9f49d3 +d3ba040a212ce7ee 76cf208e1234c1aa +d3c9dd4c27ac4edf a5e62001c3a96943 +d3d786481019cfeb 8e5b09ca445f6237 +d3ddea9366c7deb6 d79a590e2a6140ae +d3ed0776cb7498d8 b68d1519c952799d +d41b219d51b2666f 9350e9c4837e9df6 +d42874f5f981c501 11bcf9c274108ae6 +d43e70bcb00a581a 9e1301f61e2bd6a7 +d44771773dd384fc 25480abd3f701146 +d452efa28d293bc6 38f65404249e6388 +d456ca2b6c4ffb7d 28ff37e9b760659f +d46b2b3c5b48c69a 882826b33f63c020 +d46f75a83c75924d 7ea9362d5f95e320 +d475f2868a74b0d1 68f472356f6e3b01 +d48265eccb1c8f7b 6e8b9b588e585187 +d483c62968880371 2eeac2454f628703 +d485c18173b851f3 c1efcfa57c93cc8d +d48a7dd52dd86a38 0a7594b3a14c9a83 +d48b477723764c78 4f44b9c694636377 +d493eebfd40ffd8b 5c7aeeb16c0185e5 +d497c2a7ad29b5fd 87bb307c0e02544b +d498f69500403492 6c6cdf8c57e0fb22 +d4aeeef5c7e16fa3 2dad8aca3bcb27d4 +d4e1585e92312834 f896eebed37fdf0e +d4e91062e17b12cd dad31f38babc55a2 +d500dc4e33c9174b 6628ec9dd7c4005e +d50871f27e7110af 67240f0e0b571c00 +d522b563f5d7d6af 8f809d7b6fcc1fce +d55fdbe997a33de3 e32c723a63e037ee +d56ea522f7670539 61e740d039b5ab9f +d59e0a0701987661 bf2ece990ab5918f +d5af49f10e748f97 3efd2d953e7ba35d +d5b15d557afdc065 f484329f05931065 +d5b1bc864f498064 7f90b551302a99f0 +d5d00cb8101e3aea 9938cd87d7e2d353 +d6007375c34eeeb3 2904715d7723fd8c +d61a8b3afc985f62 b20da0a5cfeabc82 +d6416d6981756be8 1f49a72afda67a76 +d658d6d6373a7883 92c54787d106cbed +d66ba16f114b921b b946ef96c12f01f2 +d682be4c0a1e5ef5 dea6102abc15b3a2 +d68c509e60ca40ed e850d7e67df97f22 +d69b5cdc148d9dae 6fd7877e3f2120e0 +d6a0f58cbb0b58d1 86ef289a78c7dad2 +d6be92c2866bbe72 5c7c66718de0859b +d6c090ae5b47ac69 3ae6482720d2b7ec +d6c57cade9810b0d f77cc0ff4fac2ea2 +d6d0f543773830b5 deaef8758e8726d3 +d6d703fb8e315813 128fee0bf0cb329d +d6da31f573e45c45 741403651c2f0409 +d6e1b6a1d0c1a340 90a37f85d2d09b5b +d7137824fd38da58 3bcfb9695e9accd2 +d729734d778e99d9 bc67d6df509d765d +d73353f3ad3ae530 40de27abceab1a25 +d74519d65b78ab5c 8cad995198a35c96 +d7594236506fb97c 925c5d8fbcbe3873 +d78030040e0da53e 0c31b9260eef995c +d7828a555e6ff785 a207a081acb081eb +d7893c90e604574d 279477d69cc7ad32 +d78fbb4efa3e7d58 c46dbb0ba7f2eccd +d7a45875823c0916 d4cc03424d19a1bd +d7d7f756a207e361 f715f695f5734d41 +d7e5cc259a7b1a20 bbe2e85dd8153f2f +d7fdb52d9df50d94 b997d0db84b0e9f2 +d811aab2f427f36a 111e5f226cb9e9ae +d818a9a3ec60d12e 910875ed513deee9 +d826bdf3cc6ad2aa d91e56c4c1a47c8d +d82b40380059e341 9f7cb60e0e3ce179 +d838b2c399bd725f 1feb53c5efebe15e +d83cad9a7046685f 35708af8df577672 +d84727318b91299e b3211e1f21fb5518 +d88bbb0f5c1e8227 39397eeddf048769 +d88f4e3bd578aa8f 67ebf3bf69b00f11 +d88fb994856e9b94 0853307975b86f0b +d89d0f172e185764 1ce3af0835ab6d1c +d8a63569aa7c6dc1 8d0dd95ec459e2a0 +d8af561a15d6569e 659fb3cc5398cebf +d8b2d57db170b32b dde110897148c1c1 +d8c4278aaa184943 b72716c0aa2447b6 +d8c7dbf1cf7b9de4 0d37175e24312a57 +d8cca070f42af9b2 40272257719b03a5 +d8d6aa0fd3f63929 1f665897c41c42be +d8e26e34c39d79a9 c1b95de572251264 +d8fb01e344e3c4a3 f670943cda4185da +d91710639b2520ea c2dd3750c0fddf1e +d91fb1eb92da9409 47204daef98d9a57 +d9301d2e636194bf 16f1f92603e7709f +d93a38a128871e47 a1fa1d6b107e6bcc +d973d8f9080fb6b2 e14972e9ab3d9645 +d9a6f7544671fee2 35b69cbbab892d87 +d9b78d8aa71ebef6 b516f2d41ef9e379 +d9c2bf7ef9d7a327 84a8b98725a6f812 +d9cbb6a771f95959 9041876624d64b57 +d9cbe4702e5fa904 22db8e28c0849cb7 +d9cfe687fea00dfe d1a5873a900074a9 +d9f6d28c9f6d69de 73541e18eaf6fe9e +da09e24b6d12d9d2 61641dc0f05f521f +da0aacfded1e6ee8 77ccf24b3be1d95e +da3d567dae495971 7d992392085189f1 +da490287ad389dd0 2a23ab5ac73cb329 +da539b7435a73e61 664cd5c416376379 +da76c71b2591058a 1af1e34b8f04d8ec +da9cc4c4685f3a85 0ac53aa19d852fb5 +da9e4354c7e2708c b21c8c932aa8816f +dab0d9af2d70e59f 360e14b5f7ee7cfd +dac06948df80b4b5 b133c014d598adec +daded9ac7ab44603 18152d9bd790964b +dafd79e751f4071d 45498a95c9e4d21c +db10a2decba8a5b3 43b25b0283a4b9e3 +db10cf665fef0588 c5e74c967e165e08 +db34356f10d01c81 54429521ed7dd548 +db4967d8b5ac5ec2 afbbb52ed5cbe74f +db4d61d212362666 7114967c9066acde +db570bb064dafc14 90244bca13822973 +db5d1d4ad81f1f73 b178215072c123aa +db6fbedc75d6acd5 7c03c53c16640e88 +db709ae7b437aabb ac84ddc0df8a3f4b +db85835927f1c0bd 3729640e2893f39f +db8688d31781cf8c 9f1c0be999d80615 +db8f139ffcae46ae f80735879f77512f +db9d5d935d35ce16 161362bd30a93d0f +dbb85439dd84b6ad 10cbb22dc6ce0b89 +dbb88c01016f3f1a edb7c6a4c9f89438 +dbc9c5c53e80c200 356411a6a26cd732 +dc22eb6e3f6160e0 ccf09fa16058aa8c +dcaea47d7b1184ff 8eeb2964b52bae8b +dcb7a6d7eeaa524e 7e16f27574cf0bdb +dcbe8588101d1077 efd5eaaac2379f54 +dcc3393128d65791 6dcacca3e9af8db8 +dcca047cbe1850f7 4e662cd9275d845b +dcde9bdd7f4de749 f8a538acadc15eaf +dcef150ed9245f8a dcc74c8cce390cf1 +dcf1ed0d362bb83c db40003bf76ca3cb +dd01f021c2b887df b0cb705c40086a05 +dd10e9d49102d5dc 8b0190bd57070c74 +dd17fce5ebd89fd8 a406bda8d5eefede +dd19cea6d38939d2 7f0513ed24f351e2 +dd35da3651e4c284 8bc08a4cfe2c5fde +dd4054524304438b 6be5bee405990b96 +dd41efe4aa2f4a96 58e161f3139440d9 +dd6898d972d31d6e c7a1add38fcf6ca7 +dd71d209a7260208 43f221d54d9bba55 +dd808e7132541ccb 8edc0f0027660bf2 +ddb6ccc21dedc0b3 ca3a5a0952f2f1cf +ddc08a6c45d89890 dfe6c8aa4147f43a +ddca837fad6ab9b8 ed567cee212e0578 +ddee1b7ae6687d90 e69bb7ee9b8ab5c1 +de24b8bbe69fd3f0 e2b095823f9180b1 +de39d1980a7e9f5c 5cb7eb83df13d833 +de469f542fd0bad7 397e4e4aae393a04 +de4888a7ee3b1fe1 37404164bed27214 +de4ec2421addff6d b515e3f52d1743ee +de5700279746d4d1 d8ef2d506bcd9f5a +de67171e5d781f50 742d3a8a42c2eb60 +de7d70dd7fde02ec ddf1e702b7a39b59 +de88e9d922c63ff9 c86f648531620688 +de9df1a71c951589 61753483d866659c +dea6bfb946bb3614 fd9c3a9b143972ce +deac81e38179b28a f1886018747f6dce +deadac5e0d1bea2b 45c2008c3e0066cf +dec802210b8b7ec8 73de9120149422a0 +ded524f0ab037833 491b4696410071f5 +dedc3589dfcece98 24bf04ba6ec8ecf2 +defcc6fa2a16a5b2 c87559596e2e3d6b +df051c484707768c 96116ed42d2685bb +df081e143a8a18d9 80b9b66b1f725646 +df12cf6772c7d03d 0fcd94b5c200b269 +df15f31e20eafe05 43c61558bd1ab6de +df346419b05584ea f903e49514d1956c +df3d8c581088ef49 77923f235ce5a917 +df3fb2ea0369f9fe b655886a002df1d4 +df4da21b2462e3ef 3b66a648cbda01b9 +df5f79feec828bb4 0f4ec43e37a50417 +df722b745603ebac b5fb0c381375516e +df77c7ee23c91ef7 47404848296e3ff7 +df7e24b96123ad92 b2059a9be373ef54 +df8e01ed6b560927 79a8f12f221cfd47 +df96b141140a4d0c 5359bf90ac254b7f +dfb6e609c42cf9f9 932751c5c5151279 +dfc2ec7e4ac060d9 b21555feaa206dc1 +dfc96c99ab162f37 553a57e0d31be0e7 +dfd32c90966000c9 aaec694f8022255e +dfe21ef8b52aff03 a052708e6044ee4a +dfeee522a4a3ef88 e1836be47341528d +dff6cdeebeb061e6 d90e7da422a05f05 +dffdcfbdf94d4b30 e63099192abe5f1b +e03b0df226a5a99f 0fff576980672934 +e0675980b1979c33 ff53a670d19e0ba0 +e06b8a8b5548e3b0 63f3e92de71a27ef +e08e168225f8c14b 05719c0e6b3c7443 +e0a0d46cf38447ca 80bc4ae0e72402dd +e0c00950d286c62f 80cafe5d41d0b585 +e0d34fb09c02a6eb fa24bbe72aa69690 +e0d7aeac3dab8ae5 7858b7b3138b2000 +e0e7f6b2961b8f5d 63e29841ead15a0f +e0f467ceca3137f6 26edf8af681775f9 +e12017de4631271b b2780067bf208731 +e1229da10883a0b3 14d7a1556e686ecd +e126864eda4a45bf b0fe8980cfdc50b8 +e13fbad0ab0bca68 3a2c8fb880326993 +e1403c4a55f6bffe 5aec3eb1bbf096da +e1509a69c8c9d49d ac04b344e70560be +e152d2588be71911 a1c983d4cf9073b5 +e15a56c66aa04e93 eb8f1d7e34f8ea00 +e199dc8c539c324b 52a486c31eec16bc +e19c0fa2774c6f37 c8b319d5dc8b0086 +e1bd6f0b07b94131 01e2bb3609e4c1ac +e1da0c844541976b 68a995dd7a4087f9 +e1e316f7a7e37fe3 3a1dc39c7c1c6603 +e1f8f4d09aeb35d8 a9198d53aa34cb84 +e20eb3aa1f62c438 ce9f9285372ddaad +e218559740e70fe5 b73543f0799e9b96 +e2350ba9f842afad ca307ceb73193106 +e24356683d558366 4116f4a96202d78c +e25afbb32939a623 29a416a3cd81f789 +e25ea9db9c9e7cde e35fff151346fb13 +e26e6f3736fb023d 4c82b3ad7304ae05 +e2ade3ba1b7058ce 3829c4399a1cc379 +e2b7884e80851c6d b62498dab713ad37 +e2bd1b46ef27f605 33901ae6b59d6b65 +e2c4bd155dfd1166 2892d8cb4013d5bc +e2c71769be672a52 a61a16f7a7820ab1 +e2cc55a7489e7511 68f7973c7ae55aea +e2eba302acbb1aa7 b8dcdb7065a8db58 +e2f7084097a3b7b1 ba7589ec0ae1f8ad +e32ad0c733e6877b 689c80cf49e16071 +e351fede4bfe79bc ac5ece6ad4652d90 +e36a47fffc32a81f ec042606f49249b5 +e38b61443669dfca 393671c42394fe4a +e38c4f4058c1bd08 dd2965ad1da4738d +e3b68ab54c808c53 8a0178096121b5d4 +e3b8fe8fbc401ef9 92610e5cba5605cc +e3bcdaf8ab996066 2d1578f4b7d3bb06 +e3c53457e02b8e01 fe8c7da07c6fa564 +e3c5e91dc2c8abc2 88152b1b5a90832c +e40fb7aa4e742b8a ae5709e5c2f086ec +e421ce6e1cffc63a b35cf34bab1c1625 +e425459884ef8c0a 6fd3e586750deec1 +e4266b8c3dc88219 274b2b0fa046decc +e4293e91cf517f6e bdc88262100f477b +e44a28487ffebfec 51bda662e9cefbcb +e46b5899a99800ca 40c135d22694086f +e473c79726c18cb3 07b6ceb414c347e6 +e48bae7a29ccca2c d11c0f0c0ac35e33 +e49564c34cf44839 5d56c10c04e49055 +e498c7b8d2839fe1 53e1b7aae60b9b18 +e49996a100c66bca c2006f24ef442aea +e4bad638257088f5 69fa252d85530269 +e4bb242753bad989 e59b45114b579d2f +e4bbf295a2372e37 a50218d3c12cb6a5 +e4d0a098c4fa77b6 920ae14fa4e3e450 +e4d2207cdef7f0ea 73d4cd187738a162 +e4de55cb1b508f43 135d86856ae3c393 +e4e5b6b129207bc0 0bfb60a7223b8964 +e4ed22c489272d28 8fac4d68099283d6 +e4f4ceeff1e68f6a 50d15f9b6abfd29c +e4fd444819ffa2fc dd13942ee08e28be +e50c38681d93cefb f47664fe6cf0c21f +e5113ec9e85c4d18 5c982e88bfa584ec +e5561bdef3fd4623 ec2f4dc226e92fe9 +e5563e082b795b4d 57d4c2581590c6d3 +e568ac38c173e6f9 3ddf7dd22be30f05 +e57cd2b222410fe9 c25e5be217fc6541 +e58773dde44ad891 0fe3daeb0e188d66 +e59af9f5b45fbb1c 2e2aa71f36530f0c +e5ad1518ff0c0fb0 13b5a655bc019bfe +e5b2ff95c862b3ce 9b9038791107f9d7 +e5c5a03c9b8d4b51 b6a5e88eb004af18 +e5d14cd81686e0cc f942ba80e52e97b6 +e5d857b3d1cfa372 2c9b952939e9dd8a +e5ec99f09a8b35d3 e79dc9e100f18f87 +e5ef964a214ed219 59aa273751e667ac +e601cf7ef6a1f0ac 8e55c5a7a995a864 +e61116b8a6c81ff7 0005c31ef020b990 +e6245ddef3697b62 f980b75fa9b07001 +e6251b30726e5241 d07525a5bde49001 +e6357aac5646bb49 a155a9f9ddfa5f85 +e63b12aae434a5d8 728492ca5752b135 +e667865082374baa f9c1a28209102297 +e672324413b070c6 671d21abd35541bb +e6735108a73ad2db af14d85ba9d839f1 +e681288f030775ba 8a10298e7512278f +e6a0abd902755df0 3701b7dd3e62a03b +e6a62a34e0473ee2 56be1019854a4762 +e6b3058e28791a7c 2108005356643142 +e6d5aaa16614a17e e26c3b6048f9bdbb +e6da04aa5bf8f1dd 22dab97b4ee1ce12 +e6e2c5bb8056c3bd 920e0b5994e099aa +e6ebdc7b2536e949 2ad66d877af7bb00 +e7101cecfa8293d6 154900664e5ff875 +e714ebf3e4b9b44e 72d5211ffbdcaea0 +e71acd75e2393f0a aeed5602a08ebae4 +e72c3dba5424a6ca 2291dfcea8a2a8ef +e73506a0a022ae42 9d4f8cc88442aa6a +e735d645d297644b 29cee0f58d020f12 +e73dda2a840af6aa 0518a01c429605d4 +e752169d45316415 41a10c8d8f66da50 +e770187ce15ffadf b4da1c2f381ae648 +e77ad1f6f2021636 791c5024b1b6bcec +e78966d144d82078 3ae1cd2978a4b988 +e7a8a869722d45d9 f1860339812feacc +e7aac8d5d8d59993 2e9d25fe1c287bfd +e7c0121410f17d11 ef74c822a5627a90 +e7c5e345e8af1e7c 9ba28a93f8430776 +e7e545e399aa2478 37660d81bc8ba701 +e7ea6db743a83a34 674a05444c191049 +e7f99188f76ef9ed 734765e0e29d762f +e8019c6fb3ad7588 57372c0205c2c273 +e80873b331ab5dbf ce93cd17c6556a0a +e826a20acf15c6ea 9f9bee9d9989b963 +e842125cbcb76977 b3929fb80c883440 +e8519e0a0dde718c a7f63cc5ca6b8f6f +e8604c04b8ae8298 db306dbdb354d3cf +e8626fcd57f6394d a761b613cf79e310 +e86a2089fa30b121 c923c0337b3a7872 +e88b4ec33e198b10 15f70a8d863c76d6 +e88d13ab3fca65e3 91fec0eee5e2c452 +e8986f023edfb812 4610675f993d36ff +e8a285c75be16c47 ce00caf96e6896ad +e8aa2270d239b085 e9fb86195018fe61 +e8abdea010d2ea7a 92d5752d4062ca5a +e8ad81ef097c83ca 2836f5521a4aaa1a +e8b598360aad1d29 b519c5a8a28c9953 +e8b9d59a23d46b7a 4fa043de28910bf9 +e8c51058b1e633d0 8e4733c7379f0e04 +e8c60afb6396c621 dc80acff13053723 +e8c9670cfceb1846 741671b50211f511 +e8c995c8d64fd3b8 92a1d1d3849e1cb4 +e8ce80ea903a5f4a d92792d1402958a4 +e8e503185b89ee6c 3c4789b6cba7517d +e8f49c2f481b18d8 87012aac17942c77 +e9167ba02a04c495 e461c968e8ec22c3 +e91c4c5b313cf6f5 b36f8de6b7b76b1a +e96f8f5da0e35d23 406974fb2cea6448 +e9872f0282fad1f0 180d1ddc8f0ccbc0 +e9883af43902d4d9 43d157e4635743bb +e9979f06fec963cc ac5b158f896a28f7 +e9aa3e868d01afb7 0b8eccc98a8d4711 +e9ca3806fa897978 42a71e2ab2811236 +e9e313b8c4bf5b38 c0f7485f5f69789f +e9f9cc2cab8f03f9 4662b87a57f2e2ea +ea05c8a3ed015c83 714a1e2bcc9c1c76 +ea0649343c804b3b b49fe44eb22d1abf +ea15d86bdd170b53 ae913ec8ad90c334 +ea1a360b0d91190a c6d46d987120f08a +ea1ae51fc6edcc97 8ca496a59d8a756b +ea1cba31a4fc16cf 38ccfb918ad68a69 +ea222be158f2f313 568f3b2f515823b1 +ea4a6971496f9464 d67a68a17b52bdaf +ea7d7c591a65f2db c67c21dbd2a01a61 +ea920136fbbddcc6 f907fb2980c40a80 +eaa2ec8c0543f52f a0de470245b78274 +eaacbf8944cd96f2 b14046d369e286dd +ead08ed7f98e6544 de4665479e41bb55 +ead7e991f7117afd bb81bcd9ad9f2f45 +eae5b1c863af1722 3e27dfa2440608c8 +eae6ac386bab3b69 74c000b6bde5a7a0 +eaed790d0b07d314 e8154f9eda331244 +eafd31abf7a40a71 2826c65b5bde25f6 +eb08eb04ca47f4a8 4ec6f75fa1d36f90 +eb0a93c49d3a8e08 a50ab02ac6550ab8 +eb48654887ae026a 48c681e25edb5246 +eb63f6a09dcc969d ec7ee94c33a953a1 +eb846dd81c0d5aa7 85485806b8701d32 +eb862ce19646aba0 d971d8138a933ea8 +ebaf7f9f9de23015 350561af0ac8bdbb +ebe672363226723f d3fabbb676f63226 +ebeed09fdfdba3d6 fa20a2fe0230fc2e +ebf43823f906b314 66c683031073795a +ebf6bc58b1bed8c8 5a9e5be8d09030f1 +ec4b08435952bda3 72c6644706f628cd +ec61536f25506db5 8b6c5271cd828c32 +ec6f4b47962f151a a87eacd0a7c42f57 +ec73ad50e661c48d 2bfaad0f781c44ff +eca3c4b9b4f25889 9176e6dfbaaa6908 +ecb64f2789df128f 255d04cb00cff6c7 +ecda36cdfcdeb886 fb4d75d6f706a53b +ecfcc1ffca0b366c 5ba080e3377d8653 +ecfd7f8b774855f1 2de90851fb67c1b0 +ed0b7c27a24923b0 5b4e3f7276e45926 +ed27be244d17bb17 1d313999abb6faa8 +ed2a0d621c834b3c 4f9dd7cb66cb6f61 +ed2fbae578c55e26 376305d5ebb06ee0 +ed3e788e5ba14035 4f79e3fdeee12623 +ed584e99986d9fb9 e0b66903b7360ec9 +ed5a9e3d995c0d79 95fb2a9c6fe19394 +ed5bd241efff72d5 cba8f89cd39c7234 +ed5d113faccc54ab a16f1a0e6fa66b42 +ed5d3ce381b74aac 292d462c98134a5c +ed620557f90b9430 9a2e2fc4f964b62e +ed9ce3de0e37f7eb f08f6dd5297b0bb1 +edbfd8a7ba045c7a 55efba683d662ca6 +edd39830c5f42cae 74c4965c305f980d +ede748fc7538d499 161b5b0f94396adf +edf362e55eafda49 8a529dafb3d0805c +ee22f5bce3b6f873 bfe870d0eba93121 +ee2cf947fba74b80 ae71f5c57a4e31cf +ee2d98b33bf531c9 321497ebb7a3f8fe +ee5da9a0808dbccc 5982e67fd801aa5f +ee67bbcca623db6f a4cfa4a5bfe6f4d1 +ee7db0604af1947f 880e42fca7790bfb +ee8a05a81b4e59f8 f249948ce3384fe1 +ee8d831b7ceb4b14 8bbc2a8938ce1337 +ee9187a77f7f30e5 c2b346b6219ba6bf +ee9bfba2984b2d95 505a2f99baf7ba51 +ee9d50f41dcdec94 f26d7339620a19db +eea809839c8dbfaf 784281862da20c02 +ef123c64acce15bd 22651698410476f3 +ef2aa80eeae239b6 f82ee52de7a1e6da +ef3f0e9ce714b900 c3fc3fa007c26f5a +ef637dc57d15bc6f 2d10e4303a072369 +ef6696c6aab9b58e 2d86dc3deb1c52eb +ef6e4b43501deef6 b4baeaf8c4f7aec6 +ef9c6df4292b3695 73f93e584d48f967 +ef9d159c853509cc b64ee4b0dc4b3950 +efa0052e64499aeb a48d0fcdc94995d8 +eff2e58c7e4385b7 4c047bf1d1b0b6e2 +eff87acd8ca82091 11f36d230cf7518c +eff96da2e409c4dc 3a418d529fc3e036 +effad73393cee69d ec179ff6ddff8714 +efffdcf217ab8668 933348ae3327d02f +f0056cd283728ffc 29b9177180a28216 +f0104c2b12a959ce a3d6806b8f0945e6 +f0141bd0a8515081 4bc1546b0c98d452 +f036de4b47798af2 2acfe1a9fb29a70e +f057263404fbfe75 9292849b2eeb6cc1 +f05e9ce8f6656863 487b433f7cecc3dd +f08491211ae85729 74f06265f055bdf9 +f0aa7bc9df9e9e85 85a81c93715f8d2b +f0adc9a04556423c ad769a17aaebc78c +f0b71d7ebac19502 2d9ce0b82dfcf30e +f0b9ac9c769ba930 a57d1fc29c56999d +f0cf643f2098605e 98d5a55b78f3361e +f0e09b61276a0eb1 4cca277346f58f82 +f10b640b494b5be5 d7803f6352054257 +f11306c779ec635d 4b3cdbf1678c8669 +f138cb8db63a2938 bc81926a7aee4158 +f15780c749558cc4 7b35d6cf6bcea5a7 +f15ce81d7d2e5cae 2e7a8487ccad81e0 +f160596cf0924886 6a332227918c7054 +f1616a597eac912c d6acf54e2094c44b +f16b53578ca81447 477f8ab8f26e3f84 +f177beb400c4b843 98ac22ca50294624 +f179b3d802db2093 5f1c2f10d1938567 +f184c431b2567787 3f7e9a28db8ab000 +f185950e61fe261a 55960905da5bbe51 +f18613f323c19778 fed05ba575b11bef +f1a1668e43f93279 50a76b7e67a0c0c8 +f1a30be23b8172f6 e6d76ba448c23a13 +f1aca79e1c7650b5 16245677d21cfffc +f1c4c23513cb808f 783e1126ca7664e6 +f1c86f973a31dd58 a996e38fb5d561fe +f1c9aa97aaaa46a8 7187e322c501e95b +f1cc3940e4ed45d1 41e70fbb8454203f +f1ecfda9ce2a3a32 d6aa984cab83261f +f204cd6cea44ae0e 5392580566b0fe3e +f207a7fe6da636d5 6cf205a9e40f950e +f2359cd418b41bc8 ede46d55436a590f +f24be83d95f46413 1fa26a7eebf70f61 +f26b173ee258b65e e8c3a78d232c5777 +f2c346e21d7192d6 98aeba825d921a23 +f2c47b9872b39626 83a797dd8d2addbd +f2e2a6b06446f5ce 5891dc56377be815 +f2f0400ecc79c2e2 70c3afa8caa2dfce +f304622cefb24a5a 63bc9f5276621582 +f316063cedd42c61 ca7ffb535cf084bd +f32b136fc9bdfbcb 323defa29dc5d1b4 +f35428f9f6fabb7c a0bc061d2f02acda +f35b04711186532d 2d9c09a6f89ad192 +f35ea6bd166e85ea 3766c0f53fece9ea +f36f186d29f2a9a7 e69924263bef0418 +f37ec729b0328e2f 928cbe91217117f2 +f38e17609c1f3df9 f7e32e7a373a8a34 +f3c79412fddf10a9 d0e742d377fa870e +f3d48cbdb0faecaf 92f32032cd83a09e +f3f9b88c40eda82e a1a7128a37bd61ca +f3fa4f1146151a70 49b42ca8fe759a5f +f3fa73d4dd8b023b 56ce421b5fc54177 +f400ce8c09b0610d 90d17fa54c029e32 +f4077bc50fa94fc1 e8a6a0038d34a6f3 +f4080c017e9129a1 379f92d0cf2978f8 +f409dd87ccd40527 0c577f0878c524cc +f412ce212fc9c235 41e03a9b5bb92c75 +f4136740bdb8308f b51a699ec5b0b606 +f41ec4ac23a6dd7d 260bca4b83ee277a +f42acba47a0c08a3 115165e5ec963b87 +f4365c94351b584a dd91e44c15fb1ab4 +f45a565c62392595 a9d342b4fd6ac976 +f45fcb0b07d53bf6 000e4422966649b3 +f46549a0a15f6c03 ba2dc3d9059bf5d9 +f46c5b8627939527 f82b79eb52023b5e +f46ee77c0098acfc 74291d137705093b +f47c15055374ba36 5989c9038b434577 +f48b7c45cc018c0f 22a81939b8c793ef +f494efe97df769ea e249cc7c14c13aad +f4a109388447df2b 7a697ef503a5081f +f4b73d7e3798f58a 34fe5552bc4bff56 +f4bf89c45339c421 722b3ce6bae97fcd +f4c0d579b470e048 d62233244fb852aa +f4cb0938dd2d5843 d70b613a226a744e +f4d3f933b70c42b3 9fb6415b39a731ff +f4dfa237f6b65d74 dc582c2ce1728d6b +f4e1a77592ce2328 e7e0933249053648 +f4ea8f3806f7a48f 31387861ad421c0b +f4f0e06901f99d51 16a2b92a39f62dd6 +f50b9274993108ec 7459e6e3e061353b +f513574b70a029ef 9470b4db814a3c3e +f51907462af18f56 cb4bf460f8aabb0d +f55315031c096519 d9a1da1925973c26 +f567f207b0ce27c5 1a47ca2456f08d6b +f598bf90e295748f b527180c3de7d707 +f5d8254fd33c06cb 3bb45e805f38d7da +f5e17d96642e82c9 cbe539fd16d21dd8 +f5e6247ebc7280b7 cbe27c7a85ea9ccd +f5ebad648498e895 72a178dacda0b8d0 +f601830a7986b325 49606ee2306553c2 +f64f1a5c7a214df9 9336ca1dceb23688 +f64f9732e92e8c23 4ca01772f6b8ee78 +f67eaaee3af2d87f a2f81daa38a9f996 +f68d416e8237718d 0bffda8303b9968b +f6ae1017822f6cfd 872afac85f24b8ae +f6c6fe7db623427d a5586be7374b57b7 +f6e43cdc70e87443 f7eb770b767fefae +f701c2255e188b41 4375ecf26c9ffc30 +f71752563bc099d6 8d67d00d66633462 +f734e0442fa86044 2507c2a8e51b1d84 +f735ed1bf904e41d a8e472ca1a14bfd5 +f73b21be523c7612 d3669a605837a685 +f73c6eb09203aff6 b970d1bbf4001803 +f73e7c0b47679cd2 c702c993ced5012e +f740cf88758ccdfb 75b718024d0162bb +f749484bea3c3770 394638a1142f9f19 +f767cafd7cad5b1f e88b3ab0737a2130 +f76932e8c5f14803 05003b23cde789c0 +f76fe27e951c6af1 c9645af7349bea3a +f7767a8c2efaa4ae d06ee06e039bcf82 +f777343fee910cfa 00e86a1a15dd0a01 +f77abb28d0d441ce 54cd613faef35aef +f786503fc35a8595 5649b1cfe855a086 +f7a18a5ec28f85c9 d71b01aac8e4e8e9 +f7af2fce06d447de 6c81afa316a5968d +f7b0bd6d214f9c39 9d73388cc679711f +f7c25adbbbc69d4f b37f4807991bb4ac +f7fa98b97ba1c0a7 0b2266c227d74401 +f80ace3f1a5099a4 7e42528c9100b1f4 +f815395ec4292d9b 9cfc61c410da145b +f81a9098bd92c6d3 e185c2986baae5af +f82323a4690736ac 72328b73cb116d11 +f85c942103bdffee 0f6ff6181f4fae09 +f87449ab816f7c69 661c578366370c0a +f87e72ae20c3fdf2 bebceaee49bf0b77 +f880babd5f39e1de 4cfb4ca29a29e0cb +f8829d300f661724 16913acbff9bd900 +f893d22d88a64e17 2ad37170f174e83f +f8ad2a1ab4cb45c4 7ef501d40e599441 +f8afad425980b969 5eee01e3ae68069e +f8beb1dda276e38c 9eef39541bf3d742 +f8c06abeab0d7f95 8147ce123327cd8b +f8c3759161d018ee 0dbfce12343503d9 +f8e56f8f47b030f8 913a45047bc2652a +f8f1f49682314344 f500da6f9cc498d7 +f914ab644206d427 c1b6d0e61754c069 +f915070f3e10631b cdb051c97f86c3ba +f919debb3a5ab255 04ecac30b89ec91c +f938c7287014aa05 2298a83d7b20f74f +f9532482e7801b46 4a535c2a06c49756 +f96151d07a81ed11 0fd13ef20c00a393 +f96976a490f3dfbf 068c8340ce2bc160 +f9d8fbb02e8f909b e01848e63b083b89 +f9ff55e218b94f4c 42ab39e0cf18d148 +fa0b3a2d56a72a8d 7e03244bceb6df66 +fa85edb9f16be0dc e4e648fe6915397c +fa9b777b31b784e7 113402f928a0cf65 +fa9e2c144dad9461 10830da6ff02dcca +fabd4c1e1dc01895 5c3161bd5350a22d +fac4265c8c8213b0 4115efe006c16f1e +fac5e1cb0f57d236 f4f2b735d83f78ed +faddd7c99be74c87 1476b7dce4cba8a8 +fae2b409766af857 014fe86a23e17e78 +fb039ef63df8d198 f487d29a03165421 +fb1163008b6bdaac a59a41e4c1592981 +fb17d9cf525ccd4d 1fa684a12e02e146 +fb214e914de22c71 98e008d4a75f12ae +fb221628cf6e255e a86c9794af983662 +fb293076323123bb 164c968493308b20 +fb2d8f5be43b3b96 9b5c51140346f744 +fb304b4b04fc039c 205bf33553f19b62 +fbbc693311ebf985 62166a578542c7b0 +fbe86fe3d6c55c3a a7d82ad184e5b8af +fbed01f1d12e9768 3fec5f598ca62d2b +fc08e30e64483af9 3abb9a2811081dea +fc1328045fa9d305 471508d51f6468ec +fc2d4cf3afe935da 860691bd3d01c05a +fc477c9de9d9c2ef 4238e4b21fcd4768 +fc6cd74fe403bc44 a7143c616a642eca +fc83e0ae94fcfc8e ca62ea8188167bc4 +fc9630c1a23f70c9 1ad00580a1fdcd8c +fcb85fc93d3b87e6 397a4abeea76c735 +fcd379784d24cbcb c606beea48a0f43e +fcd988a321fef2f7 3247dd370b22017b +fcde28ec31d86b57 7c52c84c4fd4e5dc +fcf21390a899127e b15f531e4fc79772 +fcfeda90d7d19376 bf583110a00a2898 +fd0897136e8df3f8 dec26ca27fe85b2c +fd26c586441f0b3f 49b57d44e3219fcd +fd30ac30170c02a8 f454118e7661d0dd +fd36c168701923a0 84034e0a834c07d6 +fd6029de63ad4f67 4c927ac88966bea6 +fd69326e35a79545 c77cbbde76dbe80c +fd71b15fb134d9e2 9f194903085922d9 +fd7bb2dbe74b2a35 ea34709f2e768293 +fd7dbe35f101e388 bb1e4580f81fad84 +fd8259752412bab7 4dcb456d6b1c80f3 +fdb28cd79093c2a6 a6a0819ddfaf8506 +fdb30975621e8394 18645e102a180d91 +fdb3736a129c5705 5abaf77834a19e4a +fe1c9c75dd7c080c 58d6fbcf762c67ec +fe1e1c9573c7222a b343c1323421cd63 +fe30d7b5fe48b54f 6ef2b619d2bbac3a +fe31eb3f6e81b068 7465c885647a9238 +fe480ec4b76fec2d 17677a5f4040a07a +fe4a5b70647cd9dc 8bfdc381875fd976 +fe5361fa539c657e 218e18a274f2821f +fe57323d5591fde7 4e6f00cd1cab5081 +fe589b5986f1a11e de3ef6e93d3982b4 +fe6bb234447cc655 7ef15823863b153d +fe7ac847a6a9f5cf 49f2098a1ab0e6e0 +fe967b77a8cb3d79 e1835fcd0ee3c4af +fe9ff6b8a7c70131 8feaa20c2bf160d2 +fe9ffe483559c623 eafc946644469a90 +feb146a52985cbf6 13138dda95b1893a +feb254a8c3c0d01b 69f69a7f0ac2b5ed +feb81f71321e2322 406e8516cf675782 +feedead37f5efc0f 6edd02b1ffc2ddb3 +feeeba72d96bba07 fc2c2e7c3bc08ae7 +fef139ff6fc50952 1693299d63652890 +ff00b58e4b281f41 fbd714d93d50f5ff +ff0d9aa814a8683d d71f518b39fa8480 +ff3fbf3c46d18ab8 f6bfee60df25bca0 +ff46854045f60f4f b6568d11503f6d79 +ff58cc0157e12eb2 bbd797041449ea7d +ff669357365a7d6f 965961e87d41e16f +ff6eef134c820048 aca097c6c78c63a7 +ff8b08a613ae5f17 b30cc76a91e65801 +ff93208c66329768 94a5c85e1e25f4e4 +ff93af84ac3f7cd7 3c09486ef52bab59 +ffa4a74c58aa0002 8ee5d4939f63fd98 +ffa516477af8d6a3 2cfcd01f55daea61 +ffaaf68b98d79e28 49df3a9a886745f7 +ffb44ddfe12fd80c 4b33cd12da69b5ea +ffb648226910f34f 280d99fe81415783 +ffb927c847edb34e f506e588ef287081 +ffd6d22ab773cc66 a556df9c956f2015 diff --git a/packages/rs-drive/src/drive/system/core_fork_activations/fetch_core_fork_activation_height/mod.rs b/packages/rs-drive/src/drive/system/core_fork_activations/fetch_core_fork_activation_height/mod.rs index 02d920e84a0..d3d753e43d6 100644 --- a/packages/rs-drive/src/drive/system/core_fork_activations/fetch_core_fork_activation_height/mod.rs +++ b/packages/rs-drive/src/drive/system/core_fork_activations/fetch_core_fork_activation_height/mod.rs @@ -9,7 +9,9 @@ use dpp::version::PlatformVersion; use grovedb::TransactionArg; impl Drive { - /// Fetches the chain locked Core height of the first Platform block that saw `fork` active. + /// Fetches the chain locked Core height at which Platform first observed `fork` active, at + /// init chain or in a block. It is not Core's activation height and can trail it without + /// bound. /// /// Read in a block after its Core info is updated, `Some` means the fork is active at the /// block's chain locked height. `None` means Platform has not seen it active, not that it diff --git a/packages/rs-drive/src/drive/system/core_fork_activations/mod.rs b/packages/rs-drive/src/drive/system/core_fork_activations/mod.rs index 62194172b95..0e9edf10fa4 100644 --- a/packages/rs-drive/src/drive/system/core_fork_activations/mod.rs +++ b/packages/rs-drive/src/drive/system/core_fork_activations/mod.rs @@ -1,5 +1,6 @@ -//! The Dash Core forks Platform has seen active, each with the chain locked Core height of the -//! first Platform block that saw it. +//! The Dash Core forks Platform has seen active, each with the chain locked Core height at which +//! Platform first observed it active. That is not Core's activation height, and it can trail it +//! without bound. mod fetch_core_fork_activation_height; mod store_core_fork_activation_height; diff --git a/packages/rs-drive/src/drive/system/core_fork_activations/store_core_fork_activation_height/mod.rs b/packages/rs-drive/src/drive/system/core_fork_activations/store_core_fork_activation_height/mod.rs index 3f89a92401d..3d5fe2c8164 100644 --- a/packages/rs-drive/src/drive/system/core_fork_activations/store_core_fork_activation_height/mod.rs +++ b/packages/rs-drive/src/drive/system/core_fork_activations/store_core_fork_activation_height/mod.rs @@ -9,13 +9,14 @@ use dpp::version::PlatformVersion; use grovedb::TransactionArg; impl Drive { - /// Records `core_height` as the chain locked Core height of the first Platform block that - /// saw `fork` active. The record is written once and never changed: recording a fork again - /// is an error. The write is applied at once, so later reads in the transaction see it. + /// Records `core_height` as the chain locked Core height at which Platform first observed + /// `fork` active, at init chain or in a block. The record is written once and never + /// changed: recording a fork again is an error. The write is applied at once, so later + /// reads in the transaction see it. /// /// # Parameters /// - `fork`: the Core fork. - /// - `core_height`: the chain locked Core height of the block that saw it active. + /// - `core_height`: the chain locked Core height at which Platform observed it active. /// - `transaction`: the transaction to write in; in a block, the block's transaction. /// - `platform_version`: the platform version. /// diff --git a/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_method_versions/v11.rs b/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_method_versions/v11.rs index ffa5923ec3e..830daea1436 100644 --- a/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_method_versions/v11.rs +++ b/packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_method_versions/v11.rs @@ -96,8 +96,10 @@ const DKG_MINING_SCHEDULES_V1: &[DkgMiningSchedule] = &[ /// `on_yes_no_vote_poll_finished` are `Some(0)`, `None` in every earlier table), in /// `core_based_updates.update_core_info`, which is 1 rather than 0: init chain and a block that /// move the chain locked Core height record, the first time they see it, that Core's V24 is -/// active there (the coinbase of that Core block has payload version 4 or higher), and Core is -/// not asked again once it is recorded; in the asset unlocks it emits for withdrawals, described +/// active there (the coinbase of that Core block has payload version 4 or higher), and +/// `update_core_info` does not ask Core again once it is recorded (the masternode list's +/// operator key normalization still asks when Core re-reports an operator key unchanged or +/// re-encoded); in the asset unlocks it emits for withdrawals, described /// below; in the voter key of a masternode that returns to a voting address, described below; in /// the consensus evidence policy; and in the chain lock verification. The chain lock /// changes only work as a whole: diff --git a/packages/rs-platform-version/src/version/v15.rs b/packages/rs-platform-version/src/version/v15.rs index aa794085509..5ac0004748d 100644 --- a/packages/rs-platform-version/src/version/v15.rs +++ b/packages/rs-platform-version/src/version/v15.rs @@ -405,11 +405,17 @@ pub const PROTOCOL_VERSION_15: ProtocolVersion = 15; /// Core block has payload version 4 or higher, which Core requires exactly while V24 is /// active. The first block that sees it active stores the height in `Misc` /// (`CORE_FORK_V24_ACTIVATION_KEY`, a big endian `u32` written once, through -/// `DRIVE_VERSION_V10`'s `platform_system` methods), where the app hash covers it, and no -/// later block asks Core about V24. A chain born at this version asks at init chain, at -/// the genesis core height. A block that keeps the chain locked height asks nothing, so -/// a chain upgraded to this version records V24 at its first block that moves the height -/// to one where V24 is active, which can be a few blocks after Core activated it. A Core +/// `DRIVE_VERSION_V10`'s `platform_system` methods), where the app hash covers it, and +/// `update_core_info` does not ask Core about V24 again. The masternode list's operator +/// key normalization (`drop_unchanged_operator_keys`, used by `update_state_masternode_list` +/// v0 and v1) still asks, at the block's chain locked height, when Core re-reports an +/// operator key unchanged or re-encoded. A chain born at this version asks at init chain, +/// at the genesis core height. A block that keeps the chain locked height asks nothing, +/// so a chain upgraded to this version records V24 at its first block that moves the +/// height to one where V24 is active. The recorded height is the chain locked height at +/// which Platform first observed V24 active, not Core's activation height, and it can +/// trail that height without bound: on a chain where V24 was active long before the +/// upgrade, it is the chain locked height of that first block. A Core /// error or a coinbase without a payload fails the block, as other Core errors in /// `update_core_info` do. Protocol v14 and earlier keep `update_core_info` 0, which /// neither asks nor records. @@ -471,8 +477,11 @@ pub const PROTOCOL_VERSION_15: ProtocolVersion = 15; /// so the returning key stayed disabled, every vote of the masternode was refused /// (`PublicKeyIsDisabledError`), and the key of the address it left stayed enabled, /// though it cannot vote for the masternode. Version 1 (`DRIVE_ABCI_METHOD_VERSIONS_V11`) -/// re-enables the key of the returning identity. Protocol v14 and earlier keep -/// `update_voter_identity` 0. +/// re-enables the key of the returning identity. It applies to voting address changes from +/// this protocol version on and repairs nothing at activation: a masternode whose returning +/// key version 0 left disabled cannot vote until its voting address changes again, and +/// that change leaves the key of the identity it moves to enabled, as for any other +/// masternode. Protocol v14 and earlier keep `update_voter_identity` 0. /// /// 23. **An identity create's identity id is checked in basic structure**: the identity create /// `basic_structure` 1 (`DRIVE_ABCI_VALIDATION_VERSIONS_V11`) refuses, without a fee, an