From b4689e20c6508e58e8245431487e6c645d386ee7 Mon Sep 17 00:00:00 2001 From: Michael Sproul Date: Fri, 9 Jul 2021 06:15:32 +0000 Subject: [PATCH] Altair consensus changes and refactors (#2279) ## Proposed Changes Implement the consensus changes necessary for the upcoming Altair hard fork. ## Additional Info This is quite a heavy refactor, with pivotal types like the `BeaconState` and `BeaconBlock` changing from structs to enums. This ripples through the whole codebase with field accesses changing to methods, e.g. `state.slot` => `state.slot()`. Co-authored-by: realbigsean --- .github/workflows/test-suite.yml | 14 +- Cargo.lock | 92 +- Makefile | 17 +- account_manager/src/validator/exit.rs | 2 +- .../src/validator/slashing_protection.rs | 2 +- beacon_node/beacon_chain/Cargo.toml | 5 +- .../src/attestation_verification.rs | 4 +- beacon_node/beacon_chain/src/beacon_chain.rs | 207 +++-- .../src/beacon_fork_choice_store.rs | 30 +- .../beacon_chain/src/beacon_snapshot.rs | 5 +- .../beacon_chain/src/block_verification.rs | 102 ++- beacon_node/beacon_chain/src/builder.rs | 59 +- beacon_node/beacon_chain/src/eth1_chain.rs | 76 +- beacon_node/beacon_chain/src/head_tracker.rs | 12 +- beacon_node/beacon_chain/src/metrics.rs | 35 +- beacon_node/beacon_chain/src/migrate.rs | 4 +- .../src/observed_block_producers.rs | 72 +- .../beacon_chain/src/snapshot_cache.rs | 61 +- .../beacon_chain/src/state_advance_timer.rs | 12 +- beacon_node/beacon_chain/src/test_utils.rs | 431 +++++++-- .../beacon_chain/src/validator_monitor.rs | 26 +- .../src/validator_pubkey_cache.rs | 25 +- .../tests/attestation_production.rs | 17 +- .../tests/attestation_verification.rs | 19 +- .../beacon_chain/tests/block_verification.rs | 440 ++++++++-- .../beacon_chain/tests/op_verification.rs | 81 +- .../beacon_chain/tests/persistence_tests.rs | 161 ---- beacon_node/beacon_chain/tests/store_tests.rs | 215 ++++- beacon_node/beacon_chain/tests/tests.rs | 54 +- beacon_node/client/src/builder.rs | 3 +- .../eth2_libp2p/src/rpc/codec/ssz_snappy.rs | 12 +- beacon_node/eth2_libp2p/src/rpc/methods.rs | 4 +- beacon_node/eth2_libp2p/src/rpc/protocol.rs | 16 +- beacon_node/eth2_libp2p/src/types/pubsub.rs | 12 +- beacon_node/eth2_libp2p/tests/rpc_tests.rs | 25 +- .../genesis/src/eth1_genesis_service.rs | 4 +- beacon_node/genesis/src/interop.rs | 21 +- beacon_node/genesis/tests/tests.rs | 4 +- beacon_node/http_api/src/lib.rs | 61 +- beacon_node/http_api/src/proposer_duties.rs | 2 +- beacon_node/http_api/src/state_id.rs | 2 +- .../http_api/src/validator_inclusion.rs | 4 +- beacon_node/http_api/tests/tests.rs | 81 +- beacon_node/network/Cargo.toml | 2 +- .../network/src/beacon_processor/tests.rs | 7 +- .../beacon_processor/worker/gossip_methods.rs | 5 +- .../beacon_processor/worker/sync_methods.rs | 4 +- beacon_node/network/src/service.rs | 2 +- beacon_node/network/src/service/tests.rs | 1 + beacon_node/network/src/sync/manager.rs | 17 +- beacon_node/operation_pool/Cargo.toml | 2 + beacon_node/operation_pool/src/attestation.rs | 109 ++- .../operation_pool/src/attester_slashing.rs | 26 +- beacon_node/operation_pool/src/lib.rs | 794 +++++++++-------- beacon_node/src/cli.rs | 6 + beacon_node/src/config.rs | 4 + beacon_node/store/Cargo.toml | 9 +- beacon_node/store/benches/benches.rs | 115 --- .../examples/ssz_encode_state_container.rs | 62 -- beacon_node/store/src/chunked_vector.rs | 16 +- beacon_node/store/src/forwards_iter.rs | 4 +- beacon_node/store/src/hot_cold_store.rs | 121 ++- beacon_node/store/src/impls.rs | 40 +- beacon_node/store/src/impls/beacon_state.rs | 32 +- .../store/src/impls/partial_beacon_state.rs | 16 - beacon_node/store/src/iter.rs | 56 +- beacon_node/store/src/partial_beacon_state.rs | 273 ++++-- beacon_node/tests/test.rs | 2 +- boot_node/src/config.rs | 9 +- boot_node/src/lib.rs | 1 - common/eth2/src/lib.rs | 9 +- common/eth2/src/lighthouse.rs | 6 +- common/eth2/src/lighthouse_vc/http_client.rs | 2 +- common/eth2_config/src/lib.rs | 15 - common/eth2_network_config/build.rs | 9 +- .../altona/boot_enr.yaml | 10 - .../altona/config.yaml | 60 -- .../altona/deploy_block.txt | 1 - .../altona/genesis.ssz.zip | Bin 60564 -> 0 bytes .../mainnet/config.yaml | 180 +--- .../medalla/boot_enr.yaml | 10 - .../medalla/config.yaml | 60 -- .../medalla/deploy_block.txt | 1 - .../medalla/genesis.ssz.zip | Bin 1411525 -> 0 bytes .../prater/config.yaml | 179 +--- .../pyrmont/config.yaml | 180 +--- .../spadina/boot_enr.yaml | 8 - .../spadina/config.yaml | 60 -- .../spadina/deploy_block.txt | 1 - .../spadina/genesis.ssz.zip | Bin 226775 -> 0 bytes .../toledo/boot_enr.yaml | 20 - .../toledo/deploy_block.txt | 1 - .../toledo/genesis.ssz.zip | Bin 1355901 -> 0 bytes common/eth2_network_config/src/lib.rs | 101 +-- common/fallback/Cargo.toml | 2 +- consensus/fork_choice/src/fork_choice.rs | 56 +- consensus/fork_choice/tests/tests.rs | 125 +-- consensus/serde_utils/src/quoted_int.rs | 11 + consensus/ssz/src/decode.rs | 33 + consensus/ssz_derive/src/lib.rs | 93 +- consensus/ssz_types/src/fixed_vector.rs | 37 +- consensus/state_processing/Cargo.toml | 9 +- consensus/state_processing/benches/benches.rs | 431 --------- .../state_processing/src/common/altair.rs | 32 + .../common/{get_base_reward.rs => base.rs} | 17 +- .../common/get_attestation_participation.rs | 54 ++ .../src/common/initiate_validator_exit.rs | 22 +- consensus/state_processing/src/common/mod.rs | 30 +- .../src/common/slash_validator.rs | 46 +- consensus/state_processing/src/genesis.rs | 37 +- consensus/state_processing/src/lib.rs | 21 +- .../src/per_block_processing.rs | 338 ++----- .../src/per_block_processing/altair.rs | 1 + .../altair/sync_committee.rs | 86 ++ .../block_processing_builder.rs | 380 -------- .../block_signature_verifier.rs | 38 +- .../src/per_block_processing/errors.rs | 21 + .../is_valid_indexed_attestation.rs | 20 +- .../process_operations.rs | 359 ++++++++ .../per_block_processing/signature_sets.rs | 62 +- .../src/per_block_processing/tests.rs | 723 +++++++-------- .../verify_attestation.rs | 24 +- .../verify_attester_slashing.rs | 2 +- .../per_block_processing/verify_deposit.rs | 2 +- .../src/per_block_processing/verify_exit.rs | 2 +- .../verify_proposer_slashing.rs | 2 +- .../src/per_epoch_processing.rs | 234 +---- .../src/per_epoch_processing/altair.rs | 82 ++ .../altair/inactivity_updates.rs | 44 + .../altair/justification_and_finalization.rs | 39 + .../altair/participation_flag_updates.rs | 20 + .../altair/rewards_and_penalties.rs | 124 +++ .../altair/sync_committee_updates.rs | 18 + .../src/per_epoch_processing/base.rs | 76 ++ .../base/justification_and_finalization.rs | 23 + .../base/participation_record_updates.rs | 12 + .../rewards_and_penalties.rs} | 112 +-- .../effective_balance_updates.rs | 33 + .../src/per_epoch_processing/errors.rs | 6 +- .../historical_roots_update.rs | 25 + .../per_epoch_processing/registry_updates.rs | 18 +- .../src/per_epoch_processing/resets.rs | 38 + .../{process_slashings.rs => slashings.rs} | 21 +- .../src/per_epoch_processing/tests.rs | 162 +++- .../validator_statuses.rs | 27 +- .../weigh_justification_and_finalization.rs | 70 ++ .../src/per_slot_processing.rs | 34 +- .../state_processing/src/state_advance.rs | 10 +- consensus/state_processing/src/test_utils.rs | 184 ---- consensus/state_processing/src/upgrade.rs | 3 + .../state_processing/src/upgrade/altair.rs | 119 +++ consensus/state_processing/tests/tests.rs | 228 ----- consensus/tree_hash/Cargo.toml | 6 +- consensus/tree_hash/benches/benches.rs | 96 -- .../examples/flamegraph_beacon_state.rs | 44 +- consensus/tree_hash/src/lib.rs | 22 + consensus/tree_hash_derive/src/lib.rs | 84 +- consensus/types/Cargo.toml | 4 + consensus/types/benches/benches.rs | 28 +- consensus/types/examples/clone_state.rs | 7 +- consensus/types/examples/ssz_encode_state.rs | 12 +- consensus/types/examples/tree_hash_state.rs | 7 +- consensus/types/presets/mainnet/altair.yaml | 24 + .../types/presets/mainnet/phase0.yaml | 66 +- consensus/types/presets/minimal/altair.yaml | 24 + consensus/types/presets/minimal/phase0.yaml | 94 ++ consensus/types/src/beacon_block.rs | 346 ++++++-- consensus/types/src/beacon_block_body.rs | 40 +- consensus/types/src/beacon_block_header.rs | 13 - consensus/types/src/beacon_state.rs | 826 ++++++++++++------ .../types/src/beacon_state/committee_cache.rs | 16 +- .../src/beacon_state/committee_cache/tests.rs | 82 +- .../types/src/beacon_state/exit_cache.rs | 20 +- consensus/types/src/beacon_state/iter.rs | 34 +- consensus/types/src/beacon_state/tests.rs | 337 ++++--- .../types/src/beacon_state/tree_hash_cache.rs | 173 +++- consensus/types/src/chain_spec.rs | 702 ++++++--------- consensus/types/src/config_and_preset.rs | 119 +++ consensus/types/src/consts.rs | 19 + consensus/types/src/eth_spec.rs | 63 +- consensus/types/src/fork_name.rs | 47 + consensus/types/src/graffiti.rs | 9 +- consensus/types/src/lib.rs | 42 +- consensus/types/src/participation_flags.rs | 87 ++ consensus/types/src/preset.rs | 196 +++++ consensus/types/src/selection_proof.rs | 5 +- consensus/types/src/signed_beacon_block.rs | 150 +++- consensus/types/src/sync_aggregate.rs | 36 + consensus/types/src/sync_committee.rs | 29 + consensus/types/src/test_utils/builders.rs | 19 - .../builders/testing_attestation_builder.rs | 112 --- .../testing_attestation_data_builder.rs | 98 --- .../testing_attester_slashing_builder.rs | 134 --- .../builders/testing_beacon_block_builder.rs | 428 --------- .../builders/testing_beacon_state_builder.rs | 194 ---- .../builders/testing_deposit_builder.rs | 64 -- .../testing_pending_attestation_builder.rs | 60 -- .../testing_proposer_slashing_builder.rs | 82 -- .../testing_voluntary_exit_builder.rs | 34 - consensus/types/src/test_utils/mod.rs | 51 +- consensus/types/src/test_utils/test_random.rs | 21 +- consensus/types/src/validator.rs | 2 +- .../bls/src/generic_aggregate_public_key.rs | 41 +- crypto/bls/src/generic_aggregate_signature.rs | 14 +- crypto/bls/src/generic_public_key.rs | 2 +- crypto/bls/src/generic_signature_set.rs | 2 +- crypto/bls/src/impls/blst.rs | 14 +- crypto/bls/src/impls/fake_crypto.rs | 11 +- crypto/bls/src/impls/milagro.rs | 13 +- crypto/bls/src/lib.rs | 3 + lcli/src/change_genesis_time.rs | 13 +- lcli/src/eth1_genesis.rs | 28 +- lcli/src/helpers.rs | 106 --- lcli/src/interop_genesis.rs | 25 +- lcli/src/main.rs | 156 +--- lcli/src/new_testnet.rs | 19 +- lcli/src/parse_hex.rs | 41 - lcli/src/parse_ssz.rs | 28 +- lcli/src/replace_state_pubkeys.rs | 13 +- lcli/src/skip_slots.rs | 11 +- lcli/src/transition_blocks.rs | 38 +- lighthouse/environment/src/lib.rs | 29 +- .../environment/tests/environment_builder.rs | 25 +- .../environment/tests/testnet_dir/config.yaml | 199 ++--- lighthouse/src/main.rs | 10 +- remote_signer/tests/sign_attestation.rs | 2 +- remote_signer/tests/sign_block.rs | 10 +- remote_signer/tests/sign_randao.rs | 2 +- scripts/local_testnet/setup.sh | 3 +- scripts/local_testnet/vars.env | 5 +- testing/ef_tests/.gitignore | 1 + testing/ef_tests/Cargo.toml | 5 + testing/ef_tests/Makefile | 2 +- testing/ef_tests/check_all_files_accessed.py | 108 +++ testing/ef_tests/src/case_result.rs | 8 +- testing/ef_tests/src/cases.rs | 22 +- .../ef_tests/src/cases/bls_aggregate_sigs.rs | 2 +- .../src/cases/bls_aggregate_verify.rs | 2 +- .../src/cases/bls_fast_aggregate_verify.rs | 2 +- testing/ef_tests/src/cases/bls_sign_msg.rs | 2 +- testing/ef_tests/src/cases/bls_verify_msg.rs | 2 +- testing/ef_tests/src/cases/common.rs | 19 +- .../ef_tests/src/cases/epoch_processing.rs | 187 +++- testing/ef_tests/src/cases/fork.rs | 67 ++ .../src/cases/genesis_initialization.rs | 32 +- .../ef_tests/src/cases/genesis_validity.rs | 31 +- testing/ef_tests/src/cases/operations.rs | 112 ++- testing/ef_tests/src/cases/rewards.rs | 206 +++++ testing/ef_tests/src/cases/sanity_blocks.rs | 35 +- testing/ef_tests/src/cases/sanity_slots.rs | 17 +- testing/ef_tests/src/cases/shuffling.rs | 5 +- testing/ef_tests/src/cases/ssz_generic.rs | 16 +- testing/ef_tests/src/cases/ssz_static.rs | 96 +- testing/ef_tests/src/cases/transition.rs | 114 +++ testing/ef_tests/src/decode.rs | 106 ++- testing/ef_tests/src/handler.rs | 250 +++++- testing/ef_tests/src/lib.rs | 13 +- testing/ef_tests/src/type_name.rs | 8 + testing/ef_tests/tests/tests.rs | 288 +++--- .../src/local_signer_test_data.rs | 2 +- testing/remote_signer_test/src/utils.rs | 24 +- testing/simulator/src/checks.rs | 2 +- testing/state_transition_vectors/Cargo.toml | 2 + testing/state_transition_vectors/src/exit.rs | 93 +- .../state_transition_vectors/src/macros.rs | 2 +- testing/state_transition_vectors/src/main.rs | 54 +- validator_client/src/beacon_node_fallback.rs | 12 +- validator_client/src/block_service.rs | 4 +- validator_client/src/http_api/mod.rs | 8 +- validator_client/src/http_api/tests.rs | 3 +- validator_client/src/validator_store.rs | 4 +- 271 files changed, 9652 insertions(+), 8444 deletions(-) delete mode 100644 beacon_node/beacon_chain/tests/persistence_tests.rs delete mode 100644 beacon_node/store/benches/benches.rs delete mode 100644 beacon_node/store/examples/ssz_encode_state_container.rs delete mode 100644 beacon_node/store/src/impls/partial_beacon_state.rs delete mode 100644 common/eth2_network_config/built_in_network_configs/altona/boot_enr.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/altona/config.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/altona/deploy_block.txt delete mode 100644 common/eth2_network_config/built_in_network_configs/altona/genesis.ssz.zip delete mode 100644 common/eth2_network_config/built_in_network_configs/medalla/boot_enr.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/medalla/config.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/medalla/deploy_block.txt delete mode 100644 common/eth2_network_config/built_in_network_configs/medalla/genesis.ssz.zip delete mode 100644 common/eth2_network_config/built_in_network_configs/spadina/boot_enr.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/spadina/config.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/spadina/deploy_block.txt delete mode 100644 common/eth2_network_config/built_in_network_configs/spadina/genesis.ssz.zip delete mode 100644 common/eth2_network_config/built_in_network_configs/toledo/boot_enr.yaml delete mode 100644 common/eth2_network_config/built_in_network_configs/toledo/deploy_block.txt delete mode 100644 common/eth2_network_config/built_in_network_configs/toledo/genesis.ssz.zip delete mode 100644 consensus/state_processing/benches/benches.rs create mode 100644 consensus/state_processing/src/common/altair.rs rename consensus/state_processing/src/common/{get_base_reward.rs => base.rs} (53%) create mode 100644 consensus/state_processing/src/common/get_attestation_participation.rs create mode 100644 consensus/state_processing/src/per_block_processing/altair.rs create mode 100644 consensus/state_processing/src/per_block_processing/altair/sync_committee.rs delete mode 100644 consensus/state_processing/src/per_block_processing/block_processing_builder.rs create mode 100644 consensus/state_processing/src/per_block_processing/process_operations.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair/justification_and_finalization.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair/participation_flag_updates.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair/rewards_and_penalties.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/altair/sync_committee_updates.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/base.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/base/justification_and_finalization.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/base/participation_record_updates.rs rename consensus/state_processing/src/per_epoch_processing/{apply_rewards.rs => base/rewards_and_penalties.rs} (75%) create mode 100644 consensus/state_processing/src/per_epoch_processing/effective_balance_updates.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/historical_roots_update.rs create mode 100644 consensus/state_processing/src/per_epoch_processing/resets.rs rename consensus/state_processing/src/per_epoch_processing/{process_slashings.rs => slashings.rs} (62%) create mode 100644 consensus/state_processing/src/per_epoch_processing/weigh_justification_and_finalization.rs delete mode 100644 consensus/state_processing/src/test_utils.rs create mode 100644 consensus/state_processing/src/upgrade.rs create mode 100644 consensus/state_processing/src/upgrade/altair.rs delete mode 100644 consensus/state_processing/tests/tests.rs delete mode 100644 consensus/tree_hash/benches/benches.rs create mode 100644 consensus/types/presets/mainnet/altair.yaml rename common/eth2_network_config/built_in_network_configs/toledo/config.yaml => consensus/types/presets/mainnet/phase0.yaml (58%) create mode 100644 consensus/types/presets/minimal/altair.yaml create mode 100644 consensus/types/presets/minimal/phase0.yaml create mode 100644 consensus/types/src/config_and_preset.rs create mode 100644 consensus/types/src/consts.rs create mode 100644 consensus/types/src/fork_name.rs create mode 100644 consensus/types/src/participation_flags.rs create mode 100644 consensus/types/src/preset.rs create mode 100644 consensus/types/src/sync_aggregate.rs create mode 100644 consensus/types/src/sync_committee.rs delete mode 100644 consensus/types/src/test_utils/builders.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_attestation_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_attestation_data_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_attester_slashing_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_beacon_block_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_beacon_state_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_deposit_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_pending_attestation_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_proposer_slashing_builder.rs delete mode 100644 consensus/types/src/test_utils/builders/testing_voluntary_exit_builder.rs delete mode 100644 lcli/src/helpers.rs delete mode 100644 lcli/src/parse_hex.rs create mode 100755 testing/ef_tests/check_all_files_accessed.py create mode 100644 testing/ef_tests/src/cases/fork.rs create mode 100644 testing/ef_tests/src/cases/rewards.rs create mode 100644 testing/ef_tests/src/cases/transition.rs diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 674a68a788..82c1a81e33 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -26,8 +26,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Get latest version of stable Rust - run: rustup update stable - name: Get latest version of stable Rust run: rustup update stable - name: Check formatting with cargo fmt @@ -58,6 +56,18 @@ jobs: run: choco install -y make - name: Run tests in release run: make test-release + beacon-chain-tests: + name: beacon-chain-tests + runs-on: ubuntu-latest + needs: cargo-fmt + steps: + - uses: actions/checkout@v1 + - name: Get latest version of stable Rust + run: rustup update stable + - name: Run beacon_chain tests for base hard fork + run: make test-beacon-chain-base + - name: Run beacon_chain tests for Altair hard fork + run: make test-beacon-chain-altair debug-tests-ubuntu: name: debug-tests-ubuntu runs-on: ubuntu-latest diff --git a/Cargo.lock b/Cargo.lock index dda20f5a3c..5fc2209f28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -568,7 +568,7 @@ dependencies = [ "genesis", "int_to_bytes", "integer-sqrt", - "itertools 0.9.0", + "itertools 0.10.1", "lazy_static", "lighthouse_metrics", "log", @@ -1031,7 +1031,7 @@ dependencies = [ "ansi_term 0.11.0", "atty", "bitflags", - "strsim", + "strsim 0.8.0", "textwrap", "unicode-width", "vec_map", @@ -1426,6 +1426,41 @@ dependencies = [ "zeroize", ] +[[package]] +name = "darling" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" +dependencies = [ + "darling_core", + "quote", + "syn", +] + [[package]] name = "darwin-libproc" version = "0.1.2" @@ -1684,15 +1719,20 @@ dependencies = [ "bls", "cached_tree_hash", "compare_fields", + "compare_fields_derive", + "derivative", "eth2_ssz", "eth2_ssz_derive", "ethereum-types 0.9.2", + "fs2", "hex", + "parking_lot", "rayon", "serde", "serde_derive", "serde_repr", "serde_yaml", + "snap", "state_processing", "swap_or_not_shuffle", "tree_hash", @@ -2185,7 +2225,7 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" name = "fallback" version = "0.1.0" dependencies = [ - "itertools 0.9.0", + "itertools 0.10.1", ] [[package]] @@ -2954,6 +2994,12 @@ dependencies = [ "tokio-native-tls", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.2.3" @@ -4068,7 +4114,7 @@ dependencies = [ "hex", "if-addrs", "igd", - "itertools 0.9.0", + "itertools 0.10.1", "lazy_static", "lighthouse_metrics", "logging", @@ -4321,6 +4367,7 @@ dependencies = [ name = "operation_pool" version = "0.2.0" dependencies = [ + "beacon_chain", "eth2_ssz", "eth2_ssz_derive", "int_to_bytes", @@ -6061,15 +6108,15 @@ name = "state_processing" version = "0.2.0" dependencies = [ "arbitrary", + "beacon_chain", "bls", - "criterion", "env_logger 0.8.4", "eth2_hashing", "eth2_ssz", "eth2_ssz_types", "int_to_bytes", "integer-sqrt", - "itertools 0.9.0", + "itertools 0.10.1", "lazy_static", "log", "merkle_proof", @@ -6078,6 +6125,7 @@ dependencies = [ "serde", "serde_derive", "serde_yaml", + "smallvec", "tree_hash", "tree_hash_derive", "types", @@ -6087,7 +6135,9 @@ dependencies = [ name = "state_transition_vectors" version = "0.1.0" dependencies = [ + "beacon_chain", "eth2_ssz", + "lazy_static", "state_processing", "types", ] @@ -6151,18 +6201,17 @@ checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" name = "store" version = "0.2.0" dependencies = [ - "criterion", + "beacon_chain", "db-key", "directory", "eth2_ssz", "eth2_ssz_derive", - "itertools 0.9.0", + "itertools 0.10.1", "lazy_static", "leveldb", "lighthouse_metrics", "lru", "parking_lot", - "rayon", "serde", "serde_derive", "slog", @@ -6201,6 +6250,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strum" version = "0.20.0" @@ -6234,6 +6289,19 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" +[[package]] +name = "superstruct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf7f6700d7c135cf4e4900c2cfba9a12ecad1fdc45594aad48f6b344b2589a0" +dependencies = [ + "darling", + "itertools 0.10.1", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "swap_or_not_shuffle" version = "0.2.0" @@ -6757,7 +6825,7 @@ dependencies = [ name = "tree_hash" version = "0.1.1" dependencies = [ - "criterion", + "beacon_chain", "eth2_hashing", "ethereum-types 0.9.2", "lazy_static", @@ -6820,6 +6888,7 @@ name = "types" version = "0.2.0" dependencies = [ "arbitrary", + "beacon_chain", "bls", "cached_tree_hash", "compare_fields", @@ -6834,9 +6903,11 @@ dependencies = [ "ethereum-types 0.9.2", "hex", "int_to_bytes", + "itertools 0.10.1", "lazy_static", "log", "merkle_proof", + "parking_lot", "rand 0.7.3", "rand_xorshift", "rayon", @@ -6849,6 +6920,7 @@ dependencies = [ "serde_utils", "serde_yaml", "slog", + "superstruct", "swap_or_not_shuffle", "tempfile", "test_random_derive", diff --git a/Makefile b/Makefile index ae0ec94738..dd19a0f4a7 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ .PHONY: tests EF_TESTS = "testing/ef_tests" +BEACON_CHAIN_CRATE = "beacon_node/beacon_chain" STATE_TRANSITION_VECTORS = "testing/state_transition_vectors" GIT_TAG := $(shell git describe --tags --candidates 1) BIN_DIR = "bin" @@ -79,12 +80,12 @@ build-release-tarballs: # Runs the full workspace tests in **release**, without downloading any additional # test vectors. test-release: - cargo test --all --release --exclude ef_tests + cargo test --workspace --release --exclude ef_tests --exclude beacon_chain # Runs the full workspace tests in **debug**, without downloading any additional test # vectors. test-debug: - cargo test --all --exclude ef_tests + cargo test --workspace --exclude ef_tests --exclude beacon_chain # Runs cargo-fmt (linter). cargo-fmt: @@ -92,7 +93,7 @@ cargo-fmt: # Typechecks benchmark code check-benches: - cargo check --all --benches + cargo check --workspace --benches # Typechecks consensus code *without* allowing deprecated legacy arithmetic check-consensus: @@ -100,9 +101,17 @@ check-consensus: # Runs only the ef-test vectors. run-ef-tests: + rm -rf $(EF_TESTS)/.accessed_file_log.txt cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests" cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests,fake_crypto" cargo test --release --manifest-path=$(EF_TESTS)/Cargo.toml --features "ef_tests,milagro" + ./$(EF_TESTS)/check_all_files_accessed.py $(EF_TESTS)/.accessed_file_log.txt $(EF_TESTS)/eth2.0-spec-tests + +# Run the tests in the `beacon_chain` crate. +test-beacon-chain: test-beacon-chain-base test-beacon-chain-altair + +test-beacon-chain-%: + env FORK_NAME=$* cargo test --release --features fork_from_env --manifest-path=$(BEACON_CHAIN_CRATE)/Cargo.toml # Runs only the tests/state_transition_vectors tests. run-state-transition-tests: @@ -121,7 +130,7 @@ test-full: cargo-fmt test-release test-debug test-ef # Lints the code for bad style and potentially unsafe arithmetic using Clippy. # Clippy lints are opt-in per-crate for now. By default, everything is allowed except for performance and correctness lints. lint: - cargo clippy --all --tests -- \ + cargo clippy --workspace --tests -- \ -D warnings \ -A clippy::from-over-into \ -A clippy::upper-case-acronyms \ diff --git a/account_manager/src/validator/exit.rs b/account_manager/src/validator/exit.rs index 6c15615af4..986ae8dc28 100644 --- a/account_manager/src/validator/exit.rs +++ b/account_manager/src/validator/exit.rs @@ -116,7 +116,7 @@ async fn publish_voluntary_exit( .beacon_state::() .as_ref() .expect("network should have valid genesis state") - .genesis_validators_root; + .genesis_validators_root(); // Verify that the beacon node and validator being exited are on the same network. if genesis_data.genesis_validators_root != testnet_genesis_root { diff --git a/account_manager/src/validator/slashing_protection.rs b/account_manager/src/validator/slashing_protection.rs index 00187ccd06..902e26528f 100644 --- a/account_manager/src/validator/slashing_protection.rs +++ b/account_manager/src/validator/slashing_protection.rs @@ -77,7 +77,7 @@ pub fn cli_run( let genesis_validators_root = testnet_config .beacon_state::() - .map(|state: BeaconState| state.genesis_validators_root) + .map(|state: BeaconState| state.genesis_validators_root()) .map_err(|e| { format!( "Unable to get genesis state, has genesis occurred? Detail: {:?}", diff --git a/beacon_node/beacon_chain/Cargo.toml b/beacon_node/beacon_chain/Cargo.toml index 930820b7f6..a7cbc2061f 100644 --- a/beacon_node/beacon_chain/Cargo.toml +++ b/beacon_node/beacon_chain/Cargo.toml @@ -9,9 +9,9 @@ default = ["participation_metrics"] write_ssz_files = [] # Writes debugging .ssz files to /tmp during block processing. participation_metrics = [] # Exposes validator participation metrics to Prometheus. test_logger = [] # Print log output to stderr when running tests instead of dropping it +fork_from_env = [] # Initialise the harness chain spec from the FORK_NAME env variable [dev-dependencies] -int_to_bytes = { path = "../../consensus/int_to_bytes" } maplit = "1.0.2" environment = { path = "../../lighthouse/environment" } @@ -45,6 +45,7 @@ eth1 = { path = "../eth1" } futures = "0.3.7" genesis = { path = "../genesis" } integer-sqrt = "0.1.5" +int_to_bytes = { path = "../../consensus/int_to_bytes" } rand = "0.7.3" rand_core = "0.6.2" proto_array = { path = "../../consensus/proto_array" } @@ -56,7 +57,7 @@ safe_arith = { path = "../../consensus/safe_arith" } fork_choice = { path = "../../consensus/fork_choice" } task_executor = { path = "../../common/task_executor" } derivative = "2.1.1" -itertools = "0.9.0" +itertools = "0.10.0" regex = "1.3.9" exit-future = "0.2.0" slasher = { path = "../../slasher" } diff --git a/beacon_node/beacon_chain/src/attestation_verification.rs b/beacon_node/beacon_chain/src/attestation_verification.rs index ddd7f93ca9..552d466024 100644 --- a/beacon_node/beacon_chain/src/attestation_verification.rs +++ b/beacon_node/beacon_chain/src/attestation_verification.rs @@ -895,7 +895,7 @@ pub fn verify_attestation_signature( .canonical_head .try_read_for(HEAD_LOCK_TIMEOUT) .ok_or(BeaconChainError::CanonicalHeadLockTimeout) - .map(|head| head.beacon_state.fork)?; + .map(|head| head.beacon_state.fork())?; let signature_set = indexed_attestation_signature_set_from_pubkeys( |validator_index| pubkey_cache.get(validator_index).map(Cow::Borrowed), @@ -1001,7 +1001,7 @@ pub fn verify_signed_aggregate_signatures( .canonical_head .try_read_for(HEAD_LOCK_TIMEOUT) .ok_or(BeaconChainError::CanonicalHeadLockTimeout) - .map(|head| head.beacon_state.fork)?; + .map(|head| head.beacon_state.fork())?; let signature_sets = vec![ signed_aggregate_selection_proof_signature_set( diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index 331daf321f..8f1908e80f 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -454,7 +454,7 @@ impl BeaconChain { let old_block_root = snapshot.beacon_block_root; // The earliest slot for which the two chains may have a common history. - let lowest_slot = std::cmp::min(new_state.slot, old_state.slot); + let lowest_slot = std::cmp::min(new_state.slot(), old_state.slot()); // Create an iterator across `$state`, assuming that the block at `$state.slot` has the // block root of `$block_root`. @@ -465,7 +465,7 @@ impl BeaconChain { // in all the iterator wrapping. macro_rules! aligned_roots_iter { ($state: ident, $block_root: ident) => { - std::iter::once(Ok(($state.slot, $block_root))) + std::iter::once(Ok(($state.slot(), $block_root))) .chain($state.rev_iter_block_roots(&self.spec)) .skip_while(|result| { result @@ -506,7 +506,7 @@ impl BeaconChain { // We provide this potentially-inaccurate-but-safe information to avoid onerous // database reads during times of deep reorgs. Ok(old_state - .finalized_checkpoint + .finalized_checkpoint() .epoch .start_slot(T::EthSpec::slots_per_epoch())) }) @@ -526,7 +526,7 @@ impl BeaconChain { state_root: Hash256, state: &'a BeaconState, ) -> impl Iterator> + 'a { - std::iter::once(Ok((state_root, state.slot))) + std::iter::once(Ok((state_root, state.slot()))) .chain(StateRootsIterator::new(self.store.clone(), state)) .map(|result| result.map_err(Into::into)) } @@ -570,7 +570,7 @@ impl BeaconChain { let root = self.block_root_at_slot(request_slot, skips)?; if let Some(block_root) = root { - Ok(self.store.get_item(&block_root)?) + Ok(self.store.get_block(&block_root)?) } else { Ok(None) } @@ -661,7 +661,7 @@ impl BeaconChain { let state = &head.beacon_state; // Try find the root for the `request_slot`. - let request_root_opt = match state.slot.cmp(&request_slot) { + let request_root_opt = match state.slot().cmp(&request_slot) { // It's always a skip slot if the head is less than the request slot, return early. Ordering::Less => return Ok(Some(None)), // The request slot is the head slot. @@ -836,11 +836,11 @@ impl BeaconChain { slot: head.beacon_block.slot(), block_root: head.beacon_block_root, state_root: head.beacon_state_root(), - current_justified_checkpoint: head.beacon_state.current_justified_checkpoint, - finalized_checkpoint: head.beacon_state.finalized_checkpoint, - fork: head.beacon_state.fork, - genesis_time: head.beacon_state.genesis_time, - genesis_validators_root: head.beacon_state.genesis_validators_root, + current_justified_checkpoint: head.beacon_state.current_justified_checkpoint(), + finalized_checkpoint: head.beacon_state.finalized_checkpoint(), + fork: head.beacon_state.fork(), + genesis_time: head.beacon_state.genesis_time(), + genesis_validators_root: head.beacon_state.genesis_validators_root(), proposer_shuffling_decision_root, }) }) @@ -868,23 +868,23 @@ impl BeaconChain { ) -> Result, Error> { let head_state = self.head()?.beacon_state; - match slot.cmp(&head_state.slot) { + match slot.cmp(&head_state.slot()) { Ordering::Equal => Ok(head_state), Ordering::Greater => { - if slot > head_state.slot + T::EthSpec::slots_per_epoch() { + if slot > head_state.slot() + T::EthSpec::slots_per_epoch() { warn!( self.log, "Skipping more than an epoch"; - "head_slot" => head_state.slot, + "head_slot" => head_state.slot(), "request_slot" => slot ) } - let start_slot = head_state.slot; + let start_slot = head_state.slot(); let task_start = Instant::now(); let max_task_runtime = Duration::from_secs(self.spec.seconds_per_slot); - let head_state_slot = head_state.slot; + let head_state_slot = head_state.slot(); let mut state = head_state; let skip_state_root = match config { @@ -892,7 +892,7 @@ impl BeaconChain { StateSkipConfig::WithoutStateRoots => Some(Hash256::zero()), }; - while state.slot < slot { + while state.slot() < slot { // Do not allow and forward state skip that takes longer than the maximum task duration. // // This is a protection against nodes doing too much work when they're not synced @@ -1046,7 +1046,7 @@ impl BeaconChain { state: &BeaconState, ) -> Result, Error> { let iter = BlockRootsIterator::new(self.store.clone(), state); - let iter_with_head = std::iter::once(Ok((beacon_block_root, state.slot))) + let iter_with_head = std::iter::once(Ok((beacon_block_root, state.slot()))) .chain(iter) .map(|result| result.map_err(|e| e.into())); @@ -1176,7 +1176,7 @@ impl BeaconChain { ) -> Result, Error> { let epoch = slot.epoch(T::EthSpec::slots_per_epoch()); - if state.slot > slot { + if state.slot() > slot { return Err(Error::CannotAttestToFutureState); } else if state.current_epoch() < epoch { let mut_state = state.to_mut(); @@ -1194,7 +1194,7 @@ impl BeaconChain { let committee_len = state.get_beacon_committee(slot, index)?.committee.len(); let target_slot = epoch.start_slot(T::EthSpec::slots_per_epoch()); - let target_root = if state.slot <= target_slot { + let target_root = if state.slot() <= target_slot { beacon_block_root } else { *state.get_block_root(target_slot)? @@ -1206,7 +1206,7 @@ impl BeaconChain { slot, index, beacon_block_root, - source: state.current_justified_checkpoint, + source: state.current_justified_checkpoint(), target: Checkpoint { epoch, root: target_root, @@ -1347,12 +1347,8 @@ impl BeaconChain { // If there's no eth1 chain then it's impossible to produce blocks and therefore // useless to put things in the op pool. if self.eth1_chain.is_some() { - let fork = self - .canonical_head - .try_read_for(HEAD_LOCK_TIMEOUT) - .ok_or(Error::CanonicalHeadLockTimeout)? - .beacon_state - .fork; + let fork = + self.with_head(|head| Ok::<_, AttestationError>(head.beacon_state.fork()))?; self.op_pool .insert_attestation( @@ -1563,6 +1559,14 @@ impl BeaconChain { .collect::>(); for (i, block) in chain_segment.into_iter().enumerate() { + // Ensure the block is the correct structure for the fork at `block.slot()`. + if let Err(e) = block.fork_name(&self.spec) { + return ChainSegmentResult::Failed { + imported_blocks, + error: BlockError::InconsistentFork(e), + }; + } + let block_root = get_block_root(&block); if let Some((child_parent_root, child_slot)) = children.get(i) { @@ -1691,8 +1695,8 @@ impl BeaconChain { &self, block: SignedBeaconBlock, ) -> Result, BlockError> { - let slot = block.message.slot; - let graffiti_string = block.message.body.graffiti.as_utf8_lossy(); + let slot = block.slot(); + let graffiti_string = block.message().body().graffiti().as_utf8_lossy(); match GossipVerifiedBlock::new(block, self) { Ok(verified) => { @@ -1809,7 +1813,7 @@ impl BeaconChain { // Iterate through the attestations in the block and register them as an "observed // attestation". This will stop us from propagating them on the gossip network. - for a in &signed_block.message.body.attestations { + for a in signed_block.message().body().attestations() { match self .observed_attestations .write() @@ -1828,7 +1832,7 @@ impl BeaconChain { // If a slasher is configured, provide the attestations from the block. if let Some(slasher) = self.slasher.as_ref() { - for attestation in &signed_block.message.body.attestations { + for attestation in signed_block.message().body().attestations() { let committee = state.get_beacon_committee(attestation.data.slot, attestation.data.index)?; let indexed_attestation = @@ -1874,11 +1878,11 @@ impl BeaconChain { // Do not import a block that doesn't descend from the finalized root. let signed_block = check_block_is_finalized_descendant::(signed_block, &fork_choice, &self.store)?; - let block = &signed_block.message; + let (block, block_signature) = signed_block.clone().deconstruct(); // compare the existing finalized checkpoint with the incoming block's finalized checkpoint let old_finalized_checkpoint = fork_choice.finalized_checkpoint(); - let new_finalized_checkpoint = state.finalized_checkpoint; + let new_finalized_checkpoint = state.finalized_checkpoint(); // Only perform the weak subjectivity check if it was configured. if let Some(wss_checkpoint) = self.config.weak_subjectivity_checkpoint { @@ -1894,7 +1898,7 @@ impl BeaconChain { self.log, "Weak subjectivity checkpoint verification failed while importing block!"; "block_root" => ?block_root, - "parent_root" => ?block.parent_root, + "parent_root" => ?block.parent_root(), "old_finalized_epoch" => ?old_finalized_checkpoint.epoch, "new_finalized_epoch" => ?new_finalized_checkpoint.epoch, "weak_subjectivity_epoch" => ?wss_checkpoint.epoch, @@ -1916,7 +1920,7 @@ impl BeaconChain { let _fork_choice_block_timer = metrics::start_timer(&metrics::FORK_CHOICE_PROCESS_BLOCK_TIMES); fork_choice - .on_block(current_slot, block, block_root, &state) + .on_block(current_slot, &block, block_root, &state) .map_err(|e| BlockError::BeaconChainError(e.into()))?; } @@ -1927,7 +1931,7 @@ impl BeaconChain { let validator_monitor = self.validator_monitor.read(); // Register each attestation in the block with the fork choice service. - for attestation in &block.body.attestations[..] { + for attestation in block.body().attestations() { let _fork_choice_attestation_timer = metrics::start_timer(&metrics::FORK_CHOICE_PROCESS_ATTESTATION_TIMES); @@ -1947,26 +1951,26 @@ impl BeaconChain { // Only register this with the validator monitor when the block is sufficiently close to // the current slot. if VALIDATOR_MONITOR_HISTORIC_EPOCHS as u64 * T::EthSpec::slots_per_epoch() - + block.slot.as_u64() + + block.slot().as_u64() >= current_slot.as_u64() { validator_monitor.register_attestation_in_block( &indexed_attestation, - &block, + block.to_ref(), &self.spec, ); } } - for exit in &block.body.voluntary_exits { + for exit in block.body().voluntary_exits() { validator_monitor.register_block_voluntary_exit(&exit.message) } - for slashing in &block.body.attester_slashings { + for slashing in block.body().attester_slashings() { validator_monitor.register_block_attester_slashing(slashing) } - for slashing in &block.body.proposer_slashings { + for slashing in block.body().proposer_slashings() { validator_monitor.register_block_proposer_slashing(slashing) } @@ -1974,7 +1978,7 @@ impl BeaconChain { metrics::observe( &metrics::OPERATIONS_PER_BLOCK_ATTESTATION, - block.body.attestations.len() as f64, + block.body().attestations().len() as f64, ); let db_write_timer = metrics::start_timer(&metrics::BLOCK_PROCESSING_DB_WRITE); @@ -1984,11 +1988,8 @@ impl BeaconChain { // If the write fails, revert fork choice to the version from disk, else we can // end up with blocks in fork choice that are missing from disk. // See https://github.com/sigp/lighthouse/issues/2028 - ops.push(StoreOp::PutBlock( - block_root, - Box::new(signed_block.clone()), - )); - ops.push(StoreOp::PutState(block.state_root, &state)); + ops.push(StoreOp::PutBlock(block_root, Box::new(signed_block))); + ops.push(StoreOp::PutState(block.state_root(), &state)); let txn_lock = self.store.hot_db.begin_rw_transaction(); if let Err(e) = self.store.do_atomically(ops) { @@ -2024,11 +2025,12 @@ impl BeaconChain { // about it. metrics::observe_duration( &metrics::BEACON_BLOCK_IMPORTED_SLOT_START_DELAY_TIME, - get_block_delay_ms(timestamp_now(), &signed_block.message, &self.slot_clock), + get_block_delay_ms(timestamp_now(), block.to_ref(), &self.slot_clock), ); - let parent_root = block.parent_root; - let slot = block.slot; + let parent_root = block.parent_root(); + let slot = block.slot(); + let signed_block = SignedBeaconBlock::from_block(block, block_signature); self.snapshot_cache .try_write_for(BLOCK_PROCESSING_CACHE_LOCK_TIMEOUT) @@ -2167,10 +2169,10 @@ impl BeaconChain { .ok_or(BlockProductionError::NoEth1ChainConnection)?; // It is invalid to try to produce a block using a state from a future slot. - if state.slot > produce_at_slot { + if state.slot() > produce_at_slot { return Err(BlockProductionError::StateSlotTooHigh { produce_at_slot, - state_slot: state.slot, + state_slot: state.slot(), }); } @@ -2183,16 +2185,15 @@ impl BeaconChain { state.build_committee_cache(RelativeEpoch::Current, &self.spec)?; - let parent_root = if state.slot > 0 { + let parent_root = if state.slot() > 0 { *state - .get_block_root(state.slot - 1) + .get_block_root(state.slot() - 1) .map_err(|_| BlockProductionError::UnableToGetBlockRootFromState)? } else { - state.latest_block_header.canonical_root() + state.latest_block_header().canonical_root() }; - let (proposer_slashings, attester_slashings) = - self.op_pool.get_slashings(&state, &self.spec); + let (proposer_slashings, attester_slashings) = self.op_pool.get_slashings(&state); let eth1_data = eth1_chain.eth1_data_for_block_production(&state, &self.spec)?; let deposits = eth1_chain @@ -2206,8 +2207,8 @@ impl BeaconChain { for attestation in self.naive_aggregation_pool.read().iter() { if let Err(e) = self.op_pool.insert_attestation( attestation.clone(), - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), &self.spec, ) { // Don't stop block production if there's an error, just create a log. @@ -2250,13 +2251,17 @@ impl BeaconChain { .into(); drop(attestation_packing_timer); - let mut block = SignedBeaconBlock { - message: BeaconBlock { - slot: state.slot, - proposer_index: state.get_beacon_proposer_index(state.slot, &self.spec)? as u64, + let slot = state.slot(); + let proposer_index = state.get_beacon_proposer_index(state.slot(), &self.spec)? as u64; + let voluntary_exits = self.op_pool.get_voluntary_exits(&state, &self.spec).into(); + + let inner_block = match state { + BeaconState::Base(_) => BeaconBlock::Base(BeaconBlockBase { + slot, + proposer_index, parent_root, state_root: Hash256::zero(), - body: BeaconBlockBody { + body: BeaconBlockBodyBase { randao_reveal, eth1_data, graffiti, @@ -2264,13 +2269,35 @@ impl BeaconChain { attester_slashings: attester_slashings.into(), attestations, deposits, - voluntary_exits: self.op_pool.get_voluntary_exits(&state, &self.spec).into(), + voluntary_exits, }, - }, - // The block is not signed here, that is the task of a validator client. - signature: Signature::empty(), + }), + BeaconState::Altair(_) => BeaconBlock::Altair(BeaconBlockAltair { + slot, + proposer_index, + parent_root, + state_root: Hash256::zero(), + body: BeaconBlockBodyAltair { + randao_reveal, + eth1_data, + graffiti, + proposer_slashings: proposer_slashings.into(), + attester_slashings: attester_slashings.into(), + attestations, + deposits, + voluntary_exits, + // FIXME(altair): put a sync aggregate from the pool here (once implemented) + sync_aggregate: SyncAggregate::new(), + }, + }), }; + let block = SignedBeaconBlock::from_block( + inner_block, + // The block is not signed here, that is the task of a validator client. + Signature::empty(), + ); + let process_timer = metrics::start_timer(&metrics::BLOCK_PRODUCTION_PROCESS_TIMES); per_block_processing( &mut state, @@ -2285,19 +2312,20 @@ impl BeaconChain { let state_root = state.update_tree_hash_cache()?; drop(state_root_timer); - block.message.state_root = state_root; + let (mut block, _) = block.deconstruct(); + *block.state_root_mut() = state_root; metrics::inc_counter(&metrics::BLOCK_PRODUCTION_SUCCESSES); trace!( self.log, "Produced beacon block"; - "parent" => %block.message.parent_root, - "attestations" => block.message.body.attestations.len(), - "slot" => block.message.slot + "parent" => %block.parent_root(), + "attestations" => block.body().attestations().len(), + "slot" => block.slot() ); - Ok((block.message, state)) + Ok((block, state)) } /// Execute the fork choice algorithm and enthrone the result as the canonical head. @@ -2403,16 +2431,16 @@ impl BeaconChain { debug!( self.log, "Head beacon block"; - "justified_root" => %new_head.beacon_state.current_justified_checkpoint.root, - "justified_epoch" => new_head.beacon_state.current_justified_checkpoint.epoch, - "finalized_root" => %new_head.beacon_state.finalized_checkpoint.root, - "finalized_epoch" => new_head.beacon_state.finalized_checkpoint.epoch, + "justified_root" => %new_head.beacon_state.current_justified_checkpoint().root, + "justified_epoch" => new_head.beacon_state.current_justified_checkpoint().epoch, + "finalized_root" => %new_head.beacon_state.finalized_checkpoint().root, + "finalized_epoch" => new_head.beacon_state.finalized_checkpoint().epoch, "root" => %beacon_block_root, "slot" => new_head.beacon_block.slot(), ); }; - let new_finalized_checkpoint = new_head.beacon_state.finalized_checkpoint; + let new_finalized_checkpoint = new_head.beacon_state.finalized_checkpoint(); // It is an error to try to update to a head with a lesser finalized epoch. if new_finalized_checkpoint.epoch < old_finalized_checkpoint.epoch { @@ -2425,7 +2453,7 @@ impl BeaconChain { let is_epoch_transition = current_head.slot.epoch(T::EthSpec::slots_per_epoch()) < new_head .beacon_state - .slot + .slot() .epoch(T::EthSpec::slots_per_epoch()); if is_epoch_transition || is_reorg { @@ -2438,7 +2466,7 @@ impl BeaconChain { // These fields are used for server-sent events let state_root = new_head.beacon_state_root(); - let head_slot = new_head.beacon_state.slot; + let head_slot = new_head.beacon_state.slot(); let target_epoch_start_slot = new_head .beacon_state .current_epoch() @@ -2513,7 +2541,7 @@ impl BeaconChain { // the reach of the new head's `state_roots` array. let new_finalized_slot = head .beacon_state - .finalized_checkpoint + .finalized_checkpoint() .epoch .start_slot(T::EthSpec::slots_per_epoch()); let new_finalized_state_root = process_results( @@ -2592,7 +2620,7 @@ impl BeaconChain { beacon_block_root: Hash256, state: &BeaconState, ) -> Result<(), BeaconChainError> { - let finalized_checkpoint = state.finalized_checkpoint; + let finalized_checkpoint = state.finalized_checkpoint(); info!(self.log, "Verifying the configured weak subjectivity checkpoint"; "weak_subjectivity_epoch" => wss_checkpoint.epoch, "weak_subjectivity_root" => ?wss_checkpoint.root); // If epochs match, simply compare roots. if wss_checkpoint.epoch == finalized_checkpoint.epoch @@ -2653,7 +2681,7 @@ impl BeaconChain { new_finalized_state_root: Hash256, ) -> Result<(), Error> { self.fork_choice.write().prune()?; - let new_finalized_checkpoint = head_state.finalized_checkpoint; + let new_finalized_checkpoint = head_state.finalized_checkpoint(); self.observed_block_producers.write().prune( new_finalized_checkpoint @@ -2870,13 +2898,6 @@ impl BeaconChain { } } - /// Returns `true` if the given block root has not been processed. - pub fn is_new_block_root(&self, beacon_block_root: &Hash256) -> Result { - Ok(!self - .store - .item_exists::>(beacon_block_root)?) - } - /// Dumps the entire canonical chain, from the head to genesis to a vector for analysis. /// /// This could be a very expensive operation and should only be done in testing/analysis @@ -2984,9 +3005,9 @@ impl BeaconChain { .get_state(&block.state_root(), Some(block.slot())) .unwrap() .unwrap(); - finalized_blocks.insert(state.finalized_checkpoint.root); - justified_blocks.insert(state.current_justified_checkpoint.root); - justified_blocks.insert(state.previous_justified_checkpoint.root); + finalized_blocks.insert(state.finalized_checkpoint().root); + justified_blocks.insert(state.current_justified_checkpoint().root); + justified_blocks.insert(state.previous_justified_checkpoint().root); } if block_hash == canonical_head_hash { diff --git a/beacon_node/beacon_chain/src/beacon_fork_choice_store.rs b/beacon_node/beacon_chain/src/beacon_fork_choice_store.rs index 80b9fe2ad8..6345aac27a 100644 --- a/beacon_node/beacon_chain/src/beacon_fork_choice_store.rs +++ b/beacon_node/beacon_chain/src/beacon_fork_choice_store.rs @@ -10,10 +10,7 @@ use ssz_derive::{Decode, Encode}; use std::marker::PhantomData; use std::sync::Arc; use store::{Error as StoreError, HotColdDB, ItemStore}; -use types::{ - BeaconBlock, BeaconState, BeaconStateError, Checkpoint, EthSpec, Hash256, SignedBeaconBlock, - Slot, -}; +use types::{BeaconBlock, BeaconState, BeaconStateError, Checkpoint, EthSpec, Hash256, Slot}; #[derive(Debug)] pub enum Error { @@ -45,7 +42,7 @@ const MAX_BALANCE_CACHE_SIZE: usize = 4; /// zero. pub fn get_effective_balances(state: &BeaconState) -> Vec { state - .validators + .validators() .iter() .map(|validator| { if validator.is_active_at(state.current_epoch()) { @@ -91,7 +88,7 @@ impl BalancesCache { } let epoch_boundary_slot = state.current_epoch().start_slot(E::slots_per_epoch()); - let epoch_boundary_root = if epoch_boundary_slot == state.slot { + let epoch_boundary_root = if epoch_boundary_slot == state.slot() { block_root } else { // This call remains sensible as long as `state.block_roots` is larger than a single @@ -127,7 +124,7 @@ impl BalancesCache { let mut prior_block_found = false; for slot in state.current_epoch().slot_iter(E::slots_per_epoch()) { - if slot < state.slot { + if slot < state.slot() { if *state.get_block_root(slot)? != block_root { prior_block_found = true; break; @@ -208,7 +205,7 @@ where anchor: &BeaconSnapshot, ) -> Self { let anchor_state = &anchor.beacon_state; - let mut anchor_block_header = anchor_state.latest_block_header.clone(); + let mut anchor_block_header = anchor_state.latest_block_header().clone(); if anchor_block_header.state_root == Hash256::zero() { anchor_block_header.state_root = anchor.beacon_state_root(); } @@ -223,9 +220,9 @@ where Self { store, balances_cache: <_>::default(), - time: anchor_state.slot, + time: anchor_state.slot(), justified_checkpoint, - justified_balances: anchor_state.balances.clone().into(), + justified_balances: anchor_state.balances().clone().into(), finalized_checkpoint, best_justified_checkpoint: justified_checkpoint, _phantom: PhantomData, @@ -318,17 +315,20 @@ where metrics::inc_counter(&metrics::BALANCES_CACHE_MISSES); let justified_block = self .store - .get_item::>(&self.justified_checkpoint.root) + .get_block(&self.justified_checkpoint.root) .map_err(Error::FailedToReadBlock)? .ok_or(Error::MissingBlock(self.justified_checkpoint.root))? - .message; + .deconstruct() + .0; + // FIXME(altair): could remove clone with by-value `balances` accessor self.justified_balances = self .store - .get_state(&justified_block.state_root, Some(justified_block.slot)) + .get_state(&justified_block.state_root(), Some(justified_block.slot())) .map_err(Error::FailedToReadState)? - .ok_or(Error::MissingState(justified_block.state_root))? - .balances + .ok_or_else(|| Error::MissingState(justified_block.state_root()))? + .balances() + .clone() .into(); } diff --git a/beacon_node/beacon_chain/src/beacon_snapshot.rs b/beacon_node/beacon_chain/src/beacon_snapshot.rs index ba99debaa5..b9de6e9eba 100644 --- a/beacon_node/beacon_chain/src/beacon_snapshot.rs +++ b/beacon_node/beacon_chain/src/beacon_snapshot.rs @@ -1,10 +1,9 @@ use serde_derive::Serialize; -use ssz_derive::{Decode, Encode}; use types::{beacon_state::CloneConfig, BeaconState, EthSpec, Hash256, SignedBeaconBlock}; /// Represents some block and its associated state. Generally, this will be used for tracking the /// head, justified head and finalized head. -#[derive(Clone, Serialize, PartialEq, Debug, Encode, Decode)] +#[derive(Clone, Serialize, PartialEq, Debug)] pub struct BeaconSnapshot { pub beacon_block: SignedBeaconBlock, pub beacon_block_root: Hash256, @@ -31,7 +30,7 @@ impl BeaconSnapshot { /// /// It is not strictly enforced that `root(self.beacon_state) == self.beacon_state_root()`. pub fn beacon_state_root(&self) -> Hash256 { - self.beacon_block.message.state_root + self.beacon_block.message().state_root() } /// Update all fields of the checkpoint. diff --git a/beacon_node/beacon_chain/src/block_verification.rs b/beacon_node/beacon_chain/src/block_verification.rs index 89a5d58fe7..a4ae722b9f 100644 --- a/beacon_node/beacon_chain/src/block_verification.rs +++ b/beacon_node/beacon_chain/src/block_verification.rs @@ -71,8 +71,8 @@ use std::io::Write; use store::{Error as DBError, HotColdDB, HotStateSummary, KeyValueStore, StoreOp}; use tree_hash::TreeHash; use types::{ - BeaconBlock, BeaconState, BeaconStateError, ChainSpec, CloneConfig, Epoch, EthSpec, Hash256, - PublicKey, RelativeEpoch, SignedBeaconBlock, SignedBeaconBlockHeader, Slot, + BeaconBlockRef, BeaconState, BeaconStateError, ChainSpec, CloneConfig, Epoch, EthSpec, Hash256, + InconsistentFork, PublicKey, RelativeEpoch, SignedBeaconBlock, SignedBeaconBlockHeader, Slot, }; /// Maximum block slot number. Block with slots bigger than this constant will NOT be processed. @@ -219,6 +219,12 @@ pub enum BlockError { /// /// The block is invalid and the peer is faulty. WeakSubjectivityConflict, + /// The block has the wrong structure for the fork at `block.slot`. + /// + /// ## Peer scoring + /// + /// The block is invalid and the peer is faulty. + InconsistentFork(InconsistentFork), } impl std::fmt::Display for BlockError { @@ -477,6 +483,11 @@ impl GossipVerifiedBlock { block: SignedBeaconBlock, chain: &BeaconChain, ) -> Result> { + // Ensure the block is the correct structure for the fork at `block.slot()`. + block + .fork_name(&chain.spec) + .map_err(BlockError::InconsistentFork)?; + // Do not gossip or process blocks from future slots. let present_slot_with_tolerance = chain .slot_clock @@ -492,7 +503,7 @@ impl GossipVerifiedBlock { let block_root = get_block_root(&block); // Do not gossip a block from a finalized slot. - check_block_against_finalized_slot(&block.message, chain)?; + check_block_against_finalized_slot(block.message(), chain)?; // Check if the block is already known. We know it is post-finalization, so it is // sufficient to check the fork choice. @@ -509,12 +520,12 @@ impl GossipVerifiedBlock { if chain .observed_block_producers .read() - .proposer_has_been_observed(&block.message) + .proposer_has_been_observed(block.message()) .map_err(|e| BlockError::BeaconChainError(e.into()))? { return Err(BlockError::RepeatProposal { - proposer: block.message.proposer_index, - slot: block.message.slot, + proposer: block.message().proposer_index(), + slot: block.slot(), }); } @@ -563,7 +574,7 @@ impl GossipVerifiedBlock { }; // Reject any block that exceeds our limit on skipped slots. - check_block_skip_slots(chain, parent_block.slot, &block.message)?; + check_block_skip_slots(chain, parent_block.slot, block.message())?; // We assign to a variable instead of using `if let Some` directly to ensure we drop the // write lock before trying to acquire it again in the `else` clause. @@ -607,17 +618,17 @@ impl GossipVerifiedBlock { block_epoch, proposer_shuffling_decision_block, proposers, - state.fork, + state.fork(), )?; - (proposer_index, state.fork, Some(parent), block) + (proposer_index, state.fork(), Some(parent), block) }; let signature_is_valid = { let pubkey_cache = get_validator_pubkey_cache(chain)?; let pubkey = pubkey_cache - .get(block.message.proposer_index as usize) - .ok_or(BlockError::UnknownValidator(block.message.proposer_index))?; + .get(block.message().proposer_index() as usize) + .ok_or_else(|| BlockError::UnknownValidator(block.message().proposer_index()))?; block.verify_signature( Some(block_root), pubkey, @@ -639,18 +650,18 @@ impl GossipVerifiedBlock { if chain .observed_block_producers .write() - .observe_proposer(&block.message) + .observe_proposer(block.message()) .map_err(|e| BlockError::BeaconChainError(e.into()))? { return Err(BlockError::RepeatProposal { - proposer: block.message.proposer_index, - slot: block.message.slot, + proposer: block.message().proposer_index(), + slot: block.slot(), }); } - if block.message.proposer_index != expected_proposer as u64 { + if block.message().proposer_index() != expected_proposer as u64 { return Err(BlockError::IncorrectBlockProposer { - block: block.message.proposer_index, + block: block.message().proposer_index(), local_shuffling: expected_proposer as u64, }); } @@ -693,10 +704,15 @@ impl SignatureVerifiedBlock { block_root: Hash256, chain: &BeaconChain, ) -> Result> { + // Ensure the block is the correct structure for the fork at `block.slot()`. + block + .fork_name(&chain.spec) + .map_err(BlockError::InconsistentFork)?; + let (mut parent, block) = load_parent(block, chain)?; // Reject any block that exceeds our limit on skipped slots. - check_block_skip_slots(chain, parent.beacon_block.slot(), &block.message)?; + check_block_skip_slots(chain, parent.beacon_block.slot(), block.message())?; let state = cheap_state_advance_to_obtain_committees( &mut parent.pre_state, @@ -860,7 +876,7 @@ impl<'a, T: BeaconChainTypes> FullyVerifiedBlock<'a, T> { } // Reject any block that exceeds our limit on skipped slots. - check_block_skip_slots(chain, parent.beacon_block.slot(), &block.message)?; + check_block_skip_slots(chain, parent.beacon_block.slot(), block.message())?; /* * Perform cursory checks to see if the block is even worth processing. @@ -896,20 +912,20 @@ impl<'a, T: BeaconChainTypes> FullyVerifiedBlock<'a, T> { // Perform a sanity check on the pre-state. let parent_slot = parent.beacon_block.slot(); - if state.slot < parent_slot || state.slot > parent_slot + 1 { + if state.slot() < parent_slot || state.slot() > parent_slot + 1 { return Err(BeaconChainError::BadPreState { parent_root: parent.beacon_block_root, parent_slot, block_root, block_slot: block.slot(), - state_slot: state.slot, + state_slot: state.slot(), } .into()); } - let distance = block.slot().as_u64().saturating_sub(state.slot.as_u64()); + let distance = block.slot().as_u64().saturating_sub(state.slot().as_u64()); for _ in 0..distance { - let state_root = if parent.beacon_block.slot() == state.slot { + let state_root = if parent.beacon_block.slot() == state.slot() { // If it happens that `pre_state` has *not* already been advanced forward a single // slot, then there is no need to compute the state root for this // `per_slot_processing` call since that state root is already stored in the parent @@ -935,7 +951,7 @@ impl<'a, T: BeaconChainTypes> FullyVerifiedBlock<'a, T> { vec![] } else { vec![ - if state.slot % T::EthSpec::slots_per_epoch() == 0 { + if state.slot() % T::EthSpec::slots_per_epoch() == 0 { StoreOp::PutState(state_root, &state) } else { StoreOp::PutStateSummary( @@ -1070,14 +1086,14 @@ impl<'a, T: BeaconChainTypes> FullyVerifiedBlock<'a, T> { fn check_block_skip_slots( chain: &BeaconChain, parent_slot: Slot, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T::EthSpec>, ) -> Result<(), BlockError> { // Reject any block that exceeds our limit on skipped slots. if let Some(max_skip_slots) = chain.config.import_max_skip_slots { - if block.slot > parent_slot + max_skip_slots { + if block.slot() > parent_slot + max_skip_slots { return Err(BlockError::TooManySkippedSlots { parent_slot, - block_slot: block.slot, + block_slot: block.slot(), }); } } @@ -1090,7 +1106,7 @@ fn check_block_skip_slots( /// Returns an error if the block is earlier or equal to the finalized slot, or there was an error /// verifying that condition. fn check_block_against_finalized_slot( - block: &BeaconBlock, + block: BeaconBlockRef<'_, T::EthSpec>, chain: &BeaconChain, ) -> Result<(), BlockError> { let finalized_slot = chain @@ -1099,9 +1115,9 @@ fn check_block_against_finalized_slot( .epoch .start_slot(T::EthSpec::slots_per_epoch()); - if block.slot <= finalized_slot { + if block.slot() <= finalized_slot { Err(BlockError::WouldRevertFinalizedSlot { - block_slot: block.slot, + block_slot: block.slot(), finalized_slot, }) } else { @@ -1127,7 +1143,7 @@ pub fn check_block_is_finalized_descendant>(&block.parent_root()) + .block_exists(&block.parent_root()) .map_err(|e| BlockError::BeaconChainError(e.into()))? { Err(BlockError::NotFinalizedDescendant { @@ -1151,24 +1167,24 @@ pub fn check_block_relevancy( block_root: Option, chain: &BeaconChain, ) -> Result> { - let block = &signed_block.message; + let block = signed_block.message(); // Do not process blocks from the future. - if block.slot > chain.slot()? { + if block.slot() > chain.slot()? { return Err(BlockError::FutureSlot { present_slot: chain.slot()?, - block_slot: block.slot, + block_slot: block.slot(), }); } // Do not re-process the genesis block. - if block.slot == 0 { + if block.slot() == 0 { return Err(BlockError::GenesisBlock); } // This is an artificial (non-spec) restriction that provides some protection from overflow // abuses. - if block.slot >= MAXIMUM_BLOCK_SLOT_NUMBER { + if block.slot() >= MAXIMUM_BLOCK_SLOT_NUMBER { return Err(BlockError::BlockSlotLimitReached); } @@ -1209,7 +1225,7 @@ fn verify_parent_block_is_known( if let Some(proto_block) = chain .fork_choice .read() - .get_block(&block.message.parent_root) + .get_block(&block.message().parent_root()) { Ok((proto_block, block)) } else { @@ -1327,10 +1343,10 @@ fn cheap_state_advance_to_obtain_committees<'a, E: EthSpec>( state.build_committee_cache(RelativeEpoch::Current, spec)?; Ok(Cow::Borrowed(state)) - } else if state.slot > block_slot { + } else if state.slot() > block_slot { Err(BlockError::BlockIsNotLaterThanParent { block_slot, - parent_slot: state.slot, + parent_slot: state.slot(), }) } else { let mut state = state.clone_with(CloneConfig::committee_caches_only()); @@ -1372,7 +1388,7 @@ fn get_signature_verifier<'a, T: BeaconChainTypes>( move |validator_index| { // Disallow access to any validator pubkeys that are not in the current beacon // state. - if validator_index < state.validators.len() { + if validator_index < state.validators().len() { validator_pubkey_cache .get(validator_index) .map(|pk| Cow::Borrowed(pk)) @@ -1398,8 +1414,8 @@ fn verify_header_signature( let (fork, genesis_validators_root) = chain .with_head(|head| { Ok(( - head.beacon_state.fork, - head.beacon_state.genesis_validators_root, + head.beacon_state.fork(), + head.beacon_state.genesis_validators_root(), )) }) .map_err(|e: BlockError| e)?; @@ -1458,7 +1474,7 @@ fn participation_ratio(section: u64, total: u64) -> Option { fn write_state(prefix: &str, state: &BeaconState, log: &Logger) { if WRITE_BLOCK_PROCESSING_SSZ { let root = state.tree_hash_root(); - let filename = format!("{}_slot_{}_root_{}.ssz", prefix, state.slot, root); + let filename = format!("{}_slot_{}_root_{}.ssz", prefix, state.slot(), root); let mut path = std::env::temp_dir().join("lighthouse"); let _ = fs::create_dir_all(path.clone()); path = path.join(filename); @@ -1479,7 +1495,7 @@ fn write_state(prefix: &str, state: &BeaconState, log: &Logger) { fn write_block(block: &SignedBeaconBlock, root: Hash256, log: &Logger) { if WRITE_BLOCK_PROCESSING_SSZ { - let filename = format!("block_slot_{}_root{}.ssz", block.message.slot, root); + let filename = format!("block_slot_{}_root{}.ssz", block.slot(), root); let mut path = std::env::temp_dir().join("lighthouse"); let _ = fs::create_dir_all(path.clone()); path = path.join(filename); diff --git a/beacon_node/beacon_chain/src/builder.rs b/beacon_node/beacon_chain/src/builder.rs index 237e61414b..efc6865b37 100644 --- a/beacon_node/beacon_chain/src/builder.rs +++ b/beacon_node/beacon_chain/src/builder.rs @@ -236,7 +236,7 @@ where .ok_or("Fork choice not found in store")?; let genesis_block = store - .get_item::>(&chain.genesis_block_root) + .get_block(&chain.genesis_block_root) .map_err(|e| format!("DB error when reading genesis block: {:?}", e))? .ok_or("Genesis block not found in store")?; let genesis_state = store @@ -244,7 +244,7 @@ where .map_err(|e| format!("DB error when reading genesis state: {:?}", e))? .ok_or("Genesis block not found in store")?; - self.genesis_time = Some(genesis_state.genesis_time); + self.genesis_time = Some(genesis_state.genesis_time()); self.op_pool = Some( store @@ -282,7 +282,7 @@ where .build_all_caches(&self.spec) .map_err(|e| format!("Failed to build genesis state caches: {:?}", e))?; - let beacon_state_root = beacon_block.message.state_root; + let beacon_state_root = beacon_block.message().state_root(); let beacon_block_root = beacon_block.canonical_root(); self.genesis_state_root = Some(beacon_state_root); @@ -292,12 +292,12 @@ where .put_state(&beacon_state_root, &beacon_state) .map_err(|e| format!("Failed to store genesis state: {:?}", e))?; store - .put_item(&beacon_block_root, &beacon_block) + .put_block(&beacon_block_root, beacon_block.clone()) .map_err(|e| format!("Failed to store genesis block: {:?}", e))?; // Store the genesis block under the `ZERO_HASH` key. store - .put_item(&Hash256::zero(), &beacon_block) + .put_block(&Hash256::zero(), beacon_block.clone()) .map_err(|e| { format!( "Failed to store genesis block under 0x00..00 alias: {:?}", @@ -316,13 +316,13 @@ where let fork_choice = ForkChoice::from_genesis( fc_store, genesis.beacon_block_root, - &genesis.beacon_block.message, + &genesis.beacon_block.deconstruct().0, &genesis.beacon_state, ) .map_err(|e| format!("Unable to build initialize ForkChoice: {:?}", e))?; self.fork_choice = Some(fork_choice); - self.genesis_time = Some(genesis.beacon_state.genesis_time); + self.genesis_time = Some(genesis.beacon_state.genesis_time()); Ok(self.empty_op_pool()) } @@ -435,7 +435,7 @@ where .map_err(|e| format!("Unable to get fork choice head: {:?}", e))?; let head_block = store - .get_item::>(&head_block_root) + .get_block(&head_block_root) .map_err(|e| format!("DB error when reading head block: {:?}", e))? .ok_or("Head block not found in store")?; let head_state_root = head_block.state_root(); @@ -460,7 +460,7 @@ where // // This is a sanity check to detect database corruption. let fc_finalized = fork_choice.finalized_checkpoint(); - let head_finalized = canonical_head.beacon_state.finalized_checkpoint; + let head_finalized = canonical_head.beacon_state.finalized_checkpoint(); if fc_finalized != head_finalized { if head_finalized.root == Hash256::zero() && head_finalized.epoch == fc_finalized.epoch @@ -518,7 +518,7 @@ where observed_proposer_slashings: <_>::default(), observed_attester_slashings: <_>::default(), eth1_chain: self.eth1_chain, - genesis_validators_root: canonical_head.beacon_state.genesis_validators_root, + genesis_validators_root: canonical_head.beacon_state.genesis_validators_root(), canonical_head: TimeoutRwLock::new(canonical_head.clone()), genesis_block_root, genesis_state_root, @@ -558,7 +558,7 @@ where "Weak subjectivity checkpoint verification failed on startup!"; "head_block_root" => format!("{}", head.beacon_block_root), "head_slot" => format!("{}", head.beacon_block.slot()), - "finalized_epoch" => format!("{}", head.beacon_state.finalized_checkpoint.epoch), + "finalized_epoch" => format!("{}", head.beacon_state.finalized_checkpoint().epoch), "wss_checkpoint_epoch" => format!("{}", wss_checkpoint.epoch), "error" => format!("{:?}", e), ); @@ -640,16 +640,17 @@ fn genesis_block( genesis_state: &mut BeaconState, spec: &ChainSpec, ) -> Result, String> { - let mut genesis_block = SignedBeaconBlock { - message: BeaconBlock::empty(&spec), - // Empty signature, which should NEVER be read. This isn't to-spec, but makes the genesis - // block consistent with every other block. - signature: Signature::empty(), - }; - genesis_block.message.state_root = genesis_state + let mut genesis_block = BeaconBlock::empty(&spec); + *genesis_block.state_root_mut() = genesis_state .update_tree_hash_cache() .map_err(|e| format!("Error hashing genesis state: {:?}", e))?; - Ok(genesis_block) + + Ok(SignedBeaconBlock::from_block( + genesis_block, + // Empty signature, which should NEVER be read. This isn't to-spec, but makes the genesis + // block consistent with every other block. + Signature::empty(), + )) } #[cfg(not(debug_assertions))] @@ -714,9 +715,10 @@ mod test { let state = head.beacon_state; let block = head.beacon_block; - assert_eq!(state.slot, Slot::new(0), "should start from genesis"); + assert_eq!(state.slot(), Slot::new(0), "should start from genesis"); assert_eq!( - state.genesis_time, 13_371_337, + state.genesis_time(), + 13_371_337, "should have the correct genesis time" ); assert_eq!( @@ -734,7 +736,7 @@ mod test { "should store genesis block under zero hash alias" ); assert_eq!( - state.validators.len(), + state.validators().len(), validator_count, "should have correct validator count" ); @@ -757,24 +759,25 @@ mod test { .expect("should build state"); assert_eq!( - state.eth1_data.block_hash, + state.eth1_data().block_hash, Hash256::from_slice(&[0x42; 32]), "eth1 block hash should be co-ordinated junk" ); assert_eq!( - state.genesis_time, genesis_time, + state.genesis_time(), + genesis_time, "genesis time should be as specified" ); - for b in &state.balances { + for b in state.balances() { assert_eq!( *b, spec.max_effective_balance, "validator balances should be max effective balance" ); } - for v in &state.validators { + for v in state.validators() { let creds = v.withdrawal_credentials.as_bytes(); assert_eq!( creds[0], spec.bls_withdrawal_prefix_byte, @@ -788,13 +791,13 @@ mod test { } assert_eq!( - state.balances.len(), + state.balances().len(), validator_count, "validator balances len should be correct" ); assert_eq!( - state.validators.len(), + state.validators().len(), validator_count, "validator count should be correct" ); diff --git a/beacon_node/beacon_chain/src/eth1_chain.rs b/beacon_node/beacon_chain/src/eth1_chain.rs index f054796b74..f8c12e3c87 100644 --- a/beacon_node/beacon_chain/src/eth1_chain.rs +++ b/beacon_node/beacon_chain/src/eth1_chain.rs @@ -2,6 +2,7 @@ use crate::metrics; use eth1::{Config as Eth1Config, Eth1Block, Service as HttpService}; use eth2::lighthouse::Eth1SyncStatusData; use eth2_hashing::hash; +use int_to_bytes::int_to_bytes32; use slog::{debug, error, trace, Logger}; use ssz::{Decode, Encode}; use ssz_derive::{Decode, Encode}; @@ -364,7 +365,7 @@ impl Eth1ChainBackend for DummyEth1ChainBackend { Ok(Eth1Data { deposit_root: Hash256::from_slice(&deposit_root), - deposit_count: state.eth1_deposit_index, + deposit_count: state.eth1_deposit_index(), block_hash: Hash256::from_slice(&block_hash), }) } @@ -451,9 +452,9 @@ impl CachingEth1Backend { impl Eth1ChainBackend for CachingEth1Backend { fn eth1_data(&self, state: &BeaconState, spec: &ChainSpec) -> Result { let period = T::SlotsPerEth1VotingPeriod::to_u64(); - let voting_period_start_slot = (state.slot / period) * period; + let voting_period_start_slot = (state.slot() / period) * period; let voting_period_start_seconds = slot_start_seconds::( - state.genesis_time, + state.genesis_time(), spec.seconds_per_slot, voting_period_start_slot, ); @@ -491,13 +492,13 @@ impl Eth1ChainBackend for CachingEth1Backend { vote }) .unwrap_or_else(|| { - let vote = state.eth1_data.clone(); + let vote = state.eth1_data().clone(); error!( self.log, "No valid eth1_data votes, `votes_to_consider` empty"; "lowest_block_number" => self.core.lowest_block_number(), "earliest_block_timestamp" => self.core.earliest_block_timestamp(), - "genesis_time" => state.genesis_time, + "genesis_time" => state.genesis_time(), "outcome" => "casting `state.eth1_data` as eth1 vote" ); metrics::inc_counter(&metrics::DEFAULT_ETH1_VOTES); @@ -522,11 +523,11 @@ impl Eth1ChainBackend for CachingEth1Backend { eth1_data_vote: &Eth1Data, _spec: &ChainSpec, ) -> Result, Error> { - let deposit_index = state.eth1_deposit_index; + let deposit_index = state.eth1_deposit_index(); let deposit_count = if let Some(new_eth1_data) = get_new_eth1_data(state, eth1_data_vote)? { new_eth1_data.deposit_count } else { - state.eth1_data.deposit_count + state.eth1_data().deposit_count }; match deposit_index.cmp(&deposit_count) { @@ -609,7 +610,7 @@ fn collect_valid_votes( ) -> Eth1DataVoteCount { let mut valid_votes = HashMap::new(); state - .eth1_data_votes + .eth1_data_votes() .iter() .filter_map(|vote| { votes_to_consider @@ -633,13 +634,6 @@ fn find_winning_vote(valid_votes: Eth1DataVoteCount) -> Option { .map(|((eth1_data, _), _)| eth1_data.clone()) } -/// Returns `int` as little-endian bytes with a length of 32. -fn int_to_bytes32(int: u64) -> Vec { - let mut vec = int.to_le_bytes().to_vec(); - vec.resize(32, 0); - vec -} - /// Returns the unix-epoch seconds at the start of the given `slot`. fn slot_start_seconds( genesis_unix_seconds: u64, @@ -666,7 +660,7 @@ fn is_candidate_block(block: &Eth1Block, period_start: u64, spec: &ChainSpec) -> mod test { use super::*; use environment::null_logger; - use types::{test_utils::DepositTestTask, MinimalEthSpec}; + use types::{DepositData, MinimalEthSpec, Signature}; type E = MinimalEthSpec; @@ -680,9 +674,9 @@ mod test { fn get_voting_period_start_seconds(state: &BeaconState, spec: &ChainSpec) -> u64 { let period = ::SlotsPerEth1VotingPeriod::to_u64(); - let voting_period_start_slot = (state.slot / period) * period; + let voting_period_start_slot = (state.slot() / period) * period; slot_start_seconds::( - state.genesis_time, + state.genesis_time(), spec.seconds_per_slot, voting_period_start_slot, ) @@ -723,10 +717,7 @@ mod test { mod eth1_chain_json_backend { use super::*; use eth1::DepositLog; - use types::{ - test_utils::{generate_deterministic_keypair, TestingDepositBuilder}, - EthSpec, MainnetEthSpec, - }; + use types::{test_utils::generate_deterministic_keypair, EthSpec, MainnetEthSpec}; fn get_eth1_chain() -> Eth1Chain, E> { let eth1_config = Eth1Config { @@ -743,13 +734,17 @@ mod test { fn get_deposit_log(i: u64, spec: &ChainSpec) -> DepositLog { let keypair = generate_deterministic_keypair(i as usize); - let mut builder = - TestingDepositBuilder::new(keypair.pk.clone(), spec.max_effective_balance); - builder.sign(DepositTestTask::Valid, &keypair, spec); - let deposit_data = builder.build().data; + let mut deposit = DepositData { + pubkey: keypair.pk.into(), + withdrawal_credentials: Hash256::zero(), + amount: spec.max_effective_balance, + signature: Signature::empty().into(), + }; + + deposit.signature = deposit.create_signature(&keypair.sk, &E::default_spec()); DepositLog { - deposit_data, + deposit_data: deposit, block_number: i, index: i, signature_is_valid: true, @@ -768,8 +763,8 @@ mod test { ); let mut state: BeaconState = BeaconState::new(0, get_eth1_data(0), &spec); - state.eth1_deposit_index = 0; - state.eth1_data.deposit_count = 0; + *state.eth1_deposit_index_mut() = 0; + state.eth1_data_mut().deposit_count = 0; assert!( eth1_chain @@ -778,7 +773,7 @@ mod test { "should succeed if cache is empty but no deposits are required" ); - state.eth1_data.deposit_count = 1; + state.eth1_data_mut().deposit_count = 1; assert!( eth1_chain @@ -821,8 +816,8 @@ mod test { ); let mut state: BeaconState = BeaconState::new(0, get_eth1_data(0), &spec); - state.eth1_deposit_index = 0; - state.eth1_data.deposit_count = 0; + *state.eth1_deposit_index_mut() = 0; + state.eth1_data_mut().deposit_count = 0; assert!( eth1_chain @@ -832,10 +827,10 @@ mod test { ); (0..3).for_each(|initial_deposit_index| { - state.eth1_deposit_index = initial_deposit_index as u64; + *state.eth1_deposit_index_mut() = initial_deposit_index as u64; (initial_deposit_index..deposits.len()).for_each(|i| { - state.eth1_data.deposit_count = i as u64; + state.eth1_data_mut().deposit_count = i as u64; let deposits_for_inclusion = eth1_chain .deposits_for_block_inclusion(&state, &Eth1Data::default(), spec) @@ -888,7 +883,8 @@ mod test { .eth1_data_for_block_production(&state, &spec) .expect("should produce default eth1 data vote"); assert_eq!( - a, state.eth1_data, + a, + *state.eth1_data(), "default vote should be same as state.eth1_data" ); } @@ -908,7 +904,7 @@ mod test { let mut state: BeaconState = BeaconState::new(0, get_eth1_data(0), &spec); - state.slot = Slot::from(slots_per_eth1_voting_period * 10); + *state.slot_mut() = Slot::from(slots_per_eth1_voting_period * 10); let follow_distance_seconds = eth1_follow_distance * spec.seconds_per_eth1_block; let voting_period_start = get_voting_period_start_seconds(&state, &spec); let start_eth1_block = voting_period_start - follow_distance_seconds * 2; @@ -974,8 +970,8 @@ mod test { let eth1_follow_distance = spec.eth1_follow_distance; let mut state: BeaconState = BeaconState::new(0, get_eth1_data(0), &spec); - state.genesis_time = 0; - state.slot = Slot::from(slots_per_eth1_voting_period * 10); + *state.genesis_time_mut() = 0; + *state.slot_mut() = Slot::from(slots_per_eth1_voting_period * 10); let follow_distance_seconds = eth1_follow_distance * spec.seconds_per_eth1_block; let voting_period_start = get_voting_period_start_seconds(&state, &spec); @@ -1055,7 +1051,7 @@ mod test { let votes_to_consider = get_eth1_data_vec(slots, 0); - state.eth1_data_votes = votes_to_consider[0..slots as usize / 4] + *state.eth1_data_votes_mut() = votes_to_consider[0..slots as usize / 4] .iter() .map(|(eth1_data, _)| eth1_data) .cloned() @@ -1084,7 +1080,7 @@ mod test { .expect("should have some eth1 data") .clone(); - state.eth1_data_votes = vec![duplicate_eth1_data.clone(); 4] + *state.eth1_data_votes_mut() = vec![duplicate_eth1_data.clone(); 4] .iter() .map(|(eth1_data, _)| eth1_data) .cloned() diff --git a/beacon_node/beacon_chain/src/head_tracker.rs b/beacon_node/beacon_chain/src/head_tracker.rs index 4a4ce2fe57..84c800f3b7 100644 --- a/beacon_node/beacon_chain/src/head_tracker.rs +++ b/beacon_node/beacon_chain/src/head_tracker.rs @@ -112,14 +112,14 @@ mod test { let mut block: BeaconBlock = BeaconBlock::empty(spec); let block_root = Hash256::from_low_u64_be(i); - block.slot = Slot::new(i); - block.parent_root = if i == 0 { + *block.slot_mut() = Slot::new(i); + *block.parent_root_mut() = if i == 0 { Hash256::random() } else { Hash256::from_low_u64_be(i - 1) }; - head_tracker.register_block(block_root, block.parent_root, block.slot); + head_tracker.register_block(block_root, block.parent_root(), block.slot()); } assert_eq!( @@ -130,9 +130,9 @@ mod test { let mut block: BeaconBlock = BeaconBlock::empty(spec); let block_root = Hash256::from_low_u64_be(42); - block.slot = Slot::new(15); - block.parent_root = Hash256::from_low_u64_be(14); - head_tracker.register_block(block_root, block.parent_root, block.slot); + *block.slot_mut() = Slot::new(15); + *block.parent_root_mut() = Hash256::from_low_u64_be(14); + head_tracker.register_block(block_root, block.parent_root(), block.slot()); let heads = head_tracker.heads(); diff --git a/beacon_node/beacon_chain/src/metrics.rs b/beacon_node/beacon_chain/src/metrics.rs index 10eb0c7f47..fd79c0e666 100644 --- a/beacon_node/beacon_chain/src/metrics.rs +++ b/beacon_node/beacon_chain/src/metrics.rs @@ -682,42 +682,53 @@ pub fn scrape_for_metrics(beacon_chain: &BeaconChain) { /// Scrape the given `state` assuming it's the head state, updating the `DEFAULT_REGISTRY`. fn scrape_head_state(state: &BeaconState, state_root: Hash256) { - set_gauge_by_slot(&HEAD_STATE_SLOT, state.slot); + set_gauge_by_slot(&HEAD_STATE_SLOT, state.slot()); set_gauge_by_hash(&HEAD_STATE_ROOT, state_root); set_gauge_by_slot( &HEAD_STATE_LATEST_BLOCK_SLOT, - state.latest_block_header.slot, + state.latest_block_header().slot, ); set_gauge_by_hash( &HEAD_STATE_CURRENT_JUSTIFIED_ROOT, - state.current_justified_checkpoint.root, + state.current_justified_checkpoint().root, ); set_gauge_by_epoch( &HEAD_STATE_CURRENT_JUSTIFIED_EPOCH, - state.current_justified_checkpoint.epoch, + state.current_justified_checkpoint().epoch, ); set_gauge_by_hash( &HEAD_STATE_PREVIOUS_JUSTIFIED_ROOT, - state.previous_justified_checkpoint.root, + state.previous_justified_checkpoint().root, ); set_gauge_by_epoch( &HEAD_STATE_PREVIOUS_JUSTIFIED_EPOCH, - state.previous_justified_checkpoint.epoch, + state.previous_justified_checkpoint().epoch, + ); + set_gauge_by_hash( + &HEAD_STATE_FINALIZED_ROOT, + state.finalized_checkpoint().root, ); - set_gauge_by_hash(&HEAD_STATE_FINALIZED_ROOT, state.finalized_checkpoint.root); set_gauge_by_epoch( &HEAD_STATE_FINALIZED_EPOCH, - state.finalized_checkpoint.epoch, + state.finalized_checkpoint().epoch, + ); + set_gauge_by_usize(&HEAD_STATE_TOTAL_VALIDATORS, state.validators().len()); + set_gauge_by_u64( + &HEAD_STATE_VALIDATOR_BALANCES, + state.balances().iter().sum(), + ); + set_gauge_by_u64(&HEAD_STATE_ETH1_DEPOSIT_INDEX, state.eth1_deposit_index()); + set_gauge_by_usize(&HEAD_STATE_TOTAL_VALIDATORS, state.validators().len()); + set_gauge_by_u64( + &HEAD_STATE_VALIDATOR_BALANCES, + state.balances().iter().sum(), ); - set_gauge_by_u64(&HEAD_STATE_ETH1_DEPOSIT_INDEX, state.eth1_deposit_index); - set_gauge_by_usize(&HEAD_STATE_TOTAL_VALIDATORS, state.validators.len()); - set_gauge_by_u64(&HEAD_STATE_VALIDATOR_BALANCES, state.balances.iter().sum()); let mut num_active: usize = 0; let mut num_slashed: usize = 0; let mut num_withdrawn: usize = 0; - for v in &state.validators { + for v in state.validators() { if v.is_active_at(state.current_epoch()) { num_active += 1; } diff --git a/beacon_node/beacon_chain/src/migrate.rs b/beacon_node/beacon_chain/src/migrate.rs index 92f8efe435..5a599586cb 100644 --- a/beacon_node/beacon_chain/src/migrate.rs +++ b/beacon_node/beacon_chain/src/migrate.rs @@ -284,9 +284,9 @@ impl, Cold: ItemStore> BackgroundMigrator ObservedBlockProducers { /// /// - `block.proposer_index` is greater than `VALIDATOR_REGISTRY_LIMIT`. /// - `block.slot` is equal to or less than the latest pruned `finalized_slot`. - pub fn observe_proposer(&mut self, block: &BeaconBlock) -> Result { + pub fn observe_proposer(&mut self, block: BeaconBlockRef<'_, E>) -> Result { self.sanitize_block(block)?; let did_not_exist = self .items - .entry(block.slot) + .entry(block.slot()) .or_insert_with(|| HashSet::with_capacity(E::SlotsPerEpoch::to_usize())) - .insert(block.proposer_index); + .insert(block.proposer_index()); Ok(!did_not_exist) } @@ -72,27 +72,27 @@ impl ObservedBlockProducers { /// /// - `block.proposer_index` is greater than `VALIDATOR_REGISTRY_LIMIT`. /// - `block.slot` is equal to or less than the latest pruned `finalized_slot`. - pub fn proposer_has_been_observed(&self, block: &BeaconBlock) -> Result { + pub fn proposer_has_been_observed(&self, block: BeaconBlockRef<'_, E>) -> Result { self.sanitize_block(block)?; let exists = self .items - .get(&block.slot) - .map_or(false, |set| set.contains(&block.proposer_index)); + .get(&block.slot()) + .map_or(false, |set| set.contains(&block.proposer_index())); Ok(exists) } /// Returns `Ok(())` if the given `block` is sane. - fn sanitize_block(&self, block: &BeaconBlock) -> Result<(), Error> { - if block.proposer_index > E::ValidatorRegistryLimit::to_u64() { - return Err(Error::ValidatorIndexTooHigh(block.proposer_index)); + fn sanitize_block(&self, block: BeaconBlockRef<'_, E>) -> Result<(), Error> { + if block.proposer_index() >= E::ValidatorRegistryLimit::to_u64() { + return Err(Error::ValidatorIndexTooHigh(block.proposer_index())); } let finalized_slot = self.finalized_slot; - if finalized_slot > 0 && block.slot <= finalized_slot { + if finalized_slot > 0 && block.slot() <= finalized_slot { return Err(Error::FinalizedBlock { - slot: block.slot, + slot: block.slot(), finalized_slot, }); } @@ -119,14 +119,14 @@ impl ObservedBlockProducers { #[cfg(test)] mod tests { use super::*; - use types::MainnetEthSpec; + use types::{BeaconBlock, MainnetEthSpec}; type E = MainnetEthSpec; fn get_block(slot: u64, proposer: u64) -> BeaconBlock { let mut block = BeaconBlock::empty(&E::default_spec()); - block.slot = slot.into(); - block.proposer_index = proposer; + *block.slot_mut() = slot.into(); + *block.proposer_index_mut() = proposer; block } @@ -138,10 +138,10 @@ mod tests { assert_eq!(cache.items.len(), 0, "no slots should be present"); // Slot 0, proposer 0 - let block_a = &get_block(0, 0); + let block_a = get_block(0, 0); assert_eq!( - cache.observe_proposer(block_a), + cache.observe_proposer(block_a.to_ref()), Ok(false), "can observe proposer, indicates proposer unobserved" ); @@ -197,10 +197,10 @@ mod tests { */ // First slot of finalized epoch, proposer 0 - let block_b = &get_block(E::slots_per_epoch(), 0); + let block_b = get_block(E::slots_per_epoch(), 0); assert_eq!( - cache.observe_proposer(block_b), + cache.observe_proposer(block_b.to_ref()), Err(Error::FinalizedBlock { slot: E::slots_per_epoch().into(), finalized_slot: E::slots_per_epoch().into(), @@ -217,10 +217,10 @@ mod tests { let three_epochs = E::slots_per_epoch() * 3; // First slot of finalized epoch, proposer 0 - let block_b = &get_block(three_epochs, 0); + let block_b = get_block(three_epochs, 0); assert_eq!( - cache.observe_proposer(block_b), + cache.observe_proposer(block_b.to_ref()), Ok(false), "can insert non-finalized block" ); @@ -266,25 +266,25 @@ mod tests { let mut cache = ObservedBlockProducers::default(); // Slot 0, proposer 0 - let block_a = &get_block(0, 0); + let block_a = get_block(0, 0); assert_eq!( - cache.proposer_has_been_observed(block_a), + cache.proposer_has_been_observed(block_a.to_ref()), Ok(false), "no observation in empty cache" ); assert_eq!( - cache.observe_proposer(block_a), + cache.observe_proposer(block_a.to_ref()), Ok(false), "can observe proposer, indicates proposer unobserved" ); assert_eq!( - cache.proposer_has_been_observed(block_a), + cache.proposer_has_been_observed(block_a.to_ref()), Ok(true), "observed block is indicated as true" ); assert_eq!( - cache.observe_proposer(block_a), + cache.observe_proposer(block_a.to_ref()), Ok(true), "observing again indicates true" ); @@ -302,25 +302,25 @@ mod tests { ); // Slot 1, proposer 0 - let block_b = &get_block(1, 0); + let block_b = get_block(1, 0); assert_eq!( - cache.proposer_has_been_observed(block_b), + cache.proposer_has_been_observed(block_b.to_ref()), Ok(false), "no observation for new slot" ); assert_eq!( - cache.observe_proposer(block_b), + cache.observe_proposer(block_b.to_ref()), Ok(false), "can observe proposer for new slot, indicates proposer unobserved" ); assert_eq!( - cache.proposer_has_been_observed(block_b), + cache.proposer_has_been_observed(block_b.to_ref()), Ok(true), "observed block in slot 1 is indicated as true" ); assert_eq!( - cache.observe_proposer(block_b), + cache.observe_proposer(block_b.to_ref()), Ok(true), "observing slot 1 again indicates true" ); @@ -347,25 +347,25 @@ mod tests { ); // Slot 0, proposer 1 - let block_c = &get_block(0, 1); + let block_c = get_block(0, 1); assert_eq!( - cache.proposer_has_been_observed(block_c), + cache.proposer_has_been_observed(block_c.to_ref()), Ok(false), "no observation for new proposer" ); assert_eq!( - cache.observe_proposer(block_c), + cache.observe_proposer(block_c.to_ref()), Ok(false), "can observe new proposer, indicates proposer unobserved" ); assert_eq!( - cache.proposer_has_been_observed(block_c), + cache.proposer_has_been_observed(block_c.to_ref()), Ok(true), "observed new proposer block is indicated as true" ); assert_eq!( - cache.observe_proposer(block_c), + cache.observe_proposer(block_c.to_ref()), Ok(true), "observing new proposer again indicates true" ); diff --git a/beacon_node/beacon_chain/src/snapshot_cache.rs b/beacon_node/beacon_chain/src/snapshot_cache.rs index 435e4b6f8d..b386c22c29 100644 --- a/beacon_node/beacon_chain/src/snapshot_cache.rs +++ b/beacon_node/beacon_chain/src/snapshot_cache.rs @@ -161,7 +161,7 @@ impl SnapshotCache { .enumerate() .filter_map(|(i, snapshot)| { if snapshot.beacon_block_root != self.head_block_root { - Some((i, snapshot.beacon_state.slot)) + Some((i, snapshot.beacon_state.slot())) } else { None } @@ -263,7 +263,7 @@ impl SnapshotCache { /// Removes all snapshots from the queue that are less than or equal to the finalized epoch. pub fn prune(&mut self, finalized_epoch: Epoch) { self.snapshots.retain(|snapshot| { - snapshot.beacon_state.slot > finalized_epoch.start_slot(T::slots_per_epoch()) + snapshot.beacon_state.slot() > finalized_epoch.start_slot(T::slots_per_epoch()) }) } @@ -279,27 +279,43 @@ impl SnapshotCache { #[cfg(test)] mod test { use super::*; + use crate::test_utils::{BeaconChainHarness, EphemeralHarnessType}; + use store::StoreConfig; use types::{ - test_utils::{generate_deterministic_keypair, TestingBeaconStateBuilder}, - BeaconBlock, Epoch, MainnetEthSpec, SignedBeaconBlock, Slot, + test_utils::generate_deterministic_keypair, BeaconBlock, Epoch, MainnetEthSpec, + SignedBeaconBlock, Slot, }; + fn get_harness() -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + MainnetEthSpec, + None, + types::test_utils::generate_deterministic_keypairs(1), + StoreConfig::default(), + ); + + harness.advance_slot(); + + harness + } + const CACHE_SIZE: usize = 4; fn get_snapshot(i: u64) -> BeaconSnapshot { let spec = MainnetEthSpec::default_spec(); - let state_builder = TestingBeaconStateBuilder::from_deterministic_keypairs(1, &spec); - let (beacon_state, _keypairs) = state_builder.build(); + let beacon_state = get_harness().chain.head_beacon_state().unwrap(); + + let signed_beacon_block = SignedBeaconBlock::from_block( + BeaconBlock::empty(&spec), + generate_deterministic_keypair(0) + .sk + .sign(Hash256::from_low_u64_be(42)), + ); BeaconSnapshot { beacon_state, - beacon_block: SignedBeaconBlock { - message: BeaconBlock::empty(&spec), - signature: generate_deterministic_keypair(0) - .sk - .sign(Hash256::from_low_u64_be(42)), - }, + beacon_block: signed_beacon_block, beacon_block_root: Hash256::from_low_u64_be(i), } } @@ -319,7 +335,8 @@ mod test { let mut snapshot = get_snapshot(i); // Each snapshot should be one slot into an epoch, with each snapshot one epoch apart. - snapshot.beacon_state.slot = Slot::from(i * MainnetEthSpec::slots_per_epoch() + 1); + *snapshot.beacon_state.slot_mut() = + Slot::from(i * MainnetEthSpec::slots_per_epoch() + 1); cache.insert(snapshot, None); @@ -352,20 +369,20 @@ mod test { .get_cloned(Hash256::from_low_u64_be(1), CloneConfig::none()) .is_none()); - assert!( + assert_eq!( cache .get_cloned(Hash256::from_low_u64_be(0), CloneConfig::none()) .expect("the head should still be in the cache") - .beacon_block_root - == Hash256::from_low_u64_be(0), + .beacon_block_root, + Hash256::from_low_u64_be(0), "get_cloned should get the correct snapshot" ); - assert!( + assert_eq!( cache .get_state_for_block_processing(Hash256::from_low_u64_be(0)) .expect("the head should still be in the cache") - .beacon_block_root - == Hash256::from_low_u64_be(0), + .beacon_block_root, + Hash256::from_low_u64_be(0), "get_state_for_block_processing should get the correct snapshot" ); @@ -392,12 +409,12 @@ mod test { } // Ensure that the new head value was not removed from the cache. - assert!( + assert_eq!( cache .get_state_for_block_processing(Hash256::from_low_u64_be(2)) .expect("the new head should still be in the cache") - .beacon_block_root - == Hash256::from_low_u64_be(2), + .beacon_block_root, + Hash256::from_low_u64_be(2), "get_state_for_block_processing should get the correct snapshot" ); } diff --git a/beacon_node/beacon_chain/src/state_advance_timer.rs b/beacon_node/beacon_chain/src/state_advance_timer.rs index d8603570bc..eea329a2a3 100644 --- a/beacon_node/beacon_chain/src/state_advance_timer.rs +++ b/beacon_node/beacon_chain/src/state_advance_timer.rs @@ -213,10 +213,10 @@ fn advance_head( } => (block_slot, state_root, *state), }; - let initial_slot = state.slot; + let initial_slot = state.slot(); let initial_epoch = state.current_epoch(); - let state_root = if state.slot == head_slot { + let state_root = if state.slot() == head_slot { Some(head_state_root) } else { // Protect against advancing a state more than a single slot. @@ -225,7 +225,7 @@ fn advance_head( // database. Future works might store temporary, intermediate states inside this function. return Err(Error::BadStateSlot { block_slot: head_slot, - state_slot: state.slot, + state_slot: state.slot(), }); }; @@ -249,7 +249,7 @@ fn advance_head( log, "Advanced head state one slot"; "head_root" => ?head_root, - "state_slot" => state.slot, + "state_slot" => state.slot(), "current_slot" => current_slot, ); @@ -278,7 +278,7 @@ fn advance_head( state .get_beacon_proposer_indices(&beacon_chain.spec) .map_err(BeaconChainError::from)?, - state.fork, + state.fork(), ) .map_err(BeaconChainError::from)?; @@ -304,7 +304,7 @@ fn advance_head( ); } - let final_slot = state.slot; + let final_slot = state.slot(); // Insert the advanced state back into the snapshot cache. beacon_chain diff --git a/beacon_node/beacon_chain/src/test_utils.rs b/beacon_node/beacon_chain/src/test_utils.rs index 8f89fb63f5..4f213821f5 100644 --- a/beacon_node/beacon_chain/src/test_utils.rs +++ b/beacon_node/beacon_chain/src/test_utils.rs @@ -10,8 +10,11 @@ use crate::{ BeaconChain, BeaconChainTypes, BlockError, ChainConfig, ServerSentEventHandler, StateSkipConfig, }; +use bls::get_withdrawal_credentials; use futures::channel::mpsc::Receiver; use genesis::interop_genesis_state; +use int_to_bytes::int_to_bytes32; +use merkle_proof::MerkleTree; use parking_lot::Mutex; use rand::rngs::StdRng; use rand::Rng; @@ -29,11 +32,12 @@ use task_executor::ShutdownReason; use tempfile::{tempdir, TempDir}; use tree_hash::TreeHash; use types::{ - AggregateSignature, Attestation, AttestationData, AttesterSlashing, BeaconState, - BeaconStateHash, ChainSpec, Checkpoint, Domain, Epoch, EthSpec, Graffiti, Hash256, - IndexedAttestation, Keypair, ProposerSlashing, SelectionProof, SignedAggregateAndProof, - SignedBeaconBlock, SignedBeaconBlockHash, SignedRoot, SignedVoluntaryExit, Slot, SubnetId, - VariableList, VoluntaryExit, + typenum::U4294967296, AggregateSignature, Attestation, AttestationData, AttesterSlashing, + BeaconBlock, BeaconState, BeaconStateHash, ChainSpec, Checkpoint, Deposit, DepositData, Domain, + Epoch, EthSpec, ForkName, Graffiti, Hash256, IndexedAttestation, Keypair, ProposerSlashing, + PublicKeyBytes, SelectionProof, SignatureBytes, SignedAggregateAndProof, SignedBeaconBlock, + SignedBeaconBlockHash, SignedRoot, SignedVoluntaryExit, Slot, SubnetId, VariableList, + VoluntaryExit, }; pub use types::test_utils::generate_deterministic_keypairs; @@ -42,6 +46,8 @@ pub use types::test_utils::generate_deterministic_keypairs; pub const HARNESS_GENESIS_TIME: u64 = 1_567_552_690; // This parameter is required by a builder but not used because we use the `TestingSlotClock`. pub const HARNESS_SLOT_TIME: Duration = Duration::from_secs(1); +// Environment variable to read if `fork_from_env` feature is enabled. +const FORK_NAME_ENV_VAR: &str = "FORK_NAME"; pub type BaseHarnessType = Witness, TEthSpec, THotStore, TColdStore>; @@ -106,6 +112,29 @@ pub fn test_logger() -> Logger { } } +/// Return a `ChainSpec` suitable for test usage. +/// +/// If the `fork_from_env` feature is enabled, read the fork to use from the FORK_NAME environment +/// variable. Otherwise use the default spec. +pub fn test_spec() -> ChainSpec { + if cfg!(feature = "fork_from_env") { + let fork_name = std::env::var(FORK_NAME_ENV_VAR).unwrap_or_else(|e| { + panic!( + "{} env var must be defined when using fork_from_env: {:?}", + FORK_NAME_ENV_VAR, e + ) + }); + let fork = match fork_name.as_str() { + "base" => ForkName::Base, + "altair" => ForkName::Altair, + other => panic!("unknown FORK_NAME: {}", other), + }; + fork.make_genesis_spec(E::default_spec()) + } else { + E::default_spec() + } +} + /// A testing harness which can instantiate a `BeaconChain` and populate it with blocks and /// attestations. /// @@ -121,15 +150,20 @@ pub struct BeaconChainHarness { pub rng: Mutex, } -type HarnessAttestations = Vec<( +pub type HarnessAttestations = Vec<( Vec<(Attestation, SubnetId)>, Option>, )>; impl BeaconChainHarness> { - pub fn new(eth_spec_instance: E, validator_keypairs: Vec) -> Self { + pub fn new( + eth_spec_instance: E, + spec: Option, + validator_keypairs: Vec, + ) -> Self { Self::new_with_store_config( eth_spec_instance, + spec, validator_keypairs, StoreConfig::default(), ) @@ -137,6 +171,7 @@ impl BeaconChainHarness> { pub fn new_with_store_config( eth_spec_instance: E, + spec: Option, validator_keypairs: Vec, config: StoreConfig, ) -> Self { @@ -144,18 +179,26 @@ impl BeaconChainHarness> { // committee are required to produce an aggregate. This is overkill, however with small // validator counts it's the only way to be certain there is _at least one_ aggregator per // committee. - Self::new_with_target_aggregators(eth_spec_instance, validator_keypairs, 1 << 32, config) + Self::new_with_target_aggregators( + eth_spec_instance, + spec, + validator_keypairs, + 1 << 32, + config, + ) } /// Instantiate a new harness with a custom `target_aggregators_per_committee` spec value pub fn new_with_target_aggregators( eth_spec_instance: E, + spec: Option, validator_keypairs: Vec, target_aggregators_per_committee: u64, store_config: StoreConfig, ) -> Self { Self::new_with_chain_config( eth_spec_instance, + spec, validator_keypairs, target_aggregators_per_committee, store_config, @@ -167,13 +210,14 @@ impl BeaconChainHarness> { /// `target_aggregators_per_committee` spec value, and a `ChainConfig` pub fn new_with_chain_config( eth_spec_instance: E, + spec: Option, validator_keypairs: Vec, target_aggregators_per_committee: u64, store_config: StoreConfig, chain_config: ChainConfig, ) -> Self { let data_dir = tempdir().expect("should create temporary data_dir"); - let mut spec = E::default_spec(); + let mut spec = spec.unwrap_or_else(test_spec::); spec.target_aggregators_per_committee = target_aggregators_per_committee; @@ -221,11 +265,12 @@ impl BeaconChainHarness> { /// Instantiate a new harness with `validator_count` initial validators. pub fn new_with_disk_store( eth_spec_instance: E, + spec: Option, store: Arc, LevelDB>>, validator_keypairs: Vec, ) -> Self { let data_dir = tempdir().expect("should create temporary data_dir"); - let spec = E::default_spec(); + let spec = spec.unwrap_or_else(test_spec::); let log = test_logger(); let (shutdown_tx, shutdown_receiver) = futures::channel::mpsc::channel(1); @@ -265,11 +310,12 @@ impl BeaconChainHarness> { /// Instantiate a new harness with `validator_count` initial validators. pub fn resume_from_disk_store( eth_spec_instance: E, + spec: Option, store: Arc, LevelDB>>, validator_keypairs: Vec, data_dir: TempDir, ) -> Self { - let spec = E::default_spec(); + let spec = spec.unwrap_or_else(test_spec::); let log = test_logger(); let (shutdown_tx, shutdown_receiver) = futures::channel::mpsc::channel(1); @@ -379,7 +425,7 @@ where slot: Slot, ) -> (SignedBeaconBlock, BeaconState) { assert_ne!(slot, 0, "can't produce a block at slot 0"); - assert!(slot >= state.slot); + assert!(slot >= state.slot()); complete_state_advance(&mut state, None, slot, &self.spec) .expect("should be able to advance state to slot"); @@ -400,8 +446,8 @@ where let domain = self.spec.get_domain( epoch, Domain::Randao, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = epoch.signing_root(domain); let sk = &self.validator_keypairs[proposer_index].sk; @@ -415,14 +461,68 @@ where let signed_block = block.sign( &self.validator_keypairs[proposer_index].sk, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), &self.spec, ); (signed_block, state) } + /// Useful for the `per_block_processing` tests. Creates a block, and returns the state after + /// caches are built but before the generated block is processed. + pub fn make_block_return_pre_state( + &self, + mut state: BeaconState, + slot: Slot, + ) -> (SignedBeaconBlock, BeaconState) { + assert_ne!(slot, 0, "can't produce a block at slot 0"); + assert!(slot >= state.slot()); + + complete_state_advance(&mut state, None, slot, &self.spec) + .expect("should be able to advance state to slot"); + + state + .build_all_caches(&self.spec) + .expect("should build caches"); + + let proposer_index = state.get_beacon_proposer_index(slot, &self.spec).unwrap(); + + // If we produce two blocks for the same slot, they hash up to the same value and + // BeaconChain errors out with `BlockIsAlreadyKnown`. Vary the graffiti so that we produce + // different blocks each time. + let graffiti = Graffiti::from(self.rng.lock().gen::<[u8; 32]>()); + + let randao_reveal = { + let epoch = slot.epoch(E::slots_per_epoch()); + let domain = self.spec.get_domain( + epoch, + Domain::Randao, + &state.fork(), + state.genesis_validators_root(), + ); + let message = epoch.signing_root(domain); + let sk = &self.validator_keypairs[proposer_index].sk; + sk.sign(message) + }; + + let pre_state = state.clone(); + + let (block, state) = self + .chain + .produce_block_on_state(state, None, slot, randao_reveal, Some(graffiti)) + .unwrap(); + + let signed_block = block.sign( + &self.validator_keypairs[proposer_index].sk, + &state.fork(), + state.genesis_validators_root(), + &self.spec, + ); + + (signed_block, pre_state) + } + /// A list of attestations for each committee for the given slot. /// /// The first layer of the Vec is organised per committee. For example, if the return value is @@ -436,7 +536,7 @@ where head_block_root: SignedBeaconBlockHash, attestation_slot: Slot, ) -> Vec, SubnetId)>> { - let committee_count = state.get_committee_count_at_slot(state.slot).unwrap(); + let committee_count = state.get_committee_count_at_slot(state.slot()).unwrap(); state .get_beacon_committees_at_slot(attestation_slot) @@ -467,8 +567,8 @@ where let domain = self.spec.get_domain( attestation.data.target.epoch, Domain::BeaconAttester, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = attestation.data.signing_root(domain); @@ -540,65 +640,71 @@ where slot, ); - let aggregated_attestations: Vec>> = unaggregated_attestations - .iter() - .map(|committee_attestations| { - // If there are any attestations in this committee, create an aggregate. - if let Some((attestation, _)) = committee_attestations.first() { - let bc = state.get_beacon_committee(attestation.data.slot, attestation.data.index) - .unwrap(); + let aggregated_attestations: Vec>> = + unaggregated_attestations + .iter() + .map(|committee_attestations| { + // If there are any attestations in this committee, create an aggregate. + if let Some((attestation, _)) = committee_attestations.first() { + let bc = state + .get_beacon_committee(attestation.data.slot, attestation.data.index) + .unwrap(); - let aggregator_index = bc.committee - .iter() - .find(|&validator_index| { - if !attesting_validators.contains(validator_index) { - return false - } + // Find an aggregator if one exists. Return `None` if there are no + // aggregators. + let aggregator_index = bc + .committee + .iter() + .find(|&validator_index| { + if !attesting_validators.contains(validator_index) { + return false; + } - let selection_proof = SelectionProof::new::( - state.slot, - &self.validator_keypairs[*validator_index].sk, - &state.fork, - state.genesis_validators_root, - &self.spec, - ); + let selection_proof = SelectionProof::new::( + state.slot(), + &self.validator_keypairs[*validator_index].sk, + &state.fork(), + state.genesis_validators_root(), + &self.spec, + ); - selection_proof.is_aggregator(bc.committee.len(), &self.spec).unwrap_or(false) - }) - .copied() - .unwrap_or_else(|| panic!( - "Committee {} at slot {} with {} attesting validators does not have any aggregators", - bc.index, state.slot, bc.committee.len() - )); - - // If the chain is able to produce an aggregate, use that. Otherwise, build an - // aggregate locally. - let aggregate = self - .chain - .get_aggregated_attestation(&attestation.data) - .unwrap_or_else(|| { - committee_attestations.iter().skip(1).fold(attestation.clone(), |mut agg, (att, _)| { - agg.aggregate(att); - agg + selection_proof + .is_aggregator(bc.committee.len(), &self.spec) + .unwrap_or(false) }) - }); + .copied()?; - let signed_aggregate = SignedAggregateAndProof::from_aggregate( - aggregator_index as u64, - aggregate, - None, - &self.validator_keypairs[aggregator_index].sk, - &state.fork, - state.genesis_validators_root, - &self.spec, - ); + // If the chain is able to produce an aggregate, use that. Otherwise, build an + // aggregate locally. + let aggregate = self + .chain + .get_aggregated_attestation(&attestation.data) + .unwrap_or_else(|| { + committee_attestations.iter().skip(1).fold( + attestation.clone(), + |mut agg, (att, _)| { + agg.aggregate(att); + agg + }, + ) + }); - Some(signed_aggregate) - } - else { - None - } - }).collect(); + let signed_aggregate = SignedAggregateAndProof::from_aggregate( + aggregator_index as u64, + aggregate, + None, + &self.validator_keypairs[aggregator_index].sk, + &state.fork(), + state.genesis_validators_root(), + &self.spec, + ); + + Some(signed_aggregate) + } else { + None + } + }) + .collect(); unaggregated_attestations .into_iter() @@ -653,12 +759,70 @@ where } } + pub fn make_attester_slashing_different_indices( + &self, + validator_indices_1: Vec, + validator_indices_2: Vec, + ) -> AttesterSlashing { + let data = AttestationData { + slot: Slot::new(0), + index: 0, + beacon_block_root: Hash256::zero(), + target: Checkpoint { + root: Hash256::zero(), + epoch: Epoch::new(0), + }, + source: Checkpoint { + root: Hash256::zero(), + epoch: Epoch::new(0), + }, + }; + + let mut attestation_1 = IndexedAttestation { + attesting_indices: VariableList::new(validator_indices_1).unwrap(), + data: data.clone(), + signature: AggregateSignature::infinity(), + }; + + let mut attestation_2 = IndexedAttestation { + attesting_indices: VariableList::new(validator_indices_2).unwrap(), + data, + signature: AggregateSignature::infinity(), + }; + + attestation_2.data.index += 1; + + for attestation in &mut [&mut attestation_1, &mut attestation_2] { + for &i in &attestation.attesting_indices { + let sk = &self.validator_keypairs[i as usize].sk; + + let fork = self.chain.head_info().unwrap().fork; + let genesis_validators_root = self.chain.genesis_validators_root; + + let domain = self.chain.spec.get_domain( + attestation.data.target.epoch, + Domain::BeaconAttester, + &fork, + genesis_validators_root, + ); + let message = attestation.data.signing_root(domain); + + attestation.signature.add_assign(&sk.sign(message)); + } + } + + AttesterSlashing { + attestation_1, + attestation_2, + } + } + pub fn make_proposer_slashing(&self, validator_index: u64) -> ProposerSlashing { let mut block_header_1 = self .chain .head_beacon_block() .unwrap() - .message + .message() .block_header(); block_header_1.proposer_index = validator_index; @@ -694,6 +858,116 @@ where .sign(sk, &fork, genesis_validators_root, &self.chain.spec) } + pub fn add_voluntary_exit( + &self, + block: &mut BeaconBlock, + validator_index: u64, + epoch: Epoch, + ) { + let exit = self.make_voluntary_exit(validator_index, epoch); + block.body_mut().voluntary_exits_mut().push(exit).unwrap(); + } + + /// Create a new block, apply `block_modifier` to it, sign it and return it. + /// + /// The state returned is a pre-block state at the same slot as the produced block. + pub fn make_block_with_modifier( + &self, + state: BeaconState, + slot: Slot, + block_modifier: impl FnOnce(&mut BeaconBlock), + ) -> (SignedBeaconBlock, BeaconState) { + assert_ne!(slot, 0, "can't produce a block at slot 0"); + assert!(slot >= state.slot()); + + let (block, state) = self.make_block_return_pre_state(state, slot); + let (mut block, _) = block.deconstruct(); + + block_modifier(&mut block); + + let proposer_index = state.get_beacon_proposer_index(slot, &self.spec).unwrap(); + + let signed_block = block.sign( + &self.validator_keypairs[proposer_index as usize].sk, + &state.fork(), + state.genesis_validators_root(), + &self.spec, + ); + (signed_block, state) + } + + pub fn make_deposits<'a>( + &self, + state: &'a mut BeaconState, + num_deposits: usize, + invalid_pubkey: Option, + invalid_signature: Option, + ) -> (Vec, &'a mut BeaconState) { + let mut datas = vec![]; + + for _ in 0..num_deposits { + let keypair = Keypair::random(); + let pubkeybytes = PublicKeyBytes::from(keypair.pk.clone()); + + let mut data = DepositData { + pubkey: pubkeybytes, + withdrawal_credentials: Hash256::from_slice( + &get_withdrawal_credentials(&keypair.pk, self.spec.bls_withdrawal_prefix_byte) + [..], + ), + amount: self.spec.min_deposit_amount, + signature: SignatureBytes::empty(), + }; + + data.signature = data.create_signature(&keypair.sk, &self.spec); + + if let Some(invalid_pubkey) = invalid_pubkey { + data.pubkey = invalid_pubkey; + } + if let Some(invalid_signature) = invalid_signature.clone() { + data.signature = invalid_signature; + } + datas.push(data); + } + + // Vector containing all leaves + let leaves = datas + .iter() + .map(|data| data.tree_hash_root()) + .collect::>(); + + // Building a VarList from leaves + let deposit_data_list = VariableList::<_, U4294967296>::from(leaves.clone()); + + // Setting the deposit_root to be the tree_hash_root of the VarList + state.eth1_data_mut().deposit_root = deposit_data_list.tree_hash_root(); + state.eth1_data_mut().deposit_count = num_deposits as u64; + *state.eth1_deposit_index_mut() = 0; + + // Building the merkle tree used for generating proofs + let tree = MerkleTree::create(&leaves[..], self.spec.deposit_contract_tree_depth as usize); + + // Building proofs + let mut proofs = vec![]; + for i in 0..leaves.len() { + let (_, mut proof) = + tree.generate_proof(i, self.spec.deposit_contract_tree_depth as usize); + proof.push(Hash256::from_slice(&int_to_bytes32(leaves.len() as u64))); + proofs.push(proof); + } + + // Building deposits + let deposits = datas + .into_par_iter() + .zip(proofs.into_par_iter()) + .map(|(data, proof)| (data, proof.into())) + .map(|(data, proof)| Deposit { proof, data }) + .collect::>(); + + // Pushing deposits to block body + (deposits, state) + } + pub fn process_block( &self, slot: Slot, @@ -771,13 +1045,8 @@ where block: &SignedBeaconBlock, validators: &[usize], ) { - let attestations = self.make_attestations( - validators, - &state, - state_root, - block_hash, - block.message.slot, - ); + let attestations = + self.make_attestations(validators, &state, state_root, block_hash, block.slot()); self.process_attestations(attestations); } @@ -932,7 +1201,7 @@ where chain_dump .iter() .cloned() - .map(|checkpoint| checkpoint.beacon_state.finalized_checkpoint.root.into()) + .map(|checkpoint| checkpoint.beacon_state.finalized_checkpoint().root.into()) .filter(|block_hash| *block_hash != Hash256::zero().into()) .collect() } diff --git a/beacon_node/beacon_chain/src/validator_monitor.rs b/beacon_node/beacon_chain/src/validator_monitor.rs index 015efe0c64..3022dd5c92 100644 --- a/beacon_node/beacon_chain/src/validator_monitor.rs +++ b/beacon_node/beacon_chain/src/validator_monitor.rs @@ -14,7 +14,7 @@ use std::marker::PhantomData; use std::str::Utf8Error; use std::time::{Duration, SystemTime, UNIX_EPOCH}; use types::{ - AttestationData, AttesterSlashing, BeaconBlock, BeaconState, ChainSpec, Epoch, EthSpec, + AttestationData, AttesterSlashing, BeaconBlockRef, BeaconState, ChainSpec, Epoch, EthSpec, Hash256, IndexedAttestation, ProposerSlashing, PublicKeyBytes, SignedAggregateAndProof, Slot, VoluntaryExit, }; @@ -237,7 +237,7 @@ impl ValidatorMonitor { pub fn process_valid_state(&mut self, current_epoch: Epoch, state: &BeaconState) { // Add any new validator indices. state - .validators + .validators() .iter() .enumerate() .skip(self.indices.len()) @@ -255,7 +255,7 @@ impl ValidatorMonitor { let i = i as usize; let id = &monitored_validator.id; - if let Some(balance) = state.balances.get(i) { + if let Some(balance) = state.balances().get(i) { metrics::set_int_gauge( &metrics::VALIDATOR_MONITOR_BALANCE_GWEI, &[id], @@ -263,7 +263,7 @@ impl ValidatorMonitor { ); } - if let Some(validator) = state.validators.get(i) { + if let Some(validator) = state.validators().get(i) { metrics::set_int_gauge( &metrics::VALIDATOR_MONITOR_EFFECTIVE_BALANCE_GWEI, &[id], @@ -473,7 +473,7 @@ impl ValidatorMonitor { pub fn register_gossip_block( &self, seen_timestamp: Duration, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, block_root: Hash256, slot_clock: &S, ) { @@ -484,7 +484,7 @@ impl ValidatorMonitor { pub fn register_api_block( &self, seen_timestamp: Duration, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, block_root: Hash256, slot_clock: &S, ) { @@ -495,11 +495,11 @@ impl ValidatorMonitor { &self, src: &str, seen_timestamp: Duration, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, block_root: Hash256, slot_clock: &S, ) { - if let Some(id) = self.get_validator_id(block.proposer_index) { + if let Some(id) = self.get_validator_id(block.proposer_index()) { let delay = get_block_delay_ms(seen_timestamp, block, slot_clock); metrics::inc_counter_vec(&metrics::VALIDATOR_MONITOR_BEACON_BLOCK_TOTAL, &[src, id]); @@ -514,7 +514,7 @@ impl ValidatorMonitor { "Block from API"; "root" => ?block_root, "delay" => %delay.as_millis(), - "slot" => %block.slot, + "slot" => %block.slot(), "src" => src, "validator" => %id, ); @@ -741,11 +741,11 @@ impl ValidatorMonitor { pub fn register_attestation_in_block( &self, indexed_attestation: &IndexedAttestation, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, spec: &ChainSpec, ) { let data = &indexed_attestation.data; - let delay = (block.slot - data.slot) - spec.min_attestation_inclusion_delay; + let delay = (block.slot() - data.slot) - spec.min_attestation_inclusion_delay; let epoch = data.slot.epoch(T::slots_per_epoch()); indexed_attestation.attesting_indices.iter().for_each(|i| { @@ -1043,10 +1043,10 @@ fn u64_to_i64(n: impl Into) -> i64 { /// Returns the delay between the start of `block.slot` and `seen_timestamp`. pub fn get_block_delay_ms( seen_timestamp: Duration, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, slot_clock: &S, ) -> Duration { - get_slot_delay_ms::(seen_timestamp, block.slot, slot_clock) + get_slot_delay_ms::(seen_timestamp, block.slot(), slot_clock) } /// Returns the delay between the start of `slot` and `seen_timestamp`. diff --git a/beacon_node/beacon_chain/src/validator_pubkey_cache.rs b/beacon_node/beacon_chain/src/validator_pubkey_cache.rs index 86c358fccc..be0ac7b93f 100644 --- a/beacon_node/beacon_chain/src/validator_pubkey_cache.rs +++ b/beacon_node/beacon_chain/src/validator_pubkey_cache.rs @@ -110,9 +110,9 @@ impl ValidatorPubkeyCache { &mut self, state: &BeaconState, ) -> Result<(), BeaconChainError> { - if state.validators.len() > self.pubkeys.len() { + if state.validators().len() > self.pubkeys.len() { self.import( - state.validators[self.pubkeys.len()..] + state.validators()[self.pubkeys.len()..] .iter() .map(|v| v.pubkey), ) @@ -316,23 +316,28 @@ fn append_to_file(file: &mut File, index: usize, pubkey: &PublicKeyBytes) -> Res #[cfg(test)] mod test { use super::*; - use crate::test_utils::{test_logger, EphemeralHarnessType}; + use crate::test_utils::{test_logger, BeaconChainHarness, EphemeralHarnessType}; use std::sync::Arc; - use store::HotColdDB; + use store::{HotColdDB, StoreConfig}; use tempfile::tempdir; use types::{ - test_utils::{generate_deterministic_keypair, TestingBeaconStateBuilder}, - BeaconState, EthSpec, Keypair, MainnetEthSpec, + test_utils::generate_deterministic_keypair, BeaconState, EthSpec, Keypair, MainnetEthSpec, }; type E = MainnetEthSpec; type T = EphemeralHarnessType; fn get_state(validator_count: usize) -> (BeaconState, Vec) { - let spec = E::default_spec(); - let builder = - TestingBeaconStateBuilder::from_deterministic_keypairs(validator_count, &spec); - builder.build() + let harness = BeaconChainHarness::new_with_store_config( + MainnetEthSpec, + None, + types::test_utils::generate_deterministic_keypairs(validator_count), + StoreConfig::default(), + ); + + harness.advance_slot(); + + (harness.get_current_state(), harness.validator_keypairs) } fn get_store() -> BeaconStore { diff --git a/beacon_node/beacon_chain/tests/attestation_production.rs b/beacon_node/beacon_chain/tests/attestation_production.rs index e00a04395d..38877c99de 100644 --- a/beacon_node/beacon_chain/tests/attestation_production.rs +++ b/beacon_node/beacon_chain/tests/attestation_production.rs @@ -3,10 +3,8 @@ #[macro_use] extern crate lazy_static; -use beacon_chain::{ - test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy}, - StateSkipConfig, WhenSlotSkipped, -}; +use beacon_chain::test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy}; +use beacon_chain::{StateSkipConfig, WhenSlotSkipped}; use store::config::StoreConfig; use tree_hash::TreeHash; use types::{AggregateSignature, EthSpec, Keypair, MainnetEthSpec, RelativeEpoch, Slot}; @@ -29,6 +27,7 @@ fn produces_attestations() { let harness = BeaconChainHarness::new_with_store_config( MainnetEthSpec, + None, KEYPAIRS[..].to_vec(), StoreConfig::default(), ); @@ -63,12 +62,12 @@ fn produces_attestations() { .block_at_slot(block_slot, WhenSlotSkipped::Prev) .expect("should get block") .expect("block should not be skipped"); - let block_root = block.message.tree_hash_root(); + let block_root = block.message().tree_hash_root(); let epoch_boundary_slot = state .current_epoch() .start_slot(MainnetEthSpec::slots_per_epoch()); - let target_root = if state.slot == epoch_boundary_slot { + let target_root = if state.slot() == epoch_boundary_slot { block_root } else { *state @@ -116,11 +115,13 @@ fn produces_attestations() { assert_eq!(data.slot, slot, "bad slot"); assert_eq!(data.beacon_block_root, block_root, "bad block root"); assert_eq!( - data.source, state.current_justified_checkpoint, + data.source, + state.current_justified_checkpoint(), "bad source" ); assert_eq!( - data.source, state.current_justified_checkpoint, + data.source, + state.current_justified_checkpoint(), "bad source" ); assert_eq!(data.target.epoch, state.current_epoch(), "bad target epoch"); diff --git a/beacon_node/beacon_chain/tests/attestation_verification.rs b/beacon_node/beacon_chain/tests/attestation_verification.rs index 9ee351faa6..2d5b0c81fa 100644 --- a/beacon_node/beacon_chain/tests/attestation_verification.rs +++ b/beacon_node/beacon_chain/tests/attestation_verification.rs @@ -17,7 +17,7 @@ use tree_hash::TreeHash; use types::{ test_utils::generate_deterministic_keypair, AggregateSignature, Attestation, BeaconStateError, BitList, EthSpec, Hash256, Keypair, MainnetEthSpec, SecretKey, SelectionProof, - SignedAggregateAndProof, SignedBeaconBlock, SubnetId, Unsigned, + SignedAggregateAndProof, SubnetId, Unsigned, }; pub type E = MainnetEthSpec; @@ -35,6 +35,7 @@ lazy_static! { fn get_harness(validator_count: usize) -> BeaconChainHarness> { let harness = BeaconChainHarness::new_with_target_aggregators( MainnetEthSpec, + None, KEYPAIRS[0..validator_count].to_vec(), // A kind-of arbitrary number that ensures that _some_ validators are aggregators, but // not all. @@ -75,7 +76,7 @@ fn get_valid_unaggregated_attestation( .sign( &validator_sk, validator_committee_index, - &head.beacon_state.fork, + &head.beacon_state.fork(), chain.genesis_validators_root, &chain.spec, ) @@ -120,7 +121,7 @@ fn get_valid_aggregated_attestation( let proof = SelectionProof::new::( aggregate.data.slot, &aggregator_sk, - &state.fork, + &state.fork(), chain.genesis_validators_root, &chain.spec, ); @@ -138,7 +139,7 @@ fn get_valid_aggregated_attestation( aggregate, None, &aggregator_sk, - &state.fork, + &state.fork(), chain.genesis_validators_root, &chain.spec, ); @@ -169,7 +170,7 @@ fn get_non_aggregator( let proof = SelectionProof::new::( aggregate.data.slot, &aggregator_sk, - &state.fork, + &state.fork(), chain.genesis_validators_root, &chain.spec, ); @@ -922,7 +923,7 @@ fn attestation_that_skips_epochs() { .expect("should not error getting state") .expect("should find state"); - while state.slot < current_slot { + while state.slot() < current_slot { per_slot_processing(&mut state, None, &harness.spec).expect("should process slot"); } @@ -946,11 +947,11 @@ fn attestation_that_skips_epochs() { let block_slot = harness .chain .store - .get_item::>(&block_root) + .get_block(&block_root) .expect("should not error getting block") .expect("should find attestation block") - .message - .slot; + .message() + .slot(); assert!( attestation.data.slot - block_slot > E::slots_per_epoch() * 2, diff --git a/beacon_node/beacon_chain/tests/block_verification.rs b/beacon_node/beacon_chain/tests/block_verification.rs index d5378d627b..446b19195a 100644 --- a/beacon_node/beacon_chain/tests/block_verification.rs +++ b/beacon_node/beacon_chain/tests/block_verification.rs @@ -3,20 +3,19 @@ #[macro_use] extern crate lazy_static; -use beacon_chain::{ - test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType}, - BeaconSnapshot, BlockError, +use beacon_chain::test_utils::{ + AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType, }; +use beacon_chain::{BeaconSnapshot, BlockError, ChainConfig, ChainSegmentResult}; use slasher::{Config as SlasherConfig, Slasher}; +use state_processing::{ + per_block_processing::{per_block_processing, BlockSignatureStrategy}, + per_slot_processing, BlockProcessingError, +}; use std::sync::Arc; use store::config::StoreConfig; use tempfile::tempdir; -use types::{ - test_utils::generate_deterministic_keypair, AggregateSignature, AttestationData, - AttesterSlashing, Checkpoint, Deposit, DepositData, Epoch, EthSpec, Hash256, - IndexedAttestation, Keypair, MainnetEthSpec, ProposerSlashing, Signature, SignedBeaconBlock, - SignedBeaconBlockHeader, SignedVoluntaryExit, Slot, VoluntaryExit, DEPOSIT_TREE_DEPTH, -}; +use types::{test_utils::generate_deterministic_keypair, *}; type E = MainnetEthSpec; @@ -54,6 +53,7 @@ fn get_chain_segment() -> Vec> { fn get_harness(validator_count: usize) -> BeaconChainHarness> { let harness = BeaconChainHarness::new_with_store_config( MainnetEthSpec, + None, KEYPAIRS[0..validator_count].to_vec(), StoreConfig::default(), ); @@ -98,10 +98,11 @@ fn update_proposal_signatures( .get(proposer_index) .expect("proposer keypair should be available"); - snapshot.beacon_block = snapshot.beacon_block.message.clone().sign( + let (block, _) = snapshot.beacon_block.clone().deconstruct(); + snapshot.beacon_block = block.sign( &keypair.sk, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), spec, ); } @@ -111,7 +112,9 @@ fn update_parent_roots(snapshots: &mut [BeaconSnapshot]) { for i in 0..snapshots.len() { let root = snapshots[i].beacon_block.canonical_root(); if let Some(child) = snapshots.get_mut(i + 1) { - child.beacon_block.message.parent_root = root + let (mut block, signature) = child.beacon_block.clone().deconstruct(); + *block.parent_root_mut() = root; + child.beacon_block = SignedBeaconBlock::from_block(block, signature) } } } @@ -168,10 +171,7 @@ fn chain_segment_varying_chunk_size() { .chain .process_chain_segment(chunk.to_vec()) .into_block_error() - .expect(&format!( - "should import chain segment of len {}", - chunk_size - )); + .unwrap_or_else(|_| panic!("should import chain segment of len {}", chunk_size)); } harness.chain.fork_choice().expect("should run fork choice"); @@ -206,7 +206,7 @@ fn chain_segment_non_linear_parent_roots() { matches!( harness .chain - .process_chain_segment(blocks.clone()) + .process_chain_segment(blocks) .into_block_error(), Err(BlockError::NonLinearParentRoots) ), @@ -217,13 +217,15 @@ fn chain_segment_non_linear_parent_roots() { * Test with a modified parent root. */ let mut blocks = chain_segment_blocks(); - blocks[3].message.parent_root = Hash256::zero(); + let (mut block, signature) = blocks[3].clone().deconstruct(); + *block.parent_root_mut() = Hash256::zero(); + blocks[3] = SignedBeaconBlock::from_block(block, signature); assert!( matches!( harness .chain - .process_chain_segment(blocks.clone()) + .process_chain_segment(blocks) .into_block_error(), Err(BlockError::NonLinearParentRoots) ), @@ -244,13 +246,15 @@ fn chain_segment_non_linear_slots() { */ let mut blocks = chain_segment_blocks(); - blocks[3].message.slot = Slot::new(0); + let (mut block, signature) = blocks[3].clone().deconstruct(); + *block.slot_mut() = Slot::new(0); + blocks[3] = SignedBeaconBlock::from_block(block, signature); assert!( matches!( harness .chain - .process_chain_segment(blocks.clone()) + .process_chain_segment(blocks) .into_block_error(), Err(BlockError::NonLinearSlots) ), @@ -262,13 +266,15 @@ fn chain_segment_non_linear_slots() { */ let mut blocks = chain_segment_blocks(); - blocks[3].message.slot = blocks[2].message.slot; + let (mut block, signature) = blocks[3].clone().deconstruct(); + *block.slot_mut() = blocks[2].slot(); + blocks[3] = SignedBeaconBlock::from_block(block, signature); assert!( matches!( harness .chain - .process_chain_segment(blocks.clone()) + .process_chain_segment(blocks) .into_block_error(), Err(BlockError::NonLinearSlots) ), @@ -342,7 +348,9 @@ fn invalid_signature_gossip_block() { // Ensure the block will be rejected if imported on its own (without gossip checking). let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); - snapshots[block_index].beacon_block.signature = junk_signature(); + let (block, _) = snapshots[block_index].beacon_block.clone().deconstruct(); + snapshots[block_index].beacon_block = + SignedBeaconBlock::from_block(block.clone(), junk_signature()); // Import all the ancestors before the `block_index` block. let ancestor_blocks = CHAIN_SEGMENT .iter() @@ -358,7 +366,7 @@ fn invalid_signature_gossip_block() { matches!( harness .chain - .process_block(snapshots[block_index].beacon_block.clone()), + .process_block(SignedBeaconBlock::from_block(block, junk_signature())), Err(BlockError::InvalidSignature) ), "should not import individual block with an invalid gossip signature", @@ -371,7 +379,9 @@ fn invalid_signature_block_proposal() { for &block_index in BLOCK_INDICES { let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); - snapshots[block_index].beacon_block.signature = junk_signature(); + let (block, _) = snapshots[block_index].beacon_block.clone().deconstruct(); + snapshots[block_index].beacon_block = + SignedBeaconBlock::from_block(block.clone(), junk_signature()); let blocks = snapshots .iter() .map(|snapshot| snapshot.beacon_block.clone()) @@ -395,11 +405,9 @@ fn invalid_signature_randao_reveal() { for &block_index in BLOCK_INDICES { let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); - snapshots[block_index] - .beacon_block - .message - .body - .randao_reveal = junk_signature(); + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); + *block.body_mut().randao_reveal_mut() = junk_signature(); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); assert_invalid_signature(&harness, block_index, &snapshots, "randao"); @@ -411,23 +419,23 @@ fn invalid_signature_proposer_slashing() { for &block_index in BLOCK_INDICES { let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); let proposer_slashing = ProposerSlashing { signed_header_1: SignedBeaconBlockHeader { - message: snapshots[block_index].beacon_block.message.block_header(), + message: block.block_header(), signature: junk_signature(), }, signed_header_2: SignedBeaconBlockHeader { - message: snapshots[block_index].beacon_block.message.block_header(), + message: block.block_header(), signature: junk_signature(), }, }; - snapshots[block_index] - .beacon_block - .message - .body - .proposer_slashings + block + .body_mut() + .proposer_slashings_mut() .push(proposer_slashing) .expect("should update proposer slashing"); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); assert_invalid_signature(&harness, block_index, &snapshots, "proposer slashing"); @@ -460,13 +468,13 @@ fn invalid_signature_attester_slashing() { attestation_1: indexed_attestation.clone(), attestation_2: indexed_attestation, }; - snapshots[block_index] - .beacon_block - .message - .body - .attester_slashings + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); + block + .body_mut() + .attester_slashings_mut() .push(attester_slashing) .expect("should update attester slashing"); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); assert_invalid_signature(&harness, block_index, &snapshots, "attester slashing"); @@ -480,14 +488,10 @@ fn invalid_signature_attestation() { for &block_index in BLOCK_INDICES { let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); - if let Some(attestation) = snapshots[block_index] - .beacon_block - .message - .body - .attestations - .get_mut(0) - { + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); + if let Some(attestation) = block.body_mut().attestations_mut().get_mut(0) { attestation.signature = junk_aggregate_signature(); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); assert_invalid_signature(&harness, block_index, &snapshots, "attestation"); @@ -516,13 +520,13 @@ fn invalid_signature_deposit() { signature: junk_signature().into(), }, }; - snapshots[block_index] - .beacon_block - .message - .body - .deposits + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); + block + .body_mut() + .deposits_mut() .push(deposit) .expect("should update deposit"); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); let blocks = snapshots @@ -548,11 +552,10 @@ fn invalid_signature_exit() { let harness = get_invalid_sigs_harness(); let mut snapshots = CHAIN_SEGMENT.clone(); let epoch = snapshots[block_index].beacon_state.current_epoch(); - snapshots[block_index] - .beacon_block - .message - .body - .voluntary_exits + let (mut block, signature) = snapshots[block_index].beacon_block.clone().deconstruct(); + block + .body_mut() + .voluntary_exits_mut() .push(SignedVoluntaryExit { message: VoluntaryExit { epoch, @@ -561,6 +564,7 @@ fn invalid_signature_exit() { signature: junk_signature(), }) .expect("should update deposit"); + snapshots[block_index].beacon_block = SignedBeaconBlock::from_block(block, signature); update_parent_roots(&mut snapshots); update_proposal_signatures(&mut snapshots, &harness); assert_invalid_signature(&harness, block_index, &snapshots, "voluntary exit"); @@ -608,12 +612,15 @@ fn block_gossip_verification() { * future blocks for processing at the appropriate slot). */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); - let expected_block_slot = block.message.slot + 1; - block.message.slot = expected_block_slot; + let (mut block, signature) = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct(); + let expected_block_slot = block.slot() + 1; + *block.slot_mut() = expected_block_slot; assert!( matches!( - unwrap_err(harness.chain.verify_block_for_gossip(block)), + unwrap_err(harness.chain.verify_block_for_gossip(SignedBeaconBlock::from_block(block, signature))), BlockError::FutureSlot { present_slot, block_slot, @@ -635,7 +642,10 @@ fn block_gossip_verification() { * nodes, etc). */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); + let (mut block, signature) = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct(); let expected_finalized_slot = harness .chain .head_info() @@ -643,10 +653,10 @@ fn block_gossip_verification() { .finalized_checkpoint .epoch .start_slot(E::slots_per_epoch()); - block.message.slot = expected_finalized_slot; + *block.slot_mut() = expected_finalized_slot; assert!( matches!( - unwrap_err(harness.chain.verify_block_for_gossip(block)), + unwrap_err(harness.chain.verify_block_for_gossip(SignedBeaconBlock::from_block(block, signature))), BlockError::WouldRevertFinalizedSlot { block_slot, finalized_slot, @@ -665,11 +675,21 @@ fn block_gossip_verification() { * proposer_index pubkey. */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); - block.signature = junk_signature(); + let block = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct() + .0; assert!( matches!( - unwrap_err(harness.chain.verify_block_for_gossip(block)), + unwrap_err( + harness + .chain + .verify_block_for_gossip(SignedBeaconBlock::from_block( + block, + junk_signature() + )) + ), BlockError::ProposalSignatureInvalid ), "should not import a block with an invalid proposal signature" @@ -683,12 +703,15 @@ fn block_gossip_verification() { * The block's parent (defined by block.parent_root) passes validation. */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); + let (mut block, signature) = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct(); let parent_root = Hash256::from_low_u64_be(42); - block.message.parent_root = parent_root; + *block.parent_root_mut() = parent_root; assert!( matches!( - unwrap_err(harness.chain.verify_block_for_gossip(block)), + unwrap_err(harness.chain.verify_block_for_gossip(SignedBeaconBlock::from_block(block, signature))), BlockError::ParentUnknown(block) if block.parent_root() == parent_root ), @@ -705,12 +728,15 @@ fn block_gossip_verification() { * store.finalized_checkpoint.root */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); + let (mut block, signature) = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct(); let parent_root = CHAIN_SEGMENT[0].beacon_block_root; - block.message.parent_root = parent_root; + *block.parent_root_mut() = parent_root; assert!( matches!( - unwrap_err(harness.chain.verify_block_for_gossip(block)), + unwrap_err(harness.chain.verify_block_for_gossip(SignedBeaconBlock::from_block(block, signature))), BlockError::NotFinalizedDescendant { block_parent_root } if block_parent_root == parent_root ), @@ -728,14 +754,18 @@ fn block_gossip_verification() { * processing while proposers for the block's branch are calculated. */ - let mut block = CHAIN_SEGMENT[block_index].beacon_block.clone(); - let expected_proposer = block.message.proposer_index; + let mut block = CHAIN_SEGMENT[block_index] + .beacon_block + .clone() + .deconstruct() + .0; + let expected_proposer = block.proposer_index(); let other_proposer = (0..VALIDATOR_COUNT as u64) .into_iter() - .find(|i| *i != block.message.proposer_index) + .find(|i| *i != block.proposer_index()) .expect("there must be more than one validator in this test"); - block.message.proposer_index = other_proposer; - let block = block.message.clone().sign( + *block.proposer_index_mut() = other_proposer; + let block = block.sign( &generate_deterministic_keypair(other_proposer as usize).sk, &harness.chain.head_info().unwrap().fork, harness.chain.genesis_validators_root, @@ -760,7 +790,7 @@ fn block_gossip_verification() { proposer, slot, } - if proposer == other_proposer && slot == block.message.slot + if proposer == other_proposer && slot == block.message().slot() ), "should register any valid signature against the proposer, even if the block failed later verification" ); @@ -792,7 +822,7 @@ fn block_gossip_verification() { proposer, slot, } - if proposer == block.message.proposer_index && slot == block.message.slot + if proposer == block.message().proposer_index() && slot == block.message().slot() ), "the second proposal by this validator should be rejected" ); @@ -829,3 +859,245 @@ fn verify_block_for_gossip_slashing_detection() { drop(slasher); slasher_dir.close().unwrap(); } + +#[test] +fn add_base_block_to_altair_chain() { + let mut spec = MainnetEthSpec::default_spec(); + let slots_per_epoch = MainnetEthSpec::slots_per_epoch(); + + // The Altair fork happens at epoch 1. + spec.altair_fork_epoch = Some(Epoch::new(1)); + + let harness = BeaconChainHarness::new_with_chain_config( + MainnetEthSpec, + Some(spec), + KEYPAIRS[..].to_vec(), + 1 << 32, + StoreConfig::default(), + ChainConfig::default(), + ); + + // Move out of the genesis slot. + harness.advance_slot(); + + // Build out all the blocks in epoch 0. + harness.extend_chain( + slots_per_epoch as usize, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + // Move into the next empty slot. + harness.advance_slot(); + + // Produce an Altair block. + let state = harness.get_current_state(); + let slot = harness.get_current_slot(); + let (altair_signed_block, _) = harness.make_block(state.clone(), slot); + let altair_block = &altair_signed_block + .as_altair() + .expect("test expects an altair block") + .message; + let altair_body = &altair_block.body; + + // Create a Base-equivalent of `altair_block`. + let base_block = SignedBeaconBlock::Base(SignedBeaconBlockBase { + message: BeaconBlockBase { + slot: altair_block.slot, + proposer_index: altair_block.proposer_index, + parent_root: altair_block.parent_root, + state_root: altair_block.state_root, + body: BeaconBlockBodyBase { + randao_reveal: altair_body.randao_reveal.clone(), + eth1_data: altair_body.eth1_data.clone(), + graffiti: altair_body.graffiti, + proposer_slashings: altair_body.proposer_slashings.clone(), + attester_slashings: altair_body.attester_slashings.clone(), + attestations: altair_body.attestations.clone(), + deposits: altair_body.deposits.clone(), + voluntary_exits: altair_body.voluntary_exits.clone(), + }, + }, + signature: Signature::empty(), + }); + + // Ensure that it would be impossible to apply this block to `per_block_processing`. + { + let mut state = state; + per_slot_processing(&mut state, None, &harness.chain.spec).unwrap(); + assert!(matches!( + per_block_processing( + &mut state, + &base_block, + None, + BlockSignatureStrategy::NoVerification, + &harness.chain.spec, + ), + Err(BlockProcessingError::InconsistentBlockFork( + InconsistentFork { + fork_at_slot: ForkName::Altair, + object_fork: ForkName::Base, + } + )) + )); + } + + // Ensure that it would be impossible to verify this block for gossip. + assert!(matches!( + harness + .chain + .verify_block_for_gossip(base_block.clone()) + .err() + .expect("should error when processing base block"), + BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Altair, + object_fork: ForkName::Base, + }) + )); + + // Ensure that it would be impossible to import via `BeaconChain::process_block`. + assert!(matches!( + harness + .chain + .process_block(base_block.clone()) + .err() + .expect("should error when processing base block"), + BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Altair, + object_fork: ForkName::Base, + }) + )); + + // Ensure that it would be impossible to import via `BeaconChain::process_chain_segment`. + assert!(matches!( + harness.chain.process_chain_segment(vec![base_block]), + ChainSegmentResult::Failed { + imported_blocks: 0, + error: BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Altair, + object_fork: ForkName::Base, + }) + } + )); +} + +#[test] +fn add_altair_block_to_base_chain() { + let mut spec = MainnetEthSpec::default_spec(); + + // Altair never happens. + spec.altair_fork_epoch = None; + + let harness = BeaconChainHarness::new_with_chain_config( + MainnetEthSpec, + Some(spec), + KEYPAIRS[..].to_vec(), + 1 << 32, + StoreConfig::default(), + ChainConfig::default(), + ); + + // Move out of the genesis slot. + harness.advance_slot(); + + // Build one block. + harness.extend_chain( + 1, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + // Move into the next empty slot. + harness.advance_slot(); + + // Produce an altair block. + let state = harness.get_current_state(); + let slot = harness.get_current_slot(); + let (base_signed_block, _) = harness.make_block(state.clone(), slot); + let base_block = &base_signed_block + .as_base() + .expect("test expects a base block") + .message; + let base_body = &base_block.body; + + // Create an Altair-equivalent of `altair_block`. + let altair_block = SignedBeaconBlock::Altair(SignedBeaconBlockAltair { + message: BeaconBlockAltair { + slot: base_block.slot, + proposer_index: base_block.proposer_index, + parent_root: base_block.parent_root, + state_root: base_block.state_root, + body: BeaconBlockBodyAltair { + randao_reveal: base_body.randao_reveal.clone(), + eth1_data: base_body.eth1_data.clone(), + graffiti: base_body.graffiti, + proposer_slashings: base_body.proposer_slashings.clone(), + attester_slashings: base_body.attester_slashings.clone(), + attestations: base_body.attestations.clone(), + deposits: base_body.deposits.clone(), + voluntary_exits: base_body.voluntary_exits.clone(), + sync_aggregate: SyncAggregate::empty(), + }, + }, + signature: Signature::empty(), + }); + + // Ensure that it would be impossible to apply this block to `per_block_processing`. + { + let mut state = state; + per_slot_processing(&mut state, None, &harness.chain.spec).unwrap(); + assert!(matches!( + per_block_processing( + &mut state, + &altair_block, + None, + BlockSignatureStrategy::NoVerification, + &harness.chain.spec, + ), + Err(BlockProcessingError::InconsistentBlockFork( + InconsistentFork { + fork_at_slot: ForkName::Base, + object_fork: ForkName::Altair, + } + )) + )); + } + + // Ensure that it would be impossible to verify this block for gossip. + assert!(matches!( + harness + .chain + .verify_block_for_gossip(altair_block.clone()) + .err() + .expect("should error when processing altair block"), + BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Base, + object_fork: ForkName::Altair, + }) + )); + + // Ensure that it would be impossible to import via `BeaconChain::process_block`. + assert!(matches!( + harness + .chain + .process_block(altair_block.clone()) + .err() + .expect("should error when processing altair block"), + BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Base, + object_fork: ForkName::Altair, + }) + )); + + // Ensure that it would be impossible to import via `BeaconChain::process_chain_segment`. + assert!(matches!( + harness.chain.process_chain_segment(vec![altair_block]), + ChainSegmentResult::Failed { + imported_blocks: 0, + error: BlockError::InconsistentFork(InconsistentFork { + fork_at_slot: ForkName::Base, + object_fork: ForkName::Altair, + }) + } + )); +} diff --git a/beacon_node/beacon_chain/tests/op_verification.rs b/beacon_node/beacon_chain/tests/op_verification.rs index 8d86d01ce6..34ee8483b4 100644 --- a/beacon_node/beacon_chain/tests/op_verification.rs +++ b/beacon_node/beacon_chain/tests/op_verification.rs @@ -7,16 +7,12 @@ extern crate lazy_static; use beacon_chain::observed_operations::ObservationOutcome; use beacon_chain::test_utils::{ - AttestationStrategy, BeaconChainHarness, BlockStrategy, DiskHarnessType, + test_spec, AttestationStrategy, BeaconChainHarness, BlockStrategy, DiskHarnessType, }; use sloggers::{null::NullLoggerBuilder, Build}; use std::sync::Arc; use store::{LevelDB, StoreConfig}; use tempfile::{tempdir, TempDir}; -use types::test_utils::{ - AttesterSlashingTestTask, ProposerSlashingTestTask, TestingAttesterSlashingBuilder, - TestingProposerSlashingBuilder, TestingVoluntaryExitBuilder, -}; use types::*; pub const VALIDATOR_COUNT: usize = 24; @@ -32,7 +28,7 @@ type TestHarness = BeaconChainHarness>; type HotColdDB = store::HotColdDB, LevelDB>; fn get_store(db_path: &TempDir) -> Arc { - let spec = E::default_spec(); + let spec = test_spec::(); let hot_path = db_path.path().join("hot_db"); let cold_path = db_path.path().join("cold_db"); let config = StoreConfig::default(); @@ -44,6 +40,7 @@ fn get_store(db_path: &TempDir) -> Arc { fn get_harness(store: Arc, validator_count: usize) -> TestHarness { let harness = BeaconChainHarness::new_with_disk_store( MinimalEthSpec, + None, store, KEYPAIRS[0..validator_count].to_vec(), ); @@ -64,21 +61,13 @@ fn voluntary_exit() { AttestationStrategy::AllValidators, ); - let head_info = harness.chain.head_info().unwrap(); - - let make_exit = |validator_index: usize, exit_epoch: u64| { - TestingVoluntaryExitBuilder::new(Epoch::new(exit_epoch), validator_index as u64).build( - &KEYPAIRS[validator_index].sk, - &head_info.fork, - head_info.genesis_validators_root, - spec, - ) - }; - let validator_index1 = VALIDATOR_COUNT - 1; let validator_index2 = VALIDATOR_COUNT - 2; - let exit1 = make_exit(validator_index1, spec.shard_committee_period); + let exit1 = harness.make_voluntary_exit( + validator_index1 as u64, + Epoch::new(spec.shard_committee_period), + ); // First verification should show it to be fresh. assert!(matches!( @@ -98,14 +87,20 @@ fn voluntary_exit() { )); // A different exit for the same validator should also be detected as a duplicate. - let exit2 = make_exit(validator_index1, spec.shard_committee_period + 1); + let exit2 = harness.make_voluntary_exit( + validator_index1 as u64, + Epoch::new(spec.shard_committee_period + 1), + ); assert!(matches!( harness.chain.verify_voluntary_exit_for_gossip(exit2), Ok(ObservationOutcome::AlreadyKnown) )); // Exit for a different validator should be fine. - let exit3 = make_exit(validator_index2, spec.shard_committee_period); + let exit3 = harness.make_voluntary_exit( + validator_index2 as u64, + Epoch::new(spec.shard_committee_period), + ); assert!(matches!( harness .chain @@ -120,25 +115,11 @@ fn proposer_slashing() { let db_path = tempdir().unwrap(); let store = get_store(&db_path); let harness = get_harness(store.clone(), VALIDATOR_COUNT); - let spec = &harness.chain.spec; - - let head_info = harness.chain.head_info().unwrap(); let validator_index1 = VALIDATOR_COUNT - 1; let validator_index2 = VALIDATOR_COUNT - 2; - let make_slashing = |validator_index: usize| { - TestingProposerSlashingBuilder::double_vote::( - ProposerSlashingTestTask::Valid, - validator_index as u64, - &KEYPAIRS[validator_index].sk, - &head_info.fork, - head_info.genesis_validators_root, - spec, - ) - }; - - let slashing1 = make_slashing(validator_index1); + let slashing1 = harness.make_proposer_slashing(validator_index1 as u64); // First slashing for this proposer should be allowed. assert!(matches!( @@ -171,7 +152,7 @@ fn proposer_slashing() { )); // Proposer slashing for a different index should be accepted - let slashing3 = make_slashing(validator_index2); + let slashing3 = harness.make_proposer_slashing(validator_index2 as u64); assert!(matches!( harness .chain @@ -186,9 +167,6 @@ fn attester_slashing() { let db_path = tempdir().unwrap(); let store = get_store(&db_path); let harness = get_harness(store.clone(), VALIDATOR_COUNT); - let spec = &harness.chain.spec; - - let head_info = harness.chain.head_info().unwrap(); // First third of the validators let first_third = (0..VALIDATOR_COUNT as u64 / 3).collect::>(); @@ -199,25 +177,8 @@ fn attester_slashing() { // Last half of the validators let second_half = (VALIDATOR_COUNT as u64 / 2..VALIDATOR_COUNT as u64).collect::>(); - let signer = |idx: u64, message: &[u8]| { - KEYPAIRS[idx as usize] - .sk - .sign(Hash256::from_slice(&message)) - }; - - let make_slashing = |validators| { - TestingAttesterSlashingBuilder::double_vote::<_, E>( - AttesterSlashingTestTask::Valid, - validators, - signer, - &head_info.fork, - head_info.genesis_validators_root, - spec, - ) - }; - // Slashing for first third of validators should be accepted. - let slashing1 = make_slashing(&first_third); + let slashing1 = harness.make_attester_slashing(first_third); assert!(matches!( harness .chain @@ -227,7 +188,7 @@ fn attester_slashing() { )); // Overlapping slashing for first half of validators should also be accepted. - let slashing2 = make_slashing(&first_half); + let slashing2 = harness.make_attester_slashing(first_half); assert!(matches!( harness .chain @@ -253,7 +214,7 @@ fn attester_slashing() { )); // Slashing for last half of validators should be accepted (distinct from all existing) - let slashing3 = make_slashing(&second_half); + let slashing3 = harness.make_attester_slashing(second_half); assert!(matches!( harness .chain @@ -262,7 +223,7 @@ fn attester_slashing() { ObservationOutcome::New(_) )); // Slashing for last third (contained in last half) should be rejected. - let slashing4 = make_slashing(&last_third); + let slashing4 = harness.make_attester_slashing(last_third); assert!(matches!( harness .chain diff --git a/beacon_node/beacon_chain/tests/persistence_tests.rs b/beacon_node/beacon_chain/tests/persistence_tests.rs deleted file mode 100644 index 0f5aa8a6b6..0000000000 --- a/beacon_node/beacon_chain/tests/persistence_tests.rs +++ /dev/null @@ -1,161 +0,0 @@ -#![cfg(not(debug_assertions))] - -#[macro_use] -extern crate lazy_static; - -use beacon_chain::{ - test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy}, - BeaconChain, BeaconChainTypes, -}; -use sloggers::{null::NullLoggerBuilder, Build}; -use std::sync::Arc; -use store::{HotColdDB, LevelDB, StoreConfig}; -use tempfile::{tempdir, TempDir}; -use types::{EthSpec, Keypair, MinimalEthSpec}; - -type E = MinimalEthSpec; - -// Should ideally be divisible by 3. -pub const VALIDATOR_COUNT: usize = 24; - -lazy_static! { - /// A cached set of keys. - static ref KEYPAIRS: Vec = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); -} - -fn get_store(db_path: &TempDir) -> Arc, LevelDB>> { - let spec = E::default_spec(); - let hot_path = db_path.path().join("hot_db"); - let cold_path = db_path.path().join("cold_db"); - let config = StoreConfig::default(); - let log = NullLoggerBuilder.build().expect("logger should build"); - HotColdDB::open(&hot_path, &cold_path, |_, _, _| Ok(()), config, spec, log) - .expect("disk store should initialize") -} - -#[test] -fn finalizes_after_resuming_from_db() { - let validator_count = 16; - let num_blocks_produced = MinimalEthSpec::slots_per_epoch() * 8; - let first_half = num_blocks_produced / 2; - - let db_path = tempdir().unwrap(); - let store = get_store(&db_path); - - let harness = BeaconChainHarness::new_with_disk_store( - MinimalEthSpec, - store.clone(), - KEYPAIRS[0..validator_count].to_vec(), - ); - - harness.advance_slot(); - - harness.extend_chain( - first_half as usize, - BlockStrategy::OnCanonicalHead, - AttestationStrategy::AllValidators, - ); - - assert!( - harness - .chain - .head() - .expect("should read head") - .beacon_state - .finalized_checkpoint - .epoch - > 0, - "the chain should have already finalized" - ); - - let latest_slot = harness.chain.slot().expect("should have a slot"); - - harness - .chain - .persist_head_and_fork_choice() - .expect("should persist the head and fork choice"); - harness - .chain - .persist_op_pool() - .expect("should persist the op pool"); - harness - .chain - .persist_eth1_cache() - .expect("should persist the eth1 cache"); - - let data_dir = harness.data_dir; - let original_chain = harness.chain; - - let resumed_harness = BeaconChainHarness::resume_from_disk_store( - MinimalEthSpec, - store, - KEYPAIRS[0..validator_count].to_vec(), - data_dir, - ); - - assert_chains_pretty_much_the_same(&original_chain, &resumed_harness.chain); - - // Set the slot clock of the resumed harness to be in the slot following the previous harness. - // - // This allows us to produce the block at the next slot. - resumed_harness - .chain - .slot_clock - .set_slot(latest_slot.as_u64() + 1); - - resumed_harness.extend_chain( - (num_blocks_produced - first_half) as usize, - BlockStrategy::OnCanonicalHead, - AttestationStrategy::AllValidators, - ); - - let state = &resumed_harness - .chain - .head() - .expect("should read head") - .beacon_state; - assert_eq!( - state.slot, num_blocks_produced, - "head should be at the current slot" - ); - assert_eq!( - state.current_epoch(), - num_blocks_produced / MinimalEthSpec::slots_per_epoch(), - "head should be at the expected epoch" - ); - assert_eq!( - state.current_justified_checkpoint.epoch, - state.current_epoch() - 1, - "the head should be justified one behind the current epoch" - ); - assert_eq!( - state.finalized_checkpoint.epoch, - state.current_epoch() - 2, - "the head should be finalized two behind the current epoch" - ); -} - -/// Checks that two chains are the same, for the purpose of this tests. -/// -/// Several fields that are hard/impossible to check are ignored (e.g., the store). -fn assert_chains_pretty_much_the_same(a: &BeaconChain, b: &BeaconChain) { - assert_eq!(a.spec, b.spec, "spec should be equal"); - assert_eq!(a.op_pool, b.op_pool, "op_pool should be equal"); - assert_eq!( - a.head().unwrap(), - b.head().unwrap(), - "head() should be equal" - ); - assert_eq!(a.heads(), b.heads(), "heads() should be equal"); - assert_eq!( - a.genesis_block_root, b.genesis_block_root, - "genesis_block_root should be equal" - ); - - let slot = a.slot().unwrap(); - assert!( - a.fork_choice.write().get_head(slot).unwrap() - == b.fork_choice.write().get_head(slot).unwrap(), - "fork_choice heads should be equal" - ); -} diff --git a/beacon_node/beacon_chain/tests/store_tests.rs b/beacon_node/beacon_chain/tests/store_tests.rs index 73c2072389..4d526e72b1 100644 --- a/beacon_node/beacon_chain/tests/store_tests.rs +++ b/beacon_node/beacon_chain/tests/store_tests.rs @@ -2,9 +2,9 @@ use beacon_chain::attestation_verification::Error as AttnError; use beacon_chain::test_utils::{ - test_logger, AttestationStrategy, BeaconChainHarness, BlockStrategy, DiskHarnessType, + test_logger, test_spec, AttestationStrategy, BeaconChainHarness, BlockStrategy, DiskHarnessType, }; -use beacon_chain::BeaconSnapshot; +use beacon_chain::{BeaconChain, BeaconChainTypes, BeaconSnapshot}; use lazy_static::lazy_static; use maplit::hashset; use rand::Rng; @@ -34,7 +34,7 @@ type E = MinimalEthSpec; type TestHarness = BeaconChainHarness>; fn get_store(db_path: &TempDir) -> Arc, LevelDB>> { - let spec = MinimalEthSpec::default_spec(); + let spec = test_spec::(); let hot_path = db_path.path().join("hot_db"); let cold_path = db_path.path().join("cold_db"); let config = StoreConfig::default(); @@ -50,6 +50,7 @@ fn get_harness( ) -> TestHarness { let harness = BeaconChainHarness::new_with_disk_store( MinimalEthSpec, + None, store, KEYPAIRS[0..validator_count].to_vec(), ); @@ -107,7 +108,11 @@ fn randomised_skips() { let state = &harness.chain.head().expect("should get head").beacon_state; - assert_eq!(state.slot, num_slots, "head should be at the current slot"); + assert_eq!( + state.slot(), + num_slots, + "head should be at the current slot" + ); check_split_slot(&harness, store); check_chain_dump(&harness, num_blocks_produced + 1); @@ -195,7 +200,7 @@ fn randao_genesis_storage() { .head() .expect("should get head") .beacon_state - .randao_mixes + .randao_mixes() .iter() .find(|x| **x == genesis_value) .is_some()); @@ -212,7 +217,7 @@ fn randao_genesis_storage() { .head() .expect("should get head") .beacon_state - .randao_mixes + .randao_mixes() .iter() .find(|x| **x == genesis_value) .is_none()); @@ -347,8 +352,12 @@ fn delete_blocks_and_states() { let store = get_store(&db_path); let validators_keypairs = types::test_utils::generate_deterministic_keypairs(LOW_VALIDATOR_COUNT); - let harness = - BeaconChainHarness::new_with_disk_store(MinimalEthSpec, store.clone(), validators_keypairs); + let harness = BeaconChainHarness::new_with_disk_store( + MinimalEthSpec, + None, + store.clone(), + validators_keypairs, + ); let unforked_blocks: u64 = 4 * E::slots_per_epoch(); @@ -471,7 +480,7 @@ fn multi_epoch_fork_valid_blocks_test( let validators_keypairs = types::test_utils::generate_deterministic_keypairs(LOW_VALIDATOR_COUNT); let harness = - BeaconChainHarness::new_with_disk_store(MinimalEthSpec, store, validators_keypairs); + BeaconChainHarness::new_with_disk_store(MinimalEthSpec, None, store, validators_keypairs); let num_fork1_blocks: u64 = num_fork1_blocks_.try_into().unwrap(); let num_fork2_blocks: u64 = num_fork2_blocks_.try_into().unwrap(); @@ -550,18 +559,21 @@ fn multiple_attestations_per_block() { let head = harness.chain.head().unwrap(); let committees_per_slot = head .beacon_state - .get_committee_count_at_slot(head.beacon_state.slot) + .get_committee_count_at_slot(head.beacon_state.slot()) .unwrap(); assert!(committees_per_slot > 1); for snapshot in harness.chain.chain_dump().unwrap() { + let slot = snapshot.beacon_block.slot(); assert_eq!( - snapshot.beacon_block.message.body.attestations.len() as u64, - if snapshot.beacon_block.slot() <= 1 { - 0 - } else { - committees_per_slot - } + snapshot + .beacon_block + .deconstruct() + .0 + .body() + .attestations() + .len() as u64, + if slot <= 1 { 0 } else { committees_per_slot } ); } } @@ -758,7 +770,7 @@ fn prunes_abandoned_fork_between_two_finalized_checkpoints() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let slots_per_epoch = rig.slots_per_epoch(); let (mut state, state_root) = rig.get_current_state_and_root(); @@ -863,7 +875,7 @@ fn pruning_does_not_touch_abandoned_block_shared_with_canonical_chain() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let slots_per_epoch = rig.slots_per_epoch(); let (state, state_root) = rig.get_current_state_and_root(); @@ -988,7 +1000,7 @@ fn pruning_does_not_touch_blocks_prior_to_finalization() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let slots_per_epoch = rig.slots_per_epoch(); let (mut state, state_root) = rig.get_current_state_and_root(); @@ -1078,7 +1090,7 @@ fn prunes_fork_growing_past_youngest_finalized_checkpoint() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let (state, state_root) = rig.get_current_state_and_root(); // Fill up 0th epoch with canonical chain blocks @@ -1216,7 +1228,7 @@ fn prunes_skipped_slots_states() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let (state, state_root) = rig.get_current_state_and_root(); let canonical_slots_zeroth_epoch: Vec = @@ -1335,7 +1347,7 @@ fn finalizes_non_epoch_start_slot() { let validators_keypairs = types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT); let honest_validators: Vec = (0..HONEST_VALIDATOR_COUNT).collect(); let adversarial_validators: Vec = (HONEST_VALIDATOR_COUNT..VALIDATOR_COUNT).collect(); - let rig = BeaconChainHarness::new(MinimalEthSpec, validators_keypairs); + let rig = BeaconChainHarness::new(MinimalEthSpec, None, validators_keypairs); let (state, state_root) = rig.get_current_state_and_root(); let canonical_slots_zeroth_epoch: Vec = @@ -1691,15 +1703,17 @@ fn garbage_collect_temp_states_from_failed_block() { let genesis_state = harness.get_current_state(); let block_slot = Slot::new(2 * slots_per_epoch); - let (mut block, state) = harness.make_block(genesis_state, block_slot); + let (signed_block, state) = harness.make_block(genesis_state, block_slot); + + let (mut block, _) = signed_block.deconstruct(); // Mutate the block to make it invalid, and re-sign it. - block.message.state_root = Hash256::repeat_byte(0xff); - let proposer_index = block.message.proposer_index as usize; - let block = block.message.sign( + *block.state_root_mut() = Hash256::repeat_byte(0xff); + let proposer_index = block.proposer_index() as usize; + let block = block.sign( &harness.validator_keypairs[proposer_index].sk, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), &harness.spec, ); @@ -1720,12 +1734,143 @@ fn garbage_collect_temp_states_from_failed_block() { assert_eq!(store.iter_temporary_state_roots().count(), 0); } +#[test] +fn finalizes_after_resuming_from_db() { + let validator_count = 16; + let num_blocks_produced = MinimalEthSpec::slots_per_epoch() * 8; + let first_half = num_blocks_produced / 2; + + let db_path = tempdir().unwrap(); + let store = get_store(&db_path); + + let harness = BeaconChainHarness::new_with_disk_store( + MinimalEthSpec, + None, + store.clone(), + KEYPAIRS[0..validator_count].to_vec(), + ); + + harness.advance_slot(); + + harness.extend_chain( + first_half as usize, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + assert!( + harness + .chain + .head() + .expect("should read head") + .beacon_state + .finalized_checkpoint() + .epoch + > 0, + "the chain should have already finalized" + ); + + let latest_slot = harness.chain.slot().expect("should have a slot"); + + harness + .chain + .persist_head_and_fork_choice() + .expect("should persist the head and fork choice"); + harness + .chain + .persist_op_pool() + .expect("should persist the op pool"); + harness + .chain + .persist_eth1_cache() + .expect("should persist the eth1 cache"); + + let data_dir = harness.data_dir; + let original_chain = harness.chain; + + let resumed_harness = BeaconChainHarness::resume_from_disk_store( + MinimalEthSpec, + None, + store, + KEYPAIRS[0..validator_count].to_vec(), + data_dir, + ); + + assert_chains_pretty_much_the_same(&original_chain, &resumed_harness.chain); + + // Set the slot clock of the resumed harness to be in the slot following the previous harness. + // + // This allows us to produce the block at the next slot. + resumed_harness + .chain + .slot_clock + .set_slot(latest_slot.as_u64() + 1); + + resumed_harness.extend_chain( + (num_blocks_produced - first_half) as usize, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + let state = &resumed_harness + .chain + .head() + .expect("should read head") + .beacon_state; + assert_eq!( + state.slot(), + num_blocks_produced, + "head should be at the current slot" + ); + assert_eq!( + state.current_epoch(), + num_blocks_produced / MinimalEthSpec::slots_per_epoch(), + "head should be at the expected epoch" + ); + assert_eq!( + state.current_justified_checkpoint().epoch, + state.current_epoch() - 1, + "the head should be justified one behind the current epoch" + ); + assert_eq!( + state.finalized_checkpoint().epoch, + state.current_epoch() - 2, + "the head should be finalized two behind the current epoch" + ); +} + +/// Checks that two chains are the same, for the purpose of these tests. +/// +/// Several fields that are hard/impossible to check are ignored (e.g., the store). +fn assert_chains_pretty_much_the_same(a: &BeaconChain, b: &BeaconChain) { + assert_eq!(a.spec, b.spec, "spec should be equal"); + assert_eq!(a.op_pool, b.op_pool, "op_pool should be equal"); + assert_eq!( + a.head().unwrap(), + b.head().unwrap(), + "head() should be equal" + ); + assert_eq!(a.heads(), b.heads(), "heads() should be equal"); + assert_eq!( + a.genesis_block_root, b.genesis_block_root, + "genesis_block_root should be equal" + ); + + let slot = a.slot().unwrap(); + assert!( + a.fork_choice.write().get_head(slot).unwrap() + == b.fork_choice.write().get_head(slot).unwrap(), + "fork_choice heads should be equal" + ); +} + /// Check that the head state's slot matches `expected_slot`. fn check_slot(harness: &TestHarness, expected_slot: u64) { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, expected_slot, + state.slot(), + expected_slot, "head should be at the current slot" ); } @@ -1737,12 +1882,12 @@ fn check_finalization(harness: &TestHarness, expected_slot: u64) { check_slot(harness, expected_slot); assert_eq!( - state.current_justified_checkpoint.epoch, + state.current_justified_checkpoint().epoch, state.current_epoch() - 1, "the head should be justified one behind the current epoch" ); assert_eq!( - state.finalized_checkpoint.epoch, + state.finalized_checkpoint().epoch, state.current_epoch() - 2, "the head should be finalized two behind the current epoch" ); @@ -1757,7 +1902,7 @@ fn check_split_slot(harness: &TestHarness, store: Arc, L .head() .expect("should get head") .beacon_state - .finalized_checkpoint + .finalized_checkpoint() .epoch .start_slot(E::slots_per_epoch()), split_slot @@ -1788,8 +1933,8 @@ fn check_chain_dump(harness: &TestHarness, expected_len: u64) { .get_state(&checkpoint.beacon_state_root(), None) .expect("no error") .expect("state exists") - .slot, - checkpoint.beacon_state.slot + .slot(), + checkpoint.beacon_state.slot() ); } @@ -1864,7 +2009,7 @@ fn get_finalized_epoch_boundary_blocks( ) -> HashSet { dump.iter() .cloned() - .map(|checkpoint| checkpoint.beacon_state.finalized_checkpoint.root.into()) + .map(|checkpoint| checkpoint.beacon_state.finalized_checkpoint().root.into()) .collect() } diff --git a/beacon_node/beacon_chain/tests/tests.rs b/beacon_node/beacon_chain/tests/tests.rs index c6bf515a37..2740d566a8 100644 --- a/beacon_node/beacon_chain/tests/tests.rs +++ b/beacon_node/beacon_chain/tests/tests.rs @@ -29,6 +29,7 @@ lazy_static! { fn get_harness(validator_count: usize) -> BeaconChainHarness> { let harness = BeaconChainHarness::new_with_store_config( MinimalEthSpec, + None, KEYPAIRS[0..validator_count].to_vec(), StoreConfig::default(), ); @@ -41,7 +42,7 @@ fn get_harness(validator_count: usize) -> BeaconChainHarness 1, "the state should skip at least one slot"); + assert!(state.slot() > 1, "the state should skip at least one slot"); assert_eq!( error, SlotProcessingError::EpochProcessingError(EpochProcessingError::BeaconStateError( @@ -134,7 +135,7 @@ fn iterators() { assert_eq!( *state_roots.last().expect("should have some state roots"), - (head.beacon_state_root(), head.beacon_state.slot), + (head.beacon_state_root(), head.beacon_state.slot()), "last state root and slot should be for the head state" ); } @@ -153,7 +154,7 @@ fn find_reorgs() { ); let head_state = harness.chain.head_beacon_state().unwrap(); - let head_slot = head_state.slot; + let head_slot = head_state.slot(); let genesis_state = harness .chain .state_at_slot(Slot::new(0), StateSkipConfig::WithStateRoots) @@ -167,7 +168,7 @@ fn find_reorgs() { .find_reorg_slot(&genesis_state, harness.chain.genesis_block_root) .unwrap(), head_state - .finalized_checkpoint + .finalized_checkpoint() .epoch .start_slot(MinimalEthSpec::slots_per_epoch()) ); @@ -237,7 +238,7 @@ fn chooses_fork() { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, + state.slot(), Slot::from(initial_blocks + honest_fork_blocks), "head should be at the current slot" ); @@ -268,7 +269,8 @@ fn finalizes_with_full_participation() { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, num_blocks_produced, + state.slot(), + num_blocks_produced, "head should be at the current slot" ); assert_eq!( @@ -277,12 +279,12 @@ fn finalizes_with_full_participation() { "head should be at the expected epoch" ); assert_eq!( - state.current_justified_checkpoint.epoch, + state.current_justified_checkpoint().epoch, state.current_epoch() - 1, "the head should be justified one behind the current epoch" ); assert_eq!( - state.finalized_checkpoint.epoch, + state.finalized_checkpoint().epoch, state.current_epoch() - 2, "the head should be finalized two behind the current epoch" ); @@ -306,7 +308,8 @@ fn finalizes_with_two_thirds_participation() { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, num_blocks_produced, + state.slot(), + num_blocks_produced, "head should be at the current slot" ); assert_eq!( @@ -320,12 +323,12 @@ fn finalizes_with_two_thirds_participation() { // included in blocks during that epoch. assert_eq!( - state.current_justified_checkpoint.epoch, + state.current_justified_checkpoint().epoch, state.current_epoch() - 2, "the head should be justified two behind the current epoch" ); assert_eq!( - state.finalized_checkpoint.epoch, + state.finalized_checkpoint().epoch, state.current_epoch() - 4, "the head should be finalized three behind the current epoch" ); @@ -350,7 +353,8 @@ fn does_not_finalize_with_less_than_two_thirds_participation() { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, num_blocks_produced, + state.slot(), + num_blocks_produced, "head should be at the current slot" ); assert_eq!( @@ -359,11 +363,13 @@ fn does_not_finalize_with_less_than_two_thirds_participation() { "head should be at the expected epoch" ); assert_eq!( - state.current_justified_checkpoint.epoch, 0, + state.current_justified_checkpoint().epoch, + 0, "no epoch should have been justified" ); assert_eq!( - state.finalized_checkpoint.epoch, 0, + state.finalized_checkpoint().epoch, + 0, "no epoch should have been finalized" ); } @@ -383,7 +389,8 @@ fn does_not_finalize_without_attestation() { let state = &harness.chain.head().expect("should get head").beacon_state; assert_eq!( - state.slot, num_blocks_produced, + state.slot(), + num_blocks_produced, "head should be at the current slot" ); assert_eq!( @@ -392,11 +399,13 @@ fn does_not_finalize_without_attestation() { "head should be at the expected epoch" ); assert_eq!( - state.current_justified_checkpoint.epoch, 0, + state.current_justified_checkpoint().epoch, + 0, "no epoch should have been justified" ); assert_eq!( - state.finalized_checkpoint.epoch, 0, + state.finalized_checkpoint().epoch, + 0, "no epoch should have been finalized" ); } @@ -681,7 +690,14 @@ fn block_roots_skip_slot_behaviour() { let harness = get_harness(VALIDATOR_COUNT); // Test should be longer than the block roots to ensure a DB lookup is triggered. - let chain_length = harness.chain.head().unwrap().beacon_state.block_roots.len() as u64 * 3; + let chain_length = harness + .chain + .head() + .unwrap() + .beacon_state + .block_roots() + .len() as u64 + * 3; let skipped_slots = [1, 6, 7, 10, chain_length]; diff --git a/beacon_node/client/src/builder.rs b/beacon_node/client/src/builder.rs index 8b45ea61ef..d7de3e0d5d 100644 --- a/beacon_node/client/src/builder.rs +++ b/beacon_node/client/src/builder.rs @@ -19,7 +19,6 @@ use network::{NetworkConfig, NetworkMessage, NetworkService}; use slasher::Slasher; use slasher_service::SlasherService; use slog::{debug, info, warn}; -use ssz::Decode; use std::net::TcpListener; use std::path::{Path, PathBuf}; use std::sync::Arc; @@ -196,7 +195,7 @@ where "Starting from known genesis state"; ); - let genesis_state = BeaconState::from_ssz_bytes(&genesis_state_bytes) + let genesis_state = BeaconState::from_ssz_bytes(&genesis_state_bytes, &spec) .map_err(|e| format!("Unable to parse genesis state SSZ: {:?}", e))?; builder.genesis_state(genesis_state).map(|v| (v, None))? diff --git a/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs b/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs index 4e84d354bc..b7deb959d4 100644 --- a/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs +++ b/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs @@ -13,7 +13,7 @@ use std::io::ErrorKind; use std::io::{Read, Write}; use std::marker::PhantomData; use tokio_util::codec::{Decoder, Encoder}; -use types::{EthSpec, SignedBeaconBlock}; +use types::{EthSpec, SignedBeaconBlock, SignedBeaconBlockBase}; use unsigned_varint::codec::Uvi; /* Inbound Codec */ @@ -298,12 +298,18 @@ impl Decoder for SSZSnappyOutboundCodec { Protocol::Goodbye => Err(RPCError::InvalidData), Protocol::BlocksByRange => match self.protocol.version { Version::V1 => Ok(Some(RPCResponse::BlocksByRange(Box::new( - SignedBeaconBlock::from_ssz_bytes(&decoded_buffer)?, + // FIXME(altair): support Altair blocks + SignedBeaconBlock::Base(SignedBeaconBlockBase::from_ssz_bytes( + &decoded_buffer, + )?), )))), }, Protocol::BlocksByRoot => match self.protocol.version { + // FIXME(altair): support Altair blocks Version::V1 => Ok(Some(RPCResponse::BlocksByRoot(Box::new( - SignedBeaconBlock::from_ssz_bytes(&decoded_buffer)?, + SignedBeaconBlock::Base(SignedBeaconBlockBase::from_ssz_bytes( + &decoded_buffer, + )?), )))), }, Protocol::Ping => match self.protocol.version { diff --git a/beacon_node/eth2_libp2p/src/rpc/methods.rs b/beacon_node/eth2_libp2p/src/rpc/methods.rs index df362b316c..8facac48af 100644 --- a/beacon_node/eth2_libp2p/src/rpc/methods.rs +++ b/beacon_node/eth2_libp2p/src/rpc/methods.rs @@ -354,10 +354,10 @@ impl std::fmt::Display for RPCResponse { match self { RPCResponse::Status(status) => write!(f, "{}", status), RPCResponse::BlocksByRange(block) => { - write!(f, "BlocksByRange: Block slot: {}", block.message.slot) + write!(f, "BlocksByRange: Block slot: {}", block.slot()) } RPCResponse::BlocksByRoot(block) => { - write!(f, "BlocksByRoot: BLock slot: {}", block.message.slot) + write!(f, "BlocksByRoot: Block slot: {}", block.slot()) } RPCResponse::Pong(ping) => write!(f, "Pong: {}", ping.data), RPCResponse::MetaData(metadata) => write!(f, "Metadata: {}", metadata.seq_number), diff --git a/beacon_node/eth2_libp2p/src/rpc/protocol.rs b/beacon_node/eth2_libp2p/src/rpc/protocol.rs index 81804c82a7..44e180fb59 100644 --- a/beacon_node/eth2_libp2p/src/rpc/protocol.rs +++ b/beacon_node/eth2_libp2p/src/rpc/protocol.rs @@ -24,16 +24,16 @@ use types::{BeaconBlock, EthSpec, Hash256, MainnetEthSpec, Signature, SignedBeac lazy_static! { // Note: Hardcoding the `EthSpec` type for `SignedBeaconBlock` as min/max values is // same across different `EthSpec` implementations. - pub static ref SIGNED_BEACON_BLOCK_MIN: usize = SignedBeaconBlock:: { - message: BeaconBlock::empty(&MainnetEthSpec::default_spec()), - signature: Signature::empty(), - } + pub static ref SIGNED_BEACON_BLOCK_MIN: usize = SignedBeaconBlock::::from_block( + BeaconBlock::empty(&MainnetEthSpec::default_spec()), + Signature::empty(), + ) .as_ssz_bytes() .len(); - pub static ref SIGNED_BEACON_BLOCK_MAX: usize = SignedBeaconBlock:: { - message: BeaconBlock::full(&MainnetEthSpec::default_spec()), - signature: Signature::empty(), - } + pub static ref SIGNED_BEACON_BLOCK_MAX: usize = SignedBeaconBlock::::from_block( + BeaconBlock::full(&MainnetEthSpec::default_spec()), + Signature::empty(), + ) .as_ssz_bytes() .len(); pub static ref BLOCKS_BY_ROOT_REQUEST_MIN: usize = diff --git a/beacon_node/eth2_libp2p/src/types/pubsub.rs b/beacon_node/eth2_libp2p/src/types/pubsub.rs index 325a6c4431..f1ba987058 100644 --- a/beacon_node/eth2_libp2p/src/types/pubsub.rs +++ b/beacon_node/eth2_libp2p/src/types/pubsub.rs @@ -10,7 +10,7 @@ use std::io::{Error, ErrorKind}; use types::SubnetId; use types::{ Attestation, AttesterSlashing, EthSpec, ProposerSlashing, SignedAggregateAndProof, - SignedBeaconBlock, SignedVoluntaryExit, + SignedBeaconBlock, SignedBeaconBlockBase, SignedVoluntaryExit, }; #[derive(Debug, Clone, PartialEq)] @@ -141,8 +141,11 @@ impl PubsubMessage { )))) } GossipKind::BeaconBlock => { - let beacon_block = SignedBeaconBlock::from_ssz_bytes(data) - .map_err(|e| format!("{:?}", e))?; + // FIXME(altair): support Altair blocks + let beacon_block = SignedBeaconBlock::Base( + SignedBeaconBlockBase::from_ssz_bytes(data) + .map_err(|e| format!("{:?}", e))?, + ); Ok(PubsubMessage::BeaconBlock(Box::new(beacon_block))) } GossipKind::VoluntaryExit => { @@ -189,7 +192,8 @@ impl std::fmt::Display for PubsubMessage { PubsubMessage::BeaconBlock(block) => write!( f, "Beacon Block: slot: {}, proposer_index: {}", - block.message.slot, block.message.proposer_index + block.slot(), + block.message().proposer_index() ), PubsubMessage::AggregateAndProofAttestation(att) => write!( f, diff --git a/beacon_node/eth2_libp2p/tests/rpc_tests.rs b/beacon_node/eth2_libp2p/tests/rpc_tests.rs index 43f054d27f..1b565a4655 100644 --- a/beacon_node/eth2_libp2p/tests/rpc_tests.rs +++ b/beacon_node/eth2_libp2p/tests/rpc_tests.rs @@ -140,10 +140,7 @@ fn test_blocks_by_range_chunked_rpc() { // BlocksByRange Response let spec = E::default_spec(); let empty_block = BeaconBlock::empty(&spec); - let empty_signed = SignedBeaconBlock { - message: empty_block, - signature: Signature::empty(), - }; + let empty_signed = SignedBeaconBlock::from_block(empty_block, Signature::empty()); let rpc_response = Response::BlocksByRange(Some(Box::new(empty_signed))); // keep count of the number of messages received @@ -257,10 +254,7 @@ fn test_blocks_by_range_chunked_rpc_terminates_correctly() { // BlocksByRange Response let spec = E::default_spec(); let empty_block = BeaconBlock::empty(&spec); - let empty_signed = SignedBeaconBlock { - message: empty_block, - signature: Signature::empty(), - }; + let empty_signed = SignedBeaconBlock::from_block(empty_block, Signature::empty()); let rpc_response = Response::BlocksByRange(Some(Box::new(empty_signed))); // keep count of the number of messages received @@ -390,10 +384,7 @@ fn test_blocks_by_range_single_empty_rpc() { // BlocksByRange Response let spec = E::default_spec(); let empty_block = BeaconBlock::empty(&spec); - let empty_signed = SignedBeaconBlock { - message: empty_block, - signature: Signature::empty(), - }; + let empty_signed = SignedBeaconBlock::from_block(empty_block, Signature::empty()); let rpc_response = Response::BlocksByRange(Some(Box::new(empty_signed))); let messages_to_send = 1; @@ -510,10 +501,7 @@ fn test_blocks_by_root_chunked_rpc() { // BlocksByRoot Response let full_block = BeaconBlock::full(&spec); - let signed_full_block = SignedBeaconBlock { - message: full_block, - signature: Signature::empty(), - }; + let signed_full_block = SignedBeaconBlock::from_block(full_block, Signature::empty()); let rpc_response = Response::BlocksByRoot(Some(Box::new(signed_full_block))); // keep count of the number of messages received @@ -634,10 +622,7 @@ fn test_blocks_by_root_chunked_rpc_terminates_correctly() { // BlocksByRoot Response let full_block = BeaconBlock::full(&spec); - let signed_full_block = SignedBeaconBlock { - message: full_block, - signature: Signature::empty(), - }; + let signed_full_block = SignedBeaconBlock::from_block(full_block, Signature::empty()); let rpc_response = Response::BlocksByRoot(Some(Box::new(signed_full_block))); // keep count of the number of messages received diff --git a/beacon_node/genesis/src/eth1_genesis_service.rs b/beacon_node/genesis/src/eth1_genesis_service.rs index 447a011969..d5ef6ad0d9 100644 --- a/beacon_node/genesis/src/eth1_genesis_service.rs +++ b/beacon_node/genesis/src/eth1_genesis_service.rs @@ -5,7 +5,7 @@ use eth1::{DepositLog, Eth1Block, Service as Eth1Service}; use slog::{debug, error, info, trace, Logger}; use state_processing::{ eth2_genesis_time, initialize_beacon_state_from_eth1, is_valid_genesis_state, - per_block_processing::process_deposit, process_activations, + per_block_processing::process_operations::process_deposit, process_activations, }; use std::sync::{ atomic::{AtomicU64, AtomicUsize, Ordering}, @@ -190,7 +190,7 @@ impl Eth1GenesisService { .get_active_validator_indices(E::genesis_epoch(), &spec) .map_err(|e| format!("Genesis validators error: {:?}", e))? .len(), - "genesis_time" => genesis_state.genesis_time, + "genesis_time" => genesis_state.genesis_time(), ); break Ok(genesis_state); } diff --git a/beacon_node/genesis/src/interop.rs b/beacon_node/genesis/src/interop.rs index fcead9fbed..e36c115b47 100644 --- a/beacon_node/genesis/src/interop.rs +++ b/beacon_node/genesis/src/interop.rs @@ -48,10 +48,12 @@ pub fn interop_genesis_state( ) .map_err(|e| format!("Unable to initialize genesis state: {:?}", e))?; - state.genesis_time = genesis_time; + *state.genesis_time_mut() = genesis_time; - // Invalid all the caches after all the manual state surgery. - state.drop_all_caches(); + // Invalidate all the caches after all the manual state surgery. + state + .drop_all_caches() + .map_err(|e| format!("Unable to drop caches: {:?}", e))?; Ok(state) } @@ -75,24 +77,25 @@ mod test { .expect("should build state"); assert_eq!( - state.eth1_data.block_hash, + state.eth1_data().block_hash, Hash256::from_slice(&[0x42; 32]), "eth1 block hash should be co-ordinated junk" ); assert_eq!( - state.genesis_time, genesis_time, + state.genesis_time(), + genesis_time, "genesis time should be as specified" ); - for b in &state.balances { + for b in state.balances() { assert_eq!( *b, spec.max_effective_balance, "validator balances should be max effective balance" ); } - for v in &state.validators { + for v in state.validators() { let creds = v.withdrawal_credentials.as_bytes(); assert_eq!( creds[0], spec.bls_withdrawal_prefix_byte, @@ -106,13 +109,13 @@ mod test { } assert_eq!( - state.balances.len(), + state.balances().len(), validator_count, "validator balances len should be correct" ); assert_eq!( - state.validators.len(), + state.validators().len(), validator_count, "validator count should be correct" ); diff --git a/beacon_node/genesis/tests/tests.rs b/beacon_node/genesis/tests/tests.rs index d9ed180860..f99000ee8c 100644 --- a/beacon_node/genesis/tests/tests.rs +++ b/beacon_node/genesis/tests/tests.rs @@ -92,12 +92,12 @@ fn basic() { // Note: using ganache these deposits are 1-per-block, therefore we know there should only be // the minimum number of validators. assert_eq!( - state.validators.len(), + state.validators().len(), spec.min_genesis_active_validator_count as usize, "should have expected validator count" ); - assert!(state.genesis_time > 0, "should have some genesis time"); + assert!(state.genesis_time() > 0, "should have some genesis time"); assert!( is_valid_genesis_state(&state, &spec), diff --git a/beacon_node/http_api/src/lib.rs b/beacon_node/http_api/src/lib.rs index d6b8051076..25dcbcf0ed 100644 --- a/beacon_node/http_api/src/lib.rs +++ b/beacon_node/http_api/src/lib.rs @@ -37,8 +37,9 @@ use std::sync::Arc; use tokio::sync::mpsc::UnboundedSender; use tokio_stream::{wrappers::BroadcastStream, StreamExt}; use types::{ - Attestation, AttesterSlashing, CommitteeCache, Epoch, EthSpec, ProposerSlashing, RelativeEpoch, - SignedAggregateAndProof, SignedBeaconBlock, SignedVoluntaryExit, Slot, YamlConfig, + Attestation, AttesterSlashing, CommitteeCache, ConfigAndPreset, Epoch, EthSpec, + ProposerSlashing, RelativeEpoch, SignedAggregateAndProof, SignedBeaconBlock, + SignedVoluntaryExit, Slot, }; use warp::http::StatusCode; use warp::sse::Event; @@ -75,6 +76,7 @@ pub struct Config { pub listen_addr: Ipv4Addr, pub listen_port: u16, pub allow_origin: Option, + pub serve_legacy_spec: bool, } impl Default for Config { @@ -84,6 +86,7 @@ impl Default for Config { listen_addr: Ipv4Addr::new(127, 0, 0, 1), listen_port: 5052, allow_origin: None, + serve_legacy_spec: true, } } } @@ -332,7 +335,8 @@ pub fn serve( .untuple_one(); // Create a `warp` filter that provides access to the logger. - let log_filter = warp::any().map(move || ctx.log.clone()); + let inner_ctx = ctx.clone(); + let log_filter = warp::any().map(move || inner_ctx.log.clone()); /* * @@ -407,9 +411,9 @@ pub fn serve( state_id .map_state(&chain, |state| { Ok(api_types::FinalityCheckpointsData { - previous_justified: state.previous_justified_checkpoint, - current_justified: state.current_justified_checkpoint, - finalized: state.finalized_checkpoint, + previous_justified: state.previous_justified_checkpoint(), + current_justified: state.current_justified_checkpoint(), + finalized: state.finalized_checkpoint(), }) }) .map(api_types::GenericResponse::from) @@ -430,9 +434,9 @@ pub fn serve( state_id .map_state(&chain, |state| { Ok(state - .validators + .validators() .iter() - .zip(state.balances.iter()) + .zip(state.balances().iter()) .enumerate() // filter by validator id(s) if provided .filter(|(index, (validator, _))| { @@ -475,9 +479,9 @@ pub fn serve( let far_future_epoch = chain.spec.far_future_epoch; Ok(state - .validators + .validators() .iter() - .zip(state.balances.iter()) + .zip(state.balances().iter()) .enumerate() // filter by validator id(s) if provided .filter(|(index, (validator, _))| { @@ -541,15 +545,15 @@ pub fn serve( .map_state(&chain, |state| { let index_opt = match &validator_id { ValidatorId::PublicKey(pubkey) => { - state.validators.iter().position(|v| v.pubkey == *pubkey) + state.validators().iter().position(|v| v.pubkey == *pubkey) } ValidatorId::Index(index) => Some(*index as usize), }; index_opt .and_then(|index| { - let validator = state.validators.get(index)?; - let balance = *state.balances.get(index)?; + let validator = state.validators().get(index)?; + let balance = *state.balances().get(index)?; let epoch = state.current_epoch(); let far_future_epoch = chain.spec.far_future_epoch; @@ -591,7 +595,7 @@ pub fn serve( blocking_json_task(move || { query_state_id.map_state(&chain, |state| { - let epoch = state.slot.epoch(T::EthSpec::slots_per_epoch()); + let epoch = state.slot().epoch(T::EthSpec::slots_per_epoch()); let committee_cache = if state .committee_cache_is_initialized(RelativeEpoch::Current) @@ -725,8 +729,8 @@ pub fn serve( root, canonical: true, header: api_types::BlockHeaderAndSignature { - message: block.message.block_header(), - signature: block.signature.into(), + message: block.message().block_header(), + signature: block.signature().clone().into(), }, }; @@ -760,8 +764,8 @@ pub fn serve( root, canonical, header: api_types::BlockHeaderAndSignature { - message: block.message.block_header(), - signature: block.signature.into(), + message: block.message().block_header(), + signature: block.signature().clone().into(), }, }; @@ -799,7 +803,7 @@ pub fn serve( // Determine the delay after the start of the slot, register it with metrics. let delay = - get_block_delay_ms(seen_timestamp, &block.message, &chain.slot_clock); + get_block_delay_ms(seen_timestamp, block.message(), &chain.slot_clock); metrics::observe_duration( &metrics::HTTP_API_BLOCK_BROADCAST_DELAY_TIMES, delay, @@ -817,7 +821,7 @@ pub fn serve( // Notify the validator monitor. chain.validator_monitor.read().register_api_block( seen_timestamp, - &block.message, + block.message(), root, &chain.slot_clock, ); @@ -935,7 +939,8 @@ pub fn serve( blocking_json_task(move || { block_id .block(&chain) - .map(|block| block.message.body.attestations) + // FIXME(altair): could avoid clone with by-value accessor + .map(|block| block.message().body().attestations().clone()) .map(api_types::GenericResponse::from) }) }); @@ -1266,17 +1271,19 @@ pub fn serve( }); // GET config/spec + let serve_legacy_spec = ctx.config.serve_legacy_spec; let get_config_spec = config_path .and(warp::path("spec")) .and(warp::path::end()) .and(chain_filter.clone()) - .and_then(|chain: Arc>| { + .and_then(move |chain: Arc>| { blocking_json_task(move || { - Ok(api_types::GenericResponse::from(YamlConfig::from_spec::< - T::EthSpec, - >( - &chain.spec - ))) + let mut config_and_preset = + ConfigAndPreset::from_chain_spec::(&chain.spec); + if serve_legacy_spec { + config_and_preset.make_backwards_compat(&chain.spec); + } + Ok(api_types::GenericResponse::from(config_and_preset)) }) }); diff --git a/beacon_node/http_api/src/proposer_duties.rs b/beacon_node/http_api/src/proposer_duties.rs index b9cb075121..69c9f738a7 100644 --- a/beacon_node/http_api/src/proposer_duties.rs +++ b/beacon_node/http_api/src/proposer_duties.rs @@ -148,7 +148,7 @@ fn compute_and_cache_proposer_duties( state.current_epoch(), dependent_root, indices.clone(), - state.fork, + state.fork(), ) .map_err(BeaconChainError::from) .map_err(warp_utils::reject::beacon_chain_error)?; diff --git a/beacon_node/http_api/src/state_id.rs b/beacon_node/http_api/src/state_id.rs index 11800648f2..8b52e48152 100644 --- a/beacon_node/http_api/src/state_id.rs +++ b/beacon_node/http_api/src/state_id.rs @@ -57,7 +57,7 @@ impl StateId { &self, chain: &BeaconChain, ) -> Result { - self.map_state(chain, |state| Ok(state.fork)) + self.map_state(chain, |state| Ok(state.fork())) } /// Return the `BeaconState` identified by `self`. diff --git a/beacon_node/http_api/src/validator_inclusion.rs b/beacon_node/http_api/src/validator_inclusion.rs index 90847dd6b4..cdd2a51621 100644 --- a/beacon_node/http_api/src/validator_inclusion.rs +++ b/beacon_node/http_api/src/validator_inclusion.rs @@ -20,7 +20,7 @@ pub fn global_validator_inclusion_data( let mut validator_statuses = ValidatorStatuses::new(&state, &chain.spec) .map_err(warp_utils::reject::beacon_state_error)?; validator_statuses - .process_attestations(&state, &chain.spec) + .process_attestations(&state) .map_err(warp_utils::reject::beacon_state_error)?; let totals = validator_statuses.total_balances; @@ -49,7 +49,7 @@ pub fn validator_inclusion_data( let mut validator_statuses = ValidatorStatuses::new(&state, &chain.spec) .map_err(warp_utils::reject::beacon_state_error)?; validator_statuses - .process_attestations(&state, &chain.spec) + .process_attestations(&state) .map_err(warp_utils::reject::beacon_state_error)?; state diff --git a/beacon_node/http_api/tests/tests.rs b/beacon_node/http_api/tests/tests.rs index 558fedb066..6cb60832f2 100644 --- a/beacon_node/http_api/tests/tests.rs +++ b/beacon_node/http_api/tests/tests.rs @@ -23,11 +23,9 @@ use sensitive_url::SensitiveUrl; use slot_clock::SlotClock; use state_processing::per_slot_processing; use std::convert::TryInto; -use std::iter::Iterator; use std::net::Ipv4Addr; use std::sync::Arc; -use tokio::sync::mpsc; -use tokio::sync::oneshot; +use tokio::sync::{mpsc, oneshot}; use tokio::time::Duration; use tree_hash::TreeHash; use types::{ @@ -77,6 +75,7 @@ impl ApiTester { pub fn new() -> Self { let mut harness = BeaconChainHarness::new( MainnetEthSpec, + None, generate_deterministic_keypairs(VALIDATOR_COUNT), ); @@ -189,6 +188,7 @@ impl ApiTester { listen_addr: Ipv4Addr::new(127, 0, 0, 1), listen_port: 0, allow_origin: None, + serve_legacy_spec: true, }, chain: Some(chain.clone()), network_tx: Some(network_tx), @@ -235,6 +235,7 @@ impl ApiTester { pub fn new_from_genesis() -> Self { let harness = BeaconChainHarness::new( MainnetEthSpec, + None, generate_deterministic_keypairs(VALIDATOR_COUNT), ); @@ -301,6 +302,7 @@ impl ApiTester { listen_addr: Ipv4Addr::new(127, 0, 0, 1), listen_port: 0, allow_origin: None, + serve_legacy_spec: true, }, chain: Some(chain.clone()), network_tx: Some(network_tx), @@ -445,8 +447,8 @@ impl ApiTester { let state = self.chain.head().unwrap().beacon_state; let expected = GenesisData { - genesis_time: state.genesis_time, - genesis_validators_root: state.genesis_validators_root, + genesis_time: state.genesis_time(), + genesis_validators_root: state.genesis_validators_root(), genesis_fork_version: self.chain.spec.genesis_fork_version, }; @@ -508,7 +510,7 @@ impl ApiTester { .unwrap() .map(|res| res.data); - let expected = self.get_state(state_id).map(|state| state.fork); + let expected = self.get_state(state_id).map(|state| state.fork()); assert_eq!(result, expected, "{:?}", state_id); } @@ -528,9 +530,9 @@ impl ApiTester { let expected = self .get_state(state_id) .map(|state| FinalityCheckpointsData { - previous_justified: state.previous_justified_checkpoint, - current_justified: state.current_justified_checkpoint, - finalized: state.finalized_checkpoint, + previous_justified: state.previous_justified_checkpoint(), + current_justified: state.current_justified_checkpoint(), + finalized: state.finalized_checkpoint(), }); assert_eq!(result, expected, "{:?}", state_id); @@ -544,7 +546,7 @@ impl ApiTester { for validator_indices in self.interesting_validator_indices() { let state_opt = self.get_state(state_id); let validators: Vec = match state_opt.as_ref() { - Some(state) => state.validators.clone().into(), + Some(state) => state.validators().clone().into(), None => vec![], }; let validator_index_ids = validator_indices @@ -587,10 +589,10 @@ impl ApiTester { let mut validators = Vec::with_capacity(validator_indices.len()); for i in validator_indices { - if i < state.balances.len() as u64 { + if i < state.balances().len() as u64 { validators.push(ValidatorBalanceData { index: i as u64, - balance: state.balances[i as usize], + balance: state.balances()[i as usize], }); } } @@ -612,7 +614,7 @@ impl ApiTester { for validator_indices in self.interesting_validator_indices() { let state_opt = self.get_state(state_id); let validators: Vec = match state_opt.as_ref() { - Some(state) => state.validators.clone().into(), + Some(state) => state.validators().clone().into(), None => vec![], }; let validator_index_ids = validator_indices @@ -661,10 +663,10 @@ impl ApiTester { let mut validators = Vec::with_capacity(validator_indices.len()); for i in validator_indices { - if i >= state.validators.len() as u64 { + if i >= state.validators().len() as u64 { continue; } - let validator = state.validators[i as usize].clone(); + let validator = state.validators()[i as usize].clone(); let status = ValidatorStatus::from_validator( &validator, epoch, @@ -676,7 +678,7 @@ impl ApiTester { { validators.push(ValidatorData { index: i as u64, - balance: state.balances[i as usize], + balance: state.balances()[i as usize], status, validator, }); @@ -699,7 +701,7 @@ impl ApiTester { for state_id in self.interesting_state_ids() { let state_opt = self.get_state(state_id); let validators = match state_opt.as_ref() { - Some(state) => state.validators.clone().into(), + Some(state) => state.validators().clone().into(), None => vec![], }; @@ -729,7 +731,7 @@ impl ApiTester { ValidatorData { index: i as u64, - balance: state.balances[i], + balance: state.balances()[i], status: ValidatorStatus::from_validator( &validator, epoch, @@ -846,8 +848,8 @@ impl ApiTester { root, canonical: true, header: BlockHeaderAndSignature { - message: block.message.block_header(), - signature: block.signature.into(), + message: block.message().block_header(), + signature: block.signature().clone().into(), }, }; let expected = vec![header]; @@ -927,13 +929,13 @@ impl ApiTester { assert_eq!(result.root, block_root, "{:?}", block_id); assert_eq!( result.header.message, - block.message.block_header(), + block.message().block_header(), "{:?}", block_id ); assert_eq!( result.header.signature, - block.signature.into(), + block.signature().clone().into(), "{:?}", block_id ); @@ -980,7 +982,7 @@ impl ApiTester { pub async fn test_post_beacon_blocks_invalid(mut self) -> Self { let mut next_block = self.next_block.clone(); - next_block.message.proposer_index += 1; + *next_block.message_mut().proposer_index_mut() += 1; assert!(self.client.post_beacon_blocks(&next_block).await.is_err()); @@ -1012,7 +1014,11 @@ impl ApiTester { .map(|res| res.data); assert_eq!(json_result, expected, "{:?}", block_id); - let ssz_result = self.client.get_beacon_blocks_ssz(block_id).await.unwrap(); + let ssz_result = self + .client + .get_beacon_blocks_ssz(block_id, &self.chain.spec) + .await + .unwrap(); assert_eq!(ssz_result, expected, "{:?}", block_id); } @@ -1030,7 +1036,7 @@ impl ApiTester { let expected = self .get_block(block_id) - .map(|block| block.message.body.attestations.into()); + .map(|block| block.message().body().attestations().clone().into()); if let BlockId::Slot(slot) = block_id { if expected.is_none() { @@ -1264,7 +1270,8 @@ impl ApiTester { pub async fn test_get_config_spec(self) -> Self { let result = self.client.get_config_spec().await.unwrap().data; - let expected = YamlConfig::from_spec::(&self.chain.spec); + let mut expected = ConfigAndPreset::from_chain_spec::(&self.chain.spec); + expected.make_backwards_compat(&self.chain.spec); assert_eq!(result, expected); @@ -1432,7 +1439,7 @@ impl ApiTester { for state_id in self.interesting_state_ids() { let result_ssz = self .client - .get_debug_beacon_states_ssz(state_id) + .get_debug_beacon_states_ssz(state_id, &self.chain.spec) .await .unwrap(); let result_json = self @@ -1471,7 +1478,7 @@ impl ApiTester { } fn validator_count(&self) -> usize { - self.chain.head().unwrap().beacon_state.validators.len() + self.chain.head().unwrap().beacon_state.validators().len() } fn interesting_validator_indices(&self) -> Vec> { @@ -1575,7 +1582,7 @@ impl ApiTester { let expected_len = indices .iter() - .filter(|i| **i < state.validators.len() as u64) + .filter(|i| **i < state.validators().len() as u64) .count(); assert_eq!(result_duties.len(), expected_len); @@ -1586,7 +1593,7 @@ impl ApiTester { .unwrap() { let expected = AttesterData { - pubkey: state.validators[i as usize].pubkey.clone().into(), + pubkey: state.validators()[i as usize].pubkey.clone().into(), validator_index: i, committees_at_slot: duty.committees_at_slot, committee_index: duty.index, @@ -1691,7 +1698,7 @@ impl ApiTester { let index = state .get_beacon_proposer_index(slot, &self.chain.spec) .unwrap(); - let pubkey = state.validators[index].pubkey.clone().into(); + let pubkey = state.validators()[index].pubkey.clone().into(); ProposerData { pubkey, @@ -1849,7 +1856,7 @@ impl ApiTester { pub async fn test_get_validator_attestation_data(self) -> Self { let mut state = self.chain.head_beacon_state().unwrap(); - let slot = state.slot; + let slot = state.slot(); state .build_committee_cache(RelativeEpoch::Current, &self.chain.spec) .unwrap(); @@ -1879,9 +1886,9 @@ impl ApiTester { .chain .head_beacon_block() .unwrap() - .message - .body - .attestations[0] + .message() + .body() + .attestations()[0] .clone(); let result = self @@ -1915,7 +1922,7 @@ impl ApiTester { .unwrap(); let committee_len = head.beacon_state.get_committee_count_at_slot(slot).unwrap(); - let fork = head.beacon_state.fork; + let fork = head.beacon_state.fork(); let genesis_validators_root = self.chain.genesis_validators_root; let duties = self @@ -2118,7 +2125,7 @@ impl ApiTester { for state_id in self.interesting_state_ids() { let result = self .client - .get_lighthouse_beacon_states_ssz(&state_id) + .get_lighthouse_beacon_states_ssz(&state_id, &self.chain.spec) .await .unwrap(); diff --git a/beacon_node/network/Cargo.toml b/beacon_node/network/Cargo.toml index 0f0fad35b7..10808c58eb 100644 --- a/beacon_node/network/Cargo.toml +++ b/beacon_node/network/Cargo.toml @@ -43,7 +43,7 @@ lazy_static = "1.4.0" lighthouse_metrics = { path = "../../common/lighthouse_metrics" } task_executor = { path = "../../common/task_executor" } igd = "0.11.1" -itertools = "0.9.0" +itertools = "0.10.0" num_cpus = "1.13.0" lru_cache = { path = "../../common/lru_cache" } if-addrs = "0.6.4" diff --git a/beacon_node/network/src/beacon_processor/tests.rs b/beacon_node/network/src/beacon_processor/tests.rs index 6549a0263e..c177d1c17b 100644 --- a/beacon_node/network/src/beacon_processor/tests.rs +++ b/beacon_node/network/src/beacon_processor/tests.rs @@ -3,10 +3,10 @@ use crate::beacon_processor::*; use crate::{service::NetworkMessage, sync::SyncMessage}; -use beacon_chain::{ - test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType}, - BeaconChain, MAXIMUM_GOSSIP_CLOCK_DISPARITY, +use beacon_chain::test_utils::{ + AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType, }; +use beacon_chain::{BeaconChain, MAXIMUM_GOSSIP_CLOCK_DISPARITY}; use discv5::enr::{CombinedKey, EnrBuilder}; use environment::{null_logger, Environment, EnvironmentBuilder}; use eth2_libp2p::{rpc::methods::MetaData, types::EnrBitfield, MessageId, NetworkGlobals, PeerId}; @@ -66,6 +66,7 @@ impl TestRig { pub fn new(chain_length: u64) -> Self { let mut harness = BeaconChainHarness::new( MainnetEthSpec, + None, generate_deterministic_keypairs(VALIDATOR_COUNT), ); diff --git a/beacon_node/network/src/beacon_processor/worker/gossip_methods.rs b/beacon_node/network/src/beacon_processor/worker/gossip_methods.rs index f184f0576a..96a4d86c80 100644 --- a/beacon_node/network/src/beacon_processor/worker/gossip_methods.rs +++ b/beacon_node/network/src/beacon_processor/worker/gossip_methods.rs @@ -244,7 +244,7 @@ impl Worker { // Log metrics to track delay from other nodes on the network. metrics::observe_duration( &metrics::BEACON_BLOCK_GOSSIP_SLOT_START_DELAY_TIME, - get_block_delay_ms(seen_duration, &block.message, &self.chain.slot_clock), + get_block_delay_ms(seen_duration, block.message(), &self.chain.slot_clock), ); let verified_block = match self.chain.verify_block_for_gossip(block) { @@ -305,6 +305,7 @@ impl Worker { | Err(e @ BlockError::InvalidSignature) | Err(e @ BlockError::TooManySkippedSlots { .. }) | Err(e @ BlockError::WeakSubjectivityConflict) + | Err(e @ BlockError::InconsistentFork(_)) | Err(e @ BlockError::GenesisBlock) => { warn!(self.log, "Could not verify block for gossip, rejecting the block"; "error" => %e); @@ -322,7 +323,7 @@ impl Worker { // verified. self.chain.validator_monitor.read().register_gossip_block( seen_duration, - &verified_block.block.message, + verified_block.block.message(), verified_block.block_root, &self.chain.slot_clock, ); diff --git a/beacon_node/network/src/beacon_processor/worker/sync_methods.rs b/beacon_node/network/src/beacon_processor/worker/sync_methods.rs index 65118e3de5..5db81131e1 100644 --- a/beacon_node/network/src/beacon_processor/worker/sync_methods.rs +++ b/beacon_node/network/src/beacon_processor/worker/sync_methods.rs @@ -57,8 +57,8 @@ impl Worker { match process_id { // this a request from the range sync ProcessId::RangeBatchId(chain_id, epoch) => { - let start_slot = downloaded_blocks.first().map(|b| b.message.slot.as_u64()); - let end_slot = downloaded_blocks.last().map(|b| b.message.slot.as_u64()); + let start_slot = downloaded_blocks.first().map(|b| b.slot().as_u64()); + let end_slot = downloaded_blocks.last().map(|b| b.slot().as_u64()); let sent_blocks = downloaded_blocks.len(); let result = match self.process_blocks(downloaded_blocks.iter()) { diff --git a/beacon_node/network/src/service.rs b/beacon_node/network/src/service.rs index 082c1353fb..75786cdc51 100644 --- a/beacon_node/network/src/service.rs +++ b/beacon_node/network/src/service.rs @@ -277,7 +277,7 @@ fn spawn_service( .map(|current_epoch| { head .beacon_state - .validators + .validators() .iter() .filter(|validator| validator.is_active_at(current_epoch) diff --git a/beacon_node/network/src/service/tests.rs b/beacon_node/network/src/service/tests.rs index c7186a8393..02be935c1f 100644 --- a/beacon_node/network/src/service/tests.rs +++ b/beacon_node/network/src/service/tests.rs @@ -38,6 +38,7 @@ mod tests { let beacon_chain = Arc::new( BeaconChainHarness::new_with_store_config( MinimalEthSpec, + None, generate_deterministic_keypairs(8), StoreConfig::default(), ) diff --git a/beacon_node/network/src/sync/manager.rs b/beacon_node/network/src/sync/manager.rs index 8f4a238b23..2b678751ea 100644 --- a/beacon_node/network/src/sync/manager.rs +++ b/beacon_node/network/src/sync/manager.rs @@ -331,8 +331,13 @@ impl SyncManager { // check if the parent of this block isn't in our failed cache. If it is, this // chain should be dropped and the peer downscored. - if self.failed_chains.contains(&block.message.parent_root) { - debug!(self.log, "Parent chain ignored due to past failure"; "block" => ?block.message.parent_root, "slot" => block.message.slot); + if self.failed_chains.contains(&block.message().parent_root()) { + debug!( + self.log, + "Parent chain ignored due to past failure"; + "block" => ?block.message().parent_root(), + "slot" => block.slot() + ); if !parent_request.downloaded_blocks.is_empty() { // Add the root block to failed chains self.failed_chains @@ -490,7 +495,7 @@ impl SyncManager { .head_info() .map(|info| info.slot) .unwrap_or_else(|_| Slot::from(0u64)); - let unknown_block_slot = block.message.slot; + let unknown_block_slot = block.slot(); // if the block is far in the future, ignore it. If its within the slot tolerance of // our current head, regardless of the syncing state, fetch it. @@ -505,10 +510,10 @@ impl SyncManager { let block_root = block.canonical_root(); // If this block or it's parent is part of a known failed chain, ignore it. - if self.failed_chains.contains(&block.message.parent_root) + if self.failed_chains.contains(&block.message().parent_root()) || self.failed_chains.contains(&block_root) { - debug!(self.log, "Block is from a past failed chain. Dropping"; "block_root" => ?block_root, "block_slot" => block.message.slot); + debug!(self.log, "Block is from a past failed chain. Dropping"; "block_root" => ?block_root, "block_slot" => block.slot()); return; } @@ -525,7 +530,7 @@ impl SyncManager { } } - debug!(self.log, "Unknown block received. Starting a parent lookup"; "block_slot" => block.message.slot, "block_hash" => %block.canonical_root()); + debug!(self.log, "Unknown block received. Starting a parent lookup"; "block_slot" => block.slot(), "block_hash" => %block.canonical_root()); let parent_request = ParentRequests { downloaded_blocks: vec![block], diff --git a/beacon_node/operation_pool/Cargo.toml b/beacon_node/operation_pool/Cargo.toml index 6b20a806dc..219932c84b 100644 --- a/beacon_node/operation_pool/Cargo.toml +++ b/beacon_node/operation_pool/Cargo.toml @@ -21,3 +21,5 @@ store = { path = "../store" } [dev-dependencies] rand = "0.7.3" +lazy_static = "1.4.0" +beacon_chain = { path = "../beacon_chain" } diff --git a/beacon_node/operation_pool/src/attestation.rs b/beacon_node/operation_pool/src/attestation.rs index ea12abaf4a..2ed580cae2 100644 --- a/beacon_node/operation_pool/src/attestation.rs +++ b/beacon_node/operation_pool/src/attestation.rs @@ -1,7 +1,13 @@ use crate::max_cover::MaxCover; -use state_processing::common::{get_attesting_indices, get_base_reward}; +use state_processing::common::{ + altair, base, get_attestation_participation_flag_indices, get_attesting_indices, +}; use std::collections::HashMap; -use types::{Attestation, BeaconState, BitList, ChainSpec, EthSpec}; +use types::{ + beacon_state::BeaconStateBase, + consts::altair::{PARTICIPATION_FLAG_WEIGHTS, WEIGHT_DENOMINATOR}, + Attestation, BeaconState, BitList, ChainSpec, EthSpec, +}; #[derive(Debug, Clone)] pub struct AttMaxCover<'a, T: EthSpec> { @@ -18,7 +24,22 @@ impl<'a, T: EthSpec> AttMaxCover<'a, T> { total_active_balance: u64, spec: &ChainSpec, ) -> Option { - let fresh_validators = earliest_attestation_validators(att, state); + if let BeaconState::Base(ref base_state) = state { + Self::new_for_base(att, state, base_state, total_active_balance, spec) + } else { + Self::new_for_altair(att, state, total_active_balance, spec) + } + } + + /// Initialise an attestation cover object for base/phase0 hard fork. + pub fn new_for_base( + att: &'a Attestation, + state: &BeaconState, + base_state: &BeaconStateBase, + total_active_balance: u64, + spec: &ChainSpec, + ) -> Option { + let fresh_validators = earliest_attestation_validators(att, state, base_state); let committee = state .get_beacon_committee(att.data.slot, att.data.index) .ok()?; @@ -27,10 +48,14 @@ impl<'a, T: EthSpec> AttMaxCover<'a, T> { .iter() .map(|i| *i as u64) .flat_map(|validator_index| { - let reward = - get_base_reward(state, validator_index as usize, total_active_balance, spec) - .ok()? - / spec.proposer_reward_quotient; + let reward = base::get_base_reward( + state, + validator_index as usize, + total_active_balance, + spec, + ) + .ok()? + .checked_div(spec.proposer_reward_quotient)?; Some((validator_index, reward)) }) .collect(); @@ -39,6 +64,62 @@ impl<'a, T: EthSpec> AttMaxCover<'a, T> { fresh_validators_rewards, }) } + + /// Initialise an attestation cover object for Altair or later. + pub fn new_for_altair( + att: &'a Attestation, + state: &BeaconState, + total_active_balance: u64, + spec: &ChainSpec, + ) -> Option { + let committee = state + .get_beacon_committee(att.data.slot, att.data.index) + .ok()?; + let attesting_indices = + get_attesting_indices::(committee.committee, &att.aggregation_bits).ok()?; + + let participation_list = if att.data.target.epoch == state.current_epoch() { + state.current_epoch_participation().ok()? + } else if att.data.target.epoch == state.previous_epoch() { + state.previous_epoch_participation().ok()? + } else { + return None; + }; + + let inclusion_delay = state.slot().as_u64().checked_sub(att.data.slot.as_u64())?; + let att_participation_flags = + get_attestation_participation_flag_indices(state, &att.data, inclusion_delay, spec) + .ok()?; + + let fresh_validators_rewards = attesting_indices + .iter() + .filter_map(|&index| { + let mut proposer_reward_numerator = 0; + let participation = participation_list.get(index)?; + + let base_reward = + altair::get_base_reward(state, index, total_active_balance, spec).ok()?; + + for (flag_index, weight) in PARTICIPATION_FLAG_WEIGHTS.iter().enumerate() { + if att_participation_flags.contains(&flag_index) + && !participation.has_flag(flag_index).ok()? + { + proposer_reward_numerator += base_reward.checked_mul(*weight)?; + } + } + + let proposer_reward = proposer_reward_numerator + .checked_div(WEIGHT_DENOMINATOR.checked_mul(spec.proposer_reward_quotient)?)?; + + Some((index as u64, proposer_reward)).filter(|_| proposer_reward != 0) + }) + .collect(); + + Some(Self { + att, + fresh_validators_rewards, + }) + } } impl<'a, T: EthSpec> MaxCover for AttMaxCover<'a, T> { @@ -58,6 +139,11 @@ impl<'a, T: EthSpec> MaxCover for AttMaxCover<'a, T> { /// confusing committees when updating covering sets, we update only those attestations /// whose slot and index match the attestation being included in the solution, by the logic /// that a slot and index uniquely identify a committee. + /// + /// We completely remove any validator covered by another attestation. This is close to optimal + /// because including two attestations on chain to satisfy different participation bits is + /// impossible without the validator double voting. I.e. it is only suboptimal in the presence + /// of slashable voting, which is rare. fn update_covering_set( &mut self, best_att: &Attestation, @@ -81,19 +167,20 @@ impl<'a, T: EthSpec> MaxCover for AttMaxCover<'a, T> { /// is judged against the state's `current_epoch_attestations` or `previous_epoch_attestations` /// depending on when it was created, and all those validators who have already attested are /// removed from the `aggregation_bits` before returning it. -// TODO: This could be optimised with a map from validator index to whether that validator has -// attested in each of the current and previous epochs. Currently quadratic in number of validators. +/// +/// This isn't optimal, but with the Altair fork this code is obsolete and not worth upgrading. pub fn earliest_attestation_validators( attestation: &Attestation, state: &BeaconState, + base_state: &BeaconStateBase, ) -> BitList { // Bitfield of validators whose attestations are new/fresh. let mut new_validators = attestation.aggregation_bits.clone(); let state_attestations = if attestation.data.target.epoch == state.current_epoch() { - &state.current_epoch_attestations + &base_state.current_epoch_attestations } else if attestation.data.target.epoch == state.previous_epoch() { - &state.previous_epoch_attestations + &base_state.previous_epoch_attestations } else { return BitList::with_capacity(0).unwrap(); }; diff --git a/beacon_node/operation_pool/src/attester_slashing.rs b/beacon_node/operation_pool/src/attester_slashing.rs index ad4cd01ea2..2cb63ad252 100644 --- a/beacon_node/operation_pool/src/attester_slashing.rs +++ b/beacon_node/operation_pool/src/attester_slashing.rs @@ -1,7 +1,7 @@ use crate::max_cover::MaxCover; use state_processing::per_block_processing::get_slashable_indices_modular; use std::collections::{HashMap, HashSet}; -use types::{AttesterSlashing, BeaconState, ChainSpec, EthSpec}; +use types::{AttesterSlashing, BeaconState, EthSpec}; #[derive(Debug, Clone)] pub struct AttesterSlashingMaxCover<'a, T: EthSpec> { @@ -14,7 +14,6 @@ impl<'a, T: EthSpec> AttesterSlashingMaxCover<'a, T> { slashing: &'a AttesterSlashing, proposer_slashing_indices: &HashSet, state: &BeaconState, - spec: &ChainSpec, ) -> Option { let mut effective_balances: HashMap = HashMap::new(); let epoch = state.current_epoch(); @@ -22,21 +21,18 @@ impl<'a, T: EthSpec> AttesterSlashingMaxCover<'a, T> { let slashable_validators = get_slashable_indices_modular(state, slashing, |index, validator| { validator.is_slashable_at(epoch) && !proposer_slashing_indices.contains(&index) - }); - - if let Ok(validators) = slashable_validators { - for vd in &validators { - let eff_balance = state.get_effective_balance(*vd as usize, spec).ok()?; - effective_balances.insert(*vd, eff_balance); - } - - Some(Self { - slashing, - effective_balances, }) - } else { - None + .ok()?; + + for vd in slashable_validators { + let eff_balance = state.get_effective_balance(vd as usize).ok()?; + effective_balances.insert(vd, eff_balance); } + + Some(Self { + slashing, + effective_balances, + }) } } diff --git a/beacon_node/operation_pool/src/lib.rs b/beacon_node/operation_pool/src/lib.rs index 2e938d591e..85faaa1f4d 100644 --- a/beacon_node/operation_pool/src/lib.rs +++ b/beacon_node/operation_pool/src/lib.rs @@ -109,8 +109,8 @@ impl OperationPool { ) -> impl Iterator> + Send { let domain_bytes = AttestationId::compute_domain_bytes( epoch, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), spec, ); all_attestations @@ -153,7 +153,7 @@ impl OperationPool { .get_cached_active_validator_indices(RelativeEpoch::Current) .map_err(OpPoolError::GetAttestationsTotalBalanceError)?; let total_active_balance = state - .get_total_balance(&active_indices, spec) + .get_total_balance(active_indices, spec) .map_err(OpPoolError::GetAttestationsTotalBalanceError)?; // Split attestations for the previous & current epochs, so that we @@ -175,11 +175,15 @@ impl OperationPool { spec, ); - let prev_epoch_limit = std::cmp::min( - T::MaxPendingAttestations::to_usize() - .saturating_sub(state.previous_epoch_attestations.len()), - T::MaxAttestations::to_usize(), - ); + let prev_epoch_limit = if let BeaconState::Base(base_state) = state { + std::cmp::min( + T::MaxPendingAttestations::to_usize() + .saturating_sub(base_state.previous_epoch_attestations.len()), + T::MaxAttestations::to_usize(), + ) + } else { + T::MaxAttestations::to_usize() + }; let (prev_cover, curr_cover) = rayon::join( move || { @@ -246,13 +250,12 @@ impl OperationPool { pub fn get_slashings( &self, state: &BeaconState, - spec: &ChainSpec, ) -> (Vec, Vec>) { let proposer_slashings = filter_limit_operations( self.proposer_slashings.read().values(), |slashing| { state - .validators + .validators() .get(slashing.signed_header_1.message.proposer_index as usize) .map_or(false, |validator| !validator.slashed) }, @@ -269,8 +272,8 @@ impl OperationPool { let reader = self.attester_slashings.read(); let relevant_attester_slashings = reader.iter().flat_map(|(slashing, fork)| { - if *fork == state.fork.previous_version || *fork == state.fork.current_version { - AttesterSlashingMaxCover::new(&slashing, &to_be_slashed, state, spec) + if *fork == state.fork().previous_version || *fork == state.fork().current_version { + AttesterSlashingMaxCover::new(&slashing, &to_be_slashed, state) } else { None } @@ -291,7 +294,7 @@ impl OperationPool { pub fn prune_proposer_slashings(&self, head_state: &BeaconState) { prune_validator_hash_map( &mut self.proposer_slashings.write(), - |validator| validator.exit_epoch <= head_state.finalized_checkpoint.epoch, + |validator| validator.exit_epoch <= head_state.finalized_checkpoint().epoch, head_state, ); } @@ -303,11 +306,11 @@ impl OperationPool { .write() .retain(|(slashing, fork_version)| { let previous_fork_is_finalized = - head_state.finalized_checkpoint.epoch >= head_state.fork.epoch; + head_state.finalized_checkpoint().epoch >= head_state.fork().epoch; // Prune any slashings which don't match the current fork version, or the previous // fork version if it is not finalized yet. - let fork_ok = (fork_version == &head_state.fork.current_version) - || (fork_version == &head_state.fork.previous_version + let fork_ok = (*fork_version == head_state.fork().current_version) + || (*fork_version == head_state.fork().previous_version && !previous_fork_is_finalized); // Slashings that don't slash any validators can also be dropped. let slashing_ok = @@ -317,7 +320,7 @@ impl OperationPool { // // We cannot check the `slashed` field since the `head` is not finalized and // a fork could un-slash someone. - validator.exit_epoch > head_state.finalized_checkpoint.epoch + validator.exit_epoch > head_state.finalized_checkpoint().epoch }) .map_or(false, |indices| !indices.is_empty()); @@ -365,7 +368,7 @@ impl OperationPool { // // We choose simplicity over the gain of pruning more exits since they are small and // should not be seen frequently. - |validator| validator.exit_epoch <= head_state.finalized_checkpoint.epoch, + |validator| validator.exit_epoch <= head_state.finalized_checkpoint().epoch, head_state, ); } @@ -474,7 +477,7 @@ fn prune_validator_hash_map( { map.retain(|&validator_index, _| { head_state - .validators + .validators() .get(validator_index as usize) .map_or(true, |validator| !prune_if(validator)) }); @@ -493,86 +496,69 @@ impl PartialEq for OperationPool { } } -// TODO: more tests #[cfg(all(test, not(debug_assertions)))] mod release_tests { + use lazy_static::lazy_static; + use super::attestation::earliest_attestation_validators; use super::*; + use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; use state_processing::{ - common::{get_attesting_indices, get_base_reward}, + common::{base::get_base_reward, get_attesting_indices}, VerifyOperation, }; use std::collections::BTreeSet; use std::iter::FromIterator; - use types::test_utils::*; + use store::StoreConfig; use types::*; - /// Create a signed attestation for use in tests. - /// Signed by all validators in `committee[signing_range]` and `committee[extra_signer]`. - fn signed_attestation, E: EthSpec>( - committee: &[usize], - index: u64, - keypairs: &[Keypair], - signing_range: R, - slot: Slot, - state: &BeaconState, - spec: &ChainSpec, - extra_signer: Option, - ) -> Attestation { - let mut builder = TestingAttestationBuilder::new( - AttestationTestTask::Valid, - state, - committee, - slot, - index, - spec, + pub const MAX_VALIDATOR_COUNT: usize = 4 * 32 * 128; + + lazy_static! { + /// A cached set of keys. + static ref KEYPAIRS: Vec = types::test_utils::generate_deterministic_keypairs(MAX_VALIDATOR_COUNT); + } + + fn get_harness( + validator_count: usize, + ) -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + E::default(), + None, + KEYPAIRS[0..validator_count].to_vec(), + StoreConfig::default(), ); - let signers = &committee[signing_range]; - let committee_keys = signers.iter().map(|&i| &keypairs[i].sk).collect::>(); - builder.sign( - AttestationTestTask::Valid, - signers, - &committee_keys, - &state.fork, - state.genesis_validators_root, - spec, - ); - extra_signer.map(|c_idx| { - let validator_index = committee[c_idx]; - builder.sign( - AttestationTestTask::Valid, - &[validator_index], - &[&keypairs[validator_index].sk], - &state.fork, - state.genesis_validators_root, - spec, - ) - }); - builder.build() + + harness.advance_slot(); + + harness } /// Test state for attestation-related tests. fn attestation_test_state( num_committees: usize, - ) -> (BeaconState, Vec, ChainSpec) { + ) -> (BeaconChainHarness>, ChainSpec) { let spec = E::default_spec(); let num_validators = num_committees * E::slots_per_epoch() as usize * spec.target_committee_size; - let mut state_builder = - TestingBeaconStateBuilder::from_deterministic_keypairs(num_validators, &spec); - let slot_offset = 1000 * E::slots_per_epoch() + E::slots_per_epoch() / 2; - let slot = spec.genesis_slot + slot_offset; - state_builder.teleport_to_slot(slot); - state_builder.build_caches(&spec).unwrap(); - let (state, keypairs) = state_builder.build(); - (state, keypairs, spec) + let harness = get_harness::(num_validators); + + let slot_offset = 5 * E::slots_per_epoch() + E::slots_per_epoch() / 2; + + // advance until we have finalized and justified epochs + for _ in 0..slot_offset { + harness.advance_slot(); + } + + (harness, spec) } #[test] fn test_earliest_attestation() { - let (ref mut state, ref keypairs, ref spec) = attestation_test_state::(1); - let slot = state.slot - 1; + let (harness, ref spec) = attestation_test_state::(1); + let mut state = harness.get_current_state(); + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -580,33 +566,44 @@ mod release_tests { .map(BeaconCommittee::into_owned) .collect::>(); - for bc in committees { - let att1 = signed_attestation( - &bc.committee, - bc.index, - keypairs, - ..2, - slot, - state, - spec, - None, - ); - let att2 = signed_attestation( - &bc.committee, - bc.index, - keypairs, - .., - slot, - state, - spec, - None, - ); + let num_validators = + MainnetEthSpec::slots_per_epoch() as usize * spec.target_committee_size; + + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + + for (atts, aggregate) in &attestations { + let att2 = aggregate.as_ref().unwrap().message.aggregate.clone(); + + let att1 = atts + .into_iter() + .map(|(att, _)| att) + .take(2) + .fold::>, _>(None, |att, new_att| { + if let Some(mut a) = att { + a.aggregate(&new_att); + Some(a) + } else { + Some(new_att.clone()) + } + }) + .unwrap(); assert_eq!( att1.aggregation_bits.num_set_bits(), - earliest_attestation_validators(&att1, state).num_set_bits() + earliest_attestation_validators(&att1, &state, state.as_base().unwrap()) + .num_set_bits() ); + + // FIXME(altair): handle altair in these tests state + .as_base_mut() + .unwrap() .current_epoch_attestations .push(PendingAttestation { aggregation_bits: att1.aggregation_bits.clone(), @@ -617,8 +614,9 @@ mod release_tests { .unwrap(); assert_eq!( - bc.committee.len() - 2, - earliest_attestation_validators(&att2, state).num_set_bits() + committees.get(0).unwrap().committee.len() - 2, + earliest_attestation_validators(&att2, &state, state.as_base().unwrap()) + .num_set_bits() ); } } @@ -626,11 +624,12 @@ mod release_tests { /// End-to-end test of basic attestation handling. #[test] fn attestation_aggregation_insert_get_prune() { - let (ref mut state, ref keypairs, ref spec) = attestation_test_state::(1); + let (harness, ref spec) = attestation_test_state::(1); - let op_pool = OperationPool::new(); + let op_pool = OperationPool::::new(); + let mut state = harness.get_current_state(); - let slot = state.slot - 1; + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -644,21 +643,21 @@ mod release_tests { "we expect just one committee with this many validators" ); - for bc in &committees { - let step_size = 2; - for i in (0..bc.committee.len()).step_by(step_size) { - let att = signed_attestation( - &bc.committee, - bc.index, - keypairs, - i..i + step_size, - slot, - state, - spec, - None, - ); + let num_validators = + MainnetEthSpec::slots_per_epoch() as usize * spec.target_committee_size; + + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + + for (atts, _) in attestations { + for att in atts.into_iter() { op_pool - .insert_attestation(att, &state.fork, state.genesis_validators_root, spec) + .insert_attestation(att.0, &state.fork(), state.genesis_validators_root(), spec) .unwrap(); } } @@ -667,20 +666,20 @@ mod release_tests { assert_eq!(op_pool.num_attestations(), committees.len()); // Before the min attestation inclusion delay, get_attestations shouldn't return anything. - state.slot -= 1; + *state.slot_mut() -= 1; assert_eq!( op_pool - .get_attestations(state, |_| true, |_| true, spec) + .get_attestations(&state, |_| true, |_| true, spec) .expect("should have attestations") .len(), 0 ); // Then once the delay has elapsed, we should get a single aggregated attestation. - state.slot += spec.min_attestation_inclusion_delay; + *state.slot_mut() += spec.min_attestation_inclusion_delay; let block_attestations = op_pool - .get_attestations(state, |_| true, |_| true, spec) + .get_attestations(&state, |_| true, |_| true, spec) .expect("Should have block attestations"); assert_eq!(block_attestations.len(), committees.len()); @@ -696,7 +695,7 @@ mod release_tests { // But once we advance to more than an epoch after the attestation, it should prune it // out of existence. - state.slot += 2 * MainnetEthSpec::slots_per_epoch(); + *state.slot_mut() += 2 * MainnetEthSpec::slots_per_epoch(); op_pool.prune_attestations(state.current_epoch()); assert_eq!(op_pool.num_attestations(), 0); } @@ -704,11 +703,13 @@ mod release_tests { /// Adding an attestation already in the pool should not increase the size of the pool. #[test] fn attestation_duplicate() { - let (ref mut state, ref keypairs, ref spec) = attestation_test_state::(1); + let (harness, ref spec) = attestation_test_state::(1); - let op_pool = OperationPool::new(); + let state = harness.get_current_state(); - let slot = state.slot - 1; + let op_pool = OperationPool::::new(); + + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -716,27 +717,28 @@ mod release_tests { .map(BeaconCommittee::into_owned) .collect::>(); - for bc in &committees { - let att = signed_attestation( - &bc.committee, - bc.index, - keypairs, - .., - slot, - state, - spec, - None, - ); + let num_validators = + MainnetEthSpec::slots_per_epoch() as usize * spec.target_committee_size; + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + + for (_, aggregate) in attestations { + let att = aggregate.unwrap().message.aggregate; op_pool .insert_attestation( att.clone(), - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), spec, ) .unwrap(); op_pool - .insert_attestation(att, &state.fork, state.genesis_validators_root, spec) + .insert_attestation(att, &state.fork(), state.genesis_validators_root(), spec) .unwrap(); } @@ -747,11 +749,13 @@ mod release_tests { /// attestations. #[test] fn attestation_pairwise_overlapping() { - let (ref mut state, ref keypairs, ref spec) = attestation_test_state::(1); + let (harness, ref spec) = attestation_test_state::(1); - let op_pool = OperationPool::new(); + let state = harness.get_current_state(); - let slot = state.slot - 1; + let op_pool = OperationPool::::new(); + + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -759,23 +763,68 @@ mod release_tests { .map(BeaconCommittee::into_owned) .collect::>(); + let num_validators = + MainnetEthSpec::slots_per_epoch() as usize * spec.target_committee_size; + + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + let step_size = 2; - for bc in &committees { - // Create attestations that overlap on `step_size` validators, like: - // {0,1,2,3}, {2,3,4,5}, {4,5,6,7}, ... - for i in (0..bc.committee.len() - step_size).step_by(step_size) { - let att = signed_attestation( - &bc.committee, - bc.index, - keypairs, - i..i + 2 * step_size, - slot, - state, - spec, - None, - ); + // Create attestations that overlap on `step_size` validators, like: + // {0,1,2,3}, {2,3,4,5}, {4,5,6,7}, ... + for (atts1, _) in attestations { + let atts2 = atts1.clone(); + let aggs1 = atts1 + .chunks_exact(step_size * 2) + .map(|chunk| { + let agg = chunk.into_iter().map(|(att, _)| att).fold::, + >, _>( + None, + |att, new_att| { + if let Some(mut a) = att { + a.aggregate(new_att); + Some(a) + } else { + Some(new_att.clone()) + } + }, + ); + agg.unwrap() + }) + .collect::>(); + let aggs2 = atts2 + .into_iter() + .skip(step_size) + .collect::>() + .as_slice() + .chunks_exact(step_size * 2) + .map(|chunk| { + let agg = chunk.into_iter().map(|(att, _)| att).fold::, + >, _>( + None, + |att, new_att| { + if let Some(mut a) = att { + a.aggregate(new_att); + Some(a) + } else { + Some(new_att.clone()) + } + }, + ); + agg.unwrap() + }) + .collect::>(); + + for att in aggs1.into_iter().chain(aggs2.into_iter()) { op_pool - .insert_attestation(att, &state.fork, state.genesis_validators_root, spec) + .insert_attestation(att, &state.fork(), state.genesis_validators_root(), spec) .unwrap(); } } @@ -795,13 +844,15 @@ mod release_tests { fn attestation_get_max() { let small_step_size = 2; let big_step_size = 4; + let num_committees = big_step_size; - let (ref mut state, ref keypairs, ref spec) = - attestation_test_state::(big_step_size); + let (harness, ref spec) = attestation_test_state::(num_committees); - let op_pool = OperationPool::new(); + let mut state = harness.get_current_state(); - let slot = state.slot - 1; + let op_pool = OperationPool::::new(); + + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -811,31 +862,50 @@ mod release_tests { let max_attestations = ::MaxAttestations::to_usize(); let target_committee_size = spec.target_committee_size as usize; + let num_validators = num_committees + * MainnetEthSpec::slots_per_epoch() as usize + * spec.target_committee_size; - let insert_attestations = |bc: &OwnedBeaconCommittee, step_size| { - for i in (0..target_committee_size).step_by(step_size) { - let att = signed_attestation( - &bc.committee, - bc.index, - keypairs, - i..i + step_size, - slot, - state, - spec, - if i == 0 { None } else { Some(0) }, - ); + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + + let insert_attestations = |attestations: Vec<(Attestation, SubnetId)>, + step_size| { + let att_0 = attestations.get(0).unwrap().0.clone(); + let aggs = attestations + .chunks_exact(step_size) + .map(|chunk| { + chunk + .into_iter() + .map(|(att, _)| att) + .fold::, _>( + att_0.clone(), + |mut att, new_att| { + att.aggregate(new_att); + att + }, + ) + }) + .collect::>(); + + for att in aggs { op_pool - .insert_attestation(att, &state.fork, state.genesis_validators_root, spec) + .insert_attestation(att, &state.fork(), state.genesis_validators_root(), spec) .unwrap(); } }; - for committee in &committees { - assert_eq!(committee.committee.len(), target_committee_size); + for (atts, _) in attestations { + assert_eq!(atts.len(), target_committee_size); // Attestations signed by only 2-3 validators - insert_attestations(committee, small_step_size); + insert_attestations(atts.clone(), small_step_size); // Attestations signed by 4+ validators - insert_attestations(committee, big_step_size); + insert_attestations(atts, big_step_size); } let num_small = target_committee_size / small_step_size; @@ -848,9 +918,9 @@ mod release_tests { ); assert!(op_pool.num_attestations() > max_attestations); - state.slot += spec.min_attestation_inclusion_delay; + *state.slot_mut() += spec.min_attestation_inclusion_delay; let best_attestations = op_pool - .get_attestations(state, |_| true, |_| true, spec) + .get_attestations(&state, |_| true, |_| true, spec) .expect("should have best attestations"); assert_eq!(best_attestations.len(), max_attestations); @@ -864,13 +934,14 @@ mod release_tests { fn attestation_rewards() { let small_step_size = 2; let big_step_size = 4; + let num_committees = big_step_size; - let (ref mut state, ref keypairs, ref spec) = - attestation_test_state::(big_step_size); + let (harness, ref spec) = attestation_test_state::(num_committees); - let op_pool = OperationPool::new(); + let mut state = harness.get_current_state(); + let op_pool = OperationPool::::new(); - let slot = state.slot - 1; + let slot = state.slot() - 1; let committees = state .get_beacon_committees_at_slot(slot) .unwrap() @@ -883,34 +954,53 @@ mod release_tests { // Each validator will have a multiple of 1_000_000_000 wei. // Safe from overflow unless there are about 18B validators (2^64 / 1_000_000_000). - for i in 0..state.validators.len() { - state.validators[i].effective_balance = 1_000_000_000 * i as u64; + for i in 0..state.validators().len() { + state.validators_mut()[i].effective_balance = 1_000_000_000 * i as u64; } - let insert_attestations = |bc: &OwnedBeaconCommittee, step_size| { - for i in (0..target_committee_size).step_by(step_size) { - let att = signed_attestation( - &bc.committee, - bc.index, - keypairs, - i..i + step_size, - slot, - state, - spec, - if i == 0 { None } else { Some(0) }, - ); + let num_validators = num_committees + * MainnetEthSpec::slots_per_epoch() as usize + * spec.target_committee_size; + let attestations = harness.make_attestations( + (0..num_validators).collect::>().as_slice(), + &state, + Hash256::zero(), + SignedBeaconBlockHash::from(Hash256::zero()), + slot, + ); + + let insert_attestations = |attestations: Vec<(Attestation, SubnetId)>, + step_size| { + let att_0 = attestations.get(0).unwrap().0.clone(); + let aggs = attestations + .chunks_exact(step_size) + .map(|chunk| { + chunk + .into_iter() + .map(|(att, _)| att) + .fold::, _>( + att_0.clone(), + |mut att, new_att| { + att.aggregate(new_att); + att + }, + ) + }) + .collect::>(); + + for att in aggs { op_pool - .insert_attestation(att, &state.fork, state.genesis_validators_root, spec) + .insert_attestation(att, &state.fork(), state.genesis_validators_root(), spec) .unwrap(); } }; - for committee in &committees { - assert_eq!(committee.committee.len(), target_committee_size); + for (atts, _) in attestations { + assert_eq!(atts.len(), target_committee_size); // Attestations signed by only 2-3 validators - insert_attestations(committee, small_step_size); + insert_attestations(atts.clone(), small_step_size); // Attestations signed by 4+ validators - insert_attestations(committee, big_step_size); + insert_attestations(atts, big_step_size); } let num_small = target_committee_size / small_step_size; @@ -923,16 +1013,16 @@ mod release_tests { ); assert!(op_pool.num_attestations() > max_attestations); - state.slot += spec.min_attestation_inclusion_delay; + *state.slot_mut() += spec.min_attestation_inclusion_delay; let best_attestations = op_pool - .get_attestations(state, |_| true, |_| true, spec) + .get_attestations(&state, |_| true, |_| true, spec) .expect("should have valid best attestations"); assert_eq!(best_attestations.len(), max_attestations); let active_indices = state .get_cached_active_validator_indices(RelativeEpoch::Current) .unwrap(); - let total_active_balance = state.get_total_balance(&active_indices, spec).unwrap(); + let total_active_balance = state.get_total_balance(active_indices, spec).unwrap(); // Set of indices covered by previous attestations in `best_attestations`. let mut seen_indices = BTreeSet::new(); @@ -940,7 +1030,8 @@ mod release_tests { let mut prev_reward = u64::max_value(); for att in &best_attestations { - let fresh_validators_bitlist = earliest_attestation_validators(att, state); + let fresh_validators_bitlist = + earliest_attestation_validators(att, &state, state.as_base().unwrap()); let committee = state .get_beacon_committee(att.data.slot, att.data.index) .expect("should get beacon committee"); @@ -958,8 +1049,13 @@ mod release_tests { let rewards = fresh_indices .iter() .map(|validator_index| { - get_base_reward(state, *validator_index as usize, total_active_balance, spec) - .unwrap() + get_base_reward( + &state, + *validator_index as usize, + total_active_balance, + spec, + ) + .unwrap() / spec.proposer_reward_quotient }) .sum(); @@ -972,275 +1068,221 @@ mod release_tests { } } - struct TestContext { - spec: ChainSpec, - state: BeaconState, - keypairs: Vec, - op_pool: OperationPool, - } - - impl TestContext { - fn new() -> Self { - let spec = MainnetEthSpec::default_spec(); - let num_validators = 32; - let mut state_builder = - TestingBeaconStateBuilder::::from_deterministic_keypairs( - num_validators, - &spec, - ); - state_builder.build_caches(&spec).unwrap(); - let (state, keypairs) = state_builder.build(); - let op_pool = OperationPool::new(); - - TestContext { - spec, - state, - keypairs, - op_pool, - } - } - - fn proposer_slashing(&self, proposer_index: u64) -> ProposerSlashing { - TestingProposerSlashingBuilder::double_vote::( - ProposerSlashingTestTask::Valid, - proposer_index, - &self.keypairs[proposer_index as usize].sk, - &self.state.fork, - self.state.genesis_validators_root, - &self.spec, - ) - } - - fn attester_slashing(&self, slashed_indices: &[u64]) -> AttesterSlashing { - let signer = |idx: u64, message: &[u8]| { - self.keypairs[idx as usize] - .sk - .sign(Hash256::from_slice(&message)) - }; - TestingAttesterSlashingBuilder::double_vote( - AttesterSlashingTestTask::Valid, - slashed_indices, - signer, - &self.state.fork, - self.state.genesis_validators_root, - &self.spec, - ) - } - - fn attester_slashing_two_indices( - &self, - slashed_indices_1: &[u64], - slashed_indices_2: &[u64], - ) -> AttesterSlashing { - let signer = |idx: u64, message: &[u8]| { - self.keypairs[idx as usize] - .sk - .sign(Hash256::from_slice(&message)) - }; - TestingAttesterSlashingBuilder::double_vote_with_additional_indices( - AttesterSlashingTestTask::Valid, - slashed_indices_1, - Some(slashed_indices_2), - signer, - &self.state.fork, - self.state.genesis_validators_root, - &self.spec, - ) - } - } - /// Insert two slashings for the same proposer and ensure only one is returned. #[test] fn duplicate_proposer_slashing() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); + let harness = get_harness(32); + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); + let proposer_index = 0; - let slashing1 = ctxt.proposer_slashing(proposer_index); + let slashing1 = harness.make_proposer_slashing(proposer_index); + let slashing2 = ProposerSlashing { signed_header_1: slashing1.signed_header_2.clone(), signed_header_2: slashing1.signed_header_1.clone(), }; // Both slashings should be valid and accepted by the pool. - op_pool.insert_proposer_slashing(slashing1.clone().validate(state, spec).unwrap()); - op_pool.insert_proposer_slashing(slashing2.clone().validate(state, spec).unwrap()); + op_pool + .insert_proposer_slashing(slashing1.clone().validate(&state, &harness.spec).unwrap()); + op_pool + .insert_proposer_slashing(slashing2.clone().validate(&state, &harness.spec).unwrap()); // Should only get the second slashing back. - assert_eq!(op_pool.get_slashings(state, spec).0, vec![slashing2]); + assert_eq!(op_pool.get_slashings(&state).0, vec![slashing2]); } // Sanity check on the pruning of proposer slashings #[test] fn prune_proposer_slashing_noop() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); - let slashing = ctxt.proposer_slashing(0); - op_pool.insert_proposer_slashing(slashing.clone().validate(state, spec).unwrap()); - op_pool.prune_proposer_slashings(state); - assert_eq!(op_pool.get_slashings(state, spec).0, vec![slashing]); + let harness = get_harness(32); + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); + + let slashing = harness.make_proposer_slashing(0); + op_pool.insert_proposer_slashing(slashing.clone().validate(&state, &harness.spec).unwrap()); + op_pool.prune_proposer_slashings(&state); + assert_eq!(op_pool.get_slashings(&state).0, vec![slashing]); } // Sanity check on the pruning of attester slashings #[test] fn prune_attester_slashing_noop() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); - let slashing = ctxt.attester_slashing(&[1, 3, 5, 7, 9]); - op_pool - .insert_attester_slashing(slashing.clone().validate(state, spec).unwrap(), state.fork); - op_pool.prune_attester_slashings(state); - assert_eq!(op_pool.get_slashings(state, spec).1, vec![slashing]); + let harness = get_harness(32); + let spec = &harness.spec; + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); + + let slashing = harness.make_attester_slashing(vec![1, 3, 5, 7, 9]); + op_pool.insert_attester_slashing( + slashing.clone().validate(&state, spec).unwrap(), + state.fork(), + ); + op_pool.prune_attester_slashings(&state); + assert_eq!(op_pool.get_slashings(&state).1, vec![slashing]); } // Check that we get maximum coverage for attester slashings (highest qty of validators slashed) #[test] fn simple_max_cover_attester_slashing() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); + let harness = get_harness(32); + let spec = &harness.spec; + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); - let slashing_1 = ctxt.attester_slashing(&[1]); - let slashing_2 = ctxt.attester_slashing(&[2, 3]); - let slashing_3 = ctxt.attester_slashing(&[4, 5, 6]); - let slashing_4 = ctxt.attester_slashing(&[7, 8, 9, 10]); + let slashing_1 = harness.make_attester_slashing(vec![1]); + let slashing_2 = harness.make_attester_slashing(vec![2, 3]); + let slashing_3 = harness.make_attester_slashing(vec![4, 5, 6]); + let slashing_4 = harness.make_attester_slashing(vec![7, 8, 9, 10]); op_pool.insert_attester_slashing( - slashing_1.clone().validate(state, spec).unwrap(), - state.fork, + slashing_1.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_2.clone().validate(state, spec).unwrap(), - state.fork, + slashing_2.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_3.clone().validate(state, spec).unwrap(), - state.fork, + slashing_3.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_4.clone().validate(state, spec).unwrap(), - state.fork, + slashing_4.clone().validate(&state, spec).unwrap(), + state.fork(), ); - let best_slashings = op_pool.get_slashings(state, spec); + let best_slashings = op_pool.get_slashings(&state); assert_eq!(best_slashings.1, vec![slashing_4, slashing_3]); } // Check that we get maximum coverage for attester slashings with overlapping indices #[test] fn overlapping_max_cover_attester_slashing() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); + let harness = get_harness(32); + let spec = &harness.spec; + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); - let slashing_1 = ctxt.attester_slashing(&[1, 2, 3, 4]); - let slashing_2 = ctxt.attester_slashing(&[1, 2, 5]); - let slashing_3 = ctxt.attester_slashing(&[5, 6]); - let slashing_4 = ctxt.attester_slashing(&[6]); + let slashing_1 = harness.make_attester_slashing(vec![1, 2, 3, 4]); + let slashing_2 = harness.make_attester_slashing(vec![1, 2, 5]); + let slashing_3 = harness.make_attester_slashing(vec![5, 6]); + let slashing_4 = harness.make_attester_slashing(vec![6]); op_pool.insert_attester_slashing( - slashing_1.clone().validate(state, spec).unwrap(), - state.fork, + slashing_1.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_2.clone().validate(state, spec).unwrap(), - state.fork, + slashing_2.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_3.clone().validate(state, spec).unwrap(), - state.fork, + slashing_3.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_4.clone().validate(state, spec).unwrap(), - state.fork, + slashing_4.clone().validate(&state, spec).unwrap(), + state.fork(), ); - let best_slashings = op_pool.get_slashings(state, spec); + let best_slashings = op_pool.get_slashings(&state); assert_eq!(best_slashings.1, vec![slashing_1, slashing_3]); } // Max coverage of attester slashings taking into account proposer slashings #[test] fn max_coverage_attester_proposer_slashings() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); + let harness = get_harness(32); + let spec = &harness.spec; + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); - let p_slashing = ctxt.proposer_slashing(1); - let a_slashing_1 = ctxt.attester_slashing(&[1, 2, 3, 4]); - let a_slashing_2 = ctxt.attester_slashing(&[1, 3, 4]); - let a_slashing_3 = ctxt.attester_slashing(&[5, 6]); + let p_slashing = harness.make_proposer_slashing(1); + let a_slashing_1 = harness.make_attester_slashing(vec![1, 2, 3, 4]); + let a_slashing_2 = harness.make_attester_slashing(vec![1, 3, 4]); + let a_slashing_3 = harness.make_attester_slashing(vec![5, 6]); - op_pool.insert_proposer_slashing(p_slashing.clone().validate(state, spec).unwrap()); + op_pool.insert_proposer_slashing(p_slashing.clone().validate(&state, spec).unwrap()); op_pool.insert_attester_slashing( - a_slashing_1.clone().validate(state, spec).unwrap(), - state.fork, + a_slashing_1.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - a_slashing_2.clone().validate(state, spec).unwrap(), - state.fork, + a_slashing_2.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - a_slashing_3.clone().validate(state, spec).unwrap(), - state.fork, + a_slashing_3.clone().validate(&state, spec).unwrap(), + state.fork(), ); - let best_slashings = op_pool.get_slashings(state, spec); + let best_slashings = op_pool.get_slashings(&state); assert_eq!(best_slashings.1, vec![a_slashing_1, a_slashing_3]); } //Max coverage checking that non overlapping indices are still recognized for their value #[test] fn max_coverage_different_indices_set() { - let ctxt = TestContext::new(); - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); + let harness = get_harness(32); + let spec = &harness.spec; + let state = harness.get_current_state(); + let op_pool = OperationPool::::new(); - let slashing_1 = - ctxt.attester_slashing_two_indices(&[1, 2, 3, 4, 5, 6], &[3, 4, 5, 6, 7, 8]); - let slashing_2 = ctxt.attester_slashing(&[5, 6]); - let slashing_3 = ctxt.attester_slashing(&[1, 2, 3]); + let slashing_1 = harness.make_attester_slashing_different_indices( + vec![1, 2, 3, 4, 5, 6], + vec![3, 4, 5, 6, 7, 8], + ); + let slashing_2 = harness.make_attester_slashing(vec![5, 6]); + let slashing_3 = harness.make_attester_slashing(vec![1, 2, 3]); op_pool.insert_attester_slashing( - slashing_1.clone().validate(state, spec).unwrap(), - state.fork, + slashing_1.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_2.clone().validate(state, spec).unwrap(), - state.fork, + slashing_2.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_3.clone().validate(state, spec).unwrap(), - state.fork, + slashing_3.clone().validate(&state, spec).unwrap(), + state.fork(), ); - let best_slashings = op_pool.get_slashings(state, spec); + let best_slashings = op_pool.get_slashings(&state); assert_eq!(best_slashings.1, vec![slashing_1, slashing_3]); } //Max coverage should be affected by the overall effective balances #[test] fn max_coverage_effective_balances() { - let mut ctxt = TestContext::new(); - ctxt.state.validators[1].effective_balance = 17_000_000_000; - ctxt.state.validators[2].effective_balance = 17_000_000_000; - ctxt.state.validators[3].effective_balance = 17_000_000_000; + let harness = get_harness(32); + let spec = &harness.spec; + let mut state = harness.get_current_state(); + let op_pool = OperationPool::::new(); + state.validators_mut()[1].effective_balance = 17_000_000_000; + state.validators_mut()[2].effective_balance = 17_000_000_000; + state.validators_mut()[3].effective_balance = 17_000_000_000; - let (op_pool, state, spec) = (&ctxt.op_pool, &ctxt.state, &ctxt.spec); - - let slashing_1 = ctxt.attester_slashing(&[1, 2, 3]); - let slashing_2 = ctxt.attester_slashing(&[4, 5, 6]); - let slashing_3 = ctxt.attester_slashing(&[7, 8]); + let slashing_1 = harness.make_attester_slashing(vec![1, 2, 3]); + let slashing_2 = harness.make_attester_slashing(vec![4, 5, 6]); + let slashing_3 = harness.make_attester_slashing(vec![7, 8]); op_pool.insert_attester_slashing( - slashing_1.clone().validate(state, spec).unwrap(), - state.fork, + slashing_1.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_2.clone().validate(state, spec).unwrap(), - state.fork, + slashing_2.clone().validate(&state, spec).unwrap(), + state.fork(), ); op_pool.insert_attester_slashing( - slashing_3.clone().validate(state, spec).unwrap(), - state.fork, + slashing_3.clone().validate(&state, spec).unwrap(), + state.fork(), ); - let best_slashings = op_pool.get_slashings(state, spec); + let best_slashings = op_pool.get_slashings(&state); assert_eq!(best_slashings.1, vec![slashing_2, slashing_3]); } } diff --git a/beacon_node/src/cli.rs b/beacon_node/src/cli.rs index 30d4245a4d..e6f1673964 100644 --- a/beacon_node/src/cli.rs +++ b/beacon_node/src/cli.rs @@ -198,6 +198,12 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> { address of this server (e.g., http://localhost:5052).") .takes_value(true), ) + .arg( + Arg::with_name("http-disable-legacy-spec") + .long("http-disable-legacy-spec") + .help("Disable serving of legacy data on the /config/spec endpoint. May be \ + disabled by default in a future release.") + ) /* Prometheus metrics HTTP server related arguments */ .arg( Arg::with_name("metrics") diff --git a/beacon_node/src/config.rs b/beacon_node/src/config.rs index b32a0cec15..6677e6a090 100644 --- a/beacon_node/src/config.rs +++ b/beacon_node/src/config.rs @@ -107,6 +107,10 @@ pub fn get_config( client_config.http_api.allow_origin = Some(allow_origin.to_string()); } + if cli_args.is_present("http-disable-legacy-spec") { + client_config.http_api.serve_legacy_spec = false; + } + /* * Prometheus metrics HTTP server */ diff --git a/beacon_node/store/Cargo.toml b/beacon_node/store/Cargo.toml index 5882987741..19a1944a6b 100644 --- a/beacon_node/store/Cargo.toml +++ b/beacon_node/store/Cargo.toml @@ -4,20 +4,15 @@ version = "0.2.0" authors = ["Paul Hauner "] edition = "2018" -[[bench]] -name = "benches" -harness = false - [dev-dependencies] tempfile = "3.1.0" -criterion = "0.3.3" -rayon = "1.4.1" +beacon_chain = {path = "../beacon_chain"} [dependencies] db-key = "0.0.5" leveldb = { version = "0.8.6", default-features = false } parking_lot = "0.11.0" -itertools = "0.9.0" +itertools = "0.10.0" eth2_ssz = "0.1.2" eth2_ssz_derive = "0.1.0" tree_hash = "0.1.1" diff --git a/beacon_node/store/benches/benches.rs b/beacon_node/store/benches/benches.rs deleted file mode 100644 index b1721fa056..0000000000 --- a/beacon_node/store/benches/benches.rs +++ /dev/null @@ -1,115 +0,0 @@ -#![allow(deprecated)] - -use criterion::Criterion; -use criterion::{black_box, criterion_group, criterion_main, Benchmark}; -use rayon::prelude::*; -use ssz::{Decode, Encode}; -use std::convert::TryInto; -use store::BeaconStateStorageContainer; -use types::{ - test_utils::generate_deterministic_keypair, BeaconState, Epoch, Eth1Data, EthSpec, Hash256, - MainnetEthSpec, Validator, -}; - -fn get_state(validator_count: usize) -> BeaconState { - let spec = &E::default_spec(); - let eth1_data = Eth1Data { - deposit_root: Hash256::zero(), - deposit_count: 0, - block_hash: Hash256::zero(), - }; - - let mut state = BeaconState::new(0, eth1_data, spec); - - for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); - } - - state.validators = (0..validator_count) - .collect::>() - .par_iter() - .map(|&i| Validator { - pubkey: generate_deterministic_keypair(i).pk.into(), - withdrawal_credentials: Hash256::from_low_u64_le(i as u64), - effective_balance: spec.max_effective_balance, - slashed: false, - activation_eligibility_epoch: Epoch::new(0), - activation_epoch: Epoch::new(0), - exit_epoch: Epoch::from(u64::max_value()), - withdrawable_epoch: Epoch::from(u64::max_value()), - }) - .collect::>() - .into(); - - state.build_all_caches(spec).expect("should build caches"); - - state -} - -fn all_benches(c: &mut Criterion) { - let validator_count = 16_384; - let state = get_state::(validator_count); - let storage_container = BeaconStateStorageContainer::new(&state); - let state_bytes = storage_container.as_ssz_bytes(); - - let inner_state = state.clone(); - c.bench( - &format!("{}_validators", validator_count), - Benchmark::new("encode/beacon_state", move |b| { - b.iter_batched_ref( - || inner_state.clone(), - |state| black_box(BeaconStateStorageContainer::new(state).as_ssz_bytes()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let inner_state = state.clone(); - c.bench( - &format!("{}_validators", validator_count), - Benchmark::new("encode/beacon_state/tree_hash_cache", move |b| { - b.iter_batched_ref( - || inner_state.tree_hash_cache.clone(), - |tree_hash_cache| black_box(tree_hash_cache.as_ssz_bytes()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let inner_state = state; - c.bench( - &format!("{}_validators", validator_count), - Benchmark::new("encode/beacon_state/committee_cache[0]", move |b| { - b.iter_batched_ref( - || inner_state.committee_caches[0].clone(), - |committee_cache| black_box(committee_cache.as_ssz_bytes()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - c.bench( - &format!("{}_validators", validator_count), - Benchmark::new("decode/beacon_state", move |b| { - b.iter_batched_ref( - || state_bytes.clone(), - |bytes| { - let state: BeaconState = - BeaconStateStorageContainer::from_ssz_bytes(&bytes) - .expect("should decode") - .try_into() - .expect("should convert into state"); - black_box(state) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); -} - -criterion_group!(benches, all_benches,); -criterion_main!(benches); diff --git a/beacon_node/store/examples/ssz_encode_state_container.rs b/beacon_node/store/examples/ssz_encode_state_container.rs deleted file mode 100644 index d44f7b4e9e..0000000000 --- a/beacon_node/store/examples/ssz_encode_state_container.rs +++ /dev/null @@ -1,62 +0,0 @@ -//! These examples only really exist so we can use them for flamegraph. If they get annoying to -//! maintain, feel free to delete. - -use rayon::prelude::*; -use ssz::{Decode, Encode}; -use std::convert::TryInto; -use store::BeaconStateStorageContainer; -use types::{ - test_utils::generate_deterministic_keypair, BeaconState, Epoch, Eth1Data, EthSpec, Hash256, - MainnetEthSpec, Validator, -}; - -type E = MainnetEthSpec; - -fn get_state(validator_count: usize) -> BeaconState { - let spec = &E::default_spec(); - let eth1_data = Eth1Data { - deposit_root: Hash256::zero(), - deposit_count: 0, - block_hash: Hash256::zero(), - }; - - let mut state = BeaconState::new(0, eth1_data, spec); - - for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); - } - - state.validators = (0..validator_count) - .collect::>() - .par_iter() - .map(|&i| Validator { - pubkey: generate_deterministic_keypair(i).pk.into(), - withdrawal_credentials: Hash256::from_low_u64_le(i as u64), - effective_balance: spec.max_effective_balance, - slashed: false, - activation_eligibility_epoch: Epoch::new(0), - activation_epoch: Epoch::new(0), - exit_epoch: Epoch::from(u64::max_value()), - withdrawable_epoch: Epoch::from(u64::max_value()), - }) - .collect::>() - .into(); - - state.build_all_caches(spec).expect("should build caches"); - - state -} - -fn main() { - let validator_count = 1_024; - let state = get_state::(validator_count); - let storage_container = BeaconStateStorageContainer::new(&state); - - for _ in 0..1024 { - let container_bytes = storage_container.as_ssz_bytes(); - let _: BeaconState = BeaconStateStorageContainer::from_ssz_bytes(&container_bytes) - .expect("should decode") - .try_into() - .expect("should convert into state"); - } -} diff --git a/beacon_node/store/src/chunked_vector.rs b/beacon_node/store/src/chunked_vector.rs index 9a26304a0b..5958d6b624 100644 --- a/beacon_node/store/src/chunked_vector.rs +++ b/beacon_node/store/src/chunked_vector.rs @@ -226,12 +226,12 @@ pub trait Field: Copy { /// Extract the genesis value for a fixed length field from an /// - /// Will only return a correct value if `slot_needs_genesis_value(state.slot, spec) == true`. + /// Will only return a correct value if `slot_needs_genesis_value(state.slot(), spec) == true`. fn extract_genesis_value( state: &BeaconState, spec: &ChainSpec, ) -> Result { - let (_, end_vindex) = Self::start_and_end_vindex(state.slot, spec); + let (_, end_vindex) = Self::start_and_end_vindex(state.slot(), spec); match Self::update_pattern(spec) { // Genesis value is guaranteed to exist at `end_vindex`, as it won't yet have been // updated @@ -295,7 +295,7 @@ field!( T::SlotsPerHistoricalRoot, DBColumn::BeaconBlockRoots, |_| OncePerNSlots { n: 1 }, - |state: &BeaconState<_>, index, _| safe_modulo_index(&state.block_roots, index) + |state: &BeaconState<_>, index, _| safe_modulo_index(state.block_roots(), index) ); field!( @@ -305,7 +305,7 @@ field!( T::SlotsPerHistoricalRoot, DBColumn::BeaconStateRoots, |_| OncePerNSlots { n: 1 }, - |state: &BeaconState<_>, index, _| safe_modulo_index(&state.state_roots, index) + |state: &BeaconState<_>, index, _| safe_modulo_index(state.state_roots(), index) ); field!( @@ -317,7 +317,7 @@ field!( |_| OncePerNSlots { n: T::SlotsPerHistoricalRoot::to_u64() }, - |state: &BeaconState<_>, index, _| safe_modulo_index(&state.historical_roots, index) + |state: &BeaconState<_>, index, _| safe_modulo_index(state.historical_roots(), index) ); field!( @@ -327,7 +327,7 @@ field!( T::EpochsPerHistoricalVector, DBColumn::BeaconRandaoMixes, |_| OncePerEpoch { lag: 1 }, - |state: &BeaconState<_>, index, _| safe_modulo_index(&state.randao_mixes, index) + |state: &BeaconState<_>, index, _| safe_modulo_index(state.randao_mixes(), index) ); pub fn store_updated_vector, E: EthSpec, S: KeyValueStore>( @@ -338,12 +338,12 @@ pub fn store_updated_vector, E: EthSpec, S: KeyValueStore>( ops: &mut Vec, ) -> Result<(), Error> { let chunk_size = F::chunk_size(); - let (start_vindex, end_vindex) = F::start_and_end_vindex(state.slot, spec); + let (start_vindex, end_vindex) = F::start_and_end_vindex(state.slot(), spec); let start_cindex = start_vindex / chunk_size; let end_cindex = end_vindex / chunk_size; // Store the genesis value if we have access to it, and it hasn't been stored already. - if F::slot_needs_genesis_value(state.slot, spec) { + if F::slot_needs_genesis_value(state.slot(), spec) { let genesis_value = F::extract_genesis_value(state, spec)?; F::check_and_store_genesis_value(store, genesis_value, ops)?; } diff --git a/beacon_node/store/src/forwards_iter.rs b/beacon_node/store/src/forwards_iter.rs index cec57e64ec..5a77863d54 100644 --- a/beacon_node/store/src/forwards_iter.rs +++ b/beacon_node/store/src/forwards_iter.rs @@ -71,7 +71,7 @@ impl SimpleForwardsBlockRootsIterator { ) -> Result { // Iterate backwards from the end state, stopping at the start slot. let values = process_results( - std::iter::once(Ok((end_block_root, end_state.slot))) + std::iter::once(Ok((end_block_root, end_state.slot()))) .chain(BlockRootsIterator::owned(store, end_state)), |iter| { iter.take_while(|(_, slot)| *slot >= start_slot) @@ -237,7 +237,7 @@ impl SimpleForwardsStateRootsIterator { ) -> Result { // Iterate backwards from the end state, stopping at the start slot. let values = process_results( - std::iter::once(Ok((end_state_root, end_state.slot))) + std::iter::once(Ok((end_state_root, end_state.slot()))) .chain(StateRootsIterator::owned(store, end_state)), |iter| { iter.take_while(|(_, slot)| *slot >= start_slot) diff --git a/beacon_node/store/src/hot_cold_store.rs b/beacon_node/store/src/hot_cold_store.rs index 6489301c9d..3840ade4f2 100644 --- a/beacon_node/store/src/hot_cold_store.rs +++ b/beacon_node/store/src/hot_cold_store.rs @@ -3,7 +3,10 @@ use crate::chunked_vector::{ }; use crate::config::{OnDiskStoreConfig, StoreConfig}; use crate::forwards_iter::{HybridForwardsBlockRootsIterator, HybridForwardsStateRootsIterator}; -use crate::impls::beacon_state::{get_full_state, store_full_state}; +use crate::impls::{ + beacon_block_as_kv_store_op, + beacon_state::{get_full_state, store_full_state}, +}; use crate::iter::{ParentRootBlockIterator, StateRootsIterator}; use crate::leveldb_store::BytesKey; use crate::leveldb_store::LevelDB; @@ -240,7 +243,8 @@ impl, Cold: ItemStore> HotColdDB block: SignedBeaconBlock, ) -> Result<(), Error> { // Store on disk. - self.hot_db.put(block_root, &block)?; + self.hot_db + .do_atomically(vec![beacon_block_as_kv_store_op(block_root, &block)])?; // Update cache. self.block_cache.lock().put(*block_root, block); @@ -259,20 +263,34 @@ impl, Cold: ItemStore> HotColdDB } // Fetch from database. - match self.hot_db.get::>(block_root)? { - Some(block) => { + match self + .hot_db + .get_bytes(DBColumn::BeaconBlock.into(), block_root.as_bytes())? + { + Some(block_bytes) => { + // Deserialize. + let block = SignedBeaconBlock::from_ssz_bytes(&block_bytes, &self.spec)?; + // Add to cache. self.block_cache.lock().put(*block_root, block.clone()); + Ok(Some(block)) } None => Ok(None), } } + /// Determine whether a block exists in the database. + pub fn block_exists(&self, block_root: &Hash256) -> Result { + self.hot_db + .key_exists(DBColumn::BeaconBlock.into(), block_root.as_bytes()) + } + /// Delete a block from the store and the block cache. pub fn delete_block(&self, block_root: &Hash256) -> Result<(), Error> { self.block_cache.lock().pop(block_root); - self.hot_db.delete::>(block_root) + self.hot_db + .key_delete(DBColumn::BeaconBlock.into(), block_root.as_bytes()) } pub fn put_state_summary( @@ -286,7 +304,7 @@ impl, Cold: ItemStore> HotColdDB /// Store a state in the store. pub fn put_state(&self, state_root: &Hash256, state: &BeaconState) -> Result<(), Error> { let mut ops: Vec = Vec::new(); - if state.slot < self.get_split_slot() { + if state.slot() < self.get_split_slot() { self.store_cold_state(state_root, &state, &mut ops)?; self.cold_db.do_atomically(ops) } else { @@ -456,7 +474,7 @@ impl, Cold: ItemStore> HotColdDB for op in batch { match op { StoreOp::PutBlock(block_root, block) => { - key_value_batch.push(block.as_kv_store_op(*block_root)); + key_value_batch.push(beacon_block_as_kv_store_op(block_root, block)); } StoreOp::PutState(state_root, state) => { @@ -538,11 +556,11 @@ impl, Cold: ItemStore> HotColdDB ops: &mut Vec, ) -> Result<(), Error> { // On the epoch boundary, store the full state. - if state.slot % E::slots_per_epoch() == 0 { + if state.slot() % E::slots_per_epoch() == 0 { trace!( self.log, "Storing full state on epoch boundary"; - "slot" => state.slot.as_u64(), + "slot" => state.slot().as_u64(), "state_root" => format!("{:?}", state_root) ); store_full_state(state_root, &state, ops)?; @@ -580,9 +598,10 @@ impl, Cold: ItemStore> HotColdDB epoch_boundary_state_root, }) = self.load_hot_state_summary(state_root)? { - let boundary_state = get_full_state(&self.hot_db, &epoch_boundary_state_root)?.ok_or( - HotColdDBError::MissingEpochBoundaryState(epoch_boundary_state_root), - )?; + let boundary_state = + get_full_state(&self.hot_db, &epoch_boundary_state_root, &self.spec)?.ok_or( + HotColdDBError::MissingEpochBoundaryState(epoch_boundary_state_root), + )?; // Optimization to avoid even *thinking* about replaying blocks if we're already // on an epoch boundary. @@ -590,7 +609,7 @@ impl, Cold: ItemStore> HotColdDB boundary_state } else { let blocks = - self.load_blocks_to_replay(boundary_state.slot, slot, latest_block_root)?; + self.load_blocks_to_replay(boundary_state.slot(), slot, latest_block_root)?; self.replay_blocks(boundary_state, blocks, slot, block_replay)? }; @@ -610,11 +629,11 @@ impl, Cold: ItemStore> HotColdDB state: &BeaconState, ops: &mut Vec, ) -> Result<(), Error> { - if state.slot % self.config.slots_per_restore_point != 0 { + if state.slot() % self.config.slots_per_restore_point != 0 { warn!( self.log, "Not storing non-restore point state in freezer"; - "slot" => state.slot.as_u64(), + "slot" => state.slot().as_u64(), "state_root" => format!("{:?}", state_root) ); return Ok(()); @@ -623,7 +642,7 @@ impl, Cold: ItemStore> HotColdDB trace!( self.log, "Creating restore point"; - "slot" => state.slot, + "slot" => state.slot(), "state_root" => format!("{:?}", state_root) ); @@ -640,7 +659,7 @@ impl, Cold: ItemStore> HotColdDB store_updated_vector(RandaoMixes, db, state, &self.spec, ops)?; // 3. Store restore point. - let restore_point_index = state.slot.as_u64() / self.config.slots_per_restore_point; + let restore_point_index = state.slot().as_u64() / self.config.slots_per_restore_point; self.store_restore_point_hash(restore_point_index, *state_root, ops); Ok(()) @@ -670,10 +689,12 @@ impl, Cold: ItemStore> HotColdDB /// Load a restore point state by its `state_root`. fn load_restore_point(&self, state_root: &Hash256) -> Result, Error> { - let mut partial_state: PartialBeaconState = self + let partial_state_bytes = self .cold_db - .get(state_root)? + .get_bytes(DBColumn::BeaconState.into(), state_root.as_bytes())? .ok_or_else(|| HotColdDBError::MissingRestorePoint(*state_root))?; + let mut partial_state: PartialBeaconState = + PartialBeaconState::from_ssz_bytes(&partial_state_bytes, &self.spec)?; // Fill in the fields of the partial state. partial_state.load_block_roots(&self.cold_db, &self.spec)?; @@ -717,7 +738,7 @@ impl, Cold: ItemStore> HotColdDB // 2. Load the blocks from the high restore point back to the low restore point. let blocks = self.load_blocks_to_replay( - low_restore_point.slot, + low_restore_point.slot(), slot, self.get_high_restore_point_block_root(&high_restore_point, slot)?, )?; @@ -759,14 +780,14 @@ impl, Cold: ItemStore> HotColdDB .filter(|result| { result .as_ref() - .map_or(true, |block| block.message.slot <= end_slot) + .map_or(true, |block| block.slot() <= end_slot) }) // Include the block at the start slot (if any). Whilst it doesn't need to be applied // to the state, it contains a potentially useful state root. .take_while(|result| { result .as_ref() - .map_or(true, |block| block.message.slot >= start_slot) + .map_or(true, |block| block.slot() >= start_slot) }) .collect::>()?; blocks.reverse(); @@ -786,18 +807,36 @@ impl, Cold: ItemStore> HotColdDB ) -> Result, Error> { if block_replay == BlockReplay::InconsistentStateRoots { for i in 0..blocks.len() { - blocks[i].message.state_root = Hash256::zero(); + let prev_block_root = if i > 0 { + blocks[i - 1].canonical_root() + } else { + // Not read. + Hash256::zero() + }; + + let (state_root, parent_root) = match &mut blocks[i] { + SignedBeaconBlock::Base(block) => ( + &mut block.message.state_root, + &mut block.message.parent_root, + ), + SignedBeaconBlock::Altair(block) => ( + &mut block.message.state_root, + &mut block.message.parent_root, + ), + }; + + *state_root = Hash256::zero(); if i > 0 { - blocks[i].message.parent_root = blocks[i - 1].canonical_root() + *parent_root = prev_block_root; } } } let state_root_from_prev_block = |i: usize, state: &BeaconState| { if i > 0 { - let prev_block = &blocks[i - 1].message; - if prev_block.slot == state.slot { - Some(prev_block.state_root) + let prev_block = blocks[i - 1].message(); + if prev_block.slot() == state.slot() { + Some(prev_block.state_root()) } else { None } @@ -807,11 +846,11 @@ impl, Cold: ItemStore> HotColdDB }; for (i, block) in blocks.iter().enumerate() { - if block.message.slot <= state.slot { + if block.slot() <= state.slot() { continue; } - while state.slot < block.message.slot { + while state.slot() < block.slot() { let state_root = match block_replay { BlockReplay::Accurate => state_root_from_prev_block(i, &state), BlockReplay::InconsistentStateRoots => Some(Hash256::zero()), @@ -830,7 +869,7 @@ impl, Cold: ItemStore> HotColdDB .map_err(HotColdDBError::BlockReplayBlockError)?; } - while state.slot < target_slot { + while state.slot() < target_slot { let state_root = match block_replay { BlockReplay::Accurate => state_root_from_prev_block(blocks.len(), &state), BlockReplay::InconsistentStateRoots => Some(Hash256::zero()), @@ -1011,7 +1050,7 @@ pub fn migrate_database, Cold: ItemStore>( debug!( store.log, "Freezer migration started"; - "slot" => frozen_head.slot + "slot" => frozen_head.slot() ); // 0. Check that the migration is sensible. @@ -1019,16 +1058,16 @@ pub fn migrate_database, Cold: ItemStore>( // boundary (in order for the hot state summary scheme to work). let current_split_slot = store.split.read().slot; - if frozen_head.slot < current_split_slot { + if frozen_head.slot() < current_split_slot { return Err(HotColdDBError::FreezeSlotError { current_split_slot, - proposed_split_slot: frozen_head.slot, + proposed_split_slot: frozen_head.slot(), } .into()); } - if frozen_head.slot % E::slots_per_epoch() != 0 { - return Err(HotColdDBError::FreezeSlotUnaligned(frozen_head.slot).into()); + if frozen_head.slot() % E::slots_per_epoch() != 0 { + return Err(HotColdDBError::FreezeSlotUnaligned(frozen_head.slot()).into()); } let mut hot_db_ops: Vec> = Vec::new(); @@ -1045,7 +1084,7 @@ pub fn migrate_database, Cold: ItemStore>( let mut cold_db_ops: Vec = Vec::new(); if slot % store.config.slots_per_restore_point == 0 { - let state: BeaconState = get_full_state(&store.hot_db, &state_root)? + let state: BeaconState = get_full_state(&store.hot_db, &state_root, &store.spec)? .ok_or(HotColdDBError::MissingStateToFreeze(state_root))?; store.store_cold_state(&state_root, &state, &mut cold_db_ops)?; @@ -1102,7 +1141,7 @@ pub fn migrate_database, Cold: ItemStore>( // Before updating the in-memory split value, we flush it to disk first, so that should the // OS process die at this point, we pick up from the right place after a restart. let split = Split { - slot: frozen_head.slot, + slot: frozen_head.slot(), state_root: frozen_head_root, }; store.hot_db.put_sync(&SPLIT_KEY, &split)?; @@ -1119,7 +1158,7 @@ pub fn migrate_database, Cold: ItemStore>( debug!( store.log, "Freezer migration complete"; - "slot" => frozen_head.slot + "slot" => frozen_head.slot() ); Ok(()) @@ -1176,8 +1215,8 @@ impl HotStateSummary { // Fill in the state root on the latest block header if necessary (this happens on all // slots where there isn't a skip). let latest_block_root = state.get_latest_block_root(*state_root); - let epoch_boundary_slot = state.slot / E::slots_per_epoch() * E::slots_per_epoch(); - let epoch_boundary_state_root = if epoch_boundary_slot == state.slot { + let epoch_boundary_slot = state.slot() / E::slots_per_epoch() * E::slots_per_epoch(); + let epoch_boundary_state_root = if epoch_boundary_slot == state.slot() { *state_root } else { *state @@ -1186,7 +1225,7 @@ impl HotStateSummary { }; Ok(HotStateSummary { - slot: state.slot, + slot: state.slot(), latest_block_root, epoch_boundary_state_root, }) diff --git a/beacon_node/store/src/impls.rs b/beacon_node/store/src/impls.rs index b89bf1d402..2321caf2b1 100644 --- a/beacon_node/store/src/impls.rs +++ b/beacon_node/store/src/impls.rs @@ -1,35 +1,15 @@ use crate::*; -use ssz::{Decode, Encode}; +use ssz::Encode; pub mod beacon_state; -pub mod partial_beacon_state; -impl StoreItem for SignedBeaconBlock { - fn db_column() -> DBColumn { - DBColumn::BeaconBlock - } - - fn as_store_bytes(&self) -> Vec { - let timer = metrics::start_timer(&metrics::BEACON_BLOCK_WRITE_TIMES); - let bytes = self.as_ssz_bytes(); - - metrics::stop_timer(timer); - metrics::inc_counter(&metrics::BEACON_BLOCK_WRITE_COUNT); - metrics::inc_counter_by(&metrics::BEACON_BLOCK_WRITE_BYTES, bytes.len() as u64); - - bytes - } - - fn from_store_bytes(bytes: &[u8]) -> Result { - let timer = metrics::start_timer(&metrics::BEACON_BLOCK_READ_TIMES); - - let len = bytes.len(); - let result = Self::from_ssz_bytes(bytes).map_err(Into::into); - - metrics::stop_timer(timer); - metrics::inc_counter(&metrics::BEACON_BLOCK_READ_COUNT); - metrics::inc_counter_by(&metrics::BEACON_BLOCK_READ_BYTES, len as u64); - - result - } +/// Prepare a signed beacon block for storage in the database. +#[must_use] +pub fn beacon_block_as_kv_store_op( + key: &Hash256, + block: &SignedBeaconBlock, +) -> KeyValueStoreOp { + // FIXME(altair): re-add block write/overhead metrics, or remove them + let db_key = get_key_for_col(DBColumn::BeaconBlock.into(), key.as_bytes()); + KeyValueStoreOp::PutKeyValue(db_key, block.as_ssz_bytes()) } diff --git a/beacon_node/store/src/impls/beacon_state.rs b/beacon_node/store/src/impls/beacon_state.rs index 175095fc8a..88d1d2d7a1 100644 --- a/beacon_node/store/src/impls/beacon_state.rs +++ b/beacon_node/store/src/impls/beacon_state.rs @@ -1,6 +1,6 @@ use crate::*; -use ssz::{Decode, DecodeError, Encode}; -use ssz_derive::{Decode, Encode}; +use ssz::{DecodeError, Encode}; +use ssz_derive::Encode; use std::convert::TryInto; use types::beacon_state::{CloneConfig, CommitteeCache, CACHED_EPOCHS}; @@ -23,13 +23,14 @@ pub fn store_full_state( pub fn get_full_state, E: EthSpec>( db: &KV, state_root: &Hash256, + spec: &ChainSpec, ) -> Result>, Error> { let total_timer = metrics::start_timer(&metrics::BEACON_STATE_READ_TIMES); match db.get_bytes(DBColumn::BeaconState.into(), state_root.as_bytes())? { Some(bytes) => { let overhead_timer = metrics::start_timer(&metrics::BEACON_STATE_READ_OVERHEAD_TIMES); - let container = StorageContainer::from_ssz_bytes(&bytes)?; + let container = StorageContainer::from_ssz_bytes(&bytes, spec)?; metrics::stop_timer(overhead_timer); metrics::stop_timer(total_timer); @@ -44,7 +45,7 @@ pub fn get_full_state, E: EthSpec>( /// A container for storing `BeaconState` components. // TODO: would be more space efficient with the caches stored separately and referenced by hash -#[derive(Encode, Decode)] +#[derive(Encode)] pub struct StorageContainer { state: BeaconState, committee_caches: Vec, @@ -55,9 +56,28 @@ impl StorageContainer { pub fn new(state: &BeaconState) -> Self { Self { state: state.clone_with(CloneConfig::none()), - committee_caches: state.committee_caches.to_vec(), + committee_caches: state.committee_caches().to_vec(), } } + + pub fn from_ssz_bytes(bytes: &[u8], spec: &ChainSpec) -> Result { + // We need to use the slot-switching `from_ssz_bytes` of `BeaconState`, which doesn't + // compose with the other SSZ utils, so we duplicate some parts of `ssz_derive` here. + let mut builder = ssz::SszDecoderBuilder::new(bytes); + + builder.register_anonymous_variable_length_item()?; + builder.register_type::>()?; + + let mut decoder = builder.build()?; + + let state = decoder.decode_next_with(|bytes| BeaconState::from_ssz_bytes(bytes, spec))?; + let committee_caches = decoder.decode_next()?; + + Ok(Self { + state, + committee_caches, + }) + } } impl TryInto> for StorageContainer { @@ -73,7 +93,7 @@ impl TryInto> for StorageContainer { ))); }; - state.committee_caches[i] = self.committee_caches.remove(i); + state.committee_caches_mut()[i] = self.committee_caches.remove(i); } Ok(state) diff --git a/beacon_node/store/src/impls/partial_beacon_state.rs b/beacon_node/store/src/impls/partial_beacon_state.rs deleted file mode 100644 index c3c284314b..0000000000 --- a/beacon_node/store/src/impls/partial_beacon_state.rs +++ /dev/null @@ -1,16 +0,0 @@ -use crate::*; -use ssz::{Decode, Encode}; - -impl StoreItem for PartialBeaconState { - fn db_column() -> DBColumn { - DBColumn::BeaconState - } - - fn as_store_bytes(&self) -> Vec { - self.as_ssz_bytes() - } - - fn from_store_bytes(bytes: &[u8]) -> Result { - Ok(Self::from_ssz_bytes(bytes)?) - } -} diff --git a/beacon_node/store/src/iter.rs b/beacon_node/store/src/iter.rs index 54b1f5df69..014565cb2b 100644 --- a/beacon_node/store/src/iter.rs +++ b/beacon_node/store/src/iter.rs @@ -27,7 +27,7 @@ impl<'a, E: EthSpec, Hot: ItemStore, Cold: ItemStore> store: Arc>, ) -> Option> { let state = store - .get_state(&self.message.state_root, Some(self.message.slot)) + .get_state(&self.message().state_root(), Some(self.slot())) .ok()??; Some(BlockRootsIterator::owned(store, state)) @@ -161,7 +161,7 @@ impl<'a, T: EthSpec, Hot: ItemStore, Cold: ItemStore> RootsIterator<'a, T, pub fn new(store: Arc>, beacon_state: &'a BeaconState) -> Self { Self { store, - slot: beacon_state.slot, + slot: beacon_state.slot(), beacon_state: Cow::Borrowed(beacon_state), } } @@ -169,7 +169,7 @@ impl<'a, T: EthSpec, Hot: ItemStore, Cold: ItemStore> RootsIterator<'a, T, pub fn owned(store: Arc>, beacon_state: BeaconState) -> Self { Self { store, - slot: beacon_state.slot, + slot: beacon_state.slot(), beacon_state: Cow::Owned(beacon_state), } } @@ -188,7 +188,7 @@ impl<'a, T: EthSpec, Hot: ItemStore, Cold: ItemStore> RootsIterator<'a, T, } fn do_next(&mut self) -> Result, Error> { - if self.slot == 0 || self.slot > self.beacon_state.slot { + if self.slot == 0 || self.slot > self.beacon_state.slot() { return Ok(None); } @@ -257,7 +257,7 @@ impl<'a, E: EthSpec, Hot: ItemStore, Cold: ItemStore> .store .get_block(&block_root)? .ok_or(Error::BlockNotFound(block_root))?; - self.next_block_root = block.message.parent_root; + self.next_block_root = block.message().parent_root(); Ok(Some((block_root, block))) } } @@ -323,7 +323,7 @@ fn next_historical_root_backtrack_state, Cold: Ite // a restore point slot (thus avoiding replaying blocks). In the case where we're // not frozen, this just means we might not jump back by the maximum amount on // our first jump (i.e. at most 1 extra state load). - let new_state_slot = slot_of_prev_restore_point::(current_state.slot); + let new_state_slot = slot_of_prev_restore_point::(current_state.slot()); let new_state_root = current_state.get_state_root(new_state_slot)?; Ok(store .get_state(new_state_root, Some(new_state_slot))? @@ -339,46 +339,50 @@ fn slot_of_prev_restore_point(current_slot: Slot) -> Slot { #[cfg(test)] mod test { use super::*; - use crate::config::StoreConfig; use crate::HotColdDB; + use crate::StoreConfig as Config; + use beacon_chain::store::StoreConfig; + use beacon_chain::test_utils::BeaconChainHarness; + use beacon_chain::types::{ChainSpec, Keypair, MainnetEthSpec}; use sloggers::{null::NullLoggerBuilder, Build}; - use types::{test_utils::TestingBeaconStateBuilder, ChainSpec, Keypair, MainnetEthSpec}; fn get_state() -> BeaconState { - let builder = TestingBeaconStateBuilder::from_single_keypair( - 0, - &Keypair::random(), - &T::default_spec(), + let harness = BeaconChainHarness::new_with_store_config( + T::default(), + None, + vec![Keypair::random()], + StoreConfig::default(), ); - let (state, _keypairs) = builder.build(); - state + harness.advance_slot(); + harness.get_current_state() } #[test] fn block_root_iter() { let log = NullLoggerBuilder.build().unwrap(); let store = Arc::new( - HotColdDB::open_ephemeral(StoreConfig::default(), ChainSpec::minimal(), log).unwrap(), + HotColdDB::open_ephemeral(Config::default(), ChainSpec::minimal(), log).unwrap(), ); let slots_per_historical_root = MainnetEthSpec::slots_per_historical_root(); let mut state_a: BeaconState = get_state(); let mut state_b: BeaconState = get_state(); - state_a.slot = Slot::from(slots_per_historical_root); - state_b.slot = Slot::from(slots_per_historical_root * 2); + *state_a.slot_mut() = Slot::from(slots_per_historical_root); + *state_b.slot_mut() = Slot::from(slots_per_historical_root * 2); let mut hashes = (0..).map(Hash256::from_low_u64_be); - - for root in &mut state_a.block_roots[..] { - *root = hashes.next().unwrap() + let roots_a = state_a.block_roots_mut(); + for i in 0..roots_a.len() { + roots_a[i] = hashes.next().unwrap() } - for root in &mut state_b.block_roots[..] { - *root = hashes.next().unwrap() + let roots_b = state_b.block_roots_mut(); + for i in 0..roots_b.len() { + roots_b[i] = hashes.next().unwrap() } let state_a_root = hashes.next().unwrap(); - state_b.state_roots[0] = state_a_root; + state_b.state_roots_mut()[0] = state_a_root; store.put_state(&state_a_root, &state_a).unwrap(); let iter = BlockRootsIterator::new(store, &state_b); @@ -405,15 +409,15 @@ mod test { fn state_root_iter() { let log = NullLoggerBuilder.build().unwrap(); let store = Arc::new( - HotColdDB::open_ephemeral(StoreConfig::default(), ChainSpec::minimal(), log).unwrap(), + HotColdDB::open_ephemeral(Config::default(), ChainSpec::minimal(), log).unwrap(), ); let slots_per_historical_root = MainnetEthSpec::slots_per_historical_root(); let mut state_a: BeaconState = get_state(); let mut state_b: BeaconState = get_state(); - state_a.slot = Slot::from(slots_per_historical_root); - state_b.slot = Slot::from(slots_per_historical_root * 2); + *state_a.slot_mut() = Slot::from(slots_per_historical_root); + *state_b.slot_mut() = Slot::from(slots_per_historical_root * 2); let mut hashes = (0..).map(Hash256::from_low_u64_be); diff --git a/beacon_node/store/src/partial_beacon_state.rs b/beacon_node/store/src/partial_beacon_state.rs index e2d6745863..a6cd02bbc3 100644 --- a/beacon_node/store/src/partial_beacon_state.rs +++ b/beacon_node/store/src/partial_beacon_state.rs @@ -2,17 +2,21 @@ use crate::chunked_vector::{ load_variable_list_from_db, load_vector_from_db, BlockRoots, HistoricalRoots, RandaoMixes, StateRoots, }; -use crate::{Error, KeyValueStore}; +use crate::{get_key_for_col, DBColumn, Error, KeyValueStore, KeyValueStoreOp}; +use ssz::{Decode, DecodeError, Encode}; use ssz_derive::{Decode, Encode}; use std::convert::TryInto; +use types::superstruct; use types::*; /// Lightweight variant of the `BeaconState` that is stored in the database. /// /// Utilises lazy-loading from separate storage for its vector fields. -/// -/// Spec v0.12.1 -#[derive(Debug, PartialEq, Clone, Encode, Decode)] +#[superstruct( + variants(Base, Altair), + variant_attributes(derive(Debug, PartialEq, Clone, Encode, Decode)) +)] +#[derive(Debug, PartialEq, Clone, Encode)] pub struct PartialBeaconState where T: EthSpec, @@ -20,6 +24,7 @@ where // Versioning pub genesis_time: u64, pub genesis_validators_root: Hash256, + #[superstruct(getter(copy))] pub slot: Slot, pub fork: Fork, @@ -56,71 +61,152 @@ where // Slashings slashings: FixedVector, - // Attestations + // Attestations (genesis fork only) + #[superstruct(only(Base))] pub previous_epoch_attestations: VariableList, T::MaxPendingAttestations>, + #[superstruct(only(Base))] pub current_epoch_attestations: VariableList, T::MaxPendingAttestations>, + // Participation (Altair and later) + #[superstruct(only(Altair))] + pub previous_epoch_participation: VariableList, + #[superstruct(only(Altair))] + pub current_epoch_participation: VariableList, + // Finality pub justification_bits: BitVector, pub previous_justified_checkpoint: Checkpoint, pub current_justified_checkpoint: Checkpoint, pub finalized_checkpoint: Checkpoint, + + // Inactivity + #[superstruct(only(Altair))] + pub inactivity_scores: VariableList, + + // Light-client sync committees + #[superstruct(only(Altair))] + pub current_sync_committee: SyncCommittee, + #[superstruct(only(Altair))] + pub next_sync_committee: SyncCommittee, } -impl PartialBeaconState { - /// Convert a `BeaconState` to a `PartialBeaconState`, while dropping the optional fields. - pub fn from_state_forgetful(s: &BeaconState) -> Self { - // TODO: could use references/Cow for fields to avoid cloning - PartialBeaconState { - genesis_time: s.genesis_time, - genesis_validators_root: s.genesis_validators_root, - slot: s.slot, - fork: s.fork, +/// Implement the conversion function from BeaconState -> PartialBeaconState. +macro_rules! impl_from_state_forgetful { + ($s:ident, $outer:ident, $variant_name:ident, $struct_name:ident, [$($extra_fields:ident),*]) => { + PartialBeaconState::$variant_name($struct_name { + // Versioning + genesis_time: $s.genesis_time, + genesis_validators_root: $s.genesis_validators_root, + slot: $s.slot, + fork: $s.fork, // History - latest_block_header: s.latest_block_header.clone(), + latest_block_header: $s.latest_block_header.clone(), block_roots: None, state_roots: None, historical_roots: None, // Eth1 - eth1_data: s.eth1_data.clone(), - eth1_data_votes: s.eth1_data_votes.clone(), - eth1_deposit_index: s.eth1_deposit_index, + eth1_data: $s.eth1_data.clone(), + eth1_data_votes: $s.eth1_data_votes.clone(), + eth1_deposit_index: $s.eth1_deposit_index, // Validator registry - validators: s.validators.clone(), - balances: s.balances.clone(), + validators: $s.validators.clone(), + balances: $s.balances.clone(), // Shuffling - latest_randao_value: *s - .get_randao_mix(s.current_epoch()) + latest_randao_value: *$outer + .get_randao_mix($outer.current_epoch()) .expect("randao at current epoch is OK"), randao_mixes: None, // Slashings - slashings: s.get_all_slashings().to_vec().into(), - - // Attestations - previous_epoch_attestations: s.previous_epoch_attestations.clone(), - current_epoch_attestations: s.current_epoch_attestations.clone(), + slashings: $s.slashings.clone(), // Finality - justification_bits: s.justification_bits.clone(), - previous_justified_checkpoint: s.previous_justified_checkpoint, - current_justified_checkpoint: s.current_justified_checkpoint, - finalized_checkpoint: s.finalized_checkpoint, + justification_bits: $s.justification_bits.clone(), + previous_justified_checkpoint: $s.previous_justified_checkpoint, + current_justified_checkpoint: $s.current_justified_checkpoint, + finalized_checkpoint: $s.finalized_checkpoint, + + // Variant-specific fields + $( + $extra_fields: $s.$extra_fields.clone() + ),* + }) + } +} + +impl PartialBeaconState { + /// Convert a `BeaconState` to a `PartialBeaconState`, while dropping the optional fields. + pub fn from_state_forgetful(outer: &BeaconState) -> Self { + match outer { + BeaconState::Base(s) => impl_from_state_forgetful!( + s, + outer, + Base, + PartialBeaconStateBase, + [previous_epoch_attestations, current_epoch_attestations] + ), + BeaconState::Altair(s) => impl_from_state_forgetful!( + s, + outer, + Altair, + PartialBeaconStateAltair, + [ + previous_epoch_participation, + current_epoch_participation, + current_sync_committee, + next_sync_committee, + inactivity_scores + ] + ), } } + /// SSZ decode. + pub fn from_ssz_bytes(bytes: &[u8], spec: &ChainSpec) -> Result { + // Slot is after genesis_time (u64) and genesis_validators_root (Hash256). + let slot_offset = ::ssz_fixed_len() + ::ssz_fixed_len(); + let slot_len = ::ssz_fixed_len(); + let slot_bytes = bytes.get(slot_offset..slot_offset + slot_len).ok_or( + DecodeError::InvalidByteLength { + len: bytes.len(), + expected: slot_offset + slot_len, + }, + )?; + + let slot = Slot::from_ssz_bytes(slot_bytes)?; + let epoch = slot.epoch(T::slots_per_epoch()); + + if spec + .altair_fork_epoch + .map_or(true, |altair_epoch| epoch < altair_epoch) + { + PartialBeaconStateBase::from_ssz_bytes(bytes).map(Self::Base) + } else { + PartialBeaconStateAltair::from_ssz_bytes(bytes).map(Self::Altair) + } + } + + /// Prepare the partial state for storage in the KV database. + #[must_use] + pub fn as_kv_store_op(&self, state_root: Hash256) -> KeyValueStoreOp { + let db_key = get_key_for_col(DBColumn::BeaconState.into(), state_root.as_bytes()); + KeyValueStoreOp::PutKeyValue(db_key, self.as_ssz_bytes()) + } + pub fn load_block_roots>( &mut self, store: &S, spec: &ChainSpec, ) -> Result<(), Error> { - if self.block_roots.is_none() { - self.block_roots = Some(load_vector_from_db::( - store, self.slot, spec, + if self.block_roots().is_none() { + *self.block_roots_mut() = Some(load_vector_from_db::( + store, + self.slot(), + spec, )?); } Ok(()) @@ -131,9 +217,11 @@ impl PartialBeaconState { store: &S, spec: &ChainSpec, ) -> Result<(), Error> { - if self.state_roots.is_none() { - self.state_roots = Some(load_vector_from_db::( - store, self.slot, spec, + if self.state_roots().is_none() { + *self.state_roots_mut() = Some(load_vector_from_db::( + store, + self.slot(), + spec, )?); } Ok(()) @@ -144,10 +232,10 @@ impl PartialBeaconState { store: &S, spec: &ChainSpec, ) -> Result<(), Error> { - if self.historical_roots.is_none() { - self.historical_roots = Some(load_variable_list_from_db::( - store, self.slot, spec, - )?); + if self.historical_roots().is_none() { + *self.historical_roots_mut() = Some( + load_variable_list_from_db::(store, self.slot(), spec)?, + ); } Ok(()) } @@ -157,72 +245,101 @@ impl PartialBeaconState { store: &S, spec: &ChainSpec, ) -> Result<(), Error> { - if self.randao_mixes.is_none() { + if self.randao_mixes().is_none() { // Load the per-epoch values from the database let mut randao_mixes = - load_vector_from_db::(store, self.slot, spec)?; + load_vector_from_db::(store, self.slot(), spec)?; // Patch the value for the current slot into the index for the current epoch - let current_epoch = self.slot.epoch(T::slots_per_epoch()); + let current_epoch = self.slot().epoch(T::slots_per_epoch()); let len = randao_mixes.len(); - randao_mixes[current_epoch.as_usize() % len] = self.latest_randao_value; + randao_mixes[current_epoch.as_usize() % len] = *self.latest_randao_value(); - self.randao_mixes = Some(randao_mixes) + *self.randao_mixes_mut() = Some(randao_mixes) } Ok(()) } } -impl TryInto> for PartialBeaconState { - type Error = Error; - - fn try_into(self) -> Result, Error> { - fn unpack(x: Option) -> Result { - x.ok_or(Error::PartialBeaconStateError) - } - - Ok(BeaconState { - genesis_time: self.genesis_time, - genesis_validators_root: self.genesis_validators_root, - slot: self.slot, - fork: self.fork, +/// Implement the conversion from PartialBeaconState -> BeaconState. +macro_rules! impl_try_into_beacon_state { + ($inner:ident, $variant_name:ident, $struct_name:ident, [$($extra_fields:ident),*]) => { + BeaconState::$variant_name($struct_name { + // Versioning + genesis_time: $inner.genesis_time, + genesis_validators_root: $inner.genesis_validators_root, + slot: $inner.slot, + fork: $inner.fork, // History - latest_block_header: self.latest_block_header, - block_roots: unpack(self.block_roots)?, - state_roots: unpack(self.state_roots)?, - historical_roots: unpack(self.historical_roots)?, + latest_block_header: $inner.latest_block_header, + block_roots: unpack_field($inner.block_roots)?, + state_roots: unpack_field($inner.state_roots)?, + historical_roots: unpack_field($inner.historical_roots)?, // Eth1 - eth1_data: self.eth1_data, - eth1_data_votes: self.eth1_data_votes, - eth1_deposit_index: self.eth1_deposit_index, + eth1_data: $inner.eth1_data, + eth1_data_votes: $inner.eth1_data_votes, + eth1_deposit_index: $inner.eth1_deposit_index, // Validator registry - validators: self.validators, - balances: self.balances, + validators: $inner.validators, + balances: $inner.balances, // Shuffling - randao_mixes: unpack(self.randao_mixes)?, + randao_mixes: unpack_field($inner.randao_mixes)?, // Slashings - slashings: self.slashings, - - // Attestations - previous_epoch_attestations: self.previous_epoch_attestations, - current_epoch_attestations: self.current_epoch_attestations, + slashings: $inner.slashings, // Finality - justification_bits: self.justification_bits, - previous_justified_checkpoint: self.previous_justified_checkpoint, - current_justified_checkpoint: self.current_justified_checkpoint, - finalized_checkpoint: self.finalized_checkpoint, + justification_bits: $inner.justification_bits, + previous_justified_checkpoint: $inner.previous_justified_checkpoint, + current_justified_checkpoint: $inner.current_justified_checkpoint, + finalized_checkpoint: $inner.finalized_checkpoint, // Caching committee_caches: <_>::default(), pubkey_cache: <_>::default(), exit_cache: <_>::default(), tree_hash_cache: <_>::default(), + + // Variant-specific fields + $( + $extra_fields: $inner.$extra_fields + ),* }) } } + +fn unpack_field(x: Option) -> Result { + x.ok_or(Error::PartialBeaconStateError) +} + +impl TryInto> for PartialBeaconState { + type Error = Error; + + fn try_into(self) -> Result, Error> { + let state = match self { + PartialBeaconState::Base(inner) => impl_try_into_beacon_state!( + inner, + Base, + BeaconStateBase, + [previous_epoch_attestations, current_epoch_attestations] + ), + PartialBeaconState::Altair(inner) => impl_try_into_beacon_state!( + inner, + Altair, + BeaconStateAltair, + [ + previous_epoch_participation, + current_epoch_participation, + current_sync_committee, + next_sync_committee, + inactivity_scores + ] + ), + }; + Ok(state) + } +} diff --git a/beacon_node/tests/test.rs b/beacon_node/tests/test.rs index 516f05bfbe..1c11a8349d 100644 --- a/beacon_node/tests/test.rs +++ b/beacon_node/tests/test.rs @@ -53,7 +53,7 @@ fn http_server_genesis_state() { .expect("client should have beacon chain") .state_at_slot(Slot::new(0), StateSkipConfig::WithStateRoots) .expect("should find state"); - db_state.drop_all_caches(); + db_state.drop_all_caches().unwrap(); assert_eq!( api_state, db_state, diff --git a/boot_node/src/config.rs b/boot_node/src/config.rs index db88fbe64e..54f450a54e 100644 --- a/boot_node/src/config.rs +++ b/boot_node/src/config.rs @@ -83,12 +83,7 @@ impl TryFrom<&ArgMatches<'_>> for BootNodeConfig { } else { // build the enr_fork_id and add it to the local_enr if it exists let enr_fork = { - let spec = eth2_network_config - .yaml_config - .as_ref() - .ok_or("The network directory must contain a spec config")? - .apply_to_chain_spec::(&T::default_spec()) - .ok_or("The loaded config is not compatible with the current spec")?; + let spec = eth2_network_config.chain_spec::()?; if eth2_network_config.beacon_state_is_known() { let genesis_state = eth2_network_config.beacon_state::()?; @@ -96,7 +91,7 @@ impl TryFrom<&ArgMatches<'_>> for BootNodeConfig { slog::info!(logger, "Genesis state found"; "root" => genesis_state.canonical_root().to_string()); let enr_fork = spec.enr_fork_id( types::Slot::from(0u64), - genesis_state.genesis_validators_root, + genesis_state.genesis_validators_root(), ); Some(enr_fork.as_ssz_bytes()) diff --git a/boot_node/src/lib.rs b/boot_node/src/lib.rs index 6e88387280..3f69f53bac 100644 --- a/boot_node/src/lib.rs +++ b/boot_node/src/lib.rs @@ -51,7 +51,6 @@ pub fn run(matches: &ArgMatches<'_>, eth_spec_id: EthSpecId, debug_level: String if let Err(e) = match eth_spec_id { EthSpecId::Minimal => main::(matches, log), EthSpecId::Mainnet => main::(matches, log), - EthSpecId::V012Legacy => main::(matches, log), } { slog::crit!(slog_scope::logger(), "{}", e); } diff --git a/common/eth2/src/lib.rs b/common/eth2/src/lib.rs index 5e1b434601..1926933764 100644 --- a/common/eth2/src/lib.rs +++ b/common/eth2/src/lib.rs @@ -21,7 +21,6 @@ use reqwest::{IntoUrl, Response}; pub use reqwest::{StatusCode, Url}; use sensitive_url::SensitiveUrl; use serde::{de::DeserializeOwned, Serialize}; -use ssz::Decode; use std::convert::TryFrom; use std::fmt; use std::iter::Iterator; @@ -498,6 +497,7 @@ impl BeaconNodeHttpClient { pub async fn get_beacon_blocks_ssz( &self, block_id: BlockId, + spec: &ChainSpec, ) -> Result>, Error> { let mut path = self.eth_path()?; @@ -509,7 +509,7 @@ impl BeaconNodeHttpClient { self.get_bytes_opt_accept_header(path, Accept::Ssz) .await? - .map(|bytes| SignedBeaconBlock::from_ssz_bytes(&bytes).map_err(Error::InvalidSsz)) + .map(|bytes| SignedBeaconBlock::from_ssz_bytes(&bytes, spec).map_err(Error::InvalidSsz)) .transpose() } @@ -715,7 +715,7 @@ impl BeaconNodeHttpClient { } /// `GET config/spec` - pub async fn get_config_spec(&self) -> Result, Error> { + pub async fn get_config_spec(&self) -> Result, Error> { let mut path = self.eth_path()?; path.path_segments_mut() @@ -883,6 +883,7 @@ impl BeaconNodeHttpClient { pub async fn get_debug_beacon_states_ssz( &self, state_id: StateId, + spec: &ChainSpec, ) -> Result>, Error> { let mut path = self.eth_path()?; @@ -895,7 +896,7 @@ impl BeaconNodeHttpClient { self.get_bytes_opt_accept_header(path, Accept::Ssz) .await? - .map(|bytes| BeaconState::from_ssz_bytes(&bytes).map_err(Error::InvalidSsz)) + .map(|bytes| BeaconState::from_ssz_bytes(&bytes, spec).map_err(Error::InvalidSsz)) .transpose() } diff --git a/common/eth2/src/lighthouse.rs b/common/eth2/src/lighthouse.rs index f81fc607fc..716ac41e52 100644 --- a/common/eth2/src/lighthouse.rs +++ b/common/eth2/src/lighthouse.rs @@ -2,13 +2,12 @@ use crate::{ ok_or_error, - types::{BeaconState, Epoch, EthSpec, GenericResponse, ValidatorId}, + types::{BeaconState, ChainSpec, Epoch, EthSpec, GenericResponse, ValidatorId}, BeaconNodeHttpClient, DepositData, Error, Eth1Data, Hash256, StateId, StatusCode, }; use proto_array::core::ProtoArray; use reqwest::IntoUrl; use serde::{Deserialize, Serialize}; -use ssz::Decode; use ssz_derive::{Decode, Encode}; pub use eth2_libp2p::{types::SyncState, PeerInfo}; @@ -470,6 +469,7 @@ impl BeaconNodeHttpClient { pub async fn get_lighthouse_beacon_states_ssz( &self, state_id: &StateId, + spec: &ChainSpec, ) -> Result>, Error> { let mut path = self.server.full.clone(); @@ -483,7 +483,7 @@ impl BeaconNodeHttpClient { self.get_bytes_opt(path) .await? - .map(|bytes| BeaconState::from_ssz_bytes(&bytes).map_err(Error::InvalidSsz)) + .map(|bytes| BeaconState::from_ssz_bytes(&bytes, spec).map_err(Error::InvalidSsz)) .transpose() } diff --git a/common/eth2/src/lighthouse_vc/http_client.rs b/common/eth2/src/lighthouse_vc/http_client.rs index 6cb1bf3388..c6a1235098 100644 --- a/common/eth2/src/lighthouse_vc/http_client.rs +++ b/common/eth2/src/lighthouse_vc/http_client.rs @@ -211,7 +211,7 @@ impl ValidatorClientHttpClient { } /// `GET lighthouse/spec` - pub async fn get_lighthouse_spec(&self) -> Result, Error> { + pub async fn get_lighthouse_spec(&self) -> Result, Error> { let mut path = self.server.full.clone(); path.path_segments_mut() diff --git a/common/eth2_config/src/lib.rs b/common/eth2_config/src/lib.rs index a62518908a..c30dab5df7 100644 --- a/common/eth2_config/src/lib.rs +++ b/common/eth2_config/src/lib.rs @@ -44,13 +44,6 @@ impl Eth2Config { spec: ChainSpec::minimal(), } } - - pub fn v012_legacy() -> Self { - Self { - eth_spec_id: EthSpecId::V012Legacy, - spec: ChainSpec::v012_legacy(), - } - } } /// A directory that can be built by downloading files via HTTP. @@ -112,16 +105,8 @@ macro_rules! define_net { }; } -define_net!(altona, include_altona_file, "altona", true); - -define_net!(medalla, include_medalla_file, "medalla", true); - -define_net!(spadina, include_spadina_file, "spadina", true); - define_net!(pyrmont, include_pyrmont_file, "pyrmont", true); define_net!(mainnet, include_mainnet_file, "mainnet", true); -define_net!(toledo, include_toledo_file, "toledo", true); - define_net!(prater, include_prater_file, "prater", true); diff --git a/common/eth2_network_config/build.rs b/common/eth2_network_config/build.rs index effcb4fa0e..d84dbde4d8 100644 --- a/common/eth2_network_config/build.rs +++ b/common/eth2_network_config/build.rs @@ -1,19 +1,12 @@ //! Extracts zipped genesis states on first run. -use eth2_config::{ - altona, mainnet, medalla, prater, pyrmont, spadina, toledo, Eth2NetArchiveAndDirectory, - GENESIS_FILE_NAME, -}; +use eth2_config::{mainnet, prater, pyrmont, Eth2NetArchiveAndDirectory, GENESIS_FILE_NAME}; use std::fs::File; use std::io; use zip::ZipArchive; const ETH2_NET_DIRS: &[Eth2NetArchiveAndDirectory<'static>] = &[ - altona::ETH2_NET_DIR, - medalla::ETH2_NET_DIR, - spadina::ETH2_NET_DIR, mainnet::ETH2_NET_DIR, pyrmont::ETH2_NET_DIR, - toledo::ETH2_NET_DIR, prater::ETH2_NET_DIR, ]; diff --git a/common/eth2_network_config/built_in_network_configs/altona/boot_enr.yaml b/common/eth2_network_config/built_in_network_configs/altona/boot_enr.yaml deleted file mode 100644 index 3e50ecd9df..0000000000 --- a/common/eth2_network_config/built_in_network_configs/altona/boot_enr.yaml +++ /dev/null @@ -1,10 +0,0 @@ -- enr:-LK4QFtV7Pz4reD5a7cpfi1z6yPrZ2I9eMMU5mGQpFXLnLoKZW8TXvVubShzLLpsEj6aayvVO1vFx-MApijD3HLPhlECh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD6etXjAAABIf__________gmlkgnY0gmlwhDMPYfCJc2VjcDI1NmsxoQIerw_qBc9apYfZqo2awiwS930_vvmGnW2psuHsTzrJ8YN0Y3CCIyiDdWRwgiMo -- enr:-LK4QPVkFd_MKzdW0219doTZryq40tTe8rwWYO75KDmeZM78fBskGsfCuAww9t8y3u0Q0FlhXOhjE1CWpx3SGbUaU80Ch2F0dG5ldHOIAAAAAAAAAACEZXRoMpD6etXjAAABIf__________gmlkgnY0gmlwhDMPRgeJc2VjcDI1NmsxoQNHu-QfNgzl8VxbMiPgv6wgAljojnqAOrN18tzJMuN8oYN0Y3CCIyiDdWRwgiMo -- enr:-LK4QHe52XPPrcv6-MvcmN5GqDe_sgCwo24n_2hedlfwD_oxNt7cXL3tXJ7h9aYv6CTS1C_H2G2_dkeqm_LBO9nrpiYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD9yjmwAAABIf__________gmlkgnY0gmlwhANzD9uJc2VjcDI1NmsxoQJX7zMnRU3szfGfS8MAIfPaQKOBpu3sBVTXf4Qq0b_m-4N0Y3CCIyiDdWRwgiMo -- enr:-LK4QLkbbq7xuRa_EnWd_kc0TkQk0pd0B0cZYR5LvBsncFQBDyPbGdy8d24TzRVeK7ZWwM5_2EcSJK223f8TYUOQYfwBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD9yjmwAAABIf__________gmlkgnY0gmlwhAPsjtOJc2VjcDI1NmsxoQJNw_aZgWXl2SstD--WAjooGudjWLjEbbCIddJuEPxzWYN0Y3CCIyiDdWRwgiMo -- enr:-LK4QHy-glnxN1WTk5f6d7-xXwy_UKJLs5k7p_S4KRY9I925KTzW_kQLjfFriIpH0de7kygBwrSl726ukq9_OG_sgKMCh2F0dG5ldHOIUjEAIQEAFMiEZXRoMpD9yjmwAAABIf__________gmlkgnY0gmlwhBLmhrCJc2VjcDI1NmsxoQNlU7gT0HUvpLA41n-P5GrCgjwMwtG02YsRRO0lAmpmBYN0Y3CCIyiDdWRwgiMo -- enr:-LK4QDz0n0vpyOpuStB8e22h9ayHVcvmN7o0trC7eC0DnZV9GYGzK5uKv7WlzpMQM2nDTG43DWvF_DZYwJOZCbF4iCQBh2F0dG5ldHOI__________-EZXRoMpD9yjmwAAABIf__________gmlkgnY0gmlwhBKN136Jc2VjcDI1NmsxoQP5gcOUcaruHuMuTv8ht7ZEawp3iih7CmeLqcoY1hxOnoN0Y3CCIyiDdWRwgiMo -- enr:-LK4QOScOZ35sOXEH6CEW15lfv7I3DhqQAzCPQ_nRav95otuSh4yi9ol0AruKDiIk9qqGXyD-wQDaBAPLhwl4t-rUSQBh2F0dG5ldHOI__________-EZXRoMpD9yjmwAAABIf__________gmlkgnY0gmlwhCL68KuJc2VjcDI1NmsxoQK5fYR3Ipoc01dz0d2-EcL7m26zKQSkAbf4rwcMMM09CoN0Y3CCIyiDdWRwgiMo -- enr:-Ku4QMqmWPFkgM58F16wxB50cqWDaWaIsyANHL8wUNSB4Cy1TP9__uJQNRODvx_dvO6rY-BT3psrYTMAaxnMGXb6DuoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQNoed9JnQh7ltcAacHEGOjwocL1BhMQbYTgaPX0kFuXtIN1ZHCCE4g -- enr:-LK4QDHu6BtDKnGbthNp-GvweQlW0jiOX9KFCj5Ql9kScrFed76tgHlFv7A-9ZRB-EVZpKItvlNjo3yxjj7jYIZUJa4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAAAAAAAAAAAAAAAAAAAAAAgmlkgnY0gmlwhDbUyQKJc2VjcDI1NmsxoQLV6Yse8baXDFu9r_dvm9BVd2ni2-wwvANWA-4ewbhniIN0Y3CCIyiDdWRwgiMo -- enr:-LK4QF3lT3Ch8Ljyx-KwoPrvoJHO-HDd3jOREMIZCWzi_HkHFVub5qt52MliDTLDgpXMS9tBzzLI4ObT_Z2m2Kus9vMBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAAAAAAAAAAAAAAAAAAAAAAgmlkgnY0gmlwhBKNqHeJc2VjcDI1NmsxoQOTO9uI9UZjuTOpcWvnCfhfQTmcMaIzBFsjMpXYnppET4N0Y3CCIyiDdWRwgiMo diff --git a/common/eth2_network_config/built_in_network_configs/altona/config.yaml b/common/eth2_network_config/built_in_network_configs/altona/config.yaml deleted file mode 100644 index 0a3bff66bd..0000000000 --- a/common/eth2_network_config/built_in_network_configs/altona/config.yaml +++ /dev/null @@ -1,60 +0,0 @@ -CONFIG_NAME: "altona" -MAX_COMMITTEES_PER_SLOT: 64 -TARGET_COMMITTEE_SIZE: 128 -MAX_VALIDATORS_PER_COMMITTEE: 2048 -MIN_PER_EPOCH_CHURN_LIMIT: 4 -CHURN_LIMIT_QUOTIENT: 65536 -SHUFFLE_ROUND_COUNT: 90 -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 640 -MIN_GENESIS_TIME: 1593433800 -HYSTERESIS_QUOTIENT: 4 -HYSTERESIS_DOWNWARD_MULTIPLIER: 1 -HYSTERESIS_UPWARD_MULTIPLIER: 5 -SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8 -ETH1_FOLLOW_DISTANCE: 1024 -TARGET_AGGREGATORS_PER_COMMITTEE: 16 -RANDOM_SUBNETS_PER_VALIDATOR: 1 -EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 -SECONDS_PER_ETH1_BLOCK: 14 -DEPOSIT_CONTRACT_ADDRESS: 0x16e82D77882A663454Ef92806b7DeCa1D394810f -MIN_DEPOSIT_AMOUNT: 1000000000 -MAX_EFFECTIVE_BALANCE: 32000000000 -EJECTION_BALANCE: 16000000000 -EFFECTIVE_BALANCE_INCREMENT: 1000000000 -GENESIS_FORK_VERSION: 0x00000121 -BLS_WITHDRAWAL_PREFIX: 0x00 -GENESIS_DELAY: 172800 -SECONDS_PER_SLOT: 12 -MIN_ATTESTATION_INCLUSION_DELAY: 1 -SLOTS_PER_EPOCH: 32 -MIN_SEED_LOOKAHEAD: 1 -MAX_SEED_LOOKAHEAD: 4 -EPOCHS_PER_ETH1_VOTING_PERIOD: 32 -SLOTS_PER_HISTORICAL_ROOT: 8192 -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -SHARD_COMMITTEE_PERIOD: 256 -MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 -EPOCHS_PER_HISTORICAL_VECTOR: 65536 -EPOCHS_PER_SLASHINGS_VECTOR: 8192 -HISTORICAL_ROOTS_LIMIT: 16777216 -VALIDATOR_REGISTRY_LIMIT: 1099511627776 -BASE_REWARD_FACTOR: 64 -WHISTLEBLOWER_REWARD_QUOTIENT: 512 -PROPOSER_REWARD_QUOTIENT: 8 -INACTIVITY_PENALTY_QUOTIENT: 16777216 -MIN_SLASHING_PENALTY_QUOTIENT: 32 -MAX_PROPOSER_SLASHINGS: 16 -MAX_ATTESTER_SLASHINGS: 2 -MAX_ATTESTATIONS: 128 -MAX_DEPOSITS: 16 -MAX_VOLUNTARY_EXITS: 16 -DOMAIN_BEACON_PROPOSER: 0x00000000 -DOMAIN_BEACON_ATTESTER: 0x01000000 -DOMAIN_RANDAO: 0x02000000 -DOMAIN_DEPOSIT: 0x03000000 -DOMAIN_VOLUNTARY_EXIT: 0x04000000 -DOMAIN_SELECTION_PROOF: 0x05000000 -DOMAIN_AGGREGATE_AND_PROOF: 0x06000000 -DEPOSIT_CHAIN_ID: 5 -DEPOSIT_NETWORK_ID: 5 -PROPORTIONAL_SLASHING_MULTIPLIER: 3 diff --git a/common/eth2_network_config/built_in_network_configs/altona/deploy_block.txt b/common/eth2_network_config/built_in_network_configs/altona/deploy_block.txt deleted file mode 100644 index 5306ea6645..0000000000 --- a/common/eth2_network_config/built_in_network_configs/altona/deploy_block.txt +++ /dev/null @@ -1 +0,0 @@ -2917810 diff --git a/common/eth2_network_config/built_in_network_configs/altona/genesis.ssz.zip b/common/eth2_network_config/built_in_network_configs/altona/genesis.ssz.zip deleted file mode 100644 index 79fd978bb5165b5b431af4c88571a95c88f3e454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60564 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 Q0096|0000j>;M1&0Mw+WoB#j- diff --git a/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml b/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml index ace44dd232..47b02aa8d9 100644 --- a/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml +++ b/common/eth2_network_config/built_in_network_configs/mainnet/config.yaml @@ -1,51 +1,66 @@ -# Mainnet preset +# Mainnet config -CONFIG_NAME: "mainnet" +# Extends the mainnet preset +PRESET_BASE: 'mainnet' -# Misc +# Genesis # --------------------------------------------------------------- -# 2**6 (= 64) -MAX_COMMITTEES_PER_SLOT: 64 -# 2**7 (= 128) -TARGET_COMMITTEE_SIZE: 128 -# 2**11 (= 2,048) -MAX_VALIDATORS_PER_COMMITTEE: 2048 -# 2**2 (= 4) -MIN_PER_EPOCH_CHURN_LIMIT: 4 -# 2**16 (= 65,536) -CHURN_LIMIT_QUOTIENT: 65536 -# See issue 563 -SHUFFLE_ROUND_COUNT: 90 # `2**14` (= 16,384) MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384 # Dec 1, 2020, 12pm UTC MIN_GENESIS_TIME: 1606824000 -# 4 -HYSTERESIS_QUOTIENT: 4 -# 1 (minus 0.25) -HYSTERESIS_DOWNWARD_MULTIPLIER: 1 -# 5 (plus 1.25) -HYSTERESIS_UPWARD_MULTIPLIER: 5 +# Mainnet initial fork version, recommend altering for testnets +GENESIS_FORK_VERSION: 0x00000000 +# 604800 seconds (7 days) +GENESIS_DELAY: 604800 -# Fork Choice +# Forking # --------------------------------------------------------------- -# 2**3 (= 8) -SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8 +# Some forks are disabled for now: +# - These may be re-assigned to another fork-version later +# - Temporarily set to max uint64 value: 2**64 - 1 + +# Altair +ALTAIR_FORK_VERSION: 0x01000000 +ALTAIR_FORK_EPOCH: 18446744073709551615 +# Merge +MERGE_FORK_VERSION: 0x02000000 +MERGE_FORK_EPOCH: 18446744073709551615 +# Sharding +SHARDING_FORK_VERSION: 0x03000000 +SHARDING_FORK_EPOCH: 18446744073709551615 + +# TBD, 2**32 is a placeholder. Merge transition approach is in active R&D. +TRANSITION_TOTAL_DIFFICULTY: 4294967296 -# Validator +# Time parameters # --------------------------------------------------------------- -# 2**11 (= 2,048) -ETH1_FOLLOW_DISTANCE: 2048 -# 2**4 (= 16) -TARGET_AGGREGATORS_PER_COMMITTEE: 16 -# 2**0 (= 1) -RANDOM_SUBNETS_PER_VALIDATOR: 1 -# 2**8 (= 256) -EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 +# 12 seconds +SECONDS_PER_SLOT: 12 # 14 (estimate from Eth1 mainnet) SECONDS_PER_ETH1_BLOCK: 14 +# 2**8 (= 256) epochs ~27 hours +MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 +# 2**8 (= 256) epochs ~27 hours +SHARD_COMMITTEE_PERIOD: 256 +# 2**11 (= 2,048) Eth1 blocks ~8 hours +ETH1_FOLLOW_DISTANCE: 2048 + + +# Validator cycle +# --------------------------------------------------------------- +# 2**2 (= 4) +INACTIVITY_SCORE_BIAS: 4 +# 2**4 (= 16) +INACTIVITY_SCORE_RECOVERY_RATE: 16 +# 2**4 * 10**9 (= 16,000,000,000) Gwei +EJECTION_BALANCE: 16000000000 +# 2**2 (= 4) +MIN_PER_EPOCH_CHURN_LIMIT: 4 +# 2**16 (= 65,536) +CHURN_LIMIT_QUOTIENT: 65536 # Deposit contract @@ -53,103 +68,4 @@ SECONDS_PER_ETH1_BLOCK: 14 # Ethereum PoW Mainnet DEPOSIT_CHAIN_ID: 1 DEPOSIT_NETWORK_ID: 1 -# **TBD** DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa - - -# Gwei values -# --------------------------------------------------------------- -# 2**0 * 10**9 (= 1,000,000,000) Gwei -MIN_DEPOSIT_AMOUNT: 1000000000 -# 2**5 * 10**9 (= 32,000,000,000) Gwei -MAX_EFFECTIVE_BALANCE: 32000000000 -# 2**4 * 10**9 (= 16,000,000,000) Gwei -EJECTION_BALANCE: 16000000000 -# 2**0 * 10**9 (= 1,000,000,000) Gwei -EFFECTIVE_BALANCE_INCREMENT: 1000000000 - - -# Initial values -# --------------------------------------------------------------- -# Mainnet initial fork version, recommend altering for testnets -GENESIS_FORK_VERSION: 0x00000000 -BLS_WITHDRAWAL_PREFIX: 0x00 - - -# Time parameters -# --------------------------------------------------------------- -# 604800 seconds (7 days) -GENESIS_DELAY: 604800 -# 12 seconds -SECONDS_PER_SLOT: 12 -# 2**0 (= 1) slots 12 seconds -MIN_ATTESTATION_INCLUSION_DELAY: 1 -# 2**5 (= 32) slots 6.4 minutes -SLOTS_PER_EPOCH: 32 -# 2**0 (= 1) epochs 6.4 minutes -MIN_SEED_LOOKAHEAD: 1 -# 2**2 (= 4) epochs 25.6 minutes -MAX_SEED_LOOKAHEAD: 4 -# 2**6 (= 64) epochs ~6.8 hours -EPOCHS_PER_ETH1_VOTING_PERIOD: 64 -# 2**13 (= 8,192) slots ~13 hours -SLOTS_PER_HISTORICAL_ROOT: 8192 -# 2**8 (= 256) epochs ~27 hours -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -# 2**8 (= 256) epochs ~27 hours -SHARD_COMMITTEE_PERIOD: 256 -# 2**2 (= 4) epochs 25.6 minutes -MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 - - -# State vector lengths -# --------------------------------------------------------------- -# 2**16 (= 65,536) epochs ~0.8 years -EPOCHS_PER_HISTORICAL_VECTOR: 65536 -# 2**13 (= 8,192) epochs ~36 days -EPOCHS_PER_SLASHINGS_VECTOR: 8192 -# 2**24 (= 16,777,216) historical roots, ~26,131 years -HISTORICAL_ROOTS_LIMIT: 16777216 -# 2**40 (= 1,099,511,627,776) validator spots -VALIDATOR_REGISTRY_LIMIT: 1099511627776 - - -# Reward and penalty quotients -# --------------------------------------------------------------- -# 2**6 (= 64) -BASE_REWARD_FACTOR: 64 -# 2**9 (= 512) -WHISTLEBLOWER_REWARD_QUOTIENT: 512 -# 2**3 (= 8) -PROPOSER_REWARD_QUOTIENT: 8 -# 2**26 (= 67,108,864) -INACTIVITY_PENALTY_QUOTIENT: 67108864 -# 2**7 (= 128) (lower safety margin at Phase 0 genesis) -MIN_SLASHING_PENALTY_QUOTIENT: 128 -# 1 (lower safety margin at Phase 0 genesis) -PROPORTIONAL_SLASHING_MULTIPLIER: 1 - - -# Max operations per block -# --------------------------------------------------------------- -# 2**4 (= 16) -MAX_PROPOSER_SLASHINGS: 16 -# 2**1 (= 2) -MAX_ATTESTER_SLASHINGS: 2 -# 2**7 (= 128) -MAX_ATTESTATIONS: 128 -# 2**4 (= 16) -MAX_DEPOSITS: 16 -# 2**4 (= 16) -MAX_VOLUNTARY_EXITS: 16 - - -# Signature domains -# --------------------------------------------------------------- -DOMAIN_BEACON_PROPOSER: 0x00000000 -DOMAIN_BEACON_ATTESTER: 0x01000000 -DOMAIN_RANDAO: 0x02000000 -DOMAIN_DEPOSIT: 0x03000000 -DOMAIN_VOLUNTARY_EXIT: 0x04000000 -DOMAIN_SELECTION_PROOF: 0x05000000 -DOMAIN_AGGREGATE_AND_PROOF: 0x06000000 diff --git a/common/eth2_network_config/built_in_network_configs/medalla/boot_enr.yaml b/common/eth2_network_config/built_in_network_configs/medalla/boot_enr.yaml deleted file mode 100644 index 835451842d..0000000000 --- a/common/eth2_network_config/built_in_network_configs/medalla/boot_enr.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# lighthouse Node -- enr:-LK4QCGFeQXjpQkgOfLHsbTjD65IOtSqV7Qo-Qdqv6SrL8lqFY7INPMMGP5uGKkVDcJkeXimSeNeypaZV3MHkcJgr9QCh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDnp11aAAAAAf__________gmlkgnY0gmlwhA37LMaJc2VjcDI1NmsxoQJ7k0mKtTd_kdEq251flOjD1HKpqgMmIETDoD-Msy_O-4N0Y3CCIyiDdWRwgiMo -# Lighthouse node -- enr:-LK4QCpyWmMLYwC2umMJ_g0c9VY7YOFwZyaR80_tuQNTWOzJbaR82DDhVQYqmE_0gvN6Du5jwnxzIaaNRZQlVXzfIK0Dh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDnp11aAAAAAf__________gmlkgnY0gmlwhCLR2xuJc2VjcDI1NmsxoQOYiWqrQtQksTEtS3qY6idxJE5wkm0t9wKqpzv2gCR21oN0Y3CCIyiDdWRwgiMo -# Prysm -- enr:-Ku4QOnVSyvzS3VbF87J8MubaRuTyfPi6B67XQg6-5eAV_uILAhn9geTTQmfqDIOcIeAxWHUUajQp6lYniAXPWncp6UBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAYrkzLAAAAAf__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQKekYKqUtwbaJKKCct_srE5-g7tBUm68mj_jpeSb7CCqYN1ZHCCC7g -# Prysm -- enr:-Ku4QHWezvidY_m0dWEwERrNrqjEQWrlIx7b8K4EIxGgTrLmUxHCZPW5-t8PsS8nFxAJ8k8YacKP5zPRk5gbsTSsRTQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpAYrkzLAAAAAf__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMypP_ODwTuBq2v0oIdjPGCEyu9Hb_jHDbuIX_iNvBRGoN1ZHCCGWQ -# Cat-dog -- enr:-Ku4QJmPsyq4lmDdFebMKXk7vdt8WsLWkArYT2K8eN057oFudm2tITrZJD9sq1x92-bRmXTyAJgb2FD4ior-KHIU3KcDh2F0dG5ldHOIAAAAAAAAAACEZXRoMpDaNQiCAAAAA___________gmlkgnY0gmlwhBK4vdCJc2VjcDI1NmsxoQMWAsR84_ETgq4-14FV2x00ptmI-YU3tdkZV9CUgYPEnIN1ZHCCI1s diff --git a/common/eth2_network_config/built_in_network_configs/medalla/config.yaml b/common/eth2_network_config/built_in_network_configs/medalla/config.yaml deleted file mode 100644 index 7b0c8a3ffb..0000000000 --- a/common/eth2_network_config/built_in_network_configs/medalla/config.yaml +++ /dev/null @@ -1,60 +0,0 @@ -CONFIG_NAME: "medalla" -MAX_COMMITTEES_PER_SLOT: 64 -TARGET_COMMITTEE_SIZE: 128 -MAX_VALIDATORS_PER_COMMITTEE: 2048 -MIN_PER_EPOCH_CHURN_LIMIT: 4 -CHURN_LIMIT_QUOTIENT: 65536 -SHUFFLE_ROUND_COUNT: 90 -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384 -MIN_GENESIS_TIME: 1596546000 -HYSTERESIS_QUOTIENT: 4 -HYSTERESIS_DOWNWARD_MULTIPLIER: 1 -HYSTERESIS_UPWARD_MULTIPLIER: 5 -SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8 -ETH1_FOLLOW_DISTANCE: 1024 -TARGET_AGGREGATORS_PER_COMMITTEE: 16 -RANDOM_SUBNETS_PER_VALIDATOR: 1 -EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 -SECONDS_PER_ETH1_BLOCK: 14 -DEPOSIT_CONTRACT_ADDRESS: 0x07b39F4fDE4A38bACe212b546dAc87C58DfE3fDC -MIN_DEPOSIT_AMOUNT: 1000000000 -MAX_EFFECTIVE_BALANCE: 32000000000 -EJECTION_BALANCE: 16000000000 -EFFECTIVE_BALANCE_INCREMENT: 1000000000 -GENESIS_FORK_VERSION: 0x00000001 -BLS_WITHDRAWAL_PREFIX: 0x00 -GENESIS_DELAY: 172800 -SECONDS_PER_SLOT: 12 -MIN_ATTESTATION_INCLUSION_DELAY: 1 -SLOTS_PER_EPOCH: 32 -MIN_SEED_LOOKAHEAD: 1 -MAX_SEED_LOOKAHEAD: 4 -EPOCHS_PER_ETH1_VOTING_PERIOD: 32 -SLOTS_PER_HISTORICAL_ROOT: 8192 -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -SHARD_COMMITTEE_PERIOD: 256 -MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 -EPOCHS_PER_HISTORICAL_VECTOR: 65536 -EPOCHS_PER_SLASHINGS_VECTOR: 8192 -HISTORICAL_ROOTS_LIMIT: 16777216 -VALIDATOR_REGISTRY_LIMIT: 1099511627776 -BASE_REWARD_FACTOR: 64 -WHISTLEBLOWER_REWARD_QUOTIENT: 512 -PROPOSER_REWARD_QUOTIENT: 8 -INACTIVITY_PENALTY_QUOTIENT: 16777216 -MIN_SLASHING_PENALTY_QUOTIENT: 32 -MAX_PROPOSER_SLASHINGS: 16 -MAX_ATTESTER_SLASHINGS: 2 -MAX_ATTESTATIONS: 128 -MAX_DEPOSITS: 16 -MAX_VOLUNTARY_EXITS: 16 -DOMAIN_BEACON_PROPOSER: 0x00000000 -DOMAIN_BEACON_ATTESTER: 0x01000000 -DOMAIN_RANDAO: 0x02000000 -DOMAIN_DEPOSIT: 0x03000000 -DOMAIN_VOLUNTARY_EXIT: 0x04000000 -DOMAIN_SELECTION_PROOF: 0x05000000 -DOMAIN_AGGREGATE_AND_PROOF: 0x06000000 -DEPOSIT_CHAIN_ID: 5 -DEPOSIT_NETWORK_ID: 5 -PROPORTIONAL_SLASHING_MULTIPLIER: 3 diff --git a/common/eth2_network_config/built_in_network_configs/medalla/deploy_block.txt b/common/eth2_network_config/built_in_network_configs/medalla/deploy_block.txt deleted file mode 100644 index a5ea0ed2ed..0000000000 --- a/common/eth2_network_config/built_in_network_configs/medalla/deploy_block.txt +++ /dev/null @@ -1 +0,0 @@ -3085928 diff --git a/common/eth2_network_config/built_in_network_configs/medalla/genesis.ssz.zip b/common/eth2_network_config/built_in_network_configs/medalla/genesis.ssz.zip deleted file mode 100644 index 761b72c0d4441012368637f8eaf1324d04bd425a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411525 zcmeFY=T}qP7x#P4;V3F1M-h;2N2w~(A^a2tk*3lK5b07w4-g;+5D<`}D7{GUgdQLy zK@d<{q=p_k1V};)A*4M#_kXxA?zm@+z1JA~)mnS5H9u>9=UnTR9>?ET|M=sNbAR~6 zn7*zMH$n==@%?co{?#8`e~A3y;^gJz=jtcx=NDpXa{dnv=fPyq|9u03xc>O_?@f+B z{`h~I9i~&Yh|VA7uGymU^76)mgC2c@gZdA(^dFvn%FF-w_|R`~aBu-B{;p)=B@{L| z@v>^;tMv1boiD?gDjM^q6JfREx?|UWvhO|XyIz1H2`SgPW(p9OshO#(j1P+ktm(^T zZ}ak>$K1iU7W<{Ji@vcjnruDQwmZSyW&|%y@f5^KUWK^MMRj9`HP%}Q6qDbG*lh*r zf)*Gch1%P?pZ|OQv%vrVEN}udT8Sz>|EO4R{iD3BY5Z*CL6?~*7V%Tf*%3!_h~Wv% zBaLBVjr{?mL9iY+8K2v}?6~w$i-$d;-b+?mH%zeFT_WBRjh{ajB)=d^IjJ39R9S(s zVN5og#Ae}#>{)v-I#_ul$8T8Wzve$1{I?GNbA$g-@E-~PBjJA}{EvkHk?=nf{zt<9 zNcbNK|0CglB>azr|B>)N68?XQglu!@KmRYM&RIG)bW9j*1`SqS@A8HRta1Fk=*UQn zVdk&jpmTp83rZ=o{0-HUQxvjL>8hocDSi!3Z}8iha^U6j%9PQKbANJk;{zRV5O15E zW==*f2lZ@FqMRz!FmG5Y$#NSgg*z@OdrvM*Y>Aw(-M)d?WikAl3}45H3och2t*Cc{ zve%5w43ay79V(Ka>nL73SV9O1)Fy6+DE|5|y;mv+3sItXReUG^Jsr5Ej};9=I$jb! z`Slh1nl}gKE8m|ePP|ZhiD{I3vnIKjkuMfxQYuN=2Y`=CNTs4ZRSFokI(x-Eph!mW zx0_)xD_z2A)7t@8HKl|7!Sa)Nn^KpDs5#&VdI{xR z93Ec9ptN$s#$|B3u#iP3b0x4Y?7>UIgo40Dif>TcnCl;O(b z=2R`T5>QZg>ocld<(^Ga%9BSEDj7k?El(31#JGKTe~+WU2^-3xt5ezcXrnP2Rt-y2 zY#NxdCHLIepr7T;E}mfLov1Juk~u2|V#}Lun~w&Zxpa135au*OaB&Dvvby=Y)o|bn zBGXshJ^5c$Zxmka;>h)>%7t606PfkZGkK&EIp?4b;;+S!>~u}S!QFQ|?KkqnYSJ~? z5n^W|^)pP`NC`jw6b^ct?wMZXHH;%*xXs(|3t9$J3ybOrK3EySqqU+xY9bSGcxsmo7GC;dXthaqd_e(QZ;VqOk5+~ND!*N5Ts zv@(;PhFfJ$=TySIuuJClnqpxskj}Gtd31-&g_Z0;AkK5G1W*-A713nD8(=abkDJU8 z_oMnR@?cc7XCGJOhY_Y%M?jP-Mw$TWC!J@-QXQVH`>s`{e+bxh@0UyrZ^>Y)IRBW0 z&nlK9ih93JjIcJRf(cu9N8F#gGAsK>?WmVb@Ym`hI6n@gFaL;?A)nllQbhVib{liv zwPAsF$}qVZh@f%MbGho|00^bax=pAWZlbvUzNb%*`}lHQMC?TaQ>aswR$~>$3c&hJ z@tzQli930GoMwQzP)rbL@frEN!X^aY=#3wB!g|FE%m3&FE@^R+QZkoEBKN^+%n%EP z%glv@nd(dn6fIhKsGm#>hk2uQzK>oMk%#FWkHTMG&90(BkRkN#X}R(0wj&!l&r&@9rZ>WaK6g5cbJ6}v z-4mqwV~0i~h2DU?lz^4d>*9cXw3W&>PFQCY3!Y$ZmVlqMtg?xwxVmn%&Phn4&FN&A z-2%nCRM;mW^X|U9~cef(~^lsW_UaP1d$}NFF(malG-dIlp86L7;2z zh78&1e0b1u!P__&lV3p&d&RR{9E!UQuFtPf=R#1>_#erNYr+0?LzFeJo9R@8k4IIH zz)Uav0R+;e(`E*k@hQ^TP8*P8LeR#erw-Nb2G=8_ov`v`?=iZLsu_=f+F(VT6Tg`z zPJ+?cm6)o~cJknGfA*qlTOGb!I-Z+ym*RN&9iX2{+J;UdSxy?6Ay(~(x%MMbV@8c6wX=vJ_| znuDw>pSFc6QEftgzk`rvs5&1%X!?16^tGJ%F@Ps0BWY=}fIWh7=ULlXb+-)GcR8b+ z$1*<%2NS-I8K_oTroKzmc>9Ek?!JX7yt-AamR`TC1@g}hy#?-gxd8`Vn%nT%L69Y6 zfNl06AB#|p7`0Zr<3mkNfKi4+|4^lSI7zm(as0c%!6?&w(-2-5wm+9a2Y%rDQ}~#C zbq^ln`unZH!bN;!Q=Db9ZOgp7gOS^`oN2+}<&7lIob?{YwhB;$J9`_*n&+^GOIs^> zbEXuSlfp#m5B2w}b=OystOu4eUlR)_7{>t1L|ymzVr8n%sL(A{PeYsir!|u2soYbC z;EHAh2gG*1{s~rZXWu2nM@51?^8H7;28?v_xaSZj@ACX}5elHOo1vfnI*2rEe-lQH?RQzmiq@|Z-kRb%1&6ic$Pmt8*Vg+l`vi{fk-yXgu)yjP_w|S*woWi!NQ7QkSGQ zra=ww<}`1;KuYo^@ySv=xPY6E|;b6B#l%3BU9p8t;C!~*@mFu3snqu~i> zY0O3FiT5tY6Z5t5y2E_}LBSXg^hPjyPnJMt`Hi=!gAFcKXFL`YFQWyfnc!$}zMNyl zY)3am?mpL0bxMiuMsz(j$6cds@9?=wstGDAIQUEGYc;Zzd=ou0iV;g zC2^UjtWS@=Ba#XvWClW&%#TmFRp*1$3fx<)?yoprL{vFZh0kyBi98JNLjB9FPP1>4 zToVtKYl8o;%b97<3NHiA#8T9fEE>LfHMu|oZ3i&!)U{qDI|2W8Z%Ldh24pk+*yMCe z%siNm=0|dR2;))KRYJOAVuBhPFFPdK!b@JVH!_P1fa_8zn_5klC7=5;p^(6zKO|~J zxaXeF;&VS!LvkMI{8)Pk;1e3505?9$N$^xro5@F4@_S2u0q^1V>e7#zG=2m0_QUsJ z`q{W$i$%k~@9yYl*I~uS`l%TWM7y|x60}m)KZW1132ksz7=du&+Gie0A8A|}8Gso2 z3(r@;GXBm4KRY*Wj2Z_oGA` z&f16|hg)jv+cl$ju$ab4sc zN}cV@%{#WYKTO>HwQ@g!{|w0jh2Cg(FEKRxDatZSd2{2$w7P}xqf}Rg9sFr+wC{+b z7@H@wGJXUrW5>5hI(~L2$W9v$(=c4LT`6sgg{Y*Q*wts=zhG#i);P|*n<%L;dlG0@ zd6<4P@5ASJ$1`$`rR;DzDG zPI_Gkpi(Um7Sg$7!{wz=ZF*$c3Jfl~2m;ny3;-k4;0qxtfzzS#RRBL4x;JI19% z)f2>*J9?o;kEGpd0z|cK6U?hlI{IyFsq;<6%cSyPy5hyDPKT9TjCq}2#=Qbt*^l`v zy~k-9<_aIoD8GLfAfqnnsRsgU8ERxl4`F~QYrNaVoH5$+BwGJ;l^!gv-KZ_SCg^Lr zwHtR=9ZvBYAR;y6m8w{ULj+#Ca6s0NHn;e)#CTw92#sy|+h8*{hb8|5QnTjXw>OJP z)^WFZ@R#ce^-S`z>HI$V-@I8ZljD;rT-F8lLP)z4qmfZVu2Dv=A^?cmp@T;lGB z(UVt22N)}=hj44-Ak564;Xc3JHq=$C%0?fRQU~)TtGD_1=v zD~*T^%v_+=@j=P(xU~?%X*>9|L;quwGeVfqDTr78lac-sp~v-JTP<8KKdOhxTFv(w z$sShXYmX;_1#azhOsZ>51{#C3XK6BTIe79Px$YF+NVe)x4GdWPb*wYvpM!E6JAS?b z3;mhr6j0q>)FqA2@U-7e+bep^YEy(U`jA9Aj;Jl!?xZ_onuou9)hR@>Fwq)P3k{c@WP{H)A_ z$|pk@4r(ncqtOi0J*#IOI#tn={f5??E{iz+Iag?hU?Lr%>G$m5SRmS)MvWGy8VzrR1yWMpUYwCm0kV6E%+w08T5zYBpK9+ihK%dXUg^v)cVPH**?V;F3&i2W9 z>kul2*JW+1brFsvX0!PBtvkeBz+M;lTd^yIJ1hCtfd`(MTa*OrT>p(H&2#QgK{MC( zN57I1D@_w$?;kR*^L7u)S~c`<&$<>n20_Ov?uHLeV)s0_V6J{7sS8~ z!mFPY+vh_zJf>)S6}Hp?Tvj~+8jV8$^kwp>i&G7kIh5wV$nc10SnWiOc7`<1hdt!xL?Z@lFI!+fCovl&$Kos&H> z5jO%vs2{uo?k)00x!4?#KVQJ0fJcvg=B%F>GDJ{HGqk~6w3jAL(cAqBhwzz9-U7d} zB0-llZp1w%C}B%6oR=L?MbxT2njgJMniZ_SSxQpgJb^P+7HsmA+PYa)5o%`O@EHyL zc62nG8_%G?>z352--#=2l0C^aO!qz9XJ``kW8F93u0+fuZSqv@n~dx7sU_CJtOg;%g!J;G>#c8t9Q@~wqxpW4wvRkyxl)JP=q@++Z|2z zHKb;6+;iu{uxhES;|>kKyhN8Y*^|+S6y__MD%!A-y*}G+DVvs;y);(taX{v*YCyd# z7;|z<&S`hhTQoDy)(}#xu+4UDOk0z}l>To;kv$mNc-L!;AXiHwT&q4Alc@K#$$Ut7 zJ><(%3Q%tP_G;`AkOLBu?awNXL}^u*hx+c)u5k}g03mmdcOLfHdI;~X3^O<(k_zXj z<|jZ=^D?eX*}274`4|>|tJeA`C)7<-^posf<)1L{&{!FR#4%mDo-J0db&U2z1W5Ct zTr#CC1)}rvTpT)fz$a&QuX=VaoJN<;4(NuJ?WKaGUD3_Sa&eCl#oGi z$rT0*F|Br0U1P~nup?%jyI!`%M2L&EO3`G(EgBop;@gEFMnKJ7gxGxu`E*5-kNFjT zX^-(|=ig<7>{81_dDP*Pw;cBWCN!@9Qt)=$G*cpf)qJ&WmD`V(JB=WP@z5#W#FS@r*(OopcGACIR8noeS@ptukJET2 zOnq;s(2YV09h^P3izLECr^4NP7B||U+&||jYnpt++GsV_Ot*m^t3N&5DeI|9!dd1B z-Fflu>$0H%YT?3{z&*CL7;5ZCD3$*%TPXA`;!!rpp!!YWOge2|d-XU(c_JmHC*-1y zNrf5KmO?-4rS&ddUEDUbRaj>EAQw0)eO`Q2xsbo%9{19+E)hJUCy?I zsX6Eu_&!G(Xtc?A!}pr09JnOQ<_?_{5I8n8IORr9@k#TRIGy?olM|o^&Q)I>U463# zb{4iSfhTXf$3UG-**-wI%^O1Cd*xYzy)JDQr)kU>c%;!xn)h%)r{{wBRSI#HN##FFn}EN- z{%IF!y{RBeiv#Q>#N@EOw&9$OE9-d~6(+m76Fg})mQV}i()op}m*#Hxy<_}yX*n6KJxisMYyd>vtc~?E?mRk$= zBVnQ~+tZTvaC0(^N9L$(J4bY`ZY_@&U&!Jirjd9owoEv%9JrLr6JD@{_MzWB<5d{C zRCsY#5(Jw)KzxU4{}@y#rB(fDm*tVoui>0?AwS&K9jERYlax+(hSn=QJL0!=Cdme!A^QsGL|(eAqwM z&0)@MCE6+&F^SYxU`QMchJKIy=rLa(n!t2L=aB_Mp4ZNK209sL2h62EFyb1NrIj3g z4IJu24f#viEgEhrnchP~!If>>Re@?5Z|5rC>bjX%!rG?BT1_{0G(Wp}pNJxyUPJTS-ONVLXQk51NfNQ2UbrRnSzmg|1IZ}BpvA0Jf&SRKnuGEUjTk>nfjFV@z zJAARdQoIgUKXU0+`krDHxVU1n+ZV|;Y1`ApK>IVHg;rFpT@Q#N_u<8qIhJ0Hbs=U@Ce{CFapxRGS0aB<`Q1H zJ5hg$JCwA2E_|9W{lwn7_KVAYwN6cc>@TId&NZD>cK@~3h?RwzymG_%-aQhrGSJ?y zE0P{1dTx5zd-oXL*diRbW61_!wTTJg@;+7X;piiAbb^OX2<`N#&_;gl6Am_a_l zJ%LcA7NaKuo~dn41mt!I6_0d!^XYMuf|SjQF5Z{mQPr&f_4{1}@S>n<-3s$bv(+<0 zs+~i2Mx)sHi+>QfD9%s3osSF0 zt!S6}OnH30d%FtQ!k1f*&>fW*?His7I{uj$`w)G`(%R0d=L3hKcv5qNZ*igl2jY{5 z8$y)lvzIExyj*Kdd+uEWbpyls^vE4|F#36+gx8V0@9Rc#PrekJD75n8^BG|mtlmU> z$YOXBn0pYn6`s~F&qaJ^V@Iy-*Hz=rR%&KOO?4|N&d?tKcWf%y86yn16{3_Cw&=~8 zKpdHzo4eG~4?_Vl%Z!9DO0Cg0{}KzoB=o~b#a(;WtGmlF=*ry_V(+$ufaLfgWe}FH z$x>pqm#-C`A$6%6epM-vHL=QfvmLgR2Z_l%a9rB|$8vOTc09l{mDe0D`x5QAou&&( zlGPu5+c{xolO%D>*NOs^C6SY-*+*N1xLC--1j%AI!cU$kP3fxvVJ|rv>^ItHBQm+1 zV6W9p#y>mY2d#MP!9S}bkPq_n4lU}>xqt)3M`}IhT%+BGuYthNimw`jYXR2)Ufr*v zxx{wl8yB`-*a$&>rk~gne`S|)dhxB}8ZuT=zp7xQm%fz8vE!@>zSII8cuy96my9f6 zzp$=eUkCEB+Q#e`vuZLzhMFSM_;iw>lJ01)H5l3AsTQ36Chy>UmngX8hgD_&&|gkEc@1 z%^SHxZ9PYlYkbOhm<|r*NzcWsLE#%+V}t?DKt0jc>Dk4$m;B5bN!r-sW`U;staghn zp5XmN^&E6K@m^+pva0_^$RH^$+eVaeybQk@re&CEcEej~>EpC;``hhD3NWB}3vn3n zspVqEgX-BFmW$Y3uGh=S-4d}Vf{2Y{|8tZY?_C){t8RQ}m?{wu z)cmpVRTTHW(qwzS|NH$|BWAb)oq5bNEc@Y*@H6@@G>zgur|cTH6UP&v^6J}bcC|bQ zG8Gp_L(Kg;444$={3j9XFi4DRc5u1y`Mf@98jc0^B=?B`!Ck{aAk}=9Tv$O7Zy~6SCH*7^80)b5 zVpoT})24ccB(*Sl)9b`jxLaS;uiBqFr}q@3|Ie0N`7;`qwA-fw_QpwL7vRO^$3G@2 z?`-kVl|4X_PBgRdUv?y%8V(;dYa~g;+UgJU_S0ySb(HO+ee4S z#1Ac~AEe6#fmAd??n9=WKVDo|96o5aJaKS~ z%)jdPM&2*}jAeTgI<@%MK0et-sBL$q3NX#9VLhS7?%|J^<*UE{41TTRZb#-^i(6OP zN{G!1=qf3LKJS~C(;z)LhzD`giMH<&6nxchqiHosjy-kXl-X0RrY9l@c49^Bw*sb%cx-|73P4 zf-Wo3H@#xzZ!0s}te1JY96aEA#|QfpWdjoD^W2sf<~WKVV3XTJi#wo%A&)Dq8h=&M z@8~~R?N1(vdKBm;RL~dY`!%a{kWb06>8u*)`8`YD*9Tnp$56w8kf)~-HTjOMZ;9SO z=g@*#wYtW;wssz=jSG3JGgS^1?lNq_mhCtlWNB?OWwrs#H#QXV5FW_hrl4(j5Ypq|lCC!MrpDrtu4)mObJ z*SQbLnd5IwMX}^bCSVa{*S9A3ex-{FTRXT{oUE|yjaQ6@G9JTWOCq+QN+yNpOQdXP4V@N>G!9ydx1F7 z@VfAZFu!4qrd&xD)A>wwMivWF{Dt>m=^x0!vr2MNX*M8it`5 z!^m#3P(HV&5~ZlE?b2|9E$l}bfpb5nlDE|%V1-!U;L@(JF&}^THE;Tb{JUdY9w64j zLCwp$yO#MMTMuuAl#eP*I;)_RE&J*W#2{iFO5SA%t?o0qek!a56$e?H)=am9fuQGA zMrh0?Vm{jb$XZF(qc;DBng|+j&lvt(2N$z#LZE+LkAQXzf4Q5?@2_f6F*T0wUSnoB zEW{k^U7^;R)7=we#%7+!H8%~-c{Jj4@c$5@dlG!LJu0)0dOn?|kwgp*-x6X06=ad& zc@^3^#mH-Tvz<2nZ!33NAg#IR&9<)8g}e~)JN9kNw$B>E<0`?4hY?7n0BdA*^CX}G zq^SL#Q3QgCg%|#+5Vk=h+CHJ!+&Q6eaXHfth-As(Vv; zW1jyCZE@>%Y;;M=LU{$xy|md-fLTI)(;5+yo_Qk-@^y}~iBQvqzC!c_ICLJg3nc+` zZBJ{|--(U@qdqd*GoYtSK>Xt+t6PEl{E(#5 zT)IwG0_ZO#?AO9K{hN3(bF^RRMqLRK0EY%%U-%yC-pgE|gw?va+*HV!`Sv#6u|$68 zrr6Nt`zCvt>0>CJ_N*~3r$Z-M(Lgj{jboMQ=bi>E)E0IRYm=aQU zuyf`JN-ckII$WC}ShFH7c)2~K6v3+_{ws(8_sv#pb{A=d&cxid`Mm!cUk7?)3$1VN zFY-8p*S582q~z*ASki|#aBZ*&LgNVC`$}B{*9m~jujMbl~JO#J0qzchBZG{ z*dmtxt4jlF=G@yV3hWrI=_9-lUx7vCyBq62IxHU?k@yutL?l}@JesKybd`mZ@JiR!dIyyBAS{+(ohFzc*Ju zo~GEAwVT!LBmvvXMTh@peZMkP^Qy$OaQf?`Ug^44?VN8eEzbC_(zE}T(P47R(ACXF zJ}vD$fmY~X+3mT}!&ljQQo|DBkY+~wW2FzD_7`LTNY^j5EVGLNf8QRn;Shec;|@$!A;E6oBL z{TZnB$b9k7wH?CG?Z0(c#&u$0{DCgS+q-XH0p+6WEp09DsTl~sOL#fTA!#-j>5h=~3VW)$9%bO=)Grr-2 zSNRn+E{weY9RD(Efr5H0aYQ)zr8?i5s}4eRYUH~c&+5-Efb}0AyWk<|U9}g0?<`KJ zqP0h;-);J(o5I>3u`}PSHw9M8VnYtGO~(!rr88<6<3&KO>b#WLmRH50mH=f-)&KVv zX4J@_Mb)D;1ysZzm#0Y7#8>I>_?NCE-o~_G`X9j=!+{5XQCpGsqoSHx#U&~07fSGV z2qLug2=qpFnVOiAea*@pylC4)>dPp($c^2EEw(sR=a^u?F;TqB z>tbI611CS|rYW7Pe*k5a)py~!8rGo&OrS%FR9zKh^)iTeb?6Fow{sEt7xhJVT-ao3 z?klo4g62}_0e!sL{Sn7k#iIsrSXu)bba5NXO9X$EKFuGpZTIHeMflDVvAf^?x9AL3 z@_^=nZPGxVN}3%){^t3rqA=4BuMS`Cg1KkbZ8MsBG6to}0u~-H6Cr+3 z&fVZl_@&#z`*t)$lFiXh&Fe+y*m zlgIsWow>hbueG_5bI;x2$6B|0ghu`rEL$670KeZ697sHm^3|z+ftrz6&}?9jw!I!R z6AE<(uAYGYLSRCE{)+|4Th}PVH)B`XHbBkm&Qm~|eYoB{8W?RgFWz33cfc4<3P%A97P6%uNj0)?_t2h?g%qYA*B@$*r|uI4)@y@v`8 znt}_5!H9l}q>g%BpfzguRHnPm-=B^ziMH2-r>i~LmQ8@15k+7Yi0)^}!0KDHF1WmeoL>rcBY#@*7<~YyPqcoZEWEy>fR! z+~0-Sq*lep+OTPhbh=f`tnqC`ovGyXg03F2Pn`6Qm7xgIv~6+@wD5l|S~T+x3yb}Q z+%FX;Mm!4Z&Sb(Ey*ZAxA5f7vf-4=Q8I5(yOkhFcUY_`FV0)7?1Le1)m)h_#f!E&% z(@&oyTbMErx^w!H=f#AamN$oNaE}c|e6~8(dN?4nBPU@Tn1unQdeSl^SMlrduIoTv zc+IUiw$% zqvF31gPOrv{7Y4`(ue!QU&ygXD4Pc^V{wn0$zNDGjvKWe=cD);qhbEtw`iwT%3-xa zTH`BREH)v$X*+K`6JbLLbkZ&yyu;oKhU34Tfu(h{1qRdfpNBllX5ot!@r5-E4R0=- zR6HA^xrUg{{%mBqP~#eBFfZ?^m+#y6-d?gfc_UuP#GrB97@dCR`Z&B1-1D-ZQ+@~ROvX>Jrgo)78utV)6Z$aS#c zPZGv3?Z09q{`NWwe4angS2RD6TLZ=`-}=m*kSSq2F29lfxbna}j<+n8U$mw9b-TA< zIM7?_O|%&<&wt3b9Q=R%9xo=kwLrE0w0@Pae|vf?9`Dk_HCDN@mI~7rzkF+gR_DUG zDr-Ys>-$Cq$j*s6>aL09{sqBx9)YD^8i21#*pG=TaC)Fc4| z==cd`m*r0`mpU?9H9e>=ZL9`W`JLW1rQl9WT(gC9rM2SNjV##7v%`8}omx>#i3!9- zC)?9XGnv|*TPC4DcAHq0xsAK?laBy@+Xt#{ML+TuSRczTmCoAfrAd<&*~XBeZa*b~ zM45%{=O`m4rq_}QEw+NCa|do7zpwbE7tY<>FsP7JgIT1~svPD1SGn9seg1XS^!Hr>PI`vlFR}q}j`& zr7eQi<)>9ZnWx%x{%z-vBk7MIfSKU2FUVN2xntXVZ(0s9xMW6sZ%(I8sjP}{H8n>! zcTz#!SLyj!pzhOR)j+20*epy&Pwe23_!`+Kb5Fj)cm`4ekJ-+scrxj%!vX1DjZEp0 zo8R7*pZ)h0Q6@5#303?6H8wGK0!dp}QOp%D596Rqy_!R$3JEMGzE|Xp{29-qBF_ymrp45P+FAoB76B zFr>{pePS%VBa7GB`GfaF2udhiZ91{j06iXeZPlxUDBt@xKHJ4|O%E9(rjfGgLU$)D z1ms$~vG*e7y8@b(`{&t&Jizw&?(K{ueH z6;=R)ZV0xarro<(fB%Q6`|xo6!@=TIy~x$48?|CWH zkouD#GKrn|!lz<1!!7D&s4Jd6IAmzY3ujN>vOG|6P4;rNkag?5Q=KB3@ke3`eu zBvE+FvRPBr!%)LFxc;xGeRy1bqZ?cDH8mW1qOP^6tAu$*6ms+5^*2EG1*MWFrgD=1 zg8Z!hO*2TLxPqGuP+J>FKuJOvLoDEbw4hIZPS={7Xg~f2;hXUd3hTsgdzj|?X_Vbx z!CyJ3<-0P1wVXDH&_MVHrM!;*RB4}tb4J2Bs-FNoJvR+}6|F&J=YG7RbM3Jc6$CVIOt$IGrs%Q5W|7oSP}4ssZ{ay;~E?j<6&B3{-ex>YO0B7gyHMC zHN{Yj_RdV$*)lz`R<&9sBWA;jQ~!|*^|q>L{Z{EEHR#Z0JH>GTs#BPV7QQ_-tLh0C z5K^h1S<-_?Da8w~5+=`yb0A12kC^q6CH!zqd)4^C^@J?87-2p?^OnYWh}>lAcXz3w zles;|wl~}H<2C=(dW^e&9q!3Iy6KHGyniK6RK22~c!}+wV0nG6{tZ5fZ%+02X!u4C zuSr&zy=UW3;Vzf^zHZ(NMNEwJa4s2$?$o&E@#Ej7ZdEhz?$+Dg;oNkkS(^K7%c=YK zSkH$4{+T6VKfkcs;76-9#n@(iq72O$Lr6p9Yp2QJx|gS--yd7sXgDPFUO}I-S1)L+U@IRk4s` zM;K==Sxp%WB`vJ;jr_^Ynfu@8FgIE0H<+s%(O4TjW}(YwC-ZaEp99N$8To}XX~_w+>SDq>9k93+k?YRb~C*RwIvbeQG)a2%a!lz#_lac}@knQJUO*OYwy~YaV7ARXRAi^ddUm75|av z^cd@}U~FS-dGnG(!cElKV6Ze9l%U+^kfSNbue!qB{!;#;-s~Qpuo!;$L z|6YLe8Qr~9U+?(K`}8Qqc#7S|Q2?f?pexztzUJYMB8gR1=HqLgtsWA95$~2V4}&4> zD5VEgVm4y?R8#Y9Pf(+p*=dxK9Ioz-@Fczx)!Rr82-V65V!CYeQjWJMDm3VO*A}Jm z#%=+&hOrlJ14(Al4-lg@Ns1S)wDQE&0EG;71660gz4cQhy9I_WBsm&4ehHmiL%_KZ z6IK2XXjtKqgw@~?`thh9Z@7)9@)9tvlgMHD0A-k)+w51SncX-wxL0w(xxGalm(c85 z>ghEfM#u(C+!Z(vfHQ}B-5(*cj@^5r6%072LAej@Fqg0tpC?O0L%a;rN}V*YYj^Ts z-P@pyW|_utx&0g9NL4!|$_s=E>0UG*?Oh1j>!0$909NwgwqHeDOpb+PKdEE0q`2)x ztwLG{;Yv6J>S8t8%Ou|;owQ=+y29~n($`k;q|A7m&xA0JTb)l3tS{B!I zyK5jSii5h|pG$d*FkUKq4#=tg-9~#p8|%3seRMdi^^&_>LG3%CnAZ))epqX`*}E;P zUm1Aau?3=0`L|bc=Z^*@#MhrpH;X0b0JZe|qekuRZkz1Vc%bxn7O<#reCxp76M^!i z&u3`d9;UqVD;l;IX&s`kJY~MyLx(2)rIVJd)*igSZ4C!Ek!i&3krJc+K2md0*W?5j z{7c0n==bfLdfRIRXcO>Pr$&RF+p_kEqAlT{D&p~u!M3AN)=CHiiP~4fhq#doCu39d zI+W0!IXgqJaDDkTpS^YA_UhB%gm}&UX>4X5gxM;D!Jz@3c85Z^@MPY-=U7nz1S_7h zY~QzM@Uo}!Kw~5k=kPf?oKf|(S!95NI@Mn>kH14}_J*x!9aNr$GZdWnAu61?=Plpb z&wynw+qmsNU=(ZL3)|Xte!n_++B-TXLx-l#UXd z^6^BymMVpan}=Fi;lp(3f z+}~kr5NGUgg|JFM3(0BrP~}=!fB)IbdZw<_x1lsC8#NNwT+?2I$co=YhDQ0&I6YCS zhjDdjp+F3#&-_GoJ#5$Fy?Q@S-np^*R#EBCYXN=VrJ}2fujSwMhHl1ocm&=9;sn&5 zva(&qFw_JmbzC_NlVME9mmfZwe*bXf=(zzD>RZv$jHYDz)UNy-RVm^modlVFs(dZ3 z7_^Ta*itd4fc!ebu@~840BHSattcmFpoIv+3Pq6-=s32m^2ph>1T`(}ebZa4y`8pd zWFuobMlMpdk>w|xbk%+DHWF1i#wNgQ=SNzsSG+i1N?7=Wn4=PxkQ(PS8+>Tx13YI) zvS?ER*-Yx%ec$xg=k)|mg2UZ#8%EGM_Q;`SOd&WNmO(TgMZ#DucKU5>TT|tr4Xr3~ zoY`5g*M7n6?u{)QG-O{^f4x*#d$816uRiY5`|^fGllJliLqx{R+qa*zG;V z*>o0~jmrv%00IYRNdW~y`tdlp5PF(%7V@yKL|r0Q%nW-O5c(#Vsi6N?=Rf}J+V0Npv7+-nfq+q zH-l*LB6)RTcF7SdnddJ^!sc&IO92z;)eXF1g%#^qtY~_j7?7nTNLiwdsR&94Wcl1N zI#vqiAK!fA{9}QpCJulC{02rkZDdM6Jlb$9Iiq%$&1BM(v!Y0WVUQY!H4hn{Rttt8$8bR^Df`60a~1noe&J5X+_0P&--fRcfpqki6r^)4Ob%a$>DI_iE%mtL^3R;;7Ft>Iz** z>8KD}IJ(TW@3+QmOpd7An??*wIKXc^FNfLk%)?gMt|(_3?#VL;rr2gav>|A2sZZrN z{uu0y0TmmP437ADItMIN_F^YWpzk*D1 zaP9m23skGw2ga-Wen$C;jWQ<<62W9?7;X(n)tz;_%areD^k{`QF&?w>dsY6T7UOj% zumVCOr2k=GqSOMQHqub|xvJT`WRz53zx<6}T=^USUb0;mh5W#8Y(z&wZ8DF2GPZ1R zy65j#c!J~M9WAn5-%KoJuZrw3Z71R!y5T>^q<=K_R*apwuNrK=?MzAdkr`C8i^IeD zJebnn$ZVDuyW`11nsFrHr9joI$jk}t;iLn5zqRQAy2kdDk8zzkmF=3<`h=k6+8~<2 zTff?6Qr3RP3yxj?Xq|KgbY68?hX%4y6!>_06f7mzrYKgwv0{aCiEeg> z%u5T{_(@kZk@mak&2yaHj>P3ey>@p|2B>e$49{OumlXG0O}<>AX?QF@xH$qE^HTMx z86Gvcvt?cpc6+)#`j(o&`MEzGf1$qQHdK>f<&52>5zdR2^Gi-N^ew6)AZ*KT?X{0R z@kPeruR7I-7;eD$qW@@RLEvD9Q0pCZLGVo*L59>(X!X?dQ(+9BVv(_3q6B>f)%JwU?0LF0G30(a{3ZrzDLMrHf?`>bk-`qi!( z=J<^ILF&c+yfmK3j=}+1B7M(u4&)dhhGuDrux^nFhogV&JnDpN6cSEbc*crH)z2S4JZJLx~ zd4m?O`)=t~H0!9h$!`x^le9sr@j1@@5&K5kkvVI<*mONxyy(~G_B)$2ci?U<8~WSy zHt|2rT@`z7*v$`D%^X$xOUYTip0^k=BJSpf-H%Srkm+UFB5yaWUB5QY%q|(qg!vk{ zJp#ANRNd4r!iq<|vaA`?zwEj<`J&AD>)`SuF%rhfwlQP2V;QC`X})&!zKPZM&;H+7 zy9%}@+bFCE(k)2J2W&J$fvJSjAdN^PB}hm&3`Pl~CJjUBF}kH&kd{VLYLv925eIyK z;{65Bb-mAd&U?)8PHPGi_3_gh=DcB|g1RpFll6hxLWyv60tF z2F)2Hp13wvTwuq6qd3-tpB*^-m`=pr?gX_NsADhf=VqfAJ2bs4GDQlLQTC}byyeR$ zl5kraR0{ij5v;Mx)v}8LZY8A%d7el^v#5$%WpLGd>K^^D)~bv3+lu!R{kiVD#HXPq zWFuOClDYZq=W>LeF#|W*Ym@`Um;U58x5;jG$3Nd((~#gzduyAaORF8ytEBOZ$FORm zKie^Xc2U>BYxZIiIM0xnu)wma5+q>{WN<~2|(%UgWBwGajzwusNJICy%Z)p%3EgC$mh|4LMv*;K$4B(ERT5=*w+;8s~7C$!{l zUz?cxQFGCnz+n;=a^JfkBl}CwR@nW>;$Ep}{l=0?T&r|6pd<6x_w%=K(j95G0i1D( zDb3cyKevHPAPIR{o<{$+$+iEZY*_Y(h=wqUnC&|UV{0l$S9DCTjMXbUHrqv=P;Y!}hHfN<{SVBij}4y0_a zPaL}=Yb7ervFUa4WLzBTeE_z%xi`pat5Z>)xtDLKOL6&=u~=D{X}`V4nM>>_A;jx)N z_3;Tkc34@OoB&CWh|xC4(lNvGO>rNtV$O==ci|JxBEWTv4Ft;8wj1n%W8CCbS1e9ooM!URoCV>FCI^F;MjXY zC2X6A-D=1XvvMo!9pc`q_b2n7yJ&HZpu!5DPvvzn&mYd|AV^k5*R$J)j+K;@gD z@p#@_P{j=yD8%RE@t_tcw_p@Z`_y( z@xE{fEuzw-Eo?;`#0>{-`zLDTDyoNQ$oISl-^M{Yuh@`G2i6I%I+AZJmG)81(9zkA0v(b(nbWp=i2wd0dXn`$;=5H zGY<-Zvy4Zjo(5@Bc|tiQyXF*MWv}4q7tq5_(`a$&?N9|J|; z)FZ#9pK^oB5t`T=1o;Eij2kcsEeGV^%;mts1*zdC63a|VKoH8(o%xJ8+$Q-C6L1W+ zI>sW;f+3?TfhA_u`@Kvj5;T>qR|ZT~*~5jVug%Fi7e%1;n^hxtJG$)$au4``qufNp zDJZz0Mngfy@zI8H3~>z~s@U}?MYuuoJI-u{KI_OK&8G4}Yhvxn;g|0PJb_dCt@F-$ zxT|I*s6!X@pb?L&NUw35=H7l{+F@&C_0uB9z+CZ)kUpc{xXwa%>~iqAZkvUB&M$!6+Ity(7OJ;~(ZK2K#VIzWCrJ0K zoAgH%Y=vwD=0=X>*(nZ`bL!|&&h>`UiV2z>J~)5eLK364W^zbX)Pi;1Xicx&b7oFI7oR;MmT#|AiAj*vm$G}s8M(jYoA zi_ppmu~@)H99nlfA!nCiP$+9xMjLHPaQh)U%&Oba{^;p zt20966Uxyssd4ViScRF-R`NmljOOOMJ<4C7^`Baac=y->7u64+X(97HX~|D5L0b8R z$I^4AY8toAXooYNdf&x`PbH#k8<>ljNyYuBo0yBbWZ?Sa>2@NeD`?`76v&C|Yy|$N zzKx2ueOocm(#>J6ndCA(CDr0dvJH16M535*dlon}H3=Okp=LIDtYL>+Wk)UTSBk5R zKk#b~~;! z{-|1Ubq%GvSYEmHdyU?p+j&Ar#u(>!OW?GdLYjTAGW^$Iaw0D=d(xb7@VF`I$HHIn zea_Q0THy76Q$LI5;oTgCBpx*9c0Cy2)T&}k7K`IG<0FSonXn+;oUq%i9m?;GIE?E& zct={XcLP*X#sU`ZpI8+Xeg+!#0geZf0F`(^XjJFwowN2n^6z%%R2H{PHqnQcJKo2= zij4oornR0%znZXudUF`9&(z3d0f)j!kMzB6xGB@J+`;K0xBXkGXt1_fZ90u9<1h7P zEI6vflrsC>O{Pl^`#z7%?gjuC)dHZzBG@6)`xBVQO{@XyNgY3y;;PE}$0sIq$(E^z zfX(wSvHD)r#-*(TiYFWfT;_t_!8J*8rGE4-zSi_9>&}FJSHpLD5$k6q8+lh3-TGvm zHON%Xi%-0rxTc$2<_B)F=ke)}4%pV|h~j=!#4?g9*VK99m00(49@!El-94MXC0g?? zUT^%b@9X#xF>cqW1NWSUlTNR2(_Y%vPP7?cmSpt1kzX$qZ-f*-B#4#Z1>0Y}51v@m zb8!`P5AdHhGx7)Sjz=F&;Ca8zdf*q+V}|NFyiWGhoJqw!^$(Ar`IZwDNs=wv>XpqQ zS)V#SE(VnVM>0xKKX&LSL0F}n4*UW4r*<*>O?*FpA-(fMR(9^Qv|c8I;S)HD38AF-zs*E5YqxM4W!TQTB)l80JSs#3>GCMkkXV1$8=O6Sj#Ztl_Q{@B+B z4)ChQE0*s~^)mmuZpkJI=6FUE=#+nv1Pu`e|2(E%vAC#j(PT@%yqo;<={_6g?hbG+ zDM-y7yu;GhU0t8iP8VJzMv;1x!+$nhsfzhU=FNCw6?eu7byK;R6qdvI>D&P`G zt^rqcF)7Mc3Qg9NR{`Rx`bXH*;_APMKs-{i&oFBl1l-CFLn&CknaQS_}!v!g4nR~pGCOXK*rEXjuT0~8*>X|P3+x)I1n z-Isb`?-N=&oVpfQ9`9aRkCgFdQj&l|l7-BxA-j?a~p)r_IWx<1-p z?xrHQ=6~C>w5)fFBI76JUcEe}y3T$f31$4Ed?P;8w)s+ZeEt=1D2#w!>q>vBNCWc$ zcBX9fU#8W0s!R#vnXC}M6ZZ0$FAC?U)Tu3-E5!K5Sx^7r6mXyVuS+!CIkmbv`d-q6 z9L{k3+6cTh!4;Wa)@-h3twRuNx&qTEteWEdrpT6;nFicQG2S`4c2xLP9ql|nPxi9P z!STs`OVFt5?Gv>(F5sQY$PKG-gTur)rC4ItjP-ywz-*u}jZ z-1aucBGJF3!5kKqq; zyO?0SrMOgi&2pDscK%mW+;D3n(@|%%#9g*7nmphRwwNz0mYu8~(XhRv)X6|aNDFzh z+EG+yuNuhkolSjsrmZmEn&lJ{ObQX=8~OvBDtlq&@_$u481q#q&#h;z`a2ibd3Tl! zSPv7%!WO)0F6wAxc=2v4;#fSf@>)bD(HFR%grG6Q)2%UAoT0H7HIhh>g zB)9L65r7F?XBnSdT!fXhVs-a$9z(%ziJ+I3TgE6xCJLK2%J2%s zMX(i1NYWS%6FdB**AJpK0UU6Re#|(7;xgCtI~rJteu3Y+A4vort(a0cBBs~BdJn0e z+P>`p3z8i1D!e@Wh`_i4m$^v4W-b+rS{@@`r*3O%*BfP5H$06;iRv{ogi3Wp%#2A| zw()bkFrS>#gMGO$18%h}&$8X~3#N<3cJ0k znNxF%Ely9&gSPCx0~ggh`f6iDD>dc^g0a=cv&1#rrAJ1Q9CW7(xc#1ty()F-_lHQ2 z%%oZMHfNG>e&7b>u>rd&PU1nJDMFL*uPzq}vM*K@r@Ja0{{Awt7>&k3rH zvB(?7Y$xW8y0i{zguT@-$PYSrQC=(HLO4YZRkED^=RH`fCFQrQhGlg#Oit@zG3 zp6U#F<{B+<-~34g>6^VE#o1io>UAoZT}LBo6hRA3_fjM0-4Iek=fvQrH(7knI%8z1j81VSGT;Nku|qqyy)og{25)xE#O5#fr>ndnh?t{rvJYF<^}JcYlfEUq2mu@d8s{T7P+RQ zvw1L_4}q&*$;?eGC!<1&S`TK@HJ651KpFkmnMAUv1x~T!!x1&I%?IUWKh|nkk6*Du zHqJDF>o$IW<)$=D_o7L}k44>U$@jnFntIi-MFaO!kN4iYv*$t1%HhGkV(A_8<(@J> z7&rp%kVV`V`!kT%xL4cCmHe9BV$B1|s(5UBdm#9MSPQI`B-C!0i-xZ|HOC*Ml@t-8(=@ahWB1lYLf*T*TRD+14(>oNmNZ{KqS z4uQ1CF6dpv#6+u{z=>t0rrq+gfucKC>6`CxXbMl&0oiY6#C));W9LlI5Vg>LGjL|X z(nHvXV)luKLWvZ&?VIV7lPwUCrdM2Yc`_GxEJ-B)3tjv&)Qz!`lJ`X=D5_DJ`06X@Xr8uPQ0N>Tb#sk z{g%giLS5f{BB3x-U0IWR{A&-&E!65_ZUNa)@On|q!NyD$tKYnfZ32#b3B>Ur~nK zJ98`d02Z=os_nqYtTy$y|E^$fZ0<7W1i!JTLg@$K#E{{{U61QPl!zve_e&Eu^(rcMd?8BEmM{+p?q*BCozd;@4=jeF9EwvwcrK zl<-!8QQDAEZJ8qW#VGR?s{ePmxv@8J9{O^&IGahUu{9NJ2Rm$C$D zRmrlEm17W1WRM)rsqP7C@KjM9}vX97)n%<-J ztPNcg8I@w;?!JVP^cFk}xEEIh8)1{$do9boI%qZ)VzhBW@qD>MhawS5rr>)_&6Zj^ zpJKPZzcKQFMJIHZu>*HOBkFfrg&|bJ{-f_LA%cf3PI>C+)mQH@2Z4Zz*C}Pq2A$Zew(*gKg^SJ}c&VlwtE{4R%M0$R zUv(#1-rm6jl;MC4u4$^Ixlr)d31Qg&K?Q#0)e0+?iK`mF?9}M{7x5FijhfuF8ZcEecN!5zQ=XRoZ zfD<({pFCFXPqT1?r2y4l%b)RLDg(kZC)oG1KH}*?R}gUh zTy;ZsT0K_NTc;21xvzl{=T1H2ng}w>_{2!eEu4@ z7Ir5kdp#M(H6(_GM)ZaE@mNcpE2FwTMzy-!=AVh-tydc=ll_c`y#lVIJUODGnCGf= zB-r8e)Ql))#SKqQo93eH4_;RV_27-F$qbxwfoJwGV^?^Q!sT!naO`a?1LPPX?nuF~ zBy;k*%e<4qxoYh8m#0OAXd^EITTS3#oKyG8pquN_gkVh*FK8M#M!>K+@hO@KL>v}B zjwPx|o60a1^%$@bkZepoFWN<3x47g3AJ%yNHGsv~xYZUaU zWvL@1>p@CfPdZ_S{gNu-jcWRdWrmwl~k9)1KI5HPcjrWIekT)zIxSBD}7 zOQ%6ZnfT~$2E1Gs);$Z!o@BanxBmEUCykQy7eVc4Uf}2^!-Dq0qw42<1j4IRjVCvM z3`k9CGNC8(A^$9EC${jH120x$B7GS8RQ>p%9ihNc5$P`3U`=lUViMHAOsES-J0ktw zX?3yR^NOsclc+6?H{C8dD_gF9Z}4L6Y09ld;G$(2)bd`~C@u1}H2Y3ujCYNNv`+jd z80Ys&Y~)M01f56lrs_$B`zZ31(z%XobqBckVDf(vo&KK|L`H+wR=8FU0r z#MZDn4LVzw66eR8dr9xB%*j{OA`BULfJ^aJU|n5NUfeG3PCvK^#h6$eHMhRftbG%h(yb!5}>KTEk%mfC%~qyQWIrU~`uj|e9h^%8P+$M{GQTCVwoVrwTXa^=Z1 z#MU&~gfx84aW6-m=qbA-K`R5C{8Q47`824OBIMF0hZ0~dt&I;A?Bo5gxV=3lc0n55 zJ#X`X&~#+1-ky6mT_kFm61bYI&mm3k6IDzr`^Lz$%IMp*@TaWJ_L@*03SkNZ4hTdiEGFU%P158U;GL2iYqqw8I}4 z+@Ur05V;faShyEBw{f({Z*erW^gjXks{qmJ_N*1F%PS@eauOlIyv=6Xif=Msw9Ac` zVF@kbKTAfX-GQqnZREjrWQq<(1h2V{2*z`z)09gkO-V9St7GXQ!OV5wjk$kX)f(Ga zrC?(@z00Db%$prx_0R<}X(})9#w_e^7^F(hol^Bsx8F zzd704yNChqujZR6rN>=$c3J1+dpBcJPg=N_UIO(dIQ2%xdxyylu z_Xu#s*)C9jaO&Ww+(S2dC_Iq9q#LjE2-+a!% zNql0;#rgwGF=KexZ%^X|Mv?DkJ*3t(`WEtD{NhC?851U3Y847{{|sKwb=oC2$O9)0 zgh)#;{jr;ORI&_q>%`SQ=TKp+dN+XU((3>2;pcH`6F2m+o3*ntiWt^v)Ljdl#8)kq z_d`~=#I{+nc$2z#=x9Roh2`61Q~U47!%TGXs`HxVo(HrsAMDk18{wrm?Z%k z8b|%;MLf3tsk%bJCdedC3(Q>IE>{#{Eqy~-f8mNyP5Gin?6I z=4X&lL<-Y#i0-qmoxTAfY`K*~K6W<;MT9d;oYCpAy1bE7+bA?4l^%f1|-M;g4f8iyxHrtz&D7cFWckr|Xl{df>c1m;+)ub+!U)=B}Xb zeR#9S#|>0nu~gWuPRYteTqq|639ZN8Zh$cA>byZ|qX9VbrOekPC}?U@-Q-%}c&Y^Z1Vvhd13n5kl$k1@TzH5!gT;6-x}wG&`Ul}D>N^UV zsG?mdA)RAX?{>ECJYa~|-_xgO1WtDlgs9=7`wcjkERE| zwKMl6MYKq-zo9A5i5)P}d;3_BmCYSEk3bsDY}`a9_$5-Qu#sF7LoW#xHzj6-!Dk18 z1QY^4akQ)`_YCLSRD!=dX&M!r&I2d^41pIX9J6x$?QU27sPYgg`H+$?OjW#FtKDnK z?jr9fufQ!`@MU159{P)xZs!+pq1b2^Jr%^ko0*gDpL5~$pA*?hTkV-f)n0r`lJmh1 zP?b0lM44t^$XLm!$k@I7SqI#gSz^lq|LGpI-lPG;hu#qVbvEQ$D-i0bwyp>YYfl$* zd`No-+N~11RY3c%@>o6|xQ5WI2-8a4KczX-XHP_{!}e694fEB-nveSH^q zyq}fK7ngaa$#s)`K5iReOu?PrSe2T-SR& z&-32roO|FUvwbb>CrNT~SE`<}CZEf#-dp_`0Niy7Ceh3+4IOZ96-`HTp~cw6Uy&M0 z29$dYxvH&l;(ki@xU!B+YHi=l!+!_$o&(N8DFME*%z1XgzeA}m5+pNe!qg|c|HLG+ z9e;I7LM=|SIaozAS^KSi>yocm>~~XU4&dYp77cETHzG2fUO{pkR`eNov~?7^W)L=? zd(~xTBH_A^AT`Rhn2axzt6k6NrAmOC&_|n;k*3Z<$jBardx4o2V~*5N%dFG=ojc4R zZa2ogApYB4#7*rt6TewGx|YwN4d8%)WTEsDrU=)-l;{yX=?mUMilbewepgTE`i}5Y ziOg&xth1f({n(vzD4%WJAqu!bc`8=HdW(c66?{_cJ=o=t%efJ3!EDF#MiF45u{?j-)n@HEjWs)%rCb0?^1yKhA(+Z(rVBo^FtDlkaJvxUm^oG_Dv0VSi@E{T7fvV3}j3e17_1O1^CGpFP zRieoM9k+#Ld$BeE7hhW7$qd@=51NS?(JjE#8t5cptR64WO;0bIAur!uxvi$fz165E z|9Y4%_BZMn1OcvaE?1|tB3K5(^Y3$}WRK9s1KETR+YKq=k*=@DDGK;*+o}5|NW}Zf zYLhj4`#zE!0QY3R-?xBs`O%2Zx%bXbc9ODGah&HX&F$~XW}6RBk>Qz0Io=DZv>s-< z8JT!KL)`+$139W|m^XHNJ)t&VrJnS2OTPjuwKHIa zOZay1se^tc@B|%Z84kqPsEWFt

7t4rs=_bRM^5gW(P^e6ybLl~=sh`1za*xSTeG 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
YfAxB5Ek+~poaj)d%|L^ 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%0AM!oQgpt&m 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 z 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�W}v2%-xAJ<_EY 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

X~+ z#0#IUa@L3{D4Wp0)40{r8FSt(y)#7to8rP z4RZl&S^SOkq|>EQ#89sS^QBxO3$hKev$q=IsMO3*S@r}tnr6GbpZ?+$sQ$ZV_PqT3 zDwKhW_-TfH0hd3JEeQ0JEABcN{g@uTb!>&5wI8yC>sw^_K(ZckgIV0gsfVSnfWG{_ zoai5{&0c$ZcjkCsXP}=TVwKIcqw7h?1%mZVx%m%H473Y=z23R@*orCxCFp>@7;}rP zPwI6MJAJ>Rmf@5^5(_j0eBW_;*ZP(OAE?=X`VU^8%{%FB=PCf}vi|M)9UINNuF(1e%>PU3c_|Sk70DBGJtVrZzp@`b0csiuAfj``$oSbvt*69Dy9n{K#;rP>h^&g11m2?C%%OwZj4AaT&!l>DC zBQO7l>!ShC8ms31M1i(XRVzD8?GZs{7y2^;Uu;Fd3tsw1HwtvgO#uJaX?g9-+rQ_= z\RQn6;48q(4An*hWYqH%1yRj$j{ZYcHqSMwK&a!trTl7Q4|M4)5kZ5OvK^u6E9 zg76YU;5W(8oGNfy3CX$<&{t`dN7DM_NWDvMh-DKEg6|;7w2#zdPt;PAFUXq-rrLjL zK+k0vr1iuI=~Bn(TkAXr2(MMBXfxj>&$npC?Z3OQY?Y)>{2oO!Q!;Y1i7?x;B-bCHPzot9UV-1sjuts35SH<~_Ka;=eTj^e3re%U3ZO6YY#d_zW zy+}Zu*9cJ~_i{>Ha^EYD+UQL1D2}+ha_OF415){HA9SNt#yV49Ku%EH9{QLF=C5eE zDJ#}S9E5F&pewrfd)LDgCi|y5^60qFYGqe{A+(bdpeRLf2wXNdQdMmEss*2k28N)q z$9tj?9h{R}4PFTJ0Q@?kOZS&rOlO2=;pN3#x|I~8GpALH_JWdRh^f#+3rVmmrcqqE z1bzr@iXb~Qtb3rq^v@T|us6@kaz|k*vdog*9+lj8N6RMW`vOFKI?xNp(F*~=-r~E-WJI;%ZogEQx`*s<}U`VEI&ruXhXpseU=Li zp^{`gE?I&7D?Z+%g)d|)gS^1rR=eOeE2|&+(%-QgODuu;iMb+KtD368r2vWwDbNRA zwE;DD1pep?>I<{(CU$Ilcg25YO}^RhnqCs9*`rQ2@fEy(iuL7%95r84{Q9F{3rON4 z$@U^7v~sjf^i`J{9a??Td8TPI7(2PoG0Hm3f$qi~7Nj_(rqr4RX3o}g{hWhwDHh{s zV42kvl5}PMsuK4W(hLVeek#&2D14?!WIF=zYzDpJcz3+Fwx}X%+2Tj6Nre+n0qw4< zm?cEdEHI!eQB}wS(ya&v;c43fVQ|deo(qUhfL?v1Wm-a$BHFusc1yCuirss7&%fgJ z>r-C>0MS^iWJ{>e@=$gpqG5Kjn#=;@rKfwlf7{8Cr5;zHd)n$ms7wq_FoOtV6gR5A zq!(I6*n&;_-u~W{D!yKszBt_JE$*B8W=*J%nbmHO^#9gu%fH>UxopWNoTiY;8|@)T zW=ak1VlhF2QBV6%W0)}LK%hi@5$5H%TLH=yc%Il9__7)u%=}7tQnRja*Mq1ZgD|br z2-^{V^Yd7n>R&VY2_XITE2Sd0G8(+%+gO{*fquLjP?(g^j!0MFx@ch)0y@0K!+Ygd z;=hHI{n5yfo2Gr>q9}S#$HNR4jkvMqA>K4xShdkpyQa_ogO5*RrS2DitG)zIOT_rl ztR}6daZvSrnE!6CFkwoH_IJVYhN1}QT;{b5kGMHXF81FhA)|)9`F@FA80tHfMmsr= z$g5NNZ#Kntqq)BYk@X#pj%chn9 zDu+(#N0^xM5#;N4di3p@;*?cVRLlfWMqa=oh1s-4;OKWEG^brKjDSA~1w zMBO6e_@-5&pi>c%?0ha9n7)J#Glk~qNVlw8}WmTobe2WaLAd z&lve`PIlDH*>G1-vwZtbkZ~)ceqDNnC4D` z7$v_MQ4RXqv!;}A)-whf_#YlM9u(apw^hWIJe-`gT64NYVB(vJBkBM~y41PBO2%8k?p>j3o7sKmIU z&$CVCaq;GiZG$D979({T^i*MZTt6(Ye)~w-&l0y*Bm1tvjw>I#hD~O>G+;tOAc?36 z3jr`Kow+}!q`aof&E4DAp5EHx6%cA(1-WqO50mEJjNtP0w7K^C2lRLINgyw$VSLQBrlo-A2>P2* zh^`apjKD#Isg^++y6-4=Gb0>w8>uEao`}W78)5Q~X=;Ro%mIOw;aTRS@csdF-!uL% zw*Xb#-LT`C*7LXEsOjOym3MRY7pU3?)b^nDOj(WrG|+!>qu&tcx}pmg0<-#S2+GMb zrrfagiUh?g&HP+RRBXw644m^6`sNc9vVWWa31d58_Z^D%?d}>3?CX|x;|jiq3JWs{ z1I2V}R+#}hGb`w{al_7(cH9vEFj&dolkC^gbcS_PTX5u;PimZWJ`%i@-K1nABya{< zE@x*|8vCLoUcgXmwMoiwM=z*A%hQch!SPku(m!Chy;i_IAQ3z!<5D@e-S4=ZX+ zabO|+Tg{9(AMO~%UJo{5HYBcZA%gIYrPRb6b?CvMcns0xe<;q4;?zr z2c2PGslwc<#y3NSMAMV=T=QxBvK^Xz8z#WIz-0!82V!`&WWBZZv0O^i_oJ)Ch`yS8 z(fBds2k1F_(d3h+RkR6ZZk+7TLCA$fHa1>OaRb3EKk%yBGe#LCddGea9>v4Y`yt;1BOe0@P?f6X4*#I3#lsNSRnim* zVNBP%pR$sx=|!+>q66Jbmzd27_hXu|%4CwyViP=a6+AD|u({GW65WxRzo19q&&Ph1 zk&5cLJKG&(oJ5g1EntVN=*LjWw)_ho&D2m2SG7?m-mGtJYCdV==cK<6=wYk@q2ZTe z!$zl`oUK>H<(honIM=w4QKgUQUId7m4rh1Qw4>~u z?|m;gy3;Q_ep%+p_a@l|Pfm(|JAez-1RU@&U%t`5gdvrk#!CzC^^Fw6n`Rq_l;#EY zpohPO$b||oh$-2%%`oI6c%RZ><2T9;>4O#RK0W<&e?cAN3w`Tk0Z7ICkZ9Vm-4qRg zLR(6sb^81;n_C!+)xrQ&k$xcxH?Y((Z6`aIvMJD0*?+pna&zh}+5C&2&BVSxw~i=j zfj`&#+gr4JJ1bi8nk443yn(W7(gv4z=LE+*X#+?yBuykhFQQsJUS!>6m@-nR_ZYh< z&WX~R{kd0KO_BDe9L zruh1el1RA$$T)*eT`&zp)D=H3Lxvp|f%D04y$*oq?P4P#P5uVDPa^HE9&K)eOLUx2 zOrSR|xQbiZ^+qc|b)10>?H9p=HeRR;;U5N}_A2wqKvOAoz`Hix-SAm}n? zpT}XkfGcObL$7B3`+*W=1?VomD87t%wPN!JB+oKJXVag~9jJdkeSiFxT23$9;zl`M zIN2I{b=$tA&`RpFowI7m1{OyyABLvA6Zoip$`$40@-{Kr`d|F9#t>nG!hbmgU3;4t zZ#+9t2%WQ*J~hqTHi8rQBY3|7KLi8*yB>0Y)Y0ZibFreP0+}xRj@q97g3WheZS$pa zAcAv*LX9?3$fFzES-gDsxKwu_ha@U~T_p^3zM9$>#XEN@hcA8A_DHz0-okk%MjMjn zyC3PJ%-~c}^A0*gU&6gI)%r*xh-5F< z%<>;V&HayftH>6y)}yPIroF#6Mxd`tOH&QU#Has?lPzVj&t`fsfis!eVD%kg5{)G; zT2P-z>be|HTH=Re#kH?QnO4n-KY;sK(Bd<=4Trromo`i5#q)Xz7eX3>O2{_+HURS# zbj@D8tww&juFTJ=NmWaGbA&``LAh(BPO;{PM%Mt$$*_e8NfLMPHukA20z~sf%OpKu z=^Rhmr|p*_@-C*y=r8ka9=jJ`McQ*%`C3dAMG4SFzlEH=2NSN9$Ag=BI`FHZr15mC zqM{SE6Mn~yB&dG%%Fo0iRNqG=H=m;G+1&m}dIKddO(8mOJy$jGZ0OC~F5}?#<+$`% z^Wg@DDih!ipiAd6w)l5_?I*u7qT3ljw$EDfbyzKs`jn4^RHt_&H}FxW`jOonO#A)W zM3E8E<5vg)^rathN=ak3reuEnsy)@_6sa)y;}oh1*}KvMhd>Ez`NNq4o9r{I?BuZ&LQfZ@YOYG(+f)Y@1IcnApGmU@ic zuf-7?d)a}FDli1pV5M>+lt06HdHBuH06x|+<9tPxu7ZK82znH%uu;>mU@P9$+xd#8i*r`3o!beubT;W17 zp1_vA<0q_A8ej_O#Z2X6etr#i41~jMok#tR-kd@Wzw-5cLeP;ylRFi3-{N3KG{zzR z7aVtrwo=;}CkHr1*GBwB3U%@5(g0@um?EkkPSrm@7$5w@Y3ezc;sDZquwEfbO4spO z&V<+Nl9l}aMRbH*uHkG+#vnf|d6tT{XmAvpk&k@B?8uhvxCYpO zrNeB~)HxU$u)sbcKu21-GGF=vDJM%33}mbn@{3e%}W!EN97VVjE6z$-77oe zwOR5fnk>SbkMxU^7^~9|K_}en5w>BsGSo&uW#vnuvsO;ys%eGd)Xpxs5@J}As^Tq= z_k)9vHaqB^w)()$c*D{tQy%)x-snm=FzYSM5EglyzO)%U%s-*@iIf*-a;NuPn45nC zxFYsxh=3B$goR+dlbckkbuuTDgV5+Sj$Rjp^8ik|#a1>L&^7cCA_aj>_qWM35$XM1 z^5fLBQf6mdG4%&`>s~+3OXa?Awel=GRSc@J)&6bf3Btw#+HtbQx?5|f$d}f4NOLn0 zj+Ht0dJUDS2+nBR9R3x8-Ysf*t1NZvjjReySa*#_PkFLXh3zk*Fy(JD`CVA+PCGoO z_qSPSTI*|Rx||5u2m)s){WdHBbJf>OV6~w)F#FS_$V6(p7DIWyzTb2abP_d2x}=}h z$*G{H@N{P^VkWQRIk2DWwT^mr~QRm$zIT3cJgOLXNx z{*RSZ7~YTyy^8dq(fsJ$;xLSJJ+PfT$Dz3OU|Wnvo$lmVW@gnH>v#QIF;$vw;;qc( z81zme77a4n$>{~RernF-3e#iZ$u>Nzu)USmgU7tz+oSLOVjkR<9P$RS=@LcWCAb9m zX>8YJ6?bmFaG%+SfP%bppK8pXeDAh9bEK!|P6Rq5(3&@t>)|uojf$SofWn2vI`M@` z+5^9X0B;J5`nWE|svRyTE2po)a2dXh)9$>f4}i5Q!yow0zUr&&%ftKXBd3PIrOa@T z6n#(+X09+40J;FB{8!G%Nmbc1FW4F4N8 zca{l%xanVjnG38QgVLwfxcZKVzs8fNAz63xt?x~`g2{SGu{3q%THlG zGQ)a0V`43!vI&*w@aAK3r;wucqKa=A^slr;zFdlU>eXpUHEB zSV{wZ8*m5wC1-4*yal1=TUI`sJ~or!cD{LkKJZpj%g~>j z6>Rp?@WEkJGCy!6jW5CCr{x4^2gJ`mCYMK&7`&|2fRdZ^{r21s&Vvdm8!c>o<$qb` zmgKk8QJuJyl0sLYt0GdRh4PYcSH+D;N}|>_l}MHtNAyPobo-FY%tv3{bgJboy4q0-}MV8;;N1R!xm}g;23_#c%ip{J*Bj> z+97N;?t@D<^g-TWq$g<}k`6)wy|8taZbDyRgZn$LaAv`BItEgdY>|>_h#Bs4O=+m9 zReH3_l#2{4KiZhyrzrsEqQw*ym16V(vj;6v{^~9}QHyCM>;JM}UKQ;d6=7d`rg zUkXD(5uiWnf$iRFMDNWhoA~q`-DF6!XLA?WZnt#8(;~UUjA639^bf#90_wMu5i2op=RX%(dBG0Rs0A|M#p^>5Itv&i`Cawhzo-aLvJ ziD+P~iEyr{vQ4iE`aX#Y&N&&SS&Z;nnaZOMM1el~xPA=B>l%bR`?`u=gBW=H-m^HT ze}(E`8=>tQxK{;0TGeAf2Xz+g!Ui3kWTm49vMT19v5&Kk))bz>p$h1EnL!FskOi1O zDQn>>WrFk@`X#ZOY!%N1F8gZwiU9Lda zWwz+TZ;*OrHN|h9yon6JL&%f)cAK zxFbVC`_@}<@b75opBV}l5g`n(VaH()UH$$MFl4WpFY~uLz+$houZidqj8=Wxr_~kl zgDyx@DoC&f^!u1SZf>k2Y#3uk%0% zJpiU)I~5(OZpX2<|6hAC+hz|ahifGgcL;7qs(-I9Hz8!wA4q)i$Be>R;6SI1!xU9@ zJffhFco0NNt;E*vF7910eDKP8o&!%0}$bK?&5X~F*V)IHc21A$)2v_cb8 z?S#f}-DwDo_d_To@E5vW7FiPAkh~~Gpnp!qt(yZz?k>_?HM5+T8ao`b%z7*mTBV#E z-Mew@TExW91?|%+5#{Zo8)D;ZE7X9%pA9Va+w&>1JVk2bewWuYLon@L!A>tng(5VP zJZL91Db~U@x`9@g2vP{_bWZ zK;X6@a~paZyA&fkBqQNq$ub-(&6xFu0#af9P*!0EbcSA^#Tf5MmlXHm`U?gUE#1$; zP~`G0w`e!+69R7WGR_D`T^+>%h#W=86`o~j5;Q^nHOzXnJ&?`LE zskHOH=PuF%z;}Tz%f`BA{aewu&TsugZ0%K*b=z5M;qPmF^6_t=7Y_E1NMub5`es3Y z0ABN1>I2SD7L4Uv0BJy$zXemWW$|jCb3JW?kp5WyVMKn=Yrusu*XID>`&^K|eH+{2 z;23cvSp0fL6`bTU7ink z_ze2LKo4{LujgH=~Rkufs)d&L>P2szn&fXdz`lBlRy9w9B+qp03?5z_;j4=3$f~lsW zp%&mNx?lL&A{NMVrkAY0eXyfbl=&xab-ME#J=_Woc6HF%DKPR~n#`pjh$b3;o$lta z%P&m3wK+qo$lS>uMOVlW|zrH~d zgtCIStpo1JP_=#v=Q^iAeIy(Pfv9O=A--o2f#kFx1YyI^aE znw$aFqQvC{s;0VSXy3WJ4%|oq-Wv~DLL>pTVX-}oN6>wX%~Gr)C}5v7tmNw`)X2y4 zW9tKc+sr7ohz2ny)xSq+N<&y`rt7W_a&+Bqb}ll@fWth}@c_tldnmCHTk8D#`HJO+ z((>tec_HpLZej;&&>!{ss{r$+9A0e}6mlFYa_*i6by9y(Ctj=bzz<0UFiJP$gaJ2! zOBG1Ywc!!y!X)5SPckeIUrF*!k>R?*=i^(?7qtFD9vxhRSj+e4y8p0!5X)HjW`zaGrEIdnd&P-5KqUFAgle`=DXf@G z5P^&z;pguJN$=t?AvlP$?=Y;O`<)t$fr2;D62YFXkz@Bug}m*C z)_*L{%EU*O!9Atb;Ntgl-46g>-L^=M4rN|VkHz)^>-c~M7i!`UJ=t=XycL_Ma?o=G zYU2yhPc6|)g3Z_KWh;1vvjvHM#!C~s@bF8m&u^Ij9f8u4-pr$7Gg|J$98ycM1}JHd zMJkLfQlNz68@cv<_J}r ziXbz)8Ge>F{br;&SIFjGQA5ls}`;^kK%v|CuUf#scGngXJ7m19EFBNq)9bkb8lD%%v1LfI!Efyb9-kw zJIU>`F+YD1uVXYDo&tS~Xr$rY9{-BxzNpu;QFu6?$UpWwoNh-_t7goy`-DbW`{#$# zQ`79{wMdJWj^E-FumCuj0Xyy1_dlcZ7V=+jV|U}?DHVP4Y0v=KZX3o!&^$mN2`Gn-~)%mic*!``dONV|)E5D_wP1=-fA+S(%5<+sWVzQr1VJy$M*RHRMm zbZE^d`uCC?1z$;_b;5UJ{5$=Gm9G_`6Xkhj`;#USWigG#aO{Z+GfIR|O85@()&!Rx z@uirvZ(K>sl$bicWo)R^SgFN3(}3BtaWGu@D9xHf8LQnFLRYDfibp5c_GL9|MX?cuX1LQ?BaT9WD6X#F#x5EBsj&{cTJh`z?wp5TiAvCRp$?vRjBZA2Q zi}BoR$x0l1nIObrPxE`aWU_D~v(YyRn1K!PT@TPH#gz9jhiN3T)Kym1#@idp=Fn~j zd-8tq94$7yKnkSazS^S!P{7W&a$^$5b!EO}DFAk;WV%lfPYCVNM58$URO%IFoJR%W z(>Yxa?>;&WbkT48!;-{1--F4c9xD$gDyja?Bj?oUb>q|mV-a#AJCZ!N3Pay2xo*rq zhjxdh5`76kQbrI%{Po346<05FBtL9AByF!L5_y7JqP z#vqs=M%@N)vPb_3DcFr1^zl!A&?99sxGk-7!XEzN)o5KHOYWYze)za>549Go?}rVy zRlakzjgEh>k3XJ``(g=z?_p-%exE^cp~VK)-hb#VASfqE*t$lok#&LSx%LXWB_*^c z-$H}4$v48dEn~<&aLZ&195P*-zVh?hC*!27dJ~On`pa%odIMykh7QtX8o(QRxvR{> z+SSHr0OgFgqjF~T9L2S!EqX06N1?U^x>GY{Xzdr(pxKx3c2?3;0!E?N{X!mje|n12 zalvr;Zt)tuDlkHURD+WiNA8Go_)-iYB-@}ZHKpD_$qmm4%=vCvaxcl0g8t)I?e}!> z$+i{H!5+E-AyIIhS0A#E8n=jrq=z>1#Apa$(9gk@LoAGF0{%H){cAXy>wAmcb!XM` z1#qNCOY>vaKw^GRR^gLYU{^PoL5qeKvoAI-3l37?H|Xpwfi8n~gGw{)dBzV*Q1zqZiLu<&VjosE7!_f_JVl9a_QoQ0JvsYxL>eVYpO* z)jlW5MbER>)^kc3J?A^4fqB{>ZgtvdeD!M($@M$rwY_ z#UFJf-ujuaMc~H;cL^Vrj9zhf!dgYPdAsN5_JE4=FK=!F2#X$qP>>5Zxx<|xO%th2 z($=u!+&R6c(?!wL*rhFPB=vN3@yYl-sVMzo96*keY*%1ES0-!%{O5eLNw67aZ&q(5 zHO_6Uzs1?2g^QrEvo)_G4cCF5d)u6(n|kK>tkkkuf>gy}oJe1bDQ0?nAq4|j!h{*q zKt;f;E{Dgo_3gMi>~u2sgbRp64kKDm>^e$1OWE1~!unpuP!@D~ZA>U;Gdy(=H#CBFX9f1m-g;uvjW>7hHesLx2``!7Sq zEs8SFD`;?=F{zFpM4v2<( z3WYFHbW!G4%sR=**5p0~-y%2T8}K9&kl0p7a!5QG9;m}^A;^j+fq~-YS}I%(1vP?Au#DLEo|z@pN3Na z-$0)j8VrZ#hLhbh5|{F zzZ&K@1~sNIZ96Ib9oSQ`S^{Ke)23%8S1twmT^4OW8il4z~dMe_Yf5TjIKTW{+g< zL`ZBJpn${ z>iT;LmJKmuy_#~P2}c`b3g|ZACemF|KKO_d8};gT&S_)=a!P}pc@)C_mx@)k$eG;- zLYQ-h+3J3QOU`?fKRIoHH(Jv9YRw2W*d1j)UPa0L(cfM58n;uk!zC%E)v6=B?`!ur&HKbu%oJ-Mw2U$KPMk}3MVagZNPx~wJOA=s zTA4cFLy_R`Wf-QMr==X#DQkT*-*}JtAEfM5wZCM}yVm~37#@eNX0TL9trI?d-~cc6 zcU%l13~5Ggf zYYt8y^rkjy_wP8EPo;_~K@;@ww;~4Sl$0KYD>PoSD_*zB(`9dh*S}zJ_3;+8r_{5L z+xFgCD3sU!{<6s`g#n)=jDU!#W6L+W`=WxR0>Gres>Bqfy4vT2zRhwie@jhQ9`rVq zX%Y#RP?|n&C0pcu7yof#MHLAJi65Uh2wV*O73R>vyUj^!CfHG*@ZOWQsp|(23UQM# zF{pAwGkotWi8hgN+_q`4c?wB+7M;<{L^urkXuu@R{wvZMtQ%Fc;xhx;rYp&D2x3-f zsOZ1a^3MwDXpzcxIWlr3i0#wP1CkS!XaL>=t@@W&pknvZdU-4+7^kDRvRaozi#vtI zo{j3?a?pVQ^tF{Z1oNjLA&Hjjdg2O2BO#JhiGHJ~EQVYT6x|IC-?nRFYM=<&5< zM{5CxpYNz$H1_G8HGc*w6Cwm7>e&}g&#ZF0AFjD=9{|49wCWS;VEXsRaGf7ml2?Us z78g^6e)KR#vSMqGpij&r$my->22LGo9;A|(AGTLYX)a6T5}>Z|RgaUbvs&N7XM%^6 zY{|Uj5S{I)nU59>ZBuV+KyxHWD zO>kAdsD8rz2(-4lkeEG@(dzlYeJ{AQ3?`0flJ$rVSKdEcTsznt!LBH0yQq^D(xZ6L z&+1|Rsm`k3{Jri7Rm@weT$hGAlNsHcGP85x-+4+)S0SR~R)nrJmnAMj@-y%Dd4Mg3 zTV13ur?nWQ4vIHj#8;R!W{H$je=amvBLqc0&;$P3lhihko%1Js0%$v$#YMgE3(nfy zkB^dv(r2@}a{Bg+Z$jar7xo~*mGaYgBQiPxT@vUl7dj$vm!zD_;hrP_EV}}d#>BJ!hAhM-t%MW78a69lKD)?(66oyhx?+q&Ldo6YKYq>J zF2hR{3Pbx}JlNiWhpHKZ=KQKScFkd(hT~F zIj69glRcI#zsf+L$PdslSBmQ#b|9R&U8ecInr60AxrM(>kDHFmDH1gVZf#Pqwx6AF zDBru&Pt)+=yx@y(?tsGYWO10UI1E(RE#vj6Er{7g0@YCIY z<`=@`|3Pxig~lM@zd&(F*$G%;HKwX{R7ebqhoI`yqO5Pd5Wh1e2%EP8Mfe-+{O_dO zJHg8HF5Y?bMrEi;eh1$I!{f)%)q?E@nOV>Ls%jRDH!0 zAQZ@aS5B<(Lj=7)eoqS9Z%vbtVm=>%vasOp5{O3W#OiC@p$AhD7jx&jJlCAHU z+@ZVD|6L;rpb=IIG`mnqche#S|CDhO{ANq|PSXG%Wq4@y!XyUzqYmNkr0cMJw-g`$ z8X$|0O)7ybWJ%PMiS=4`NA_fc++(WfWV1%Ob+)urH__Xrng}QtF(uQyG^KwFd$u9q zdQp_}`gQeG(?;%#N7l-g2KoV#ydk=IJj*{?GV&=hp8cXN3 zxn2bCn1yKSd*-G6WThx^EKPcop+{@h`TcghZCok9*tFZXD7R+36AcbEYXIR2rq^xwH9Iqjm zR%bAM&vALV-nc8plBCZxX5vv5$Q-v`p2m*sh9p1N3vK8ork!Gei}c69_Dio{*Z3h* zTrUU-IIiqW{8~cH1m_w1I2q=k^VPQd7)oLfUy0+Te%<`TvrSX!JRtTgS^XOROqpGA z?RQZrs>{2X>`$(=?}`wrTn5m6E9>v=TS0Z-f2irB1+Ps~1=6*?1sOIt(h9WXgHEEh zJ$%Wwd_N;Cis{y^Pl@0N7t;M1ErL(!a@F;Xbn4f5DP^F!7UWyT<@8ABd`Y(pz_P!8 zUc&xun{<}`n>)u#)$ByLV^hG`kS!+No(auN7$6o|3 zZb>OM&HE_?RL;nypJq{U61jq{fs;T1*2;;nhG_ls7SF@nX5nDqbJKrf}Hj zGB2JLkpFw;Uc5z^Kr#8UdP2Q4e4W&Ii*V3!&q6E1j|Z6j(8cA~IAg4tQQMxRj1&(3 zMIEMrwuO^x!m=ntuLyeKa=;7^IP@Hq=`Y*FS+9= z5sqGFvpi1qY&m4W9k@*=MDcE0$9I91tGUpsABx)>-EI`f@K9)7M-ZSlZAnIr;w7qo zN(s0(DHovFS-BSKg7CVqufo)8s4`0DIWzhH)o99I?&{W-N48d{S^!`fP{cfV*qSmu z2ND+%+sMa4(UVQEJ~L;K>-Tk8{hgC0MdTIbVGp+mn)+FYdL=j=c5)vWdN zXTWnl`#MT(1iB_9Ke61+&j;8qcMo+i4#+Cfz<%-h2_`#M?-b=cX8r@bp!CZ$F9m0l ztJ(jb_KG{`fkKVowpT*pGny?`38gqWO32b-l;i8xP5uVYtjjsnY|2KG`hC#;C06*9 zKcxiUY6bzC0u^9CYlji}XSj;Z(>R(@yY@yV9t&1%!Sm=&!d=05RoD}P+5imgS76YyK z0uMbVqnpRR2LnT`l|vI}tMDIRig&Ckj4J}=SI6i?kK2G&clk4#ezG$~03SALjg_!s zT_+7jZzYZd9#AzF5tp)w^L+^>m&gD;9KBpI*|uzdcVF(jA)C$RcF~gT&F?o)8*>3u zI^9mc6Fl>*99Lap1^v^$}vMm559q zV8>@Jx>cU?|Upg1@*A;eA^0P z1K+y$D~D)7E9f(cu(UcYDI(Uxz^i73nARc}8$PQpH)DmT58FRA3>LQg3XaGQ!qJAr z8@8*3yBB&{z(#XHGOSHZkwCJlJ5ogW!1)$C(k23$?!noHN5+59?4>4_{!D9;!1)oSi)t?5CM00ta-n$+UC*Nndx};$w*YD@WkM zuf63GjjZ-UI;#tc$A1pY0BjY%KepJqOM+{n8{O>#;YTU9+aqm|? z$ICu@8C!9isHb*T(&xlZF{=i@`pJB4Ytjatp-+O?g60h<)_|P3HBG3nO}*4`sa;mc zgfbFM-WwwR48Dv${J>T`(ZI;`T2Rkl2f|^CcP`tzg}RbqMo6GG{8ZcLM_J&B)s(Uc z{Fk0VPY6xT$e%-!w6$gaqbm+?Mc!tX7t-h|><~t#+uBNlixn>yU~sMCTt^-w-ky0? zxYhZeQua2YSAac-P-y%cb&H3S9C#IqTn;+5wTG|5A(?|>qL9AC4=++0cq`s9x?|F&D0)5= z!-p_oUY1{aWQ-=|u_Nj)YvSAn-8JBMO&Fu7Y9&W>D1)@4w#yx)Pill061*0dd;CeI zH3Ejzy=j@9dsKMO{FQu7W(#o0hN!t_=|tB;#g|}`Mc-Z$;4fKwy0eC)rjuM_V*t5u z0F7YRul*;Nk=b>{4lY#1sqYzli?;4#yc7j}#HXc!gL;@ijLNH1{|?@6;9)KxvK1C`K1#aQAhL zv+nwxs4g9ND>!GISlttoJ~^T4wWkZ{leXEfzUx+~H}@s1e6RCTM3{c=0|i5hzl*`_ zz6xE$fvsMbR$yEmiQ5Z$P8a$TG60Wt>aGzR)tI4G3L(NJZ@I3k2bykaak@#{@mf}; zpi5wzm}-fw^jlEnDXrUn-WRzx#s?|UdwxyJ(e%z|5~y@DT7+0B*Jq!j0kmDr=yBxXc7}i)fr+mub$~h(1y) z^D(}G@xZpzy?3)W_sTFh6b4r`7p-7e?S2=2rn1emLjB%oQyB0Z@@Fj}h>bf5_sJ(Q zj`3!d!)aj|q2=yVwh=A$0Q6w6WO1#b^|Q@c(}7_qk&TBTvAXxf0mW?V@YK%ajSo*5 z19+F?(A6jyxIwHtPS42^m^eWrNVTWhX*AQ2! zs-j%uJ$dze;P!3+hzu%o?eNYObMp4k#hsabgn(onS2tt8}K@Vsi zDoLJ8yX2sIeI3E<5yk=Vus5(q;>PRrSXXzO*8lisHT)P*wW- zI*aRoPDL~VMvmvE+n7qdBALF=Ra4?2vwIM4l}%v6@@ zb~nH;+JX3V*B!jBJoG=2#OR^fIbJ)Ni3$+M>z6J+DL~hO6dw%?PY(9o66BDH+q85Y zlXHFPZv6Ni{%f00V35YT%I#q(S0-#kfTGIpp#cFF127g~z|-JR_FMfl#n{UGQV1O; zu#*r)mlSis1-bPNbjeMk8Lwvk@XJk;e9BqDca4T;Q}HEqp6LBmi2%9}+^Q*Tux-qa zh&=IeVlZpMApK7uuG;|h(iPgaVd2;8Km}tgM!=)JhGzl8n@O1SvN7ns#W2M=9N0~q zOqf_)eX0|!as8h>2W%QH3yyLD)1hH%A&kR{t?p=yolT?3z+AW-#ZvE#x-~K=-tjP5Z}^Oq4jPAM(f9bNLtkO`gV+UHG%ernO?0 zp@vpjT@`Z}b5Gk}M^fBdML`D(&}Q6xq+8wL{1Rf(S#XL;7xi+KZ;{B`;dCoMO=$ZG zIuPLQ&sK6HTL1kmDp~;e1xM|5ke|+v=UOoAN?w%DP!k7EJ!r`hX1lC?wx}N_Yl14bML4x5+<&F z`h_`9d{%tQh|eHd+?62NampR-C30HwB8WVC`?y0M3fP4JS+5N+$7?5J6*c~5>8KRb zUER*PhbFT<)%5n+;MJh-X^RRaX^|JLDWP@1Rp+0N?abwgkr!u5>h)9!Q)K^_<-Ffi z*;-({`oT~|49w9aW&xqDM9NkY3}FwurT2O7?O5>W`k{NrzH8j-_CU@v=;rnssMZDl zG%g~au%oynVK->6(EW$ox}{|)8Fp8*Q?_w8b%I!m0C{_2^qwW!mEc_LgsXziXkvJ`D0D$blA|@zq04c9!C?i$WyoG zpac3ASKp}$F_PtMr+);yIH{AN<-ToXh-5jx3fL6mbEcxJVS{0UyVLi=GKVcyC{W}9 zLXy;|4ZW`<;2bY;HuPMRBuhfh#^xcJ4i?C94eG?8&yVK=^e6Wu0uYfZ(-XVi38@0P zhVdQ4|J{MHT&DW{FwIAl<(F~9D!qWmtZkn}3jyx5?(i5%3I|+s_t9#%wpZECKRzE* zjI5O>*&@meLC^Jx8Q^MBuQ54W!L>sj(z_OAXByyGq>3K@f_Hlp^f6GECz_|F`th!U ziB57GX|tFOga*nEHh%5KumvOg4I6HS$5k|HOpv8CulEPiX`%r1M;+kE*Jk9APF!)V zejPn_Oe|`I;}m4G>&&T?`{r-+vDzw z8byCJy|0jETfJaA;TH8Qg6`sL*Q_?z9tkjK_Gjt)OhO#+hWB)lIDk(+cuuM28dI0n52)NVPmG$t2hDB4xXJ0Tp<#r7BPXnSGMd z%#Xn+YuToaHF%hO6LT&p$0_>u4HuL29CSr_B9~2wn#^L`R&p>tZ@4F2^Q)YK0>w@@ z3pQ9X#1wX2zqA1yJva~>8KK8~@6f>wFr7mZ=nR+8vTAb)dInq3E#wJ$bZ? zJuTyLqy-02RPvOzq?`Es+=K*EmNJxaMP>22WA3 z*nd`Gi|UxLM5Do-^GeOH7X<-O;B9NaY8lKcOOibBe@FiRi;mt42Mmk)Kbe;>U`L&F z3&gZoDkDmtJ)DkBKa{7WX{yJdD&Q@skdX^^Q+o#7;#LuksDz8Y95soHv1U;9MUqWB9daY8#iCt*Ci~zsv z_A3Zc?PT$hZGXRR1qdhQmFFBqfUzppWWLIZP?pB7xh=08=1xyE?DMCX?hJ4r1)q|4JXOyVs85+?gH^#faB z##@M$0RUFFQNx!S&uficI0|z-I|AKIQ`oRhuVC>XF-Y4UpfmJo7Ezd^G+Y$sTn`Y?9 zbT>F(KIDl!?jkU9I|Vvz97a%KaR6@KTEILD^E&vALR!<9&5CXJ-AF%D68=tg<_`IO+{^@WToc?08VOR|3iaMz%S1!jv77a-{xVe(i zs!}QUb%Om9#`LglwOK^YmJn?Q?-TG1`c%n9OQ2wWR`5@L5Rs_x;> zh85`0$K@uC^1Na$Uh>z!r<@u- z02PKZrw%9itk{lL&V6Gx zQT2zPH&nlC!ayh3;);1VeC~TbAX8#>Wn)g4lQy1jNWY8z4G@GlF6g(gc;>e4y&N$N zE7ck#_)uCdYyv}Hy{c!yf~Qc&Yy0v+37Tf%E~<#Q(F zdB5=N?MLH&DxCXYhv!)$sc(oUlkQKZRi%er^{|KwYB^tkh%8xlcMw=&x}D&flU`T@b=F!Ylyb6ZX~>jnqR#sSdbd< zvXeyiSV-xhO*bO(0&2OKHvg)azo7gk)B+l22yKn{tYSL#FAh&?E+xT$KbRZ?EfkeT zB6(%1^Puaw#{H~)_bW&F6BaU;w7N&92inK6oioX%X#o zj(Y1ACBUA0)8x(xjCYP&#gFGYXJ$EPpGvsM9w1wr?i*EpcZ9pRzY z#p7gg>O&?v3I$l6J~c!#Fh0`>6WM8VLm6y-7?4iLrHRZ8X*C-}0|bSg(5w#}MAFDB zS6}(*)|M`pXw1tR*9f6pp2KK$jkWTDf+(sM2)0^GHkYx`In?zT6)4 z{&;u;I=a^vYqG3;@E&VPS*0;O$Zl)Y5$@jPs{}6jr?Zmd&SGx=_j`KRAWIiT2Vhsh z7)IdlN*MbJ_b8O%H*s5QhOOv_XS0ez=HPY}3D;}R=Yd~qZZNi zqUSI1f|>w5UZ*Ts2x(!50jfAJ&V_wV;slzi)*ly#VcGffMLyTPx+w-47;(5 zeadr^a=;t9yoc;1JN8-rleZ|ny4jvxvP>0kTH9L#+UT-`*;;m0RJt3m_;GJ4GM@q2 zkKvb|j%1#YJd2`&rB^Tm+7k_>clLQ%GqG~Rg4^jsoJo9WuXStfGjapPDdp>*sk z2Yt`x*>VDT+Ieio(d6UIZkUFbK9Jj@qlHkuML4oqU%T$GAL5NP3B6yh1C}KfOVm;5 z2>Ov}TGiL#2GihKSj?NwS7<#x|RV_nWJt}RBdjWsBk)& zf*JPd`5Isk`l!AL_j)&!A^fwvk2*7!U!d+NgF^>zXzhbxb@@bm8T!tJ3^}JJ(`;U6 z`YSz0fF%|Hb-J8Lm;P?1=^kz<+ex5HIv@+%2;RFLoQB?JfoTMC;R5%YQ_=yv|JINH?rW)431YV8`0`oOq;ubIz*o`*IT36EPwZzaLJ zj?bcR=`oq*nM_FguHTseR2NgcD^?hL02iop4H~cUxHp&Wa(r&ED)&|X_(2Cc^m(Zi zT5!5wSDuhML+jm_BH`^&_K$fH|C)c%)->X~Ve06>f?z)K_qhFk^DiAf$GHo1*~0y_e3W(vJqj(l`Uq8$*fj@L?Gb3SnRCtw z51rL-1QR+dn^vgtVa>)5&U9fe-%F;O4x2tf<}3lMCiN@h!`*X!hYH#KX8OxJ3e6hQ zWwILE+cGY)R|k4XMLxy5NZRYT0^3$M7jv_@H?i;6Tx~Qr{W z8^l_7d4=fi8?XPk5;$6TsQB_Ee{Yvv;T>8envb^rGLf{qq*OK!@SXN;M(CyKsohp} z`=lx<{uAUkiAL{@U=xs7Tc!YgG*H%?Cb#AKubzeS)ld;uaL?j*Y^@ysFooEe{3IBi z-{oA(0>L(voB2e1!)vRQAqv1n6ZReI^>5s#!GeT7aj^@I^f#KJ(rqNqUwh zuz}6p8P13jb5$)PKY8mI%vcKo73?E5{qpb99svleZIaJhF59~ShgD!LJqF+X0Yvv6 zK#t%#xyGDg$_JgNCtVu5Fd#=@Inimf(WM9U*636EZ9k#Am3<0~cymUz2Y_+Q$! zggmmpH6=x85n5>W(h+6P&$XtMaAD5LXJF5;QmHhr8mW`I$Fm4l`n?+1lDwB`A zLE%D;U3jAwd*;b;0MLvi65eg_F)=JiT~*mv;0Wgas5TJ~GCk$&IU+@z0{uTe!lhv1 zx)&#r{-%fV;%*xR zvVQNVx-4WMM;5A8P8%mS+yBYqgA4lY6wlT8-n`o}9Eq1iNA*&9K*XgpTa8a+8Pc`@cm|53x#gq7ra`j_{BvTKt-g$nCZIoXp$Jfbt2w^{J{J`2E?xT9XIykfg zHzT%x?#)D6XRWz{I&1%Ux-4bcn|%6-%c6e7!oh=%x#AS!Wt#sW?C&svA1^Dwjvw_F zq)dP>1{Y}8WhO!7%kO1lz)o3v<_x@S8(gN9amojhPT|HP2PLA;|3ue z!p&)K9OF?TK_BA=mS;YMd?ZStu(R&6qO9s*aI`?(M3apatP6eO)EwbbV?t*5^@Uj%UeJk=q!6Zt?zd!)=qF#-oYVmKKZ-);NwfbPpM z7fun$k$*g^qo!NK2>>1QRBTiLegbU<-T13Y|YK(ZiyLBN! zdQ-MH5T^1sG-$CxEui<2fDZQB&us)*(Dve@MM4mNiqx-(%bz<0vT}<;1@E9GnG*V3 zw%n?frHaEH)lZk0C+lhf8-l}E)jVIFJ4j&RhxAMq7JhZ6bnX1)bNH#10yzVEEJt`f z*8E5L2ATHiF7oH0G7@s}QLhjlX|)!e_Woo*EUO|fM|uANIipI)P~Y{yj43Kpgt9mbxy$9`va2$_c#z-V?***M;^&Q<8O8i6nJshNS3f z^YQ3w{rQ6(Si#hlXmI1G6`E1w&*mXvKwA1h$*8y-J3Jt# zt;4uA=!JX!`eK<9&7|Ql6SUv$JisXXMHlQ-+e^6^)z`6h?H|o)g*x6rT{YEMhdmb2GhX6LAxZ8i&2{ z#`8vK9Alu$?*dLhza(lnniZ5aP_6hoGSXwXUf|8uX8AoELcW{RMisCkF|%LG{fk0S zxW_~2OSZ6)xdM`~-?^3ww%+&<=}`6kM``@ldy2lH9Se+ilRrGhKZ1UM;4H9h;G!16 zbUAi%=H=S}Rf#fwYBn2IQ?63;3-|vf?lLR!_1`q@#N5NSo?|}&RAJ;$JdUZ2hkAI5 zqj|_oB5eL$LK9r{^WCVNDm`q_d9L^QspR_P&X{6kgeZmm!tRUO=tAXGaV8Gbes*dD zNmilSbUk`a4g5%@z1OvW+W^W1rdhmrB5F-56UE<-@Zgo#v|JNb6%xY<;p5``Y0#k$ zF#Fb@SiWLoMP3p#_oP-Ry&5~*cF~jNi1V6!s)C2(W^^QyMDdEAYow@m9-a!Y`yu@~ zfRj$wMIbBPwn`#=XV7i>E`=1h8j7dmH3Ry@Je}RzP5I%6c`bdPKJL(P=bWgdj^uJ0 z&tF5NIlDo%A}F*%Mvl~m6$AL59rQ!F4vW39<=4@9hppJlsyFgK zca&l0r+bZw02CGSo{zs4ss3!Q@jp!6 zP2do!ssEnrg)n7fZR)~#3oOUpj44uBjLbl-7k%NWLq)O+Y<}Qn7cX8B%BW)oJ&d*a z!!`qMgy_`3`tM3n2jF>i9=dccke9(EL2ZUP*vH_vi%qi%*>XQ^LZ3_Lq&Loy$>~PNQ$GEp&c@Z#i zVx-$X9!ckNZTfONRD(NEa}k<;DMF7gFb6KoD?TVLM;u2VDk2S|<})&h)h74Ntr|Z{ zcd`ikUO*r539PUd!7r5^*+&>0;OYMO8euX<*&IsK(XF9(JnP|T0~h=JbpTcSTUFGD zB@coFKpEjc{w0cfRz{fYyRV7sor60HnYeawzwYI@E5v6S$b~atui)N-vsKW~k?V8& zWmw+5#~iL%V)8AN9~H?6VB(lykWb_tXlkBH>0nv>8La`Q4c1$G{eP|Fe{<7*q?{() zW2#`17P2!&hA|U}zJ3G!ltrZB?B3u)D)pS-9e}$6jm)K{jaa+<_)>pEnfnMeP)O;e}Uen@+zM$ zMS&ndw5E5~^4)Vns2M0^ygyj%sHMhU*$|zu2xMpH;mdibN4C-{Ge7Cj z2i+oC-8O+AIsBvX(X@WR(mn7m(#YS;iUk{l5uP8}=q)7`Tk8{|ffp7PAp()#R_Aq| zfI@$a;Sg`fngd~;znapX#zR{}=t^(4$PYanwC{&*pwExf6kBkvJ_Fbz`dl;{%>KYo zaqu+niSCR#)jMy5beI<0y2r^Jbc7j zjz*{H?sI)30HDetaBqpFc(wfJ&ke)+S8Pcw5$uP3wAS_JAEvt_(8oVT+o&<=7;BLR zr97yyKMW)>I=ILNu({UM%~wWE#OS`@{jq*VoV>7w7U_Lv;#;W)&SUo+5}{ND9GUsV zOpD=*7J|LyQpP{+qutJX<}WRnkX7GdQsUJ8uLH; zxi?<=r_N?wWQ;@D*C{^71lY{`HDcJ;}_mqTm|~5 zzIH;TqI_|c{vY4ut8m3vG2eI9O%%-!c9qI9WQdi`!{|lerY*EURDqvh*Zct)kZ=_k zgYevy6Ms@VAZBAUPC?6M&8aa0es2U`DmsFWGE;U=X5DRnsl9N*P63zmbWKI-gn-SyhQ<>;$;1#% zd=mNg3v^jkAw|vo7d85=yzrH;zmBX46g+CI=otIxa@QTl=QV60p{ zPpUv27O%|Pk&fD+4$z@bIpkWUS7-{&2A{v>0-TfmB|&i0Ir?{f=WDM_>J)45X`bWC z$QkF}sef)#(omPyotv`CaK*zmWstlcWtsz_gKJ^eSW zw&5p2&m4%c&Qkw!zbOntmfAx-;EQDe9}bQ{NgX>$6Nw15OH|R6T}~(+oBJ$E;Yg=3 z=$}*T1lNo#-oaJ`8<|f+_e5A3Sz)7FpwP{Fbiwb7xzPgEiU47#X{Z%bs5zt`b5ek3 z#mw5;STQTf)FF}A_W;8MXVtg&U~_A?WMG^ZQZ0ShWo5lf%+;V%onCgL(Q1 z=3vQZeZlqr?SFibbb(j?Hv3I)w6j4%_6-?M6TnD=(b$~|bFuu_r zDTX?7L3ZR1$S3MdXpZ8o4e6c0Xmn~3JsDm+3W0aGr4+Ns0f4fBIZrzo{O@ND44Owz z1wMto+OCQmqr28$g~Bs=(9h~hfvdyxyW3-Cjtd*f96}26)#S-+Om!RNFD6~VG4jWh zZ|!WI^n5Y$mn=xbVt+@0d&Y<+<`$(9n25nyS|{1wJBg2^G8#J;)~`^u8pMA=E*vqI zKlK(V3@PxCiTtdor@QY3heAZy>I^nE6j&+%oibsDJlM^SAQ^K1Dn+8d-14!| zagFyMjL%j+(2}T2YmwZv3rHDR@hA@TLbu&euT%C9i)j_Lto66w*JC;|@$@tOuI|ZS z`hck(U1;(zrjX}^U-5evAA(rNZL6i9Pz}@?;8#3KhTNb;k z(tmw%h}kD#KlXSq?5pT7oFHSu&6vdkRcLE&d#Hrwo~{e z@92he0H;;$FX4DJ$c5{QI?Gp4dCy#x1+72u<9{dwHW(h+_CW#og0Ot%#RFr0U|eV+C~k=)2wMuXI?;PhZq6MurJ(2R6%BUKvp$IB z)@n;+tS9;o`Thm$?kg#x6(8Y-kELTDPfVhvSu1pWs*$qB&^C9=4W>{1lD?umV^r*&0*`EJ6eF07?jE=4gj z*sLZ=#m1FC8mkRH9qW%NB=aQ>@>;sK(0_WR7!XE~F}1$d=M=pkrl4zY zBiV=XCM^uSme&<1D}GY_KB4KN6iAY-ZylEP_K{?p*RO8ddc(%%V1VQ7-BAgS1d?YA z4;f$Fzh7^24Ux`vF|O3L`JZ93^(z`r|BOHj0ljz1ViL??l+De>v_EGTp7S?AA`({wE#_x|*LXK~%hTm5s=2S$gJAAfPX0C9=A>yQ(*}lR1uHy?R_(z zvae`m5xlE}Sx8z?as$0^Ro4c>M8iWhT}$N8X`J9bt5AZwKEV;Ngtr0+3%zuUo!}4ML9k2~=!+v1? zm4_p#+C8=_l%^AJ1wBjfeB8KDX-PN;`sOPB8{3mxr>f0c`z_+!JOZ`&LOlLxS&sSl zk4k#>^z6fmjLB`M@2^*cQ?@^4DAjEN7rjk0yS6{saCXZw2j3FM1{ier7I+YgMA!IAPmM0do^YpFs7rLT!v|Ef}o>Jmt* z$Y%RY%+K+oxx=@!BBvMuY99AYQ@7q|7UCLRFfIW1ueP~}+-CH3;X#}yy1E^m_75d&H2L2714%di3ZS&jcaJk21`RA+ue$+pAyc(*sxc`x(pe8dO1_mHI`v@C*i8JOf@ z5Ebm&Xl-aNTGr_)6!6NEPXJwnQzc4tYEY`0xk0J$;jR_IP9Ry#6PRk*9z@t4eR>;9 zEO+H{qe=>mAyj!zno66p2B0rG4vXol08KnDNl4xl(q9`>mFet=2_!NTQv(!1FX&^i zWT37|ZA$CGxegiF!+dCDQnOU(W2p zOWQ&e=mL%CC#Jiv3i-t~{tH~@XIzPj+9T|RQjKA**S0FtC6clK#u^FuxwF+5qn#hJ zN^=H)pcDr7e1evxTV2>lHhy+f3Op!352K%JR-O-?j4n=VsIG7}hE(9VmKPFTY z+y&mbPwLGR2P0B_QBrDZ?o+0(s4kYNBwj_~6_5w`tAnb2FeQTcE@&xNd{qpC>6z!46)%M}Ju;=gA zommfG7XC>7l?rcN0OBoGqc=?t?*aB1a z(8eod0!6_=_`R$7=v^l##TcrLCg|k-g2BLtCA)A0RQq#_)G>@DFUM#D|hk#D%!9Cz)w7-f{W#bW`s zVuO6)Z#RRku;9M;_)4zp>{xxuO&|L867Ab^;-F{oMWz;SQ>iKuMjl|XLhJ1y9f!nr zmx>ZPf4L=+Y20P5Fwck6usbjd`}NYjCA#3746NudjKI~Rk=Vs^exKbrcoagI<@%!L zEm>!|B&H@~1^VV{66z1a`9;;vs-|NNt75JbGIPXiy-X0a_L4&CG#Jt}rmhy5;dq7i zv;N`%1EC0T95ew&|IlvlSKJl&DkYe3e%nnHsEZoTeLlG%$pn4UmS=hVlBH~!aS;w= zFy+gqTx+Q#=Ql?4e<7xL=@q}f#i;vjHtv*)|H(G49@A8nRIBIAAO~^ zvD?>R3Tz~~L@S#u3Lkj^T}+o$Q!Qkw)jjyAnr^7!MUE0!x1mhxvtIW39a4Rr$4XGk{~n`kv%C8jL{YjC~F7)P6JBDF<|&L=|bR zeUYiT1b&w$-Ic5%8&J|%(|?u^*T9u4r=h1y#G?jV%_PFp{(3Rf8QS+oZ9ps8+UO3jyycd$(^|Bg0q$^J8BkXNU_%CO98 z@f&oSb8c(|;}_?V=6T_ofg&+XB%jNWeja*lS@^c%$#g3>sll$z_qI$$J|4D~0*LnErP-B&KC_OcHZt0x_(h|n$E7B33X zLdNPxqK_anfBwHg5kcB1pIS~X7zg_i%KQoalkPUQ<0+1a*Rdk18tYVp!f~<2OgC50 z>Z;u8VLDVP{{TL*9n>FT6#O+nO`iEQSgT-*Hrz{>i!tw@T=-NT8Tl?281{D zH<|QJxK35ysj|_yFgg_Ir#fK%Q1BNrLZ)Tz?#3VFhH3Ou2X4&(tyCQ8E6cJ`e9(1^ z1#cWTMTd|DmOVb4$qWiJfWJ#%Lg}q+<^K-j+>eORc#eIl>ym2^ELsvo*ahWSprtP( zvkKE&#uR;_{k0M571mj=%P1pzLhH`KD(oC|aeHi-S(WhI>NP6z@MxIU!BP!NwXR8} zcdm>F&k#;We(Kx?!y20#I4yxrGI_E4~CB9vlE{Fi3YiSgk?$HTT zg!d(UtP}L6&Fjw~v@oHPIc<-9Eb3;XKw!^4-}yE;=CN|a*YihU@783hzQKMnc3sD~ zBB6y4kc04xd3S|RcL^F$Et|e?(}oNprccX&f9X#1)7Ak4{c|Gk#lUEm)<~=TnCFpl za;1-Gor>|e?DO$x!p4I35&UTDR&|yrs;*yaHiW`q$NhWtYJ9qpVVWKsJz*e1fz5gfdhcW}4u-p# zl(9i1FgHFg$3B`NlwGg*k zYqtVY4dBjsEi%D6mnLBe+lm?`9wN$~*5*R9f<5gdGab+^Lz)1eA@67ww_oDF=!yUN z@v8zBXZh(CtdYu9V+HhG-P&6V>t6RN82*-+Ez-EIz{S53z$Tq-W(;l2ouv>y=WFPe zp3>j?7{D*GrLf5Y=%HcZl>aimJBt7tP2(`@;jz#(=$9;YS@d`igS+N7t$7-g&60fALbT^CJK(2W5dGoSrAm?4m7Lf(Hn~GL-+?GivJW zUD7&{E;yNTT}cRIuhL5;%9u|b4f?AtR+hK4mE9ZcUCN8GA&+}v@vU;+D6YMOv_`75 zLP+IGd!BTHsv-}rl=Z4zQsRdO!V(x!qN!*Zrf@pW=SI}x3fQgAE5F=9oVOwIVi15% zo%4GmP90#ejR}e{C>H#B9dPiau`nGGZhA$DoTEWE;k+81mZS-PS5+K^+QlBl4+ALs z7f1E8tB&;OXOkM$(=Rv4gpRt1BS|Cyc&}7#C(xU=`cO|(8nWsa=zUWUC`^}b3YtCSz`7I+xM1w>zserjraUyMKQ2YYu`%bd zvaFE4i3ya0F6U1$Kjxer3mjpzc9eD8vaNzuty?R!27_C;HfW$9DRlhIB<;}Ol%ra) zqb_u-qEiJNs`zuKG3h9NX4JTKM0>y)kG84zu7x1-S@je~^`3w}s>g%ocyN?>4n*x3 zq<~0N6LZ8V=35FY1d}+mlJ)d15@P$NA;J)xtu9Ak_bW|t55O`CF?q%Mx-4qSwgSa| z1ou^-=nwIGE6%63i|KV`4#*4pbI$y#Z9mn39>(}X=tOh|wIjk(akG;Vgzh9-eo_Y~ zq5N+($qgezZFvVR?x=eWfcr!3@(bnbY$C+S@1lf;iqMD*k`B62s;%dxt|&>+Gp-{e zhI&p!qg%6E4YF*YO|^|@=Yp6G13kY85+@E6KX}9j(v{$#X3@s#^-lh+tGouxZV?~S zBi|JTc5GMbywJNcnKB3Yit)eeY+U^am+J$aa${q0m6OxdWqI`MPkbtwPIwsLbCvOx zcSSdho)>*l@G!lt2dXg`Uz5+TmdO=d2Jq5uSAXC}?4+7k?hVURE;-S$)-*1b>wRI+EVifeO0Y6gai-O~Zs_?!ViuBKi zh-|HcELa*sl8HTsKx~P!eZB!2r+bm12dzH!V~xDuXuyLA64Q4iqQbjAa>r04#7Tqz zo6O$h3}|=CX*U=_(67ayaOQxZaOB{r-@c!l!TVu!-{_*sa~XV^xs;tYz?gjaa3)eYRPw)-JuSx5QV%qUHCar(JiXP~kz51!#CiIK7 znbAK`HH>}^KcTB=0<6l41A+sNsG%{KaHA3s(|%au#h+0oY^GM>R{&!r-{Oo9(DwppG`wUJ<*o z>Zhe1AwwsA<<{4Lwszmx&o0#5cK%FA`vZp!j51GC{Axba(NAv=@t_1CSxREY7#7y1 z=cw1;kr+T%ct!Pe7!OWVWeLxA( zPwn;J?}p)5B-5ct+O*u&u@WQl*`r7ZkVY9(=yQ7#(XXEVhvm*WIhh-S4NV+G}^b;)nmW0A24C&T({I z$1?0+oSLm)wU=Y5tWtl05J|98-Yf|d=|1(@3O2i?Bpwl6n{~4+5V92t*fnj(?tWmj zFWw)QP3qH*D=Qk&+ci|kZ5#gODW?P7em2HNGvVXkU+6F zzww1pSj@hnc^mtO3&Vzsxtv4CRwjTBS$0ki&T#ws_=aUvUdIlfSDBMkb8c&2E>wqir_Op^t3 zKmZ39f9|VSw{aIn>=-LnDlegWzqC_aTsLf(1dAHz`A(t89(s|59jQ(ISMu<6N{{D`X#P|XSO0k}OWZDIpvR4ssc&1k1xYW3%6PO9wJx-Y*xR25sy zcpTR-5&0B_hCr{mA}u9kI^tLm?PAV9`vOilywRBgf_rE0s!_ad- zkjXW);@VFRa(Ox^f=%0TX z8^Ss~(J;db(G8vHRaexo1z(Vq$|y-Qv1! zP--Xv=O|hMrpn)CZJ|GUr9WSA3u)dw*6OMH5W~QA{+U#b|yl`YQ#}&VLB%>xbi+ZD-uu;mBx#H1p6lDA$sW#A}$s~ z$s|x!tFXg*9pu$ppkQB+af6$JgI-r>BMLK@m~y8tdOVRV;-c_W+88@Tc$346koU}! z-%*n)%h})q);#lI=%rwzCq5m3{_nro2=oO_8Xr(~|JeD~xN0PpHBd)E zKdWClUyvl`HGYJ{DR5}?`CdctnR5(k;dn07+1i`nifTtIU^;zu&}2`Ga4;aIuLL-* z`oELhiI5K=r$hbm@(7Jw<5JQ#JVd`W5!I|4C(Y8{Wz9=FJE^5h zNl$}j2qrn#&Ry!V0|SKCh5M!zEsrEm(G6X#{{G|Fx^&Z$7Th;dhkDEYf9=$u8w%y2mdwikdAJMidEHEVI)N;-`#~cYHymmV zWq#1+;Vpp&;XH#Ap?WD)ifT-^_2LhxQ?bF8g^^-9bWL0!_J&xum<{=xj7i-aM&DX( z*MhET3)P!t9Z(fpPsn(f9Fi_iI2U%7CAy*1396fk>;Tl5uClJ9rw3t_7g$FA*cHB&i$!L#s73W!yiw4IVZqT;hW&$3CTWxj?hQ+Vz^rc65E%JQ@XgK2e z;w+jkFo?*`Ss8ENRnFS(&H*tn-OuGE3QGsNcT|02>y-IDj7BUF3KsR1F{WjVk&?wKNt%#Zc0-#N^H@45m{g>-Fh2GNDN zr>#1&3v`lEG1!+3J&g(*)xq5u>Apg|1J(U_Jv0(B>khh>A+G47+GvdFm*h~R!xa|t z+wUjefo~rUYXB;^5+@-o_Kx74s~~JT%*fROyiXVXgI@kN=uezG2GQ+7pKWbBsUIjs z8eCk>7DY#gk{P)P*jZ3KNO-a%jwTCWRH1}~mi2_gyOI?Qk`P&+aUhI|3NfjwY z%^pDLwf%K>A)|1{13)i*_<0KS&AH~`h?buP8{F_6x=lNHM7I;P!^_}Q;eMSOT+T($ z(|z!bg;m0z)SOBI0XiDzmzc}W`**5&Vk#bZc=P?M{mF5!kZQK?QNyI5ziJd^pPI%) zzXq{Xd(Aw0RPJHR%Vpi78|BQA50p~mML|l2K|k_Xcve0sPh*ULRUq?%I-2oaWw;H~ z>aky(Y`QRU6wA=FcV@%*3lyOc=-r|p*^;8ei`T% zN&z7wlsJrk7sH>D>8i9SXqPBk(*eiq>+MpzJ{8hO`xEcgN-IQac%HHS>oO{3RGSLZfRya;6k(Ln!?p-fhG z&aj8TolJ>aF^wKI;O*}(ngh`8*y?=EK2~N~DmXDa>OK#pWV<)VTpyr-6*&&o9L7f$ z8Kg!tM*;?K|GlR1ov)1Y0|w4Npe{j=jQ3`Va0?hYBwLpBpxjF7EG;$Z>cv|+($H4V}p@qkF(R8Tz$n{r=L;@I4U^bQoqqp&^6pdcIkYq8c7b-o&d)1`n3ya6B z;{#o;09|rC>R(U?9d)~H*!#gZlrk`@ea=;3RdQW6!7dRv@R`==?uCS2i?+du+MUq_ zWFR;mKTMW~bS$l_iO?cqV0Ly3hE@4VKXqeDARU0daI&_fBl=R(+|LzAqHT2uRh{L| z9&S6_(|d@+VY98JY9+Og^+`k2uWa%x=xBIL7yt{OZ1~-8y%AWg%10VrLKc4kB=RPerbrdlD5v*QfC0(UAHxaXMF`*~ZiFM$X)n-!v z&sfQq)|*-!*u6(w);x!ah5d@n8jMcZ*y;MS1ZUuRR1gs%v!EOFLcn|F=+oBscfI1X zrvI*)KblQ)?vm8c z2}QnGFBqvPOAiE-*EMod05i7!VGW(28S_^;vj45SRsAJtKuo`>w+lPoZ~mHA&@YMQ zslrJ@-ptiTuDuvB_!zSp<|-ZD2pe>?=z#f8nD0a~{^C`29G*+P;e?-*qWOSWTN-0@ zC8^mGrUknM6Px$b3U!yFoDOjqGWj3>XVASO!g0hZ6KoNGhZyEY{86lg)`$>MPA=4| zO4%k-gX(u%=*RCEA_HOLyQ;xL+~}d35@w zvEcGc0`wNfkSy2We0JQNa(MnT6uD%&*Cgoa@#uS`o%EmZeD@8Kq@C2C8|H)8p>d}J z75Rj~za87+zrQ2&tNRR3=8QayYawF3a0vtiHpIHt^CE#Re6IU0(bu+(9dSfhl&|Y4 zOk7PR!$+?YrlDZXo}eNVg@6sf&tMb35XPAEAgW4}$dmLw%pKOFJl2t*;(^8WJ~L&vTW@L6D4 zAsD%B3cAGxZPaVEQk-TYx|A;zHyu#iTgkdq06n@RLE{$#X@*CJHYW0J?&cn9MU9jT zVt!vY+MxJ@k8{x^-|lNK!!J=pSJGU=KMKgrK*_IIhut26uIXhb->+`7*224zy=x6r zTyh`zwLI>i8~lax#z410ObvLjGv+CkO-`QFmd~XJ(whFlbKRsju5M8?B=8hcJ4TVH ziTle*VQdVnih)^#i=Y-Fe@PIrK^RacK>pFVL3a6qdR03HEeQJNO2GE(_If(UBC#AD z3v)h($nSanp=B2T$j7D6n8${`fc84#Ptn*v~d&H{huDu~wB zng1LV!9W`uA`=Ka?luB=lJFau?eXtAOfv}Goqu@r8fn{i1J&F)*>96a+(JOVB-$dl zc&l=`a)=#<$b-0j%XG$FN&nH3_dPef8F)VPWDTwH z8Q$q64Z?^BN+mb5bT`Tzi1*Wy_o>-=03A|{is*G$c0eLBbrLmkvXY* z!wLsZCdNG2zsOpNF`P7J^<$xSZt?>8CyiQ;6fhZIdGhVTD-bxz?gP6#Ss!ADckQx% z+<`s}iF#2&&UWq2emx5FJ%?z6d1Inysr)T3U6;1-hA5?5!x)(7JOKCZN`$IEp2)4u z1BhfSMR~KIa!ET(EN#6rOCg7ScgZ)WF~>=_NaOkhU3TPOZ4Gwj*t}p~YQJQX3vv1z zxp^yGY%Esc-2e_HYZ*hJI%QEp_LO{*kK>9BGa4LNy6~ch_)aX%*B6mqYQR5-iu^?` z);jYxZSGJi;|cU`F-+Oa=$A&_v)dQDak|=yn?tVe%yiu?+`NLaEs!Mm6QuCqEVAo; z_#D&(GI_>y4uIAw=8GF62Etc@wsX5ds9->SNr_dWs4?QT=KN?A^!~UZMI!2*YG-1$ z&PEV%WA2yyV0rC$`rcFiB>vs~-PAaOsKe-q1oFe%2IC=zR3H>klpk5Y;yaLi0iP-g z$J^MIWkzKp(Os3^;Dp~LiUj&-pzI}RSO1J62+5GKT+tR{j4+&Vm}-M6Okhs;eK9t z!zcgBP6#Ot`)`Fc#aa^NxJIY*kzp&99l+jL5O|$~)?LT6oM?ci%YGa2Tu7r0DdtT& zbRmJ}>FegJcbqeFBq%+DWl=wT&A;dl!=c7eTJtj<%)>f=f{o`yTTO+TYVY0AxSrTZHFs3Nq0zVxC^J7lL0_0sq`t zt_>GayxL1d&8>dU(~r>1@7ZUf(%r}l>=$bYWC*wQpAcgt_GlV<%>s(|Nu=$n(Rb-% za!Dv@MZdoc**6v0+YRyU$|g|Jf=&pHf_DsODRrtP#qz->1v}7f=3YRfgHhwwc$u%_ z)VPdfPMy^)Mh%3<$;G>B0W;PFum(^B$n1o>DR5^@vJ09_`=NsitRx@bGt*p+)_#G0 zWL7a8mP+{hb5TH?D=oDb+sGOQo|jmX(81oPjLyN~-oz?pLwb4Gw<=If{bSRi&jEtU z=_wHrzOFPy`SF{rW3X$58?4}4Rtm?`Kv@s(cYr=ytQVDWDS&^5SoL+#jnQm$KSKIO zZS-CbQ<%RTw$;}@QbQ58&&`O2(ef5gN(Tz1WMXd+5QBT-J1^_ozBy*vuqVC{G(h44_xE$Zj}ecF1)LB$DH&E2P1` z4VCNCx&){wKTpqLo@zoOXU$^DTTT;u$uxFLRKYJZ;zcBv?Lp@Voa!dlaRp$NgB3`8{DvU@VIhUJw zJNe8MP>8tOu6ODa!B@i2Ri(famQa#F+GX0jPXbxpe%kHF$2!}uAcpM<7*{2sTDpQm zVtsB|VZk#)6xwUq3A<#4LSeS&TBCyg9s6XxrdY1nVepwm0i#c6ZclhyyLW7=!|2F3 zucyDcNm|@gE-XBHUE3nUnZv;lqJiW9w@bh2y-aZ-B$;+LTs1NkYX`Z<_AIMF$AbH=U96T0 zeB|YM9YJ29$}w#puLc&W7wq(Z8Hs(}hH>&^y@~?8F)wYuuA(gfI2N;i>$N1g(-=?c z14Xr2^JbwnY)iWMGZ*G1Y7g4CgHzX78v54jkiegtCwzr$Ro%spH1g&A${MZ*z3W~W z+}R6!XsE>#&>7{Cvci3eorPOl#r^}8>$D^uG2~%QPX-?_AC*m`o)Uh;!6uyEHYEGL z2)*B)*lbh*aBLTdY7^XmN&0vsIFja8p^#L+g%!``OZC80@@~+v%<{F*H@%mLbvb{O zR4+=)z-FcRYuI<4&$r}IFoLg$%CDXxrg6qTwoYdCVFpez?SPj3ZqCLs290YlclP(w zKLJb*)yHZ(%H8G!y>}jG;vg>^XOU1Fh!+3X5j#hB5L{pDoa(SXV5JR@*L;S?v}U*R zPb*GM@-hLoNyWQLSaMnypfkNu{uTa#hA2}r{jx}Cug2<5LzKBvp@@j)w0|CS=Y-tu zpVu&*u%^0_8sD!L*14>Mf)BrCbzU)>&Fe#f%;(#_LTPv=zsWSK?=v;8e zBxj)j`ZU!Wmk1J5Jp=Xe_!k!B72Sc0Dz82j%^m$CKAz}`Eg|PK=0e->?mV-`UyIDznP3V%DsoW znE?rkGi}|pBT=}s`RUC1eEp$NM!hZ8i>dxaF8GzoAT1ij-M@$|378nTL>K08=ehA& zG9QCqZdM)>-YVm9xC>MDZt2`12EAzuf?YBGicf|kENr;@OXZh^!z%2gCXAP&es}h` znXV?-Pxn|oEJStQ(s`CtWosj#ZJ+!@Bw{rB_YD2XeAGo*@li&H_NAZ%osw=TQ{^+r z3s)9-QH$rTHT)Aeq&;Vc&B+qx;TocuyA@9zWB11+kulCUI^7D1ozj6ao)3n{?*o)H z-@TLebfNQpb@2}sH5hmn*}b5j>YB(-O{VE>gI?Yy?zss6WKH<^Bq;`-bXSG6NJyHx z3S|XkId<8^aPA(Xd1GcfdP4HqQ4bD9%98#7$=lylG%yAp9djlcR)r@3`!;>!OKbfhi?f^K(LP*G{?0ll{@grSMq zo6p!5&JYuez_K0_R;Bw)y!|7ay6Rt)A(e-k+2jd+XiFCo!2NXvIyCDc=679A&5_72 zQR6rx#6qZAD;a|?KP=8bXQIZz64J`dHAi1nHx6f_q9DwQ;(e9I%ckp;iSSBuPfbes zXxR`+uCt+j`x?HEio^vpR~!HFGMDYEzsrAxSw>dycz$<=KOFLH3l%h;rUX5rHaI<- zVMSncnq1H!UU`k_&S>!*Wxo4E>jJkx@cz&6DYc6~;~}4^Xm<6e{AINME>M&dfHn(2>0&a%9^1)f9X5tLsyf2B#nmNx>FQ#U zz^w1K_{rpuBx~&72#Yb)^zRH26Hr=!@oBEa1Q=oK==M1JUWEwj89@ZIOQb#nF(#9? z=VZ`Bhe|q+wp%1roy+ZEx6)t73&I&8@P!FT-nX0PN`V&|qWT4j@45YE90&>?f?Z(I zK0xSOZeXG+7$xL1YE95E-#!nS!I;56+<^BKu9%V_e$ZQ(J+H~nS=UX5Z=%1`2jhBC zjQ(0a&M~M5km#WaXWWXPb(D(6ePM|id*wu_^YGLLqz1a`{9dRIB$0oSU}m=IsWw7X z1$F%ske889QVKl;eZ*J!r>np%Mjg;o_*^)JIH!*CXVWFvNpAH|y@Wc4ziVcNB)FoI zd-Tf}jf=q(SqGYLRo0gXTe=NUk)&p-yDd{{3s9!dPmK}Jk712$K))m^hmZPEaJPNp zxx8-}Pwgb_)hOf}Fh^c*gGDzyv&j7|+LItHjwsd+$hR; zkVFs2vW+ZOm1NVDx?o}dQ(>!Q%zC#|ASxV zRi0CatqZgt(Vg%|@f38F*54SS#|lrUHQA`)N5dg2t%$Qtm|&RJP4$^B=~il>v|ri) z`q|pr(q}8(k$n#f|Mnf;92~j*J6Zc6@=wrrb(4$-Q?`@NTe1;LKGfvnB0Ozn-)LII z{N*ZzNjetv+q6|o7tClbo9_U3K#0E`F?-&9PcNVyIA}WDa=)ICm?wCEx#%b9ze=Om z^2+$c$`bw45p?QYE~3U*Jtty{kN#IDT6UFFS#ox7u#6Vmk!zy)o|JaxqN^F6oh zrZCyrzxU$1Kmb!V`7L;+$ibga5C5Y{7o$L(r-cRN0U@Ko^*bM}(@y)8i z@q=h0X}qP~u0*{=!?8-C6qTte;0HT3(B-Cp{L^W?-B`+fK?lX&84#AMf$DWWmiGOu zD`(>YowGL(^ob!3VSGn+asO$RP3V!?o$B|HYVGv>(NL%-kK-oTByK1i*G*R1HT3?S zdJd?1fhvdS6BO_yn0svvZwmjZ3noF#nltG9mQb|j^&hfv-C^$#l?5x!90Y4y7f#b! z$B3nkkFfmAOqzdnT~pioaDeGtJ~pho6AZU^jY9+g+{2=@cJZZms-OH|*;^&uxLO`QpAG%DO}w1qe(yEe)FrK^YWl^%b{V6?Wm{g|@%?8q6ho9a+7iVO zxUml-+b>IV+h@S+!BT^@*XnVho>tf0dFu%iV%birEHWVl4fR`fGw58O+WTDb*Rm=u zX6EXLS)G2Rnb?Y9>$dz!gA)!=`*(P>7BUo4s|q;^$#JN$X*VO7)(|Nh4|txee$# z2}Ae=Rm+9=uCTlvMZedsu~}DvV3y)$86#;I*vWG`^!G`|%4&is;=5Ay69OU;U~g;M z)4}x+?4;Kro!lxl{3ohN1i-M2o8|a~SW*ExqdWy=-e4foS?VXY=q}RX76HDEEN@~r zK`xEeUT@=B<;Ev8J_+}Hz>mNG^7-q{k=KAnG90omZvoQb-~!xok=K)VaQE$=twJ^? ziKFwE51=2JmCe`FTDm)p?PWO4yEY`dsSX1ngUT1VTsz=x24p@_H=VOZZNqLV*c! zJjVCN;dRqH+{u+tcuB-(n(r((5t0#i$`O}~;5lkSP4$3w=4i!d>YZ5cJTP+UsW+ge zM-ues8{OxV?BA1RHyF^zxJIWMs}Uzwxw)-DBk_F>KMn(|<=s(o-PJr^3QN&cuqBes z8HCp;^&h|lF{?xT&#|+06hqeF!gT9q`ACr03 zZ^gRALOtflHABuCo*jWX1pm+(YC*Rcj_PmHWB*YUCOOwIw*YBjf;K$yH{TA}f|6|D`gjrU{djC=*Nci_CX` zz=~2mxvE#U;vWw9)w;@0I;ZgC9>Iz56nBY{IQ0e4KPQoP68I=&Raums!jPD9`KSdk zm8NN%tM@He>8*_m7UMQbWBuGI`-QY<$Y%J$JHWdxDtDRJU&yIn5b}z-tMaq~tv{J> z?Z*c@jmDSQ@1VD-dop+0s*7QT5zxlX?d{;{jI?BXts&Hzta{3MkMDB>$@BX{DE#9^ zd#2*>o2(9sOafV0 zzMh-k%*05>(?L?YM*pch=nFR?lyOAWLT~X)ohW>*uKgu3ZbiE;SQ$MgF{?N9bP&QX zl>F6KG{vKD|KG%q4$TH2rVUEf)~JMmnY3#WZ)?DaMM4kCQ%Bk=7g3qxk}4kLg#%X_ zz$1ObWL$6VVi9-*R<4(l-X%77A1=OFsn}?3q$pOQx@^#iQU%9~S=r9!&;h0sIu!!P zC2mv;2>#)Je*KM5ZO$AGRI1E?+Zq6eyav7Wd43aw>Pij;Hx1=UWIB`f131{cxjpIq zwa5q$-ej{19YnwZSEC~QQ+GyBmkRVn>0{NLXS?X-2HZ6ZrMC0MuSU%i|)A} zi{vH0#akDQ0WL7bhcYT>tybt%2`ROrylBSVk!fS_-n<`M^RR578}24TAZwmhwfJuo z^9|Zd(@}a*(C^<3A-wuc{Z%;Y*0o^O^b`ECpG*OHuBz19{)q}m{<+Z(3(_w0?o)!m zCyrOY2qqY}$wx#F1&;ExHY-4<++>EVJgdicDDjm1WeFehs%_Y;C#!FCXY8x4-= z5WBKQbeilC(NIkoAcI%52e7nMR=Z_jy9}24bY!n7Thj=>L0H{4Y!&CN1!Tj59^FyV z`ZtMcQDhDx0Vb+R$s$osj&oN{&sw^2c|w)B^K=${qUCh132c`Msrn!G+KmT*Fu4{Q z>z<;O9qAOy1piaLrrXc=;Oe6W#Wu8H*Aa9M{XhHgfA-0mmCuamSRQ8D^-`?~$Qk%Y z?P!ND<{9-=Uo(FGwCzH%Rlvg6z-wcsr2rCaHgFnnsZvU!XKL3J|Dn*;Kz6*3hQ*_5 z#ZR!S-GC0TC8+E>?qW0*MT{Gdlf?)Q-8N+vUQTOz zK&S};%PQoQWjdUegK_z;6DVzVXPCe+$gy5d(H}--~$H*;-B7D8a;oRU;-bEp! z8a-H${`f)o#IHcQN)-+ntfG+YR$m)iqz{Msw% zhE_r7JDvFG393eQ0Np05NlH1Batb zBTp2g^`Kr;F4}~No$q~U!uD!QqEW0H>fonnI=3(lh{)H5;tW*$>H;Qf8dWeS3t8)n zHM#quaa5q!=oP+up^awfntvOsO9!28+y|Qz5qQZ$gPSjZGh3 z62ODnl!w5Vq+e7TfAfq|QGj0$03)k2DXBpuJPOHZRm_1S7|ywSV%%5q6yoxUlSKu+ zG514e=FLLdLh8Zwk35?|M=p$1o9pv8HYi9!za_Q!wYVGJ$4C>PweVMpTs-E_Mig+) zrFUYNN|TH6BMbH#%6|sp=a%@CCbbJ;SBBhr9q2%Ll`7$w<*yQxc9UaH$yrI*@!&Hp z1+Jscc$=w^!N8%zp?IPgbMO8ApT11-H?sG0fS42bD;qQ_#5(1smGN$e$l>4mZu|8w z?e>3ug3-zR1f6noATVS2aAl{xSBbB}i{{B1>sn_vo6qOM|EL3j3R0qDy>d~ zr*k6Mb=R?_fVK2!tp)v!TkCNiOR_O?%@`nMDZVc=?>)rUcY>o`WEL(!D+ z$CVTBv=v^t%vzrv)vg?+=4QsD z{5UUw{>CMZ(@m}};K=W%j2Im6xlD_(MJJqQp_NaOnB$Vfuk71|mW zaR!3Ue2MKVSa0Qgdx&Aj9QH#IvB@SfjxeA)3~XL=^POFdQ69EreFkoXD-_<1=r{1aLW53(8cZHKP54aI?KLbaQ91|*7A4Z zZp2{={!z5)~>IXee){sfb8$wvbwW+m5u^;~-X%=v=Rw4L4YJ+V?ZmAfhf zkn0RNsnB;uE5I0xn7RVng{gS|!j0CTMbf{GSC*OG`-S?mC ziz5Z9fMO)SPvK<&KXbN z+^}AD`HB5gx+$*R?15sJY^=QY!7;AxK zDUONS;#01>;Gg>LVbE`<1`-wAElQMq+lxM$2+Bbj?iJI8r=|U4maCeAwdJAYwZ<6c z{7!fzBK9#9;osfZKwkdGXYgpk?fZNBTvdw6tpW6=4c->?2M6`<2pa~_IRYu_)05?; z_JiN>Ff;@P3KKXKm;zwhG%%$zbzvP^HL~23GJFg6rqQI-wXF`K8`l7;U0pHGSLd95 zb?kf|<`e)$egY%nb2IhpyZjak0J>Fp!I><(Lr~mwgZ@Mw%<@n-RR@^p{L-3tuM^bw z9x9Q);mfsL%&CW7)-8?gq(X3bKtac1SE`1n5}Tau!nR)M#+K6rnYL7D%Qt^xFgi%N&4_`l#U}>OtObe_ORh`kXL#5r69gdiKL0={MuP2mUOO&I$W&3Wg$+zF*Av zAvB_MN=6EL(-tG=#$Hd^^FEIkOhAP^CtjFZm{Pd!3e9>J%3ovw<wH|}`8Af?egE7R<0T-m=64vS63TXSt7fX)%9m^0=2wGi`1qWCQ1 z#XjInzun}Eq=&D$rxVP1Hq}vB39nAI((VZL476-ve?d?_AW)y9^=>c&6Ed6}F#%u| zQ`zx3$b4jQWJfiJ!LL<5n)ou|lg5iHlCKbo9M#2_7-U}m zhkp9rMYxa~TvZ-f7XffQcsiG+7M33s7o!O_nK~>U?!wd~t@)*e!U`#&3wlmlwBX?# ze)eqTKa%0xKhO-pyW%C;yqkMvhsEb-3z^yK-1xa}6 zr{W74`Rsh(jvLlpcPv4%UI{#lD&K2^el0=-w8p^Cryb2gB)z-AO4-qBjc4>LH$LfI zet%VaQ{LWEzIAnmwJAt=Hq~U2*8|vn5L;OqRB*C*=R7xlk?8)#pf;{sEHhG%^xOZX z4!Tk^=7FjgOZBjV3hHLr^jhUbrKiz#kkyBnD!ic2ac|j%!cw{kR_Epki?V2^3)-9; zU~NYQ?`Jb{+Z#aYD4mFnQM16tDZ{O?L##Po`05Gzh_BYE&S(kZrzzMj)Q_p!3ZJWq zj)7j!z5}bO}7^}a+D0=Jq zn=O8s)dy^Y%R`mwZWs&706{WR;iH0wmtRABBRS=Kw_nkNbYqBWqsmf;8|@hA8D7D| z2|CMHi}l~2=NgQ}MQgLl?OKmv7`C?24$Wy3bB=$u*y=EJMH3H0oeVGPamyTw4p6UACKAFKfC``afsO+`gz)) zB}6;agI;ryIsSXy%xF>yVJG|ZV@w{!&^9A=mpHSm!^S$$pEr@%#G=QG z_hISnds3zR!?58fU#I)Kgjbx<2^qhL{*mpUOLnCFM_dnmfUTtj-wr@sMdom^bhLw? zCy1QK^7OlCeV@B9kikl0n${DH27L+>9WW6CsXM1G-6Yi?Sh+#bHz9K5;l}ZpjdSs9 zuuI&)b-o8j7GD}_`5`n>@!!r0AoI)mcxc`u_VSf`w*L4Grh}t2Q%}(7w|i4#XhRq{ z=tQ!KmEo#VnuyGpC34ck$F2$4HCb`vfe zK1c#DjPp++{VJ7Q@-^!t%N2TcquKEs5v-T-5a<%o*dWPFcDzbecs=}}LcC1c^3`5r zglmJX%{V4k2NzP)6|fAI>h}}Cd(SWDs3w~ZwkDHbmmkV^V|;Hoe0!qy zIEWHX1%3hby#J_Dm(@k8@$M!qWyS9E3|#_>DkpUF;}gs7SV6Bqd@g-TrJb-M4k0XG z*sN1&mZFY45{P~#h-}z>2q8%9Ol31NrJ=-#-7YZ?+n z#%0l0FPyRXx~l~ToBIesPf77XA>uRmi@o@-N@FqAd6Iq}I*BdK<9<>uv(TW%<&AuW z%;4M+HFzAU(w#$Z$!imk&Sd%M`{~MpB4k3$o||xT`EJH{io7rR9wE@)#02^nH$bek z$@b7{G3$ld(v78_=QIrOd(leNlR;e#fuzdXwav&}Z@yf}UNqViGYn*k2JlGgA#;+1 zY;DtHk2y2r%}dU~>yfAVs4pHEXAD8J3Hkv-@8sAUeL4#@o+C<$!2KzbCW-3aS3fW} zWjPYmx!dxj{g{<#a$0^+h0IiCG0F#o_X}dXXv#w1{!CNL=YA|Wipz%m);yVpWac*P zE)Tk@KK!Q>uG?4JzHch9-89d)gT0m1nKIA?qD|FJhNO@P9JC{!vFPfInZzF{s);m> z3V_*9m6>b68Iw4Z&!jC$DTD>l6n*GwOQ{1YiIG*58}u=*wsgGvJ}`5@GV7)^j4vOA zOEb;}x5;ooIMZt281Eol)jb)=~P40NQzo7-i(cOEUX z_-b^;95H&)x`Fz#jmmWPwgdIKdj3Or@(Q*{m)l#3FVRrFFs!4FH_JNc&IygaJ%;UwK9P+nCnr1(N+f$#9Rqln zFop{Rk|sf&K}%Mm;ALciaa@rMp&IV%alHWQRq4{~-%IXfN*b9pgFqBxW#yM%ST~MS zLJfMqbI^hE6g4SJQj_$<3)Au{W%J~j@7=Jy!ZGAdeaPFzyJcdDt$N!p6_BAz?KZW) zVyMT^0MZ8dqo|hD#gzA_U7`~5f}=2&G~Y~;8-wbCZ$>)*K>v?V)^CLmDq(Fu_`4Y$ zHxbM^Qa3sX6eF3|bkAJlzHz4qujYF?WxW4oXAljoq)h?%fnSTf!wZ-E`fsLSU7qUS z`1y(NHNNGCZ{J0$%7YG~mULVl@B3>?;ZV+h*MWGAJ$)gTw*76Z@R1o$*Sb%VU02K4 zN{t;V4e#9*w9osB2w>`~>v%vxlsU>-Y$5!bF$9D7(nsClJ#Q=|tu6@#I-jdt^1wg_ zkuJB74;98C*AYR3RBF6sx|#v(`a}4q!w#E=GUOvw z;bdip)=7Veh)RFo051r=4o2tfGY7aF`AcX&X2VwHkZz4rsU3U2kQ^)tcBJX`^5xRd zfKDV!QhO6H?iHPa`y=vM_M_tP!&KMdBs{oIjvP`!f?byHGRVKVJNw@+^gAsl;r93! z;3g-?7!@K}Y-M^E^KUg;45hokUuZA(G|z)CEkWI&S0DwNeec3%TAYd#RHc4!!z~B+ zV8MO!7s+h#^#O04er@?i?Oe9KLJ9LZox?Bjw6g#u3K?W6Y-VqgC*Q^Wpq=+%v*F)X zqLh_q=qj$FNYFvlN>Ah-)q*VWsoT31o~@&V?OlwfjIql;OFax2^p+cHC;f=VA`t%_{F%bPDUw^8?FcKs$;3N-~5I| zti!i4KF?P9$N-tk<@X4)Z#gCQ14}Q;bWVhzPg4oxj?v>c&*YA8P3)*O!!c+xW)(!J zc zRsjGSEi`;Y+j8V7!)9h5ergzw>OAXNZKzcXtU?eGE`lEPm_YCq;Y{9y5KoZJU64I! z%Ho$U6k9NDP8UM_zj>+k$wEgF$vB#9TPOwmKU8Nl6F|L&$RJ0V_78_d%ck!ty3U=mPfIObrfwzI< zp$bNXVOn@R5~Bsc69)B6i<6KVC@Q0WM}B7d-Xwm*?Ri-{r!PI$(*in?tkMx3yHxpH zC1*qjOume7qN!;AE875v5J1xU6oLF88U7g`6rQ+1Z6qb=JEwcN1#~y_NaEsS={bC` ziTn3KhnMM%74*{kI?*DFxJqq+o_17hWx?TIipyiZ6D`v9X;1cTUtbWV%WOHb?GN`& zc9>6Bpd~-*5n+{bYPfK(ML87kRR}4$<^ku&Eq}&Ky&L>(d$O`U4o0fA$$EO8ekSO4 z@P%KzMS)qTR+T&7KRT(fzt@r*c9E(okA55IsjF-xnMWIc$#~w3ody5+DLUp0{|YcW zlOA-|Y0Q(%gmK~ZM5eQyZeHox%g7*myQzmyfqqHkH{ZaCT1+k6|H7GkYftw7o09`a z%E{!UEb-=Qt>C6Jjb-BD+QhkXC&;-0eBs>zi0*X9h?=PMe#S;SYAFTT4aMyzZ4-wm%;XGmCKy!XF0 z;YCsvB%T02puVoAGa~Uh#=ZT55%Su58GL->P8CzBMbxrVb*BP-(xy-;;bvhVPLSUr z;GeH68!nX-QJf+^vw|3Ck26J~A&WPftY7UjDLLb231&621>8VBj7w5IO}vw4oNM*g z1-}j|`%%H6GLz_;9E06~?jBicL7!b)c^W@ZfNtV8ftJ`8{x1RsNqZ0S$?4uA`Jx!} z5}fVT*G7O{g7c(07zzg1E}F6r8sXsCJA5)_X`_s9^CV%oKdy{rJ&R+^8&w7U$h7H) zq3_XQfR}e*A~qqC{F}!D^(<>I4Zb(&mTkWE6j+1A#||x+6TfFv<4pI54yYr(zDtkc z@VkKl>}}To(vp5^%MVV#}A+Yhewqj9eG2MejD(lOYGK;MdB#xLWq$jxpa~x zFI~{5FeUIj(Cz08<<66`Li-~>An_r^<*QnL{I6T*&x^8E*Ze4)dX;mBb13J#V9J&g zDgn;xZ;r4+!1wO;f|*w>f~fkBMHLK0JO8-h|J9Qx;RIb;Mv1|K{V-`*!HG9)ElOm4 zauUNIFQ^gOvj~2BaZcfFETM$)(@Q0&vecABb*xba=w&N!2xR-k1w}zDQPxy*5Z0Nl z#jnm@Oh7^M-h}@H^e4`ZrTv2AZNsX_%m-8G%sTA_U+`DtYrDd6#8`87OTd>nT8+Ti z+n#}rq=`#9S_Hsb3vtrAd23iN-wLuQ>x`(}C*;d7B%<`dghkEUp3z=rY_LrfGj~enr2tiD%9cy zc#`9RAXcNWbuVu^-*FSA;onlAA0UN#cA_s_5^ebCK?PhVIz6gLJ?I-4v~V#Y+++ga z3+YwCErHw!N~k;oPB7c%bhSXkx6RSFbg7XZzJFo2uQUBY_{@wd*tUm`K_X(Fba0@f zKIOBP$qX2nSbGpei9LVyR!)>{i{f$oU} z^$b5Q9GGq6wqFcY=!wq&GY71eixyhTyaIR%=uMl8yb+kGcaUR0Z-7gD9H0S^H^SbIRhPW$`1GzJI(kmne)E`Y*}xEPON{|9jjVt8Y$PU z%}tS1-U4)h?Z;Y?Kq|!?RV-M{9V3Ghx$vz?>!WFJb`gGp2MpJT-Go)BaYYifgLp zbUMteGWJJ7if7@$80d-5>}8rG4A?OK#+k$WhP%`Yl`F(SsKZt@QY%P>=M9fNp?Bs&wZ>~ z;ounz+bb_mbYSXoMV!vYw?Yov0(vrCRj(>>vDio9`Urt=A-`D)5laCQRI)&W5q7MQ zC1FF+qzb1=r)Ub!Tzr|3z9CIM5MO)r{iu4kp)`VQufGt+(Gjzqe6jBA1DgiQr)^~i z^g={-`^`RIq?#Ui@M(E7xZp1VKe88c(+4wy%w_< z9vcQm{cJJA>Z9zE0urf*r7`%FDffOWn9*6-Pu%ZGKREDw05vKJ1g(H0;#4c|4>N0P z*tIh~Bm&J;W3=0^k4j%a&(tiYJxPn0C&X0{|DnLViSA^d85Cfo09lm|YtNE?R&Yde z&wQV&VIRGxZNY}miZ=z2sHJ;Ic2kTLv^4o>i744h%ibAu!z^4vHOxtNpA3TzMReak z^zn>iCEAOhlfQE9dZ8lEGlkmC@P7eYjOkwd9JuqrrI^&qF1Ui={J!v88K`*H80=7meYiC&(b{t71#G`=*ePUiUs>#G5OCJ{(ESw;8BLp8dS2TzikZ9pr z<{5~j)jLQXJOZiP@J0xG%9Y$>aZ3)U`g%P?9Fn3XrQgPbAL;sT{UGJy-Yk@nd=w!T z(*}Js(71NMJl4L@iPFS*KS(TkwLRL2>vOtJ`zQ>)ym4rXS}4weg{}l838)5zR^FfH z0HpcXNvcc`Nor&nda4@U!-{my77AvGX~xn`(xto!pzmt!Ql4Xj$+H%1W`fvO?cF1D z5i={ZhXv$2>dMlMdc1h49WoB84ap%QxELj@qy&Kdm%wj6g1e=EzisEyUbIr(OV_TS z`0j4j^fDczPE0{wIJvE7^XX-mr|QT+K&pTwK7@E)Wq|j%pj7*<82vCI0^S*0dgYgV z(YfXI&M43MJdk>p1oNkigtV_hG>FQ}W!>jm^iA85j^S5s9#u2WdFiZt`(2YTAEkq)omDed!zA@`PnV=*5w>fflY~cAY8`g;;pV1I zWqn8qCq&E-2p0=Xz90N^^8r}^*LBP*8vgL1Crcl|_FRr6!h8uw| zL$T6tY#01=*!1@WD?t)t^?;IqZWSTt0126zac>_7cH;K9{4GWx9G&nS`gYhX=wY6r z=CvL3NxE_p@$lu&s2Pd0X4EMj4v*8Ot^8F;sC<=L;Cb-h+`{s7q(xt`qMsvyRZB#v zU__6zMyWoYO#^pzaV#g-cSKwCfO9dn{vV(pAhE_on2ngyxr2lxmCHd9x}_{~KPjD` znwrQVhA|16nx*-zHFw5KS~lpeDl!ySC4tuI$Jfkk%QCnjN-kNiv7Vwz!AW_Wtd+s-*#UnKE(8|Q5aR1&SVvL86mp)DF z2@M5npe4BAucieB9|h<~X6j^-+Gq%wQV$+aC2HKSXPDr6Z)|6HBQ3XKv!^Z^MPia3 zh;(Yw-(U+_U2-onl8+ zWtw(L*(yqjGG?XY3UVg0I7rT+a|8Xz49FO_2Sk#@YKuxDb{hkr)9sTVE6+~=sm-x1 z^c}wC77YSDs|Kv>KX??}d;wW_z(1*l?g%3)?5NJ72K+!Tyu{!UB0X<*6b?T#X97PA z&@Tyt%?X-n=u&%#3?ebVZxVC3C%5FqI$!8oLl=JY?Mm>NC8zXGbCf&odTe#?UHSke zcR1d7vwMW#3!dQMm0a0`Vi26ileG(qa8Y`{|AB647>;JzX74@w0@DE z^}GkuR&FJ#g>+F)v6Mf!N@j0S7Jgn6!kX~48sI>gV?B7jdOeoTRG>=R8>u_@d8&)8 zDBpk^Cm+TA2KtC^d5d%^_iqV*C&Bj2zv<6lFIHq1qU9pv*m3#{(Y3-oi=6(CC`Urp zg457A=nNNN-1X~YZ})zP0Da<>Vrt%~!mwU}T{QdTOXgP_2!a2=1G#Z*;Bi?i=}FQs zacdc;LUYgS%qP*TyvM}Cy)#;HPAbrFW8>P5<~_@%Ppw+v29|!z@?WxeNs>T9?S%{! z+4H%cguhX+=og=NbA97r1zk)hjY;WzCND;4CBpwWNKj5-^J<~W>~vd}cyIjJPx+L4 z+xTxl@2ZV8IMSw#?{X2CV84C+&*V$^<$uvkL4c zYiXEy`M!9yslQ1L22BKQy}$k?yqU`R`?u_kpAwlj^bNPmFq}%ZVEjt)`#@!Vj4K7E zIjVU@Bv^8^{!iizpFUQF=yrw#*(AzV&>3tEX8bo5GVcQ>xrO?hM%yP_JT0zR1z~FE zKRzkglq%(^1_Hce$+>-Jvr%A2W6Q??HgAuo&Gp6d%fF!z=x}Y7G>B%lJ{zKV+5grU z(qci6FHHfg<(eL)mhVKz_QXyp#X^S3Vt&P49{5?*$P>Yl#@%5RKMi=qo&MXF$8{pV zcm%}G+okaxt+Y3}P1nv^H`!G=rd^(Nf@+&tR*r5q4`Q7c!?ONKLK_)RvO6%<%hl;PC4Ww9MO@{ zg4DTq96|O^s=nQw|KRyj)5g=oAbIR3@Nh&4kCvJ6h1`_P2`7?CDv4M*(~|YGIIh@+VA%Z4wnI?W6_!{rNoJZ;_hJMf+Qq9oYRNG?iE;(=>kR zcNiEylC<7oMhf}BUyHip*Yk>O2>KI)*J9sYIo1|iLLC_^4|A59WO?)9ptUionGUC= zlg@sq1=~z)CBSk*$HDR#XgLD|MLx{?;#97}Stp|=XmNSTGq`S{Vg}2l51&cBhzy_) zLykqdzUy-slEbF^!QrwUfFoSw z-4F{X5@uk}%OiMNdUsbFDNsla>Tbual(OBRKXH`!z2aOq`o%wWlaLq_)0vDYPVieJ zv{|A_E*kzz_N!p<__ISRg>U&*nSOw-3dX_8uNxtI$_k z5Ole`OztU^3T({RTmoD*QkbatWX0 z7C3kPlbfy@SGDgn<5~;kg>&TcO)q>=eq%;z(m>~i(|g-MR@*j;TqAinz*Eisk>Vm& z#HWI$n1HdZXD}>elLzPhEz0iN~uZAN+&oVjne2w3}LY}(o>eDOHLGKWd3mVUQ z9Y*-}Jk5=3^&>3gYbDpZA@pjJBT(-iTP-g7=t9;ljF#qTg^SR!Jood?%n5baqr`@E z1$5L$M%^RgJH^=RCrhP!mW-84P@(9`_4jEz0rt95?LMm3FsSEwqZ~z5Nh5L?QfwK( z)xCw<-%hBjLE2;%`CArtoffRl>tq^QVs$t48wTi;wt%Q4a&0I#)J|y=!W}$5L7*j~<80BboJ=B0|D(v+NjyiA zsgV)ql)7nj;-$ym6=MUeb+NsarL5B`>wB1!5maY|i^sT|rPUKT!w?UYB|$eZC>kX+ z8+3(43XEJ4pfgc(5iKwsBfkm{z@6LfQq!FgcU{=Zr)3Z#La*xA>ME}ss4$N zTDYW4MsxLqld`-bE0Bb`VERAi$F%K&UeJdaj1gBmm?f~#&}@l*gXWZ=RF}FZSdIyr zc!`o-OWv(YV>}QIz0M~r&L;XesICQG4qfh4J-89VXc8uzu8aoezrcd! zA(Vp7Zj$RRdMo^__K#A8Aj*CB{f4``o;PGcfd70MnN;Y48N1ybyp%lWUy$`Bnm_?f>;xo5%l?SJfFw+DFe#8_qDoJnl;6? zyHd2MQ;(KN-a=|eLY9=TTF}3JDI}S?^qdER!~IEsMkY7o(_>qD?0sG-h9!C4!M&H? z+=jxg23mOkS=uku=#@Bug_b%>K z*emv{Gn~$irs~4x%tooC*Prp-*}Up%KBFzq95_V{z;ISF#@}i{@rI41gKVtntm)U! zPc!I*jK;+cmm8LRkhrqkw)% zbmm5Rhf<{qhxF??xsPA8-d!cg@@HP;qOXhrLv~N^_WgX>^f)|)XvFXKyco8?M!HZo zpTc?YFr__PixzRK`6lA+`g2w()Ejx2wmay%I-X=D`L`+v3YNWnHYyzoE{=`GDsb;T4KQ=)96*m5J`TM!bJT5$p1*x*pzI zOy)i(=#XN(n@+IlV4qht(G5R_r}{#AAFER;8(u*8$;JaNNu3-wEMmTqNY+=YedNGP znA|zQcjjL?gQ?5Z($hCzezkmSTVB$n4z*U7MyEFk-}?XH%3fdy(|T8l>N=zwc#P4p zSTS7kf{uUKUCXUMh5t}tX)Rnb1{G5|78Rit?R^qY3`o7TH{JY@;IzGy5#talpRbUG z8*`O=@nfkKu`A*OJw-H8LC`hk0RcR(=X5*DKI?Ysu97uYpvVemg{h0T)#kN-a;{-i zHTmdBXFW5mavKYXW-*3tpX8_D4ZUl@3Tl@143iQOw0}p9s5z$5atGZQERLb%u+G>4 zjl7sR2GTQ}fs(R}Tpv@G{%RPp`JWEE?B4E=v#NbcR9Mf@os`d9WIzun&Z0O&*(lzt z#+yhf?0v!@jxVyi`Dq-l_3z9d^d~Mpo*byTEK#*Yeb@dqSOQD$5sg;vRPQ^r$W7}S zwT2!-+G+g4wWwkD`_j@vn2Z6~PFbuWk3rg=Y7wdZ!NpTmYxo*6F_-{pv+6qc=mvVX zSUb;&>7RaTDc($c!41=y(1t*v82_sUVSDD0QRW9{+mCiHnVsi=eoY#^ zj`0s-5r%Jhq$!IyONMxduLIpQp%#0a?4k`1Xb4$eCnN2a%6_t!!R(Vy4hNmts|vW zfyZjcon;(+$7z28O)&yy#1_KJ?S=-VetGS{zgl)}_~P^6I6%c*v$^u3@+H%` zTzhs*V)B5h2#B&#)P7KfjSM!cjDIUHHxD(FvTPTLC{Fx2^uMlt-5o~r;d=<$q#%5y(h5H_T9=*H&i z6Oc=T6{J?;=Prk!yE;l&vw<^R!ZD#*ZjnUr4!waG_@R@WD{_KHw@3&|hpCKaB+x&n zRm`l&Y`X;Mf9xgVWU^_H&T}d}4Bw_;!5OYLh2S$&*|6W@>8CRM=q~_hK$pMXfw+Wa zAl!6_a;vsMXgUO0+Z>`rvvGW+pMzdHeu(5odu&7>E(_l+h=W{p9rmrmRT=;NPl1*%rKm}HzD zQmg5*|BIDoUDT1l0V|PY*W$HRP!f-)ll*{ zc%hYrG3cGd*2|Wfr=qx9Z|@^j%G*s8t8+oGtA4SR(0oHf zmaa4){@;Uz2vk|Icob_IJyC8D``yLDWTHU{lv%CH#UAKKX0x z2*#;e6q_G7Io?P#-&aFs;39!yQbR{6g4C1fCp?|v6(Adrxn$-maJ%PmrZzUGNvy!h z8{7SR|F?&ZKpzY*2k2Gi^j~`z7Ef|%6x!{AWu#I|4zh`GfyeSMl8QuTu5^&<$Qd+@ z!qmv>M9@87wbe=h^sGzef`o1HaY?U!T({#rD@2asxtdGen*ANBms)kuZ>Qe*26L0N zZz`$N%T)oIT~I8yT6pwCM-^f6p)pno0+-*DoZTj_+C_QX<}uC|34y{9&Cq5}JV|xb zSfZ$C&PtW>Tj+DS@hY3BB*cw=(9v6;H4BE`^d^_S3QUnvpwXu9b_iQ2EM277Az=c6 zt*I`D=AbUqX?C<;WfsYOJ*xvaTgD@HIeSY=u5xS@)_A!bk1)Jvwz|{GTCw;1@eOpv zwO@8Q%M7V1=PUoLJ4+w-%iBa+KR;Ntu=IE$>RMO3NB_2?_#K*aKeGb0noEEBF|ek) ze?;vM&KezKX^_Qq`?os6RAMV7NN}N6PVQRD1a#Oq^x*ik;p+7W9iH3yb$mNk#=fe% zWzpl4W-O5AQ)sV;GDAEb!zuP^2n}5YYX1W$n%XNJ=qhq+FDzH^R*Dd;_tO+WwC19#dh?D+p z8PT6-2g9d({4QoL2=Tp4=#_Vmp!DRk$5D0xRyKW~f&CM}Y_2nZH`gbld4JMm6eZVR zDi!PRn`!&+xp*{mLyp3h$XV zbiDK7Ew)&fvG5%9FW|2c+xlrjcjd0UJBRfY{4>q2ny0kiE}x$=d38PCNlkVI~^baqZ7zYYObw z)iT#DJftnV{$b>Khb7pFWBi2a;`$#v*qF%dt_1_@ojV%XX|nRS_8%^;cL+`@fF?39 zqA$2Ru<{X>zq=rX?4s=r6`>B3fJ5cVj5L)3$3Xch(=E=cxIf5ZtSWiE|NOnBJ0+IN zK_7TcC=tni^X)0-{L6vQ2Zymq4d@?ENy4a-HJ2O5&8W){qLN{pJ?_%mBQuO=r*;4# zH;s|2uCIw?zD_2L?3e~}wmF+!$$V|r_B=w87N7%c0jJ&%vwOyQ)p;!5gFB%U=)VgY z4M`^W_GRKCW9FfwZ0eWUqJnk>`?z;61Qhj@0Q#^^9%N0*F_*1$uQ|T&Nw2Dp71rQ| z)Nw0(X|`veGhckrU17fblC#g2#1GNuQ;TP)R1WQ?W#-iTYa z7rMfysl3&DpG5Y~{@VF|ZfC<#)Cp(O)PP|8=UvUz@QKZg7C`Gi9^ULYwC>remnN2__B_-Fu>`r>Ds@x zqhH1SR_DJs*QH6a>J#T*b$U@6C<-?%K);<*3NGhx9j6>Uj}zY#68?>~sv6r|GD{J+ z;3Z9&^Ne1i=VPMwN@g}OOkM@`jVhY}i5fOVH=VCLvJ_$bBV&(G!31RGy>Yh2iH6w? z`I(@H93*5t;j=p^-QN!Q(){$vhk8vHQOA9J%=(GzI!}yqgez(*hopBODp36JI!(=0 z!wAsmR)zI2=M9eNEs)YgQRT{!BR-12T@~x#!;;|4g032fdyf`O4}p`RLGD9ve#GhM z;u>AIdpDTLnTocJLd8j?btOkhh%cGwU0@F(p!seE5PE9Ti){ey@A42F*$RM6VHf#3 zgW32HO^(!E``sSsgKN`>sx(huua3z*rf~0>Lz;D|ERC79rzTMrwdO%^RkH+RiZj95 z9>Jjiq4SBP5WqGNwmM86>ShkV3-Rd2-~Vj4^a6c8XbRZ?N=8)=^bw!`#l8@4`FZ3r z__Go=gBtf$vk$Da#fM1i-}UhBCO{O6AZ)fR6rl*=&*gYZH;GANq*jg93C6B*4&xGRg5|yJFhH7Z_s@&%P7M-)8@AqD`2=w%09i zgZ9%*r>t#Z9EQY>g8h8j8nFKmiAAZNx<6fbIOq=DCGcsIVM2<5jb+HSs(av#LR5Jlg1ox*! z{nQB-ebAo?6Sag{!g+!C8;%xb(mUUTS;cpM%3dKgzBwY? zU^s`GRLJgq{?a%211qwcG_u)zHRnC}O$0bE`TH3`^u^E<&Xif5hVGKRIgQxOuFo=O z`eY7^8gwV4qzdmm#YmY9$2Oh6Kk7wl&hX&U{c6D)^M}6ZH{*=?2Irhq&|KG$XJoECsr03e9)B9&p^#TG$;dN6Tujm5fF1O1@$}KEE5cT^LWJi49zIcr-0jbHsYT~cdLe$A zVJb+8z!XsfoTle9z2goUB9(P_pzdV@NhfaNcXVeRmyrZbbXr7o5KnJjR1 z?&^&eLGV?jo(5I!Xx|Va>Sm5Coe1gZ0prCa0CWm$Y?@Ow&sQgGwIw0^uQt!clN3?D z;BGW`U<=O(B4Xc1?u+df>+0S-OHR~bdENn7;KdLjRZ^j_vf32Vg$OgeqjJx&@B8gY ztKsiUGO_(3(9v7$E%X@Q&HTaD8={1C;h1tsth!#*e?jU*+#qd9>T*lF?7w;`YhF4zKvtq3|3HGBH0+}(X%h|LT` zFxe{V;tJWEEmADvc`?lnG9oe`(AnR4)Q)dUPU^5a>Y`MX#RI zE-dlqDQVlv(TXID9mU`6f)y|n=ri$L044DxOvT(v)8R62>RB{?SrVadKoadK!(+Id z%D5G`bVYZOaiaGT0ZABl+#Q#q%rOe+qS!)rrXic6ymxQ;tBp7MIbYU27+i;rPz z2znM@g7NSAqEKeL;IT~Cho6}^Gzbg{+Sk0*^f`L3|IlTL+}R+*)?kLDd}M>?cFROK zf!NbaHc$Sw9bLqCyPBHQK8F-9fQG#)RFlzIONxq}Qvw*SZ1ddZ&Lq29xw=Z^Vxx zcoVXtX@mdA+BtAn+B9o;$F^;IV%s(+o+K07ww;M>+qR82wkFoZIOiwiTWkM;pxcxFsXJl0OAk@j@zVT4Ds%m8IOK?B@;wvbAc1PExv8gV6U6+zseqb z#UVtflDLf_*h}NLdjzS)qcdh0tG_KS&8LT2ek6=^^ z>>o|&5N9Ei#2W=pz!B?hqjq|=dRGNZqRRJYT(?CMZ<=6B{>IK*!qfQ1Pu{ zW_~dge6&UXEA|#PwYa0J@+&nZ90#y%m})WfCoQ%DcE!{pA(p1Xo+&GDn@s?WDANwG5|7n30@wdR9HMyjyGW>F z!D_c1P4A8oOCWI{#})7Ud#qphInN}2hx?iGzTPNse;rKHFs8WBgIT08F9LhQ>to6c z@!UjbEksI-tFLR`2lx{ty-~$gOcFlni4jO*H#g28XlZBd-y%NSB8Erd{QZD_Q`@RA zW7o&h-v>&_GTk&w-syzJqxv>K`>EGVzwP32=IrO&K6&>7O#p;B}sQx-b6c1ifB%B}2yw1lV2h+?J3 zWAvRggQn%aW`nTghu#p91EfF(0HA|WsZijA{mw+|AL#lEb8n}S?}t>R)U{}cc(`6l z;P=5Y&{6kQ9WyXpbPmy3h8<_5!G8JgZY0k*bp9`0L-S?toCh;cDIOMV_Jfq-;Q@eg zIDVmGQ3M4e9D?8I3Pu`-7o$vak-IW!bXx$@?C+-r{7n*Yl<}Uiw}tHMS{3bo&KA(& z^)$9B$!jgif>#HTyACERVRG87JQcs7aPniT0nR7`yut}5D~%Jpaa-fp}A&P0eDN07yceFYForMrtIkDzEF zt==8kTrmO|xklWSP(`Kgc3_!2B4@~JyMjOu7Vj}@k z>-;GGPA(2+bwzezHaNHQ`+s$^GDak$9OtCsHuCKDNp#{9b2f+et1}LveZPwjelLnf zHe5X3ahdYV1CeT_?g{8gtw(U3V^1vpmg_>>ctWW)C-S|vE{ z*DOV)MxS)3WLTQ<(oJ4#BSE@T;qt?!xJoLxCb1pK2l3_ zh%FX;@jzimIi`gCIKOs{YGdIJrw>RJ`TjG~f6PM+WRlVfJKAv+&2>c2KoBvT~s%5|9|AaZ}(={PPVBax+D8>uxVU4UHapuDw(joYxAT=s%H{{FWwf^^4Toqc5@LS?-v>DEGR$Os0 z71lw-Bmh-F_$0=mZN+`(k9n*f$9zZXxgdVx*q4!@4nUTrXFyrTbh5Jgm(jJQ#yTZL zXmVbB!v-m(ZnBxM_qV};hn%p?JI(vvuhsyQ5}M~EWxkyK>EN=vu=UL>#q*t)rt4Zb zBrO)f*Jf-|IBPIKeAQa@z&~}CwtfCdlZ6pzj1M_oZcT)c6CX85qT262y%NE{9y$aD zJvf<-J>jMGvM=X{8W}W@QNd|yxf8=*@2qAtm$#L5{}mcpT^&1Z0}d#nKGD)E`=|6@ zg#*7A70sBri|^ViX0Jo+g|lUd?Drcq608#CjV54(?f#YCNFT5};Aeqs^*hU;PBU78 zQwRR(q1MJmAMh}?7N$laR@&)d27t{D)w5I(sNJp(N0$X85#`yX56tV@<@5f?06DDXAw%r&jIYz*hqLsK<3e&g(bRjO!^f1HIqG<^y-CFmT^yBHZWWzYI8U zh#vSjKe<5~mb8u<{Z%E~uBRm80%(|phF*&z{U1Jcaq=8HD~Ato%DA08u__L z-`vug2y>`Kz~VG{LcgyLM0c={B+Z9*BZU!wuk-@4MXlW;OtKy_y8}nJ5AzIh+T{Jh3p)an{WL?HQ*whQOZBBmy-9K>(d2C%`H>{P(H zhC2Pv=tP47-OOX7@X`@Cj-R+!apZ}N{QFU6tU-v}^Q{cx%MYiJ*g7AOOb5>{M%#@5 zvGR3lz9V5@CPl+i&;23@?U#`paZDG0oSr{JJ|?twvjQ@vc~Gz`tqQ>pUf=lS;tbGH zX2b6{;pBxP1viHzYxi+&~zvshp%4Y=4|Fq)6g=zWw;|N625N?CspX&P&$gZ+9Rt!u?jIQ9pRll#E znWzd)&%2}?O*~r6D1GCaZrRdX*1(U8ufFLLA9;_l-;gGRpJ&wDQ^vI0uoH&n++j7wV_$e<#mRc04*%5^Tx_tUHTb@ z-hNGfnI{6zIw5;j3}i6DZOtp+|I{I7UETT5tuThHLqa_3JS@{u`=`w{qxCah%&<-j z8>9!JJQ?$nnZfdk6%R*CBe4L@M<()vHL=6&@XwCiQJlxFujLcFQ8Lvc0wehwqwg#9 zt@E29IjJIj%x+mYr&Q`72!ec-Z)}GN>zqD3Fxr3+L7L6t|G6ZT2|vRK#$U_ zBIw(o@!R6TbvpAW7-_J?vA!fiz~7=f#x|$#zXwuM8;I*^?feh7AV~o{?|?rGbmTa0 zf?nm0{|fMC#!!F!9_FWeGyAcn1SP>6o*E5U+-M+_0*pXHRD*FatMZpJGDCp9nmZLu z3wJtSVH146o(gTpe5fOTOX)GsC|`d%-&P{h>ppb)IO~#sbq%ks7Jm zyv;9k)H5KC=pc)bF?7JhDd8#<4T+O>A5li+;$o z9F?)b#Y}|5SeYQ8^8yfJ9I7UC_o#n%e=c;d!lz{V$yz~-lqVeb$S!GQegARv);^W? z7s~;%|8%Vvt}xT>X5meYdoDG#nKE8fKYv(ssT6M+-rV_E$ejE{edP!qGI}(45 znSOr=U@0{kLs`>RtI2v!i|WEg!!9+8uaP=b?7o7*kKKBLC!whK*->(s<%N@_mwlRaW#n)G*H-ytx zK{pYZ63a)Owo1EhWnuX3q@S*1lIbbQYO?1?=zVktz#kNo_gc`ZWo6_THt$?}oZCo1 z4q-FCt@(&l?)&fi&Fu}lC1j(flAFCkc)M4m2+?tY!7_TysToDrfqw$sz&(-?>Q@$w zq*&RJEO%Gtb(jDgx`AJ%a_lc~(@Mm!c;ITP)4w~SM7E_j1`dQ+p>Do!tFI5D+B!=L znYxLJXXYjutDn1#kte|R7Qp?V$~t4h6`WMfQ`(o60+kUj>38TF0E`)y`k;WVA}Bik zQb^?U`O@I&ONq^@Ht6@HmU5i$4*_h?UiYk%7MjH#R0$EKX?5s#aX8ZOD3=PM_7$3< zh?GR^8O~dAeYp8#E6&b`$bA9qffVECmrS;GbAv&lTz#>6ym&j&xh+4%lr~hnety3} zBl;;)_$I#XR8W2n*=%9VP`|loz4<{hC2=7=Xpu!Jb7nz{rV;#lWAY)j!wWk80synC zse5_mQaiLVmU)EB0gsgzFPp_VpG&7p=oTrve^jM@b4!>qBWQ3tv~d@X71Sk z9_3dPJo6tCC<^6;^Z_E*rSNbcw(%EUI&iB$9+IPhSz~TK{_Y@O_iINIaVb&|b zr!bM7v;REie$*J!9qd{E{fl`%7C^03PgLZPF{|%#+mL9`a8)qj^~D|i_~TV^S4ZGf zxQ!$`-hNM38sYfZ=?B2^4E`a7<6y+v-OpY*bSFd99hy_MCWT`~m*>Ctt?#!1hpil8 zKA*%Ob}%&1vQS>NF1n-F!QB@it(9+~X^qP;plzlU+%5I|J+FRnvXiZ1N<548HFG!%4Nl;EtqfM&|-(;6R8J=db@B z6A^^}J^j53b<(OI+Wb>1%;L|XC)nGPzuS?$1v|XdN@VO3yC1c9E(A1iovIlG1TJ?o z3O1q6#23cZZ>e9PGEkO5b(qP>jj$^7KM7H7ZP7$q55F#Ne=TqI0Sz2{Kk0o-&7K1? z!0`W$P2i1SBZ6Vpn8^@<{B{P(m%I7Orgl0-x)C>V&s%Jaj&qkKZ(( z?EEyY=_iN3+q`RZsS7z+8Jv@&{!sh>)rTz*8fAiBXo{}5Zv`4S6}%T#mn5X9o@4o4 zKLN$(-jMul?FW^NU1{nniA?VH&0b_+q1Zp>i*X+CQ+(C{pn(&1)iNEz6dGo>ery&_ zTzhKYM`C9F%;Yg|=dL=l95FbxqS@F}1)ZrTX0BD7Q`!Lut~%LXYhnM*0_258_$@d5N(Fs%Du3i>~OEpwu^ zhz%kXz|P1G8~$ULdiT%sX4rlH+9GH2$H$kqXlB9&o&h2LseJ$uK0hF%)?VbPOqAVq936QMIj|(W^Kt}v_j>+?qJX7yYR&bpuy%0K7deRPoiTHl#pV5zqzRIsOksjNeX_hSlwW8E=DPYY{PQ&v4<6Hu6R@zC`#Q zbZ(2aAh56h&q6QsKXx`0;GN@0-K63UvI^M<<(mA1fzz-(G!|!39}+=|F4ozH6o~2x z4#=FWzy3rHQ5EDreW~|>297oMW!%ZcVp+@9JwHaRHF^uYGPzarGRr%P)r~U9-JjFP zcTG%L6!mhqWCth2O92|VkbW0E9DrsKTOlggBj6#iIpELM)tA+lNW&GtK-<*zio+5I zKHpfx?!LB*$qHr#G;nA<8SJc}n=#B}%1dgyB>SELXXkDz5f9X-2Ts2;=q{GV1l*}F>r)=9!0h4f!grazMRE)DD6@5ivjW$3^F*Z z?7I1-SA^RIcq>lFYRn9&Pm`A`AC}PO{`9;ocY1g0Cw4%)+AX7j8TGq0S#PgcElb` zP}=QPJM*M*7xWEgWi~d2gI`wsyib7dQ+waN5?gI&qdx z6jKVAl{lF<=j^U^cJ)YAd`KL`@2+dG_4qi|5aq-{M#;O1HKI>RWT1g-r&m{Kpz%gF zvKZe2xi!RzKqGk`$#5yK!|MM64P5zVr&}U1faARN z`BZhGS$qxmGUvehmaO=n5F8SAbZ?x>NSbuZKQf)P%h;%(gm>VXOos!!)K{4QT2*1I zK=G*uI*4)!y)Vx1{Yg_Or=8BRZui8xw_Ie0$IoJZN5)C<0u3DBl@U3EPu3p6nY^YS z+O2@Wd17$4e)`B}?M@na-X=s6TkX=5Y(!;sK#zrs$_+dzBHa(Oj?P9@@ZB``crB|= zvGe0WX@VjB0fvsjv{FH_QaKF1csWDXAUSDB3vBuU1$f8lKsZfxhHH0OepB~3P$pSX z{nDXdXB#3#OBPpaC6z3-AZ(qNaA39&<+D=;6zm|X~SJwSo9+BjUN9nm3$`S zadIQ=p8JQ6Am|TRF^(6p-#ON<$XTEBi$cdO0zd;-b9FrO=9LxALkIdIKnsmOnD3g) z(I*GT3HTxe5(i&P=1M><_B*4g=i3=(i9!KS*=rFx8k%f9SaWxg42amC&62#Jlx{g( z6e#C_vlBMYm!I1^l(aR-Zh2T&cdZ|36$aiFrp7&WG__EF3^1i~l$^Y1VZSvA^|SPi z!fYcAKKUt9{JzzMw~2tY?h-j`xtkw&7xS1E7XfStad&U8;tYFF7U=8@ZEyY7Thk|i zjGLmYQkeRN;r823VJgj4gYn!AAq&vJ$=AH%HEaa6sBexS1*{kL3w*R`RhcjP?qmfS z!jq0V|Na^K8{nu*ugjpFb0icT0Sz1iLi7=Oc{b8Txf*!fvwVXG){K7{wsy!|9gr=@ zfBh8){sL!_H8WVAREb`Y8K4h55tWS2yA=^}CYa{6+>F~341q4NOY?9rjr*jC_@S~R z!O>^v%mFQ0Qaq%|WD5hy9%$fbJX@>yUEW7mi|H9itL+Ug8#saI|BMszKeJyQL>(rA zpzeptac4d+m-N&k5xVPucbwwnuH9}-H^&mjbKCN{MIkN6L1<*SK-jZ;$r4t_m!Ne- zh8{>8I^!6ZgD0~WFoAb>nx0y8#cMqxSdAv#4ELO|Tw~L6{mo4JAuy8a@G@&NXd&;z z)qUgu5HxZid^%YL8aM!2p|Z0dI_O02omO^&0xry?q8F$!c-()>oVH%rM|d5s8rK!-?U3%=UGo z3PCAjY8W>3UMU%i-GVz!)Rvw+|EX6E%@d5a?WfQxOtSIx0MCG=mCxIH090NwNvM&Z zNtpS&2Xp5%mnL+_v&1=IHBB)x<0KuOOnq;)g%k{8%g3vL_j5hY;-LKmGgE49rjkdb zKutac7v}mjFl(%BpdD3HmGjF!`J}Bp`=?EGi$UHkO9i|Y3ni(!s1w4r@BE7}r=8}< z={z5H{sFl>r=}GuyX$B^j{D&)U=8r;L9(@;V~zx#P~PTXk?;E4aJV^nM=d3f_`K3$ zd>)n(zUP+L+(3Z^kVv4+vbN#8#^prk9201!lm*_3@2cDZ!Jns;6|pt^#RZ^UsHc9V z7_nD-CQZ83JMXTD;%g_u(OcU!l{ted5RAmYOL*0UwYIjOaNAH^%|~|%`qSl-*tWP` z8`qzTwa*qVa#-0Ir{yY7DNSv^D!gh+Pyh|wFpRO}Xbv~5)6G9sdUJpfOm)1W$YrMH z$1?Rv3w;{;LweOvcr>8a8I(Mv=~Qn4Xy7VOlPCQbr&bhzF=gx^@0@8ilBIsT(4cmi zR1SyVpT9^G9DAScjzv)yu2}-wzAZolS9nd$Qa2v%hD1C{WC8e7%&+-1)T8*|d}7=u z2jR}O$oTB)#1TmD`J9+7BX$s*fai}xq8D6JH8d9C2hVoPKifclC`@LAYWYQkU}23? zZqZ^jc;WMU`e&0PiEgTX1d9PQ0s4_2PM>%jOHcaPp)A!K2In0yDp8)!^V<$;KHneo zSbM2J;}*0EfAcHcK3ZMjP|x2SDad_Jk~RRv-Ml5ly96v%Pg*h0_?OvNvQH@cCeT*w zFJGO&jQp`ZMNgfO62L82M=jj*_BZ^Kd32BZ;P>W9M@om`iLzXmws!7r1ub?u@c!zN zhR?gqG67XV)cX+DSk0}mjT7sy03^4%$+L@z*^6FB^Ve9t^?4i(s4Y#(Dd6c`Eg%GE z5@NhChWOLqw#98MNJ3IVGKi3S!S_{j@D6(PMb6TL#4~WP-bqF zT1mpsQ>p}m(+Pki4h$sL5nzG(I*~^<2fP)Z3T-6voeUJ9creXZ zT^*SO&}d3!(tia`D8S)J!$d8I`-wq1xNtTa_#3qdwawN3+x6&KYiNT z<~DTyr=X6b!kPZbkmeH{8tmy>uYF0i<{X<9*_zqf#3Vj8Vj z`-(YjPx%wI#h}$1M=rxFIVru?zsj|*wheaJI$R2qk^k)kDtyqb&+ACbHbTKIfw|Zz+ zSLR9JT0y6To}uC{eq2PbmNn^*CVe)j=9c9r1feyHQ{S$Ik-EbetU2HcyWD_ z2HvM`Va0p^_oC7eh;9;|HA?c(uNltozj03{*CMA?Pr2U7OifYRNJ>FO8{crBN|1hBn~o zT%vHMjJ`iC`K$Z`i}|XuYL(0`hO;@$L(ITqn)dIkQjSMItat2yVzjG8)VZxwLI@-7}uuXpH<%)wUiA~x=;R}o7Djd+uR?;F6e+W`6U{<`nU!)BbzJl4x zV5;#1G;njd-VYvQVQQ;S`Jo%vS~gJ91UUh18qG^t+4%IBfvc$^rbs)F?KC~%-yEh% z#G-)Jkp_)lRa;MJdih&wXn7}Jfvtt|`rK-Zf7uLUR$0Hl$7l1QPv+y+ z=#L^(*QCn0LD5|z#|p}9wHg9c@Kw#kPn_gl{q}=9fHBx-UQtAd>LR73Kka15E9*Ta zpJu9_NlYfo6aOltzb`31NjFGkiJBFB6=JbFomj@F^-=S^O6pAD1IEaU?_ea*=Y6A; z*vvl%O$4|;%dP+fAR59PDDx`p?pPM%+0C8uAcMc9&%O!td@hp+7tvRp{X#}ofI!I>C)Myg00nghLn{8z~x8|05|zHo@$7=qm>2b z-D!l?dl!N)Jv}?nOspy$8hO0u-@i$CVfC&?%DPor_A-B2rr|{T-%XKBT1=RRpRBMX z`SXCN@ZQn=aLF(YHh<1y8Fd4mTWp|Omlul8>AX3m6Z1ba`sIr6PV-iT6k^Ju{Z2t< zvE|ITrHd(xaz_=UNvHUTVURs zNznwbdA{$Dw_sQO4-ik2&qcqg8!g_fbhyVDx&wWl=+;OKNyohknR@%*w z{(Co6$YY~tJ1 zCkjtAucIXT)GnwOglbddpDx7`^_1bXaJvw7sHMtIN&^5M`KYIE<<^=MC!$}?Nyv;w^;cyJSZH<_JjH3(H^ zN6YrDE4C)TT*M1_{+N!GdGjY;Eisk=V-7N$Zr4m|=7|+OycFhKXF4>THS9uuSMg&K;+#QGKum;L@Oj>@DhzIL(k{#|hGP8tFYhNV3w0TZR_2lW z7D=W_d?Hp*e3U81{`E%wBBSrXYVc-J6H{bc4pnZL*-oqIZzTfSiX*Ixj;7)xKwbx` z`WjO*OwWQ2-|MTV96?r}ap5z%Zs53l5y;0-P)~<2u0Ir9{D3F0C1W~P%4-x!ulEG2 zzS%nNsWuHwD$aM~79vSL7sQb9{oK*>uWCU9O=BJ!UJTQsx=UVm*F>Vzg} z#pBY7eY}ULhIj&-#lWuH?M=auHY&{7=`^(TjF&s>5Dpky)47*~m*FZ9mEM$tT$4OT z%lgy)Q?F9Mic+S0X4Ck_x+Bc^{h9xFuu{s=xp%CP4qTeHnCi1(8JEhWOY z4YnsELU$&_=yr**&SnLz z*2bwV?!kd~TSOCe;wVi50~Bd(4v2`z*^q~tz2UjiJb2t*9$@hz?6}+T^3AiM@&2gu zDu4J1yxQBeJMUxiW%>AjEvQef&@Z(tE|v}D2U%*FX*GpYA34iund2LZyFK25)ar{9 zA2)EoyGfKy4TDwIa~O=!ShD%>yBx|h6YkdjbvjAbRaA?`2*=u)hMCVu!@?js>grYHK?FIAY+8H@E{&%ao2$3%mBIlYAABPL385dD#m) zW6zT#%1FlmRSzn!7e}3I8>oB=(S0^``}!|B8F=2Q#6Q_k*o(sYWriQ5YMxE;_BQnU zpZspH^~1A|$cQZ+5$H}fL=QZ)a4)5RXSra0+EU9HIo4n4tW*6?6j*x{OD_L{T=0Mq z^KqLjpk^ulS?7e>_K**I2qs$=a0xuw_%FsFB~e^&#DAl?9;@m1aN3E8XV?|$I>M*M z{jpp%4{T&ZXL$^L6hV37@9B5IEBY;Pww-`enULUX=#Ii8-BC3^;*<*J~C53a&e*Pj|Y?Nqv@;{|uv3XP#g2>ar-E_Y*Zf38olTSVa|yd?`&ZH0{r z#qGVbd0p0&)DTe#?ho)v=aL9~D5?uuKN5^LdnTty{QUF)JdjW(48iDPdpd3Z>izVG z=(wn;yf%N(>b-NPOasqWCpp9Ac%AO#)DXjSiym0Ar!7Y8#+5Q2Ox~%2){}wvGYtzV z6&b!)gpUl4L_z}Z99K3>r1ot?)zL?QW2?Id^SU$xho-&8tSG= zDXvjAvCp2_ngVadoopge3xz5x?J~rWaS>=G2z9>LPn_W|C}<$9z0-zH+S%`&t5cu` zEQy1Ez~_sAmka@Q;bdVI98!2A^+;f$0#84VC^CB3K~|KMvthFz5(w>C9yv-QZ@?%Z zuHqLV$pc=(EAcn#AMhsz_1|7UZ0f{PItD&0<)^(k1_S&isc&`~)od21=e5_&#B7-9 zp&jNdfd(!rqw%Z57gJGUK)(4Ey>s_-JYPPHnn7Rb!JxlkTOd(>)a;nk8|XINd)G#*gd7(!RQ7S0Iw1? zBKT~sud355#aj}z%g|-l?W8DJ`FER0B8;eW2Xcj0*quJh!eeD3#x@ZZ=Qzy((7<^| zg4n0Gi#hmzE1z-^s+cy5j0x%V$s+Z|J6&$v4(F&>WW0;wx4JvBhY8+hVNmq@(g zWxWu1{1ddKx*%;pI@99OGKf!(bII~r9zFZ%X^1kZYw6;T5f0(B_lOnXT~pP+Ho{Z< zVR2cv(t0?eQbq{i7dfz`y(K10IuCU9NY0=+NmsX0FVn8DFjBOufmb6C-+l3#{o3HE z`bmU;D6U?%WPjPmDpk~NVd=}#m+xw`5$P!3OC+p}fDv%Acl{T5S(wJe@VvBW&Tgc1 zm6bhujghXjsdIQa>rCSq6SR*4J~iE5KRicni#9~roe_lzsq8@te)2Y{$AL}}AHij33Zjjm0U|k_p-&n$DEjyd@ROsN$n55kpu)pSP;TDsF^*8Tyn%(>Bvjt;kp0mkXk+n}v$FtK1q z%h6p)uOHM)BT^E(Ihvu`|C#XPAlSGT1B%tmg%!|=6Jbm=8Y_8zfNuvuay6I%1AVaz zt$BB?s+t+Dh5vok$LTz@JU9j>#K>^G`IL}laLcydVEEzOdBghAlNLQw-gVn!pRm2S z$uCcym^%@8Rf_GLzB)e3yp9y%dUbDvcr9XgF2kcJmip~#vp5}WJt<}C$0 zP@MV*>{GyNS8!2&h}7hVRO}#A?Fz5_fFhD-lOZ}_w`JM~sj=NxC#3K8u17w;7plNn zz*;s0p7;_ViKWssooy|6ccxGvJ8V(MaOzZQL5M+SQIaCUi9!fR67~y1p^N?_Q)Qpb zANd#Xn%lWC%rr6;mTYk@57DO8`4K zaJ}^%2!`bn$wr%ISmfgXzS8N=WRZ*$rJtB-U}7e0TZNur$|6q4Aq$7EnXWOBz*Fe| z(#rkb$su^N_5iK6EJjHe{%OGVi&z{DZjMqslA?{-OM14Jj)0*iQSNi%ybO4)Wi9Oh zK|sF0ZA;pUe`N)kcF>JDLr4r)-w_3h3Rm$6b_MTxaoX&zl5Z4v5d5h`?Gn)$4|A|E5tYdIcW@;=S-YDCZY4!0#Qm0yMtHlfSg_OjjHSc-^?o z9B8b6lx==KdC6-2317rVe@&>Ehbnu4yBOhdK=aluphOmz74r#Lc;dxJUm95ho(9q) zJ~s7XcV3FeYcjlJE49@tu$%N409TDwdOCuq6DCg}F&#D}_j&%obYX)neK7NIbn{C^**)}%YuFY+>ZF942+qPX>yV=~H=Ox_#m-4^g(=R9jCVrHBZfLgJC{plZ($t!V703zElZKd|&NRsWdj0QCwYURi zFy{ktpwnB08O+ho)PWcl)#fiNZsSZ^PJZ5MV!^Z`dpYKt9vv*x+P0?u-3z1%$0V&S zG*~-WilGrt#hGL@J&J0UOK6|5Z1>)QY1Mqe`DBJ=3T@j8vmK(v;pM+8<2Ip5lOwrB zC`=BKjkpU6`|sTJ=^X{|@EOEIUHp-O-u{CxLfo?Af0bumx91c%U-{o%r{|2PRgRB2 z!jSbc^PV8HuuXB6=1WewVD2fu1;PA9UV^_^wg!%0Yhd>!GQ-RNyMkBY)$Dyunc|ro zzk+&*+%2WL70aNULFFONDVR>$IVTCd-m-#qZOlc@ws7tir|*9^E23_*SL0D7rlWsv z^eHTb z9uXTpStI5VR>wgv!w^p`QCF^pU+2G`ou5FS;~a8KEN%eJ_}>{2RuWP|qJlW~WfUy` zFkSp(I)nt6#KRdO2Z<1?6Y2Uku9ME^??r*YNt`fwff;-glrt6*qrcG*82ji>7VWyQm`{FqK9K27jCD4lrr0%ZRe{?bX&}`H2rsF-1>BV6#OX%|G9^fZ}E|X ziz_BbwDZCYy|@W7jPebIP_>vSqj@X|cGP3aZ$7lP|D6COAC}}wV>!Of>@_laXNak7 z=2RYY*~uC!ZF9=BeB}5!Yp47tz0qYj4M%kMdYkdde^-TxQ*{&J-=&n!zo-%Te;+|9 zJP_1hrF;l4?arJ@f5zF}FAkAPgK^cGE{E@||UFM4Q&~Ks0+T<9BYFxzxef8gI1V~|>PTYNLM$Zj}KvhCsKpb?pNj3D%btr8IX!kO2qAkmDlX)_~(s(Ec%PM7S*8*tWQk% zt=*_RL3PJ*a=0x@uGM+7vptXG-BADCFa8Zn)s6BH_HFpr7%8H3YEUcGTYa#h`**d5 z__Tsqg4XZrXmykBXjzqszUU>JPXGkhQxQgZ&M8grfbYz}?3egdGOuYYkt+IRQ5s4K z1kjVH#2O-e{4>Cb*o9kk99N=*Fx(TIVxe|>eO)7RU3E^CikvnkZuo;XY*8%?y2b;r zAUaT*@sCA|~#uV%X2hmb^H8^-T}l zwXo;rnIgl|?C@)6t2FX5zLk_y4{6Qq^faaa@3Ob9njSDmU~31bAuZx7IQWt}Esq?x zk>74ZU@yjhAZ4R(&4-KV1N5~xHxuL#k z4~z&!C1TRD0Y6r#QGP*Sv7bT=j&-+!mHc;ZvBDR8=C4!WR86x08dAExN0fE<+t@=9 z%Mi5N7Q_$+v2wD4?yv`x)m)9Hb6ssBaT$ zzh19qzr7q_4pCz#9-7mZ<^6a5xRR&0tG~^_30WtJmRxty@WOX;`YZij0o(_Q z<`69<226*NGRkN#qhNWshwlp6f0qL(niVdEZwk2`59b<^>o1dygb;eWJky~vWBDe3 zi3B9Qs-1;)it>H9qB_<~hb;bgV=H5CRiUgGEi?SX&&`oAD zp;94Iv8xcFpGM2S7Ct@%l5Qx$>8Y9UHV9rrhPx!Q9-U+-(!M#mHAEh&55U})v)O6-T$KGSMax7@IG$8R^g z?mMp>_tX@Q-<_N*gkRv_;H3kGhqSpMc>cS<9KN05G>;lAP@Dyc&5QZoIw9=T?svxK z5A`RWPc!I4@SeXNkBJutUbKwni0I#+fZM6J65AQp_a`0BuyEy)I)x_J zOVtO^*B&;qv=fk-^ozo_YYbz7-x#Q#At|1c0oH>pGx9%V63=k^F^j}b)a)@VUK4O) z==T1zUtAOX*hk*CqzvoDP{U&sH7kUUH3u7*jF&%L7bxM@Q>msL5fZBHE7kWePe71U zl@`cL{bXP0iEGuqqiZ5HT07c@KDBo!uDb^3OA0`Rng-o1;suDv|EqH!2wawBt@Xcl z{WUt+;Mx$7`)lMbYINnEY6`Y(zkY2%t0vfuC4>p$zxyBK{&Y=-`aQzyELY{*!isd% z!#rYPNKspSPgtBQ+u%5qv3QS&x8yu|UGbzH!4(1ID0L!4RULylhQciroUu7vV{){` zwrD%bS&T8+4}rd(#h*D^ja1|=b&JPmPAKFFuSa_}-UThW4#Cjn?QinNhl>UCO9+jF z0+mw!ecvz3a3DzPftrpW0jA!h-48u7fJNzdtxa}$G(vQsY?*&AE$CnoCu{!QWx!5Q zGS~Dnd2sn>m6cn^V zGMC6jIx=Ys4`l8?|5k>9oUl(=cxqAsI@st1KO2pGp97j3@*&$iG-y!i#0tQvb(nmW zEnI_f_rzb&4tW;K(v$dy%5~Ki#IJbCMd~g5 z0Ud10uX+9Bi=FcQp2`{F1nNp!ZjIRza#k1(TEsX3bdw*Y;E4&hY&wa^I;@ zTeacBO>`hxqFGEYc)CsHvq|J^;d>u6rR-!Z&W;e%89^2a_bq5ZrP3SAw{hEPQa~K&>k#8~?ivf46w2X&ho`vKfTm<<&eJkQ zP%&vdXB`F|Y`+!zhW}N0BDwrpxW0vqdbV5sdSvV$<2lg`a!ibTQ1ri(l))2k z1t{%$;4)d#XPgppUj-((KL$#vl~r}uSSQ`(fa*hza|rVRba38X?y5slyYUvDLOx;K zq@%Kk-vyTrB{1|RC~q~zc>^N`Ek3os_H;^Fp*~?A4g4bit(yA%qKY`Zt^Y`?%C@C8 z_a-T+-E~~jbIO!T0(5Y}nh@TA$tF7GGQ5J;_Z^*v-mKLnZeI2Y#T~-@N!-L|Rxug` zZJ0k;wXov zLAR8Lha^+J%Z;&T|3}p>F)B?DI=C}IW;b#BGWx6w(MYoAyoekecXNiDmqENelPpud z%G35?zjPj{AeZ!yw1I}qJ;a0ND{HH2Wih_2po7@8^{jd&U4Cvlcztgei>tx81(qZPmyi? zSaJoF3td(-fJq;ntZ%Sy!)qGpafaxokdWexG!6?|ihc(jeAQS?&QLb@)H!b<8>@on zbV)@udBpS7Uc310OFR<=setqh#+mPQtu+3X1hK#ipvunQ#bl+fS@;cMQ3`Pe?P>tW z^F2PDb6*YPXc$Hn^mLOEtLa8hO>dz>dn%t= zO3Z|&j0k{i|G%p(`d=62AP*)O-2Lum6SE;#7ou!BNMwH=`g#DCZ$_u%^MFZ(A@P10 zkn;^1pMmbjFCd=7DFylnLvlGgphfJ?{26|(O(^nF{7_Sks(M^h4s`It$G2Lyf7x`# z2YV7e?RlwFq!q`~fgyb}_=)>BXhnm4V`a^JRai$Au>_}d^{4>PmedK!g1D01{rqH& zw7e2*efKFf@8fb#;v`xDl|Ja;*V7}k0cZV1*!DpTTPs>WjNnPtx%tf7;1rO~Q4el#P-#Q`P%31zT@U(xR>$%{U z%VlDb#OH^Qm$#i4a8~PKY#0rk#$3$>IM}Lbnc4P-(o;RFVAu&PDx)l+Pk~f2*okfJ zBx7YRsXG+=0EsC$q2%E8WPKu=%$<@9B+$XgzEL5a5ysVUxgq}u6SK6@CciZs9bCzx zqCB3?=3M*NHx^ox7P=P8`w>GxziR?;GtxIfO+w+bM#zQ`j&FaGBO8#Qx0v$) z2D4LzD>OSiYPhimLc4apd=$DWWSA`|%3q+-Db*>04(2k+wHq8fAbo`7yXt&>uJNP{ z`pzlJwK7 zIB41=MyA$S7Id(X%B_;dN9aOE43hPg4-~76JI4?1oIj&kRe{J zJZ?A2PLu$SAVtzoXN{{}g(N@0FX3J0g#&XM9Q{1z=4D0jCJvx?hCJ_^{{AK)XRSWt zsA*Bt5kD?OB#lC8d5f^Arfpgj;S&4Iku(RkJy$jbzQp$P=)Y4biv9A_9sT1=;Tgv` zal0UbQDVQd5o2>o-=BX!%=@cATd^AXEpB%PeWXN8NJ{M;2>!;?RN^RQBNbEc{h4Sx z`FYcpe*TTCnTLzI*Rkve=wNZrQ1^OcjzO4ziW-*AN7tM>tSWCjX&DBWj0wjX@}Je3 zt{qtoRq(jJeb00scEC(P8M&Ex_(;!m>okwiM{*cg z(7{&x4?|Tm65&V|8IX1R;4aJDsL&>bGv3MxzX;ffk-lp+VTMDNX1xqD=?qq>NC3s6 zm*NHOk)2=+8n{s1Nu@+Kzn)M$1la0oZ$$h$Q$PpXEyhqSfPuf(k#HUHB30&L;_Z5H z{i7KYNRSNul%UpE3$;sRn?^Vfpyl|&epL>@Np|)B&Ye-BYSE%?9d3x zP@4I5+JNpP0-Pc9O4|)p7KOB+ISE&2AKjYXH%B)Gl}nLfF2)dp?ezLF@+hzV2*{kYOSDJ{Nu6l04s0^$y_G3{%4Bw z*_Q;k8uxdnPkQKO5*;DjhW>&G&=YJE#t@a0)v#rd)c5_Pcn@;W& zz0M3HKm-n1VUJ#>LhOYI8Q^tb^o3KbNTyRc%XKYU#y>lpQ#tz6ZCZfYhrh+`13I`c zm`Tv)7;>_|wn zW(Es^Emk2);9}$m8xgjBd@qP_Q(6;~J_mGgO;pRRKJ{^U^Y0d`ly_cjk$zz`nN-8H z$`xi8c6jZ~^q*cdQ7eMG?PQSXs{NKg`pCqVX9_L_(xK6S{TJ=2PmPkb?MD3P@sNoU z%B)tiLXnR6s%qdVN$=|dE0K(dA#yw5M82@G!mlHaYV@NGuP7D@O z0NXaZVrs3l+D*$l7n{}50_g|viPrk3E9>qH%Zkby4)XJ#=Xby;8V74cu-|^;4 zwhTnq5?Q8;Ht2b-fY!rcWW_uYIZpWE)?cpn&oZ7=Iv9)4!H&-->081S4)F1arw<v_rM>dNfBi%47JLg&Iv6jADQRtzEN>%;?wx7sUKRi^mL zpWwBbk|wlWnR_HVI6Qt5o30D0CV>rf`Ezfwurg%{}y&NgT_%Ns);O z#5s1QdeT`i;Mc$Og+ogj`13&rPkk1sxcBVZF0>OjUZcf+XW~_6%z=x^&rxm6Y;2~Y zArcDj?kB1u+@Nd4d`guEgf$Dz5!4<9)2%2ocnO#9Ihl2e?VFh<{=<+<`T$y@ZSl^0%l9O z9*9CT5C$|lVf{XEM!Za^Q)uLyII&F*otAf)C9CIRNdjYF*h8?ravvXrfqyrBRh5|f zvk)!H7BM!nn+~eJ#x0>fGmNVqa3a;Tkmb#vHJun23qO7a_KERMBDp zI+stJi@}=1@GI9AH61r`XsOEcr)gH%BtAp{1Ne8)!3QZ8@?!uK)M9>($I+qjco*}5 zpPr@>MUmoJQmDtGR>>CGAFv@FzObj70wv!HAX4%rKfTJwhtiU3&(dyiCxBMWjS7sm zj{%Qp?GP3c^o#)9eg1! zzp^{Jb&ir8B0{Yl0XV2Y2jfuZ5medyqJZqgi)PzCaX4jcJv`8Agg@q=(ybFmUOaVx zSgQ*hzK!O`;$#4541XCaG(_sSQANIdZV^%S6s$vb2SE{SRPM7{NTY z%M4=2q&@xGdRn4}s57$+R|fSb+Qr%jRs?j&K^_BaY8goY47tX(1dy=opB6ZAUC^YS zw(_h@y5apw--t^lsqw&L|EsWp8uX@ED|{!7-x4Y z7yN6sBf`yNPQHfav1VVzZ!VR9?++{n4jkRpDh?L~AJk_L8AK)J5d9gNN+ZEW%;__r zi}x9!57+VIxSQ2=h)Z3*Tw8fC3&rmdSjUal%`uV&$F{kN9*{% zUHDU5C%1_&%4>(^cu8Ol)yX!PM-76Lt`vbg(DT)SxQ33NJ-M{+5DpH1;5>AUG;hrsL*2&S zv_~nX$wbg2i9p<3STF%*n!lv(s4$rosC=XarU-_#d#Xmg9>4s z!vlV@BLK+h&SuOhQgscA3Cp96V7su3kdB;cCp|hLPMcg_d7wK9@xQ^Q;gt(|)<4lY z1`9uJnxzr8lkskGL}N*-9TlpTv&z2hg`?Px5U%(M-8}qvjaGG9TQy>wLZ!}l2a&DG zL66`9BoKt_mhtNsd13rFdzdJ-&zd$8VJ*M=lN6|+-_`&qbsE8CvPBgj zepRpdX)>1uM^=l`T+oNHhBL&r6809Tqha!OX~b_qyLqkqi4D-;0tob402Dw`vW{&*&JC#@$i68UX#o{c$ej=rr56@narhlH@q-RgT|F4M^u^X5ND5 zuApmuXc{I6$FD_4xiGS<9f#Z(nY7!L`PwQhxc2fsw1i4{N+&Q?r?aP0sTh6^eZv*Dv=^VD*D0OdPSC2$GuYO~; z4b02mW0JpQR6d|ED>f$VazgpZc&2^RmtWn(_X7y}sN(q?b#?bbV#X==XrEyg~BKtNct9-s3Y>K*{BV0#O zK{;ZjE|qctSU1t+CQ2Q`^hez{7mLlie!FU@%wNBxv3X)Yi{Ak~gbBG@Z?pJARiCGP zM1Gb~_jxE-*o*o)E;j#qSVJ_LJJ%O0kR_4Q1!KYLxAyO@DjbkU=x|Dp4x^j?cL_(1 zIsk3kpOBpOc!LF=hRP%JC<%Hs^#eZS#~VW7!PA+hW6jvb5R>h)dD0BkolYOdJ4b9~ z%%~C@{SjivmC3sUez+?SV8nB z;L(n>gt+}#a0B1hr^Ga|BdksJ0`|M3rXQo&EkwszGtewPul3;%zLj~^J_3+D@;77t z<8>+UDaNaH85v&+-=sy3e)li4Aal4Kh7RapdY;g2n;q16dz9S84w2BTXD+&3S=f9* zrbyB=?Gp(Xnk(jCeu3yj=`S)LJNAumBjx0~xA(=~YgW&AJ zfL)g}&Jwqg?#5#Y{?g*#-Y$2D$Vvsvt^F8D95HU9po96Ya?;Wvg`E1Y0vY|TxVzU1 zreN*Xl_WWPzWn-!`}@l;#ruvC%w77@O1XjjYDl1YN`NVA^x#0(a~IpJVq-*F@iOq) z7p8tU@XKj#`d84w8ru)sRoBOUr!~syR8;lL9;HciA#?^hRrnv0E>C3`@Jb185EjG| zSp&pI3OE=*!%r;esUH}-daqUw4u4Emrj$DZ?XcUadSmw4hPTo|2b-eJM@q=_jAk;I zc4+1i`=pcnd+lW>G09mu7a&%xR$+!Wvoi>N#dThHy!!zZ0tNTK`tN545du@aeB(>m zH44(y$V;U^>bZ`!IU0oQKnF)C-d2aNwb4tp5jcfSA_eEz;i1GCWkHLpBdB7DNIdyk zU56Uy!P*o*$O2k6r-1b!t|!6L%(ohm%y~)NYj83sh7uQc=es^uw$7pNTA+g~e(^T4 zx{}~!M;@#Fgxu_nI(d4yFNNTl|4_3%n4h&P$^Ob5lwvY*2yz1*T+{#SZ^)rcg(Q>#VGzOJmdx*ug5Vbx-64%J z8~=aI2ft=2K=7{Q9*{8M`PZ7j0UQymx*<1^0(E%vyi=nRrk`U}6^by~AL4m@&P2ao zKo@p*JzlVx;|(S0UQY0IRS(~wytT$#=)cd9KX?A@B5pNS7>rIDPezx`m`dPfg@e1&N%-1Bs5sLNus zd_NoQREPl`yl$`?i^}fUO4rRBNR*C}ms8eK(2AxiG#pS#N<=0*L+3sN6<~%yQ^S*! z<5blND*Nk(l3h4Yl_cs7_;k+eryOfGufz^$P&K#20u0COnG4kW36)8RIX7 zA-g^FxH6^bP9pZ}c_n;0O2(DDg-RJs4Wq%#y>`jH@e*i{w_SU`j0MM+x%B?B=I4QY z#L=`a;%~!R(DREWDVi+LBBXWJL=d z*$sBO@~k0=$(9V?Bo~sG=nY{ z3_>*aSZg4$O_93nF-l)u zYLJNmLUNJ<+iFQwmqQDWV_e?U&&m;+&T1t$C;z8hq`=Jo0sI%XNsevqJ6o5nSaJ_b zZW&(incW19FXcdw@Boy%!VS%K9PkvlUTFjOg09GvA& zl@z}GQ0M1%3BXS(&k`KonW+#mNzGuo{Ff2B40G?#>!3%(zP6lJ(DPhDhLr@RVkWtj zKXr+4JwA+JjC7G#Jn^G7O(e(0=`zQp(dx9WofnLJ%;9L>6kCOX5p^5UWV`Dj?rd># zF799xO`$>pF`R1VG1`iv@j=ixXaw2%nvQv!?i__${~jOs`0+Pir*RDiN;KcQB~%1z zCA#b@*^}*Gnx)~1o$+ok?;{}cOF(t^j%%O9^5k)gmKo9ti`MWLd{C!DDsCs*bc`F=ru)LtSD ze(ixi@;}J$#~ML7n)I0}M#n|NoH2_bwlelDrjo#}N^pH-tX9&TBOJv`&;Nb%v!%k1mW@JLY8{%fu?}=_+UBS=;rZvHC7@KUBggWL)>ksj-;2YzB)+@iEd=f*gW$3%W&VgZ+sqVSQ z;lQc$bgNMJQP2eF;Pha79DXnwQy4t?nD;(AT~t9~DE?QLqn&S;-;AM!XWYrBTYQVb zbsJi=>w~2of%GbP61(gjCcN!adxY?xY|ONel}bSg`PMxIDdeA^iv@!!knx6dVoR|8 z^70?G!}{^KKR2NJzJQg_@B7p0v1irEY_C6KRA;=l`0=ji)3^irru6trwn@19yox;H z(@6o~S-J@*EZNvnd4qy;;q{<{8%L5Av^Z3f}#Gp6c7RR!pkvM!)sCx6H` ziXnrsi!8GV|11yf;qTY>JmtX(@EqydEeSTow}tL*C?EJd9(lNxGO{eYNdKM5oWjOa zsA7%_JGw!dH!GPup{F6VIx1n*(s3|5i-YIf(m zc6cB=L!40+jdrTf<#*|QI1llN(d0%49lT+UzLeV1^zci|^=+cX+!9=nFj&e5>ALN} zZ2846lBNA}&yV({<9bua%6hl`5>R+9JxJX2tdj^s=s$p1nM&SM&5Xwj^cSRN`|B zN4#4gCg(Vfr`-QL;IHQBWq0s_ITHCGOaneRpf{$y0X zkRd78y+~jQAFB|(Btk<1_ExH*_9Czx^0a^s9Re&TjP5C{{Q`6_lsr5F)s|I-)L;`s z08U5g8}zSY!IHHJL3ejuZvHY?#e9GDbo+9xOUNiF!Mi$OX2(2*JMz*WcANA zEp3k^!F#^dX3^33sSnTt^I)W!u`YhvgC+y{I_RE~Vb=}KuZ1m@-yzXZTN-|-d^#69 zvwk^wNnuk;q>P{-&IP0;Iqi$=)jkEGp)mrzEYPY|^)G(9^QoI~3!ta$fquAxiJ&nO z?_B@tegpqtK)w~?D#pLstvU-5MFjEq_>j)Mn!O(Ix{fu_t=^>6g^KSJA;EXA2}caKbSR9VgVj{SeDr2-{E2<;I<}LFE)i>g zHWq)@e-4^p@;M>tNjX#2!&*IN5xiqy&S5Y`}9lop`zrcb${=sH1WS_wt


>Ui{;mnsHnH%2OU(()JhX}NM~|CLC^u3tF}QmpTK$#5o%s`VuutIN0tQ#6=ohOE zp9A$2^_-1!f4B7HtFPKrKus;w`e%Q1p|l3H&bbn$c4cy2hfk`_ZP^2<#l70nKuCQ&k%SLXwh zt7Mby7WCof*rm4)r|W^T-d?hqIE~jXjfKSqqi$O(i!dE7d+(@C%8IaCJJ7X0!G(<} z20R6`!|XPEu7KOT_w7EUjOABhUT1uGyCN&RxR;wej|=gm8F4K7WX$A6ppc^8i98YP z;T+%|4se({u_C`eZInX!)Md9kJo^KBBoW*^5{5R|&R0R8FV+bE_lUs-zJylqMqa{< za%G z`57#{F_z|CEw`eT6NHzv2rR;YDcs+T3~@P1YTH5o19;j{iTdwyO?$d$7)#3Wzh1nyQUWdV?&RSJN!w5U0?SaZ8fZLEeq(Un+IVBzO}B&RO0h2?xmpx@2l-Y5AJb zJ70T{RR*}jzMv`UK2YtbS|&&x9W#}tlD52o?c1P z=Bg`I`dDL!G^YER32te=U+_?ES5Ue;Bo?ar}Q2vCOq>orwDJS;y3eaeX_F}Gt-Ws z*A}6qx4OjgoZ<|@7)~BDu#)7;ap=GG-JE={DUrNvyBGdM-}&0lyy5VJM<|nbUmfsI zAvtq%y!sLD?I^w2T-w_*(Ga?6jlocd-hPApi98G^bcZnJC*P6TkWBnK?mchme8mdxDq?TKh{Bz zp(ITh|9#9bo9-j2zuv5SUg|tN5&Sz+;&t4}ciy>_o&Yqy>T$K9K)C!SR&@J0h4W(s z2F7u|%rsx62;B;-c@|`FJlRonjqSfz3|5wJiQ!WCK2ecl)JWQ*(M_}5n3N8+*+x9t z=(xxx%M@%U;far?_tXp}J_*;PykRYdqjsGQ$lyr-2%(#-1&RYYIIWzRC4Zk%5GAQ+JWs zBNlY9LVy1u!EZA|Lk-NU`AgH;SIi{T$Hh)_VVZ9TcRotL9UWd>)?}GtiO;@C1|0AL zxmTgOUav^gjb{~&W60NFd#l=mKS}6x=&VG$gspc#2FH;;ZcP5R_xo7dPHWGqNDkTW zh3ynIguF@O?C`cfEjJQ!ni{rKr?wQabo4yQR|2T+qsfErLVl(rOu>XDNK>x4#a13J zZguf?z#pxMu7m!IRRm!I@rT^28E%LO60_>3YJ(93A4h+;DZTG!VlEV|&cnHi~5k!W*{~h7Wuhr$5HW?Tf?BAa3D%dX90-i>O+7z)>;=Tb-50sO|JE zNkhX0+ZshLz_DS@LCQW1ST&dbXqm%9gsucn3Hghl1pXK8bib()`-GxS!)xb%I9%g& z=H|)X?duq2m55Gof0lcFX50xm`5$OTsLvzrE;ikpiRz;x1FA<@9iqiy(tz|5X1#=f)`U%^2+()qbgxv9J~MW6p0c z79dD3#>0xcl*fS#!tVVikO|fEuZFAOzq8dV=nLC$*AAA6_q}6hD8hli@2JR^;`&-% zYi7vi8||7N-txp=(>t#qKTEYM@tq%h zRW9_TvO7*N=sT`M(TariWVCgEmhjGrc?lJVFqKMk3jzBQ8_YFX(8DL9Za}a7nu0-=b)Tw zIByxY-!lhvYe2$EMo6Qp>=F?L#3SUnIa#i3$uPFT)~c&?8Nf~$Q;$Jvr{A>x4XJUi za40#-!p}1mA%{)|+f{QGbgfS)4-upuDXfUMzs-3z(xU6ni)(0xm6;r3G>R3n>+9BZ z$SgZvJ_cRftfp@lKLG~d!BTuR1I2uDA$8P#CuOHoqiyofRZ7t=F@#OyrDh`NV2P=( zcYNx8RCdm@rN`?K(7{HMo|%ahV*97a;0L!DY7q?{bcWV$%cQ5C z0fv_QrbZ1yJx(u{k9j}UddP;dGXaT9|K_a>dfKM{_xTt#d|`tqSt|1ae*V|KO2EZG z(7SO%E&4Z}o4pc-)mE>Y#$5VU<1mk7EZfi8i~Zn$Us`W5ElRSWvOtMvOM*& zW-4H+qvgNb(-!J%ERp9Cf0XLju_S;U#GoH93{^2MA!WC9O<>kKx$09fYobR(qOl3z z^%d1!B^!{JgtGwVXtD7hj9xL89-5NH*Iyj5Ju5`YYj@NJZg6tZUNL&@z? z*+3*oA}T)_k5i+sQ{)#scALzM|xFevBJNNbbgo_Tsz95!!^ROK8?4*b$|@6H-N*w zv0}^-nwmadUqtK9tYSfQUc?R#FUG`Ue z0Q#ri>7fK`KoSf6pvmGnWk=n`%ARrTD$jwfho9jPoI`7@lAB2DIc`kZI1ZW*3@HXI zgbEIPF=Bkzu+V%pXB^hb(+>K>^B~MZ6rdVf+&~An`Bgo$G#34$@_w$3Yw<@L&VZT8 zoQ!1cb^k5hW;&L6S0P&wdk|LO3-w5I-q8>U)aKRd^pX-SArZd7(0{wvI4hD8=d22s0L zR*eWm@@u{a78X37JsFfojVM_05*L=kfe$l&=lNy-7ZHN_HxL#>@PoocQE)Mup4GXV zSm0o{JCl%CJA-L$L9q6pGRWWrbBSJ`IF9D$Jp*MO%t8pInE4%)28UlA&j-fkhwvq+ zqgJ(a`>vaZqdfx1Kglit?~e~|G3DK%_->gM61Wqu@0phlL#Gx}8k1ay>75K6+9?*_@Zof2@VzG7V)>;=emqOc_y9AN=k2|H zO+%(1tj_*@9?Hj^I4q0HBvJ{)jGN&0c%XNN@FjmE^aZN%9kdcta&*?bC{p5C`-a1u z*z-pSEz1dJX(*0=#xDCG9*fx+$L9Y5&Izc8f1zEPc5nM_Ot!k>-{ATo!_l-53ej&c z9}HE2{y%mVu*1YUMMc^^t;dQaM-4~RHmxwFHcQgXfx)3}<}Lbt+&;2@^zZ$!Cmcmn zC>E%S&7I5}Zg2d-zYlXXeT>h=*Rim+-S{gM;z3Q>d=g}EBz!%C=9I**Q~tqfrS&)+-HT4dRa)aKk;2-D_#-H#NgG$U?)itBwDCpo;WFZ_z zb<97Xn-E$~ASY3^=vaXAjTPvO63C1=pj=({X|rqa4mBIkQ-lX02en6I=jNnO@ylnh^M zkQ_|8fx5F--x9C0=*45<7hl8)ScZz zfYDq?end0Ko!eNiHJspvl7drB*xk9M1Rvx3kK(}X`XEBg4Jt)wpi&V1qIUL{f;3yg zr((rz_xwIKe)n|Ferrf=uNoHghd_Q~>lMzrCyGl2-!=CZ+VJr`DkRtPF$2q_6k1!L z_Fpt(t36qyrY$hlOIMVek5|Am;O3paaT>{1Ka_c? z({gEW5s&qcMw;_sjQck!MpbRWMtp6_pjLG_Rg&Ok(EyCiJWgS<@p#uGXow?1fJv(P zj}+qSUB%;5y#tI;kz_wZ)iCqQycNQOSVF+~hIUEryJ2ya}o6 z1!dT(IQocB649M{AoMpd^WB%$l}7Umm30qqE}ms(I56@A@I&q5D1TD!_o10J+u;s)d%*`mPG>bJy_XqM&JyRcX_Hw zndXdz%(q;dTAdu%K_9PE*WygA5*yMTv`77Hs8H{+#&yB8czfVfawh&IuM+_Fa*fjF ziq2x0->?xWcZqj_wyUphsB8=IU)MZY*Jz>Ua9sF%s|wm(H5gNI{M11APHp%LGn`po ziNVs7mp}i$6pEIM+ou%kpjvCk3ZsM?6;>kDJ*7&>rMFmf{h=lEn*d;ZZ<_l!*xuH) z_L1CF(opf2Xq%My{>~=uur!3tDS#fr9CT^P7Z-0|8>lqjwZ;DNwDjU;we;=xfyrm} zW{oGFxNtr`PnOWyKCqA`ZNm8pEKHiSd|NedM#OtX|5^14-=*Q|oj`qa(Lx5Sq%Wz1 zE}f&xw9Djbb3Q%k_cZ&CfnpQr$>={dUDCSKUH>Rk)HoN*VE>ya8~Z za~mDdjd%Gg(jgj5>MbgBOvDGo+M)!N z6Kb=hm?2L;h^uoeAt{NRjdI756O9#^QPGfrMX$@qY0{`drfvINM5#ypFu_ZuW-E)v z*kqBE$8RklgTvZ){w&+HBOAK%IE}&zXf0KHNXbtNGkYY*sa;Kyb6{~+lFHTlu_kyu z*5k5oas%fiIhC}9a~DR-o)5|a?vEz3uMtPKora2z!x~G@pik_sc_85Ecf;9eQDHLb z3Fzu361p6uWUdkI&y5pAH4f)N{~}8KIcOA#d_{dK-IBxz9A*|kab$4L!dsBfXZ!b? z2*3X#*kSfwCj9B_?iytTGC1kvIRn z?zZUdr}ST)VHzN%a1kIyR`Tf*_|o#(_Uv*D_Ey%b3Ehk z?o(Kji80F~LG*rHUabmASw1@>_kw-?~o68k8*!pg4peCES`t zlvMQcTYfk)n9q`7KnbXZ`<%$00`o!#; z{wT2WJ9jnX&pcrxTX;8Q=x!o|n!o|L-~=y363~y|JnG#mIx61pQQW=CS`S)3CfJDS z{R=<_SLn@IG-;famw|g`yE$+4hd+9s@a9XWI8m3;^EZ!t4TU@-5Dik4ucwUD&hN$r z1Hi|)9Y1db72r!T|#!(Bp0Raz(o%$^JC;thz8{jKG=_(%J)Agk|?=e+Ym~<1hSKyh>KXwNYLxW~x&WnZHo0GX7GJY( zVb@Hz;C4cm)pTleJ0e zr&hkaicmxWIw4hB_aaVBCO`*Axzj=Nh8(^w2Q6f@6>^Y`uPxk9ltzd~^;mUi&!REJ z&EZY;z1M{&j_}s}+0|+((w__5K9Ua2t-`_lZ^nccqfwy%n z#_Oo5N#15ort!|jX~^0+|3o51;a@4{0o?joXkdOmUhRlC=J$AGS9O^ssxoY|cUlgo z=CKWco}o{Ce*7M*JIWQ_{-^Nr@BwD3gA9|TbcS!P!^Vnjwj$Tp>E$()<=oC~V@7h! zz@Hfq!n-P6t}i9!z<9bVJ=GAB8Zk*kRoxN_Z8k>17smwsIvtZUf(?p<7()JiYY|-| zC&a`0;?2f%MJxcb`6X!hlkKHFNG7Y@96c2QqULTs3Q#UNkX)3o`k|V3qu;gC;0XBA zK6r*$pN&Q3ur?r4g6aR$Qm&izlDAMvkMoJ-=ak*u?qUkm!Oa@N7^Y` zmVLU793(X;4X@zuZzU()oU^k_zNwW*HE6|%_XhM4j4KgQ1w@_~&;Vw0tsQ&sz5XLz z$>Z$7o?+|-m)(RzSU_EEQ%M-7CCK0^VL>LoCU#d!R#aFffp?p(A_?Ef1f4DWA2oSI zbmJ##IDEF9565L20W0i%X}5L2UoqI+Yc0vO?=B7q;ahvmjb%dIHZ%9;-x1;@&%muf z1~=3vh=v3zju-sx#%Ckwp85LlXGwKNvMKok$w>8yZ40jGt^uda|6li*vPuL$fCfNq z2bz=gQ?Bz{SqA3L93!dex_%4M#Op+>MTL?d1$|y-9T}CNiCPgHKwql$xjY7Vvu&j2 zk{O^FE-l#7PV9}eK}T-Pwr-aaafm5iLnm+n2#T~9JWon_+%QGg`pP3A#DCX_^bQJP zco{!DMSg)EA4e4oaKVV_Gq`Q3)a7xKEMLYTOiHJS^bKWrDULF%GB*oT;J3i9$X$pg zd*)KSodWquX_WNA1Z@vPl8is>>KY$CA{^p1&rVXc^Ax=Z|A%x_yzG9l-Pl%Ag%76d zy9x}rRAKTX@tFFJ8`Q}|ngO@+P8(;pJeMM@*!pV8yc9UQ}t5TERSXUS# zq4q4KCyI)}kBF0TqZ0IP+|VKq;wfwsGm|^W4M}JDM4l}DXt@&9e}nn=W&OAr@gDdqp4~zq30iK;8(U{w}Xjn$SYqrZP0BsO}}0Z z@e8~@G{LZ;3U@pA{ar53;KbV}*Y4D93O1!two06u1*9tYu@P6%zo1Nj>lLNleWi_8 z;4Fe9XDnref-c>cg78xefOT{7$^yN|yovBeV0Jq;o1f{&HxFWh5wt+7d<<@AEat>RtnFk%&>5Rq@2yy2HHHK z^t5$uEQ?xjY}DnfQqk&{4XlCUf~&UezSg>^13+Y>{vvck3OPZ`j-^C79C{b8_|zjQ zmdt^ZqjTMv8TOdpE~2-R?0t)l!~1GCDC0PyU=i zwf>ZXQJy29p`4ML7L0!#@`xZ2bJ@os2x3v)cA-Pyy9O)|ln3aIRuR=M68!ZF0v2L~ zh#VZ-f>Vf=VA^)wsYMCr)+?Jul>YiLKcakjtGR7Zl%X};6R}+Z=z)1G4#s)n=0%*o9mmJl0;Zmt;g74Z-!Q%e-$R=bdjc|_ z);6tVdzV??+NH-8ZArp`IU=(kU^r6vw*vvfv5!KH!{7gQWV(LSOcJqR{^<&Ov{->+ zIv%gBb$hL25Zp9#lFv~g2GNJkp3jRYx-0c(Zp&*g>ro^qAj;rKegm1a1r|7>&Z0l7 zE9bxeF|InyRDGS?I95*ky8?B@9Sdj6;eS}A)pIJfg3d`~y&tz@(X-66ws={j44I{O zdb)LzEw}y*XJ0+v(c_!Bd<9Ez*+-ZQL0q>V_i<6z%vxda`g z_A`R611X$&{~>`M{&&bTc!MHp0kWI)wZ$QY`8}~_bk9~|hVHszoo)CE;;+W)m)97~ zQVQUqAp#0kkAf}ii<{w1=0|@Q#PE;Z;B6HG8K;@WZ=iqbh!>r^zVy8)i_pVNlkWsFYcBHWTz($S6XFjYH8TOG~y=gWD>MQk} zsP#=69$k7xFuVinoteyXic1kvMS-}>|D ztGZ?u8CB5NW#yeTaY3`ND0RFCIWI$^LN`SGx{MKlPb@ot?j(Y^mKFQhE`mj=o9ZmFX^)@DKXcH-z0IE<8fHGd zE7n~Z3jY!F)@~2BA#%&9NMQje`Q1a$1f6lz*?lE$%QzxNKkVB@`Okx7U(rMX=s?hO zAhJ+DYj5ozZ?D!a^q%o@ZXxQxYy(Nw4vkHWb`{Y8r+=DGLKXvTuFwP`lc)D7P$fJk#yJk1OfU^sh z5OC#h6HdYq`?&%uQY^>R|9dfgLw?4Nu?~1-Jadddf`TDz2<-o`sBW%JqdUM%iD#2g&xah zWptE|GMLy!&+hn%=lUaUl8~aGz+G6+r(YMAQS?2Q7TIc}YGRq;mDsVY%^}ez<_~Ak zJFZIwmvt{Wma$&PV+5&VJPZ1dG93~jLoUOevLX@OF!jF#}w#Y50L{( zd1&8_q!8A^Yv&=_^BW|FEey!2zf)?oecl)D6N4V621S1l<8v59U!oZnZ_eO@Aqq3a zn>30Irhkb?-VZ=%cQnx0Z^AF_?DdWI*lSTM`_HsKzkG=cGh|y0UA}$IifGHzr`{7# zTNHO04WAU#m*4zO)evd_c~Y<65yslr1NP6y323lSZ+{5;M7@O(_6N(-^G(&!qo%D~ zE!QANatR9o{jpa|q0k)wriL_3tz$hz@r->Yc9wj|v|>ZTkY+ZHHKGBbWs&nTZPhW` z!EgiXX5R{QpW^(H(Z93WDZe2pOI=EWFEOF>9Vl`q~WxaoOL5%-Vo;gR%arOiA zngo-YO)843!k0)YcHpeHaQ!5|53R-uO6ac&N6^ltNZglO{B-9X@LdJnJ0(AV z)eC;?k7Gd>^U-zufu@$xYL?)o2BVJIb^_VmZPv(AXk%J@@n+}Qb~ko_y8!IOs$>Yd zD)sC&(%JfhdH+JT{x|NVS7C2t)Sg$0qXv5Y_-QhHHpI4olPz_iWs(=u{c%EW`7#)T z5B0kh-U~{-;1>p3Eww`TEQ%jomdS!1KrEOoJ{QG3z~J(FJdOo#Ei^6a__rjo+@(Xb zmL>=E387VLM!Ks7em=j(&4Tq}d z$gQEg78u(5^grhR!8`p;MZ)#`#2o8VUrs-C0#t5P#h?&|1%+`lbj4dN8WF(?52zYqEb!+aZz!V3-0 z5oO2Cz$C>HJu+Tijp(^K1Ec zS)K(va?Su^r_Yv$SQkY%krebI=D6XrnoZC(0wt6o-!%rGq3zaxHA4LRyze=+_?lus z)`}1NhC9Ix(5xKIod<%gX7=Q79w!d=Edi2{hn~dG#mLgShGZ#8s!bt9y%k!7m1ci_ zC=A*lp@1GqtYOjJU{3xT#)b;=?bdaOGp0uvpQB^U4Sj{ky1cT_L>eorJ*dZLz4rjG zHk^D0(iOj0#S|E!2uFp@94r#DAwyR5yH8tsC*H23Y^#F4$RgFQ@6?ri97)G$r^Zfk ze^`l)9oB8~l#bz6wC6G_+A5*b;Sn|%tsEg_pi3_;&`bTNP@5f9#^rtL$m>h;g z;tOf*3E$VvBHh|&RnT|i2KQB`Fsx(1zk|1Hy)9F%C2GqQDQX&92T3)*2*V9+{L7JA za$2~U2t(npoJ!gf0oH_vbURx3w_81g61`bCAh+1L4Vo)HjO2WVBbb-xLHADi!Skbk z__8JkaMcsV(Mi^Q$Nsq0$_QuieKkRzziOf0Ok*_>);%l4&i^V8cu)a|-v%JC+#dgC z)_iGFpUL~fsPP1sl?Q>6%) zN)dqg=jI@>PS5QRCZ?=hxqeVE0H|`}dxP222?EIPHO#GT%|DluEKBOH;V^kd!~tibX5ElB$m1^B@4W z;IlV96-}z2NTNETYVRY{olp_Yn}tEDFVpn`r}3a0kbewl(<03qFYw<sd3ajKMyft*@FhBj5ghJ8y4Wdlavlwq=)0n^$g zoqY{jmG*kjCw7Patwn+*wj78e0&IYvnMb}>dDi(Nxgz3Oy$9!`mi5Nc#v|0dbGb~0 zdP&`{o3y}(lefxCWD|_yenN9eT&t6n(0FXn^ToBz{5rcj9q9V%G>&kGgskkn?Xgh} z0R6%H_h#F>xN$dy*vsR0ZfY6MJ*CB6qa1^!@NoVOW7`Te0B=`u*q}iFkkolf!PEL1 zcvp-BQx8VglCy&2>Qa-26;#a z_?pmklJYPrXyyAux!O{&xc^!kX{|Gf`XLRAqS)nfDQBU`_qQp zbBaOD%c#{(?dPAyWY%ICa4cVTi1l~S zmI0PrQ?H={>vfk6TwgtZ?2MJceFea?LVV5k$g|$I>;);e#{AMyC#UOT_w+bTS!de4Dm;Y&GKO0ljLx5x?!Q>dhN9l1aI zc75mxqmt;fHCLd^F>FQU+>-3vL=1oCXO}=t9_k!KFICla1uPaE>ZA-r^-t($rb@~XzSa3ReJh|0^e@zv) zTu}(}`huHIRbQ#yWM6aZZ4G)3Bw?dDi$1j4IsCip0sdl@a_ZCxuS&hX`X4yGUx>#) z+|KpvTJ013SAGf83cO)r7y}~E#_nzeidR$z*c3ITJ#7-9-MiK4&P00QN%QFQ-XMdE z&#!(K`ibBv3bw%9j==@Kp5n{Ho)2K+pHH0s0SAY05u1WC>&|s%U z5oE+g`3m8c5m}G$WwWI#>R}!$>`Fh!SsIjyD>96SAjy*h2&1(WZs_rKkR%@6>eDU)>iQ`CN{5;#PHUZo` z$&_a3IiSyOie2G8I4!QzAHA_^IT1{G>vd)IK9-C3=1V%y=%UBM_nEMh5Nj-@5Cse` zSJ)M10UKDMZ$AL-s%*1CZ^D|}{EwT77&CwK3DjfTk9zAukih}vPn>P@VDs*`XIJ&? zzt@)yPL)dHhY*a`ze|+KT$N;@-AZ(Mr=`*5D1P_UajkwgI?~C_#dH)?=9=A z>qR^cc3;cLxk#yP(BChgXB1;|%3c2QE#NhXX<#VB>26-Aajiw!iwD}bZNHLR zx`5vOQwd@4J$^1GHJ)ilCyA8VA5HgWrOk?5FR9gG!UeM{A4_<{Vt>SeI{s6&M^`KX zh)G_DB%|-hI==j#JQk}HVqRhQ0wKNGprq|SqG=1d4y2xcgt^`8BFi{co$Y)uf^OvJ zgj(BrR($KyqRc{oN0NE9$L{bp zyt#lKhD-jxPS9(M$&pU5%u+6<$-Vd!4D^?rLmnDSZ1d!~&$y@5^Guv9WZ@>{=8+~{ zNMjZg)k@JlK&>+*dVWtu`8Y~CE=4TC?KzJq>gS7l-Oy@*x&b`s&2(YVQ_9%8qRJw3 z6y$34GqYPX<>&$&*4gDy*3pG!8+hgJWdSQ#5Y@tR^unfg*%ttFh%v3dbg^E*-&OQh z*Iu~TSbmz{!@Z)jxa;K@vHYNy>M7W~hMluVBv2!NSR`6xn6e@jS#>}B)InoN9~`Ad z$iQ0`cPjPs>6;PoUmsr-0t{%i8c)g|`Q_%kCkGJS(ov4Cy&J#g@*X%KRGp@QF6@p* zp%x+D==F?O?$h8RZAW)C!&{V|EQ=qw$~MXUg%vD>Ul zaihJK$CixH1%)-?oKYoMugBN$nf}h?S_WMskd#MD*ByWGZT4BDz;`VQeT1&r!_(_3 zm(Tl;b!d3Q-Qn}~!rC+Vk}GK$M|t7132?HQudMSyFk~aRTo^mK)R}|kWEyjn-*jYO z8U&u41o}O;eRCN7xl#XZEc<-g3+kD;Ciy?#%S!L8hR^?$q3Cc`l9-NoIi zG^L?2EGmfkYH3Qo_h9@}n}BxO&8_8VqagWZz3F<*)(1R+!>Rmi3*dS@qr@G0O(FagCU(PZ?QYH;3vP9!{DHw`8;Q=$r^b;n*sW}?+nBWx~^6hgFM$NN$a;Lwa*`cl(?Y-ZZ9tOD7Js%ZMZ|j% z{aGnGsLL+4z;qO*Gl2M?J9PXu=;PoMwT{g#Rs6{NKZb;Pw*nu)9<|`s_x&IeKhBB- zrWrl35x#_x4B+%glZ7w_{eXi73|er+<0+~M2c?I{d|>kT#2}xCjUzJ5$P5jlpM1$d zHy{YIy*3v7bCkOHXr`)ToNlFhgTGTJ?xllhUC$*Q7Y>JJ5f5IQO3KqoQ>}?fivh=_ zU=|_!1QWb;XB$FpL#d}gUqTW!-yD8C?!~lz2GGGs>^4V`a?gW-tqPNvlU?=;uCGY= zR3r%B;5cjPcmiBUt-$o+CX#-hDJ#H-X6FI8)7zv173%SsNofW!OjKX3Ng#IvgL{C9 zUOyBhSI{GgvhSapth*Il=*i#4|F!|B4?sOX2;~9O9Yrl*D!qZ8UM2@V>`Os4Gf?9v_!uDS)~8GQTZL43de5 zbT`tDqt|kI+6^JNs5whDm1(b^b^Rrm04lh{B~W!%P~8Doy7yvzMKSfpqZa4f=PO!Q zvqkm1LY6Yi@v?9(;U&<6wpxD84}6V}MdE1idYlMK({$F+sR7wU){U%JiC0%@RpsEu z_o6)8a%K-i#jDs|0OxC>fa%1TVWZK>;XC50D+HlD{q;OAZ&8m5R<3*-==o|m|9>0f zXi1e^P89fb_}2ha!YeG3XhA)bZ?J9+S1PA>W8_uVH@4QMUKi6!?n}MR(rWu6d1px7bN&Pj ztqbt`?@dbgkQ*qosv&5SbFW@P z-y~I^o|)2uy~POhb!WfO4tPDx1r7vSmAovP<@L&H2a`9W0BAF=oR{iuf5M4n(gF&= z3Oe%dIhucQr8f*=>wC3>UJMCR*&s|h@5=h6N!D*bZsC~nRP$>#BDzlrQL-MySb<(YE|2;X zN4LZ~i*Y9N=p|NuIVfEpv>EOO-YwH$mia{n>my*+@5FYcglU8S7RVLd2GjxG*IXSB zvdTW|Tas^i3z^PG73l+`mq2mFVR|d*rTUhyhGb-eg^HN#aBmApNBV0f35SH##kz=i z&Z0u?K?CCypY7QNVyvlfCZXiBD3`#7b`rXxs!wVbubeUej%KF~yu*>ac;9&D9=cO8 z4I1e0>H&J8PgmCFH!`iI{xzxJW|XSqXbp8K0;B0`*5B_ficR0J$qb%vT3(x{5*`J0 zfx`S11;Hkw)q^_sA%?%gvN4w`-okKVOCAyl-1h~bm-r&kZKzOCm?P^6rIc*09tWM- zZ`FSTPlqX~qNsN!i8hFs9Y@7EVu+g`D>p{UWxF-e$ zf|$dr$hGc1z)0!kDWYkAsF;ex-@v4SqlRKyOBtGY&Wa9w`g}dm>&K<&>}n4uC%*EO z{0S8IGHMek)ZSsq4KQN~5(acP{|Xb%w!j9VQ?0WbgDND_b9n$~?D_djM;ISdrb1Jg zhu+={VVmyQ>Lu=`p!c#<{V~v05#bf3ONF(8uo!1M0lWE5*0T0(r_QebE>47U9N~QV zVE_LQ`|d&Hazyzul%H||2mHF2rQPeB%q#sJd-gj+=*XXQb&RN@E?{iUF5)Q^^d_8m zNry;WI&shoUQslCL6UL@$`=o{RWN9~JyEC_uJX>r ztJLR6iuCv{*dISy!F;smz|EF*!93fFPyzmE{3#?y-WntSZu5y=^A{UK^xek9u=`I) zqxH#e!2Se|Xl>Z(@|VCDMsv^da+*iBSl3)yeeB98nG;4_&>wrW@)Jk0U!DlP#c$xC zMnzhtr60VGsm?j@ers_e4lJ40VDL;wb|B412r6g&xmqX^G16Gv@?I zb)FhShiqJ!DR*cgRz0AnjUl}{a3VF=y3lF3IGfBSFXEO4&x*&ryV0~PRg(DAcoVrM z!>E#~l^Bk(MZ^&V01h%;jv%()uM$M`-{_&1O^+0*b~nM|a`nLjuoUA!9~zaiSN|tD z9swuBS#6!YP3d)u&68Bd0AKzmc?wsEp{mhIn|KC9Q81HZ(+pFUreZ0edtbfH$6P9J z%3hj^hBZY=E&s*B$08!fGK^gC(**QQvH1cBf*2~V@1_J;9rM2Q3Z&9)Rl8U+XP4f| z{S}L{$P%rj7XMakvnzFrA%1_o!3L66y237aHex959qd$p)T3!h<)u%ZqEgZmP=sH% zGlBjB0q6Hbj^J<^)qdEZc9hu-|F!r4H`Vv>k5nd+a?otHCHrX~C$`eo$; zmk*?Hf&`suR?q|U`Y!;7;gxv@%-4tqyhsf*DAJ-1oDuqFV&9`#oxizb+;5hCh3oK4 z4rq)rU9sdh0Lj@{!P60srI=g=5R+skk#(CbEELkx z9|-X2(v&t@g^M13(KUV`16`bu91!!%GQfFI2I*>BZB=+-j4NZ0#ACRTF0o_FCUK^{ zwPxU)Z-H}JW0LRgPc!KaaDh#y!KGT*Re`G><7aSQ1O$DOE8=c4n#0AVG&qBv=W0Qx z{;O6NnYcXs4eQgu;zGS;?UuV%!@}`W3K#w-zS=pQgBJUuKvE1A0B>a=G63{x$QRjZ zX)z3`9?+@7m1~)N#nv-DoU0r?fz}N^0X;shwr>9J0=>Orj@)`SD7oZFj8yuwE#f@x zLWyNNpDr$iJY(f#cg7$caaE-!5f`TvP+FYL(x7<^mf0g=t?DRFqDwtpN4MOx!FI37 z7rWd7J!s=07!N5d;_VWiOYC67c0<~>J{f5V;S7JU=!Y&dEbkn+rgmEu_Z34K&g6Pg zmjpEZsNWo=bo?!T*Lk*aXPf9*EXMBrvzF@jwjXUE0{!XJ$}fv(tuLprYPPy<#}oAB zcxT99tn&OSxjE&JwX5v+1aWacX)mH5rB!;rQ@TmC)r5A?$Y%S!`^U`r0m_tJA1PNrN`PZ4{|RAl9D7o8$u zUX1BfVS9KCuZO^Bs2?G6b&>*9Bl475Z<+aSQaQ-$*!f}#5g_%+x`L_ zywAlJ3t94wWFfrbPs^E-&8GFA6h(=VW9Eip!G_>9^u#;hb81$uU~U(NQ~C%p|_Sp!)UPzL4^N7`+lz<1X~_a?=tYBkAwrv#mul&5iW+ z(vFS(d(x++(rw(}RzM+rH4-!-y>WX10T$rM+jMvzUY%g77RXx$#ryBKrr*WXlZnpz z6e~ae8!YJH%DlkKX3miN={+dizqSjMkXL=()^x1I{m@W0PQAI`+_Ce(6(kW}Sx{$8 zkjZp`m$0Stl{AlYzl_(%DWUh*X#8Ae5ldKZFCe+i%%l=@TP-h2$G*um<*J~JpS~IF z^1O)Gc%Q@|-SI1Fvi+>*Jt7?3v#p?xmek6#<1?nF4IK;Oj|JtE4n;He*X!7N>LLUi;S zbkXmUkDyPnQtfN)wVI?OI9gbM@E1GYU1nR6Aqq2&BhB#JMOknrlB3*uZ!^qZa86(y zrnB3Q53cp~+l4)Dv8KJCuhsoC_C+&3oe^^S??=$}Twd2YI*!#;M3u@$u1d~Bc`=K- zH-Eunl>TglDK(sVdM@_+NlZfaaTH6q8&2OY0R_Io=(0*A87lUc)qHX=7|0Rr2{1+2 z3LQ10Lgz`K>oVJ!q^Md*Uk0g;Aki$YHPMS5QPKMg)c#29;GP?L4B-B(WBpVJl#1qp>H^_I|#-L9YY|zNlJPr(`v0F{G zHQMpoJcgzmKJ4Hrah0d3wr4kDL>b{#CWFKhCUV|3KwcQC2h!*&(Itw7s4=R>_zxO; z;n|?q89!Owd0~eRUtGAHLC@@^ZES2|$?>(wkMe-o5CzhZi&h#>6&o6_^$pug--OyS z_m1;L@rl(B#7)r+VvPe%0u#g7FPUP0ap3DB?3gmwCJ%0du}iCSOC;2V zXh-qL!OmZ=B3$*W2#0!ZlYV72Guz|&hpnD0G7HHH+tH%~L8e(YyYmmKE4 zz2bsi;wzIrqv~n*dMHb8!2_4zcZGy|XNrW)azhH1;|LIs=$7MDqa^4^Nyso>sS7hR z4g;djLvZlL6f@-v8aE6N))A?@XE+U!*NMRdbIZD_B0$gjTzRit+LlTU9f}qama+ux zJG#u1xH!I>>g$PfV(>)>0)(#rk`~+7e_3q7WaJG36yi4$8tE7YA&w;t5Ql&LjHy#) z_IjiK;4fJ6a0%Ulo_x7vWo&Dfv6)A0u~WF%d-t)7V<&Y$3xw*1>kcW?15s@mg`q9VyQOf=U$x>3@Mt6|B#(`NzmM+7 zd;yg7fTKdB2Bss@Efv>ZAH|Asbe+h+1o7HBC*X=l-*gJfVtw}CQtQe#Xbi{ zM8tSAwktqp;lKnQ)ARwfgd7Z-rqhm#=lIMk_eApAE^k-p0+S}Bg zQ$!_n6X+QM=TcuSp7G75001I?l8;TKYy)%H#%S8pITS3w<6)hOJ9rQKz^s3FkV6?2 z0n7zxy&a7BrI^9d{XxRs z$!IjF{HO&R;xcY>{Znvh^7T1{;H55}5<2FIC@e6C9FX$?+Zc0G%-7!2SY=)%;Ilfo zoOCqHN=~*n(pb6&eV|Z;gF-g^y8o5 zZnSUG6H;?f?N)9;>0mKZJzq9W_@%aECJPbY6C=aN)0RvWgtKk8UJK~{xRz`eIS!Rr zt=Y7lV|S(=68B3$>^Mu4EsEzNct9R3Ez5ytVfVd*BmgeguJOIcusp}6xiBsA( zq|82I95maRus$JmSLgkQv9pv4`j(VPwK97PI?S0B>ec@6Fa!Goi>T@(7UQd1Wme3; zyKEA;mjxI)4y%8k#x-avC#A3fGK?N0iMSq9b?G4{uC|L|61q=Di|V|KkfNdy?V(-J ziy@~qPFuzaO=ZWa432aU;~MIjoofkQ&v6(1l|M)yP4$R3FwWjG47JN(pCoztOMxh9 zvl`C{!?fGmvUcHj^>6EsS~AK3!y-~K9^GEGps#gE!TQ^~934{pgi036(U#XCJDg+4 zdib%jGs+4LgSOAOK6TB`{%4TDy-!7x8dnhy$U_rdVCg}49LrhKWJ>ae6h5+*s;yCI zXjfw(;?{Zv{ps^4_LMcd#3SPO_tbZ!)|K89zfIZDMCuflry2{x;e64NvJ@*hFAzU2 zUB6`OvkNfciwsh;2DI16{|$N?8T*65xxFg6-4{`AV}!W!7=m6+6`wXT$De$|SXBDc znsN`++xA1?srl5SMP`VktIb79^5*lFi_pbwkyj(Sz~LwXa6ja!xlPrbrJQ(s3ZBG{ zz~-yJ{+_|gvUeO$ZAAfnMQvD^rZwU8&+)V}b#YYrBC?mGpa4}=apTU0LGX+mlk@1k zX|r>6#(f!UaVJ<-svrOky7r+(6l{Aq=!81&x6{jH#N4q>?RYw(b8ClCF6i>eurjDc z)7_uP3f!}7h>h-Bi|4d)mfasCa}qrMK%1DG*AlCZbe!Z4vGEbD2TQ*W5V%TQrJrGD zqmU4EH0krRyL8}6G;B_M0XApDs@xp(IrJs9wb8M%O=hW?V;q$#bJT}*=mcQ-Q1&w3 zX#-dJfA*sk+F7Rr)?_^wD0xOv;~M_EzQqU<%(5(4l4Yn#c5~xy`6dI~-+!vZPN0)q z<-c2n2+*wDJxlW~qGgEZ={#Mm1p!`jyBj3BchqMhU?3&Wq4|;xu5dHKrndo^X^FxHtvLsJyFyZJdQtkXT)a#X0aMc=MwG~6 z*i*RE;7z1NyGCXtj^0bW%YX{loqn>Fg{!3?f-k@_{^;lN(8g`UqJCin4787&b9_?; zbj{x~e_ZOoHPFGK#as}UrW_2F*vYH8q^sd?cRpXIlP(5JvhTe3JPN^gZwNH&&Y~h8 zZ@#ffV|1?orf#cvdPmNU=azg6N2sxHQJ#uiI8y-@XW?@9D#4&{ZcmQLUZ`-cWEM>VAP;ylLH^^j`~Kr^&jI(MY}JWD^s6)uOFU%fp14&c$lyXX zIa@e2Y<2(5P8N-vN)=)Df9az2+~72CPbp!{iL=u;xW`SuW`^+%VFa=ALm&aCNBrk6yfH(eK@-&|}u3 z59~Kk1o;Z5=AN1|y+?DGsDn%~7c&#(yr90e>%Q1)7YhzDxD8rh!zj1IIpOD<)tuPC zW>yjLxL+H;btN&%WGrbCP7vHlO}16T(OlB5BTyne|A8DN-)hG7 z2`BiD$UQhpPWT3X4SGsZ>7bgin2(Gj2?8yWhNix3e@^KgYPGRecgi1=^14!V&0uUT z_DH4R>f2`bT0sP`8)SFBU7VrJK}PtrMt(j!aA%3Q$9lWR6K3;#!T=4rc)y=@q$3Tw zxl*dpJ3d-*1$%K{kPgu?4%y@2>@Mj3?-asAECMNWp2IQM9Dz)EAb=!H@Y8?rUQ%Wy zt@fCFyMj?0`#N@?%Qy?Zf$1R(rKZ`QZ*n^htGN_QB$9aT$xQY^2yARgIK;0tD{wRTgBnSGb zuGm%cojw|tlcjlHI`jUh{s1=?W>ZV(JS{Sfg%ZQgdw-UkCsI8Po7X5@z9`{m2Wr>4 z*hO&PyM3i>@AWuwlAO-Pp5k_U`52%NFxDnOAAlb>J6|VG@){QdR`l#Ae)mv;EQ(tR zQPIp!l^_`H)obM3s%k9rYp~z!aV_N6ky9M7w|#i~JDQi3*H8j_1fNWtYVyjB&_XK! z)?=`Q{|D$ZUsArQSxb(PPxzBw)>F}WW8BEpBbAszFOCT!NBoRoBKbB4X5w-5(co|V zVjIWAXAD5Ufql;Hs>L~z!Z{l>dcLG$UHuwlNR>}0NTd_$%N5URlXZgqWP0;*UGVLhnSBjfx-gd)w=&caoZv7Gj=*Hhve+KS|E%BR~F zyPMNeKm33=iX&^c=u-@vYum|*V|ga8xxJsi$u3V|pKDW|I6!~wmB4fj-f85_{OTlp z3A%bR{(wPYjFa%j4e;AotumjTg|sM%{K7$DV|;|wSN8Rd7%&7^BK+XVG+^nXnf8_o z>F)oflrUn)lwr03p_UBi1G>nl9m<0OB|H!tG zk|@OAM!7LZUBWPZ=k@P)^^9JS_F9(T!5pEu3QT5&3?}L~J1~Qo(OL;~(|}o-bD>39 zUD6ZJn)mOaaRRLQH}YgfZjZURmRPuIUZ8(!JaX_vw(dMj^GSBRlzXc6)^&#_?`sM! z99a>|34Ep*6pd!`b%Ap}+!;t7ikNy}RIQ_+t$QJ4luGAQ%Sm3GPeewiMWXHE75u^u zE*&UzG@lT&-%z{6LXwnvJj3|39sn_jM51)oHnQ6&jMib$?87~{ZKJ`a0 zhXN`RRmo4j1?d%7=fY^B=l1@|;-28u1yU?H1Ez~lp!Y2%J;Ylc2u~7>tWgyaWhJw9 zyaf?1)6q`Wb%1>xWun%llFl0(g3PxgQbFS$r8OFb>HxsAESIxi1fM|2=$Ev;4W^y1W(z|K**hIRT641$V^JruJKiRSjo@f`OS$U0>{iJ#Zh!^qGi zP+Qz+#1ALE=762AgD%Sw^U4KX&lTfUB^e>`{d->UL>>9xkBr8>R^GM46Et@T>Bo0> zqlT@_wj%K{5w{+-8Ifi+p*mnpAY=N@q^(6FkG>3w&9Ppv1y3Fh9gj4enwL?DiU@RD z&2zhRRzy?*S%60=1TWMHd#c>+#6(Ig3T&Lry@zak=ypv!IVAI~dBib66fWfhojKWR z%NaKPkHAtZqeeEAV!qx`EnlxSG78h*6w`9hAA7>9^I$kfQtFdos&81iC%Jz|o;=PV z_3Y>wIEu6DPF8ErCl!PpCVyQ^v8yFrkO5^f|8P>geeJ5-5?oH7ss%^-KTiC=9(&25 z9Awe7fv&I4pj{njahvcD#xCB#RQNyE&Vf6x=WD|!R%11G(%4R8Cyi~}wr$&1W2-@v zG`5q*Zfw8rM|l2g{XW69X3or#cHxhZ}IN)PJoX~XfUxQ>OTU5cuKcjhkW7kW>f-?oA%9$qbi zdzp22s*N>zPt!-sjKwKI{mx}d4 zFXI)$Qen0mNjUnkU>`6F+%YWRIKwIxcNzw@;Q5N8>h@$Bf4=H|hQ-!R0Q{gwZxiOX zaiyR$O*m-=Qz1FMpc{I$1y=uFsFTJqAKiPNT=E144|bp-dppxX39qLf{s2zIIzBdr zpud^Iv$>mGF6PC1kXb9n4ynRlwo~m2gZ_kxh_vK%30IYheWCAGzx@aGS^XOhi?IWm zT9O!28>u-(Uc^Qx1Aplx!=m|3CAe}IfXiwgW+`ARZPD17)|C4LC1N+&v``d4x0dgv z@P)_&^l(!{oRe*5A}#pJc>%j<&4*}r`=GF-5R>;&nJWo zQLjKctI+zWcZCH~9c*Q~#Nb{9d8~m$HESfa{trel0?=hu;T`cV#he=AHeeohbX=)r zN)dli4pi4MtP)}1Id=^%w5_10H>}>CjGM&TV`Tq$*&q@P#8Pk z(wm>C#_GQK6&a0Sg8n}~#vDytBLD|SxWD=`B2kFaLmre8PkwBQyrd-uHZu3x&iZsF ze#nhg!`8p&RZas4(kbmRvE1fcZ#n&aNHv(_=kuI|g~agi%hlgUxPAv2oJbOJn}7e3 zwR4kks`c#Cq+J3bJTEy#V)sC=QO|qFBIPoM*U7SJ2gfs#jtM@84>a@P&vRkSla35% z8_l5l61O?~t=Fm$HTa`n@I?Qac`(95pURjv2>(&3H07{{iikl)o%_y&J$GYrHZs?l!*xB_rs z%a|-O=(RJv3yuhca2C&5^YedH2RZy{$oU77e}D{5hxi2a;~jdgtr_iBN#VTQ@75t-D+cl4i^e;OXiY)m@ZKOlvbKeFWk&(keh?|F?LJ}eHdRGB$RNc z#VoiGH3=0#4=L(KXXg2~LvVm$`-zX4yv39+jq3WnP&`Y2`atRzG5*YnN9Z?*L-TtZ zD&IvszXagoepja{egqhQnJHl-6z$xnbXP@9I1OgmFz{HjPXk>CV(#I9@WM4_&Lr+h z^jJubgkiwL6~Lu)N=i7-t->Ve1l^H!2qwNP7MmeW(X6`y1S*a*v1fSkC#-H+z>I|N z;dF?@$$qKptWGZ;ROtu(B~fm4Z5Cp&I>JPdPWGf(gR%|#6{_p^6hDtH z*W7{1sJ+C8mWZBsZyaD=^!1*G+N>W-(NpLH<}=1IT=Y zth77@8=~D1jhT&+w>qgkTSN2%1FwGJ%s;srb@p(W(!#%%zbzY*|GF+80x*?A9Kq9Q z{iuP2s5YQr%j`A#i4nFb+59%1R)q?5)2N8XUFxYiyM-}%M3-!GGd1V(t*ilvarqyt zo|BSr@cFBsQZg9&c;kRD`D%)aOZ9jN%p`+d?S=m)o3B&F;z`u!+;ggU zha~8WYZ5DuJ}kVKxY;tHsxTq=Tp59pJ@(p@%%wjq6z>p8npV@wyQ#e#b!QZAOe%{5 zAm2@I<*T`*tiMGu+d@BJmh{Kzijrc%WP^+d^6Co#{b63XVD=ks?Nii}2}i&cTmfoc zs-{I-bZ&E;vKI_n4_YwD(09w55^N#ZUs91gBmzMH8_`o_^J-ya{-+1BlSe;VK|eZJ z^)bgN<<@32Z2tU5nPEGdw9J7#cv7vg+BZjoxBYdz5Ecf zx=1{GY_fT4^3|JJxr*XpW+EFEp-FI^N37NU30$;Y_9!xGSvAnD|J9#j$9mqU38~z^ z-Tn4)Ew)LWVY2ApqdjF|19b6z+}yl&1-*RfvB5;9`73|uWa8K_iV?4Hk?+AQ3D;1( zU0!^5ZJ+bN~G5fono01B2<{dFv>&)^8qF7IcoOvzYESh2X^8k}+MNN9cn_ z{k~|4w{*~vKxz79b(%V-qM$WO!HeEXpvcnZDncFBtxnNw#(3R3t9DPi@zVgj{^Xik z6hVu1g09*fBAP_B9?Hgzi%%@JO7^u%_0iNiZ2cBBA(iDiUK z{E5X1x~ytbB{unIL+4=yR(2~C_gP^^`g8)HCh4+1!5jS0yZjQWGHVU}QoVmbnt+DT zA3b0c={^Ltb(0%a;K1$+Bu_x#O*$o-EH$PA?qKOFBIu>wp*h1Dimyy022 z+<#hqq^OEk>#6&H5GRatO6)o|g|VA(N1hP6+}53vY9qXa+4TmB+V~Z;Q6ems)!Arp z4}Cz4Cl4ZajsRnSS;+-lZ1e>RDeJ~-;+smT6!)~Cn)PInuL8NdIzWFrU3pGL%Xj>) zbH~*`sK|ToVflC5Eqo5?!>0UC6?Zl_VDN-~oHpk|A3omBXHujeSbQYG#7>}rPx}}u;1JPH{s)Q zTl|Ice{y6dDv>NBT}&%Ht|US*s3&pUaYCS%4>td^p2u9=J8wLAQnOCZa@W*kml~Ci z3W$q&e}L)vDZlpJJ7=$R)P}mW3EL_&ZUNw~at&`pi9kIb*wSRahs&X3h-+M->q3X7 zVMpHY1l{GP?YBfaP6-Lj4JK>iIQBdVH0##I!WS+XZ8sRTpofitzybW< z^@^f(QLJN7a@E$9dukrvYv`ufviAjml z3G^o>Z8H;E&krtVVzC|set&CO18W35H4uy4kuai+xA7NgCvk36b~hoY5LxvE87E`6 zK!f11d%-v3?2hI}`8fnl79}^u5-=N$tC6B}nPYXy4=t&ur%E2pRdotM%&>(?vr23= z2mJ;T_$vpsY`6a=xc`0oR3164t&yCeF=F$AWaILIK_Bw<9PG$0IxOkRs{=PJ#uWEVdamN3so`TJ_x5F==d|mR)1Cv@4(pLuLTZj=%_^Hw&PLcO&{o5pKuy@PYS>pCE@=2 zcZ<=7Z=(o}1w|S^oeeolzubIC*`zUsP7@SjPZ}+~2^(gHumGXnqX;beBv2wO=~crr z%gM^3Cm3YN{e@Tb-={s8LD%|(|N0k!q#TS*;>(bS?Ey zp-na%Dc7g#cn&N(lp5o?IXZaSkh{VP;72JzV^LHDvQ!*Vm-uQv%cue4{VjuFMX%m_ zUX7$N=<>(_y1u$TucjNHM&97+Ymug1-xiS+8iHURMXOGIL21-Otjxlxk!b?x$+~#% zjC`Qk{r#bbN9+d({=5jRe4XC)chrv6;u1}h+U|2vp<3h!Xnd9nS5g^0 zFd&Dyv4=4|lrjZoCWSQHa$GHQeXU;YOJGvHo}_5jR7r&wCHP9Fw?J1LCw1>JSpIYt zQj(v+Z4uoZEV%6KN_l57dg}0Ieuqg9QG4R;?sgAcc4rH;J2|5<2U;T%z$$P>PEPes z+jIH?vaRUYNvKZHB8=1(e8|*5Z&91_7+e>s?}ErkZNL->R%k_KHk@I4oU2FFau>dAT^%0wh)k`oD#A{CVz9#X*Viyq(S_p4G=PM9fdJQqxNKjlC9LJ#_H zu^q?N<3ytD{j0ctxV^2#3_&{AmiY91DpfYpw@cr-Ki^%v!^Kmm&!Y)|e)2{zR{+b( zoN|&U9^%+Iq~`lOfntig>yjJ+MX*CB0>-Nu=-^8C2v3_4%)jfNWlw{VLnQ88{fE>< zDgEC?PE<+6bDDn4At6*i!G_!@o0k|*!_-%i-r+6 zdosbs;y~{rS|FRcTVHsY`KCzG-Fm+oC?^2J`y{|sFwx%;{l!=Q>Z}<9wUl<8pj6{P z)iPzr2MFm~s)dl?)}Mga8k!CG%pT}JKT1Ltr4Nt!3Pd%wQC@VsZ2d`xS$vk!#E(HH%q zCs=$Oy0SU+Dx=@w{X3$dC$7U%uv^y@4pXHUGlXT5i8d*eFoXE5qPvgp zJ;6%aJ^KUF5ij@Vh90Q%ei7B_(>ei_|H{Q0qXV*?PaCsYCg;eAy?NQTo;eC^EXN$b z*?=C)OhBtwwZrd*3@@(aTW8G>#<{KoUPc-l%XE)Sz)!S?7II>D zhE1x-<*w&U54w=7^pzt8tTz3QO~)kzPx;+iTH0M60z;1)im;K#{On$jcTF&??=jn+ zS1v;$Fd|0@faA3z>xOiDiazLxwa};&{+TPW-Lu$$@IZZ{6k7-SYcYI>k=E|1M=`i} zO2^~S>b-4hdYB2>rrSqwX{;!$k?C*>f^}Soc&+lgku1Zt zHB;0+h&-%s{iq}jdOeAE9rTc5_#y7u#ECE^x-crg%uS|6&Y;4qK@_ZF?ln4LV82FJ z*NN+|lYgFyKIGiJ7t@w~fVPkni!bg}v|%6_^$)>jEI4s=NJ^*qv8tb0CfA#n|LB?_194P&~L08;1*Z+i+t66YxMN*w&|8Qr;;zDH5hD(S=N zuVyyTU0}l>30cqxg^77G{N7W`;g_9qi6uA*0K9&=$?mvyR3E8ngXv7}O2mWb{rl^c zJZRwbU7SvJBT*{z4ovtdOGq6v4~bFI^KV(wfMHLDEa)Yo;h#@G|K3}c{wPKa&AQGKI#9Z)fw+aGb&;}{j(vonVc0Ot+TFnvjxe=9N1wblxj-*v9D3RJ4Ky5CVF(Z z)Hv^wEGw&Ke2n~)2K2I{CL9T92AVs~g_>Wt2Fer)a14L^u{O#q{{|W{GhufGpo#z8Y)XdIXz}H5CeD0wQkzZ%2@lSfOw_?v^fE7lAL}BN zRD5+h*ME=d6@l--K8=3Ug05{Drlw3q*MQM8%vaV4z5Zp%rOe8_>Ya4Z!3do!RA$!# zFa8E|SAp{KY_Z|ajOwekdO@hO3R3pq%X0RVHK*!S?cTqJ!z&Sq0J{13h4VQv*9nV$q?#_O7 z3gbSWN)F9;wgl{!OhZIhXK|ow(wPi-4HLXa>s-)$?#}?^_I3pA1hI{rGSmBsJLnhs z2pN-*mfrm^ksgk+P#uDu#0RtY{#k5=D`a}yz~}MWYE@hzzQj!F<#vc=2BZ*vAWuoy z?4oudSs(hU(&}^mH=-KE{ICc;&NxiO1yQksWTAP)GGv zmw!Uv|U*?_Q4+5)xnuQ(yr?JJe9X$45eEV{U}u|HFP zQV^G7Mz9hl!4ro7C9dLRrfR#4 zlYh37Vt>^c6@yDKPboE{3%L`SnmS&vI}P_F`6ez}2c9W^CLo|I3V6!lQKqmY*0j~j z@Xwxweab@`s$6B}_VxSP2yd%{9_Na1I&rZSf|7PLqxy^uYxNxNo0xg~ggeb1g^ zx+`N!$rmh&MnkH1V4YDCo0}&}8<~=^Z%mJHd4ez5;iI*PaEjs@&V* znMV_F>3_?>tcTyFx}M=`PKriW6+j2~u+$DzQu$kLi6!M z;Qkdh9Dlf5R?hskU42a<`dJO=9@*-$`*Ft`d?V81T4^3hCE+O&HZeR)uQbzcMFib6 zDy2687&GW%!HDgwI@!r^$$z9)ex`(T3Xg=X`4S7E z_Xv_PUDG``iYUokn%K!-x803T!%@ zAKK2aUqCO=IJ;9c(^fVyBrf6)p+)XdRZ^{E}QBVa(2}3?cNDHf|q$F7$&5!&y z2BGut-%a)QQCKhf{(R3RYasC>X*c$j@iC`)uO3eq#UW(dO06Z<9)5x>;N|GX;V-Q0K!jub{A z#H5GDXF;-%%&#iJ5a?Z2*8v*z;ZWE@OR2J8x3nHq|J{i9VIfias}e_ca+Ac|gjKhk zxoO==IPy`Cy`Ranr~^tBRJ2>rSKU7Bxt(7>pV0xW&q4FZ%;LX_s_i;)o`<~IPdjAX zPT(bSf^zZ+aU=f&So=$ZCeJa6tGd*VCrPf3Oy}Nnm)%PS^$_2~BadqrbPj6(M=*c1 zMOXKySPd>PUlGeR{t)i4fkvf56pvJCe2gNYzmVX$Ph$mF;>ZU&_~Lu^D$31VK2q1- z{T87Q=HMz8xy|gL`)}|sxgtEX!$uZ{&6w5J?wTU1-pFFj00#kh-)JOb#ZFC+&fN(( zAT1=N`?_?FJ{^K7TlNCF4kSST<+hGc(jgSK-ORdVAob%~AM9G;QebDF=W>CUkc}FV z->Wlqjmf3`e7oT~YWu(Y#;>Rr+2ao3DB00JbQ>~_Hzml00yw*){rdB_x&SQLIeqWkId10x@F2b4NZh@R9I z^-5&oGS}3%adGG>6aUQRkCvUz0D&Z9nAzJRNM!YDYttpeB_#7J04?Kwld z(r7Le_lCEoa!_SiM$}0iG3XxUOa2G&zQH>)xN#Jr1Z8qk_%FX}%f{>Df1`gzsz5muu?h6l zfapVka9h*&=$iez+jub^oq=cLQKM+h9D*QqD(s8hAJ)cP{$);sm4HNx@n2Eh|8A<0 z8VzoEr^VMb%U-bPc~KPsWo%Rc2?`joe^j?9j7X7B$C2EiKUzTkz|E4eZ#MM+7?y14VZ)Q5wJ z^fl;`n@H?q*|h5A0mNE0^KF90r$QPSW=Cz^X~na&A=w{!!_;53ck)AHNjy5WP|SiL z#(?(j4=K{1n?GctTLbkAVV`)Y?PJRSRAs}kGVhr_KyT)m=92v$A5eX^z`UaWxZO3? z*xT#W$~w4Mvh5m=uV?NurGQ|~cZf1{S6!L-!9X1O-%a(mH=pvL-Gs#p{jCv#Ynsvb zx!2#kcZ+Plss#6$$*?KqJ|QX!sm2k-k_02N?i~R4sBU_s!$>++{k)m;cQO$i>PuLo zo#o&!>>+de8=(7T{&bn>xMZIi_^#!&c9wkti`R7f!%V?A>@-$u8A}4&w|(BPV~>K7 z)}gA{eu7QB_rDu4rt6mwjCv}gR`sWFH@`xR!FA_D9_6|Xq(|` z*Mj0cCrcKf;eL9IboWt)9-o=+2`-a?KPNkeJYC6}lktW34>#yG(vf0Aq$Z5XSxyZ3 z3p8IyLtJrgCvFfK7|PgbITOESBXCLn@%+wMF+-{Ev`Spszyq{;W}F{B|K$@4pP==7 z;h|^_ya-~HVuOX^F%)a9oBU_CMfv&vM3>`-z1XkP-j>g#gw9hV(@ru zhRV7m4QUq!+lM#$30$<+WM_$_FaSp}JlN|}<8%%#g9G92{ND4#p)sg(S2a z=pJm*qEIn>?ItcI&raOw_h4!P68CNAIe56dYw~K1&$(e2(!?S!*{oCfMDIj+XMY_2 zyQ#MNIGZPA*rhT6{OKV5%!{EDu-&c6L&UOY@IlPGxIuhD&LmjEy@ z;L*7da5br#PxYVnuTS@fkm3mYu-AHJbVE~BfgbgV^jcf_u8>XGU>bM;_lj#`cK~;9 z&MadrHO=B_XoBD^-UTLsT`VR{VBogKkFmQ7U{jUIGJyXfS;ATL?eC^Vx;fA6{nlaw z#qF?ox;G5E1U8fL*_MPr)NJM;H3RC9AzYu=6xw?(WO?sZTSBR>$_L$T#ukAv{oZ(& zzn0SS7XH7xW#XJFuPHXEBN;Db+@^D)PKQgOYfGgg^g-k?2D+O-EvFNxFom&OT`Na2 zTM`As{CD3tvS?&cH=3azkGfT0IW3SfNZh&)_cH6j5}Yvr9Tqno$|UCX`s0Ud(3O~y z@7!)B zYKC1#M)kigV2%FF6y$}u=LGnb%kvSi-bkGg!q?R{x&PgWGpcCqCRVPE_xvEnzcMG% z9iHaVO#kAhi$3X#dDgjKv0Ioxl}VKnMl37kAHcZ;go?HrAOq;te!ONf#QmQ2^LuOH zLUx@9W;owmC*}g(VmPw4W^JF7i7%Y=xLTBy&sDv<3lUaoG+Sc-8!{DItki4wCj7E2 zDKlLFQlqHIwkiORDK4Ze6vBkiQsXq04%6VzAg$%dom_q}4jgpr`iNra(FaH|J*6$Ra@4X#1Ih@3dQcJjavLDtcKRba`ah zk*t`E_iq?SSU1t#^F0}&jd!;|(-j$3=^NbqQ;~Q@pp->ny-$c1s(Yg|{`0>zM8gg3` z)?p$_yn|xK^jy8kYNgk}$q%aKIlw|8y?c1R91-y9-qg?|V$*sLGIN|HQ=SJ4q6zB5+q$5f}IK{2!0M1;p@w zH`T{~Qs5Z{Ti)T6bu%Bl1ntjO1l;bBvtQza%M7-El!Z=Mi-4*Bs@&Mk+R})Pbpj6S zY=<>lW@oapCi_NK@v8lNvoj@VUr5$??bwH#L3f>tJk>qm&>G6eeK9tk;D^gJXqv(S zo1Xn%?3efJ7ppHRG4#XtPa4&B@Ic$79bwaP;1=j@>y1!O5kw>T1+;kcdCp6tTN;C4qk6YK-%alMv z&KXVW-044?>L{?9(&;N!{kwXrPbJ-IUter4k8tt1aU-1gDbI(jCKR^ke)u<4tL@zT z3BL57@4)*^Q}yb;mHdE)q>?@cWq{JuP{33>9&_Di6at%t3Fu(R^QSQj$pkJAbmul> z?UGzBFuY%D4%#{!y6WN@@`D^d$OR#dV|f_W>iq6)vVH-5c;`u#IE*c8UuZhv?USpE zq1)!OdXov-NSiyKwm`2MXk&{o9WGNvVCR#iD_}HR=RMmd+%`)w{;P zkl{zISnFzi(29Vt{qLq4hBaML7=8*jkvR1G+Y*lq@&tDu$D`M<03sy?{RCqttGJqU zx)$fXg1kuPC)ydHPL_h6yQXOETA{1!><%~2rMkL_7H1DbAW%h#0H14mRkMkmskU`kp2&MtGwk+AfBx?IYbxlt*l5j zp2R>rO_0$SgWO3=c=(Uvqlqc#it^(1q@c+M?gz_VqLeTW?o$X=>$A_dF|46zT&q>W zRpP>HP8Am}nH^J+4m+Y*Lzn+OZni1nRI`KVCM;7Q{s6#L}35yLvVpyjd_;mivDgZ`8o=hC@ zUae$`99V9)7{B;;p~smB*(Lj$*FXvkfF58=zM!I04!2+(-j1mgJPiUa=`KqT^Y1+_ zd12qxx}M0IJ8C{xXHjMG=gyo6tcI5UyQ${KN_o#u=E&AcR!HApqn*T>!rr5E$&ZN7 zQ<793!qPGAb(9Wb&WdR=?D~3Pjt&H7Mj@SCR}SiKqG>}MXSD38A5npn#9d+b>f;kTcJ*nwa?5D7$^lhXxGO+f!c-O(r z|FI1YGRFHLfu(utq5Pvp`xtqG$K}`Ioi3Teg57^N)v7;j783LdNu{4n*Y`E?NMl)V z_SZgm1xZ~Dn(N0fA>uY>Dw!_Z_RbvAGa-lVfI(MbJEj_6zmE0OtZ%l+8SO=N8Szoy zW$m5t{i!QJukecUmZl5n#Qt)j%G}O_sWwuTP0{zSjZf7%w6k@L7d`*zkN+!GG)20l zE|(;Rd~pLnG1@3@OmoNjD&gU7E}~;Zkvp~py(=$86I5~EiCO{r|2P*>cdM#etGI7G zPf|HJ?iuZQ)XgIe7tAN*(~c!)eT2`9RuB3MhI0d~PeP8C@qahf0Sa8!yv|xrH|QTF zo4nT+zpDN@HTB4HjL@fbOsJ=?2V!8J6Amr;wF#nqRx4@&z;yhtA|=vf$j+5t%~mcOcZhbP<)V9+>h&G`-v1m242oU6}ewgNaK3cAvZnO)h^X}p+@0$GXLQ4>tDW+ir zy=oxgMTbW*nuIhkC`?+TU~WSpJja8fOnv@kpMJ_@c0G%ID1w9iXmyIv^kMVcpyhv; zF^?(`dCkMyNTTD}*WAJUMFu+&&{=EcFBHp)S+8j=k$ME>@YUXPd`aW^JXx&zV0 z;hPhyiX`RINd?LW-#3Z7_3)j zY+R1RVD}=@)c+h7M7m-uhT%kpM9nFDDEgHJ3n^*lZRY|B_Md&@XmkQea9=UAml&lG zD)xem5O=?#IM^-T4h>OSb(+a*k#BPM$xFCZl*wz%OD_cDz|Z^BO_bH_ax}xr1@Yehj;I^k?NW(W{=PcORPaK zQ4;m}SKmWK1`mlFccuSs#Ow+-f6;i1C1by18}iO}+5AaiP&}>5xozQrTs=YBCBGlOTZ@ZnvpcE`c_g+DOZlM&-IXEC7 zljZtw(iz?oEa6mi7aak;Ukp>o&`BVLeVqVZ{*0W*2T#l$=pV;}25|;#V!`f^51f1q zqtNq}U&dsr9(f{~>Wpl4v|F1cJc3@~6)hM^KPw~<5g6*JChHhT%flzVIG3o=~J|4Yzb?+K9z#$4%JjcgU zKnKfY+tj91JF>iOm9xp$ApU|}W>*pMdGVP96jpp;h|s&({=Cmzgt|g9H(|9s=^c*Bi1>;(u6X|oaJ|s zOH$cW_vwzgtI!k_);=d>&A=>%X?S)aUo3!YT_S=n!j*71XWG)`>D=p^!N%OJj4Hw0 zreZc5d7xMSM7u?YFV8WTzZd`WsB@v31^X4v_pMedgkzuxEqRX5`Z# z3AR8{6Yz^bR`lQHywJ(eKU%X1<`*>k*kOqkn$i;Ezf=V{pm)Ma`5sGw@NLa!bf!+P zFZ`%7#ZaL^ZBO_YwfsbgZtZkusbRMDp(_T;Nbm$ywO$_je>T;LQmZrVr@j^28I}St zM4QuaUJ%IMRjl8QN&=`_UrB~7YDzG+f_BZ!IW3n{gbbg6g(QgD^T^iNFG{*}3Avsu z1@5AG_*=e6Oxh5mD|V@%Pj!gVX`s>}eqHSXfn*T{uL)Q5<^q#SBKNyMr7FokJ2T!+ zyNsDQZW>yyIu0|pf57aqkKOy}g4SinSEy!mJS)M{yPDf_ygTUVg4G>V(4#(KyokR~ ziTT`k!N0v)6u#DHM)PT*jTXqP5X~11YGV&yP$z4IUa9>2=KNNSOYu_u->vE}LaK?x zitf=-zQ+wbMiGY+j54dn1!GhHKbR^v%tvuqC6~y#(ZdcHKP|^vfHz=UwK3Se^Ka(F zpx0OA1q~ZZu##sC1cHydf8o9x5&ocqW5HzSM+8m7h*7Y10%723Uohff)S@Zzbv?>uF)%w$jAtUVtX1WG9-HAygdH<=k95#m z)YgdlIv76o-nPu8Q26*aDk3VdCz!Zbq#pZb)S=WC>ic?ge0}Y)oN%3`B zx^#UAga4S%b%v)+o%q(+a$8=Ag}-t#t`YSy}!J=y*U?>z~ z9_^^KlK-9F{s${*LW~F8y>{c65XC(1^<_Nhy?>&Y^qteWO!`}Io>UeM+UGl&nOrTb z(!h;#nnv0g^3#O&;LACaBPTbh>FBO%H-Z5z`lDf^h_t~j6cRK>Hx_|nLfI1v^8q{= zp?0I6X8*&T>sL!qI~9eT^BX4jiWB4Z%a9ItgChOaO_l?)hB)E6Ya2hk=f(^Lz zV0?A?u6YEmFz-9hAW7q?6vJ_QXz)aPWcz$FWoHHfR3M;>7a8SVa5g<&KdZq@>UHc5 zX;PsrY(i4uq<)v_fA~r4QpGLWXY%@rRckTpug( ziRmrsqQLsMQN{|CL&xe|u4kvY3S8z|Jr_(zMzMJ$KGMu2!=s;)55aSs znpy7+9zrWtD}S4y>e$E<4{wnuAzHiBaTRKkO;Q^A3`c`d;3jqo zd}$xyZPA`fKs_REorOq@We9_m_|?lQOeiLAN;u%tsYCkr!&sG}6AUFN?dRXl&odKDjSZCoSy_ucng`Jh}A=-;^zKgjp8{hMPPm3eY!>irtuTKWUYUjZnC~#FH47jWykev9Xq7=9@smb!%u9cBLk>CoW_@59 zzV^+SgPZNeeip+>lGVvXfkBe{_hW0#UicsOBroK z39FVoa9?+-Um0E0y{n7Vd4dJHqC5tAV~ud>Luc?IS=E3J*jzzOrW4wfO1;<2Cl+g$ z)WzEHXa9krGOKeu`LZ|9lLsitJTqcAGX@!WxJi{)w{5UbkWmOwV`Q<7%!*TIfSz}X zfnC5RvamBEX^*fL>>}?#3YAmXTS`TDGxn`yu z@wDNi?yvT8~-e; z7iED8L9r#@3oTwd9tkj|cAUv(+xnno4o~8xD{Vvm?*ySS`Y*vTL_v_5JIjmU3bNhvl~?d~g1p5fPc^d(+}EUctEM zVdd0BYt4Nu%YD#0XvA2m(f=?F54>YlII;^T+ND!IAxvMYos)ETWx{CjK>cC~5t6j1 zRWT)RmoiU?Lj^=@(FzxAjDRO_9WI|170#WjhA>>11%(|5IP57)f!=C5Cho7Q{FfaJ zHZ6ESaK{*OBu+sx3y4_Yv%~}lYIx=sb|Em}y&qCSqr8;l=0BwYk7I|2X^G;v)dYJ} zsjrof*-qop5@huv7RX|v(RZL*45xXlTUazb7>H7sX6&!f6eo|Z9dT7{%rA%WE0pIT z_=WtVEXsyd!4O`vVmQanJOC_Z#W<=s{ddh!ra9ySkG+y{jm@K*uCW~Kf-sSCL6>8s z#fj?v94#8-Zm6V+p-%F4`&~pKu0Z5hc|pjg>W1j%%-Zzj?w|8-u}NDJ#PfSGp#CaX z2l=A9QDJvzzP)sN&M-5xa`HR;+}1oX)<#eG(#Wq_*iIryW7C~U6^QpD|0LsRqo-X~ssIcTJzwKaW?a2>J~gn#*gIkhicv0FWS7zt zF`8|QLBDgg6aM4G!GG`1w|wilTu6-mv#-0ChjP+(Tu-K%e}{`$-fzf@dcFWv+QPv$Hgo=y6%97p>$IyI>TL)`X7Y9!#u9mXuDR z?-NC3{pC*OdpP>vO?B$?hed4^JeAsqpeYFlcpQC<&h#FYMf>Bs>Si6kI|-WTjxOG4 zk<>ZA4ui>i3vk1-UW^RG;KokiObaIb<6qL52;~lzLTylQ24~3;=)sqm3|nBNxu04d zI*eU-Bb^aF&_WP1O0^ql>g%h0TzNyYdGxr309Zh$zjNEqxLicJv-zA5p!gbJ(f)|y z4mvcX_e2|^9s_FF{4}=A5}^5l@p^K8C0jv_n>Ojm-D94pqqZ>Nuxi0Rn8yEI5@A89k&fQP%^bK{l zHlUCA&K_|}_3-Alj}9KS;D>uq@(4PCf!L9l-v>Dxxoc;rFO#_Qa*4nM`iM^UHz9X` zBF^av%A`7TgPC#o%JS0iZne_%WNTRcMw_Pr#cUj8a4ak>$$W^IsB3)^?#%AnIO{>s z^V?id-7X>FyfnOM_MIUtjQO~CO-CpVp*k{^EI|B9>x82Q_GKbT5XS&Lk(!1y3fE=Q zSVH&Do6$b%4(Qrj+IS-&oVL&u&R>9MO)PH5kfPs0>KvG}#K}4%q$m5dhtX5g-zPKZ zz!H8~3)Id3Y*n|_p&vp)TNWnMT((iI-!GLqqS*(TwNc^N^VIdE^hLh@ zz9p2=tk(pb#=M1sas!eh@fCO-{<+U>^5GAKJX3P3CTaS8@OFbf)z~TO->sh+O@?Zk z2vaB257h7?;!YmUz_@<>p3?6<)kC3D#@YP)4E+DrDZ>_ zC3uQ)Myg(gqonAz(Gva7raG1&7dm3GZ@(W}s7=chpU=hmFZ>2~PsYIM1&aqNT(1QL z$M&k*yZ|FOqzwzBTMzK(CfvvSM8)iaMz>mkvPkhyT*K?avfcZ~gXbUC1!Gm5JT^{*mFHgo;Wr0O19 z-z~D}cq!7We6e(uk|;F|W4%O69&Cpi4qxx5iom~K1YZv48qp=AC;Xc!4V(~fhoj5x^A6B| z#{rh_gnvnQGwT_^WH}b<;k((;iF0oV*Yc&`Pwc#9tbq=eN{*a(Ov8l3jYAK4uD6Te zEc&g{Jul|&%=V@HnJ&u`pHMjNtJU{xsmg-_8stF0(}Nar1@9#C%{oK6-sl>kNx)Rv z$p|`57b{c#L=N>lV$S7dIz}DKPbcjSbV}Y;60~>$)eGHA57p~ z>}Qx7Zq#|wqch-Y3>+8K#vedn?%GD#>?AMF?(@4Jg-q)yjW)q-%y!BA5v;CnALttT z5RuRY&Gh!stC8n_<5yp-%u*kDhIPcen%Xx85l;V9GgJ@_>h$lMmmGE`YSNyr1KXS< zEiyA4+SIaZsgPwK+~5g59*#NEH5-bcY%$y!=dB-XK;DU5p*lWRr7fC6z|^i z!AEo5*eIxZA|_3YT|hY}=Pb50gTQuip_2;))evhYDx$1CC`Q!Yq^~?8r86rgD@z*| zZ&|w)C6|H@wiiYX#0Yer2+MH$xE*?}*4H%@eXM81dP?lL3xgH>GEn)f=O?<#Z>g+rma=U9=!tg7A->99`RseN>%GY^ZeU) zN|5r7%r;5`vlRhokLM=a{u0nZD*D?SzR}KxvG%};?jXX2EA^+JSBoy_;M_w}W7=na zlej`F zj0X+jk-W#u><0_+4dqbs@?YSf8}3FU#IBwz+>{m@JKcNN=e}DUmd9Ww71O7TUlk!S z!iVjE3+tmnIM{8NUs{Y&t}_8z2-HQDbIV48YZwVzVNQR1QXFqSP_~%RCZT6B$U(O> zjIAwiMaBCnDXB!HN)O3CLOn?|0^iI~$~y3J$JZx_T>jomTD=^;OyK-CDM`J_4!Ckg z%{79I7TytZd(^n=<@}>`iqN$(v+^fvHDat}7<6!pF&oMHwN0%UOWFyJ|7lo?YZqkQ zcw{!;?4y#b49Cs2{MVx$r~B01`+xU0rU5{cO0Ng;z;| zI^3!dl^pbEYMOR?R&20invHi+!+z~sQfL6iTpG zNFwxnM6Mb#$Z?_{|JeajV0}MRz~V|x?W0u{G2wi?mjO=BHzn{@?vhxb|C8MPWd;Kz_k-yKYkFf+@6%n?Kvrwqx z@$6=8=J(evw%tyPy1UII+6v1_+7y~PQLzyXku=h;ANoR-wTrzIbaBu zAL_uANy6 zoj;0U`G3z(8@7kai=IM$PE+0gcV~6q;!pfR48=4xtXQC-?lCh^VUj7tXQ(mb=d=c%Oi07S&1M{o7rQCVcUsWF z^UxNRw`=5b2ChLc5_-ze>Iuh~aoCqT{0q7qwb4My0n+66uD6ZAeX^X;QO z`$Nx!ng`C;mK*s8Q`}qG-n?f05z#%NDPuI~PZ;=l5pz~2v(Qej2!=%Xzc9^p2&xmD zY$~_#`}6H`uUJ@zBGbS#i%y|SVQ;m5K44ikrGU&(nP=JPJL>s4 z{x2ecBEbZ_!4+t{EE|PNK$-eSPcd?w<36|rNzhC~+<$X($9s#}j zCysva&5XS65v8d<%2=TCpqxUvc*T}{@+TXH0}sb+dS6Eap_WH~w5HJUMbAm?IM6;$ zDhp4#KZ9BJleF$@$_Mt)_#~3kIDm3+I4i3Gy6apVp8)3#T&y@k%VuY*#B--iyvUk!29)|U!Mnk{`wO#oDD`EOB;{L#a4|CgIkX$xGe%Zsa4(HROy;v zaj9(!4B}2hmS;ffCv%w(m|DAi15CfU(41{LF!P(z6ib3`s@$&romc@WU38=T)^xOb zCeIf2wH&4_$mO2DSi-`tcb*#8q(}0Hipi0u#)iZ_K`PKWbuo=GequkVdc%C9r5wpt z!*%kvho=}GY^X||0QCCfIO)Dj%YU?JPof-Rs{$+Kgx#}mA`C{PTT}s}v!53DM{16? zrHx*}mrOg$^D+`N0On7hgn$p?vh?US_sphl(GAJ(Wfn^LUX~?4)KF~oK?cXe{j+F3 z6iWI=^df!!IXNWaN|z`Qd#Vrjw_Zhm2f%s8mPV^6m4x6ZVtQnmwlL~_n7!W}%iXvdEzoTr*_n2X=z5ckmvK1GM2fa^J2=KI(@k}PM*(#N zy4tuR+QpNtc%1?w<{Na%OXGw?oQfQWX~IXp*5;joPR==8?Univ2f_t1#34!qx%W00FZjM{8%*hY+mQ^Bqgrl~(tlIp2Xitz{2WuSxYlc-Cx`@RQ}r*(aq#-nUZI{TtB z@Dz^SC#=7v=F=fzYN(C#&-D|{eZ_6*xgQ5W)z&;q`TyIvs(WQSuh_`_uy(2=IPce2 zRmF{+omSBMJEdWDh2g)RD�e`z#>LrV^Y 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 z
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

6xmL{&%tZCGz5E$?biXY58UG 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%0DGv#UvGj+(-vC}0 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 Z&E=a! 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

7uyU?fz0hw0T0*K{5V#$xH5c2>RiQ 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�IS^1fQ6(zi55Ji`nTEkTX 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 U000010096|0001RbprqZ0F8F|Z2$lO diff --git a/common/eth2_network_config/built_in_network_configs/toledo/boot_enr.yaml b/common/eth2_network_config/built_in_network_configs/toledo/boot_enr.yaml deleted file mode 100644 index 9b3f564b8e..0000000000 --- a/common/eth2_network_config/built_in_network_configs/toledo/boot_enr.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# discv5.1-only bootnode @protolambda -- enr:-Ku4QL5E378NT4-vqP6v1mZ7kHxiTHJvuBvQixQsuTTCffa0PJNWMBlG3Mduvsvd6T2YP1U3l5tBKO5H-9wyX2SCtPkBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC4EvfsAHAe0P__________gmlkgnY0gmlwhDaetEeJc2VjcDI1NmsxoQKtGC2CAuba7goLLdle899M3esUmoWRvzi7GBVhq6ViCYN1ZHCCIyg - -# lighthouse (Canada) @protolambda -- enr:-LK4QHLujdDjOwm2siyFJ2XGz19_ip-qTtozG3ceZ3_56G-LMWb4um67gTSYRJg0WsSkyvRMBEpz8uuIYl-7HfWvktgBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCXm69nAHAe0P__________gmlkgnY0gmlwhCO3C5OJc2VjcDI1NmsxoQKXw9BLDY6YwmqTtfkzUnlJQb82UrlX4lIAnSSYWHFRlYN0Y3CCIyiDdWRwgiMo - -# lighthouse (Sao Paulo) @protolambda -- enr:-LK4QMxmk7obupScBebKFaasSH3QmYUg-HaEmMAljfmGQCLbKwdOhszzx-VfVPvlH7bZZbOmg3-SNWbJsFfytdjD7a4Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCXm69nAHAe0P__________gmlkgnY0gmlwhBLkdWuJc2VjcDI1NmsxoQOwYsJyLOjJcDIqiQSSZtDi_EwwSaUjPBSnLVY_PYu-HoN0Y3CCIyiDdWRwgiMo - -# Teku @protolambda -- enr:-KG4QKqo0mG4C35ntJg8icO54wd973aZ7aBiAnC2t1XkGvgqNDOEHwNe2ykxYVUj9AWjm_lKD7brlhXKCZEskGbie2cDhGV0aDKQl5uvZwBwHtD__________4JpZIJ2NIJpcIQNOThwiXNlY3AyNTZrMaECn1dwC8MRt8rk2VUT8RjzEBaceF09d4CEQI20O_SWYcqDdGNwgiMog3VkcIIjKA - -# Prysm @protolambda -- enr:-LK4QAhU5smiLgU0AgrdFv8eCKmDPCBkXCMCIy8Aktaci5qvCYOsW98xVqJS6OoPWt4Sz_YoTdLQBWxd-RZ756vmGPMBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCXm69nAHAe0P__________gmlkgnY0gmlwhDTTDL2Jc2VjcDI1NmsxoQOmSJ0mKsQjab7Zralm1Hi0AEReZ2SEqYdKoOPmoA98DoN0Y3CCIyiDdWRwgiMo - -# Lighthouse: @sigp -- enr:-LK4QBsu_4I-tmA5WgxkJWRuVUCj2_QE2mmrwX0sFvAc3NR_YPrub4kpvPCb_OjKLwEefxey81SAcvQ7mr2Vvh8xhbgBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCXm69nAHAe0P__________gmlkgnY0gmlwhA3UHZWJc2VjcDI1NmsxoQL9FPylFeunleHuPXlbB938eIMd3X9y9cJ8ZI8y3Li0u4N0Y3CCIyiDdWRwgiMo - -# Lighthouse: @sigp -- enr:-LK4QEfW9TCASUUy8L5xamlTVs3JbgT8iYOUspJkbh3rj-BuUndLjtonockiN2K_0g-cBQGq-wvsgAiz5Q3-ic-Wz_ABh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCXm69nAHAe0P__________gmlkgnY0gmlwhCLV8-OJc2VjcDI1NmsxoQKYJuiXbqPzkbT0NAKIJneNWiX0136HiYI9qtx5NF1IloN0Y3CCIyiDdWRwgiMo diff --git a/common/eth2_network_config/built_in_network_configs/toledo/deploy_block.txt b/common/eth2_network_config/built_in_network_configs/toledo/deploy_block.txt deleted file mode 100644 index 99798b0560..0000000000 --- a/common/eth2_network_config/built_in_network_configs/toledo/deploy_block.txt +++ /dev/null @@ -1 +0,0 @@ -3702432 diff --git a/common/eth2_network_config/built_in_network_configs/toledo/genesis.ssz.zip b/common/eth2_network_config/built_in_network_configs/toledo/genesis.ssz.zip deleted file mode 100644 index 842591737af42b467c4c3f35321e9111364fd087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1355901 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 z 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

Z!Ob9FM`B;om#@wgr&>GvHfRCdD1P6hgI@_V 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

XL%3tjTT?wq>Ts_^ zP6zP&bhA^5Fw$L+YX40)fv)BpXG2QOXZZx}S7K?S&>)-AQN><_KJy*7LecHgN2zYx zC)C!i*eC$b>tX+bs=Rv$NTWScA3Q6xnm?1WdmdYve52cjcTirtz5aTCd6P4-p%|v}TP7q0G|NDD`(B-W&ANr|!&%C1-hL;Q8)cQBy=#>6g9HrHkDjN`ptmrXV=F}&f$=N2Ih?x}zqMbS8|Sk51|q{S&h8E$0+czIk`P5qT)zWFxu}EBm9`C>vR1uXO)CIY!ZL*Bfvdl?6)eO1@oB!S_k+aZ` zZlBi$IjFyi(-EcZemYNR6T_=NRMC^yHiRJc169fJid-JUE+q?P3 ziERqc-|)F}yjVkpy^`f#$A=~{R%)jjqG7jC5-@G@ez1RV#`a>UpYGhcd4;~TPg>+k}TojueB zJo9K)Xb)?xKDiQ-{92dN&Oi^CdAEGDGr`*jz^&dnwbs<{Z`BTM4F-sE=mcjRn)pFB98ib`8wY#;^u20LdO1YrjxXzTX@HtEN_j4 ze9WZOJr8h$<8#2M7)YtTRwtmS87Ue2Eu{L&82_)rZ0=aI9P}0@Alm!4_@C*7i$TWl zRq*w|eGw(>wcX*m`u;tAqaV*VrH}pKC{K^cMyb7trQsC+fX}HJ%x8u4yL=;^GdkWK zj#R=MA@Vm^2xFTJn&2*+Ujrq-fw6C#R?DRpMM>%hKeDmbkP{IaQM{N@CfbG-MGPd8(t5d%2C>V#}bngqW7tqpwT0&;lMs! zpj-;xiMRzOE_Qcg4?k>Y0o{txPoOm}bE%czK#v$@vZRW^Zj%&EBcd<}M={IX{PbXE z81z`(eKt~*k9__BtIVl*VrumH*1jDWpNgQlcLDixfcPHhg4T23bQ(+f8YP|;Bjy1> zXTpqk?35p4(@Jt-`!PGAE66UyLt%>X+tNfLJ%DcXSdGTbnc92LPN9!-bX}E5cV$=F z(R>!Volc9o;zjpoZ`-V^ri6Mmi?$B+YVQlX9gyljghCa53&es8$Fi=!-zD>=t3p@62C(+E0dm$k+6lf}1u#UtGsxtzBUqF$Bgq zdx!PvMjgz%YX{eMe8j1)w>G}v_{2ffC8h@c)iJ*A2qVqe1_O*qJ-3WgA5}sxFVb!( z+0%!XlIUE%TkcxUU9#-XeS%(d2|hmLP#+LTs*1!W3jgWE=FgXK`SW2H{$~g1s&h#< z0J~D^*QPIuE}?7M!AdiMNfA_y9K>#hOha7Hys;HgX_5h1_tBDaLK1}6(aV5-$9*{Y zB2n1OGEtv2yJ(qNdir-v@Eb5~u29*=1u4sro z*Q5p0{^*Ef2rD3Sd5As^>Dw}xMY)tWcD3GbM0u!t9~`t4CEX>f&^6G3-I;QNQ9ms= zHpNwS!$(@Hs#*MQ(dUrVL#}4Ultkc15=6mpIzyN3G8tv+&kRixf%Zmi2LF5JP^M9T z*r1;Ii0#JP+f_v7g^bS$+0X&dvr}Uv4(~D>_;y>w&@CO_?gV>>p(o^o_Af{>WB$vVVjtj3)_x4u^P-E3QKrsTqUTJE(1D+F3(33;C=FgfBuMig3DQPZQ z=5WyNt5`t4TwpSO1=`x_3WN9(*(eCsv0kq(uz%cd=5dCqv9;0rgzdW%?bB&rEg=de zFN7oLfK5GE1TR}Szqi8YWvUW`I-`$97RXE(S?5lLKg8b%Kwt3*7Vy*Hi3`Z^m{{dr z{t2Ku%1svO&m_&opPLD%^zDk%)_=gndz#`0&mc1u(xV098C;P4;aWMf7hiWUuNQ2a zZ&%EX(YEj51ZNY8hCuh!3|c6cSzz6Z_O-f77Ej#-gLD@8S#RzF(9kV&l zLL`8#lwCNXEX>SF4=~ZsDACeZP5!3RpbnUvB^1Khch8N93z;Q)m*?{Zy-iKW61FDP zmYHL|S;5m0GyblH7mIj?iGa{B%jc%V`gA{~DbL>;`t#fxBa&sjbr%P?#P zbQ$Ti^t@Ta1L_RuVLtv9Mv8)W0|mX=S7o@}ratmN-@Yd2i&v|NsZDUBam(4qK+P-y z6%6|5uG8o(*~xU81#4xBm8ccoTYp3vw+=@c!^J`O#tnbT$g{~a9sP#(o3-R#=4B+6 zTz2Em5M7sJpmKF-cn5jcrlraF7fO@L9r=0Bm@YuXIx`wXd}+8vf3Y6U)!?m*w?!j; zhn^b>R{aa$2Az#t5G=4xF(~?5vSsi(Vn^s$KOP#!>BYDSXSp;iWvxf&s&S1SU1+15 zRk+Rb;w$Ai;2YSjzUA1`3&9`&Uu3$S+aau%0my&HO$pD;veE+`-PAO1gaV^&u+9pZ*YvbtqnOZeufB(HO+O;Uj(NOFjpS)3F z0ONRiHn@6&A*+M50z6O+Kt$byU)oe1eLXA1*!|zy@H(Sqi9rnH()hZ^z%@0 zgK8H{E~8U-GGs>){OJH66YOrIGLKq(3*>{#SFK&9Y?8U~>(y%78KM`Z+s;wJdotI4 zp&Ic^pg|k9lUk*x+E;xoH!4|#&NWs7^f!yReP`!3Nkqk8O$WcHuUfgguHdo9trYHV zcVL39ml==S(6aFor0g(5npW)Bpl!C_jX#Yll4?0T*=aLYq}=A|M5ren8xq+6`p@b2 zw_BjnWo>F&hi7wE*K6PP1F9Om_;vEg(be28Z9q95pagA{NM?{|~9<3Cs1rw0s z4mmPqEZ)_zzmvG?5{P&*w9ftxa`JxlVH=X38C!_@2CxdFz)Ohlc+PRHt0*nE`^pmG5n)>_cKuAxqj7wOJ z&7Ij1l2hbG;yfD=`lq|3#wcM%C_o=i(Yrfxyv|@%Rnsj$QyMz9E*NxUsSwm(5t+DA@ElyM(uPtA%UZioz`?im^{_z`4waZ=D5 z^WgNlgmlqJ`5&FgwvUAQLyc(t0;vAVfis8vnARIssu?Gih*;?g2cAdedcmrn!~p3r zn_N4R4UgotNy=YRp6#D@PcE`--&Pc3CrECKL0??AMJ^9)q*ebStB}|nrTWMUMFd8m zEn>Uk+F_!q0dlQlRJ`+4!!eq0db-+XbE|!zqK1Zqie`$PoU{WV=6NRguE&QLp9rQx z-{!u*D+#)pX8<;WSXnKG#tkD~C_>>$ymB9-s#h4@K|a-WwHfl;B{M z_+F(`bNi&cMHQ=IH`N2ubfIw33rtH@y72?d(Bx6>KFp9n`zV<)cT5e%&vt8cu`y)4 zo4Q`Q$X=MtUuX-+mP?>tt|Bp+kG@kWJIc<$STQzP|Am4-gHkPSdE1LG`H6?y?o)dr~Ez^AFkp17s2oo>}-F zm8T==DYMiR(zazf`Li>1a z&{ur5!aPjN;%vn5m7XvL&I@RI0_3X8WLoAq!K*tXe&X4O)K3SK%7UuIIi6Lq0^;02 zMNsbM_K8I{{g`wjH zM?HuX)E$F^KD})$+cQ}6>;K!l35&?mXKh67d}c@J?JZai0mZe!Gz-&r|I2=%xSe=X zUQ+?RDmo6}6qG77W=|&QDC)%A=S#T4lhZ0m$|Oe5MbD{N%mSTNACUOH00qhO5Z{+i zA%+gY{6q()tHZ&<=wtw;LdwLERj-|A{-gSa75Qg~Q1hg|DDYOs`+?1=fU1VwRXw~* zc@>_9z?zh#GZc^Wv)is0^cE%!KG)8-WORe#ceZI|r!9Wz){d>OC*; z<QkxY@fl%A;n8(`&ZEKbHFk-~)L>E1-iD7Dp&+#yNXL@csB3O&PN&H?X7?;~eo~JECWS*pSaYWh%@WD}LaudbvjhER#rCfn+L_>& z(u1JaT-9sMO;pe_K8U`AN0i{Qymv;P+93w-dQEPyrbJBoD7PSOv$h+_fyq(}R}HRClpdz@MNWs0qJ5{rBTxArHe1sHSMm|av7WyxrU=7`{_6zF`XkihR<%|D0< z_H|0s19R-LqqzYJ~?4+cjq5jnHBTt%()T<#p1EnGc5!XvlGDnC0zoi+tQns`@o9 z=G4<1=agaTh6k8Y`4_Y#@0Jk|36~S|f-nK4Ca|j|u=Q-@hXM1)bgPqQo2G^gN&AQ5 z;oK?#Y0$MI!k!8D^I9$;{+^QKk0GVq^O@*Im)VK!O3H018$o|W?QwXI8D?zD|3H^-3Dqx9_LYNU>cDAT6609RB^I3Adr<|*-T(LuUdEbJ z4`azH8)(D89v*n@$8mU=3oWMCoS=h_D8EpF_s4Wehvr%y#XFMFaf?*aDk(Bku8$!> zU$Ip9Ip*;tdWx{SV~f8bKTt@G9av9HQ!n``V{-5GY=gr1yRF^SSS~EZoLz(+kz|Vp z^kqmmGlo1bIH%nk-0#>+2LDdue)n6CuXt=zF6=gytH|tD)e|L)1E^Kp`r_r%U3X>x zt{1^i?9}M6jc=RbX6QwTGki?y#HXhXNhAy&^|_#%hb07o8wt#1z-tO=e-!NT9#vPv z%`&ii^M7L_UUnnKF70ZRjy?Exy%Dg@$_Mvxau2Xi{?7JcM}6%748avwO`PIfveSNZ*Zc^b=$rR|D48bmkr zp9UOYyzScV%5X40D%Yfj0q7VfQaX8>3_T=0h&y_C$=j!1G;;7L+G*)jJOamC&@Y$E ztP1mEt?PSj?U=yu7A(8rxO6v+1hlZGX{+Giuy>(>LeoI#Ha8+jVUm8@tSQS-FPEA-~npxXWk# zC}IgufKwhs!*{>@vT$Lj^BQnbaDBW4z*U-_Sb@zDQc47T>7`r!;k1f=tQKD zto9wi`-?~v+Ik@WU`YrQ3Qya=IEVP*{RioMOKh(2@)Yy{l3d~X?XZ5#j}Vg)R# zo|?eO(;198a;4x5pA}}aW0%1^OQPQ`_)l&ISarJZu|StZByAg>7sSq!9+$}GB9{=f z>xi789IwIoH#i43&{y>tcy!k)B_&a_xj3~|Dz$p=sl1Q`;Mzx9KV||&>`^!$z#c|= z&i~sWAog_%5JZmBS67ycVTtC;C`wQK4 zLgiia#)f)K^g>z=h5BN5t+62$2yYdK(A%xpgG+fNMA=9-d*#C`)(ueV?`oteCN*mW zy}U(FlLx3Ax>%+!5oBswqM&D|G#Y6z{OMG(Q?&m3etXzIj&!%x zI*IDf1CI##qri)tK9;x40mdaiY_Y{}UhWdWJPD9M$KaSj-4&r%6IfTc)(FY(fgs@A zK(GfewE{NTFgW({zfbg(%CFzV-_E> z0)ndZ6p;6$q2(@NYVn2RE@NTq^f99L>H}pxFLdPq-Dv)j4fIW$Z4lKjT7*+|(|d0n z;H>Fvc}M7~W^x4br>CB{Qc?^Ad;5o3Ao7)S9C z`$rIo3i!r@9X3Bi@&P({KTV`Z!sLa{6!RUuAp%n+Z>y(Z^cRg4uCjuQ|FRGDf1RVeBK3Rc!s!kTUbE({@&@~Jm7>_uHR1Lg_7usiq8g)>1Uu~m5BW? z0oji?J-X(4KSznV(vu-}DM#~Y-wx23nzyL`YO~a|wU-48mmQ!Y!Jx-kAj5QrG9l0w zre6pcQIpa-%*lPM_NK_8?&-xv0VxUi6QT#ZGA2j|w0{ATDeU9CBd`1w)O96W&rP_X zyL#7(Pd*K*7%mAkvJ!nekR>lsf z${KpHoyZE#%IS@-N(l_~ociE>mk*m(Rn_i17UBZE%G}HfbC!uClfv72$##Zesa(bx zofi6qMRv?H8q{(_G^`Oz2PV0HnpE~-?&(~#2^btz{&`EPUK^hb^@6)>i8dzP)^u$g z!Grw@P9gpqbPJxU3yNMSn7&TRq>*Iqkr+L?b()$I#8AKXXJw#w2IhJBTl9QghIfa0 zu5uSa)pHXd)=q(T$eZ%7e?KJJZ+JdgV@s-wYmOQbJ(e))&lk|4bBQQTOo$vu3~Dp7 zLzV@2KRe?z`vo3$2={7Ld0XQNt}K)%TXre24(ZCW`qiv8vjD?^m+nu7;l#cgv(-IG zCK&|c4~KhGoA3Jqc;Jj+pxYh>Wlpz!RE^2Yi((hBrrVDvc3FRm20Mf=3FV_g2+R)LkR`wayroIf zJvD{vuEO-$aLO{3vi@EV;(C-}lXAVO0(29=ViG?-$)!jgaqF}jcAV{_ycum;r1&Kv zx;R}w1sUoUhuf=x?ZA2xlq?judy#=i;Dqfslv=?9dP*G;#~S;B%bCt`h}cH*C$Vqi z*xmPB(7!P(Bob3g-9g;=g6>)4;Xo8H3`;Ng)78kjaocM@sDZ3A%9vt_3RWez z@(S?KlU_})c7r5FY?R_>yn|@na8l;2X59_KJ3NC1EJ0t@%kB?q7Pf3SbAHY0vR;w;Y#AgTB;3J2UH@w;A7QzNP`-YCNK@|!=m#r)WpoJYeANZZQDP5C{&=Ah z$8lm=>^$#S0q8(4Z}Za;jd@e`jfSw$)CMR!9+4 zNkrxKr3daxB0#K|ue%eK1nB${;y%d9oc~8Bj^J* zN8%5S>kjz%2{Zo6ZR?h;Bg1F|`ogQWs=d26_xIRb%?JgU5&p%3de-W$ zVcvIf7ekDCTaQ|K_e0(JfyJR-!-pGYp7~ zatk9fE6_1}(H`;&%C>Ss_|Ba!BIekPSpGz0;90ptCJOv%zwG`YJC6~DmA85l$%!`G z%`)sl0^ti*WlRlC>r+Q{?-=E+GD; zV*|8* zfRVZ5BF|+0mHi8wcCrQgr3+0&%bPx?^o4Acg639cXWwTE+Qp`@>MD?r(>r2kH~2Uw z+L@g(blf%a&sdfddXsL6Ykl~TKLqq7acZySeiReesMG!X>*G83=E0(V>k)&gKfzaq zkaFsa#_MQ&9gGMvSexTj9U>1QUXNhHh(>@q7+s77_2jBku?Q(J@|31{=tJDnbR@hvG zWW14)2sQBSQAs7F3zoL&P95SmDu$2x?b9#&kFbeUbEX$DRnR+$y8d)mmu2WICr0!L zo51DREH2N@Z$bk8s}!V4|&L31`z4SDw8lmsjq0PDdGj* zb+EOS1bwzY|MXl=mCf7bgWi}EEZH!|XlFTNmu%#8jqSqi24sJ+`Pw{3`)xdBM3J); zY>F7>$Rb9bWBX2Fu>=MnNy~CFq8?|JiIUdSU^lpFM8UTF-d(XlAl^GD>;}35N=-a* zU$e|gXc)R4Qr82gqW$*0^OYWMHEN9xb$vr5JaCCxq|e6xt;MbC%tMB52Y6y*JV>l7 zW9?3PROzeg@EPc2`z_LjX!nF2r4s+#4|-ZG_}a|pr}HLH7@XfqTG`6*88RoMs&U>r z!7~hY>QIE?uQS?Dq37T%w{5q_@LmAKl#1Afa_3=v$X}W17eYzQ-|CV?=dss$aSD3Q zxP!jbY;nl=QO7txsrXyC$IJD3X`vbtzVse09ue0n@hNS|1(OJJdV?LFtRz zcu_MoYfM(n5sTtCXFO(e%-u3}x)ojP#YYZ$lDMO}2e&!XJ%LuG<@o4}QGh$1oxW^h z&neg9v~tB0h}?$IR8SDs!4v;^cRhT14xEtW>nv6l{3UFoTO4-!lyuxl*9CKueX`i# ze?m>@107!-=^4ibC`oXjkFSIrS>n-m4EMCPx;<3gf>VD|iH04VXsQn>{+LDEF-JoB zXR`}@%H)5|m<&<1M~N)n@h3i{C?pi;3gSr^^uv1?Pb@ zKl+XXM{eW#wzzuD2|6W((c!x2?ptYlUVJ*)S694P3K5I%bQ zmB}@8&+7Cl8|$etOrjxmc}4Judraul)r^!4@J>C)4+9zYU3NSuZomN}1+@h8FNZP= zshFgxq@5I+mNB`YYfiNc#Z>JI4$#*>e=(md2D$8#MU09Q&hVF3_o(h};frwW!dlrT zG7>2`25lzX{y6=lK9 z4IKxyDoopC7qY`Xu=axRZVSaswRm zGvW&{Uw!3&&DX}PEH&5>t0;Fx!AuRV7%|u+NPr$dVCQ-&zCY7$^LsF1NAQTpBRwFL zGxm67Qb19PnP=17Zp@YbGOhWG5!3V!D+$#Ka76g6QXheXZHfiI2zzmQ`)7G!G&x(K zG@0`Pjs>L+^g^H~CVg6`^q4Ep^ZWUjMroazs!T*wjl#_4czx-gdUCq#YvDO&=m*nw zR_%Yf=ovun@`e}J{u)WtENkYs)QQ4(?y>{iESj9}VrsJ+BcMyKB#(giGf%`^YqNAn z+NV)XIbHH~vWbdQw_3?GbidFV7~=vec;vhXKLVn2%>;{OfGGy?##HfHvrBWO>EV&9 zuYB857nEW0_tdGx2HyWbcM(mhqu~#Cu{*pTo%;E$+JO{ntt7)3A+mtZ7K_DjW@8pT z2+c)g%2R@*lJK$Q87QgD?N1Iq2i~1Eb!Z8oN*3mS0#FIYM9l!ir~Ilb7oJ|oH+CR zdTup2x7r1s#~?SmA;j=`B9R67m7wKAQT%+E^L!1VJ}@>EZm&Qu_5|iDd3XVA!y}_vhgt#u#Q7^guC&yRj-0G4BMXSy;pxyARLmfB~ zNwwVS!!ugkaL1kZFA#upmYg8{TXVm#^TRp~xD?0?qLVgHSUV3|_X@|sebCcl1MiCW z176Je@-*La;PSJ4@UlIV1v}{$*fV2!Sr?qETV(dYk*XX(OQrJ)P0thvfNy%K9uD|3 z?dEm23~-I5OJwrz8I~A4MG#dq1#N93&t{ zG6Vfpze`N+vYY&IETQ*uoF)~1LbPY)^S(|J%O$9wu9i$H3|ID*;9l1MsoAkZD9J?+ z%a!yoJm)(6fYH z4!{RfkJV%T+1Y19Z1N-6#(&3Jr38~FY=li-tF z2pE{pM1^Q&h-|b*4r(IB)S%3n|BYj6@`vBy?N1t}q7C+1cmI;S zWgj8|)YMCcT{BVVWWZ5iG=QaYvaTH<8bpTRED2CYEQW@v5bRCD0eOA_Nl@FKu(cuIZ6n=HP&H#tVdLYvCgCu66+UL>Vh2 zpA%_|W$n(L4C@_lwFRAHo=!s8YxpZ$(srkngjQI` z877o)61PV~?*&s4vY_>ZwmVcp@thev(Y^+~ zF>m|RET)itwEM|e#?^0fcOdK&f8m|7x}|y`L31pZ8&u7$&GM0T^xvF zi1{O(=zlKN34g^hqh`J7T5uOJM*l!x;Y;*`3Uu&(G`2L-srI6BN$-T_&cvY1T!z8j zLqh}1V?4twS0pDqu5!qelwz1o0pj2FBrPa8K;sgP_7n#~_2P;IN!Q4JfsfcmNAM$p zQD!Z+UznyG^jnS1r?t^V&QlLF&gpABIi#{{@srTFe3SD;^Ph1u3_d+c;$k8@m6O?z z4QKnd&pzO#CNEIN*pv)*<=lcAYrlvA?@f>T`#*0b({5dRUsZKPnX>pX?bd zG7vW5?;f?}vmo0xQP{&k4BCzko&_~Zo7o-Y4fLae zsEtLXxlal)(IEq=>IY5H4!N77%W}Xc4P&S-j9?cL|t+bG)qeaoN{@*Lgd;D>= zG0@S*ZA^&E$}IRrzD^6ZCJlmK6AQ=wI&QzIv^5-+*dK%atl%n~tUl%})6(Hn_rCRc z0`)S;*^J|~6W;_VM!^J+duprZo~9DT!7coheK1O}LC5;^Ql{!4-7DJLP@u~q4Q_7Q zN$~iCHRyglFNNh{fAzk#PVsLf_TUS!5U|I!4D#)M>Qd>JR`9}tR3x%b=+k;8R zOD|%qArNGiC^UmU^{MSp+rb?$aCy$;K3%T5ilF<8H+EX}t^T0(8V0r3etXC+)@${x z#+yJgQSWlX9$0KLO%7?At1{I2O#}~Vw98>%c0@{+Tx~3ZeuiTSdSf1{*9(=q!Tlp* zi(JoDPAc@*$_ag}X{`UqvWSqp+m810LK$Ahk-!KZ1NlgY?uRtM@>m`Am0O(PF6(CD zC)EOz)Xar;0%YiKR@AzLN3Q?SExIxN*=2PK&`g95nhebP9RRg|7wTS#0I7S&!Q5=H z`%vUFqHV6a=~oPeMwHxp2yon53}C}kWf1JzDij;3nC69jzB&-Q6tZ&f8bJ+!9x|(b z#tIoXPqpL=5HQ3M&t9os$*~nKU(|ouMQbw8Xd&<%m&VjAvCI3uTb1Lge-#dFQ@);! zHZE1#BB_-56|c(LtVR-6R#|F#qz{`>yMS(&RwrSQ(^#zitC97S!g#JOJGs8op;^|w zRiNrEA$+>_!>=~TMeVJxj~e_yVf6bRHSo-JZXFcdYZXM97Fzg|oWG-kv%$uyLy_E! z%oBzXbghW?*rVLnA1wptp^?)){<6PC`%}AqK#DGAvN_dSEz0^~h2ggB&^I1k&RaNY zev!%mpy3;@ObBsc3rw6p;!H?GIzKxkK+<8w(WiaZcHV`Ogm2NqGIf2D9R&r)oO z%TpDbs*-fR4=0X;?mr|6c^6L87gA(|X7QYGD~Q&-HVE8xufP5oKL09mZ~o?zFi9)t zG0|n<8~3*SpzC4;@D+`WwA4oig!W7~2anJ7)9|(%5NSPELrWgb%t%3(y9-~8Lc&?# zZ4|uK@EpxfB`D*A#Muq2Vq_3cX>n8o8| zS>7m-&TX+fn|-3WTV8X}5qTDaZK8G%4aT)fS}h)Yn$5D+@6E)_TWB1SaSTIeLCFF8x?$qJ?;Pms zg9%x7WuBzaNZ2&rN0gUm?=Dg;_aU~*zx^wS+z#@=74FxiYf=W5Es)w@N+Z{O_NiPa z81t4P*wYEo!B>CqL7NfWND^+?r3cZz z2)`PtW3F9)CVg+?LSOdiJeE%ps(e$>DGZzD9Oj*Clq)bI1~O+Qn%1_>74R7ynu2sQ7s^@M^l3suK6hzI=}Sp-7$jo3Xn=%ElC^a^ zN2)_Fwo8wh_k7(RQln9L70g6sf6;s?&@lqBM?=^S++bL$B5e)s!=D@7|CF#zpI(Y= zsl1OKgX8n83N@azR?=wHZ@45)FPHGi`i?NB~aoQUSzqC)@1mPNM`K|tU7 zXIuj1-rEt6=R>^=5yY;E_$jX^@tzUR#5i9$MoWCo=Rj97s`e%O>nn`rY0Ff@1bd9m zgMM>rIZgS?HO(}iVvVj`PvSw#&TvI(5x>a;h2(h?}Kp!PZU^q1(tnE6dKhrdnqkz{5UUGC{%P^wond zxEmc9I{pOoPTN-+DD*~ZAn96RB`h8LEzDqLMEpT*gK%H#PTQyaVnAL|?QP{DEMYM;5$O@TF zvU`}nb-Y4=9=TeA(2o%7i7K6)7u-@Cc2UN?PUx`+A2eOQ`iEj9ua4wY#kh1^t*kgA zxMo-GDgtgAgoHlE$E@d?IS%)uxa{gMDem8DXL?KcOtr+-U6$ zg4y$-Etg1xFLPxZg!*bdZ_>&HCz%Cdz*Ppg^8ydn3id_WxRq0!nM^ zPO?PKhBx&F>TA%n;ejU+0>95@_AwIB-Vl2$!9!QZ}q`MK7^)rb8mzn z94&Do>-?MYtvxjPys8&KWR~(JCiYZ;G~wXEZ}ag-pUk>rPMXK(dEy2j77Z-{nak%J zTUQj39VS|$S@l24u7SO-?`xj6vF)^R8rzL+r*YcYwr$(CZQHhOHFnm7~KfD>mcf9q7J3vFco3y=?+s`{WF}CXhCgDgW`|yNvdLN$UZq z=Mg!->blb07NkxH?*at~`Lrv$0SjS<*W*j?mI;a*Ry>2%Tm4C({F_GrztT*erWh*d z+bO{x3jF71=p+o^%jXFh>RQM*exj7Rv}J(18WFB!-EFFst*xu$sU5b$-;@2$3IKYJ zP6d)rJ6t&gnS6Jn-fOFaTW_K+sp`kLi@JX_f}R~6!fakUW@%qxXpeGvPc|N zPc0L)#*hXbSLZ-KvRzBZQS2*FP0Y~1y4`BwLRMjuB;!F>3Ez5-XI8iCqj!vsCKf;88PH7^m4Ma#0%T%oNzFer; zU+3X{jw>nPb0Mf;pXQ+3>$E7C;QbkVxQd3ng6X%xpW3`CQ$0LluJsKzbR6QaXoejc z_?_BTN!QZ6z8sQ*%W80Tok z1Ss!G%AIKpMM~cBY$`uwEWQVHu@Q@bUYH+eK!1yU>KTvZVn)`crVmS!womsG?kG>Z7P!DPL_tG~;lFt6;{8P* zXdJzUNy{T!AGJVM2Qkr{Z)R~?66`Ks3-gZ9{RTK6JqO+1wap?C>#y@Re1;Ao(~cu~aNa;xf-lD)ilUxqo3bdZ7~{0)OfM1o7NA^UtSghTY= z5rUt0*F&uV$nrrYI6OsmUSiMCVk~6hL3SA936EHqsC{8|p%4Zg`joN{`HlUpjydII zZRNO&h5XlKm#=Z6bSvyu%H@ihPtI1~pMiRDPoxk2Ms z1qg7UvKMR=J2dT>zcPzy>w(^iu&fGJK^sJ-IByy&(L+$XCFwwUE_sb~714%J8e>7< zThUd4iOIXD=i|aOHm9uvd}+I;lUwxcuv3b3UPk*$7NIu#(--9*smGM5)XGyqN10ON zDNazWa+b~8yw{bYmfaagniJ9!*0x&=U4MNVt@b z<&x7-M*I)mbUTn?LAiOJrw)FT<<@1dpdTPjG74K;K}?AoP&Yc}x(CS*Kj}9+d;>#& z;Q9eV7tPQgV#4hyA|Irf+V)Cc9SnScSF!qTy`Hsm{F+P!vVh+W`Sz)>n!=AO&!`W& z+Ay4;%Oe#EjxEGu6}z3|6vUIYWu=aYD5XRrn=G98#*~}tvkJOrv`Pl07uuhy3zO0X z3jhvfs#&ApAFCfh=8x4fP8AxXO0#Y0>zR{3E1K#5i!SpJ9E_%}br(fQqWj?fxwDNO zlfutr_EK!U*Om~fFv9qoR+_|o*O1%?l%=<7pCM3!#`CK7X|HZ*oiHgn19u9e(=6mb zabs=oaQS0R4|LbL1OoaQ*u}e-@(Y9`Z@7a*-)4ywQn6lqOtiR!bsg{qH0tilyX9}Q ztiDYlLjPzZw<6Q2RU_pa6n%;3J>eG+)JYQ=R#S;FTCU~SxfdCltOm+o)DgjYUao{ zj)MxB*s2eC zIiB4|V80t|SZI-DbC6JRs1CikI3{To5~Usog7oxn`S!gG=G82d@xvPi@fOvC^x%v(j8n-biMel%f5R59!waGX4WP zRP_dWMREF1H(J(qA*Wul#nD#$`|*ibAewaJy2^8BSvMNIF-cJIW7+O8P08XLgg^rt zVxbM_Qudmrl7D4{W3`7z=Jh${%LxClwuvft9{U-s6TU#SkVf!pIj5jPw_~&z(X(X0ynW=M zOrRcHQ;xKE-XPwO1fAlmrPN~bW5M|uAwAy~nr8>&3$ef*z*!-5sjaiKL34b0((t$u zWagrkjd=W$86;Ur$|#SxdUB}kxO({V9UOg zQ~^YkEigqB$tB^Xfn`0iL&d4yw!}y*9^k+2q#bkU`JcfJ#J&o#0W2Mj(JL9F+n#nO zy16nKG%oW}1Pi+Yi~P-t6e<4mZ)iZPJKWGFR zA>Zz!X>c@kCrE=Gy_6oMn6wCx;Y158Y!!MWo<7UEaMiX8CfL?;@?S~+)E-*_a6F=Z z3o=f)=nId{-#p}`Zg<;9G<2e4g-G)!_=;^o$6Pl%h4-*Jy+oX=15bTAXXMLw2xN{F zaQ*OJ;g>B~R^R4aFppYeQI4-L=8J!PG68)CzJaiF8X<<n&LvN`BIi`th?kq^xx$RkVW|`hTqnNis>X=SgBiKn z`1LdaJI{q)AKfHawhroFXP{L=CTrHKE&>MLY*(gwn{GkxS4RfY!X3gX)D?}|Zy48& zXf!SpwyA$lt)oFL@^OSh9~|nQuV@X*!-@%f$PuJN8U&`Ii<_mQsY_i77bW4$Y%I(M zv(`peZJT)Mb6wLDLH9P!wvd#ds!t$CDWwlbaY%C~?ko~A`@^cYY?biq%^YB{7?AkMH2lpZ8FSkjsTmn<$efZbrvku{qG|mJ`!X;K zX->6pDN+9Ipa+Y~B|$?jBT;;z2lO%E>gtfEaKtbTECXPjN$cu7(P z$&E6~^i5`DS_MQ0qT5!zY#ECeKr%LNe+XM!3}3OjRyBV2ie>^ky4pu>cOJ)0Du595 zNzDS@mc_4>8k9~*fvIg?Q>bJvyY2itT+Pk0sTsWjtOdRaL}<1w{4MfIO{{GPS*(EU z^qcd}Lt+ATjE||2g9F2DblU{$%wQk=jiFNs z?Sv6dTzLu@FeId|FDmDMcUsoK`qFXAby?>)K4@R0v;+)d?I&RUqr87)qt3s3tCp5}}WLEyFiN;1H6)|lP)!-fZ5 zt=4Ur_NUg3j`e|>Y%Y6|0_Z4n*Php8JfS;bidl_7AwoBGS9tcT`U~pzn1Y!q(s5?g z6nC$J1Xp+gqKG2Gs8R-iBlsavp-P!^@k<`*oO)LQoc}p}s!kVZY|ZR@ECfB(yOx=s zL^b%h@SUSbc+aBNusu7VsvYC9Oi)>J<>QNP+XXyact3{4O0((*X|q%0oSjNAd|n`8o_ zS2gHO)MmIZ$9xoDNW;>h_nsUwGBT-y&OZuLnUm2}sXUKs5EZSuKPIxIrS^96Zzgbm zwgD__jX0gs8{IWQI!W49mBv2TXQ6Vxp+D^k7_(L%K%bMSb~S}=i%>2k%9>|}sA(9m zte8o1Q8~c(5e=ld9Hc~cjj=!XSh<6VfTk?GMD1V#zP@mWzH=m`z(*Zy4awfIVLdn3 zz#sJU4$~S^(AWKkmZF(qY4&(=*^XmyaD9$NpJ~E$P^n*g_iX&MM`SdI!5gb{z5Pv? z`{m!Wwrnp^1wg|EfJ>=8TrTjyWKWLX%F_}Q&{K3>&IKx;v ztX2Hls7q>Lu1%-?Z4Oa~QWtcSijrEhCU-dec~lyY=w&=DL|Yd~j`-{#hSd(FRAEey zBrS-);bCR@)0CbVLLpR&TELi{QwNrvPyKjW@7W@PTB4-yu@oEWdB{ke`p@GL&>c|f zynih`d!`5-M4T*J-7ig%9SKHFqfv4cN_xA`&TVN;L7X)usu?q>Be z2e{q+sG5sM63nLt8PK5L89)@-Tr_20&WTlC$6czCIsaF6#TgukTDY%s_wQAno$f5g*Ls`eH>lQB@>vZxXsxA!omfZ^&=l$E2|&Dqmm1k8`P%me^{IxJrdzrk{f??~i%DmKPpGwpQ&%TnSm$?q7+^9K4p4tt})V(mwU zU2&M8A2xB0yuKK}nrnP0R(krmCx$TNRabK}5cU8uxO#;?gAx9790)7=79OlKw ze?8Tw9Nz%xdak12dhI7RVTY7YhJKlV_$n9hU9i+yT_sb0b~B4NH6Hu7hO3@w^0GO~ zZHDuwr~v3W=1qFc=)zLcGnf9$e-f=e3*vO#wUbo%?S{rb5p>*`uom=g;R5QJu6$za zy~R&bJAlP$3WIRtBm5?Q8-u{cuiw#+gh_MSoi zT^lpS(dwunEK*v8kiP|i4sV6um!1hQP)v>swsNH8r=bwrs-Km-lxyi`5^~RGN{o8G_RhgtBacf|W)+@;^el=3ELMjSCBKn} z)rD|VKK4Zx#7i!+`|yke&7$;`>u7;K)8@@qjo1@f0KsQ;lfo^`$~l+J4ucxmv)Ry} zJh4o>O@SqzGIovBk_`3IL1Ma;Rs?*a^&m7%)WNb_HKLJn#A_J$VAIfU%eZGa zaNp4yfMgrH^A|8d2Umf4T^jBxCBsLE{V`2G7=#6SyQxLI=5*?iX*|7Ekt^L&0(;+e z8e(`&4k)Ar6?C3Fc;~Upyd9BO{GF z{hB$$=Nf_WU==WMB=Ibvd5=u08%G{QMwf#>%cmcP=ck99~FF(GJh=V;^ zu_^|lhL<&x2`fr7wZSev&|Pk-)UajQ8)`=Pir2#(!l-RKx$crvR8ui-^~*aJu-3vU zTf%NMyVS{}AMre5r1f=xX1-l%Z0P4C#5t?_8ohSxSROxXxx6+tKiQ_I?g-F(Akp}4 zz8F#A8Ud{j9~(6z%0g%3^c<NED8Hmq=v9f8R2G21dB z&&aLsb*VRVJAtTc*mkw-dW}~3oY}NWhoB!IiABOFtU+Wy)|Ul>{|y%3-q*WgJfc{oNol_q#g#< zl04{n60!5@I-_UzCaRHPFr=Nj=Bf6JQMuR@SL<%`I%MRmU38xuQV#Z;g28Et=E&TK zNdSvfLp!M}qph{j=7iaKiX4Tfy1$)rnIQ`W^syWb=q@*bM~FiT(A1V;aV|=DkXqFo ziK0)G8bqy4*sk=q2(Ci^-j>12oVu1r_%~ijN_vcdI?*cF3%`WR+8|neRiC6lF3>4H`*q9BR`iBo z^{uhT`J^9$tvYz}=n~7zdIHMkUE!icEWKlLQ);a3`-NzNO=dABoRH&bOG4$6=>#ler*j(&!HwPX0{_I?7bJIZ?+UE7bnfg|;7Rvh@CJA@JWx zRRoZPD;gn=t)`oIJA%PpJ1RCwcI*7KhyfSroFl6j zL;S})&~K-Txy;&wHNm(A`s-xL*q2STqQ8Lub0On-K$gawr>!{LT)4!xgO^O%MY_*>UvTnH27 z*vBuCXnHwE%`(jz1Y6y=eFCj5*P6!YALC=}#ef~3srF$W=_EGOE+S zj}lOMe=|K^)UIFwP!P7n{u{m){CHA(dfXz8z@$+@o(kDF1;uwknmf>+xWsXa1HZH1 z&PNhLX^@a1^H|Z_J))nv75DC4kK%_sktzCNfM?aJjdChv>}&Ary*vMijMeqrLh#C3@hCfeON*L1 zz3Wqi%=!*dBpr6)fKk$%X~+OPC*!dRBKFV^*?DeuQ_uNFYZ6%)E3dB12m@^kC7?T! z6+RHd8)9bf7(K-JxSJ;k|WOA9aD`2 z)^A*Th=;PO>{*>_S$}Lz0lH&%UZ=(T zrR-Xt8jczPlY~0))$>N0IQ}B@HF0R%db@`z*+>eryd!^;cArC;?wk`FP=)hxI}dG6 z9X-X^eQw3Wddo3QZJr4g5l08f%VG+;uTMV0Ai|u&-_9)p5BUh~{?drQ%%Uh+y^@Ii zyIhp`uvgKs$sax4e{|bxA#mNZvNwS&$tNVvJLEN`$y031P!rs`7OQQmKt0=#nfmt8 zEzotDK~NA_Y;cKw!AL)@JH?4$jHhwM630$gv+46Rv=aUz$?oT}@|qIoOyL{{aDH#L z1@f}7EBI;oMg$^VR}nor`}Ill&k!R?Uptk0dRr8}gI*tV)C~ucJz8R~HriryJY`^0 z6~;(;bovPi81-vm(7B^sV+-G~yB{JOna52Puf+k_RN*0N+L`)vOf)p-Q{3fyDmVlF zNwk#$I9}?H^#BJtnC&kQX%auYDm_@jB#PvNb=T4|)F*UG_^- zIq(vXrYl&y5NHU8EWETqUEFmg1|ApxeLaQQ=lA%qHl9g@Y+j|y0v%Tek;lMS;eFtp zFRF482DT9CI=BUCVqw3x-p0``#rqDF&%N~XzIo3JE}zvPhF=2awv$s&+tnM4?sN`9 zc98ge;<`2qH@6G!gBD~Fv!M5@YexwPAUL3!2Q~gQzt6q?@tg|s*mmNjGn5HNC4*Q- zgYRQq_eb88Iz%vGXO5^s2F7T6rtHFKzQP=SR`SY*eTG)^{>EXpeK)iiOY-vrJ-Q<( z4X-YhGbVeSGrnhEr+lq+Y;kkS+gPVN;=OJ~V&-0}*js&%(R0WqE-HzdIu;CIaLY!9 zy7kfkYYz-3^eLR6(p;n+V;_xzVEQ|Ma|1dHQ$X6}5o9^pOWu^!W$BOIFF1YLF4=%?eMz~?V}4#B_Av5 z$WZbR=qFcM+TdV8fdNVb!fi}7jW_(K4%>x#q#CKLCh?xelF&)^d)l6Z-=th3`p=@v z9E2etWWNVLV2tbA0k49ay^m+rFIAzDt3mI*p6_7yH1nVjS|vB(T4YTI+HZ{?{kn^c zO&h`IjX=#9U0IR9`h@3V^ulsC84GTbkRTpCCce+9V*?g(Pmh?EXujIFwf^p|S@|s6 z=r&oAbhi&(YE#Vn33?N?F!R1asOl`g+~QT`%R;Ft_;*=s3k_XXO+N0Gj6!L|<_%)m4J-WV69U15c$ZnOu+TUT=<3%#e+jvTt*|9f_1Oqw)rX)#= zzc_hoidM_E{ZbwQU#1VwVu4CGtqNu@l<3;VeTcB<`$DX@tPGc`;mVH`u+ zuiKh0NWLqE=?dgWo%anP3p3g0|=`o~=V_63?Luw9a zWcXA3wp`e2K+ivJqBtQ`p#E?u3UM3zdL{NX#oGSoa-{+H0Ct`-3VgzVh&xse1Yv3_9-hFV*MH`n0*N~kLrwAw&tE8xadjYv>J^~*$Qfc?+jJD97f$pDKtH(z z*y3VM*+k)kN)-i`cY8WDkKomfgSgrTNYw3qa-GT4SXDH-7`aILS4vzH@t6ZP#`)D^ z*%4k!9-D8Orvyq9Mh~3N$sL6`Xtacs1E6z@bxmKu{zaJ`lE7-{wpDVD5@8QFj$Y&V z&N?GnfAbzQ_&4r^to$cfSxDOAWi%BTQoQOl9Mn4u%%%cTB7z7RH)*|N0eWsups=B!dmKX z@J_vR9PyQ4D^gVkm_YeJp~?*dV=)hkHu!>IP!N;fluvDse}*X8! z`ywP1aBo?Gl{D!L33CW>u6`y`2c16-M3&uH*hCJY+9^^E`aYifNAaK7u~G-1#~%8Xi=y6oXzw$ymrf`fWL?Dk&==m@x#80oedGQz6r-^_(Tle_mWZ{8 zNI1>M>$(Z>7(@!fneOGTiygD^8T>Y6r!6N2UkXHCTy8IuX4nOJ;iNN#)V(9o|iG=8GytCQ!PR3~`;O4bK<$TzK1oj7LM##BU2=a2`Rs$fkDH@| z_f2p0{HhTOJcLt6OKM`T2@e!Zlu|mi?GH%x8(+7%U5g1;Em< zA@OCRwUAh=+NBHto1-9^^w`g1h9hc#qS45DtxTB-%W^=T#uLesIa=-8xVGwF7@FCf zOhM3_sI^w_%^FMlUMx*PmDy{wgnkAth~Z@jsY(S*1>nLrTD%*XzldgK3_eWiz8!^= zU;@Xz%x#Y*D(Iz2XlwQV7|v!G+E<$bLN@vyvoby&&OrwPm0T@Xn(jO#8hc_{C_jU< zIqH8Te^d`PJLMvq5Q$_S=thneK>MnpFz^1M@loFgBogqq=dcRAEN_Nh7Dz1*KnZWo60$Qmqk=Bg=pZ?=VD!^5wp$ux@>qcyxBdS0klB3j$mR0Z z3zHiDmxOfOj1k~8d+6KTDJq!uJ;uk-4w>3udrFbG8&_D}j0q+w0rW7>xc1qwn6WKx zVI~KZNfDMwC`i7WG*=>)%z^Z!QmmB2_A7x?n$UWTGa;De=DNrRU^%*|98OIi?U~3V zRnwhxnBzR6X`Y0Kvz2;EEBp|2W3XhgSa)GCRr&Z146jr5{x?qKOt)hp$}E&ALA+bY z6YEdbgSh@&RJ+_>u)ZU(?f@VrTqf|TkLnT3|HwX!Nk3E4pnd)iq4_B^JDD&51A0JQ z)y)~hz}hdK?i&huW}sR^t#;fJVuCP3rGN?4=l)V(e|u^PLjtU9R+;q03W=H7)cr zdxP$7sYmNJLn{Mgo_Z^x@^i>FGa02xGPUKmwgfQvJ)QtnpKtF3?Hq{e50c-#J6J!i zJs?mLnhQOrG(W$!`YwTfay@BWRI|9Lrp=89UR@KOD-Locx8_t5G&E_P5JOQz8)7$k z+~>f!Jr?x3s~MzR0;l4^|75#M{(cYeDC`!C$J~AS;yBBEBstjLEA{aN`uuVDAK_3V z%fSUYF(ZjNDOOC$UJR8hsx;216s?H2UZfaServX7Y??!wZTVGG0!vQ-DIGJl^pyZy zQqFWye(R9-O{3(6!oP1R9WO5WLJ@R7kkD6dIl{Q-EtB6oTwsS=wabGWZx$Y3L_U(z=9-64Dj z3>!kU=OaD`Sm>wtL{8YeI|2JIkp+RvgiT;&-&;WMbNS6|On`lXbx2^s+Bv2QODud& zt5`*!`SE?YeN03#Y+6)xbzUwXQkuyQ)tCkktOsbbi~;_>1<>l(b!13LB`*sNKdF8i z3Z!^QMRYgy(SW|4+!6Y`B>Q-Kuj-rOv8LPA-Wk+ZD8zF2Wa;)s=iL<~%U>?;<`eMGS?;X_>(w^VEv_>UX0NW7~V^p%g5|N++T%#!lGqBuOy@}7#qjWW-3V= z2~u2q?D?aac+MgAj2vLVK`y4T`PFy$vrp^YiN(Vhu%Q9yYq+V zxsMe!JxQ*|qn+T^pEj<}HbLerEjxP_6GpYCm${*xz(AF`YNP_UHy!m$!v@wU7V|Gp zv(q?E#$2oKhWe+azFC;oe|wDyGO2_ zmue|MUbu4SwOTsTvzP*>4D;CKr!D28xfRhTN|H| zzp`}EEr^%ycy!vJlbRvm-+|6K&1db9Fbh2K3eD4v)N5-3S=1h0Qy4D#wSVdlOlGEb zJY=lmz5S1b)WrbAH%{0Js(P$%ALOdS(ci$@=K;~4w+6xAaZih$%AjY}SHBCe?Uy!* z-_6SQ9l_R-aE~qyJq%tmXZ2a)brR9EkxFrq(BYQ1uV61@HMxq^07F!@yl*ph+)Fax$(?GdB!uEfGC;{GL_mGZ0%9Ig z^fuO4>nhEf9g;5g-jF(ne6JhkpeRZ~sAGVufR`TXK)UGo|;oe>0temgJewD(c8eiB-(u z>%|=&2UIjS&4x@@pzKmY+|CxHfklY(k0>7fw(IM9v`p*Q0Ui1vK=t^4PqK9J_DWba zu>E2)1?F<=Q10r!&4g#??K?RVkWvxQNXp?V8=BiD>ca!%afe6-xzMrCbTSAa)xAGO z(=jQZCAE2sdW>WF$%2ln{f!s&%YU*t`|S@S5egi*EdOHfj}9pCaHn#HPMq$EkBM=jK`Berm{T@+75&%yeupTv8Tc*zoA`YlwPKYrkkUkR z0wGfqS6>wl%zN80W;U=usP=p8bJ}9piYS0SsaY)6%ha8Zk!z>mm_!N3zoFNoa`q)_ z@D5$MXTQg%=sWuJb@J4#HUkDEfna&IxCT%zFi->o^~ZL!!rAk>1kMYnkluKJ#p0gm zM;sAe0DUASgiUzmR|HS`Hktvv$TV-W5W5gVzA#=G*pN@$=@@2k-lbb&^~rW;U5=*a zGgv|_VB*1Doj$$$Zng^zU&})uz8urH1o_?v0(B=0ZTyDOZB27324*eTjmRzrk2F)d{LzKbI6vtNl)K6|;2gPrER=^uOvKukkC&~X>7YUGW{@fUj?UcwqI37erU&%S`|*Ngw5>Duj1h0rE=MVG9KzDu zn8aA%|A8;UhE4K4>HG~?^ScRbHE#_32eaYm}QBOXs zk*Mu^AmmZ2!;W^uW==#{Mxo`8-%+l0W$jqs0 zNd6I_+6L;YT71N+hNkKz_kg@`A}ntSb$3>jO+=-B%Wc;!b=iuChF!1|5FgEa7qHy} z#Wb!yQ}U$6MO)n5T{F=Q=qFM+>1z?~n-@~Qx0M0S4$2DgkurWb4i-Vu^#Pz$d`W3w z|C-M2Mg``qCd)Ft^=_bo38~UacHQrEc*w> z+!{R|bU8*ELD$+7W(@j!sIG#~>g)$4RM+7d3q`Z{|o56lY1zbhHBXh zBm8ArU}MNBQTGvQAF76pQ3)L{WqcaU<5*-f1eEc*^lUk@|F?G)VC<`%zYhbC;A-vD zetQy`k;!O-5vdyg4Z1-N`}!;BBPqF=miKOy{I+)2lY=So>R{nc^w21Y7L61O2?1O3 z96t5MM*W7X$hn>78}YsJ)>=SAo%+>*g(mzK1zY16?Ln@iWP$2`|1zYn)DId?jX^&^ zVlmTE|NQ)w7#E8-+&F+tOaQ+e>;6v{n2k<9<;!t8h0(=E_ zR1+tjh-i1W)$fldtwsG+1&@;TstyQIo|H311{>J@E<$%WuiGyr3n~CC=i&${~BbRoa=ue7KHbuWL*lf#z zd@))p00od<>%!6Ue#%66&AQroCi$gi*&_co(nYe$wRVvLeII+qkin4$w`E#h$4DZ^ zSEg^4(AC)FUD>H7?bg?QP;G0xr)%=kk3Te_1(;;fDgyNvRg@lFWD_+Px$9!W>wj+} zBObVwo6R7PcJ^KZmQZtV>r~TBf6DsTVljmwcpj&7)K!XyF1?+FSjT{FuT%Z3Z&40) z%H>$+egUWbVXh#eNfuoHzmv;4ZZXMT6W_d2 zo@}e=m+((@85Cna9BHYp`N|YHaZJ!zm|y4>YPuq3Dt=j{RooOB{WkUnNc4%>-RdHU z0dgF9fgj-_`>BqreRAqnTI2sDfC(@)sEqg0dP0jatWi?Qc*9}*C;`48LXq(OAI|ll z$Fs!xtu*jtNz6-giHrm8=Lw!azqSCEmt8K3Yz`3_GMAPakIY{}p%}*7b33UWD8vAQ z&zo|H7Of@O<6m(tK%?a!t8dzrgc zw2L%5yM?kk4C_90CYH$~Ovx^}tT!Jt3+337J^-pI)rQx~3_WDF#x%haVK|C{c0Y=E zuCg|Cf)k+wbgzhjYR_9`F~nK2KCOb;27Z6&sJs3VMxvpp3q~n?#h7*Hsc=#MNCB;Cgl3-z35{P7Gxkrcl73q1!*k$DA7}3E`afRTuQMquQvTp0WzfL_N%;lIAYNpf;_Glv4j!QRG+fI??rcFT>|WI{O95@1Ax_%hr`SAiSui0LxJA3)i+8`w?uo7W5Y$n#6^ zF7LwXo0QJjb~GlY~l0y#+-zSTIXL-bcWNr#%%)-+2@R-qc9p7MjP0|5(o z@mxGd^L8A5WYcryK?=}ZF*q@fFhRw#U5ex0X z#8rN7aB>2)B-;$Y)F=tOXgm0`KMAcBQKxwhfMwh84fR z3Ra+_%uU}TFrgoRIuYSzKWIwnldtJAeKB%su;YWKrUdB6vyjB#YMwKEl*DNWCaC`o z06Rb_`b!Z9R3?#AZDFh8g&NKkq~TF}9Mzfa8N(&$Sp&Ilez)rtUROn#?bcRPf92-( z|IJ!z5gtyi1#iuYWLV6)Rj`5WVfTw{U2}hkz@!0&v4?}vZSW~R(xYp7YF1cZ)NVBg zj-!(wuKW@iLheA{$94eC%d-WdO$#h+Q4Yn>e6JZZ^cV_J!4YH#a)HV(YH@Vt1?x|u zoiCmg9}ywNfX0X5p9?Dq{2vT=q{SPeJ}D_GLb$$i(<82qC)-k>C(|Vjn_J3~nx55l zYkX+SU$~m-HFC~!F=AqO8aR)cVlLh>)@0%{H|?r=g*K}wQs4tY-eOY(slA9(upQyc z09F6*3Y(G^av6;iw0D0k6LF9ij-Xlm<={@A!e&B=BiOX$GvpqZVA`DO?N?4aO0`d&2PKaSIA*{2GBd=#f&Pw* zV!L1ukRPr_torWC&|eo>dQKJlzlhyXgh$bD5-9n}oC08%EkWojo8V191;Bw}$~n4e zu6_8?@hM0VA>)DyMBD~K1PPIT&Ai{_!Jv<%6jL{CVcxqkADI}ObRTm)f=oT?2mE zHs1kCUm`mEVGy}wVcKhI35=tAYFW*GqM_!xRCntn_Sb^mz1`jYr-EMArO{jxX5#B# ztUW*b{i3a@yP<}|I9?2bDORc(vyvgg)!d=3bqH-j444+NwF>gDK8<*>;Upo06EF;A zE94rPq90xeCQ3pCUCQ1NWYvx&?)5|T3yTk*G$EUA>6c%0rRQva{9WP_D;OITp(9&a z_FCIX@7JYSy)y&VH zRYGxjUZcV@&cE%-eOwi6kqyBZ#hGpD&a+YO{sw6Nz%(D2j{K~( zR}*S0|55*4D);D{7x;W^`!%-*3FwS@Lz8tUcrtoC?s&0&k3iYWl2t0Le~4Pjpp4*> zrZ=fid=FaWc7NLdmC)pfi6CIO7!cKLf?;pe7erD z-fGrhD_#wmN6v23EFHJ6q~()8*c!%yoY0~gfT0qB(E2n9n9dQj;cwZopstI%=}V* z-B0o(437k$p`2B)EWccG$VhTC!U(X&7R`@iCvGJcbWZEFZ-YMSUFYfErByO6yaPWu za5Ue&9AbI_t^aI=mH6v{ScBd{T64sPN6aPy9gGMgBl6os8eohPGkJn;z)|8n{h8t5 zNkz?)PQ(nBlM`3SYcg{JdTwgGK-2x|B(KPtKG%nq4j1A#n=hobRu*vl;6chqk483A7O)>DONX7=Qn0Krq=@cLc04iAMn1rI*f9d z6`JOZ_m|us>0l-${{y-B**vkKNZat14|M6A`u%LYd06jcUK=?6{-&e_k?f_=&`o8L zYjk$;9XEWcBE$5uY1|XJF7hb3DbyVh5ZZAY4R3&D zC;@aokYp5iCXRB+H_~nSTl50V3GfSuZL}nR#&qH@WJ=DQ3NRwBs`==3!p2K#28`?G z&j1mT1+t4%4q}vdn#%Nn%4}1*tZrVL*?%{poah!hEo{@&pon)PDDZ{lgi~v zT7o~mz4;co9TGympHSfrCkFQ_!kB|i=RDz|f9ym7vG7yX9O&;*>C1aY!Tg#5$>C-Z zk!fU`RJKzA>ezok|F|S=O%KLcoHET)UCXWOmaE0o+cv=-ZY3zKyq}Ui*8Y)&|5V3NleQXA95ho7IcRlt-Z%)t!C^4edE|0S95!AZWG~O>l2}(KwW-|s+Ud5Q&xG8IS zl)O5mPZa8+k8ye62t7M%fgQQH}Xnubc}JPC?V2!pnd_}z#u+a*sxbq%{tf)d@dal9#OAcF}4LF z{CW_fxs<7Xg+z@efq2%W=*_qmH}(kys{3)d}#pwRd zP89zwuyJ7o>b7J1DwCQ$Rr&?hD>7$|9pf9V!V8J+EEixqKzjLv$VJz7H*WKLRECZ- zqeW2GpOv>EoC2>*B^mT~lkw;zDgqCQkl>#o=fG1=eAQMe8U9$4NEr9*Al~zUF0p*_ zkHCY{J!)fmKk*;ifVCafhUFvW#!`784l$h>Z^ycaqfR`;`v$9Yo1?e}=wwI=;Y9w? zC?s;zZOLp94*VFpGMOYN;VNcHmj1{qry+%&NO0Xjq2NO0t){?JTnK<*6@UH(`(J-J zzO-+dBh^AwCbM;v;9zm<(;39?XwVDuvgvJK&BB84<$i5$G40N})%+cKKJJiYU!_94 z#%JC_r1Vm10Q%^xVBmJ=sPF|H+TZN z0HxAg%N4il@{>_tEUT}V#xE%g+92;3qMU|$!}d+y0b4R33bzr?B6xn7hSwNNs2`wQ zio3iA!*uEy4pVwb%J*qmWLjpPYT+*|UeCYstOi}rl|I5n{pE>I{FW)F`wFddM8_({ zE7HVVIKw-edc$cz)tFh3O{}Kq`ho&kGD4#k;Ht3KdKkONKxEe$SfN57cOCsxJ(O=} zLL?Ou{0$29IPqFh#XmFJK*E{RhvLrPt1P~mt$$~oX1YJ}nZHd;j}eg*^=VJ2vuHHpjO~S)KK{ zO8t3(v2M-+rZF&uiQk2($K$I!%Ypv&Wpl|xORsBYxaUDf0+{oam5gG*PH13+W*1Ho z({>1JeAo{b>&Dm_qTGQ19s0!X#*}#~k!AcgI85qQU#3~_$TyR6QTd2}!@n9J90}s5 zL=S;m%${sa-p_mBHr4@xVuB2gB&?6kPUl`~`sf^ygVSo(^C!l&H@&b0_a{N`fjlzR zP2|-IDZ<6HWvq8ke-P8DHCw-Y%?m_6y2Dl+AtqR~_Yyc*pp!~;2gj%90{mJ~eKqET z%R^!wH>{OYlz)BU4KlLVkQS3Z+WWHt`h8q9{KuF4=4xTise5-18F%S4z0qCT5~aF< ziD!wMQXwPbPk3*%e7XsbX03vxC@vM?G=FUH?Tad5+8<}$o*sy73L6-Rq7ym0gt79 zx?k1L?uyc{ar1kWAG*!HW1Lq2dP>Xs(y;G8jYJV(6lFfH!0;*SlLhjxwyW1VznZ|5 zg@d^MpDFwcx)ac~KHh_us3XVWDg-8r-sm<7FJE-opvl|j0!J<^F;-D|!A1|$a2Kkr z#CY3=f+Z22Wr1v_PQh6QDWQn3gC${PTHV3MbDa1h@a-OHxbARMpcm%V&fO@AUieN5 zp{a*eHe`#{c9V(PG>)z>sEIn~6j-l9=HwkWVH0)_?=;VkeI_T~70$g=7bFA}N@ z-0Q9~53C}G*%&!$;t0qKX#Rn2C{!UPWh?1IF;z2?Np~KPlQeTG(NP{0DCQQcwl6{0 zsubP#u^Gi9usX+IIchEr%mKHXC1b`j#q%zdiwtXs#Hw9aEY`49PIj}GJx^za|6w~} z>=zS;lnxmG5KuHqEyc3=_n3esNE{~xV@l6;ACpqv29;%5EKZ5wss24*1M(0UW${a3 z3&B3Vh4@|jU}Cf~&zb1EGQe*8=OnTc%a#@Nv--OfAGEZ)T;L8#m-AY{-G0f2aO$G`Rr(JckJu^Rv9#-8>;m&&SZL^o!#U=LgsLaP ze2F_xKu`(g8$|ncS-C50r$y6YH#3Jm)cg5w_TVz<dA;QBrQ-3A0}`oGl9aC7PK@KM}BCSs-bdGh(mIP*ST};QYOp zE^LN5;GmP|n2dk?59s~sT(SIpeR+h#;qyXYK&cCbT`|zmp!BBu#bA#$%4_W)%6k38rvV91pwJG{q*pkESC{A)ug zLSKEEhr?%jrKzYF9lu5WGO&2v4ZA&yviWppRb}SBS+qXL(^DA0?tcWv&o2Zsg2J~i zcE1)6N%adu9{p?>2vpy6-HoPkvI1Sfmf(-N1Z!m2kF|_Ts{BGWhVuHUeo@e0W?FGp z!tFwSvGjM=Pw2Ev_}uZRTc*t03^2{^4} zaJ)SNXxg%gGAO*!Vk@!4nn1F*!e zv&9uz&RMMVZbn@>Za(>Ri*_cK=|PJxI`?TN48ZRiTWlK3MDKCkKb4LdvT{YHzt_U= zdduig%6B_PO+c?CW)i?5$@ienMMiC!*8X_R_Qn33MES8D{5x2Xgwa!!M~)8Pm`JDf zQ#jHhS}r#bQ2H!kC0h)lpW;$736IFYpA5}H|L60cw$q8MRfd;CZ`1W z9Q2^+`~<$n%_|(RLH})@joN;wixDGnOP>jX*2P=9mVV&l+>a&dxACE;RSXoKK5@Dm zCIo8V9P|xU{$$A5Faqd*^?2$Tgv3Oz2D3^A?PUs$1Z*34n!1WrcG@Ioi7MV6G0}OF z6~Q#}??%%$G0{v$fPd@N{1Ve;Mb17n*>q2}5J@OZ$kE!vka7hruIMM|Dn*~F&BGwg z{ZA?Z;LnFKk{cAf7@ znat30b<2j{^RMx5ahOEake5r-0O-^}@(RJ^19-fL?m?|`^G^!~2< zZRgRcwR>I6qm=TLKlykwnNJ#J0qWkx(u;vQmbUL&d3_>hJNUsfLbvGH7L(qRb2I(@ zpikpc;n{Oc1c$MBx*AA0sF!_({)v*LQxVGC?12oMC%`D?+p^aCw;MlxKuoxxpRWOM zG)svvMQ}-L_!8j4NyV0=p<;7vf}h-~LQmxdVNVVE!iQma=B=^O(mKVN$J(2-j#!MM z5%fl6y-1>dInEsU@IP)DOD7B#JV<}+v86*U0|lHij&JwzPd~vTdk6#gE0VCGwI{(3 zC}RFL54Z1vuGtGM0FI?F$G}et(VG6XQDn$$d(w)gong-?E<9)U#9*zsxK?v3-wNW) ztsBy*4Zs8X87twtKQ&NF9E)v*C8vs-gCQp|SW+P)Cft1KZEiqUu$8eKHk#S0^Bpj6 zZfsmx&Lx`bV2a+T(`M`uqDm~mhsM-?tff2a@?;cO@D-P~035tENOkqis@!2y-`&AR zT-Mm~)*TG2=&6YW;H}a?9}#WIe@U8l)Wid;(SGPDsvp!$`9fes;sO^DCM4U81npx? z=p2Lnjj;C#N-*6eIL{C`E!@z;tWcD_5D!dgq{R8l|C6q1HBayAxq|bkk?vJuBcTf&H6gSrqk3sa@x47 zeZxgx9YlE_@AW(4)e~I%ILHT6$S?qyKJ|^~p8^*-d=ACD=0wpU=s9>q{FN7`LsWV@ z)>{Gk$pyO+h^avA)upTkWo>*t^7VqIM@ucJZsxLgOMqzu7KeJuK;R5{kP9JI_}eUN zF>wA-uWrkq&Vy0Hb&W0mA%mP3!i&n-Nzp|r5G>jq13CinfhiZ`42JryqSB8m&O`p^ zEs)?U(lm^IQ>&nK<;}XuK3%0t{0E`Fr?pHPg#!&xOuMQ&gpo!kT9Z2FPEds7X>1^W z^zXyW(UY5Hs~+^PIy|!av%Y=85I)I9dzf*)rXP-X_5wzQ_m8;!U!==ZSRDhs!^sa6y@FSb!l}#M|y;bLO!vmo(`|auhGCBGhfh;LFF8)b+6+=)`qkgG4ag8Eh_) z&o{e`$=?*!QIfFmo`0>;8$DOc?w&QIr!3;g0MpdrX;C5bRnHLk$zge6dP?Bnq;Ec) zR#y-g_WgHdHu3zS_sMOeQ3&X6RVh*xIa-Kn3sw!u&ee9BFtz4*M03mP|EBg@(KfIC z9HaJp_E3N2VdD~U^wMZq)&oMQWMbEmBia-%4N(JY65n@V8ki4{+;r=n+>lEGEkTDq z&N3b>i|(Jpx|m@B+{PGeE6ymtWmvp_k-P~)S&aaN8!^MU5a$z!0;@vN!AQ}-9Jv7( z$I5_zqew&v>)?i`a@+8JFurjbT**jb>FEh(r}d^bF%EZWQLOS_XQB4r5d~ zQPYIL&>^kvv8g~m9xr_xn#Ir}?e=|ixKBx6?~!PzrtK~0Uv)47%C06}#X-OS~O@J{T<&&)vqJN4;XkI&^u=C{w zLf4s48#c6R?=OoF=$I>%jdux;m?=yn)rHGHe;~I?e%$e};;&+4NH{c#;UDESk|G5i z5-wc@tv)!wHHR6fC?g#1!TS~sr5Qxq69Q2bWz?I$c$U_+gTT7s#I+52B{6w8r8)GW zj`nkJD%<*=$-)(;wEkM~%df5ZSXdm_MbF>vd8bZ=mSB1*m`yApser%k1dfdBZ+v7= zdF9VnjVZ1#5vKvMQqs?4>p`Y)pl9Po^&aA-WDPW%Kt!OiN_@LjCGMAT6sn3+)LY1J zjvs4i8~h7DSYdGaaGE%rIr!)S_>P+n4Y7YLl`WwZeQ{4q^u5_&_M;PsD(bNJc{KnX z?B!U8@(^k@e~QJQ2F)ko#2OvQ-*Ib z3WS?p0$?zZDdRX1HFA`MPJY>l?AR1tjx_NV_^?iqF?ysBOnil2k{~f4Fb$cJa8G1! zwIAIk@H;dH{fWP9GyKAm4M{n@@}*t5{2{3}CT?UVLwKtaJmsiT4{XP+;ltK0=1Rng z4RK$0{shXplu?|Cv?iB>%}qo!ui?p)f6=D!7MBIXeU7Jkf_`#^9_OsXsb3v5dg(P! z_2G@=?=d^NXvBK6CMOrjO7@%ashppziCVHN&LBP}KBrRwXp=l*F8Hdc^?5t_GLpXL zvqCJ}ivBy*3|AGNr7L-KIu))wMDWgI*p7JJnhc0&y(=eqF6^r7qBSwD=bmwsxqt z3p&%5Q2!uKJk?N+Z#AeaDDb-fj66}0AvuA$^EJM*4TJQB)^Ufcu8L6|J4}?rw-7}i z&tU{vL=(z^mX9Cyrep|A@ayi0N<_?^pDE~f&}P`xzCFI zwq6ii`)2wx66P(GJrLQhE&7()9b?@N@siye0jeb%Uf!n7>Crxsh%tWU}z`I??bBYUv(5~0rDzt1QA^>qz2VGZtcy!F{~r#xiC== zU>q`?*^!vOom$mdVxNsgLMIM5n`7@>i$ruCcEm}pFLB1ae;sw8iJ=5`Dy@JadaTii zBfY;G(u~CPWMa(IIF<|z4GNBR=vQbk75bnzU-)iKouu7rgNSSWZ*C-p|CH;i-!`4R z!9e{;lKE*&Pxb7DBo;;}jpaaX8pph>3@`$RpGceno~4)+R7EqFM=Oav{tw?KkA<3m zqzyyRyFS^E*=mwV4}r}bgrj`T?yt1knh=@R?Y5C+)j!T1pxf46NxQKiM{Z&RhuK9A zZKr|uVE3_mNuu0g!;92sntV9b_2~{HrGFz8bt8xsy`W!<)n8XxSk3#bSAp)fejKRT zg$#1&JlMlky0xcWIr7;mU5GJZAGr*%3WAVm3rkrtV7)+Z>PH@Rz@RnXmG1Y+DV4V? zlb>4KzwO-fXr7E?LI109Y=xC9NGKQtA09t`y5CSzLY|uZO8-ZSyoDbq`l>Qmc%`6B zye8~Np2sA}Cm;;?E!T}K^RvTHY(-R0OM8$KYWhI4h74I1V(qc#8-tz;6EYBGG)VE- z$QedBhT8s91lI&--Mg3s8XN9#AJ492Xlg z4XW%F@?ab2=|&T;GheV_!ICRXu_fLQN~*KVLSV=d z%Q$UsOA`eh-d;RoxTP&vz^`l#Fs@f3;jNmot9#K7l=>d2m7W;g;tObGk1RhMClp{= zAGTuM1F~k=vsxv-&ER1hW=pgbB!_v52**uHy@1Rc&*smGH zY%viyA|l4fu%dS5beu9A0?qB6f^CVXzME!Df|RA!=;UyiKe>#&Sr~?aZn;vv-S3L@ zaPAd%sZg_6g%yfa`%-A4(c5@&e7m4Kpu~qX9(EKI_s--MCnd+gjdz*b_Y!3eCQ|c# zE@}C2a*ARM)0>?fwO~dk3EHv7`T}U4DNG12fo%SBkKbzrznNX+HPCh3xFo6?xnzBi zfbP6s;AwEm7>DS(RJyQH3zn=K1F5OkIS>!8=1^}<(kx6H-vKTEhYkEmTc#e~#?Gt{ zxZ~Rpr{0(~2p$WW*>nx4Q?xy;BKFj0js#0%{TDb3I@lZ2LyiSM8cMzQaYOCI=5ghl z_*9f>TU1=fWOGa~tj>6XX@XPzHSJZpdCkkRWdx9>Sn!K^MAtn%DJga6xl=6jt)?1^ zE{Y^7*}K$Wf}XeNPvl&H;p!@sgikuf)}A4IHYG@w=r9t^H;2jOZmDtI;kk)eC4O48~{??Ec)V7qNl|oj(@G#LsgGh+o=7 z#pFkCg+#gy4fcJcJY#;*Y2*dNsNNH{`sdq>Xo~>|4iS+>o&bMF%y8Jscu}-}S(51S zK)>UO^CQvhTLy@88uDTQpgaBg%=&2exgsfRDZf*Cq2w9FnR+z}gZ;{0ZQZU|Mz(yo zW7X2omLB{PZiiqznz$+tAQP(heUhiinIG|4;T*-=TGyWs(bB7ZFBmMgUh``P9S9_D zwTw5zfol(UWWawm)3r@fk{|K^K-;V{e*E*|M*}&)x?l4xDU;WM(1QPP5(VIR3`;ue z*TEOFkfm8$kRur(dK#0%3NWF0M)>oGfDUx9_duZ^W~gV>b;*-wKVjRoUXfFC6f*zi z{j{E@@YepP(f1oTydZ&yrlacL=HtcZz;P7B^T_}N)U~f|qwjv3!S}3IJE}ZA`WC&$ zV6`dGIf>e1bd)NrFOKE%h5!-d94{1nU-Psf@ z@GmgLVukyW6fIxkgv+ZPevf?LsSlku9x~N1X{8awdxov9~ zHy}eTF_F=lhdu>5ClOm)gLl@p^Jj!-)`?R0mlMfM_r3D`d<@jv*A0ZKDwMPzTyklD zvj2IQ#%KkN{nZ03r%%(QFil!c;nho)|3GA?t7)aSd0#`wvodI?t^5OB6|vcKmT)Lk z-djZ7gJ9|HS&J)c>vKN-N~z9zpy7f}12S%6G)2qcTPEA?V?u8oTUeV8t>YWyzWD*V?{aglYMWYUAGw4Fp5DN|{Iee0^P zy~Negy+Z)b5)}$er|!eIu)b43nN5KuI>A%;P`c1*k7}sFS8sAx;X`BgG{1SnQ1J-ogfnhfLWZq3A~e%y`s&Scyp0_hlF z*Bf@C6%-I(WUUN;JGix-_sG%sUiyAku&lU&ZuuXF6rP48uXB6)IAfD-v)3l0Z>Bpg3IV+knpl_#WaN*vM zb`%LRjcNM{$w2j2S)G}=B>M3lXsgkr1E<8T6U1>bgnssv1YaYz%B^x>Uw9xg`C?Q^ za6B|;{E1cl{?W-oBl_1k(myE5Y^X5M0sUe5(d)Ts^}#YNI$_iu0{nc=)=T{bA~8OM z2SFa=!IlUSk*nIQva>%q7L<5IAHW&?Ys*oKqbt4HQ{#7LGXD?GVU{u1EEyGK#CrW% z(DhuQ!gK+DR$3C5atO2y>ZTOP&jntFE35csQ;tmq4~kX$Pz3tO@X@^Dvl%kKyS@Ge zLhf62$D;qJ6}H0loeY~(`xW6W>&A`P$oDu4jv_{bepbu6>JjpI?$gqhNVte|F$e!n z&PC9@aicywz=>6mvmikXmAZjwrS4t9JW^d2#|8HLpR!=6@5gu@b4~_L>;3OBWue2y z2CP^X$}teTK^Gb2)iP2fTRHEe^2TiF$^;9O;{Ybi3O-2NkBi~EFO@R0v3i42s3`Po zhxK}rA}`255{cQ5%0~mE*BcUKdV9D%Z4F>dsyp_ZdMi`?-}8IWyFP}_RSDa-y3>4; z#Y-Pd0~NZ-Wlqcp2Ci-5f84ti(Q+XUW^I?6@v5A`Ttbapft z!0ip4DV~l3dEqK_ z?M>S|ap{BP%VP?`#=<20%cx})j~Vgr2%G4|9KEITJ9C?BebN^^$OV9)z%am3p2#2X zsH+9DApMHh26n1hK$7oBboGuaU8Ks+;SV|jX$#9)F z=-{|O<1jBS98ae6r=Lqw+B3OoBfP5sMvu>qr=RcIT%Q>(5Jkrf?cn?{-khwEe;)l8 z^5OvWmZEpwBS*^%O!&g&g2ezql2M7~O#AsKhscpD=@Z$RyFgM8*1{LL?86N>v18Ay zV?ew8#uKd#?Im2`&V#^ts-$GaF0vE2eL;sl#yc2Si62J$ zeWN(R@?U#jfCl@Y*a*ad>`Ogb#2C=2lSxm1z59_7nh~q}$}kcE6=q4Loex~#pcT$6 zFg3swu_2C%kY^t4{Dh9722FwuqABs*SI#Mk%nBOWJC2ET&&fiF< zYFdNKq<*w(oH7Fmbwnr3rGV_{3Znu^w?~g`Rr+R;c>q&F#05a>_VmjLh1bt zX)jyD=UmLiM7AG=A~6%H(UNZ0ytWWq$rqr90M><9|K-*f%cXO}H=^Xjr~PgDv!CWt zOgm-iFM(+muTR#^B!2OaYL`iu$PtI|*i?YFkQU#~merpZ`W`S+b?}AU#W%Em{A8*> z{d1p?1bR+e5j`HUEz`rBEgDBJ;*Bm-2Fj_ZU(5CAZLuu)i@!{EJf9y0lK;nW9oRdE zOb`??@U`hTuI@UGty9bFedL-+gF4sO@&FDpCB-tl5zHe2w35QKY?|M_bMTu zaRpIv6kB^_m`v{vr2Cg%hVl;=ORwsU6VgBnqRNu@v?~ zgE>704DTI>k>Rio$yja5Ul(4QI`)huIv`{0Reo#_*n&eO@9X1uKm*BcZhPp*j*ciV zTc}GgD}}#X&3FhzU^>zIJdx|*ia|fCcU`j8*%@>guP~3hQHsHe%NWIOztB`gV+4s( zCqF#h&eQ&^=>An4izAb|f=tK{AS^4J2xT76K`s_`SY*>6go!l0bRk`{5rv|P*3RRB zjxv+{occ(HYW6k}?~L2>qMJOws{Bbn`YIXA`nL{zl|}P&7jl=0$tDrv8NO^EY8-f+ z*P~`VWa3niBe;3O`HJ=WboJI#ZMoY(vEwEhe+v42+gt#@!652UN6WtcZOM(t zwluijD6JU@x+`(o7|4|ocmMvjKJ zio2Q(Y#i_t^Lrr77i&}sx;*p7U?UAmmvJ(|wKTjcLkQv|M9}3JIXq!PiOMSA;bJMC znc91M<2F;jUs^buGZ>*iuhNO z95R%P2nj`!_Y{An1P%gGVbY7X4ZA-Tj=^gzkx5v$0=Q+Vo7&hbHAS&3IY2)^{H=n7 zlB98;FTjkmB+<+SEk_&Wb_6zfKhEIos&7v z9Zb4!jWLu`|C+tiOJJMdi*FPsP&nNaRc8LQoxybx_aNG+`h%mytxP|! z0<5?#p)*WX36|-Mi4o`Pa*IYyAY_KY1&th^h~w>p?#dp&ui#;${ro!hr1IwRLy!9P zj1NM$a~rE^B>3N8NQ=lm1gca$+qWSiugSdx?{R2g;~7)U8+z}Dpbbz}#@2vyCLlUa=V!xx)k8VOiU)~MWed8{W-BYu~ z8&xi?uXOcHdVgar65!as_3mV1#H1iRMkP<1N}jHju9cl4sN#?7e%H%a(67Z}s%)>f z2tep7ND`V7(A}$xBQ_nv`yNSBFhqT+GqDT9I zZbZ^z`Xxas@d?X7YAm4hTdkVz-=~Ws)1uk_!@om2Rx9n(4wALQEWK0TGFRC{bB=ld zHEv-}*WC3!^4?!rRMa{TBLAqnYe~jv{MLwW0VmM?xdPLuSymB|w#o##&qLv*Lc!vY z&-UiejLK+@ZY@(n@d_*z>Dt2X?3>rz8hFuAYJsVS5PA${Q~`@J$^6A4<&Vwo2KN30 z+PQGV(Ggn{(BE-B@A|d`eNGL*-_uqXEht3_JrXDFJe`DhSZ$Bmhl7vcKxks(PtR z`mzj!Ps4LKtTYAu1d7EnwyKkeiAIIN9ldbI0LxOuA~P)ezS>4nDlb2BPB?#7P)gSB zVuq9O0Kf%$eeBD;QBNQFV}st0E(nTK0$OqNWvf`7Z9vGfw$59U8i|Db-NT^_Yy5b3 zx4Mu61syoJPE_^!-Nmx>RbxDLHZd!x5A=!aeC2QfxRddNfsZ5z z6*&)H4Xq9%orWkfZ+%45yuHt_K5>H-=)82eSFiP8SnAUo0A1KOKTSTkcd3JnYk1x$ z9Zw9o?@@)$YkQZ4qy!$I8<7MyDl`DZij1RQ{G#Qo=Stj7cn=w^YlA$G^HYRi@8>8D zWT1b9d0RIA0mtB7=tKtMmF}MAwTyk+Uj3b?PG7$);Oa-W5!{OY+C~V<6HNsj&<`29 zv5MI@Q&htALIkSnEV5d9fH7!)?Qv`rmhcpwq^y3{OZRYNC>gI~`@_tf3DigC!!{7K z3OlNB#xNN!p^h*rj7?7Sq8Cl_RRcE?pqDT|z?`!96`+FE2k#L#x+XV=kGt^S3uR-W zel14Siords6B@nuLI^pn>--S3ROSM*lcAG@+-8b%o;lcOcQJq48N{5c@`H`o z6d)5}=%9kMF2#_=lK&li@aMydj#xYp%B=Y9Ix^>{pWol=X(7mvWfL^qnzD^{!T6G}S zLY%npUA<%Uo0lY*;AIdnm)5~HTd3_Rn|&Wto391iZ5@wk_QaLpf4P@ zA9bcXKS1^GkFe4}e}rSjceTS=RugsBitjywJlST^a@Fp~DW$oR-Lo0gJ=Q?9IZ0Cu z(S25n+pp^|TN1Qwo^eB=*4nafgVo$aEuhay_~;z8Z6oQ>FLzS6Ubiy1Y~&5vB-Tfw z^AqZRoSR!X?s=XmcKVGC@1SW7@NWxh0X|*|Ic^&EU&*tRDk7&Wo1b$}7U)su+^h+G zKEL~eZZ_kusQdxFDRlfpk&$45FD#O|sWNQI)t1K_{Zj|^^dTk9SasIF#JOPqHpUFz zgw6!`of=LtjSK%KG$-p?zOL2#)%o&WO1V%ZD7&19!4q^PYLbE(e+*?6_x=z9*y>_W zBhFWdV0gzs7)5gX>{J!;Yiz0x0||uRsbZh$Hs8{ToB?{esTm?e1rM}6{YCVW*g3%+ z1e&x5e#BMLkQ|(!iJ-&Vr^Eckf6CmCO`o)KWEKwfPXW{=MmbUp9J@ujkQX(J%trR~ zmIEe0|dYs>Pc_`z*uLQU~;cT`|6DDrfGhbc)sKMt`{RQHysCFvrb`W|NqpRMrEJ^l+Cp)t!o`^e-kO zvW5=NN(0chQ_Xjmydcv4aY%m@W#pL!yX*nE)fFC^fS8j(l0uHu2xOA8%^I1%ED>)> zX|JSb=73Jd@Jyd{>!WM534w-g{MPp`2I3w!>i*AS%SYFlHK5;4?#0iq?kbUQg&roURtim{rzIaSa7`eNt@d45HZn}uj@!$$TM(7-Xr6L?1Ud^m_Ikh1HeNt1*y4IygJ)7Bi789$GIJb=~=5)DtaIqnEN(oK$_1Su^ zf$DB|vR_n2CyqJYJ{MRjpT~x|yYU~l7-QmoAQF5W`G|QksC?2yvm`wD0y^djNs-ZK z;fzPmE47yqO}fqNt;KyS2`qSb*^^2zF%d&eDHeOvkzb-A*ww1TtMwLR)0Yk=w?1saU+~L+2;nGP4zo*yqjrZ2sb}OC!^mYxg!G`ct5nsg?+y} zr4}(z0did7%pE5)3%YCDCn-kUT>&g@c)Bnn>(ug`Oo7r4>nhI`#(CsXE_}oL%Z&sB z(4V*|ghSvskI`FFS)yqn{q7yS_nC}LCNhEv6=1i-nn?ol^qMq=QY>Pd4e!vb9f$xf z^Ot2-I#>{8GSf17V0aR@qZsogdGGdN4&7`ZUd})tS7>9=a8Ev^64y#pVtgBaYdQsk zV;O;4PhG@}@jxQUHFoJd6Nx2Ngpz*fLoU#}SHkdY{Y4b_2F$?vA865^X!`Pl#;qQ% zAId)?2N|3Ln?z^V3v};67a5hK-%8c%(>+a6$gx8n*2nH$bTCLtZX@O}Bn8mS=Shp6 zD!}@=(nwV3w4D%-$SDI|{w&^qNoIY0Et)C@m&CiOe>1l<(<6}AZ}99CkAW@-O|EIs zCk@Lq0|!%9?$q*$(vP;Qam^HF=4)kH2og+_hs?CoZQa{o{)#Y~Em3-d29zF>$$iDa z4h+~&+P4>Os0GBYc{xYzs`{%>;EJ$8XWAOQ3p4XGMo(?nYqD1vs4-;dl}rSQ9J6>y z`b|$Vu8Q!nL><(M%*8|BUdJKt3e=(c4=^_0 zb(Ps+$et(R3I>cXUmh89UUl%GZG>iyZoK_rw$cLXHser)myZZM3cTtgVEMne5~qlG zhx!^U4tWs~Wr41}E!7mJX1L{5RSPK|)(@c19f*7mhKjLyVXE^xdKI3 zLLtQ+nKePj(knR*nQ&N-i%j-M`d!luBrzN~f) zG>@d*>fyq{=BKJ>=4V96*&q3eDE#Lti^qr7MK`5^K>ZbX-s200jG&@!eH$KK=>L8< zi};Hd|Hc;;tq45_^xA1*@X`;)&n47P>|{XpmOxjIFx=iXe>C||_Sv;rc3m%jb-KB$ zQ_*OUJ;Owd%PUYLdY~(=PM7FpFWhe2&3dufSl{{lO;>sJ?3Pz^4|E_9L{-F9c3UN| z`{(%UPvRgvGIl=_j%gAAEzyg+re3vwk_r0}%w+EJ&5h?gojSA;*e@_ja*QI4PnQol z>#T(dkQf=o9z$b zvnlGDKxt>Oo_Bp>#DMMLk8glvoYJk3)~oct;rcRCX!S56BxX3(b^Bh$d6lnhO`zw( z6n-T7fE7X#BJ&09_(eXP>#AzpmS3r>_Gx~f)V2br*1hiQb$705q=*YMjCai?i?o-dB#QK|xA! zR!B)S2D;XAFYIo9;BIZwlwpKI{hObh@3QEN>HWu_r~CZ^bT-vLcetf`?}b>rIFDp? zb^F3Z_+k|m#&7oQUWHwMJ;o_kwWW>u^kRpEZ@7i=7)=AvCwI(P&{*8bJIx}_&e zwB;3C^|#2odDK+63k98%$jvF)voW9e$A*@A;8_U`U$IbSZ2K;SeR}&VkAF1JroVN| z_hjju03Q6JMw*8q5^%)1q^|M}#zBsFi_eAG7LRg4}7bcLRFYC&6Jru%W)vGbw!8bxe=MvLIHy zsepw+<~6sU33H=jRRaB)dbsUCv5+#yPa(+R2f%-aEM@V?+Ps8g`p7}*$0HVxy4#~L zKkF+_QZSnfx_@W=n0bv17E-uXe&$38fCzCI?T#|?}7NN$5NjL&JiizsSC=* zySg+*8oHm5UvK+9Fj^{r2(T=J!s8n`OUy8H4Ox5J*&zm-FPQq>a~BeiSAReseD>#5 zY441Gqf;I9SCz*<%pJxIY7fxsB>an2v4GikL20Uv3PHOguaF?B`BOGnMGNrfanO>A z-;${xb@<7UHBsNn@5g=$DB@wP=3q;cMr>QQ(cGfV4<|x4XB?R@ zZuTjGu0-wd0jt?i82yq>tGegrmrY=L`7mAYaPNw-m}T_cv%fos4!k!llS7=uXr+4+qE;c|S6|JIB34Rd;?92#75Eknz}oLW6P!-&%r;AwE^p?3&ALAA zUT{F@H~%5Z?}eubdI>|Ooh3Su*RIKu=R!H3Zz1nit>BQTsy+AbYq{xHc=4}$PmDiv z9p*i_ihn=`tvLfbpYb^VN7*%K*VV1j9ox3i7>(W7Xw+DZZQHi3#x@!>wr$&Lk|y^) z!ug+IjeW*GYtL_f6YFQ%{J0NzKZj}wg{l$@>D=0oo~(u*q?OrcKt8x`a$xv=<+Q-X z4VFW)!eqc{_7~4AA zE`4yIKjOS2pfzdmj=J$QF9>uFBxZg;YcvSbphMh~B7W5S<6?Qt>l^Lq(xfii-X=V0 z$+;2URegE(H~%&^zni~^YJdyJkw6o11%p<<-z-*|qPghLvwv*At@5|`NmIg3KzD|u zb@{)&KiQGN8b35E2!$dcvm?{;kG))#b;=?lsaC9s63iG8r(nRzJVJ731gM7q_F?-< zkE|t|DUUDuTi*ugv6ZznMqIF*5}138MR{1s zchAb3y$P1Gg{jH}H1Nya?TectTjSk&+E|j@?bD7eAxePL8s58`*ePV+cY3a&Nw4A4 z_ga%! z@N4VSZQa;Yj$7V%AUIShEFJcrYRaV@#>L2FYfzhNVT!kpL{xJ?Y+^X*X;lqN=xJWY zZq*qwKbg4CvysU==_nSDkj4H?y<<4=&S5#4O5Gnq{p@_;7Pqy6}1*s(F#GzW-u(!OLehs+- ziYoqX2v7wzhx1odDwFAn0T#CEgyBCQtu|yEo~}Tr6yt~TdVgbhM%8L{eNw=g{Gt;Y zV!aLPx+iE@fh$3l;jLLu`Ia;)39s|2kp6zE>jq-=aJ%}X4 zdgrl-(OmNopK5h`cs|fFc%a{0yhq!%-QF)m9`M4)IyrZTe!M?!KEy`LBoH?^EMw z4r6EbF4q#ELwwrxWqK#o#gc;U(E3QT7<5W8U9&4?_wx{*DL+FMD8t-s<${mIH6ARzB7s^si*VYa8D?FB!KM0mNTI_1wAqbJ#w z*1!ZkA=F>W^Qj|$tV7ZJv||Q}S^mWD4@!-S;01hF+9+4V!SYa*=zHxOj^n)Q5kbYpGlLF_e`^%ml6X>dli8d$(x)x87#d60ARB_99)9xw>)7>WwkDG6_ zTU<&79@rVd*N8$fiOSyB!eO%jirL~SF4R5+lp21HtUsrZ#!71wD?(VfPWc#^LN(}C z@9-*=EBhi>?IZb98Yj|u7C3ZbtD1t>oD?D<(y%#MWRHF{!bscEUdanJE3f5AbHF}$ zri(%h@?Jcj`V%iGws~uqJNQ_-aiZqH_V$`l6!g7Q^r6AefUU!Q>ZIxImB-*6>6Kcl z$FmE~8=E z7a2pgq|Tt5Vx!yU#0D)Wt`zl7LQaXVmx+`nmDS^C2~u_Tux z9Pcp&gaInFOlg;;E$+FX&gN=#-&d-=HKdB*GTW&fDnFjMZqP4~CVtNXFsE-hqe6L? zB^6NEWX1t?69ay+; zO?=b}8c$)bWrThHRUi2ax{xfcwjst1GiqBgui*Kc##2qU_$<*DD^ueb=N42Lyp&a&PK5mx4JUK_>};K9;n zodsoP3!I?HYwHrl~QOsjHWF99(_1 z*d({sN`fU;fbZprGwI_b1EP@ikE6%4S_21;nuXyF3pL%%gT&^4C;_B;THD-F@Ab%Y z*1+?qONoebaH;ry<5}(!fz4GBdxF4+@;0?+Sh`w*{>|iU0uJy-cHR?8E=4d<95`*9 zXKbH9xBE~>vx55n?TQ|{YzDfN-G$0UKkt0DeGxE}OtD+!xfhE@78y;6kKghh_2F?i zuxON}OsUU@rY|rHG^?Zl)ZcQc-hZ=!(B`YTQ){vM_GdON)G%X3`#~fhP3%v*F_5>w_YWvQliKv1 zT=dD#Z_d}5=_4)2O4i9Drp;K%(NArx06kPWagS<08mG%*QbaVgOh)UuNc9(;9qJY; z@gc20f5m}=NkOe^%y=XZ^ui{IPnd)T&@JM5QC&lN%lss5-UYW~KO^0(Bq#eA3B9X% zlpJ{t`peZTt<_Q!MRtr+unGHzC$B0puI~;_(c~hfD)YO!Q;&!3&AJ|XNuiL~AyRcg zOB|4`tfU-1COPF8helM6R~>-bJ?_Y=s^O3H<8r%pQ33QPe&Y5VjNl+ctyqd3(|Mwj z28u%fV5uF9U*~4{5H-GarCs2V6;jiS`QFtx~b;^ufgjKUj$>=%U{yN3TWNnr1QA zCOG{K9R=o#y)-WTl-lB>;P?)o8f2AVZi18!%qU*8+Mj!S5|_rnr3#T5K6<6e63P<+ zELE$aeIrTeAQCP~G)KrZCnD&{f?@h$i%kuCY$MaZsb^IjH=C%xeK0vUwGs?&=s+H( zVr4Zfru$Rwir3PYReUyDN(24aPYLT=l9;YN5>W(-WSAxxYC@ir-^TYjrQW~AfNq#< zV~i3MZp*HfZ58@R`1MI4z1aO7e0s(gG#|Z&IkaI>RRO9A+j$@iP3LIcU%y0 z=HsHKbRxm0jm91CM?j&qKc=S{d;^Aj_PFlyk$QKz%JKWRV!WtaO)x$%(8UP_!h>-P zY)C1=YIzokrY33fwmfeFkh;IqWRxKM2tArI-I_w~P0#68t|$?n^({I8n(o?=ux}WO zR72}S3lXn!H_us-;CztK%wN^nq@_Sl$0(F6;QXqEXg`emmC{rulI%@Gg*~h6Feotf z`FzxtK{D_mFZi01sTbEl&Ah&LeGL%ePCC7PRA@GUQ)ojf&O^3+F!wyby=ZvkXz{p& z0zDJ;mqG9tUn6x=d6B2X3uaz=P3BTlR>8~iMJ+z(O#i1h5$~DoWqdeFdE0%E)|aic`mV!P;OM3x9pPyMHJW z%=z*QO-SHyypg4cl=MWd&rw@#M8KFa#tGf zakmOGrk#K+FppfS;5>gkul=xrFfwP(e+pgVp8d7&VQYmRhfW^!jPlk~<3+z^^y!5e zxMybte-o->Cqo2&&o2%77eu-g7l_<{N50<3ek1xjMaagLSbGYHs0XcaHYLUqn}&Aw zv!%?czBKOl1&1luRLtSj`GCHK371weRZ~xAseZJSebbg`CFrzh;h*M`S?#lerSaSx zc9b;0Mn>NY1B2|M=V*%$2bk|M%=yJtT+tW*5N=axRM3hpuoOdl^DT;nPdElZUw8$q zx|fO0I5A=6MakxDsZdh6M-4sJwkaLnBo-24&mbP8e^;D?Zzd8`{gn)rqH+MJK38?o zbbh-x0LJ+i>G?fGen53?oAC83GP5TIt%APrinXJh`Jhsm(WvsFmEzl|%SxXOTA|A9 zyi9Rd&cn-V`*|}T5FZ_|_nRs&nTgF-5Xj+x^=ajdg8i5Af-tsljK#lj)uoMmyvV)f zbsZ892KxT^c4OI%`VYqz%D0GrwOmt5R_eCNfyYHHQGin=$nA|5~v=P8MZX0r8z`VlJFGM%Zup=(0 zFdF7EtCQjS;(S)$@&x+JWqEH;iXtGm@)m17NliOuDtN@7E<>%doUD0J9Jv=MR2GyE zDP20Pf_U^z<3&siNWHBTv;E!kmGDTd0u^rD!G2}1!u2J?U!X(lm#87=SrK8B##P^B z?>gr@k3({i_WNEdJTqE_QIcNvAMZ04Ii9nf#ucmmI{4|kBAy~=M;C$l>j@vOvA44# z_Xh1{ZgtjYnNbZPWCUux&H%Y90GaL?yHaLJHK zpyH%HVpjSa4p#0*b3T^-^))wb05ukk(gB%k5Vu-JkhN;ooj&;P#-uE%3~@;+kBm5= zBal>5v&67$44P%|jc9}Vsn-WSceIX1jO3o(-NSjkWic*9&FNabahXR^zAdrOwS2%t z9kYi5Iae1~wW8qxz0UD^2gI_VZQ>=jlWV3 zzGv!7&V;~d6)xE@f4y|dhIFOa)~{ddPsg$iXa14%Iu=8~&sy|fzIgj22591$w7f#s(abSo!o{V&NPvbk_w z@aqOnq~_1ZI_yM$_szZYL4T`t@I2%pI4<}1N3F(|bel!GUjW!snkR;UuU2Ayk&?r>aCYGw48|h=ed0 zL1uF7hT55Do}5LkQ;lF-H%@m}GRe6OY0k^H?s`Him~7bOk%n%`8tvOPASL7ZNyBbw zVYI!ln7KKT)vHHx=$vW8>gTC^)fUnM`ik$RruPq}dR;OO5>brM)R3v>^}o=((IDoo zKB}b6eu2x;PGV#0n2`#~Xg;dg_bh-ggCAi>0fiS8#lyBxQqpD3n4xdw3wt{(Gbs^6 zB`UnS-t~F@t}Z!zh4Uo1kr1jsSIa<%M-h8pZys%d7sktp0Dc! zvDaZ9^o@DbDHxQ4Q%h1a&zcjaXWF0Vkn?|0ISaAF_jx->BHSUPPT@k2D`-1wI6q|W zGr9Z$<2I9j+oI@*A;xkgi5E-3yt=>8tO~V$=2>URVf}|N*6I@t6I5Np%+Mj%9}wKt zVb__;yx1>e!laop-+N_l?`O(H85e-bi$cL5a4YPi-l(;3j$P3Vynz1NM;Ptz! zj0dI))cbztbYgxLQr+8ndJN9E(_Qh4aC4q0Sl&~Dj6&&nFAvTyYH|^h#xAV4s^q0f=zIAeG2c@d>^cqrF(Bu zI0bV|$MaJl1-_N!b*Z;nVO=j~?by|>44J|XaHvuyT_#Zu^Y3lt7jwW>uGV@O8+(K21o(%dETVW<-TS@-mM3gV+ zo8*5E!wtDXKzlR5M;-@%g`&tA@Xpw0LPjjW@}UhiURxytzEgX>$%}I(Dexmwkts|i zw1!ich1|jBz+T6G&r}Az-zlg!5hHlHC4(wTb9%SkY4nc+nSgLFncUS`s%LP4k_)ET z4#`cfw^g8jDO%XFa5;dOrqj;a?Tq9mvkm>V+x)Z)mc;eo8D5XKjh71181y`l8YyFf zXd(iW#Ixz3a{>6HhBKipSjpH6TebJOiEq^U2I!FEe;EKx3#SaB0YREKfD=I}i9xn+ zCW1QPW2HtQ)h?S%eY9Ah#iNS*0iOqSA(=me5V|A6oYh}gcLA%m&a^JX=dV=xss^V0 z^#*(iBm2T-v)I^@7H{#Hc|4_j=E;CB6|0*bnY|B}Ec6^XVxyvg@b6=mY@ohqKpKdwGz|p<6t6;6{nGhRR7o6wY+mE;#HQeKC?e zKsL68e7;#w1I=u>t<%45ug z>Mx)?X<+#^8|ljiJX^L$*Sv|6yMW^7Edi`jh&_P)<=0OR{X4?N{_iIfJHaXJ2m5Lg zh1JqivmAA*BBr44kI8$!>%UAcT#niFST>(f9+b(N}dqlY?V)`^3|!GKtNXCGgm zm7h;OV{jkG2ND`2cXJQ)goA{u$6W7HDL@@O1-)x3w8fe)m+i;4yr55;IYSZ~LFZC5 z7=WlV1^Up&Pay?)l^(~@DCWj`B3f6xCEo>&-KwB&?E9=FsDG(oIrk?TYd@`2hJK4> z@p~jtTZZ1wwY%HS1LgxA;RDIAv>8vxj1##)cdBXiO#t*hiDF)YotWEyafN#Jv~J9k zZF+oaLQvcTu47=DO{Gzv)=JU2v#1t6MkqlZ1nV*$Lx5>6-3z7Pj-}C|BU|csh$K}l z;!LxvqRLxEZ!~;T(3^0=IV|O_j?;6u|L&y!^h+3{iuC#nbz+E~EDjlu`>nZ&aHP&+^ zJu8HVp=G2Yz{^M@5g>-J^Wa~V4LXUMCJ;A7WTnb^t;U3wEJttM9LUSuha17lA)NT; z73Bl|#iY5@L^d*ZzZLTR3F4~;(73gMWs|=8qAX%`XjoC>s7do&;Yg~i=JeHm!9-da z^!ZqOi;!qV;fktWmHAAp3A$8|%eI3<=?>kZml2Z>hfp?aS$P|WsH(Ez@<%s|_$i>( zAz1C7XpKIc+Wo--J)EjflA)uoHt0P$f2D9z3VKs)tMAjipfw7E+Kin>kkMnIyh+De z<Mlf{;H2s-AP8$mU%;P4qW=e0h~L)hqsBuXk=|dp zi;lC!1g|^Ly{T#2!D^V1+NTm&{(s}p3&L`dJ)+{OM6bijpdnNGl$~LX?q@V22o$8) z=Ve>(KO_OG9Y}{`_BI^~Cgk20xi$E|>b1JG7sRu1rGg_YI6|On1nm1W38`J~DJt-3 zBYKfw;BMw2)(S851%xzWFv%}a{JDk_Ek`c%Yq>kT+F_Ekfq$O!s4rPQluAAE=o>CD zWmH}CPPSz7X{8w!Cs^H}2a#0lYX61&L))7Kv#}YS%AJs91&1~vfc_$>DA6JEW-;7%d0c4Utuz7V%@^+v7!;f!M?GD>XutiFv$=L&=bJYRd8lZ^RGm*{T!<#=*;Q&{5_gf2VQ|Z_TUAJXg^%8v~P6ckXJ}Lqq4E zlZdHiq_~hyt|$?H|9!IhJKE3S2TnjsP}oz2=Q~ng9?i-Zk0%u6ZbxDJqn33WGMAO8 z70~1E%028FPft-KirnS6*Nkm2V7SOlj*y4k(@A3LRqa<@SH|~$-TclSBmg=`5;^rg z0djV(2NRfnC;uB@BXTP?; z=EsJXDb_(@)`|)lJ=Ly5pog*6Q)je|uxAo|rx!QGgUx~%+)i>l`{cy6h{%`M=Py1p z-1cKlXJfL4cP~Cit;G`q4%2*=h3_jQS;AGtXQQ_^y5;?Fy(woBWjrb;mK8v6AFQcuMK}$vWO>zbwE@xHf zVA_Ii5sjG;<2xX!teaABUfN2c^6OvJ@|LTq*wu`I8!PfVp}fs1@~MNB;58ZF7<)S< zAO$pIqWv^;ols2z1J~p-Xoljz*S1Byi!1#~V!qXX=zuOHyBvLF$7tg6y>+e0ilqr4 zn2PU;MDL}=n;n8wYw-dXHg`o&qrX;Gm;d%|7J9b`LgS-IpYN>8{19a;Twb%YsIma}@^4UtH4xL{$q z#ptWBxt6ca$SIwELpCO3Q&e#MpexD=WG>-C>tO$8i2Tt+73p0Zq5WBR*Y#e6@oU?R z%BBK6(pgimV>~$WI*@$e0tuj7dY)WYS|O5y>;w=s-K-#Af=}Kby_+xqJ%x z>}0km(4~V4rF`(^2Dw(Kg>6QYgFV{DV3IW-42C-HMvR<~UyZJ!)RF7(?d3`<706bz zOTV`?;g_;`jiQ8t|I0?5?Q~dzG%A*)089Oc8+4S}vcS1%mm?8|jczwnMdLs(nAV0w_hy=Q>dr2SrF-LLiXO`>zWj|c`r+LZbvGiC0q|oW#kNu5QMJuY`ErI5l3qkX_baJ8x3$ z!L{>8TYujQxFRf}0shJ{aQs%uND?S+s||8V7j~5GFp(RSGPZ5iV+2Q_Gka-q%o{l^ zYY2D+?;SCRU<8$>D_b9^bqa6F5-~eYG!ZgBKXa$>AchP65+`CnJso+}-P07aR@3KuWl-~Cw!>T2-0nu^MwNQZjyWe&_OKXjAd zKt~{^#)0b;0j_IYU6pC5rZG86mE~~OBe5wkb1y5 z*f(ly_@rY`RTpYAww+5U@W!F~{fX>34s?d6g?5Q%FG2nsd)Gq`EKlhI1xXWPrC1bsHi@_zc-nk|%oFwi?`o zJ0B;b33`HMdvzt#FYW~3A-!P_M|!V(=W<wEq`amUdgPS^!7j;h+;~ zM$o_hK`KHlhQj|LqL6+R2`b^wV;MWqf6)5KXx`xcT{0;~8qFqCyN`icfDc zGZ6G3lA4`^#MT34v$w1fc7%(9@@U5ky?n0KBFaR2xPCww z8hAz&MrYr(N#J;xc3(r=BJw2fx_c77ZeHlD?x>dmN!Y5|loV%_%wJMhqo5u2LvTnk zo~EXat?_=9y&^Y*?(iDa$E?)dqDs9XE^Rkw@GbUjoVE0HcmF;lOLQF2Tnc5chI#6` zvlSxGRq~n>Q3`n=}#6qhKzFOb4EMW zL`FsLjHFKQ33Kpw0hhsZGIXHArU3r?AK|+&IRgm7voRB1^0rWOHm=0L1;HRwAS^2>bAYK_cnV(0D${C zNcd-SYjCj~6QbnK9)S>C>q|m-1P%BAS3s!0-gQ0>B*+IhF2t5V5n)x=((6=I_6i(k zg|x%1{M95XtIJnX_UC#ddYy4N`b1K>H;F2jP)CacZXV_AMbBK4qrW^f5>GiE-P*nu zs<*utILGlVq;rDqcMAEwlOC8Br6WZxdwaoFYJc2+O<*`+nc*}LSp8E&6phjP#I?rc z_upZhQrcnXS7zY2NY+c%E?4N-iByH4!&}4>)4fo%9!x=2M5N{AE42l zrkrMS(Dp_BWrH5=w%A(on~f0+kph@q@nrim>RnxwaCXNixKkxO}T-wo1*l zG}vBV&eqGrX}@wbO5CEAWg>xlw&i6TDQoKoNKiv*osC4@#lbbsqvXyCn-iu!uTkxl z$@DG*yWsuv<8yh;AeqjAw2}WIBz;Z6AU!!s z_Iq(kIwX+eOyKW;sr+w{<5+%~Td%03ZOI;Ki_Q~sHingB&Fl?&VQUf$O$H>6wfr8|yN`g1rNy~$LHj~Pz!rUAj>x)sffO-H@@AQ$W!)$@Iwy_t~ZI-^|Sl3+MurUxn9ccTPq%`(v}km{R17Q+0xD5rG)w%a zj?kQxJzyFOU1a`OR%*XU_HLd|4DW_OCs7+&J#g8!skkA+{6@!%)0&`BeW|KCwWSZC z(z5HxzAcB+BcJ?zi2vW&V)@C)i79~^ft-;P|`7{-mOQA^z0ig{SS_8wbg>j#BxmCyz44;ElPD!B;B~1Ij`3Y9cq>dk zXo5T5gh@-Pf(1u5tf z*mUk(`J>L1nSk#@ye}5xh4&2 zTS=ihU)RZCtyteAL!^(__9e2SLCB9{cRqGU(3w5y$RE3IUk>fuyQIO_c@P>KSdCc_ z8CuXJMN)b44n-0B^z~b|>2~jFG!*^EHnxD}3_jjh4Dwudjn()RC;Nk6jFU^HI4;>E z?3eiYbD&QW;TYo=4d4$8owiQbI#M^#hN>RzDV$ghzpOM!FL2W=9)1us>J|#ekW1N? z9cRh)0W&3u{SNWJkzNH<|GW`R2%$=(p6zP#=X@8Qgt*DOgXZyMD|}@fOzJqvJ@^7>QNeZ`pQ^hoyCdJTQy)8r z7a=TWABUXpLrZIy2nKWoTNSI&;V^`sFb$aBM7VjB+f%rRz0C)X&rTHV zQnSBww%1out4>S~Zm%^htlj9DIv}Ja*A)8lHL!w99_ebZEQ+23se%cK_X|1a}9 zHj!E8v5cnYU8Oes5q|s%h>QQ>iC(z14$Gl!xZ~ zNQ&B|m{Y6jKv{*9+hm=cOT+k(Cth~q1bfZXWz==#G26XKM#q^Pb=@5%R~ z*_t#3uYzeusVNtoeVa|?t9imaL>1Nz1pRxEqCJ|GK!@#r8(zBQ!gxnwmiijfj!Rsk zHS-R-t;(1V@_qR|vv9wf~T9e1VJQZ)&*+&vm({ckBnm z`BfD)tQ;LUvGNO_KWh9=_He_!N?&^n!AI8JrXC3cn#8VXlQx{AL7e)9D|?v;dv2ZlwzbUmg2P z&mLK$f)sjB6dB*lDJ-=~?<$ZJ^F=8_hh~>;pZ4>Q1HJ={z$(W!Fp!ecw`xqS<@h_b zj`houLx57KzLJ)VOWle2-A_!=vmye9QzyDYG#b9)Nu-$69{*?&?N+G=uMe7^r(wlG zyC8=3JrwN2@3PMPd#jAFxHAN-g0JuVz0>~}a16grdm%#Z1y^v^1g0ttd4yXqWej@5 zWUBP)LqC0rMJ&;xga7k>=~ODf*Mm0W!$Jyu4#W1r_vur6M_EWu zgKZhd9Udu!1*x>dr8(#;zG9v*DE_hOhI?~vrzyU14K@UX;&<^cE{4AQbC;onav!A4 z=hQn+&kg(8m18U1TY$$`pD{1(ZXDZvZ8F)EUl2a}nVFl5dn~q|SC^Ul-k{INrmIGs zQs8RPWDZPu27(S3=kM8fEPWrQ(`=Oxd&i=}<+P3(H04mVOk@MPWsvp2bQ_aw%+WHE zlOGaI#p6$0+B8z50|}V+r18DzpM0PL`q0_IkRr&k5*Ousi@>eTW;Zwr*{N4nC}>BTamV>gn(mf(5C4yw zL%h3~`W2uF3D8)&TE-NRQ`rtrSU&5+*WctNQ8_>l&W_4o6me2co*+7uBrc6#szc#u z?#80%WhcY*=2BfvDK3XZ?Rlm{D*ij|)3bT4`V;7h&yhxvP-yKdlQfr~5!#$r_=)Rx zYeihM&ISQV3HsM5MBXZHfG^ld>;$^V_IY}MIHR4Z(#rx^i~g}O6?q>++%AXa7{ZW5 z1>6+;r5lq2@>_0mtTT&P-r){-bDxn{-$+K7`^<_7RH9HhshDy=KRAz@vr)7}+)Eo0 z8zRJm?TPo_fpWN7CzZ+Fsx|C|W;vassSSf5SYfPZzCtS`FR-(Y#!XF(HHNJA&rgSp zy>6MmA5z6+F!+4|OWz2y3v{rj^9JRzU>KO&(b<8}t0TbIjJHjMNdL*vW^yK)L}QbI zb`|00vdW6Cs0=SrF8~XuaJVJ)j0#0Zzf%3gQ(M;o!Jf;{JS;kzE;P*S?D1}yhh3*1UNK10^XZg z8L4JQ`85?7)ztO~RLVHt6xWc0qvI9mKnHt*b51c(#W`ckFK!Yk{8%v)u@<>;YwVsh zkcg|#&DNr8t8}ieIb=6~UN3)k=Kltqz=(e|F*~+>Wu%`dQXt%1$onlp6KuM~B`TNo zZ?F;cNg}<308DtS-und_L#d6vW#-(l6>W`!AufnpmFG@i+-FvV$%JwQNqV!qYXFTvtpw>ZGKiEJ8)Etjdd^;mV3Bm^tnE^>jMR-}G-@Te zX*bDt1aNoqr`QFTWfZDb*zcOJ0yXf4$I8+Lcnoa7i{XCXE^cW0b0WdCS9zSGy{(o4 zLDHEop7+(^;RFuoLmOcqzL=c}aXN#o_8`;O1U{7Ot#Xann7@3o$+5TwaQz9vy8L&Vl}I zQi{SeVumwob9@zg+#$A&zXkL%&!A@?q4X!Dae%+L^k~}ImLx>6=PaszB3Jkp1-?Q5 zX7bOgt0|WQg$&XkKR|q32+*$ANFAa8mv^~$?y5wRR_KS#W1v&cV=*h{*3@+aJ$j{j zr0CcdZ_XDwFGiWWxaKNqbG3IFrGH)2ZyxgVS8$~!;*b!s>V_+)fK%EB!=EZ3*a5hU z=)W)hr6=pU>l@D}a6Hq{NCx9;hI*4<$OO72rGlb&Iy!)9I3)K#C3LM7sU)f_;NSB~ zMUY9i-lVbu9N6hXuZ$3&)jZGwrE)pv3&iae7Bs0n7^QcA--?~*bd2j@e9y)BsTTfy zj6|mx^yc>T;faEB9heF-z6IE+$wRge!!2DaBvFGAXdIEyS5=~7^rIDR2c3E``$(q-a`~Wp+Weseo?KwgXEKy?wb%hN zqf)B-RH4W$E@GM<^M3RGaND43_9AxZCC<&Z zzrS@nYx|G?qZD>oKL9wd0-)A_M50W5j&{~iW-R?|R72jOEd`BCFH%%^vyX>n6(AoRKjeRfBbEUx|2as)<6*M|U!Z9p z`9~S&qZ_i<;2<$$Kt2^(InQSPan&PE>U|{{FdcuY`fbF+ODH6mdHe%B{vG;IxB+9b<)CC1zC zD!M+V`7n;=>cvS;NQ90(NDEE&N)1afLljr}YR>Gx*S8!kfG=MWjte%hrM{}{Pz-~2 zBRWR03s>_Om5yplZ-T}bbX@ID8y3-aLhVqXg%oEdajxL|Y3t);_fGMQHezV4t20ni zCBS4)9ADPIFvwnpI0Min)l5#Pl9(OqD8$B-2T}E2GMR_RH?$LQCZCR2kAXfdWyWI3zHJYN?wpswVSvDDfj`gA@R}GEX z0+GmJ!A`w9!SU#E-F(3J08wKiNlDOy!HTyQG+Q792E=SSTLTVZmevyzCDf`Y-@^Jv zCl@5k=(BzvL;V%#eMK1OQl+3FSp&cuwgUdLVJs@|J}(xhDoH9CkTA`^&;9&JwLn)u z{sQ{{m@PYvq#r5;9jln`sH;Td`A>~xD*x8*i7C@vbN1g_`r1j>=ASS}PH76-rtJw1 zfaUj(=Q!z<8sBylM-B5XVKHvDiwm>VeOOi-`k(KhOKu8dnh`0rWu9zD;NrIEG%a*w zjvX8!FXcu&UjKcHND(vM{gagbz^TXkCtFGxo^1;}$NjMj3bP#zE$wJ*LxkY=V((0h zqZngO0Dk$8B!E7&)n@0UV+ThaMJku0jDRIPEdCwL2ZG4YPbyvWIQ5?eGVbQKFx|eX zxF)N8a_)Xr0iK%kiQyO&&q)BDOH@0FNiW`yajYCxRvX(1wp-d8&==RkzbCBRSjKO{ z!uJ9@bGn2D5n$IU7YQy2u-1@bwd2HFTxS$~GXWf1O?7HJ*CT-Q-MwIlXY1XC2bUeK zSnzduW_nY!8O?7^XGh}gCkyDh%;>!uJZU95q39~;>dF2mu4fZhNM;Z63QEk8K-pA@ z@tat%ELCfMb1}bV!VIx|pe@-tsp;me27Rzi*O@tKfv`;_+)lI`g8lF}F&-c2T?0|3 z*2eQ<>Kg4sEx+-&!F8QwTE2)>2Qj4)!Lys3KymyXaCkF_hH=4=!cRlV&oKZ-^*tTN zLY1DMj}YqkPZpW=Cf@2^ymitcp&%4J2SFcG^Hs!(hGH`LG2Cl?#(7y(ej^#aX}ZL#5Zm5dX?M-8oQCMph77% zYNgu{fN8%Ihp!2DocWlM3)W1B>Sk^yxWWMVk{)1CfJXC7-ewkNk!&(X&GKENSt%q* zHr3v3UiJL|WpN57=zzX96B69Zdz+$y`0fxvWHb&jRatLsbZ?8Om|qzs(piywz|%pt z3;X+2-lAw3Ix?WE$a9DMC*7Q!#enU9S zJzvpg(_7x;xq;a4Bxx|Xq;f0k5<*%My|U=Y8kFp+V|BFyPJbyez_aew_KDgAn|ZoJ zmKv6qE0d+l}i6J1tFAiEWG5;X*?lXVbIePWU_<%5gc_cT;!qu2AL}sb)H17Y_iuZcU3Egj;rOAtSf7&HT|N@sJ&jIro7jG&{; z1>`xA8FFEtSeGDtJ70e%EiH*GjTNrL$FZRjyRUW(fC(>r3cArMJk0mme$NwJSZOtHj)q0_t$!~?2x-GWi+>!EN$8MLssRgIno+pe!UKwG z;2$9gFurD8lgG${N@X%%JuFr|=fu?`IPB^bUWgFc&r)6tIuH=@is}yIACS7WJy3Ql zQ6T+`pDKrt++tOQQ8;a4Lh=npwl_L)ibh-ea-e<=1{{#{ff->hU451c$&k5L4_=j8 z$K!z1qu8V}zn1$21-kO3@II;+;gno8uvbt+VjG_|%OEg8VdB%jMrerR>z8pj=+OYh z*ic-`mLf%8|5ooN09QT&Ev{j|=$ocZ+|Y_NDTgkC;AQ{d8k|JuP=_1nOU+0qh9vgRN2E0cGV~)f7vxHEi%lL{Ng8L3B#pn1`L4R)28h0qRPbS zAb30#Ta&Lk#&!>z6`}dfbYFIUKYlg{)#3e_tG8t19X{l+8rBnKDy-uQ)1rU7bkz6y+D<8_z&eevVY(CCC(CiPDfTomQAdvrz<`5{ z{(FirgZKhz&UdhibY0+!4J)>qo#p9IWnv7skAOZ(irdC;x3o9ae+N06dY}u*(xNfX zSK|6vIcNRWQA1;3({R7v>+t)3ib2ugmC#0Y=Yjp66=FNk|83cM6Sw)T4H#+Le-tbZ zdF7M_sMrbY!jW03^-qxY@Bw+EFOS)v-(2lu+Wn*I;`BaDeC}$l@L$60>N2eAf5rrD zC4Cg1>f9JUn6uBZwrJ?KH!?N1&4SXXE-wrErsOY1 z3ZO@!#jzq+BeuQY=&WcQ{oIYL=^J=@ev3o49|ufpL|Q-5Yy|dc^$ZA_vSoR#X+776 zfsL>%@!Oe$-z%a2434(k(8B*A_Tt_=;~%glF|-CAWB#Pf7`S|H> zpA;uE)uAtb+TfK5KifrbS?!=XzJbqSGPP!4Qjr2A!WJzrdir~9Q2UG%0v+Or;r{R@lUDsDBfEfOlr#J_EukRq%RJwQQX}GIphN4Kim7Kc@i63RTB?q zP)Xnae9Wh{EbL*#y@Vw5Jwz!4z+k-B z6@zGrRv3FW!GXa>=b4GD>+$XYZGW{f&+p@)e~%G1gcN7oy@~kcgBJt@Si>+H0#Hf1 z4d+b6{#ff-kE2zjtcC62DgX$@BJ-D5+{GC4TwO$?fX^>I<8jh#-cVE zQqDNddY<`vApY%pAHNZEaE&YsM&enT2hJ~u&#wvzys){?-Km_sO@9FqoT2eX>1~l1 z`aWgo*Bx2DIP6GvEbKm4v~7*JLeTpp(m7SY5Gv@8AF!E9G)WEqcJ@={To)H)h>bzNuI4-6(ijteIOw>Iu7!*dy0K^Vx9={OK?EZ@_m~BY zo8{k!(lF$%yR^UR%98rDp7LA+R`RUi{TnGA_eCdAyJAK)?z?#4>3tqo^y5CB|C~9*S z2hd!S5tF^6YQ;sdi*zsTpzobzZ#gXqs-npTB;=Ssg2}9^11;!uIfQ>EPWJYOM}q5H ziqvD@H^m#5$Y}s?bPzz)@zi7Xdg8>-xM!C{&IfP|HlHyrT?}Qu7t?UwMbLGb&s?8s7W#li39Nn-OgEx`^Gw4^3|HIIik1gw3y36l`? zBiLj7F7ur8BmHD8Ny#Pi-UbV+YR(pzLC0KCht-&C{A&l5iv$BJB~e*ge;B<3eW`4{ zEK&Gl?4DB>PMkmQx&A025@0hfhVlb~OAFhfUCQ;&^zPg$=fsm`m|VVG8#$ngAltp=hyD(z)C|a z`{DhE%P0GKG*1t6Phd7S^GQ%Qp=6Dkl#Jc;Rm?4*f%IYKUZ7%wX2t`yzAj>`D$CM{ ziCq`pOP9%LtqXcSSNsb?PDO7>4_oS|O~JB0g?si1>BR-H}k5jX)M z`%(4sNt7>5RPR13V=VFq7WKkN-VJQ~KRLyo%H9&1!g>ht zhkVbSHS?1H8%wHBeg595%LFXc{pL!`fjA&jU=itL$1y0NnLjD@pwtU>1tY9e0X-`s z)KfFbnr)6@vN^$DDsov+ttZ#rcrn#e`b<20&Tt^5HK+ka@t~8d-=i_fnDCMYm@-+a zDRN(mmRN7yFU=a%T(SD2wyag(z;4C}3HB3o$xXA-8Pp~xm}ZdM>e3T*i}-Qc7}MIh zSjeEzc-`_q`Yqq`z;AR#svunnr&(D7G#S8#5KUvK*X)xI#dn44s)nQlT$#PBu?@%f zMN=?n3Um#9J9*N4*&-F}!oPrr8@$PE>K&Q|4fq{mV`RoS&rzNJ|)BnC1M80%tn_F^p^{5W+~`bS)dADr(?9) zr|wYi=h7={Jq_mNI+Dt|?CrfOcysHoFJLi*qXoZI65D{FFfR26Iu#CzDdZ%$5sI^3 zvX5^J81nUlC0z|l;#i{Fcaba1pB+kk|UXVQhig=l$lX+@J#tDBbsRe!8R? zr>Yl^H1WRg>7c%fwf&ZSPo03L+$#fJvnMhG*9rrkqQ5&!Cg6=i$}81A^)>W8taUe| z+TcKH#+PO@gK`4OUes8O^x)rw2p}G0REk*>-0oDhms*z6fE2t~1vc?>zCp@su!jyG z^sf4X%ucQwpE2S!xsBw8s44R2?JWZc`nxzkE(MRr6qX{5+>l*$8E2D4$)d`WuJC_= z+xB<)mX}#k%m;Ne-P816vxkG^5W1YWtzR#G4+VifA1C7p-Dv1;OR)PrGYQ_7X;|~~ z;<*RSIDlao`9L>ysP=f<`9~A_bAL4&tUvj(X%4iThH23qF+>sW?JzSl6?u-`dc8Mz zSO1j!G$)`y0iArQ*8{Rb=U{aqD&!OS?@W~2!x#YY%dibn+*#!Z>8J5+LCqUI;m38{mXPMba(%hA@ zbMsa{z5mtx9|4!%OiPI^=#l?L&_I^oKt->{mwY|qd*_BGlxY|*Jhb;a3HVKHB#GH) z8v3nwA_b?_`@%Y%^Y6`o%qHE57R`abjWGRg61Lj!B?6(DLHaGKej>dOt9#Jbxapdv zx3~F)k{s}Iw_!(heiY@L;cdAA6-KK8cBfxTPEXAPA&59<>~od1?+91V$AEmRQ+yO6 zS-(I215AiR89yczh7=&>_s*{QD&E%aLAQDb2ezLl*Hf)&aAWyOtaSq_RZ62oskiOV$whId_U>Drj6j|t|)|4i3^jK1?X%}*A zh{K5wrpId6vE$gPXZ7go$_)jNE~EtuyUg#_93-5-mCzl-3Cs3yf%r%Mh zk)TCwns$nBV9%>1IUeM{N)FMHLaaXZ7@UNH{&&(BFy1hre7PwC@OS*=CX6msOIp8) zu?jO8OM}}`hLNoX>Fgr*x;7EO=ASW>r2>0Fi(7Q@f8Lhl3A7mK+z`AP&B(ZV!;hs1Zb; z!pNjv$#D8gX~LTV4I3e;5PL4W5nO!ACuf=%bgD0UHUZfPp44>=p17cAqLw=pO8+wT z%FF!!9rER9ZUE;ZjiRc=UF!`AUC#DkJQS7VNB;9$R5NlWt6571P^Oq=T!1c4c=ZU4PY5Mt?Y6~YQ7{M8kRHw8(N)UvSWO2j z1bfH(;Y8kJF7;5W{_q;&{xGXyN%I})4;!jUaJq1^Pn%|)rvG)AQ?kvKI!3)IzLBpib z+^Crps0%=DPnPyRv*zT?wYMB>Ka$X{Pdm&eB{ZDD*H-H{I_Rd@xUpk+!(5K4?sB;` zAF3^$`LT*jwW+1fZ=6>;f3ClTeBxH<10oe3CpeqaS(po;FGFHl@WrFNg$WDN9Buh>j?H2SowIK6k<;oS z;=sRazOSyMafXySe65x(m~OT8hH(Kdars)8y2s1i@y@%zR_C;ITpM#IxCWGPl6dsQfEP6RaBDA^8f$$P|^pQmMdj z3hdo888Z&y@dm~(Dq zD`Ig=5KrLKot+e{J;j%u>N3l_#{>$m=C!ggL4!s|p#V|(9L1*|q3YYz^lVBo$9orHs)vsbA_ zsSM|xT&@yOvIjqZRfBT4G(8M&sC;gL{m#BIS5Uns?@s;kb^2>SCJPNaWC-AT1nf4w zyAQv51gDGeD#?iv5_w#@ci{$Tc7?$qt%E)-{zSEpDtWR;*`wqRgT%c*xu<5S`v$G$ zjsEiLG7^}F<039ofFV+nOhaZblb`?wuSa-ljDY0 z?E;TGex8vDytD#BVqoQ=;jpjzcfPVJe7n{uN-k2c zAYfSPb~SlBHS(RiLh`PbZR7ou*$`WM;f7Hy-|l$|z#kCU{mmsriwN%}Hg858AKjDe zGpt}dYNeGh(oItY{pM=GJGqSM&z8yjSbg&->Da*G0SLwO7TtSXn}liLlh4TGHyy~ zPfhU&`%RU{SD3jKqKqb}Uww;Oa^a7F00{!>ykgKF`}n*UDnEl|;JKnkAOpAZ8LLDP zBAi&_eFxLV_1^}y3xtQ+bF1v09jPQX z61Q~@W!tZR;$B6Ag4ngOZzzGPOt`O8=t5-MzQ_2$YLf#eST)85Y{N#F(iG&rzl=z%1=8 zFL4Yw4151*j@$ol4`E1DxHGFy=;yb&dvi(9Jcul8zdPmAFtnC` z5|?smI0!?nprf@`9|wu4A&6+z|4^8so(oHC@?3juK|sV>eJE5z{&_;Oem}<2J@pUnt}I?2Bse z<2!*l1r%r1^xc$%4zlG1+|?wfz*>InSOkXYJT(0v!@?MkVOYTe*b|*zHRoM(XUw|K1BMw zp4n3!-y?}{c8g?ru_>Tqu8MybIAHj2{Ig|)_!|(A5%I#t-_qJqRMnc_`T|($h`Hh3RQvucyYCnsg^QU`RkmFBM4{9@E$FxYq5=8^0*Qf{ z!_PZj6JphZcWGpkrmBm`Gtf@gBrLm=%cZZWPY7MHHAVB~ibB#@DZ$Gg__o*gav)t6 zXS-=_H1Z2fd$}*_M!{PIwJ;%;h^QGW4(G7^umE=9;=F`nH`H zGCSo=b!W@-c8J}_vLe`z6~TKkA8T4@N98D{3}nkq{C(i7rW{0H$t#xKkT^Ya#wy%i zYJrk9Judx31O4k1z0PiEyQ1fMEsLPKW3r(}z3lWm=#RfcLfi3+w9ZNQPxiO1VqK`r zAlHLxC5jJVKGv#srs#ZnJ|2H2&BW43e9v1)V}(YJFbOvs25biOElgN5!%>X@S?t-s>(}q{67&o(jcAyV6hb;)#6FU}dmH_Qz z-72!Zsw;HfaO+9?wCVB(K)~Xu;f6?gBix`a_p^>u4N!e%IA0FPdcvAsVEF-h*i1OJ zVGq=O_sX!WQ$pWzDa=Ov9UHebY|};@s<%Cs*H^+uf-EY?FYvK$*FR<<*iZrXE6U}i zKMEn?jqQK!hMf1$lRn4p=66c6zj0Z$2Z7%2lpa3GA8=WHl-=E|LvR51j!gM^!iYQX zq40h>)|eN^ojGf{<>!h6gZ3=0I;T}f1lWF+)eO#<`{W#SYmiP4p%>sB%HvBM#hR0Y zIGrvB-M5$zac8Ia8Ez-!@*HFG>Jiz_8=^rA*9Q)3MJGK4b;=BL)tTQTjyxiCeQ zd|yrv8>PW?2jRRy-zM||EaIb5Pp0Tz3$F>$#wt6;Pe8$A`FLyUAg~vz&+umtuSMZ~ zD0qqE0piAe+UkoA4d{cp3(xRw)yU8n#?$LivN>8{i|mBt<04sBoYW582Vc-3o)mp; z2l;KZ23aT_OOqQYy=W|o=Ty$y!|j{_L3lWJ%aFIpZJOVQQ-ZKnQ=<7ha`=PU^hZo}#a}>A z2(6{i@vT;CjK(MVj@@w_Zc$m^%2DdFYJLfE8y)?-G}K4H!8Wh$&iuROjb-p8**Cy7 z8@aM(2cJd@*)vwN7W1HG}hekfSMsGIUyj4>g$wg7*6^#2?0{h~9UlkzZFNAVFX81<8na z2QKrkDru|ciJ|ICESkw?M)mK>Q*Hk+?DE(O_>!9K{u#1haleSd9?Y>p4ctHTiwZi- z&${v9zzzDuNeHkgsuvcdkj;KqqU#$0z5h5=2uvS7!~Leo%6bjD_sf{4<))5_O4&Yh z64_Jg=R0$fRP&-!A;Uh=y)8-;bZqXWK*SK~6AAym&5{Qg~ z$bk9+)V#qWbg;GUs<=g)$It2HLV`hjYweU;o_70N(4}*==_kEc9BuJw3b4#-hfU9v z^lUS6Zr%#6IG6`@+#+RA=(5w0i3<9MWw^rUId$V|}zqA?l+e1tD zVDrxGH{aoc!#e2GVv^n}xcObs>R)uZAB`1kSuJToG5a(>36ow}om`%4y9DG!i0yE@ zD9%mbtaUjP?g82=vInzU)qf^t?ba!)#p4n(&-l~JRFyGrtw$Qp9iZ#E7$aUNc^6^R zR1zy<(bf6h8;Y+L`8*hngiVLjcCw&eHVp8Ya?e^kkDKkK;i{&9A9oF(xtOLkwxMRC zQt?#~Z;YE2<7@1X0{;+eZZ|=15smDCCi`(L*Slf-VN=B8ab$Sel(a(9ZYo(*0PEOP zt}|Q|+3DW2X@0>8;2?VxIRng6cG%#oG})|dlKz3+VB*D1+M$n$o9`8{J|oWrpckm8 z3gU2`@yTMG2y}6_ub7ED${rFZ$!(}O;SjZyp-^$za`5G^144co`LGz?_dd4&2YZ0| z0u>lLf>C~dt?94cb>+`D_2k5?2GqqR%W}|xK=@tAWVBwTGQ~ODQw)r&$Jh$WsNV&G z-fMy(1swek>Xbc_eHkeJ47^$@_D8r3J+n>LS z&@hw=bU_}|%W$#e` zL&p&w%$q3hbcL%_tc#OB+DC*4dKX_o>2YpX6EfJ(n3j31 z);)NLuobf5Y-%yo1pFVs&UCP2_E?{;O9&Y@NfT1oD zOE?P@{P{H-TFFyn#ZQcOyZtn~IL;kMYP&B~SL<+&VcZ1z!I)tEj~F=`Gzv6QdAvTi zFA6>>YH)^e6Nm~`t&}KV`>s$OUrtsiVzZ2}Gb}>gU*}=e zB{0IR5+m|e+~UC0vGcOu2r5z7Y+fb%X@ z9y{L!v-kBdJZog$xhaxwBGwQ%rZg5Yu8 zPDdIS33Lu5DyX%ss}M=czxB1GhQXC79&0V)aU{|7utYc^NDHYDqmU$FlvOk6MU~_a zeh9`LP=Uzf@L)91Qkp1^z27fG>VZIqkWr8ABGy^ z`oSA2vRZh%pr2?lfHZEZvxB$VIkj5|{DYhU8Q8x15pEJ+A-8#W)-OuXiSmF1l&Fs% zU;2<<1)u~2#<|f%m=`AA3{H&{JvgE(JODyQVff%nNU2R>^ za|F^9qKUgmhj;WEwvxdZ3@3&AVIy@}Lf=FQmSr70hHEo)5KK)R(%VZK)b73F?-KgDt zniyH~kN3>4H<$Y7;2yS!S;Dp>EFM9U{y_b2NMI7#W${^oPAu?B_F|5)_EO**X%l6( z6n@B29%ivI=(P?})$cG}Di-;lkYq5Aiw-4IJ)>CF8GT?R+-5r_54uQEYia5jCdFi1 z@ednuHBJ>k3q(JQt;P{%y?7fsCUZX`lCk&2resnyTlB%KNC)THxS{QDPExDJ%^?J4k=W zWv1ypd)%eRltZV<23`&!fo@5uq1(79lgbH25q}R}0BhYWi8KuIgZ%kJJZNySOC|S^ zu+dNayz4PU>ZO{oq<=&Y*bY8@`EBWz$P^YaXg-RM;!vN63~EDJNFkU2IWg!~F>+XC;->2QZz`H?}$UDqY@)^M($L^>^>|_>8@yMJdFt zV?FACUh9xh48{6Z(5iy@8h?!09g3)wVL{DL3sIG(&&PWiPe5beSZQw@)WFCpn;C1L z?mq_5cacd(+F@29cQ3L>j@xB1yxcN#+cG@J{Y@FUJp{dLAU+O}OPa+VM{h4@Yi7OY zOC08FqO1UUb;J4xKLHC?_hG5BYP zs8%R}v=If3JKT*R3OZkH$zk}{;J||;JH3aEW+t=1S`}*){M>74;p@|;I4-kJ9w#$w zI4sj4WZQrclsg~5#o#QxsxYaxaD5i8{L?Jt!^>g|Ty)I`$wi(gW(D+)>u49{r$+lY zUxJ^6ZNEfDR5vLeM8blX4){AV>=D$rjz8hsP$Z-GF7KTQTpNDK{{Yb1>+0&#XlrA+ zQ3w2x7_%yHtGAN8a6~u697LFuL3jVe4AlzoVBZ?}{Is&5a=*-kUilZ7z!EU!6$77= z<0$I9&=D?&zEmx-FBo0AfcQ-xSW+vsmv7QHrYSgqMvjr?Vs$C;zb7ZoU)>4RJ1tHC z{fYI8$EjARF%?!w!0FWX6n^lm+xbx#xs<+H{}vqf7}e{uS1++H1P@p;JPh_@BnQ5; zoNyaw>W!#jELSAGjVyz;yZn&YY2!-5THPCw83z4(TusHMK5D)k-^l%0uGIW;s9Fwj z5XNCN0Y;CmIY22kv9aw4Y)*5O)P2o8e(=o!|H>W|bXG`uh?)`g zXCAzVPWKP!S&A(ZRcxL$(r$b^TJEFk047wv~ogfMSiJy$OZUKP@j7e|kroMd!DMgVpnoZBDzpv??;a#XgUy33b1r)_Io-9~l`i}l z_+!=8<$4V_V@5P-a@J~Qw9gI0&BK`F)0>Ji;d4ffeWDqy8+aMnO(0N#=_7p1KHs9e z%AfdE$a60#(!hCd!#XF`2f8!ls^F|~-z)n>wi3s_3chk=TfsQPL|m|X%-h2ffY zKnJU{l~hI&UR6s__+5!doU9GwB zoEo2U{r6Kse?3o6_U$V*+W0~7DuvBoVM%8SEdliuxR8F(##4ORQc(#Tbh><`}&T~>Yab246}K=;D5<-m;qaG%PsGgRzC6Um&_*-r!1%klB?cLu|@ySwFF1uMyt6283{9enwX-l3^ zO&>1$OH=e!dKvh_>)8v*92zc-d`vPTgc!9jtQVlki36PgBl{d!0J?9n-Cv?W9>HmO z(@;aZM3E-0CAd#Aj=0x7Y^YLK-}P&SW8rfuk{HegmW+nTfxBxkKo3S4@dy=aB~efi z6fD8cBU~6?VC_EbuDX!t)2st}VQU4IOmm{l8p|Wyxrnvp!}ErcoZelZ0Zp$3M7Bxp z2Bx}o!nIRz+29wHSm(q$!2m$WDTVR&m}018E=Pg$v^BxB)gEKqZ?XU(N_X{li9eEj9v`qq*k^tW0g?t^w;>Ipac100`}Zu z3%9M^J*&-kx`rjD_<W3N4O++R@ec9ghvF$LE^!aSN?VH4- zA*ve;`SDGYJNr}C=d4R7aiwy0ixm>T7CL9X+kk)i3nCDo=xE6lDUNgB)m$4YQ=dBJ z&7WE^X#Cbmx4}yha0|M4pS8%p>PPm|`gTOGHo83WX_yUHdu%@wk$HRnyC<;&WhTG5 zE%?gTz?6xYJ~S;Sz%-apVP2Cb$hR8|4pe-XK|6t=7~_D>shE;DXqRx!l` zbF&q0UYn5gQ*V(XjM!z9N>~#a%46{M6!Mq=6Wq-gSGvoj5%=Hdxd~9`JuIJ+Pf7NW z&$isagTIKV49z@)^}rFDo!dNI20En}cA|jxZ5@4Xgtf5Wy=@6xgh1?bw1_HKrSuyC zi^6h3_Qr}0I6Kr}lOm+vy>8PF;NRVX+NqieZ-dab$o0faZ9B8|NM_6K^Xuq~>B`%G zun)GP2{J&|P3=yHYDVWFe(eqsakQ94p_iNwWGUJuA~uK%7wA<|h=Utlt!9U+dH_Ty zP7&6`r!1$5RbD&3slins-hR_jq)mvHQ{iD80o^d!y5wEEW5g2t%{pPI}FZWK-h*Ro=TJfeHF^>3fA6N ziRXKQklDIyDud*PmV#o?)lDrfJmm2_o5_gE4PQ}_Ci`^BvCBM^ayyZ6;m1hZOed6& z0R+O>kMXF3eizNX{$b!ToatGzDB))i-Mkez{AKtZbJ~4DC^?Is-$GdRp$+JR`GP*( z=YEpJ*5Mp6Mw?z<=yhXM_;B|`znSsj!$0MRk2ac_iR@X?o9JpY1AcZ4V5vr0{wZ0# zan3`8>xZ49K;(~2Z~HH!_FQE=21sV0N3X>2&}FK;&9bJ?43*wnueCMR^6MnVhkHXL zsW>P_lDv@?vyuiimk~_UX6dKLKc)kpbaOHv=+9+}YYGk#Uh~$p8^()5NtSrJRaHRO ziVDaFC)&a}aS3t8jJm>x9qP8)ohO}rwPj6X$QYfiF(wKBaix9Pym2J8aly9Q^#ikd z8pvNdn<{#`4b`;Q`ZB}rn9}`~`J0`h1KQG`wkNO+&=b3hMaG(D!E_VgNNO4%4NV|k zmhE;)lg3n`b(*+fATJhGznEToF^A$-Nlp_(A``6vF*d%!A+8Xi?$jmzUS`$4G2d#k z&W*Dtbd z!6`3m)I}5;iOeEc&TFH0BO`G&Y@8@mou(75!p$sd{{i2{+Dn5Iz_x`P@pQuc2wS`t zbbO*{xyPn3Ws?rR9XvkzXaxs7P^g5g`pd1n`5YY%Wl;t>m5$kI#KG~DIn(Pb{E4sV z8r}D&Un+#@fl{#NI1-Sg>4L!Tdbt>bt0p;d1pV}1W!%)waX}gqMN6#3b674#dr6>Q znY=JM{jqxB0oqjq{9-NnL3;sBlIRflPXXI$rOl;km3se1t)>c((v}=4p0*WF0O=Z+ zbZa07t#cipi_U2rB~5mY#wGu#+Jcfgs%if%QX;h`g+!lp-ko2dVAAZhW=W2D$E+#sq6N>eOiiQ#0yD zF|j&LU|7hDJv&YUmB~LH0c^lI?|fd8mz{R}XC5I#$X9pJbN1Q>EsY9QdUFb7T%ZpR z3m&i@@0Y!AcdpzQP+f+vbP7*Czv(M69^tU672X7GPiX^Mx2;z8F?23MLJ8eG5Y(R= z)Ch&?$dfd#`H+~N@JnM9`j`J%H5xk@>V&h{Kln6JxLk5XBuv^tFI6ngr6;e z9VLEIJT<>~4C|f&z!@wom-9E`2Ab;Zm%JbCrVJUs+kb;ujJsSxwlslJfpZ6 z`p{M-;^KpXSr;q5EE3`Tr(u@>o=TQJ@So>7mYAlF zWVJVX^?x9c{^vqttfP#;O)@=)wmanxZQsS%n;3M5S6fIHiehsN(_T6DUS;9vpSGZd z5MhkWN&6)c(FDD&o?$()kQ-ze5wp+3YwI$&VE~)8U*_`Hoku`mc2h5tq42b2l37!5 zrFXF)R-ePxH_(SRmpt1mW4VY|8Tvb4s^+ttoJry7?YfW!f4Tc477$px(k%-Jb*0Ic*C|!Xw#)ptrV_* zyuy^fXL#;5ROz`rIL5mW8R!l#lsao%)|0c}3(l#T9PgjuK3&(EBK zX)DT3j9}jv0>o!+7$x_B*&Wf)_QZR36Q4c7JAu!`uC$_}zIviMkK#Y%Uu(iZ|42ZZ z|HFAOn9xYqw&R$xp^ z{8tS!58%|FAr3N_+lVo&X%@w{8$JXKL3em12|BDA=4-o2z12yTc5KG!6;lZi#`$62 zCgJSOx4s6ZzXyaoDQc%RNR10T#YznWT-EJ<07DR!C+Fj$N}CVa{B@Y1&bEM^Fg~AF zJK;9yK)@@p1T{vUxrNV{QPG3s{m(uODDUIeYf z`QWj^M`0?0(iQaCDSV)o@-_jpUS)NoA|^;+Sw4+5pu2eDL+nF-Wp$=4&eG(NV0@KMvEP8%3&J7@_(rW0I2gF3*CPc|3m=~p{reODH zb1WRpcB17LAQ@(V8|hsFoGp5l^oIg|uSmxx2rWp;>#UA^U`Yq6mF%e>@RfLier2ZH zmXy&?o~~Ql43`92pl$qQx6@L(@OM@Bh{|?d%>D9>+sf(QZx~0Plj5(WOQ>feCFK|1mBg?0=;RAjze#0x>y_|=z{lcWV3zvCraPM^=FU= zPzg5!sOgnE>29lM%S6EJ>MX{;`>k36j6b-> zFLUR0(szxm3s?_(oO>*5M$KDzLDqAeOO1su%$NB9d(;AiXvNp)r8$S0@4ebK3(dlFBvL*ej_(WQyNz7s@t}J* z)v{JwyRSBBBz#427<)Zy4cSV{K|#yvTM1=9yM@Y~#?_AIq4$+^75LJwHFvDU2rQxG zVktFudO4kxXT-`~!E@bKPN7_)xBPZ!F=wj;U2WV-{#c^Ls5bxl9r4#vzxiJ>0%}(# zPdF}WP7mWFVsdnGC522x^lF1qc?ZaD?^Rmh8|N<$z+Sma%_3g^&6UrH$XcIvP$XDF zPkAijOceBFy14osLhd`>6-E3?MOew+YNl(8W^1cF8!Zd&gyeM9I&U-BpuLc-`F@_9 zij6}Sc>vk*!labaThU&!2kz3@t3H!H4L9mOKUYq)wC0a1=qyZ%zM4#?k=>`p@s4SV zhYj)mvXwh{V+^CUO+7=?jq+Hy>g$8(?=u%hnWfCu23<;^JOWpFUCsV~^nW2SDR;sp@$E3r{;H$~# zX2`&Bt|H{{W+`sF5&~T`9%~noooJ{rgUb#0j%>F51B?3{_&=lMJ_Gs;v_P*wqz9_S zRDZ>nCK4__XPzix?bSRp?yX^q*)&c<+mary3T12|u?+OXG|A(4{pP*_pl_?z_PKmU zwCei#^R08yU!tB>5&}MS0}Dpwv{F?-|Hki##Bhc}gkuqcC*{ZEy!4Nkf3FLvFnry8 z3o{m+&+!l33;V3=xnU)d0wrmhegg6j)f}h#^ZV{|573bsFH#R8-+we%*%Pt}?2X?B zgN}1mA6{%v!4JnvAu^VOVOpza3>@X{6X(F09z=BIBDtsfxWkcZ|JabR*kyGwej1no zcwB$rRZOsxxzHf__$KL-3JiY?eMyAj2=$7(5Cx!;!Joa!+L4i%rG$s*J|DjPP<&kal4)dYrUY^Mi^a_OEd_~fOzM$)e zA6x9ZuSLIWDGF*L)#gy{>45lCg)s5 zLn^vmV7P7>Zni8zbkGpNJN2}0m*-g1| zgw8I;g3pWxttfj`!AY7~V6+87mQMONu?(N3KNb9Yb~Epd%wH~JdkrgdMB-P_gDk>p zq~^57B$ zGpMW-n4FcU`PA38sj(B4zTRb27nT%jd;{H@v?w{M&MmhD($LRf$TO+fPP4IQ!kRo- z4OL<})A~$=>s%~du4s48GI7aLSEF6f7Vr*$#jnr$<}h-wW*am?QX#zk55HO@(3+mT z^};hmH6j{T0bzRIFPG-Wb6Uj4ZKsE>!O=>fWXWW^<4fv^XpPW-n~K@nDo zO71Z^6-ve6v1#~A>Zhq>Pfk}!0WaxT5jBjX%GZqgBo)Zo zbwY`fk3ZvMd_Oz;kl(Obt=z?KxKtBn^zJ1O?HW<7CG(s8OdbjyE8JBsxlkuw2|&)x zn=BsheV;DC*&5d%`I$zvh`^mClF8Yv2yS|LM3ku31dS%@l`X> z@+*RD1P%-aSv~{8cZHlqO3m8p=l%v~5oQ9Q_{)G0v|3`fR-~j7Io?1rF>Q}VmyRAA zey_BpoCfI0?cv*2=`1@hac+8KT4WH}ZG>+bIbVnlQQ|M@)MFLggt>)ovTyXuel#Bk zt5Sn;A_0Zg`Xlo|O4k#)ho9@T{Dh|60`C8h`Vfdv^m&{>#D(&FKpTqB*zetWqh zwW0;m?ey-;9ZNxizSFfZoUvU}m#}&n%y6ud43RztRJ{wpCcW;=#*p?oAGtftI&EO; zvcUDXcHh?sH03PI2N}=}h1$z7{R}lHqIkM#9Vz=Acfrwrcc`qA2>}A9dNMqWy)$Wf>Ee`;kn*D;oHx|pcp3e10pG2Uu>(vv@g5B`;D-sst^uPV z_tegzt3eyY080(H{U+?0s$6ouXl|4b=*LM(&xo;8AB}4DXtuvV-kwa0iF*oTT8%G- z!*fd{wqqQnbzF9+lv#P|BU3O?qn*{f$?G0$n{(;>4YpljkvK$v=(yZb+w7vP; z4Y$Jz8T>){3iK(yB!LYtX@sY!mnG?q=qZnh1vy|u@7Oe?sX!ohYKJ?6Om?x7VGftg zw3Sx4mJ}ldplwp`I4jII4m~*$WJTQx`c;3Me0YD=)@e&dpmYv;L~UW`=BuVf{p&HY zP<;o+y_n9{OQ6_~I`zuy2(P5ABxy7;hhE}lO;SN~yw}KZ;Xr^wYgZ2|u_wQ23!PWD z;gU7TmXy`jfVy7lE#bq32lOny79sdu3-8mpd1nth#VgyqP*QF}GuEWg`|-S7`epg3 z>^1O!XL1uU)rgdTrFXYnfO`53kBiri_V$O*!^p@>;UG1z>wTbNl*q4d-IXou>vlY|>Zx01M)F1$*nL@-|_nLzcUgZZ#K5{B0HkfFh>$)(PWUorFfY;ESuQHSCV;LTxZxF(D{Y z&yE1l3xR^s=*6B1KDbG_xEFj0WPqUEi(xSfUz1%MBUnkD%dGMq$ zPfx?eUhQ#88)Xcw=g!Jsj;nNL^ZM6XS@5ZlF5HMu0I^dQ6HCX1gZaM6)r*3F9oSXE zte)#{w+{(BB#yj^pl_}d3Y~AL1Ycog$8S~V0 zE6MuxD1c4W`|QwJ1?L5IRS9kiVDu`bta5XlQ;1F4gY7ycjR^cqF-PWkXvEhOe`zOMN^h*6ac6E z_32X3k1brTZnr$WXE2PvIl<4auBEa8zHYEHpnv0FzsF`Dqt%*!m=+pJ-F87bG!80I z!d)F;xi!H?zA~>$ac{iFb;}_V-!j#pM?w;S;;P?}hFvcgG*2{8;_`Eh^vmX*Ncg*v+h%cfP4;AwP4Gfh%V)fL;lj{27P=Q)H^hOMccHS9OYKm zEk-PRnFyqe$$7NMi0!hDbA!da@ACQZThW!+fqS6$PsvUeV*TIVWH5k&y*ypXdozSDtvfyYdX=u+2lP1cn21KI z{-mJ%%!FgEW;5KB2_kCGQE4Jw40!IOH1=D5KN4Y#Wf!v@Qty!qI(Y^hAWPB2E4xiz zkEX*8RX{m(?A8>*fca7DyZ81^>ER?S=!ig~o5T1e=j+02$5cyK;d4{#o{07Bfn0zf z#&%CRJ{SW4`@8@*VxK+xY~x`eWqmWh=9 z-@N7KXcmt3ZU&Q-7oMaAg523GIsXDZXUMpg_NgX1Hjt{@X@OIK`xG1Rnu=#)<~vH$ zV)Gvy`wbdQ>Cq}3Dnpnky`$h3Gux+ZJPZG=%o>h$?OjGL7dbA2N$Iqs(h~GdbHQP?DaW3U{;d4vp{*I_(ZS1(BqBLNe zEVOcvU5N8#quFoM{H1W`$pA}sg=E(YH zR*c+g)S&-jeb^vVTTw4ZSh+r}E?YfpsDjO|Z%p^Pt%7kqHx*qYNSwO&+zP~^dd(+z zyl9RQH+-Wv zj245;k5g2?fv_hwfDVh5`f~n`&C}9w=*UHig-R*uZ0$f6`j567bl)?Rj92Xi_ysEE<-yxQgydE*Xu;4;Sk?~X)Ll%|2AEeQ$khrI;E{1#`sY57*+u+l&`WdM-j$?+p=Krr zI>lELN+m>l5mxB5c}X`iqVFb`(yp45Ti92jZ(g-guI-_*{~cZ2{$^x~&LK`izC#9B z&ch@^6;g1xjpv?U2}#DOYzulqqA*VK>d!NvzitCv^h@Mh)?+u}+CQB=YSDEc>HO;p z{;0u#!537LPNLrE2fnF#7OmDrws+uTnafD51`tGX-hUoDOOQ+F!6uVG{t!p~0(n=u zNi0#%G$tDY`Y(=q2&r?F9HmCpHr;>M<@Xznxpy42qOQ_K78adiM=SZA_YoiNmHT_$ z=nLUyci$P18={oQ(S?u9q@%gJ3GLVZOHEf$?YrRVd-||pIU?wT&;DF_Orhl>ez)yt z^DZiqhBXmU^92~1_bXN-R@nVB$)!+4!oQR;CbHVhpO7!&$^c0mFMAVT_&=qVc)IU)JL+&BRynDV1gf^kBw>U6`{USsVDnsD$Rx-FT z^S*`W!X2&E8ID!A-?hR3w!=Q~zxQKHj)t0-DfDw4`>U4x@_{mX$IKqM`V$IZ1q&GN;FdEt z1Eic^WW|wickPOkF;qml8x6R8EMetnLHAN@OqlGnCbIKOoiD~^RnssEU`s(Sp{~G8+I3HinIs34k2m8pLea%!+ zM0#h7xcAoTV?1;o5wjHsr}VCMDEhISWuRrlj_W+L0qB(_2G^_hlI6&pKVrq^%N`%; zSXRhI{R4>#A5PbxM_Y!0$9y9ZKrSfQU2B3x;Hx$}so6d2ZfC80a~5Ca6%s8oFyQ zd+5&t6zMyHFIJ|`HnKS($ponCtDk55zRL*}UPTpUEo1)zIwFuD2gzf=^d;L7=HoKV zjD~%_r~l;%A^@O8*w*{Ube)xO_OWM)PO5;);2w((ivbY5JrT0?hOX-ihze!)izx=R z6p2S~xWe(bz^_EDzks}OG9_`33-~rE71xBEo%04~E|B|oA~e6JCq)V(P@9E9TGG zChvQu)O^N3O|XYd|$QYJoMpPFT$v0Jon9--K6|oeUM+#bEhHlDMOERPMy}no8+huHvG5Q{IG`MC34F9ghH_iij;U+6G*lP*~2{oz7piHqwUUA)x z^{2pd?Uda7EutU37@Eca7x%ON1g_Y;cA$I0vd3?$?0P6!z$4K>Vo18p16gcKCj!4 zO6i&sx}#t9Rw-(#tN(5Zt_2N5X6SKkk%QyEHm{~L2>&zF#R5zdr|Wu7Q75Noi77BX z_UO?qk|_rSr?~HXb}ynvK=%VF5oL;f+bX2snwbecPhW@#BSclQ@9As4k2I7jyRGbb zGm?EpKv!w+U2`F%ErB)$tfwL|^{zbDWA0d5ZtCmF2&ag6{be(F&Up#Tf;;^br@$AV$8`-|abJ>j8ms zAdn}ik|$a#KVf0kQu@$|HRJsX_Us7(7?#1On+Tbj_AwL_l+rVJ85J}gFfLt;Fc2b+ zWr=}qOilbOO~+)#b*6#mf71* zT@ApLm$EWkfD0RhkMQC!UZcZwjvG@y>)jL#XXa$B4gwuSZAlBy$Ly_K-_o@f)Sja= zO2`~eVg3wyKL{J#JyykF;t4DBGqPYQ62#s)S;bQooPP}Lu(ttR5z zh#g^sx8|=jkbGW2AHwOgJ{TOz?@A#L5G`#9qoq8i&42%M6oL3U?7awunNDB{CeOe1 zZ3ihSVhAD~LKdJFhEFjKfeovEzi?ABxEp65ga3f|^*v02L|j4Q-2(LYcvD@yL@2vq zPydE0uiNcWuJYv|gdIu|jN!{U1U&b281HMBlsY|>xK`XUzy})y6lB`}WQcHRf3g2n z`-LofvnL~2@=!cBhpaTTmTd}j)W`ptk?bpJ#_*h8^f`jsk5(hZJ(Rz8;tmJvkc0Mx z=8lB+q@%~)qWj_wmyM0E;?TfLGZM}nqYfT#d!;&~2twNt?2(Nu(UV#>`n<2NBk1W0 zWfW4u7V~X2pU%j+WwXAJSoaFQ3v`M1??uJhHU@6~CFS76ni@N6F}iw2(ohgz1A3D_ zO_6P}GD(qk?Y`((#RnSew#^wuc$gt`g#9Udpl>cKSxM)wa18Mp_CxkKEqS*v8r0r+ zuLK@nnXu4{qYp64VyP9%daE~UPKMrY76Kuoe#W%-}9qESCoh7wDccm35q*%0U{q_ zR=>&q{*jqmdFxtO>1dnp>ATyh%7dPNoE}{ocQ?41f~^0~-db7v!5DqDZl5B4n9c`zR+OD=6CJ#& zTVBdf8Q^NvErLk32UyTcza@ZWMBIiE3kmfY-kMhQmAgZTwpX$qBxTux9%Rv;ER!~Z zGJ8i5M?3JX?{8l?Evkz!6fW%x#!N?jdg?E4Ce*xQu_Bw$>*rKlwW9_A#=_-@BkMQh z3Akc|&`k7r%z~1X($WOeKmY!~;uFwWn9!2`(t?cikNcnpkB}A0NFBy;#hgi;38nR; zZKEr2m+QoQ5%7Jyg_UTtG0r3dCScF)u<9cNW8zB*BmO${p>oSzIHJ)6Op@QQ?b^dU z=#Jen&qagH8j+Y*p|n?ADfRN}ru#x4*19nsRGEw#hq3wYSE5Rx9MlKby$N=fgL5bV zv)v>IFtNr-aX*sB~5bqg`Zh+8yXK=4~~yv=Mm>On=AyYBZr41asrlLSqs7h->@J(38S7rwCd z)L#57(>~Q<1^qp)T1Rd)3n}U6w@THLu$lI{3^dubJRx+fL-AUl=T@g|vN8VKF>O!O zq{~kN&b3Gk@Wm~b{Afx36P@@)B2XeDNkAC45QYSS^Y-lyPYM@wUZnx$)OqAI+RYr9%RXut!hx!Z_x?O6Sde=>{Ex-+lqj{ms)h?ZG=xVTr-4VnCn|L2lPaaCdB5!FWl#~msi zF|*f-UPzHAVge1ulHCin3mjsjw)eR%YHzQ1sZEwo=y-^&WrS2)CrwoQhlmSC$s~fb=Z<`}>7Pt<$-l5CO`l4SnSn~{5yf3ey&w9A=-m#W(Yh<-}h7n3tR`zj`p z0H1CIZ~O~BRf*}yvuuz7iTR2l=Qt)>1qh%fQGkWN96PT)I};TAJ(w3?CX0ws9@9+i z&Jv|N4f=6vE~)fO)YP+KYW(>RF^${nduKyV17?P`9)V=5FXQsj{Vwc)#QcH(2BW#) zv~e@=wW9Lz@1J~Ln~xJh=Ip{j)>1vTFZRf-Rx;<{`v3vxyZT$gD)p=+53<}y7g@9? zj!P}>_Cv|NfHR}+?K~RH4dzBbrX}JX-7>{pRHkxpDli}e#9z`Zvb^usA><-e?F-xB zswwnDWeU*pb%B|KUS$@th+~8b#7JwBuoZ1V)xIS)SSxh@3y*eLdR`#*JQ^1M;S219!zw_axF| zy9up4HN09pDGLk}+9%>Pg3{SI_&lR_$G+HuWy?EALzy3a*eTn&2*jCucYn6P&KF_33_uC76OTP48q zFh4)$aAoji1E0iH{2z!RLpq5B$>?W(y(A5?H_cf;@2=orJuOW2{aIl8B`21IOZn$9pv(&i-SqYSvTlI8zX0duS(~-i3WBSGUehbIX1c-+ z^k?w`SRNOC8guFYWz`Ur^4hU_z|3Rz8%t0|XnIg#Nf@shYIN=pN5_Xxhz-XJ^EXgf zLXJ#`8(#u+)yy6fj)l|ARpjl7JBCDsLz-sD?^>Ea_?|x&rG0cCth=5S{%d8fm<=t+FrY zJe^d7HTaWnj0sWMrk6o?t15re2#wKCMR?N!`@>s$wR)mm=K&+FkYS`*i#uB(R!c?w zMgUVltiQb>9gd~QD$GRWoKyj{=XQh>JKfO8Unm9Tma>szR;}CVWQ5sTVNZA zB>!`+?80S>I(XBNVs^;lGSXu4kbUGL-bOR~E^-aFM8Boi?k z3+rh3kiwxr7CukLnHk4_*?*k20IMewr5E4X4vwGVZm>q8UGj|1d>{wPs42?r(UTh~ z164O3MQ@g(_o6iste0!%rEjmlBZ2Nw9>E0G40gk7lJ2;DKb26})%K48UXZ5|>^{8d zD2cm5vL;*ijTZfcst+M%4pF&AA6PH}R)?{3J&MIm$-JdjyT7R5eBG2fCaA*xBCs_9 zdRBd5$kkbG*|B7hXjwkZRul8cS9~R>Oi6MpcBz@z8m3b55jcn|C-OqEGW7uOsu-eXsqJU7zW}AFgpLVCWrF)}2VzA^X{KNoV+D7^ zui@xC0QJT#j zR_Y&AbE~xg<&u-T_KbrI-y2CN+qNGKk->H=K^S~8jHZDp5=3&&bh+f05XFFW2E zO)?P9$UXz#^!uw=WrK9bZgG^bQ$OaV?7FJSukV1M3}0AGZ3q0}pd0d-;UL#%zd>-6 zNZ2&h^dxVOhLWvz-qN}F^#=OF6LGhT)<$h<=hE#&C?jrso(>UrKMqY&qoT@kah(4S zHJF8ydudWNHwgUf(A@rCY4}%Oo_)ruz*2F-=(ceF`u;(irS5@^n26Zb2)2|44?nN%JxMjx1aynxKvHjAI^w2$%uEM;E5Z%alHPt+RsA{%NhrjEPAj zyWeFpj=-R;oJ7>8(CvDIOo?bK;D2 zSG;75I)P2GzH#uN-_<-HkYb9q_<|5Sh%J9KOl~83BERC*wD~wYnw?*!qdP>0?M*5) z=MCRF)JI0;v;ugL0&vWj-@hT(v*nraukPbNG$Hi)FN+GR?9YFifR6e^2b^w=7{)Tp zH$afm2_g(T_cR3%^D@1TOx}xe?~!5Z;#ZaJJI11mXKqisyfuLXjp!5kre~<$;L=iY zf?Igu$fv%J2?ZYrI)8Qi=#daWUbxj}u*V;gV{&s{s z%SmcEVm^gFS=SiuNyP%urw70@-AhKA@a6m%A+|P=O1EnS@;hY)`eIjb)HuK|*F0er36l}YREmW2aNP;rCBBsC@!H7H&7OW!7g}c&C?8> zWjQvIH6s*o_Ur95GWEdgY#{xVzvPd|lXQ8P+|l(DBbzrsA>%sE+J_6lXR>`yrTWDV zzZpzYtVF$Dx^Z&w3!yt?S_8y5b$P&O}L$(37qbaD~cc*|Z{Gkeg$o2TNOR`v$0 zQxMXsq3129E3yZ2J}{S%dsLIJOnNW5C0mhNG9Ld{d9}wgUzm4h2bOR)nFS2=U5%-}C~B1T9rq3)?eSWL8QTE2u71|%u-h)F z?6EurMS|ES5eeOdl}P4Xp>))N6!2fYWLYEP!f%MHRV`2P`fd7n;zlQ?T9p_)ycuC1 z3;NAP6e#ws=Fy47kd>pP{3|=^zhUparkgAxTg&L@jUGB_oL!+6wOj9rdDdBPkCX2} zox;e^{={qS`Yk3M2sEgg;QI8y(dBAKT!#pEo(L3>7cMG#7XJs1gBp0xa6z1dfVYzE z?23PUw>~c^Q?o7?`mHGAy87?8)7>?k0{lkl-e7>B_LBiCy|{mXmsgOvXOsO*Zk=A_ zH7OIrpK>)8tsQix?Zg~h{0n+TeYdyxbeMN9UUv2u!LCy4rQvB@1H+SRF$2MZNCz8s zm%<23T3&{D^a~6=Z?1Da?Rb__qYj0pRwev59uZQ``fnL_$z<`K5s~> z(AYacG~}1wHZ|r?guFLn26kCJJ@x~o6?CmnC_7Sgr{BvB7GLmSk?=cY!U zdZS_7VGr++SyU7avNqisx0_Ipz1o5_AgS*V&6iAZR?S#c>LrctHXEO9krt1=2lJzH zO$CY%^Z^ZdoKQlk5~{1n2Mg%^2?~U%jIKqS6T@c6xH^K3-Qb+l4x^|MDj3Vm!~DH2 z9!Q`dM-V~xgL3Rs);IE}yXfjy?=Vqj2fb3Y3ElxgFe%X4R8Qf&d2$Ix^C0t$EJCR} zMc5KM^g5Mp8DVc#cye70X`XBm{_?i_k5Z=)T(bZ^pyP+>A3fYpQDIDy*l5fRL#c|O zP>DQ^5-)zG%Kbh$1zOEEhuyiDw)8IMY^g7I04Hc%Z6nQNs zk-fHte$H}0!x3*%3B+V3a7 zCn;Za;}h`*+#U6{7|@`9WUTN=LVGgFO$o&2jL8AV7;;s%%#c0Z1@!Zn#Yf@fUiLGh zbp@ZGdR{W~f81}z_sh0!Sm>80QhZl^tHU5c(6wxKGQx{ndkZNN(yv_O${Gh9w zTHJ+hDi`pazuftz<(@gTAV_6U(RiCQBy}$x6oK2y5*k>Z#KKa|CoC0%lkV?C0L^$Y zk9auzteP5!VqU@Op=l6>fvL<`y)M<~n<;RhD_^3a`07`N{8zr$QdT@mOi$w{s|8ZQ z^nD?@UrXS*_i*xo{k{GQ3ohmoFH72Vw^s^a3W<+oefd-ixyu;Wl4DORF7npF)xh;8xMCjeTx5a0~I;kp*?T9jf{vOAZ&YN3reGFO&6Bg{$ zF%J-k*%1s0-4G3aMXu#d{1xF_w<)0O|Ki|w-%XWu=2-=FaGps&G1FAx|HV9W$S#_m zqh%C3x71L4o|78|ibj`6QA9_!BN&Px)hT3O zYkqG{eq%5Qb%aMl7l8j}0n^1ae&fc;2XSGWzsoby9eOqDWo)O<#?~kOAKv5Mgs+7T zwUby^{tUOAZCo#sTB`jDn?qCYnNv1P<lo{Va0ea09rqzj%+Y8}@N9`UvX;pD}zOo^>LKDmCuWFh) zb;$}P;On5^h`Tv{bKooqQL+D;jk zCeo+aVr;me3s91uA*;je&o%RnjgOE+WF(&_MP}zL>d4;68)pCTIBwz}CkqW*-#Y_P zmp{NnB+~&7*xCcn#6vFn6*%wDv@F{pBLkAXsPTFw_b<1Hc#@zGXuLL$wZxw{=CjKt}{NG_Az2Lt-UyXIm5(@O;Z*U)58np)G!}!bjmI5H^Op z(glq?zrXr7Q6mdvf65D>7B^kRZ!fqpQ#4$}trDRhs^rdGz6u;_@T!`MDX`ULb-oL?kf}y~#fG`3GEq2|-k|rwulrFdnXl ztb=aL(XLUW`yjUr&UCMSM2LTQauxrnC%p{^-2lJnkc0{U4enMvh%y9f=6gv( zvP8%32)bLc)^u$sO?y#udjC*91yup~*N{Kqq_2Jew?Te-?L!UnX`i`!whjRty6XZ> z1vbqgSV0T6wJ+$zb^iJ}b>(S0{y})6x+#(~9Sx8C*P1!yw;>Id~xmI(pkNeS|K)V|%_3 zxNz=+Q%sB9_r_!(Z{HjVj?eIqr#{M=mEAMVVw>SHl0H$}P}Uk)hp2y;nFmvM%&{=r zCC1&CjIE^M8le%AsgPcm6*>cbQd5W?%oTrV6%t}tN$yC|d1&ax9q!9)!#ebvQ5WX7 z1s$8;|9+G`6a_hkr@AYDbOE{?OQF+lOqc8hF=^FeC4I`=riyhsvfJO06DTMlvp}yv zD)=-b(*>Pk>1E{@ZW>N$LpsbgGIg=J0)EOJi%pi;RNn9V5rJ3Q>20uR{|i6{UL+cC zwYM(nLvh^Z(Sp9>;V;iQy;R+M8(eRbd=~)SyU9P7^0Eh>Vzv-P1h)~5@j8iAua>tt ziz7NAmoDMmM``(t+>>*(ViIonTvglYzFYqh=HYDU z^{10P1%YDr20(nB0>9l-YPUDm6(iSVqiNShtWtQ7kcAI1tzx{yC<7wrn zS`WQR?9d2f36uJh1$yZdgP|u1^Vu9#6?sD^BGJa*Os-1_9k}-3KP>TN$WOX?xsF^~ zK+H!jIUj6rVwgS)yd*W(@;TVex0uN9NW$(W9`1mXnQCWTlMk~yre3y!4wPR(mSg=0 zw~{_hj-mVI0i%*`Do@;DY(&Xo2XbAuSn|&=#xsE>ms|IU_l#osN)-hc_Mq z`fuf))AZbW^R{%g6>fs&Gbudn)3+Rb8%XpY=nD{aXr-m z@oY~~Mxv`bY3<*XNt%bU<c72)i_mc?syafiTM#tGq=sh@GO0h@IYFOyYK!CXE7}q=v4F|l zpPr2jS#2wqmz4J0F}L>yLu^3`>@ zyIC1qp!}BCc_oc3>r^=dJuWSVg@C`05YhU!Ku(b-hJXHA$<;UJLQw^sk}0aV3KK21 zlOpUJmt8LKGiRnyU}6s-Ka4$-%`Af3QOM)YmFasPH*B!sQU4fS!Yr1#2LoN$9W}UZ z-AoQP#w=b&IZmOeGk{}lQ<*VPfQg*Tdp|7FRMzQ=K28CNO!ZYFQ+5Eg0`Snx3BL-N z1kYm6XnebBtSyTDXM=+mKeoQ}HcuJG2|BVze%FU_2FE_nm#HR*s$n!lg@T4+z|`ug zq%F)+J#iQ(i#04Hn33Rv$p#H}5*H3wH21e4?xBZX8go9{WUbe`@Hg3QnZM9eV4eHu zRf29d)0VA2gkEfegEcIAh6`>AG4I(GtsJXiK>Js7I5%p)k)m**9L;HZ5>nYlwgTczW&ACb(vs9l3^0KE{n%vEODzFb9gD>IvJiosLM zSoO@G48dK}d`w{Swg|44XJuPRVuo-KqxTIxxFrEZqFx`Qd!=At>v&Zgw+4_2h9gjX z2hbY$K8=q$ut86Xja)4N-uniN&l%jWCxy&F8N|L&<$7v}6zHuagCR!{`Qk`P)UPdC{Qe5`nK*O_26Z&$K~zU& z>3@*)BOASC2~HD1qxOC~jR0L0k=krg8Qwimi~!r6^ZlrTB)a_e&?$uk!Ueoq2Yq`L{efk7iw08~=$ zMKd;DxwhUPRaa642gXn4>HFX5eFCYkN^dsZZBTI7wCk&j&XSm44?a8TRE&^-A|YIX zXw+^$v(~Ggx{oS3Ut)dBT{L(a$G=B;ZtC}-*VT<#xq%MwBqlkLMa{`m9!BtEh|D!d z+6HODV_$xjMi!xT+c{tA@9lnO%0EfeH~`9SU12#D;*=b*IA`L#irRynJ*98Z2DUYS zc}>4z{|8P&Pm?Xpx`CU&u-fTY2&-1;p3IpE-JM;RJ_5SSZHe-cEF0b+6r=tR#aw^v z6_-rF?OAw$L#S$~mrtjt+DbW_Q!}?)eXn^C;K9?t90Wb5EkC3gYb@ZpZ(kVB%2K}Lj%62#YT@BKjea z^oxT!{|a34H)Vq?GxdXG_$)WTwz3*ZM8{eeI^ArF^3J9v-tv9C_6Sadb_0WrqV^MX zD8joVl%)-YIK84VUTTnA=$?nfZIIKSk~(AxD(WEJ0;1SnE$7VB%zZl|hkv*A9SEhm zdX;BNZu?DDI)EzOvPSl%&VULeq|qHV=F!N3PKLC2x1;SlO;)$pQQP4*NrnH#g6!0U z(-L~sHkN>d!%|r6y>xl47n(?P9+8E*(e44<8~owBS8TfVWpFtE`JXWo;=kogDv@xp z0_kss@t`|)2j?+0jbGk=W;P`L-l4c{)?V!q#4xQg=vwd3BQWA57CC$(UCbEQ*1wfk z|Lxeu2ekSix>J7DJ#IWFH7)SJ=893>z8hU$(f!J|z@%iy0lLijy$-HwIimP_ zODx(=gE)InOp&YkqvdZXXVer)qk-AxUlz*+zrloW9dfZwrh_ithh1PZ zZ!qch708xhMffgQh>B<~z}tkG{7Y=Bte~A>bFhTv^ZU9qX8XQ0FXne|fYMj?%->dG z?4};}F=X$b{=2m2`@Wn`J^sd<<&!K1=y20sX3%THy*E|?{{u+@@{H5K8Jrl;=E(w1 zbPV$}86qub#$R`Bqx|@Wlfw$YryT%O5n`0+#r^mdNuFFQqc)wD*JB`hMK|PM5R{WJ zp$0m)NI9$)94(@h=%dwC<_FH{WPJ{qJlN`45J2h~Shrf(j+c|ZJ**_CqiEl?L=rdx zTvsaK)aUHQyH?QTg>j*${~D-^{U`zcPL>ZSsK5Nfbr#pL7aOSw*co5Q3-1z8E`y z=*45&sqXdM?V0`M&@X~!`Wa`essO~GZ{9?&glA2E+R24~S15H+_tWzg zb%nxh!x!?^0^Rc^HF?s%C+jmb!Qf8khxy1Hmf{6vkeNfnVp&6=r#F{pkzu_(A(q)a z>}_q4ws?RmkdJ(=>eA82Wb6ae9jLsIi6*U#&@1(iF16v$rspQ;p+haFQxShX4X2{P z1-(?v>BfT@ziQv+@#>H5qMGP#(Uy4DSacIYd7PN^DSQz!W?cjH12I#S84uP675}27J6VSN2j8)&i^_Oq6!5+1sCGn5 z@tUu~oiEi>#C^&NCxyHO6K_+G--uA|ZKB%aB~Tf}1^45e2qu}GTs_XqtyO?ytE{6K zJOLjEEB;BVe_^e|?uCDe@{l(+Hv9kBz=7^xT?R#`@E0{r3OV&?6i*APk#8rEY}D+R zPZ*LBfj-%^6ieI7x!*I*WV;nw=LMzu4S?m4b^PWV%c3k&`H8s~X;VF?1C7hkw9*E~jlawj7 zF%J$XTB7_C()sau;F>+ZEMlMB#(HloDNT~`qL>yK#|`>0UF4*hbVLzWYrOvvjk0yR zeX=l>_t!(yPAKtWMsNQ;J6gPuq$CzO`mj2!I}`#wrAy3z2;epvq=*{KhrA zO}L(tFs$?b7Eh%Q`qV%p>?X;iI5ju4mY%~;6^NfRgTYxVD{&6z_9p_L^+86c#g_#i z{1(;a#nsazRuj0u2NHNd6h^aVmXPP~DRti*u+Wj$GzQ2ArowYqp)JsjvqNvr)0zuY z3Cb?k5`Ywj-2OP>a_|Oxl$8wEu(@Lt7Y!;cQu>;Vx{OHfczU5v0RSoRqHmMy!|>=yT;-Pq7qw=C}21oSF%rOB@(Kfz<+9x6APv}j44l+&zzynaFUV^Z<_ z56q=Ag*<8xc+hAU5?1@}sEH(yhww(@T^739FI9s(*%v}jsbjeLw)+~DnDU?Rl-kRGgT@Ww-y$q6v zx+2)FLfL1@X;YSI8Kw$RX5`Tq1PY8P(ryI6`sK;9(_)qmkl$C!ou-~I#%sr~bnwVs zI)!*8{sjFvg$~n>4+sgj@Ep*|@VqSRP`7V=L>YN5gDgL4Tdj8vmkB`tGR0-On-{ zXCnW5;XB&X!|6aWD^KOX%uR4?m&x4QU-P}@F#gd|;=K=e^gD7l{5`C=P#V6fXjC7S z*{C1n;LD<$K<%NV-U5BJtT_Sdt$=q-cQwD7Sj4Doypl&2{ZRgxaAR0H)`R}XEfMP| zw~z1LI05@@U1*KNI*_SpfaR6W8^Du8*Bnhe*VT#2u0`(%w}2Ha0L4QL`jweFN%ltD z^hD}y?6|*fT*y0a`Xn{j!LIGVPkigRT^$P%YX|k)6R6rj53*bdsqI=;KYNW56 zsKgMNj?HmDsLZy7>T-SiVVx304%C^_<=N9wXSS3#VHcQfgcamcerr$iDSMRq&T35! zI_eXAFFIfYtw475tv{32C9=*xI)ep%U86?X6JNP4H(FHqTs6WI@lo!um?|mFXgdRN zB@9+L_+s;y{C+!j@Yi{hBdgj0eQl;I_+qZ#9vtYybP2rJcZa{%bk*j+kc0|nn2Qt# zK~*pdq!Tmwx#I^`p(Dt5pQYztpO?wLRT~K2n*gQL?D>;d?gEvZTurE7Cgh?^7~JJJ zlFT+d=2c83K?m5PyuAC_zchqSKRf3)vQo8<&&`<3FC9*BV#n8K9`zIUm5!iVei z2O&+*^I?4$m|p{X9yF+6b^e4^(#)Fvc2q#jPTVlZ>V(IgVeJUIx~VhJ=K_@i}Nl%{m&?S4X{`AwUS=$LH(H5b{HNW1>Cj3|?4{!X0 zErsx~N!}QfU;U9U8ycPkOb$>^f@eCrN06sH3sH%(QR}I_D1NO*i8*218r9@%tK!Ha?LoF1;d{ zZYQ8y3aEHv1z*XitfQPy;Kzr{wE~9N%@<%9_kL8X9}}SBx7SIgNm}x(QY2B z8+@QR=BtXsA)R_kQlZFs;b{Msz^NQe?z3=R3YvzSGQRXmPwinHiDEwHz?gG;y=nXD7N4&5Fo7X7Vzob*gt`mOR3WF% z-dAGIp-c`~dCRyqBPCb8&n_Nbbs@>e{54vNw|HQ|KX-SC0 z-CsjhQsk&{wX*9k8n97k<~QrzqL<*3XnY4`WY4|1zCNU7001SRC&JWS~@BeG0 zNIbRiL__}d^Umc+_P;C^D=FYQfj)$Tq^scJB(Rd}=%yARiPPS%Ve{}Cq8*D5N>{~I zLJ?==dBEsHdMAQT6!!|<4O*hM>%SrQPc=Me`-izbwz=%_J*6^NL0-7RhcGb%g7eXa7fY_Nq{fX5sL6xC z3teKcZsNLAuyk<2!!YnxSBHh1*!MftZuH z1w5UUJ7Bi|H2eo|a50v-Gn=1_4e4t$+$!yXba=^iTS`G6=>2i{QYFkt`x)NHyOeSb zS~^mR;$17b-M<}KaaqS?IChtfNk`S2C>)wL=-OYI=}!Nvo7*&%JdDld;=RD|Zy_Q! zm6FviERrU}!0rf(odqI2eiz2Ar@kKTp;^qSJtpk`cC#!EibFPBF<7VU1^sm@r}jp9 zlG^FdUYU>as^jmbX&$Q**E2S4w7Idh;wRX3ZDDrf>?6U=j{rK<8^c6^BF;|f^o_b* zy7Jv0$_3wT%u|Md(d3#}<6hajsOA)8d1?ulgue@l`G~^Td&lLurzp?Mu7# zl1cHBKf!_E&6~t}cuLfbLMWR1X~1uMSM$?ws-h`2MwKrKEK zbPJ^*l0ut701U0#OpX1(u@15Q{f$H(0pB7A@v7(#Yvd^L^;Qv;(~`2L1bwi&uO9*c1_U#>Y4`Wg|vdr$4qei3${4LlcZW0 z9im_f)h2@}{i%U{{GbAFW(HKF3PXRc5kFd)9KhCdCHf?G(qMyz>5kl%_av~&w0e!6 zIXC)*p*c?819U7ign`0-nWug2hrc;n-jCE8JJisl`(G1Na=GXjJZYAVy~#4k8_U{sdb$|+40^H>Iayq+(XkGer zD={OwTH) z-@_F-@P#dRTXjOdod~)E#we#&)w(YVuDDFHN8iS;5eFs3+_GExv1eJO_ESL*dWN_VvqdNQ(*B`p9J1@N|BNu zN|Y*;1P;4+JAt-Po?AcSJ8hnm)wQxtr`rn=Yo>)z1R1&4e>ELANnfO` zT4E16jhmAC8CR>h(mJb?T}S?U6MKbysFWsv(WFXOGeardO0 z4My)LKZIv0*&YyOJ>=iUr*xK3iqZn<@j!8;!)HWUef)cAPcI>m7Ia-^qBsJBn8odR zVZZz5)hbow;bP9QG9nF5lC+FfO<7WK9qmqkV6Up2@EjLGT8+~IP^UqRS z6Noq-7ZeL#Ua^VsJwwCU9$~w~=f?}V-OzRWI2*&rs3v|x|JS7eB_|6)sA!f4GQjf? zW-m`<01&m?vMbve>w2?m$@mBFvGIrBt(M9bbl5mPYH+Ey$!&d7u@hM!kbz6aH;^*` z3t7o9Kzk}Y)CvAKd%noe-X(oXq015}sf1pDlUiDEzjAGcPKt$AVdRDbN4LVxcitd* z$d#fj1Qr7H-bv1s=V^vm&h&e_QQecCsyt2$ZIt@$>4F;g4n^^*p9Vk5Fv<_J?_3M? zm=a>eu>kqZi(UG}uetBY!<<}+aYEfl7XDwx0?JUP=O4Onh(MRl4gPA8-xYZpEyb5X z<0*nC`hCg8Z$)_t+bU8~Z-R5vRxb|ohoKrrQ^9u**UH}s(Du91--bv-q;&3bsrMix z9k^m}?^Cq>{d9{}*h?z}^1^j>J&x=cy;{Lb-9W|D<{ecu-&$;VTpz_9^7mlq_jI}8 zLAHL&P9Y2T9R1cVXCJyV$2SWVO)U5Q$aoYc;76?BnNOW&Uj zdMAXD>%6qfD-O?B^SMF~ZpSp~72zqm>rT}Z*Z2znyAU`W(D%ODNT zC+KZzO#NTarV@u_Ot$`UKNc6Z6c!5_5i!fZE~V zJ{P%lJbFHI2mM)$>4&EJ`c~p}`HPm}bsmumqQIej*ipgz(DiSCu0;GJY$T><_gqzP zYSkyWjc2n3&}20~rM7h3>$TGZO}{OCm{pFlVWXSgVuR@N^|~z$bO|g^`=+a;;@N`5 zmq=K)5LQ2;{vCL;s=wqRMJzc~Qf2s-KFwYbb`Z>hQC&PgLl^1`+!2U&7oNYMG?cpi0b{Zy~H^FMrFR&s9NU5`>S)di{@ma)GEA>12H z{P9&k_x{?ARB2Nbk5|a72B7rkhGI}V&+(0GAro>vMq=OuC?c!=wf;KTPFxHb0XqGo zHa)k-91~A=;CjkyCYfcmV*)U$1UOHIZ*8G}h}Y<4>1`>m$2{_YNh?kQ8k zZhhzR#6wpJ<*NxOCw_8~qKsP6ga9$hDAG{Tt-1}C+hQDCSo;0*bDYd{u7o@sW+3UeoShW>?SRzW)@k;t4J*enSR*b4ARH$T_1ZP@AfV4hh=l z7$eU~72*V5+~3{#A+M;D#GX_)RspwxwQg0Oe08NDm}j@3o|)W!IC!+4Zbax8;CN2Nz0DM9q_Z|6e9lBofF=d$pxaCv%Q;SC}iFf zpN*rw--9_%>_dY)X1~a8SE&yHpj)9u%zhHN>ej6gcMeK^&t)C?vAJ6-=+qqaBy58p zQpA49{jgC;{kS1Xy17m+VJMvf6z+A?>*L8fskDj(X1QN^KWq;Fa*3(J`Z;E1oty(Y zz}BIKqik1skm2lXqf3LN0D)X6u4Tca(>5$IpYmgtB6(@S2dX7su6xNvgHGNr$ruPu zAv;~%ZC_T_C4}UE*(bTtzdGTy3p$PxkXr+D1ie45oOJ0sKZaNf8g)jwdp*)(08Cm@D$ucEV=g&sedXxZYIwk2EZce2f1zhJwE;-J0}L+^ATTB22E;4|F2!P1l4 zi@o>7%~MFDJ5mZmmTssO)#BLe>WUe3L!p{8tCWGW#=}h#yhjt4qF9FHrjp@}a^tpk z0?ANJ)q!<{{px+{MQ&S(zpc;m@6N!IA>EqdXW=ZXEj7B;uLc7;`PeJY1BT7%28)ID z3}VnxpGrQQwN&-yC#VX!iM_x;qbUJ9t3(kOsAWF%@2_^$u#>e-N}u{RHB5|6(!Q#> z08c@a1=oGXTc{1P*%?3T^vV&U`w1Kmotw*tmx<^c=orY6q|JI9bLXOE%kh?>7SDms zd7$Fh0zufP#j*3k(BwdE7cFsSqmPmPo1N^`LN{RK{JBm0s8qQoC_;~|#gF&)M1Thk zDenEae{1GI1p175-Hg#~0k4C&mC~F1#FWmb!L;AT;#2|&bm=Os(e1=xFDj~*<_^qJ zedJPQ&)a-AKpRJC=JkW&X#xal?4UG z^$DX?GS^oLJCWK$1&r}%q5O4!`xcuF;O>JjkS!n3@OxoC#S7W1;YWow?%=j7V`YCo zx@Q^v4;Tmy{rvUKIieOmr9*`-x^Q2K^MW^KXYQGUU(5Y59IKMTuqy7fw+n+sli!6U z31Ft@!?o=@L>34bbl06?Y*z3;1N~gRjk3uc;czA_pmP#ya@9QkXk|pQ!#rw|Jtiwd z=H=jK9R*QgJvS}SsGSimKvY&@)D8|aWJ80n0vF(JJ2X$*_<8*Pvk@1QZRbim2s))b z1+gx$7)tbXVGDFQhF6203F}io{Y4tyY#_s+*DaD|`p0a=GJ%MpJXTNgOy||axAWS; zoq*_f)epo>ph%A$d9q8Rb(w-;4LoOyK~MTvXAGMo>zW)C2JrD1>um#PTTJSX+&U| z#==Ld6U!zOr^ol`!FKyn0d#+^BxQ*SV>~m3^y>|zRss77D6Q?o@&ipuQa<7`s}1Tm znp<>{;O{kodJ37vZg3Tzz-hKbbWv`1Ow-&_0CZ>I~;ZQlM$=V53GXeJO?%+bkX$n%-Z>O?9yf~n^JR<>o=g*abd}> z7JO`1Eh29dNoR!M?Iqzk_mgZ+wQH9459pTv0c79P6aEYX0)&1~EFNNr5{ys6?v9xaB1XNDxF?-unEPvTlSX)*pJELPNLDsw^_0`Mf?3D*7QsCQ0K2) z0l>BbY$IK9@;EO1Z1)WYn8YZsS^vGpqw>)I9r}Cy9}IVsO{l+65SHZtYsB{gW!{;& z7&TUJy2ypY+xj~tujPS()M>qn2u&Q(INGq|$nSvu@bJ;i&tpTI5nX2q$53Jg68|j% zOh%taE0cxvHqfIxnug<eO8_kxRX>1tt2_NJO7?#=%k5pLH_1mi_0fPS2e^6m)&sRU>f zBoxrO6(e+!phg%hv0!sf#b$-|5h7@SQOkT=%ZxjcXV2bQb|aun-!n`t?(Q=db02GO zR>`-QG*e!Nq6G1XnttAOZRmf z2#e`u@-_0#h-cJvZ?0znyk{W${z~-CV7|tdt^eu3YMkFNm5Ngv2j?R2b<_pjM!IS& z`YT(|iMoih{p0|V-D3=Mx~1YlQoq@o>h}<@Qrrd@1E*0{a#=@*uZ6=huDF0SH~9$! zIxB|T8*~E+JbYnPpvjUL)6Zq6bI*85D<9B#CmZa+e41c&XA5tYamQT;s>XNJlt`sm zXCVc-BF|0K)CKMc)(0;8b!|MH=}h099rS68CkbP-#>Q?J3MkV2ud4oKW!%aC7BbH$TeCO zH=}_~p7D%N$4Zzw&iJ*UrYOd4a?fIEL1hccIOfr}aL|8o-O9d~kpN&opT97QJps9J z++eEJxD(}^Kkmpn4!bft*v4<&WiQ^-1kO$zp!iFR0m$df`srdoXg-YlnKUjeqNJ)tJs_@0JupUSJkd+Nk6^z`of~uurTQOe z&jL#@u3|GrOlWG{c0>?2o7w*k1LoR!XA|QnvHK1W>th65&Ix~azrarr*8#*`^7g(M zX#@XsLw^x7O~e-iTzMCr!Yh@#Q|N_Ypnu~SHjduGH8JQxl;+pLd?|&W9P8!ZiA5s- zc}y|cOq1v}aJ>R2;adxS4FSJ*o{oMXdn$M!Q`Jyl(#BqLeCSECSg?2&hqI2NGHluI z;y)i-B;!ag$A93vzLE5k7p^KDvG8HNUCTm(v(Z(dZ&Jta(D<@dSPX=bTB z81{d$QAY)x=G1~NbJly>vNVqjTM3Uoc*tYEo8T8{Sn)Qk*D{?v1jqyUSyZZuRHY~@*5?jKddY&d^P{Tzh9AKMFS3pzpz}`103|SUg~c{TVe&i{Kmfd$aUk^4k4U1s*_tM*;nl+rj7a!1(y@dBh(#SqL82t=^ypS{=-O!r$c$tb5&Aj_bKsa7Bb0 zQPCCv9$(nW=Z{dc{I4G-QI-WU>8$AFz1Meg&=}vpI~o21oeasIQ1Xgn(dM)oF=4%TX-s7nmd)=b&FNqi&U; zk9t@0jYMrviT@mpl^b+LIJ51ka-n+7qy{KN*7E5Y^u|J*}F%=ze)K;`jJTB0=dS}-cPrkF?oCkNP!g$=5wiyjyd2x z8{ax(uWK!nL8k_~;{Ei=D~9JR|Lli68%?oUE+N1P%2W$94MFnd-(<4x# zRib|OM7DUxU1O-GtA>uT1Ue${eJ^8gr1;-lIzjB6+A=Q|Q78&FsvP^cFYa~7vpCjv zVgY)o*~Yu`onq_LfKM@YD`!m|8BGa8ANOQV1X2ub8-sv&S zd##hRUo8i!FVWBFT?ThK2i@yZxFuV!Z7~ZA3EV5B^xa2@|QhEPS|fN zaF3gR?h`RRj^2Ikf5ceUgqlJ+J2frt!l>lg z?bx7CY94&d`z>1mQhX@DKjw4D3XXX?h&)85Z zI+MD!k+K?W`ko)?I*_2eRwUI?*zwvu;uu`slFUuPgg~mxmy%afBw5ZHei*e*)6m}# zd;?#max4>g53B%)%J0SN=wM~hf+Zw z1D0HhN#Cs~Yi;IEvrPZ@r2B1#*Wi)g$DWsrItLzZ^21Ncb( z9yG_flR1s&5C(h88rf0TdpBEXugYQpghsG{ZbVYWTDz~l^HoE5{dW(1w7kWyd69_C z00vG`{lc+=H~FZ57G6B&vI0-A&N_nNfQxWIArs4jfccSLexLccd@6jJ=uCf2{ILvA zKIo`2o990?=4_yGJrzq`#5 ztgS*Vh<&?b!z)A0f#2fRvKuY;Cfk`B+aOG(ynB2*H|GNO-mn4t5R+b6*vlt#X&|hP>k>G{0h#5JbKEg7b})mAAEU89%Avm= z%>e5@jRSOsgf5=dE0kL5>Rbid=*tLl7)??uCW(aOY)B0UgKoXjo`McI>`>rFgCB`Y z&6{zARfd4exvM4D?#iC(D|A55&1Z&lT{{LC%lz=Jk;6>@YF8fr@eIE(`I0$Vp^OYM z|KLYd$A(INhn2Rv!fORx`4av&%}M+$hs{Foex%rw>HA`?>=qpiEB{-2zYEpaFJ1e+ zXm{$E4u~G5^q!#b4SQgvsHk$qSkN^B#aM@t z7uOW~?0VOKO^A_CM>x<>c?xecDHucLDuJD` zS7of9`WVfw%yIl3*%t%x&w=GJEc*ZnFWt;jq>P&O8-7X91P~(Y4b6`n@*fx+1^oihNc(553i#OG_=Z5);C$A8+(3_tXTIrWdX^ zKuy^Lb7SCN^OG>=>n~CfB9xd11`W-saPJrS6FRJ*&nC;pcqp3);?hXSDP&D#7@Ekl zw;I)E+n5B32I!usC2gG9%Iv3Z_(C(WB-y1LEFN$4f3no=7EMb7N53Xw&0!<63U^91 z^6_2re`*Or0&-@_c#(|1!9}B~?Awh5_Y%TZ!7UJx3yq3%ufwoGx8dbxb27NNSt8 zPG{T(urF&NK563+tkuOl)-ZI%OifBHiOvcM{D{HTsFjT_`Ho9!lGukE8{c%(-{cpTQNdA?;XdwTU zg$IQ1*lz@_L)WZTv)=H;|t~;+3n2`MaskNa=Jzv|(7l zm^%D{ED|WA`eo(hM5)Lev|CEuW7A1eUI*Awf60(cR|R_kqaT~t{LSj=&^GR0gU2GgoCm`tM*@$; zf=MlOVn*-*{?xZi))t^+nX`JHl&;QGZL15zloz&8uWI^c9nVn$;7oVxAJc!0PjRU(K%d4XOqC1j z_|ZH_ZFcuPfICfm3>hiYC>I&oA8OMUqB!UdnlGZel$~7R`qVW{Vqj-A zHf`@mM`i4UjH2q$Nh-3;i;#b42Ix!vxMbqPG*pP%DKDc)=Qi2N*(1rIvNdx zu4Zl-VNs2`-VO}iA~`q4P5-dsFcSLXxcP|5>R%6fmFXeran1C;@mthy=ry;kZCPeM zeZCCOETuUJ-vXJ$9~B-w6o+bkx_o~Uc_4^`4@l_5;ClJhc3JiGGAhTX!9NsZVvmg* z5+A3ZS;MIcdgxHRyeJ3qkt_5_$MS&}X5jnT6>4hn*1(p@US4{|+44n>@z~!;7#M78 z$hKCOzcj8u*9_d3G0gMRA<+XD2|JlDXkUEKPom^FaA|OUP#1#kj!|a(o-=CaBhsDq z@e6KKCj#0$V&DLSfE^7Y`VoF0Kuqn5xz5S{VSPv7tA}kMjwxUutGRBgM?-&q*YtB9 zt#Y*Z4*#E8W+<#`Xq!3z3+Tgi!JL8$sLT_kbhB&}mdxO^Ip`R%O%UC7fV^-a zl!XpyH2cAGR%od`>r=-+xT9Z|O>y%s3o$w-1Smn5V%Ks%Gq~Yjh4|~MWw?oB$ zIaj%l%>;c{Hx9Wf_4=L8Br$SzqRDmmLdEAR&Y~4lP~$2rRZq`pL0Nm<)MQxy)oGvT z+dFIktP&3>?}AAY_4$`) z%?YW7YP)%pTMp0g#3VJuzY z8rPo?UoQQh*3{^&Thjt0&92Lro$$BjND{69cG;SqFa=fru!P^TaP+#fuFR%gTIxWK z$u4@9zxlGgVw4^x)Hk_jf-V!BuV{knP%1mtGoUBol#9NvI+OXJLVZE3S8c%Ihdfq7 zbLQKwA!zgFVmdc;rvSSGcZnjz;FmgkSbT(-0HBhKyh$LldElc;O5n1Q9%MX%a{ioR zrt8Hr^3p|vF8U4YD>EYt$x%(1&q_=s`}2ai&tAMnwLFFKgYMBi{@0DbD&ySrKGEYW zi$gmXIeIG)R@*1Ndc1Qu@+GZKB~Z|Zp(&>{v6y3u((TBsLlJaDAOJ3G|N2U0a>_fu zY_+%j)AW@(S-$8HYsk2)?4i#zVEOIdM+u6h@sC3^_5kmv0MN*Uyy1BWqZ{^3X?`Eg zD^YprXYA>PPph%R35vbdz z?noF~SAJOh{E_xU4aEz^ov$fa6#=>S5##ZY%zrBLiwzIQdK&!xISxcq6WRZ)irDysUQv%x7pwsA?mtjs?#~ur{jpj z+!Eg{Qw*U`JFpp>SG zIShG0*K>ix|MdcpT5`{Wj3aWbhif4LyG;caQ$Nsr_BZ+5M(M8{Hnyv%2+L`C7-&M8mpqtGUj?tT;{3N?`vmgmD@9cKX zEGb2mZHKMv?*f$Iv=KKK?Oy@eUl*>;(wJGlrcytwSXLvRqT897-C?lGVF zd84+IGK-nK(hDT?qjtsoI|OURt>!IB30p*8yh`YrKF0gSD+3?C0=gAibG_g&eQI3G z-4$!|-B=Y*7YU(S)#U*cG+#zysoAvD(`b3}5EPPxa8#3w0v$px&=S&UmK#JF0@vZp z5w(o)E7CX3m8s(*O(1#8pQ#-5LLk=3b@g2S*+7ZBeg0tr^@&9838G3ky=q&$Fnk$( z-xQl?4L0W7KASlrKDW^)69q_4q4TSnEfIDK`(X^hT&3N|MTYWF$uT&bK0qT^2YPfz z$0_Ey9$sX`^`EJ@V?JwTm@uJ`r?p!y-3L@&fWuurff}#scCqJY?ouTIac98-U_~kw z>}ND&35#NSjJZq|L+i-=y7Z8`t!-T7N+}4s14@7mCj?J?XpiMz2jx9z58FxB6N@ab zZuXdMqWG?iH_XJ#FG>U##VOxQ@jbaYKKy}+ihRUhMTq3@;e)@M6N^GbZZf`Sat)%` z(9{Xfy4iz{SF`)5>hRu7p)-_QFMX+Q&{8IH8n?>WTAy^1Te5R`!8zA_KD!SNn^5k? z2_Io|0Wfh`@u@I(3t;?P%6=Ztb8j27RlF^wkK-`NBSd4-fQ|@sP*#d+hWs>98ZO^* zGs+yLPCy+u{l#bF?`Fs$FDT!x`}5B{eHzMn)m{fj@fZz|T)B~@o%C=C;ZI;iE*`P2 z&3HfEVnsFiLbOoiUIF_2alOltJ6L9J$t0N-T5G!9|50`h>~(eR7GAM!+iq+(XoJRP zW7}+;G`7*8v27=fZQC}^cmBbCf5E(VGS_@`kMWpgARkp7!+d%4S#fIUQ{7B(|79_* z@*~g!4$CH`d-zEf;KHKKe4yH^U5u4&*BoL!FI2FheN{S;k@YG-^wtKkRcRH} zJrStVr?Q^M@I0|$3teoiClO=QHtCqLy~`hf<7T7S{^SKlUHK1e5ZIgknKUPe!U$IDxR8Ph5K*zf>2{syO zD9M&o6CP2b;`?S@!4K*9#+M04??2wdtCvUF4E&sRp$bLC%tp^cW3dw`gs5H4%({@! zP0(XXk^DP|4SKbRxx$%7*y=d%ORUDR%+e0LpGEEueBxZw@&dH!6>OX1QcqHO!}{h7sC1p12FpjRk_Xm;wI$-no- z=oLoc0VH^y5Hxo2XZROVnhpY7D9%+*F|61jGydtZXt3CL$0#9pAk)io&B zS!<+m=2D$p$;UaPXDh2-Mv{axUbO1#{cO55udb*3Uq6h)br*R5vr#~o+9h&*1 ztk00pz_?7RT+(z1FXw-Kz)SeU z_gCk5Bs=)O0L(*>X1&`D;;V=wh<{b@Yic`Q+tilI-hPnI{Tg2W0y+m$$APnXkYuC- zH{+Weh>@AbapIU-H~k!z>gU=o4fYM%tK6DB8~YV_qcN53`kckWZ*=#5 zU0pZwkdK8Q3SAREbnTTHH!TGH#5l*7ggL+AJhmofvJI~49xh6_C zsTY~5QmqPXW1lgXKd?Nx0sM{D(k?i|vVYdiY$SMyq?->3W~6aL=A9~*b$}1=fc`(; zKxHpD8S%wkkZYE)KRRLN7UeXk%Y4a+Bc=8UNpG5E_+6NGvj0F>M&a%4rj8HLHU9B} zAyXAEpHx!9K9Zbt(`!jwou|t+jbSs%@c><8UWS^i-C%? zBGSJP5Awl@J%4{vA!3E<#%sF}%gnqX-4*?z#y=+CQgB5rD%|X?o9+)jMOZ2k*8dx9 zFG&Fawoc#5u?oA3kHsqAj1-9mYoV+4g0Px&m$y)kh1Eefn~4^5Ij!{!r>Qn#tPN4M zG(%H*64WWp9t#HRQGmoci z()YR>qYWEioMl{;P&L$>;X?sXX|M>?GDphWpR~s3ZSb^Hm8^o0!Efg-8&BeAx&^=%BbwaA%%J*v;IBM>AvHt$#mSkFC?$S+B4jxVE z`SW9qmmm+AVZ`HxF=St1GvPJ>BuSd(uQaCN$spc7uO8&5h9^E&Jj0b)_NyeEGJ`Y9aLHK{%HNkbya$`%-y}`RdY|LzvfB)0~&prj-%lk_p?ey zd_z#SzzOucI>??n)!oUXO2a9MO@B~7u1A5b{zA4SCDXF7CY z0Mwb?6MfzenYa0M=r``zv&$-)a^6xCzU`+ni{9KY{J*G;yaAgn`*<+_ANYtUpn?`n*5wg}(@(rPodapbM?aj%tJj z6`;f9;Dmi|U5@k|z4R16DIiUw;!teP)y0`yNqBlQ%h%@xjjEuwf6`RZ{hs#T7ux~d z6E)8)NTH=M6Rxe_iXqpmw@E=*duN}SdoCBlgr&)oy|fuO-sm?ub*YlLf&kPoY&{@* zY5Jr9tx{Y+;jyPTTR<};zd)4kpLKb<_j6~78FUd&Eu7}BDlnt>L<{=25$*~AUkr7o z$6jlOp76p{CNwqc$#dbWhb+Y5J3huHo25=X@Zynjk3t<4a!j00=@!n&vaQdqG)j!e z|8)Y@t055dUG>qfr(Df-Aue3BN8tQEQUQ}^MP|q{q|M-|IU51vUXPvQ1gZO*NjeOx zdk@&^34e2q~&;P|JI?x?L6QaveNBe|%0*7HH z>#SUw(x2$V_0@6f%mW_3vaRSpArmoQI?nwZS?H7)|F-}ibhoMy3;15oAO29t7N#c57mlLg^ZyoTPgUdzTIR7c$ERN@ zD8xLC@LAO-(>buqsb{5u7>&l@^AlMGraXzEt9b4ujWEC4pUaT4<#7YYi611Ow<0iR z-kmVmKjm1q@QOQ%@qAB`2fU44viPf8QG%o+E=M)>ynktp-T@(OVvo~idjNhG#gD(m zNtinGINDH=_B*nvPlBy~vmY2gHp)Ns13|AOdKjBRB5_&E>SU_L_RyO3=|qpyATf2evXOStU~G=d}MfwWW%$`OtnLH;fE$^YQX=Cs3DbR+ zZ=BI$2?lM?o>dNKIY(QJF=BX5RhHEUO8jhlW|kWhJ`{&15C#p9tb@fum>Pbc_y6et zdAdH!V9+lm45hK0y3c#$H3>S;^{eH7nc`?`8A_tquVzQ6Wz>v~xE`lvTMV-I@ici3 zf|w+sOy|?Y`-c_ZPueh{bD%O<)&CFDKc;*%Rl4BW2?ll2cj98V9t$Jl0i94K(47;) z-&0?O%k4Cy%L2Za^ASgBrolK^e!dqFxt28WXaPl5jQH4dx0FoIccO-=hx<~YYCUpJKHBc2 zdqMFvp!YyZr381E;QO2&p)c&EU$qt&sTLgb?LJt$KP7&FpZ0Ik^m4xO2?$sJ7Ni#~ zO$dttn!gW%SE?z{qZwlcvkyIH`;k>_O!)5ZzLB_JoB^Qk@QRMFET!17ErIsKrC`cg z`H8iKCR)Wr<#RFNthd}1AsqQNbD^@b^?Ysq)_FHbrvwlOXB{*kvy%!ztC9&MI&lIN zs+l4(cU2acz+yu9LEq|KH__DdyAgAvZr=xgOkZ0-MnQ=tm>Tmi?*_d+80TcAKo7da zgk*5(*MgNUW|=xW0GCOSq;6i9GukZhN)%mg8+a&SYb?1p&a_i}%@GJX6%id3g7BA) zE(U!Oy~v^(B|Jr!YGHv-mNf@sYwH#}_4Niq#3FKqfHLW;6s%UpH5HIFi7t#maQ@QB z1RtMOlX+zI<`CoXHX3jaH|DUG54x)U4;_t;Ih_TnmQVyo#h-B&Dik#cn2fYbNR|Sc z-KKRsy5E}W)Wb8<;J$VpubXj&K;@G2o~tghRmfA0_uS$1^;qdk!VF?Z_TQL0<&Oo> zySMegc5@P+k&)pe{%K{xV(IN)9m3#Efnn4k4IoTG1;IHJGjfS5luyx z-Z~z|>hHmLP+Lb5Jfwv5yrc=j3nS*nlNwv;faDls7GpqfU?@uuOQo4WMfEC%4WjNz zHn_mNw!}N=qx$fUt$(Sg=&BMfDG%In4IatqSunSis3k;=d90%mc2ADKN~@OE6`Bl2 z2Jz|V>#hL|vKF@|lW%jTU6%pO&tJp)!4wl-Do3WuZgJx%IYHkGQ*tq7k{e+Txqw># z&uQ=rHSg-07kfR07n+cdHU^cYKDOxoHQK*zZc95~@x-a>0l8p@4 zj;uE^G5x`WSReVG=fV+H0qB(kpiZgr4&kNML5p1Z`qJWIhaI-s+V^CQ>~dMn+3xta z_3Lp4;!zm4*4_~zp!5!aJ+0Yxe6?Lg;EXSq*!|lYan5}w^z-4v#kX`WC;=06OK{s0G# zBs%DxFDWl#=;QbZXe+iJsk8*^Yl#mZUi^GkJ)TUZLy7x*lF8B93txZhSABQL(f7er z_zApOIOw~Em1x8bhhp`n>1;NWr9;yT+D&a*S#WPSf^NN1+Vk1!(`tC-YWR$2UstS0 zir1E*rrO3bV-pE8@X?L*jTt%)X0h=Pu2p3%fef!NU79RhRDF}N)Az)wBIKs%7xQ% zNg$>RZmKA~BMb;0be~OO4ul%Z&G)U1c7ihUf;5Q#XRr&0%?jk_CXwEMq$J(A}0#+>7S!tziwOura-fK?dJH4-<6Kv%up`9*%<4f|2(_zrZ zHaP{a8`-U;&JrC8@V-=-t~wP)_||)Z6#cB>obb$a!@)pJ6I%qNDHU((i@=l;vk5#n z<3d(L|5{Sgq(pxQJLv7Ey5l(6N&f#G8>-mis_*gFCEg{;kpiFF+?B3XsJroVcm1pa zpZ*&pGjs9O-GKWmAnA^*P>}Of^r}47gsIr@Enph^#f1ch%Y_6#=lq2k^ypO20{MhR z=OEhX%Q7gSX2-z!LvcPb1q*{IBA7eN^Rg%2_yZpe4TexIWb@M=K?Gp5#M9z-YWwz` zqHM(1<1uCAPu@Rou0%uWbs8RNo(<4HCmi;)t7TS6=buh-hqZODG1Z6NdpU@#(Fl2% zxCKaSE~wh~Zy1Nsm~%0ujbQPEz{$Ve7)@ah)jc7BD9Pw@N1hRjeE3*oZIv5o$aPtrPX+9(ltKB1QDiiJ<0N`+GN5a{M{4KDBhs=nAhqWy@QX)&+2}nCu2-hC35Rl+^VGvs5X!Y>cw@DIo-+8YX_KgnIW{ zee$Pe?c`)N=Q-8K|k$8GpfT$yImi))tknGwrjga>x^+iFrA^{JuTq< zY5To3BtF1j05vCyRqG4%yy`N3kAX8Yh01WZ_i!F{z0rUyKe75yPN>&DcR2vPK0g1x zlN!>HlRd_TX7xifpq~_YKpci;F+a>nzByxdc{)~<7uW6E}MrT$lH z+vr5<+MclSkQW~y%BtWRv-$7)s}ch^EM5HtHAVJ&%HA-sr`V+DM*h_CM1q7wG>xlx zIM$%QTtW=>>2Z3bfusnJRz};KBkt_AzxPZ;D;vHA9cF!?Q;Kn>j#Zdx;T*x-7M(RZU05@_ zdc)|q0rHQlgWYTWvc&`eB$qONw5pq1Ya-T+QFj2T4r94ocTVUR%ILZ07WTZQREowZ zu_&hQudMWO&i`dy8f{|a;`AAjW-HNB`-&H|H=XhvBEGKnxmZu5lNgjJp=x~!c^?|g z-+4E@3?+U*L+zjaz|yOvzTO^(=!91nLDYCz+AqYZB`2puiwDqQ!IH=A(M#7K*?Yf_ zAQ^K1HgfUAyY8qAR-QaayeDCcyc*bPN6b`v|MbP#l`qkw!~tM=)rbwL+e0!VHJ(=A z(TmtkeQhAB%ud(>-(hmYK-aWI)(Fy46zCyhMNGe|7v^Ruxk|utGklb#eC+n-t$VT} zrH9WkvE5ISRsBo|N-5t2+OO5sCz)YwX2%hI&jQV=%IFLE58&PB*Pz zM|!ont^C~M9u9biYyN312AfNzr)2d<5OaeOH5M9=f`jZ>lHfe)^}tT9stdrHA9xsQ z2A7mDVU)^%c$w^fZYBv{<;&piYk;7(2K{mc;IXKAudfG-nsfi@0XG^gdN!Q;i4`*i zMRXfyg;Kx|ZX2DDceOnEPD?{v0iCP`(9EKRb1`-HFd`|R(*8Y7;C=m?oNsRy*F{|4 z+IK7p`urGjt;r2^c*6`X_lITBcKCiAwF8XKSCXz zy_qVJG1yXymH9!hkD~#6gF|Txmw68;0LBl3MlgE+Ss;8%qfERo0>S?Wi5OOQ;`a;* zB%Ld<-CP%mG@u@l+<3wrBJYG&g|{c!SG{6WiY%7smNY=DlG^DH=&gu=cD%ppS}LcD zw(|phObX9jv4H!9E(*bt8erO=g?P=8L3wL0%1c*cg9uh9wHsiG~MKe@j( z_`bGPDYz;JbWzCc4FtIEJ2yVvm4>3VKC_LhsuWzcV>gFButE4TLbygV$#Oj?`+X zc%^JvIupIz$GQ@PJ^#Jks0#mN3MvOXgdF-0`y>i`=REC0yBs7^d1EKAXZ0?2;L@t0 z)mXCdxFG1ZN2R2(1z*hln7+Cr1bNui>H_q7Iu2lj@KS9-qd)e$(wVXx@&%h&!iRX< zou1bSKwtFO0)JdK9m9+wz4M6xxQoF|8NuZ93I9M=QQlRg!nKyZG=T{Y3`Vy#>y%ZZ z!u_%asE<|o%|%iEJMP4U*3Rdv%YN)`MMYlb3K=oyW?}`Mul{4mC2g{XeIH_Ts?M7tc|^=z2w&@%LL9r1sj%yn;tqV`Wk%!+#>9tb z2;Xl!JP#u5%467`fKLnY#2#uZ3WN8C#h2-cBm)wo&7)6cZ{jfDYDf#>7fq%V~i z-LI8w>vQVryWmu;anuD*;0OLUS)kk9rBtFFBs=ZZwhd?42ON3G7gdHgW+@L}B)xCA z>+xiy)~b|>+nO1BVdG4|RSQrW1Jv?D8dD7ecbzA2%hzUy-ulGV_6j*tox1}RxJ)^k zpr<~S8T|&QI`4<6QlFbV(cNdG6x(BNJg^1JU6T|zpk+VP_ z)jK%2^GthH(X+5Mthx6(WHB)pM>>Du))`Ch0q74%b$t-rb^#XrMSaj>ad4)kUSD@N zW93%7orvByMf;^3A4_@qRzWZbp#Bt&_fA6#Aj0QOAbqboyLEYi{t#Dj`}CT?j&N$M zH&!TWxtV(cJsv}@Ij~Y%yv}E-FYw8|E4p!>OMLztiEznnTvbuY&MZtx!)97&;yQS) zIvEc~<^|TIb!m{drQ+~w>PSaEN6v`_59=GTzgm@ZOZ7bptAL(Y&!y71Az}IX#P)n| z7_{zk>~hI8`yjA&+A5FWoti?jZy@%}rYy|X$K4}JaT;#}erEbq>isKIx%^OeU7%>o zkG(14h=~&(+C%9Lw$d>mc@jB zlroIp{o{P|7@&p;5J%Jt+tNe{G${cTDE#3y9SAQ59jBI_Bqz(l5f*$Pp6k=Tbedi; zbv=VV8d#0KWQ1gRoc4Rpw4>MOj&RpbGCkb8$9)xdo8F*X>4`QfB(#mjz{GbRq<~Y> z1Zbm!9gZ82E~Ki3SA}zK8N&4jDx0oCvLhULRLgmM@Gg#+?^W&mYu{+c1Km zZufn$nT*4Mi|T$N4`$(NeTrhavRK6e`Dp56CTJc|BT=F>1wmHL&wH?46T;*VSZ$eJ*= zx0-HSC1GG7m|68i`sG^1egfe4C$mbxj*CLocxL*7jQ1oGqa1L^g8RMn;Cx;gYzO+N zzWj{?7>Q1b-MdRw&F;styO(q!_y|q&Uj4vCc$BVRq|QFf+nJX?RIyD=FG*Pe#AI0E zips3-1j-I)f+`#R8YLBD&kiMWH@}%*B?usbp3vV2+z#z}9N`!vl_rUa@)i43r8^o_ zJ-`@i#YZ&P0>V+9v+5rXW3#gOgSRLCh z2$*K9pmzjnMlFJnCu&@Mi`>^z=bBm6JaPj@;v0;k=*u15tbDq9?K8il)+`u#@)E5h zUykblL1=gHm+DLX)(44OLlNulXNjeR@3Qj#9q~0K`umrlclJ(ltJ9fIXMjm>^_#C&YT z%FO%o&k^T_@MMlypwskDbR=vyU#i|6a@}U=pS0n8cd<7_++J|KSAr$zm~#`jkY3m? zS%e_9m>8@rqmOE6Kf@|b*HjV=f7}LEO1kKXQ$y1aVZM5KR{4EuF-{=M)8G8km+3Y6 zZ9wowckT1N)2U47``o0IuvT+_1L!48%5y4&q2tUqhBsMcsu^pt_L`tz8QX}0Y%RG6 zB~kU#HYSK^VUNFFjQrv=KJZpFz<92Dt)`v8w}NxxqTe`?H1f4*5slUg01L6gwnYVJd7#bb(YPIYBH7HN#0y0?la4Sx+lQ|$$s z9AD~9+`GwjrUILFn@ey`=O3GU;7nFkCk12VvJ62!I3g1stPxy+?3+v}*PnVW@ltCs=i_!e88^Sun*G-(^lJ)qgyF0qC zvGZLq^!FNKq)IN!WakS^3o9aMc|N=9)u%sS?*S3olz~ts2CXJE#OH$OhexX2I8*kz zZX|4PaZf~8(6<2>xR_0N;C<07L~{y#jZn`tEL~f(P`=Fjv`O%aW3>M9gLFdIIG6aQ zGV|f>;?^=Y-dsPTW`D$=>87Q$ zelSR6*5*$Qb?UcXMP9oiA#u>7)9I45B6D#K_gYitW`#Iwx(-Mp zw5<>Ujv3jNE;)~{3+d&HfSRxNo!6+Z#~7>sGSr2w&ER>1ySh%Y?j{Fr#(8TW=&4Wr zBpu|{!rNC9Mz1WRx;*iHiScj7fe!ggrx(A$tmmuAB*PxBX~>>7L{-6O`b~kFQ=Xe~ z%#DrBE8JdxUgE^^jca;s3~3oBgb#~$7SOrOaEu`75zBlxvL^iFAXhfK*gCJ;GALhppEGYp9`H^=DXvn^;c;6yRjtswU!bQx;b|=`W(Prc6WV%jo*zYO z&s&fV*R#0qx2^W>U~Oc~TI-Ov@DVExBk!%n3`MK(Kz$}Kj0Mxc@FROy(cB`L&3&4X zPh3ao)AQo-A#fLTfksq2Qul6b8VbCc9A)Y2n$imI@vp;8htTPzF1Yt?* z=DpRq|7MH%XK#Uul)v#FuC}tWo+ljRVxgk_u`6ZmSGHv8C`)rG%b-ik{=hejIm49- zCFSASoqG`JjaEiV<}rF3Cg|~$_4&F{L%(&R28kviSion!l!1Mv(Qr6ka` zsquUWFR3t(r9G)~W`EO}25R#0lN>|h6sXLwcWs)vejJW#dM?c}vWpJII9BQO$pCHZ zDROePJ^VF~l}$?$re8Op`7Fh(9rz+vZAUpeK{s)X-8yQ7B|_Lu*@Im)v%6nw5$5X4 zFFOAkRima-x?WU*z{-cQ#_z;-KN(O1-Ii7d;5-O!>)c))rBX!#|ICq}`-X&LoVuu6 zE4i==yu)unPj3?yteskYs9z9W{7iNx)8TbalvZ9xTl8qbXuhTm^uG5!u-o>2Nq-Q` zWy-uGHwXIkVZV3OzJ)Mxb9QbLvFsKHM|3!(UbH@Px6(dCgI+uR<>6)3aN@vjH8_T2 zWGj*OT0-uit~qY$wf)y#^f6FF*n|(=vVs^~r3UG|&E?w;kTsOhjL9ha4{jSf8t)%) zHbMog<%64P(Z~kHzL9{Q>{W`3VB#)T2$}~7lJKPp`5e2D^zRma59~Ajb!_vyI6eOy zYZj-V?zP@tlCN(ls~R{PzqraZz z)rpPqAqggcy2s1ND#N^lE2Dltoc#`ZSWHvc->+o0bFRVy^U)pI#Pz@rTY=zD3{lyq zA>Q`TG0_W>51ykG*0!ImBK8GOeFq$#_~U;$MwZeR{LK^MX5maG?6CeJyg!SLmi#Ry z8gvr1Da<~mlDO-y#hIi~F!5MhLQ!{Xh2%Dd9;D_|lW8|9yXa53-|XfH%!ntzEnHqG zu%T&`Kwq+n;ptM_F|W*|Pr0v(cL)J?I~6k^pr{JEe|2DoH+W-S>c>t!nLa5&9!xY( za#fRpo<~NMny;SKY}9O9B2BXtGP0+?mU(SpYc{|bfffcW6qbAC2;DWQPc;68XwR!7 znNx}ZB^_x!0(31*%-uM`&h1Q8bRVB%%c8n`j^}x_-apg68+J|9Y6tS?(bS*T z@ule5Uy_RD!1*-Aqz$r@;yL4!K6VM?@2xIN8t^0bpPVM4`}w4xZ&wKai+XkPt^eVC z9|a}U?*l$)5t8uUREu{2QU&-NxT*RkNERj_yS*jsWG|LW(&`2X9$4h8JDtB&a`RKT zHSicsoc0d2%}xHAHCWip9+5)2C{^;EFaY!Ub6VnKW)0`G^RxX^^OZ$n zC+uKZ;F{<+beGqnOf_T^4FFvs^^Ca@CgF`%uF6LGTh_{?J7{9Nc5y|82q%gXbRaYu zK3KRy3q0A(ilcVFiQ3;_NMcZN7RfCxMhf)QW3evT57h}UDm&`tZv?II3 zM)KYFqlRH5GWBFs@jB>j<9IZd?`y%Taz&TLp&iMd$-(kav&WZw zIi`;#>!n}Wy0ar3LPXcD;tN=PT8*8BNP&Gldwo^T`pWHZH}XBG#HVB8PsAh#f<#PX zzUU>bptmBbbX4a%KY1Vi{)Vd~d18QQ46>|3?SI%RsXx5)5(}^#fAQf#R^;Lmw6yA;;6@^5$L z2xrBqFa;C$g%SVkPy?Lcz_gP}ZoxHQ#<}F>DjEf2} z(WEg)>yBp+k0Zzez`VlxL7j_ot^Y*DC&uhOsW$(d@thKRrhVAxP|NuV`mN?j=Ey43 zYqyJvSYn49*N~wYQrMc9Q1NnW;fKEYz5~HN=)#`Pv{lkYZbrXmWDejjg@p%hgfK(= zQS|5wBazQl9v(OVh;^ma$lCv+f}VloA}76U`^|*VcVtM$ZAvodjVoFg$6e?+LAU`w z;eEEnZLkYJ#$a@mlDtAkO*a{W>$*-?S$d{*Pbz5C$zZ`als$R*ADplY4gHMhEKk+CuZJ?R5xdiB9)yC!`h1T7U6PX5i`~rU+-mOeHOcA_eMtHIFa7V<7%DI|WMU!N*^qeF(yZmNgrQe| zwYucSLWF8yCgY!fhwvDyd%^kB_*t!ZWa?V|oj2mQy#D&yCI!$9{?d*VO;BWvL~NccV8)E0?nYU~LhdjQjUe;Rg%;C%VaFI&Bo zRpW-(N_acgAE$lbq@DQ2pqn@rHU5q)pVk4-JcQ~Ic818#p&q`)8b#y&^bVT8tY`iMzUEg+t-h4r` zUM(1fKz?HT%|z$dodA|TbP2*QVIK5EPT98(8k0ZinN#E*i3wotR@vzZ;_9r5AX^i<{TEM`M z{D7>g(+9hvG&<|&)SK9_kQpZbdHu~Z1gAsS>gT9F)6u@3HI$WBe249O zV;g=upL!@dI!3N3xOU9icLFeCYBQYLy7m{RubEo)pv~-UXJ5v0M3ZzdkxIS>fiCrq zYPPJA9k^^^J8Y^DGg0Z>Q!}Gr7RhGwRISnBHuEw|CtQBMij8?HcN9e#$H#*NqWf=S zx>$3SQssMF8jN=C{}o$OW+-4285h+dF?oQl3@P6vMQb~K-DFLNU41(U27Vr9Vk*?I zxG_mQBzN*oPJzFZV#=(0lAYwQ>6zo|*8{f7E(-?~t?^AoB^%Ov!DKPt8UEzNGc35# zbxk)3uYvx6D3r?MeRd*WNq=e=IL6-F61w_%hkV6ZLfQybMqj7jf`j_PotRR?B_yY< zv2+jx)L^HR`>J3XTnWOXlTf(gtS{mlqx~L{WRE{NOt1o7FxjN@rQIy9PXPtZuK7a9 zB>Ts014hJ4-ZKRgH81UWQ&tkorSjB$koXw$E-u685*&avddSP+LCc?CclalqyoUHC z+fF;E1`dm3+!8b9fEM&&h~kwJNqn#>fy_i%Q$t{38eWetg{C>ZRK5TWGWhS0Av&Bj z@)(V97@Li+^gQC|faN^6f_;ciMw1H^_!s_!U2f)N4qx%H18z6UKejfY8+8WQ!bfYE zYU(IwE#V$h2ORoWm)7`~dbn`^?zI8*=UQEksNePc8RUIGkhz05}*6+dd z@FJ(U#F(2lH6;>FfnQKe!L|*tHZ(vFi`dt2`FnHM8V0q{5&DL@2QLRr+RIj@&VgeL z$+H-kkJ;{#r(Vf!2)!1we-ZKL07ZMYg=L0{i_XFEm+?cVuFH|hb~5516a=ef)g$W| zkPi;c&&ok(dfax+D%cNrolV%%&-j&iViRz0L?eExL$$dV?9z7=DXna5liO)Rk1Yg* z=~0Yr13$K)eRsfPF8m74b%p{%lb%~+f66AwF;ReiFjEuW)r&D4isI7;Wa>jlRy;iM zo*rsxH>qssnWq+dODpX%&LLU7yf(|#nuzr#V2Fb86iTEJ#m>>yosMW7q4urKAyW$G zquUPsMVu4#US_pi@KQl_D&5QQM`x6o5JCu_A7>Q2KZ?I4$qVYJkdQjY`j9R-@Zcl`Dpg!)Tup$uR1iDRDT}m=}R*;gtO9V@j z%Xf_#HuOj(YwNBx)cj%bk4x$vtAs{;RqX3i^>`?S%TR$wV1+R#G>Ws90p8WLVJlt4 zMxt>U}+) z`Whik)V>RCeSH{s#~|L9~rE zAS{{{u)q3`#s`nfugJYoWp!H@>i$3k{mG2Q8WS>)W>tQdXhFHwxDeY=Fb+C?NjCoJ zc$9~ijnb+EEg`h1u4>O7QvaQflDZzSUc(qG%TJ7Shlh%oOYDkd;5qS3$*Kqw;I}44 zGy$C`&#&pwi#8Z24Azh3LVT;FKbFDu^x2;wZ`R1=7I2=pj3>+0RM~pZS>`5j_d7*%(g1 zmAK;foQHjBBA`6u0$Z_xvm|bf4rciPheG$`}MYeh^@jh0t=5UH))+nAdZO{_| zrFU=dEzN~FZzbx7eJnrfw|7WG@FOP{r1{~#l{6bJ(nurGJ?{?Yu$v0p`|>?xa~^c{Ps)s}RTO}a4X)xX{XlL5PN8F8O!y-e z`Y2*pDfP>0mws2$GTDh1xs2SN8P$udJfK%W`@E%opp2<^BhbY>)% zA06iad_dkfy+_h_C2&>WkihbTu>O%eEu4}Gxe18sYmr{iSs%4H#?0Pst0aZdjMN}l z0WGo^%F|^&W7a!Ku!%Df!*}Q0_oLN$`Uj-)Ac?-64WQD{%*~<9D=fiMHq7umSy2%T zewni6jEi-j#hq)OPt0B`XMe zzq-(%pHJA8jR(Fqv@d`s_M0+TH+~mw6U! zS7OAz?cGfabn>NIT~q^kIV%6Fz@lTuQ<4Cs)N6`oT(YF1{H zs$pSTlPs{^OK;$@WxDJQV{C-`>irO8j!eb-r&Ntee zEjvXz_R4^$7m3y|*zeaM&~J66Bljj)1!vb8rAUhkdRS=Z<%|CUi8oplMwX11XQlGE z1osgtuC%iwMH{JW4HlrRB^0`YhwjNoCn!KxC9RV`*ZS)VwEA#|h}a<^mZaO;0&to2-cVs z5}As?+os=}50>8&_3qMG4X2$s`EUqy{c*W411vpJ0J5t(^6DEK7r}9skO}x2Q#+9ESsf|ZeVfRHT0*hO!ZxRY?a$BME@H%>)SqtE zfCu`)@sHGh=x+Y`IBfoC_gc;2FWu@L?QdB?UKYEph0B%TVelcpV#;q3Gp+ z;O_*887mq?`=>*5V}lcTswc2xgbtqOTY5sH?gCy z6d9cfzUw#zIQftz3yidImD(NlMAtr%;^IKg5XAorSw>gtI$#GK7HoEV*1>+ACb_pu z>Qw<>M&p$5V-UvucF{!UOF7J^-?j1W3y=k-C;GuuRGsKt>9wXqwl1sX>q{3+fv~Il<-c zE}tOF(`}jhw(lPBfNlBJ$V9s3e(ty za8&W5X={AFJcm!Iy;e}#8vgf(_;O|KVCyXwFT7grO8;Ll^9nyoL&s|UssupFF8OuL z!#Q+Sf~mUmE$X`wuJic6#1gKe!@MqF6?F5rAWA0Lz+vN9T}lgsmwyD#A7x(6*RZyR z&7;`qgzwb(;Mt5flWFNcYe(;d_#JCq0V4CaMO~uhWIelIuTZ&^c#@=_5SuPu(d55k z?9|Xf-!R#EApn*igmbUVW>TgD>dlIw-1Co!&| z*_dL+OkOB9ZImNB=w)h9jFP$RU}`lP)~{zr{?>}-KY$2K`(c_gqV27)pdyMb*kA05 z%UqY!bjI=uj7BD4mgbjHN{Q(WFV_=!fpuo-Ie`Y>$!}rsyZkIa8Z$Z2vrM7N??nsN zx#@Mx6I9jLvlqWy6`$kZkma%Z5Jhhfc~P`vjr`Z(;p{pp(}|C2+khai?}4q^HG+;z z@!^;D$%fnv$6v5&Zc4M%uG^2yKv#wojXFs|@#;kcB|fg8*M5}Z$v56dkJl;(ZpM1= zyIAgs6km&dyTDQS{dc4~ZQQ^R;Cmi9*;t6G9y?fb@Z!5-&&tjq?vg-E`jY!sAXMf* z>`jFqgA*z0Ke2M=d#<*AGO11PJ}t)YVGskBx&?ww-v9EtZ}!Rgw|j?@LVUeZQwLrQ z^PjW9EBAg71|(b#hW?UAzb_Xg=mPoRxV8TK^ug?|u46FFcK4{Hpv?;i z(m>PZk7B<1s z`db6i!=-Z2n=kpkhD}(q$XvMH&V?B3JhWp2upM&Y#igS6;zAfau@mW6vl%{~UTDW| z@LK6no+?1{$k8Szb4mytn}MZ!@{ed^c}HEy>k*=+e|$fZNkdk5AXM-uuVN6ddqi}7(7Td9`#J|S zg$^x($+mSulk29#isu87!L(5HV(?R#HqC#Q?-8uVL;@23Ni_2;{4r6?3HSv4J3b-C zNXtf*P8X80MGi+xV$eg$?mS}fTZeU&p(B8bF0N$>1`VZ9O%wL*B?jm5h%fWG#q5Ih2wi{eI4`o!`4l%0I?3M z(u*~&!jZlm0NLNq4-ToLjOX@DwC@gd_tkY?1|6{Q$L6p9NU*oK3ooS0I3tco0H>*> zTgP>h6O z3RLQ$Rl%V?+91FDb~FyyL#OY(?I^}OFrx^P5s+L59diyQ*XXkevOX6{PJq;va&jB& z_UtFeC#Pke9vNX+0sCU3CQHZ;t&!Mi zqD^^#e$vIkFbldldj9ty%e$Z_(l$;5v~gJuHTWpkVS{SuPvrgv3O}k+iuFDNr_G&OSd*D#bZAsZpDfF1U{9(v%(|5G3iy-h(cM7K+=Ko zTW3Um;5n|U?pf1^pDEq~pC=pWVD}{-4p%~38q8U72(lo=(=G!N28~yvpr>W}@40{9 zab$*Jz9w3f<zV$1N}QL z9ZC6jfH9#O7~<#6K(9ueo~l9J#|hDEQcrOSL9lXy_;jgK$4lQJdpDKu+u9usIM-pI z(U4Slapg@GKK}CEM|Eq8-tt{C82PPs^IbU_^vm^E7kzR}Rr`BM!%WU$acZM^;4jTn z`W`;QB!H4YOidJOv9pMN=5mRje&x|tP0Cw9!s+xwdv87rbStzL@Dgp@`sf)kXyRM~ znqD9ESqVkeKsv$J)NxVO0?r_{V0sZPc&>zJs!udCH)HXV`*=k=%?^+$-*^69Y`gRay94e7C`m>8a-_a(ye9 zlBp1P>BJEJG8-l}2Y?EUp)1(|3CGv!Prv<#OAxtb1GNeM(h&gS@{Xi~f*m4K#gt{nJ%BqJbPEnoOc8?l+I+Kj)6O!|Jauy%ZazPD--f*Zw zMeA(3oL+6ar8Zf>jrHwjZH8YJB?7%){a2Xo(<4(&;Q4=5fWV!QPp;b&iyR!H((SKr zu!H+^U5yjRRWgak+%MfwiMCsN|0~STozj!OBegao+*oy3ev#u9lRE70C9+%*SSxw4 z2fdPrgfhtTujls9%Ufq;V(9T9xm*|L7g5P%a2^LMKKS*wf2lmH=Rpk|PLLhmm2!U< zsF-ZiT95*dgtNr@cK>Z0KiVp4KBP#c6VM^!16K!KgcDu^uk)f)UPdYy;`1l2an(W) z&S-*2@M@WV#{M5%F?o*-7PfNzS8bM53O+U2Sp#7CXF{r~?$g15RwW%7nC<&M+J?(S zze3soI9Sz}EzoxjBs0{RrGXPIRiA{z6KB+Ue#42KZq^yNkk9zH)})Y6&hu53AAZ@h zfCRHbeN58O6)@BERDop~bL4J4alyOxifx-zFaBG(uI8l;!J(* zePO-RY_WP8kh~bXU*+f90NP^G2&1=mieQJ4dZWo~blbiE%})>$x5bXn_di$!M2G9G>XeR*Vz$GPPD+9GLuux#GeCzQ9U$ zQ)j5N4fDO|*koe=LvK7#3w$T!i_FA}lCYlYprWxi0syh_?Uh6)O=F`v-t0FLid1LX zd_1R5i9QGXx0l5o(BXt6-^@SJ8KIc1yn#l602Z?T#)xml^jn<@qb)Qt96+B_T~&?klTrJPbI){vI;pdRE|^%K zWbs}}0oDayQLD+f)(%G^Sk4a6#q5w0Wg{`~{&IJMV1ECXHi+lI+x7Rl*6>zo!Il8% zlp=I%l!Lj}eBg;I4;?v`64J&nqozNt-{F(GO+DpWnJ5!(POu}>omJdp#xW5dA5i}^ zpRMZR*btzS)Kg~=3D2@vW%=B4nPd^{NLq*vx?g4h1?FDMm?&&9x31rFW`FRy|0q&j zot#{arH4~`hmO1G<>Q2p(V5@AvW(5|77a)saGoRq>DL>0MhPN{&_b5i_ydm#4c-Pk znJoX>IJX<?@?e1KM?=Wo9I*cde$gs7h+W#O6mo=q<%?+n5c=&`E5urdXeyTe-Q!mELRbkgOsYc*9Uh8R1HRZB;M z@$jCvWa)lp_N6txFtPsQ`xP=-?ORS}*q<9;;8Y~m18Kk$hBIi0# zLz2Cipp;b^gS8)3~A*OXW8WE?$mabg?dq z(`2vj`+g!E==&t{e}OH+bE6$Wjq%_|pzNn!=vc|Z4>=I(YjwFXvd zLz2t&Vs{f=vt!^#OYXj$&>9LeIkb-SU*tX_0;Pp1BC`7AM|WV07Y38Ab%$qsBn!#s z+xOwxE}_9n!#l4gk>6!m%t85w= zmhL=(u7W0=D?`j$YP=l@0a_S)8%tY+qL_GsEZ9@yJK1YTR8`3y1;+iHn!k^OK0gi# zLxjxZ|kBjd1Y!s30D>wC=yZih?LUiXh3UowfjmveeY>_-$1v!3lYd7xx12~^SsdF4a#_ft>Wyf(aVhH z;YpT~`#!qGhKrM!DS;V&gMxQMkD@7`066M7K0Yi&DmJ;=G`TMQ@}yxQpfyF%t%9`G2Kx zKR0n08U4oH+@o+Go<_)9k@_cn1mgade^&%E-h1c~1K!~@i{1uJQ0z(rzj%TpHAQd4 zej3$fOO($Sm}=dEo`DoT8N<0kb^u4R(j1QZuAq;`MV6Q0QVlgtDRwMO4%&r z16oiH2zYJRUJIAqT2~&A&vUJydz3c}?Q3T*Y8bkw#uF*(>^|FVep3(K+SdF2kV?o| z52>b0y#3l^a|JgFUo%vwqT&rK1tLTyxNAtyi4c9eZO@-l9Z{Na=f+buYy2m}L=1ZB z)BM{Da>*0omtKPH?AMC{E37g}>BNkyG`9iUYvwE@*|4G%j1HKGJ&0d9shc6N`oQuC z|BCtQ_K;+{4sxWiIA;vE%TR!RmT(~zZ4@ze1L#fENyLafF$X)i?i}p~mA@rFV2pmu z)SkRfAB#7B^9Xn0H}*M|9va%F(ts$)nN<`7P(^Xl2Ti72!{86^i&&6|GVP0) z8#tUVh`J6z*DW5UMoDkLugBzQrVNjnSxA>MqH0txL_5)lQ_xHAuEOa;nCu#~#=)Zb zXCOE}xdAx^>*B&UOP8oAn5Iy`O>2bo&WZdy?d~)*`_Jua&_%JSY-Jowuafz>Sk@1M znA+#j0-?v>&g>EL&2oQ+E!m1jx)hH|U@ziK_6bQLa(6jTWmU2@bb=VG`1O`jwu@q`N#Ryd(Wi>x|Uc$&JM-`e6nb` zWzMkcvG-n((j#7AE_G!E)a>UgacP$JRF0FWdIhd5SdaGfPS%hlly}B z8reKSDv;#|zs(A*STHUUwr!4)M)Dx&LaRV)nSjF?Gdxmo9QR+{{$-1K?5+$(qqqvT z`$F()dv+~|t>2qy4&Bx05z8QU@FoCs$mtvUXtaMuQqj4q+*ia3w9V0v(jjf~@J=@B zC7_Gxe&-nFx!~vRP0SAKz)TUt_yoYSQ|M}jKa6->)X{GYzTHT z@5`!(V*XfG7)*d(Nnl2iPKf^@ihmV{(A&j> zvYKCEv_f}l4KRtlvp&1e#2WHbRZc&c@RSIJJ}s)nmHn_Qmyxjo-Kf*Qb_{P~$SEFI z&Lnc&CuK_3fKiK1v|b(=0nL5~nyWL{EFy|QP6>`Rb*ugpjv@x=ITnJUna=J>TIN1~ z_U#G8Z!x-INbg>MV$u7pZ~+ZEfCAn`hsRt3yVu|SLP~H4=Vo5VpnZouLFi5MCkZ*A zrrCb^mV>dgv6_i|M|IA(6{s6iz=Nz(A)xgQD1KyTZ<_ZLoO3v%-OJ@tBk=DA-PIX`L zJ__e8~rB2towKj+(l^g_8pl7Vr0k#x={$;mJr zgqM3d+uI=u^L(V3Co{7I4%h#_@n+}^KrejUe-qBvj6j5@n#%ph zFxrIE@$;YjVsM6(tHvhiHqyCF17a~1=<*aCmX=-wY!%MUm_N4pD)sZn#AMPOHr`4+ z&Og4lTKn+EmTO1xwE8W${F-y(AaDxGtR^z&%oSD?cQiPAyt zHDkQwa9hp0s@BR&gpr4&4vh&78?7kNM9X*UM+?U)pEZbglxvvGGv}iMA%;qH_tbfVYlfn zhD+4>zja^HPM)%rli)q5clxYs`>C_V%aMLX{Y%hF$hi_-+!(T41oIc@3k zv%x?YTJ4BUTh46mD4=c|zVeY<;VYh9plUiG=1c=Dh<=404OWICC`aRc4Ht(8D6vHLkN2QzKp3?+v}0*GcH3 zfO_q7S^hZV03S8gT-BA{@)uJ=O}1-MR6-UEzjf4A7j$Ph(3^cgPxe9r+d9U~h${pp zd5PUH3S`PUUXa_`?A(_=tb9`KDg8aZ3X3 zvgvf9msWQ}(Uqy1S^+JTSJ3O@I+<YlZ*GARv^kcMUEza7)-OTpm6E^;pD>dlxi1KSx4-?mFp0&4xh)pLMOO8mpN zrSeJD!p%(d&t{)WBq8{3K{F3>J?1p1Q=so#49dUcG*lhMHzw0}H+rw?)a5#v;6KTz zQ`+-)zSUWz9**$ke}rJYz=*{g68Tr_32erb+K|>;-MbEUQ-?|SOtP%u-%N>`X~X(R z8%v;9gZ_)>fdX|M{w~c+OX$|yLDmyx@>4NB7}xgjh!c3&9trtf+gxi%Q_5|o=rGo- z$}NB>+1&M!g!WY-+SuK~f8d^BTQ>JMrl4%041-8G3+T*VNRj$pA{lDGx}%ex(te@_ zu(RzwA5PjnEuSbXmvwUH&@JVBF!kQmCJ`s5D@3US^ad65xqIb}w?&Bx1ElxzaZ}c3 zJDZUwZUAB^Ly;-yqx$`LQ`2t-P|fv2XPK4X>ENuvlra-j^=osF+`_RG44lE;zDqr~ zX6+0}yxnS>yaUvfU_T&oX*DTpelT}df1m^ol~yM&k7*+0yO2i)=7K&N5d52B68ZP5 z;K*Fy4OH7m^1kMS1mf5uRWz~NTR0b+ZoM!+pn?cETE@joG%1&qnjrnHmoDua!Ay)!EaJh zM3f5r2qpXzoGP`I{bBPP)n5Q^=S%pZ1r_`I?~hQW#-ONEd(nvbE(`P5iZ8KMhM;e> zO8#;;6zU)&6nIF=v#dm(d5m(w?>wvN}Jp4AuPPtdIcPvp%V@X6l-N=vkIEyBp zZ;xHu5||0)zho>q`+GSUDEqQeF9zwHpD`SGSamYukv}~t7m~$DxI0dxbo*HMEFVUec;$RXR4(R$qNg!u4j|vVl6y_F1gYMl_^Sz9O zp&CnIf8cA8utt_`91?;M&HbM~--RS&#ead=(!T{OFY?{|=p{3$ld;1KfTe|G(J6`t zOK$jv&~*O30?OKFzoS`ej!)=zU7MXRpg$n|Q<$a+D(bE_wR|dA*QWHpHdDPq<0#A? z1Re>BH?||PWzsm@KdV%Sku3Q4@X`Qx={`%+*w~_onKi4bJDEdfFKsAjjvqIg^VufW zW}qWCXwy{^){urj(<=Ij}O7ZxU_uPNH#+7xR(vla5`LI3k$ z>b=NFvzV(fGWrYj(ZD9YytX-lI+Dh@n*tvZZV=@twC*rMIx_0nkZczX57=F={&}X+ z%ZND5-%7WC!9WD5E1$dC7`EfHqjm_Z{$uwWQ;#Oe{x?h;_QWJ5IMBml{OqWLVm-AH zErkkUMpSxyFPJQ&gj8;~G~e-O!@X+`(k=uH5o4Nq8Wo3F5Fr`xCq2Mulo(FtOKc-} z?k6tbTpJ(v3)T9E9z9{23DPv^z0A!g{zX#_GqpDjlPlMEL=g4J zbaR;^%m||+u;v)NIj6!jkty7EJo@TUEWrI$uDJ67d+oyg%(S<%CnjSDRyXb z5=uIuXRiLjDV3iDvR?D&PI#y_AJm?@EeUqGGi zStt7dE2{r~MkXsKfh{Ww`P{aRW0?cPI-LY`Wvq>3#R{M+L(-f}{X`cV^S^Ny*YNx2 ztOQYBGylNgyLR~8{8xvLdBz>#lOh|!4t1@}vXo1nR|LET({gi+0U~@i2&8OO@=oyC zt|g!S%Wq*ZB>{x8ps&O$nhpAK(hOAmIbPhNC$L)=(u}f zqSI1)gU;1gn56sb(8oVPOwUjRd$F13yaj}C86@D`@*m%hp{6!7Vt6>$ zwImuuU;JdJsj#gu(tQ&k!MRZZAI+a%Sapx#EA~7&1#3^wu}6Q&#acb|oo;q)H9>jLMAsXO0 z`_#sOo*ZqORNYWJpZwlL;3t)z$$ zVBR`;>v&8W^jp2hygwI}kN@3wPi1W*s`%2F{Z*xcx+J8A1%Hl!hiIH@zOAsi$XDt< znmqo-UI~EJrJmY&BcOeb+`I1D$Rv8MyWE-^d&CtrSF! zbl`vLex_;<$9MdGVf|?s5-9z&+fCT%`-Wax6-SA0#?sCXJWBVGEXgySaUdaTcF!=2 zNRNl-r*1dZ{`WR6DrQ6h$eE$K#vztBr0 zf-~!~>8Nj_tv|l{N1Fg$K%&3X#}nSn{uB}h_8-yqGrpwH2JRC2P#CVVSfXO^X-Sx( zr|g`bx+Q@wiv82k8UUUhs9#M6*aGSF8(6>&2>yrgkfGiVEQ(cL;B}WPRdn1f))}t zoMmdWfGb`fpKeP7J~Ox%=#>PqJGrLpO4T|gS^}@^Yabr2p-G;%WYoF!#f_Jy_v%~~ z+>NQwbJE2qKOJ`*j3p3qAlO@nHUn?bYUxalm-_s*&s19Js)bV@QR&OT@G0mAXZxk> z4vN$1RIqaDk{4`JFp+Lj>qwFtfzd1PgmY<@?6(D@DOA;ZT&e7TQ|J>m8vT->Ih;_?R#I6#iM!AE2xgtvtA7CH%Z^AJ}qek>a83=>lr+s!# zOp80b?ZX&5-hQ>69Qz;jvu6Ze>H<_}Xqy=39PeYo$-Q+^-Df1UPpup{6>Nlu%c2_g zpo{5Zp*G#QtnNi6D#UkDVM3zUT%FQikAzqT8i}pWBomEXo!3sM_iF=q{Oq0n7P#;L zq~8!d;%mDH>&@s9Wok((v>m5<>I^UT|NZC@Rx|2f=)N(yXWKYbrY)VREMqBt=eW?j&RXy#sa9G=Mmy-?(avlF`>H6}1055Ib-jTaGhDnU@`8Ux*ay0_tW;`XSvSy&vd>>H z?UkHVU06klKUSO3nRwZxNCP7Net}1^!$8k^_-QWq~IW!V$iiA9n z+9g#-EjC8jm+a6f?>LO<3HoTD*8KI=UP0&=^dGDHY=h0g2Bb(T%Czlu`q4eLI{Il5 zhBwC9BFBoMZK0scFKf-fO4{MHv#CW&H)BYPDg|ThZ8#pxjM|TD&GYs$EoabeE5p*e zyY@-fCI}QcS*o!Gi3f^2&3QLfiOZndN4s#gHY@m{N*6`vs}oFVD`q_{`~V?_IDN0H zc-tme?}ap*Ei-*oD0u>FnAZC}zV&tk&^^l2B<|XbdF~ZQiCUJ?`j60%hK)GUOm4r& zHPm|b{dD^h1tXLB7f~-_Bc$xwTE{j4P-(P;#xMw*d{E*pAvooi1m8qYMyoQRhS`_O zcOJ$7{mJCjKb_qm2k%}}BRhVh5fzfMGA(@9F${6LVG9YnNpa|XlQ(&Mz2!lp+*jo_ zxdDtz6#{v^^n@{g_zR-Q;{*y+Cb|wY>;1+4o@X>i&<}c}Tr1s|oy4*V`Gb&+k{Hm} zm~g0>bwO9JL=A}kCU_FJD_;qT|3QFA zby$XYF^%L#U7rrR`CBX}I{p`;ZJm2NDYz_G&O)XfWLh>3Z5LOvik`mqJS3C1 zSnFSyu)75x$X0;pA>XnkvWMcc)04B1wz?6)QfT&}sjc?_rir=8G3b>$S4}d}uhmc7_fD*-)-}UkaB4fB~(4^v*zlHVM$V z`M7GkgoJi$HoV3c;eo->B+-LjrdH|v_BMg>!_6ST!`w+!eUtf8_ZC}!z(2)9vwxuT z(45`Qfj-?TN=mmwLC9+o~UCO&6Vx&!e4hVBg0|o5%l3 z&{@tnM~0L7{w^^x@IrUMi9^cqa|oXi{s|2je@a?1 z`=A)4$Cw9Qpz#V<9LysJm;9SJ#6z03XERUTlKcW}tRl&MTPiBw;xjPP1r7_7!d;B$ z&1`|G2lz0WqnYtlhcFNmw{3j={p9d%WjXcw(c&kB?<&p==nHA8jOd$x{ZYv*a7@-N zfIT}@rLPih>8uxhDy+=_5s+Ebm1c zDCFU{k0kFHcQmEJ$F>c?78P76IQrs8^}uHRUK zfo>?23dXZeBk5-zjs(djw*ZwP`gLCga-mnC1o2B!%U7ypg`cF+Yy#1C`#^`Y>c(R0o}{8MCpoZ$#Bx4kvvk zO5fso*O$R3y3dJdR8zq(#~eX!let_=HxT}He+6*P&G?3FEt<}T-K@UtU7|?-$+!{t zQ6iG$cFd?>4Z6ZBsuWI`$N&nh=BLH8jeTV~&)K(zdUx^L9qOSN5*KH@kSN7>j-XA9 z>icP8Y>4gxKxOS-Rj`@;J1;wA2o%{%CsFOEIneBnKG%WJ-C38v1%~idyd((W8BBMU=dlCiM@RaIX?CdZ&J_Ag$l@9Jm$_G5-a@Fpfl4HxLpZ}{&M zr7NQm=jp~(%}>-TlF0*Bb+RkSU8jh);D>;fD-RTg3gCAfnZK!` zeGR`bA3VxlXEt>szF3;uDWW|Yk?-tcGw6M;y0TIOhj)J+QyzSd^+J(s)fB3Mj?ph1 zzX=}J8rgzZC2ue;6FD(jUNEkf2d^D~Vq$wYrl$NQ0i_Z)Z8_;|79a2BLyaP;TUQF< zpzZ(QNEY?MPOo)1hox>fVmrx@`+DD5y-_`6^4BLTrtvxY-7dn!r&s#-!wwlI>{@GT z9dO-oI4ISLUANX;bMO4%c^RHqSv~IK>Rgoh*}`y32zu(1Ts>4CA&0&683}WYW{?)p zx>ps3HjN`u50sru_v32Hir8j0F|Ie)Qyj@6F&+RdLFDT)O#GBCXP(}?o)`_c-aZ?D z&Mkh;BZ@};!UDZ*Tt$zzllTkYqYq&z_mvrYT#_j=q+?N>&Gy%_OORHQJSIKTbN(6T z6>CU1fihjlE%5!lNo9hWbFphiL`AEo=r}p{<`Db18htT~(qF43Y#PzA{=Xg$YWnCVAryJ$ePu!yg9s-P0Z4Hzg7s z?;(mNXEH`8Wtc)v%TYuSX##ZT{pP&Qe{j0B?dFO#xOo~%tKv_1X%7$a>O(D8${foB zqScX*IC-N5!NS#ch2valOX(1#&` z@0wp+;Qun7UM+eV<@Leis9ing4=|mLqT49*kSRDS#i!bl?nGIt#z7&Aoy{#{PQ2)-%{muALTg3^RblH;@&*>Qd z(hmEdL9wI5-kuuE`rxJFiW|~B$&AOslQO`RWLoGC27&1Aa3cGZnoU_g1~$^A``0=M z4s)wD2K2#o?&8+YClU1O7o)(5<)^>Zi=y1V+?2{l0vNQ91U-A`OVtjY_W2=*XC3G% zS44{CKx{guzfgDddkW*0X;FRM`=YGH<0GcwhU+qc(>o(8=uhSe3>tW;&^efuXC#bT zT1?%kw&p zeidt@c>BxXm&8dZ5WeK&DmESh`NKonbw(*v2$fM;)+HSrJVPRDN$m;r<=RDBQ(96n z?cgSJro|FA(Y)Vu8@!tdt809PFu>KyW3x`{4Q>n#Kd#)dzB4|@zyAdCIO9y)By|r@ z59#KqQ6lD-AK;w4V(GN>9-BTs-r;xZOc zC;Z+s=mJSHZwf1@IfJ@WU+Zc(4k#>KO6QCzRK@+O=5AXI@!b+$ZHt|-V-4YNo|_H? z-59J$p~jr|B_5UR*(off(RAbxa72p9Ks4G-+|(}So?ZCG^e-5nADP7*od=@gM__uawSeuM`<=(@%DQP(9_3=*xg-Ig?k(i6POS75NF^Ob{ zxhnX7U8DW+)6%|wDioPUrrKUP2E92O1Zv9%SpcRE2QxL4Ny~``NzdRV(QqEDdLytj zF?u}`g^?s2(BXs{<_vgdqk2N;uiq|PUYtTOjFQY~=a5Nxk7}lv^XjZRGcwjP-=m;E z-UY3Al}IXq%T)`p8O7woiDST9|A0f;Uai<1auG8Bb7+G3>yLAg53U^6yqHfTR}yAy zH|AIyXg2_VrMAX|;Iu=y`xoK^k!u2v*85~U7>#R1dSYAoMhScudy_OiK9!=qYEnT{ z(Ao6$4F4eh*F1edVI0|B0lK)o!kiZSaEfhneQ*s4_@1(?|L`8oN2B*A)w;4l&omTh z&C<~6G=d>gUs|&2zYRVE;0%Gs8$)r=#dd>>9oG;yV9E}9#-tXN@q5UqUvMnw2dmJn z-LMcC2Z%V1E4SQAZ^0#ed|1aNYU7w3+XWNq6D#Y!;=xXTD#mF#;L`<91KFh(j#kS8 z>2lO82dsk!-Imj0U{c=Q&78wBj91{G6Xh|ZPxrGi>LlIzIR5m}p|T`DhG;_x`UKM$ zd1Hn|+s=wN4@1^N7=hXgh^u~duyue$EmP=UWT5x_YK!A9JPekD_SD;p^Q+Pb#JZn$ z5TH8?MtEtga*gVpFekq~T5OWja;d!i+P{ccwt-X+3`8UBT-Ty#P#;OEj7k^@1R@wY zfa`eU@kQDu%5UOg_x^I!C66OiH3m$0>%t2yj@= z70+9ZP%sb2bqj)?b6u_ayG3dGTy#bcqd6E|8n6SByJ4S24acjGc+5xsXO2@!^n7Oj!j!&1W?|=Aj8m|7`cePfqgs`wO zdh{^D4Zw$Yy~?KEOj{m4e*v%pn{T6YYeFKM*VR!>n)(*W}g({`_n&al-Z|nxkObGd4IQ)JWtkQ})6NuB(6~gq4qg->otY?!4_H!ti zXFBab)3b1ze-d5cR0?1@mDFGnfK#heDI2|l}mk0^b?##ihih8+&))0Gq*I`B_2gpFx`9?kg=Zo3g77_ZMn_cmogm;n@cCxl;rQ&h|`pBjffHS6NCj zlq8isY=Wh+>VQGq%N*Dz~zplPAE);>@~%*7QPvg09dv!|>px zED>+U&U0{|y+XVt2fBQ)(%e&Hib|pJtIg{2#Zk6muxYK(4KezhtCP(G%%c6ak zkJvlCW0-Q; z|M#ge_gaDecRoVjL)Lo2k@t}WIM5fUCu&O0ZQ{f;zu*PXB0I!(N}H$BugQT!@u-pT zryK?@v^hcK9`hua=aiQJarmU&0hoEculVHfOcE0{=sQEEqZZb6D9rOGH_X!K#Pp%(++1;DYCr2k+E+}m5-3)+W7dwx(+eOs6({ZM5J~|Y z7RWCV(9rt>k|87Gj&?rA{?Zr1y$d5+!yN`i{)3?ZsYx54#f4>qeB&jqi1XbaobW@> z@Hp~u2rKaZ4e*_IGQ+#+lvr>fI_mpi*^upF0kqK^C1$BLlR7}xQCFf>_mS=$gVgnK z)b0UU^V2Tqo-a+(k;?4k{6Bu_kH>-;4|c3?)Ss5W-l>pmfG6fJ@nYG9anG-+&2|x* z2ZqP`xCaBPmp`+pZJ8ADkZono(Y%^_opiohG&H7f=kOOQg@f*Un;Iy!JRW<3!A<8y z@z)ZIReE-Pc#yJjLIsuO-$9oG+Orb~E^a%-`%%4hIY zpYv}WB0C*^`!BT6d=DEy6-vc29-1Bfhfnm)(1b*-st}60%5dX60zB5L7ajC1qS1nd z6_FgpX(@^-{A!edelLY6^}k5u4y^SMQ9S(J1-9r&hY6k4qc8b4TAQ3-EdeMhq?Yni zuZ$!<`|lqS*>xNQAy%UKN=NuneL`7mpd&Yp1K67PYBHXb#Mlj^rBc*p552nwm8;Fp zJzz-2c2WLDUms6u7{*<@@H~=)!5kC;9}GT*zGA1etS{*PhreR7NPGi$XZb(S-Q=x@ zNWwtJF_PUeU_74czWnti^HVqtd17V>`)E`xSQ{9IVGW>%SuUvRBw2;Tf<*o_rss*B zBnCd>+y>`*c3>KWS{Z1geL9Y7BI<2J#)^X#6_er5Ku70lRH2St(YM2Iyhh3xO-Jmv zpU1jVLfa-QuGtV5DG0Y#@2@@Mf@xZH7tJ2pvUC-JCQLOsN;wt0-k15x^gpwYzY%!P z3?YpEbs4+qZXJM*zy`s^Nr?VDRqdV8YqRA=BKT3=1tHRZJYyfU>zcD8^hZ5Sj0a)Z z#VwZ|ZbozWyCd+8R_iDA=xjV>Tjr1W?Q!nI_P_}G z<#MUS$9JN8)yq%5zYttzeZJr7ymnjAZsr547$;OCA`nP%@7W6#Ap>VN_kA)y1d3W9 z=SwdIMe0y%Hj7H`Bp=|+lOmsyGxAqw+rZyJSL3E$h$}t)5D(6OBT|D1GJ5yj#p=m* zj)->{NqCAS$>nYQ8Nlew=a+Pn+Pz(2&NUAN6k9|-Mnxa{%jhZzn!l*#KM)RbIz|`j znky87-+(SVYUp%djzvfmk;Z$RQza#3$UUwTg8|F&5k9}Xd-Ui|jyUWVRwI!zc3mHJsip$JwF}MOCJe=t_%s(FmPx;#UUOm?Os>G zrqooE;$qlY4HIS!L@&X$to3215z{D@&=(z9S(FYLx)23+?5VR?R>Re}Q(`{Rn_VDS zwD5;J4-mp$AHA~1F2S~rJ0PCj-VLeZ2Gsvx^gYP%c=`y0LAU~MG~o^^a$Pme&W9PnN{5Q)Fi4nG=vL&FM5gizc&(G4SajoV2 zE}@(wqi-zkQggBIM_@$p0)1UcZ3a5)^LMcSPuE(6I)#ej6c8?~X{_I&D-o6v_$S14 zQ)rbBN|ot3{HxzMA}o`%raD(V&^MtG4^zDM8|~1u4#xR<>6;Hn9WSNjsaDD+ubvI) z9f7~bnQO0(I!}MJ5Gf!iF3ntunks~ev)_C}7874!5qmbz9C=9eq50U`05X7y zRIa<#-%IHIBuGO$c0v(tr(#)E+npro+E2Kl3YwrxQbh1#?*EM{K5ikRmLr)GiIC2h z1<^3h=UqRO>k?hmLp_jz-3}cQaR+~gQR56w1MUQ6WQHuCx7JU5`*3&*Ww2y~x@noloAE^MJCc7E7_w%6UAiENfsJuvVJD004{|7E06$Q}7> z`Li0g6>Nn zd~|gt$G7$?B$;165WKE{m>Ut72q|r|FH4(2DG%FKiG`2bb+b;vk2kbMYn1;WSHR*9 zrO5e%FpA+5wX7BBJpZrPNHWB;LXWgY$^O!EaI2FJ*s(5l8pz|D9^&Eg9G)F!Rxdz_;Tr ziUFFG46|m!I!1C(@S_Rm!QO8^T3+xLGMh~#q!WE={{fG@T!GOQ5gG7Uo?0UqEGTPf zL`LW#6N|YJ$YZaW9`;H@OR6X^l%P0UKbg0{Ud;!tG~2}xVUW)&!Keeg{2s67miTH< ztkGC4aWH415kQB218~4ECq)ft18v%N>+h1czWkYO*w%n)H=0ZmF~QSJfAU2237Rfp z`>C_Y-~T!c8euA#gB|Yyy-ck;+&^G&F!(>p zu0cJ|Zi&8e(%80b+cw*vjcqozZ8o-T+h~l2jqRktIhXMLS1`|qz4y$Th4=&uzHh|g zKU@s^M(yU+(Cqb|r%23SQ4zPPP?t$h%n@@HhZ-tVD=Gl8S*`F2idxgQ*)Nw74UwFS zs2&8vY@}sw z8F1~m%O{Ph++f2}bL~I-btmny!H;k=>6aKVEmf5Z9}K46gAB|{mK)fg?TDw9OmKjX z6m#?yTB~hXK`1r_I-82$Zj&;;6xyfwmR|O&H|S)+0%W-vJPr&Tu(My4td3u6D&`zp zI`yUW2HF%)L}|WYtc4$;S%q!2(wTv+ZFMk40!fm5M(o=7uD_ehf~2u;JOA96sP9hX zcC>C?I^A7>F0@LF%3|BRFP7K|G}3%WDQ|A(W1C;hpE^su=&8V%;8UN5a@mVp3DKKD zEVcV0?vn_>NcKE2QXvWjpCadD56wbV-SBeOxTBmKGnR~U4m z^ES0T@(RAY)??94+~;*UT;*_iQwrM&Bty*K2(*ij4At<~0FZlcu5FhDId57XO31@( zgJ?ogS&Mu(>lWtd-XXbysxlX@b35mAppfLEelkO9Tlz`sQ7a

6;v@{gJPB!0tskR(#0K>uM;03EOHchA;@QIxV?*}u-5d>^;V(xE{@o(Lc! zF3B;+jJE5p@D`wv!^+$A_}bgc+M^6yPz`@o9qejG;sDoSV(>Xca~6y|G^dt+NK*VOBkl8;8SZZmHT5Z8?iyyflf|Pg&z?>Si2biS5W6h@kPJQ z%hYOQygZd}o$iftQk$M6O~vWuJ<4;~IOkDc*XAG45cfl84n;%o?~WZBI!R*!6N-N? zit>R;8O^)63(`91w5t5pRHFfrOu;D?*M?ON$@@gy;sDOHWT5g{?py@AebTX9w@|R5 zw3D({Y4gO!2{_6)mFG03qxgUu+x&*)Nk+4qX-R=dCeT2ZK=<1_rk_UC&qiSenrH8BxEMNUU@Pp3nCZON5W9Goy8)b?}$%hz|y=aq#`d%K4t zv$bdOt3~j>D6G`ag*uH)RWZ<^h?HQqDzIkQR`9WXM?1@!4Z(pk20OLkebK)jjoAp@ z_)W_^L&@36JX}_pgG*w zcMBd7ElMOc!xgn3KH&kC@P_@4u@-?sI`HqGTMR+keG0b=LerFo0y)h5Qx1mSLWHo> zOIpAn=!DQB7tLT(oKpf$Rvzd*nocd>G8rqOm`Su#os6j^K?oi-&&aeu_EtgPY9Bb9 z34SbK=*vx{vN+U9x=Lq^6pJ`~FS23}U!k{nIY||lOfKlYw{athk0sK2Uu+yig~OyJ zvtZea)5ejbUNeZ6-gnqELq++j6>|TME)B-BZP$Hs4hM*7*}z7!=D=!JDp>eLNq341 z!Wku%>LI_Hecn?@gC0l|^EBX+8C@_9`!_h`j`MP);cQPK;=9WE8N9{*qQKjw=MNmx z!=?9%W_R71&o`HC;54~=E3mI4H8x5n$ML7SjG_Y5C3MI2V-k}? zq1@O_%vfF5@Tkeaja_{0rKx!kz*3DfCN*32gh)|AFw)dyzD%qopMaqx@Q`qwX`clB zUmdw^Teh{6M01k)9&?s{>i=kjgZhznsYx*aTpH3Dvcjm1fZu-!X*ZchB+MO_i z?QUd-x}R;L%qeUfN{94}PRMB{=c?qTb-L!Gb*hPwVd?S9Na;lMHgzp!n#_}FU& z@lwkuBO`ezLLKr-&FOy)|;m<}fDAbWMyp389e} zg1&{R)_Thp7p}6Bi!V5V_(2jA=e_#cIF;dg*BXpQ-|P|vDP6-eEk5r+JuQ0KwP-O2 ze21$b$6;Xe!%K#F8SEyG@p&$J^p%K5Ky?K@GQPormDb&1_y9YYT2op55V|iY z&u$Kydj(iKW)57$Ku>}=h!;3@{saR3%PgZ%NZ|9G|>g?##46{U!N_VMsbP*{T3o z%8+Sm7{dlPkZp(@;KNGJZ~}8B>CgNR<@erC45%T4)zsDPVnuk+(~gpBlN+~!5sNCe zwQ69$mANj*+Grn=!7fb|P^}gRJGcl?spTE?eX~>4Mmmwp$_N9{L}m2QAI6NO2U*#f zEe5C!$cjRrD2fJV=`g}XI;%l0T=kBpeV1+HbQZ0X+YJa;~ViPPUb?gkGG=ygHs0jT}^niW4YDk5ko9Qb00#v+x^R#50i=! zVIqj@N6&}x@=}BbSfSlhL0%T0s@v#n6;LSk%fFWaPky-!MX_W94zf$mM(@$Z zOtw?hRV&0HB@j_L-lGK}NkFpx?O?EAiJn#kHn3UoJzyyb!$uZvqy*@le2#=_(MOnrosxI9r*1GE-wZ^qVWujv~9T)aC^0O{8UT1O0DGBovyFEZssnJt=%T zBSI<#1&3feiPa1T(>+Vzm!t+@|L^A&LXnN6QstG1N7wxi=WA8;=eQOfqaViJe-}Vs z@kLMha(NAMGnEv3y{W}!N}Fpxwaqe4a{Q6I=VxBm=HwlctkGs~hLs55iz2hN^#xLX zy$Y2u^bWQNNfMhNIB>_#TEZU`G_4ow{{%1B1wAe;fqj7l5nWf^_|E5^0WH09^xZ;q zShP9zs{8MJ$FR_p`aZc+k8ndscVq~hr-G9Kun_qm9_U&=^_?q!o@3^cW=2fY?bRRX zhAX4J^w)0RN8}4#B^J5(vIVwOE3n z1f*K|>Uv=1hz1q@bPXmgZ6eo+PA9ZAKm%jBu$br^+0Esi=q> zO1A~!<2cguaFkTNMq>gV6C0Y}XAbKDn0rxAmNV$4aO+lbpnmTYt}dhfp)m~O@6byy zEdt*#E1Tv={>KkvTN3a8u!VW`&t2WA3t7)>uOw&G{l(+_tC>t{y&|`{jH#+4qtk92 zfg9^KxmkySzOqBkZWlNeN+|P$_?Gw~|0j0B=Aumz=_gA7yuo+zr)DUeH_*xZjZgih zuRaWt4Zqs9$({%tCi~k~;5}a=X8$BcMt;Nh;ipcXm|v$8zoci&#z&Id2D(&S85S$P z(V}Ypz1aKJj@VJs96V)wsr2$iBUdJObQ}whsM=1dXytU%QhCJLX9lY!4Vw*v!}j z&n^r-{r!^8xp304OCo_-tKSOpV|o4cTw1aZ`z3%49aS_-X>x7#XSpf);bK8r0pZ3< zJ*Qf5+6+3*k}BxTm(Sp(L8uixSvcze5N*35frX)}Svn zwFz+GUFBK5VFtG3@_fpDj5XM4zDN=%KML%J(C}FztQ9RG+!)-}EKHZ@YA7B6=V3Qq z3V}&kt?_f{CE7fTV*3RI+O!JOvO*6t$*EDG?-sc?NvYRz9Zw4ZS}Dbk8c4`m-QMg` zdHb{ZX(apE4I*C^tx>EuV!)!!1!a)>H*jx&s7q2ZEHvDo)V#+}QV@UgZug;~#iqgX z{SPD69O$S|d@*`!x&xeR7et2bXSPlIxJo;j>ZjQ%m6z0+a)mxuz)*r!1R8 z;TLhhQ_}u5AGo{Gu>Z5<{XSeoIMP0)jZ86wK$OC$gbVt@t18Yx0b+hTG%R(CGl0B* z(2-Wo(lN*}_|NdLb3acX{WerN7uoZEOfvkHj;!w_0>DbXGK4+F85OA$oK6RXp3kMD zZ<*xh=AXDH&A7o1gN|hiFX9`*?5JCAwS}#K|20=Zu}0-! z?e%+~=!3j>1@GU5gdzVbvbU>sLXpfWqNz59`oqVKKgNHL<@7aFjsc{qvasvYeCjAT z&wC|lk8QW<<@&@Z!yrw&{(S=x(4WOvsB#^q(b&P{phlIi-#LbO=Cmva zmP8pNDL(IElo!Gt5QrIZ*TUOdJL;3_~tcu>m9?% zcH*zpT!~%Kk-eXZWYCvq70iMr$JSzh=AqkJAVp|RBNAgu$$q^r{0d~BuHpPiipjDY z6M1tzzzCS|WA=@4af^BL0Ypb=dz-d4ei>$?vk~E8OEYB!pgW+%TVbNv*RpOa`^tTV zpUTsTlxEr~IA?2)_u^B^@?HA-Rm@rrT%AJaLvA8}MA^*+kh|#J50P`jA!ocaw4-rk z9@7lv6q(hAzlADlAWH}R<_cTlZO~XK_bRI6aB@Prjl-98EKlpbFQEF-WmKZ8H=HG?rzH zocTvIb1Jeree6*F9=r`ZxUp3-!pI@F^|;Mweh>s@5v z&_xEDsedRxpGhr_cF_|i@@R=_)|dozHEw&KJ;z3t$mE4M9an@w!_{{%@om-dcs9S+ zO289aERYJqV&L1g6#gpSFg;Q{tT!+m+|4ZKA;>+=NPc7EAS={dgNdY%W=T?AdXz{| z33|^}Tx)|nIlf1J>oT1FW-=X{`Mo$Mr80E0`-14<}IDdx3Ev4I&5oPTl6@hwYE z*Qbmg?7y8IOW%6Z%blNjIbA^JrJNduZ@JO8cNDOoCr7Ta z<)$$I*oUL>1X_l&{G~&~HJ`YLU6S<_~t>3WO^{Kt}{VxJVp4g$Ild zQ>HTgJnpf7GiL988q^#52Hr5fV9iSWb*=BH)3aIWIZ9a5S9=8ZnMnAm1pSB3Lk$XT z{B1MOx!zEiIjdy*3kE5<OQh1V;ciVAnwv7hib!1loxNQ$h0zth*fBbhpi6%PK8-k<}0M^-o3x zm0+1$TB==-aQ^#VyP^c#$$jXs#0uMABh1F#&o9!(>7EraA{^H(4rg}i*;{|@k zMi&0iT~xxMVvd5)G4Yh!y#u(s{(!o}66k`-z--12ENRjtMe?HibF(78$$Ua15hp)I zbl}#zs`L<|D#!qa#-up>aONr|du)Ixh&;JHh&84vm0xcxq%CW5TvA^TDzahfa_1WBsP!AsOd%oc@2Fpn0& zPfP&EhQj?{r5-7&qoUq6q*!lTJv#=rHd59N_P@FCiJG9VanGK5GCna&v1q{g?9#Gf z&<~%bBc=N8W~!HNol@QI%R5F8`#Xjj(&d=7#5v#TfQ|xzi;Cc*oQJuwI#NFGiKhol zsgbCkBWPLDfz%pwpd))b-^s>^Wx_81W(UG#1bWjz!Jc(0!r{9AGU#wLjdGT&aF!E4 zE)vfQ?BYx(6-cYE3?6Yq{1kN$Eco0?4xTV3R%!Qki51ptc!hV z;4D-gzp&v<+zziPpEEBc3O0|ODLALxr6q&QW#!h*-k(j*8?OF+14^m>N^KY?8X~Bv zTQ62Dxm76^31H-|dC!zd`zrReKf} z#5a$u1tICT59a#HC?KP5^wkAWZkzSqf)}uP1&>|sUZSP*&W|0D(N$!AnNct>e^qAZli!ai1zj}|Sc9wk@%hvOTs$Mbu=CAScCeEn ziA7>3!Td(F%e(zpO$eHNA0*L6yNQLi*NZ0s?$CvcwbVG2CI}m zKka3pv4cUsK-vnn*wQ%?=;W-XH`JuwLZ6~G)&*I6jDCa7@FJ|XnzCTw1b=hjh@wYN zfKPRUzXS%*RS^#S80wtFI zhus`4R&I*gLgzjCwq|w(x~7esN1fcUXFDX;WGirx_Fx!Ose*u6CX{wi@6E+QsN~3{F-^;n*t})ODm{pqn@g*Z~ zV5eVl2JhJxy47#NA@}`WrX7-Wx2|3cbhznfYCW*FV6LG+>bE?p$fxkA%PR73VgB);A>{V5QIUt6S?9_2rY#Px$g;@=X5ZtE`D+O109(NfW}zO2ZAI`V?vjfg68`bq zT|4I8l5r~TJMC4k_r^S}Vw;FC4QbG*i_YZDj4S{cO+imtFljlz`X*_y;x*U{>@1#{ zS{9>EqeY=wgPzmY8cX@zwB%swQdE&rxe46STXtJS{iGD{kg~MfJ26WPCeoNNfESfb z^ny}~=er>tVC!H3wVI+%_r>m(xp30uYbCb7K~K8_Lv8i=YDFdJTA0KatxknurtTp- zG^z8G1TuQYbKaoR{&qf#g*tEBi22<1)6rBb*h4XWrs@>yOrb> z2O-~PDDKO!w(5sXLB$h2P*9cF%&Tm7{u6TeL)hyMt#1fE>l)=T=GW*&+}*%`@KW4a z&Xd68$Ah#+!e(>j%+YMvt~~x_nH6!V%!rPPgfXW_j!t%5G>^Eg+E+gWz6RV6Xz4XM zlxfK(Md+JSQ>3qAd9NA?`Y2`v&uzPXtb+bXG;>BN37)R*=Gk1{j+2jLaW+ARf^FK> zZ1pn#cJec&KicyqrS^w$HdBX=mZ|mwsv)bS*scS3vp0XPJ~X~gyU;G*F8aw;m2uXu z{|b)=opQs=a~1OUm9t;tw`69f;1M?@7BRovzfbg3&K@of<|6jxq-|{x&j-rf^oPI3 zC1ya+t-h0a@jh95DnEv6V1`E9E0n$X-Y*YpUYVdwPSB^t<}!5hsNtC3<@v5IIZqOb z?^k9^q$Gz(O!l8eF>bJ6#t9*kPcS)q^1a;B0<#C`fF6RAt$jF=ucq1Oc}DCad?ziM zvXa=RPjaD4kdYVY!OIOeDs(&|gu+=j7{cY;J!T!NXjEUGlThVWS+WYk_w#5F2g+DG zMx$^&tr*2gn(l$sZ>dMOWBxa$-ymIU7Ny=Y=nRmSxn2$zALDE!nn6#rYW%JdMx11z z_Su*4fh#0gXHYX>q93p&H6oohWb5w7eZ*E^kZ{8(#nCQ6}^$`Glso}I>9?Q^S!Rc6G+F! z-8V>tGPUKD*rIFAx3+*Wei~>?nra^YyL?Xpx(v9sl6DgeOG%eAc#9HtpLgZhU-$Nb zXaX!tJ}IL4x`!$XvIIuXrs-npW<)7@Z#)f9l=t{@JOMPK84>L`>9PbVsf z>EDU*zzBNqa_}|tFQfVmHrBqdSxG`)YuW=0T%?OC&)H${9k#LxK}rwAWO2vo*^fq- z-}-?)Pynh}0zI8T%)uR+M??loC49$as=-?v9r?|+*se#u8|Z7?jqR@}eX(XyvV`5~ z_XFf}uMso_MDqu*OA+Sn*vHXP%s4e0C<)47WN2Mf4v?P!L~Eq6mdejJlWZ6(gX76@ zX{a0lH_C1agI?FLemc;Zs8u4c4{r+3um4z5gl!#ksUE;zk&vqs@|OlX8}duEt7I57 z>syHMMQJm)B4V~&>i|6L(B4mIA78!4!u$ad^zg7YmBRbL z<0GegTS+LSaDLzEee7|yV^#rrL#g*M51s~Wt09=D$Ud|49@>W7TfhLodgZBRh|izu zg|r}?c^>@x_C-u0vso=cW#Xp*{|@M5Y6cfG=cBw0`aVuYjnvQHoU2i<5b93IV>l}Z zhXmovUV-xBR>Jhnl98$a()T*wZJ>C?D$0fJ-}&rj{a77x5f`#Y%`I2IF6IU=?6kR! zALv>b0|!-w4sHJ+Rfqhgb(QM`9a^Q-T!xpatZc(z!oLhPUq_iGx4p!kYp#>e>%X)D zMpTbr)#Y=0@*FVhJ#LDBaet0k3tOuIVwn>J+ z+kYs)UR`{6JzUL0;bEcl(F^}I!Z7f(ku7O=)c_2|W+N+WS(#3VMn zq$*^%E7os=L63}2z@N1FgE>qMP9wxPC?E1#bkp+^3^Q1@&N9`M4;Zlixw z;y0N6L(?a?%YuKsDe>N&=L z92af-nmL}-C-?1qwd#x={z7Odz&zPxJE)EDMfXL!03V9FMkBL-JT6HLy zFJ&;d)!I_km@xHOZd`hy)3-7VhN1$!*<+xkpsjB!S`ME|QrS7n>mT)k`!&Yp2zDo6 zO5&S&>hLya-zbF2_+^U!;6A+i7a-?-+c#;7+p^1<=#AI{c&aS=n{EdHeIkqaDmD53 zpf5G2iGmy1xhxW@<&nI)Iat$Cpjq;AZ@xR_Khj@}Q?9SHizH^sPfWoY#GNdD;=}?J zqc+S={!Ey`n_pPt-CTajr&H~S^eH%O$I2a~bUA=rxXI(~&WNA?H*lEy%9Mx*)x@ph z@VZjKvAxgWlSWA()5=h*Sfi>@;;-{R~v?Sm`J(-Rkj!-$TtzIgCB+Z&ox6?59M6gm_C@0ouH}A}hQ& z^vNGc$H+Z^RO`ac<=1OhnAOMDK6p7M(CLxNMf*)JN}AJO2VlrfZza)Uw=k~`1Dx|TAwx4Zw5{l0E8O(r*a{jT5dJe4wmX(4L;A5`^ShF_hVT z!FFn7MXf&m*mV5>S1Q{aYwFjXBU(p(fW4X$~!L{$}6-K1bUiM#SK>ulMK5#Uq8`?4_Lcl)BuTUfbr3GG-MK|frR zq+f#jmnQ(D2RLAB*qjvVPFKDA@vpjH#!+hkJ|xgD_O(dIpSV{EblFjqu5PPui)L9! zf}vkNmJVw`mo#$6tH|L8)fN+z0L*n!RE2XrZ5el9wMh)3!`Q>JlbN|b+GaA96L z$@|C?ZG%0W&q37KH+JWvj1zUxpG5){_g6hE-Vkb-d!}CkWK8anu2UICgsH3-kdBHj z`QrBCIjGmT)10W~49q%PjexB=-3r-fW#rQIJ5t1-PAYxZxt!+jnO~SMD{7fYKqnbh zH#Xv*rAEl2yKaEb*jm;mwB1<=qz6ekX2IMEBjz(MQy5;U#ky=GOpui2$%>o+C2E^? zx{+{<$25%tHoh9&^JXHjg8sH&SoMDMYK?$ylatIq8j{;z^lvZy7Ka$*CYcxGHq--qO@zbG%#TMu zFia>FRRX>BX|G}qxx6PZiZ`?|t7w1k4x$jhXy$&0{!YPW|Ywyi^6NO0Mn4 z1*l(v&tA^Sq4rt-9I!;naC|En?Vek4@gRRnbBwPB!1kFrP-jG;WdTT$;Z z)|JkR-&4;BJmSUBgKnIi5NI{|GLv^`!%tCxAo)p^RDq$m)4SQs24$a{P}cWqO?B`% z?R)*mkb}5zj;OJuA&I#NEg|y{?8qCt;A8v_u#K9iiVImtw87-9(N-wmkeVbn1>FulwfQ;vu>+`4Q|M$od!ErjD9f1tlV%s0EvYN0l;QKtM7RZq@5PY``egY#@!$Ix8qw@2P5%- zj&pV9%$V*>?cZCQezEXj&(b>c?xG12Ciu873Fl65vo9L#`6yrztXg@$7ytDrVgyhs zlZ%K;i+f-m1R5XVeH8ruJgp;aZTGm|x_DbWz5%&#kROg3dbhqD&d$xeD&beMMWxZT zv!%d+Zt7HPBrNpbGPd_WllzLPw|8MCr`dQl0sgOw$Orva24@Juf$+plFD3Ui;F{JI zjJ$r@?yoAKn?}WE{!wIKNB;)bHMM!#qG_9b;to(a zOl2&w7E*n#@ONhI^o(qJS_Zx6Vknnos(fcS+2P=9MXnY2vUZpySyODgts2xT{X>mc zmFfyPYZ4t@HSJOYRi6I`$X4Gq^-{*jBv>xn*vwm+K{woOz5yg~vxEh36oxBua#PZmnB*|%BC>_n z#my(zTiRQhtl52(2BVVcyHE2?FBIwk#D%v^H*8X4&-kZ2p);jF->Nxa_-4v}6RuS7 zzWIQDj)Pfih5{0I!=~jEJf*9PlK@M6Wi27NWdESK1*d%)QfJz|g{RIL@;$U=5`$-t za3C>K!@8lpaGM}Im}Lu2qc?YMufc24*QVP?{0PYobid4kIa`WGS*IN3fmKefFIPnX zhp`*4I*$YXwF~iW| zh_;UV@3;U5PgcS4GS6HjJgWhWQ-9*Np+obrnc7cdHn7IstOUgp{HJ&^u|`! z1mUlpHph2S_jDl|)p!?%%nheNpB6VRS!Y=-+;&5Mj(JNW$T0oI*r<>h9Q9*+Pb~_g z$O22|E&N{Wn4)u5e(pafe+MYWIG6B6efpG&U7Ld~`5|68GUs3SA+W7A7?Jxwfv%IN zCA2!Mzi*Jdx+B0Xit7-je#gP=X zoFZg_xMwzjcLL0lLYi)hvZ|2IPF!D9vVvD__pkJ9Zed#-NPRYsI$7=g@ zmRS^XwtjHSTAwnxzk-(AD8^66Sx=4h?5=#{v|br`tDk_iuUO*VxP)qfN^m$z$08J| zSZz&b39)-eoMopM{h-H}hLzMS$n%BsK5%#mnCSz z;tW1aVZn{FWwlG00hpu5&s`n}rCq(L2%CBQ&;JzaVLGnlD%2AuhY*wWfIg-Uwf3HF zaiX5}vmCRO>3oTJR$rBdHk!Oh6=$f#?OuaKuf83ZdBEqjXnZihRAK-U(14wDKRhSH zMso}6 ?YWo$3okF~ZErGt*A$Ma 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 z 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%0ATyxsZJ;M& z9;be3-`UaMOAl~|Uqga!C=~08pZx>Y1X)do*35-{cz*-JvVBYR65-U;)*Y>DV{lVu zJ>&b)E?rxMXpy2!paqa|EOw-Lt3SIUx>(;5Nu*}${dXtlTaC=pjQDDhE9k%RZ=2pZ zy}GyEK@xJ_0x`BW`k`z~K{Le&6*=a*o&{lz*S)X2roZllK1yqYhz3$@fc}NY)TcJr zxfY$T#eFoi0|c43!yQEWQtS--sZwj8KZ_}w03R5@L~I0b9A+tcgQ@|ck^Uij2!5eAnbFmvl704Y5iI^dmx$~FB}l> z@k5-@3Q@aE8+2cv5Nif+=r0}$zL96num<-`(P7Te0xHw)gf>H=okcKzHl!j-!_ope zo2XEZf&=Zwfxk~BLx>?HKj>zlr3T*dqkt+Ierc={R(zkDTgEHUx4PO%C^YKw+K7n= zyuN!$Vm&H_Rv4#7BxEJucCQ;oE5X&Zpb}m9FhZa*!WnSl=T|Gv;JAMk-$_}c zZ^FGq@8Z^9|BjcLP?3Jr47x2ximO6cvuE|T+qi@_?YMy{t^8_Cu8HP=8ES#0C6Nxx zvv7Hs7oGi1vJU=DcVoQGeGVAgnEWt6B$}qDIu-W-aM>6Mh8rmxtMKi8g_mK6OqWGk??N+=*q-?%h!@Q~`fDUkf4{<^-BY%g zRZsnlRrvc@=6aDkb#wj|w0^yMkR4KeNTyuhJ(42xx|K&8n?E9CuV7tw=mH53k zz>Ns>x;lK-ytS1&u<5EhSD+N`NN!#5xbo)*qof1Tb? z7@3?bu8-nK;EL&e)}+}k?gm+QE>u?RFPczbMnehj0vrRM+@8WeOvc`)&_!cK8eTcd zE=EZzD^2Q`gr+7SLBBwRuLGx#&TLi5NX5J^iPU0%Fvy_K2qf#mjvRMUQbPiHZ!KTr zJRZBB2T)O-DZv2q%_8SWi&IJ8F)?xZX5t>f3;0GMy2F0j`o{^$E9g9sz^U81zr-nJ z1b!2RfBIK0dwHh0v&XkFh~{%+T-t1Y0|R}@qE>9$d7Tq9W#1@YB9Xy zynFZDEcp(m|_D;QK!}g;awWE+K2AH#mYF-j<@L6hx)mc^ZtD7UVtu` zEE$_rTWW2{by*rts;U}*#_0`W*2KZ2s6Co;BPQinb{8jdi}CA=^!fVN37$GJ1Ynms z7Zy$Ym#;wmv{z3Ozegp^;BTZYgj@+{4t*Gk0XniL*Pcilr+cGoF;^|M@7U;JOZqPc z+CjMFWbOBJ{pmNbIkT^r$Es1ie{6@k%k^-9fujlQ<}0SJ8&4R-;dGwbwkD&qvyAX~ zaj_z3PjjH()ooBLZ$)l8k0SOI*&Rf<$&woMaBh_daFNuubj#y%F)N+9vis z9QFmMQvkiscr^sZ+OjwF=xM5$L}F`GktnCqB}LFRLf|DV=(3{(@2sc&dLkessw@=B$D3eAjOF893;tV_vg4le=4s-8B%8enR%-BU*|G-l&jZ)XzSEu`jvKXl$D#)XH8j1hRxkNq@Yr*~12OZg~pvnZ7 z@*9^hxVYW^O_lGt(EExo-9?!`rEHfM>|TycYh|;k=z|DT{gu|*n zJ?|L`XV@1q@W$?j>V*sZ)y!iOsL2xreYOZ(IJkPZv9f(klC_V|^H#EqHgR>Ib9elN z?mp5ylXI!N5|AdneWt|vr;g+A%K)J1yWvgQ7-5FE9FO%b9#kMT4JAraNrkt!Qz_&=9OUtoTM@q5qS%|JyNi=X z)Z9bneX5!P3>;PyV?OhPyDO@A(?7L(rQ0jXAJ@!G0hYiGP4J3>c~d3dY40JX1_nu8$V=wiUJNWje({hpQrCH(}_LKAD{2w zPHy}z1OjI!9Xh4)>{fqdvu)mp_Mw?PdzEG+D5Ukk+^1}JP zg;kYpkZTO-CYgwaM^WxtkrWsFV{JZNWY=da+j5{GpeP4R%H^C|ub z{VGhIom6@bswkG)z4UZf?37`@+%|#I7tmuJq6^$2o_x}6E7&n&7|KLg$Lqe(=O0WC zjUf*eJ58fsU#?IuSCMl4V3_CLeK7xY2J8}94EM0rBapwd?rndYGPO1oH13y(-%K#< z8Hw}--4ivzC?*!H(`k!%Ct&_oW6?$wJN|j2t@vmoQ!NOgi~ zfQa{?>e&h~egY8<&rVmh)9vNKx`{%sPk=TT`eq0mrC;yL009eQf^&_?#+XlK-(Lzw{xlSa56Gn^TixGc2|8ypv0uLhS-w zFd6#zc~2w*xyqL(!RHAFl~d;ATsn!mP6n?xRbb!#`{UC%Pv+1auXZ}g0y;0V@s#w5qTsrl{V-vmPHw+XcE=1R zl%WETzR{(bf5C{g0bDA5BPZ$JJS>W!T;M(ukX7(qwtEDtvpE)v%Cl_sH__cnug)V4 z_;qNKckBu}vRAd)^l}OFGnKnsHF24IzOd{%JNM!Ats;8TFRMSweynJ=0XeB#yIVU% zua$`G@f^6S$N1)~70O9yXDfjvI=ikDk<^s?BY_A-nFU?V0Q7*kx|3x_Y|3h})qRpq zm62IWRGz7bs8h*1NK71C$9DkT>E^iYqc$>%ibt+^9~7X1nJBx^c?a2>Qq4i9<=RF?8y0* zi8`AKE+qLkVEAWqvLUI;vV&c!FwwxG>tG)xn4A>7+3`OoHzO_RzXf$jA=7XxkttX2 zgrGZ;MX>I&EujimY!BIV(4=%dN_E*Uzz~QBz23h48Z(uwmpm;0ay=>4o9klJy`JY? z0>o+iOyd2l7Q92)JKhQJwQE1pVQ>PSDDPCEQW8}w0qtNd34Y&t$7 z+76~5s4tHkxx;8onyjYj!?y*xF?IJTcLx;j;RMAuuSs&djh(W~z;)TwdMNA)A~JEM zxs_iYSUl88@l~P3?qbs$tAr@%2z`DN5kRW~q8<<9`%B@7XxUVCSsG6BRFMh|r zT`BAeu}%HKsJ`zB zU)1G7a2=Hz)w*ffkJI>Z1h#Zv9XBpRlx;QX@hOFo`39g~3i-8V zESIs~JHXZDS3Q(eRebV6u!uo?|d z=hLM2pEr!TLF%#&J62Dsa97fZL1?fNo#^}OY8Tq*M zf9y_@=w(HbUIOX~msle8Lnc1mGoch%96(;P^T-v*MXTfo`0-@;{ z26PU692cJa1k3Lgxk`?fUoBg+@BMiz+xv%+_K_282=(3Y@h^mFNYZpas7de6|B%l1 z0A0yaWp(uSWEtB|Ul#2%X@X@Zrf;VSDtsiM{?sOeZrKpX|5*hUJ%tlB z7UCFvSgAVx`W5s{&9cz>nUM9a5y28ydgs#g&hSC(RZQde!$8c{v~sykw;aA(7UYGKyu|BUV&*4R z*#1JRE*YtD+jP**36fpHraW^P_qjpyelGseq}z{7l(s}i$Zs10XxlKr9nikQa%cFd zw2t_)qk=~(*u6WWjVW-f3%UISdEwfOR{JB=Y;QJWOh5AdsU}_|tew-4Dd>JBhH^n< zWV>>ypmb}$&eV=AoKEOb*=XSMY=@@4)@jYB`zTyc{+`Ii=idwYjeWqKX%9U3G3bKH zNEg;Vl`olJ_!3L}vYJPS-eR#MWEC{=mrw|<-(qXW@;HOr&>IAGRV`qQ(5si^0YD1Q zqHiE2ffA-7&C>+BTHcjz(}pb=UlM^6Ugm5;0S{YyMMXiW!2ZU!6ck8@utoDuVBI*&XwkGe%S;c3K|Iq{PpH zHC02lAD|1LL%uCLYVyZR)K}5vKmU0VDTG=%{7ze3_m|B)8yAMZx&F$gXjl2$;T4R# z(m&(d-vFD=QOWK8&y4eVa_bW{bgueA=g4)&4;6R@Mh;a*&=V#rUua{0*zznuSJFho zfuFFhMV*IJvYC%io#dn^=dZq$92p{hSe>9K7f!G0SQVK8snER@c>Rn&W7_U}sAro&A8M*p!(Z-Rdo|-Sy6jVXT{t-=pOIL?h60#_gWSHjg*~_w zL8@59taZH3X?_7B>tK3}ddRS|vD%r;wSXnT%AFDPt+oJkbAKu1QyTZArvp14EW2;940LHGE4j;H@n6ySay-*AWCQMLBSBlWHQmpc#j#bwYs>#u}Fl z==|zr=%OUOp(63$YwQvsA@OfTJw^+x*-l$uWw0(J!dz0qKLu;h{lWbD%a-n9@m8^b zVQJVja5XufAvtWtT(mMbs2dTXCGDbIw)H-+azqP|7f!WCK5^O`L%^7Qp!u6VNu4i- zvc{e`_lToj5r)>598-|20Zmxte)!@&WG~*IoCy4^(IGVq73$v5SweL)Sb-o_f_x7M z3%bVQ|7g&N2OXhLbZCpDnIu5DFQOpaG&3oCdqYrcPtP2K!8g6MsD@Pj*=EdEq;n9xrr=WZ+HC2V&%t!qgz6gZV`5Z%j#-W9wpr9Ks zpg1m9u(W+K@!oj03IciI`0XPCU&pU_4(NtQ{wATGo5XY;_SCByuHD}?tFsKy zu^AR7y7Zx>P3ZlD?y0FU!5+9*4O0P_55JEyFvJkQt1KD1QYU<(HRh*kgpqso*_ zPI#kHylDDq`sRb%9h_TRJGXs(Vv>WPGJ6x1teiE=e&)$b;Dg7O&7|3ThzSICWo#9I zYwlEHk<+W>LT>3#KrUAA?3gTDp_QSahJlU<^h1QZ20X&L2K~js^u#=R>o2*!XrOHn zTUbwz!xs=}KkBsa?b^uSVu{YCqIRVOerk9uK!0W7781k13b8z*ij8xjcF<3-&=7k} zT>}Rlp$~TJ<1Ag?#=;L#fnh)(;d241^b~4MBrDtC?_lO0?L#B+f|^q6wE|^=sw#y7 z5P&A`uRA$V+8k`c#GACYp_>e!1|tCvgm;cU6?rN<^&l^t+iVR5=?jLtn@KB$GWcBoTc}Ct{I*Fzwp+W=WjUIcgfb}{Xhejz=GDi5;EH|A*ru}h z>Os#8sV*_yn)_6NC!kCEP8@UfPcb4K_S-bLG>!fyfhGJ`>ff&x73j1PTS})EgpWh@y$&ibit&*sb0)hI8)K!ceJhOp_#5y z-V7#TTGYlen5IeRSK%G0jdy)^Oc7jjo3tx@C?t8n;bre@z+#l-EzZAD^*V;FYiUh} zFH`FOUU<<;%O*glRV9-KE@@1d7>@~^-FXiqQ5nBQtE9f{ zu6%|ZSU_S&tpOfRh7kB`jxLPiW~QT>*Oozev?ct9Vf-P)Vzj z5o{xTaip@3(Ha}iKPAfk*#P)de!c~m9@Gt`2Jw|p?iNuPeSxh4jHbD0#j4*XL7&3J zErm-_b}UiBbENzT8`NNCy7ZTJnc8?!m@QqPU*gXRxO&OHY6rhoa;#uWWFkcZcu5k! z#*BEixDxkQ41DCpK=d`O>L>8Wvsnd@t8Rn-NJL$TTd3J|+%kXT1?v@}k$6k9J$7c_ zfDxL{_$nnDfq^$LEL?+qwd2*q!n=z6CIFl%+-7_-MGpMd74I@^0<(bjM;diyrO`jh z4HoD80Npsd_J!4##oXyo%V!dtV3`UfaR0)NKJ1Cwh?mm?yQ2M2 z(pL)xFvHFnc20*7lJ~Tma;&{-hSer98P4%fAI>^Rj1C5U7*bGaS@yRCZv-)!16q0_ zGt=6`b_;sa1oh{>kx_r1Ui!(lG;Im6DZQrq(*G;&w+?{JMT||VxhKI)VfFk}1$L4# z6HMn5qu<830Ub2f3Hlhfj@D5%Vjjy%^?D&co;pU0_jJPAOW8a43BePSFU&u-8xd5YFx%!1`rvx%vT4?n zOhGR&Q7D(Cr6q`YB1ch*FLyohcD5g#Gv3&=WnjCfOs6o5w=B~K$`u&Q_I`X_Yu&S~rLM(rr0L6p(Z8OpynK<~Tvk{OyAh`GISVZ<1 zbns>5D1|>p`d306@?V^lo@ew7r()T_0re-&x2kBG5o{O_MUQ|Bd1-0-0%Y+W3tgag zhZ<2MaB0TM^06as>yGm+HEC_afr0E0!ea^R|Hv9>@l2(>#KU{EqA=#D);YV-oZQ@4 zVxhgRK1@C%bN2r(-moJ_hRH&b%=e^Z&C}WooV-F%6~L;-wr|0E-8$_+&w|q_z6<5FJNl%5VL8ny}M!Yn4=&mJ<>52=G zKz&TXOEPN^6{ITGiMet|q$f}sq%$0QieGxWNTe~C5h&9GXSp2_zAZ0Sc%#O~7$H3V z>Rks2;y+{^pl&wSk#MZXVM2g||6@af~_? zS5!`0M_WWx0GQU-V}K@UqrDpv`#}<$qh>jUQd&A_D5epxTS-L71s($Ai&1FMZX?Eb?Gs`Y+-vF?g z+xwY9mTSPowcGKNSj1Z@z5!`a5mVz&Gzu%)4d@KEWT&RkvR^{+5qHMfp|gdi9eTAN zC~uklhINR|MD0=T;}gyHO@|a-t3Odjw^HY*fIr_g7c$UV6j@lU|B0l+jZM0L+ibo{ z%_YX+lcfC#I+Z;ad~~8}qmfE49z56_pj?u5xA`H;L}B;ph~`T)u#tfb!)D6lH$$Ys zxzf+O_E-nZGd0F>UFRY!iVf7D_(n5dB}yA0uc<)7+9_`Z7lQs92dF4q@6zfOt?0rR zo$%Yl6itvGrkqSpV!-rc+7MEad|V!kM(n<9NQ}y(gH-_NKu?*+dWPD?Zq53lkVz-E z#mvvoXJk=1#8XlJ1#xoFE7BVEdSVy9Z3V7?1TkrT| zR?zK$s$Fyb=Zzbkp8e=owG(eT+Q#W1=xIkOvRDE-nUL9_7X+pOvJqi>i1-l8OE}*>FdAZ2=rYNEh&$066KfCR z)M|t75Smn-hNyH(R`FC-Hdrhl;ck9YBQE%337+`!kP920G4FG}gd2l;QOazS=$8la8eC zV>D=Jiydp2`<>6(K(nrPXGXHI>vXQLUCv1-;z9BVfNK>&tWMASmsZMx=xfG6nC<&B z{7wH{f+gHO^vCf!=%o)$`RlJd<*G!_DMBUpRh_t}YvJ?Ysp+YRAxS?Ha3QFJz@i!! zyq5#~Zjx5V`*NU{!Smz?f`b_OeYF)bA7Vjk0$o-vq}=;S%o)k|*KN>muAJZXU=FEV z5=mAp8w8BOVD}I;S^P}>>Df2UooA9wZ6BHI&}1Z?R#M+dzrD1G0rb1?S{DbO**`qh z65i_?l_M>c2v)jl2P5o-I&~k!LFeA472U(Y1Tepa=b8?ulzo1TN^P)xb}djiKK&@} z6AUUK+4fo+Q|^!Pw>;gdqFM&l2xQVn*3Q6FPI9oLQWTf>I~i+k#Zb0tZx{yYwLo{? zFJ;F1cl>2+Hf+{pbmUzF?;cleLb)G3Wl#tN3Bw?v!qt ze{MO4M!t_p_rTFJ8d{*MWl%=*2#MhC3(Xz_7WxGQOPPq4_+f)9H%&FM?4g?+96MvzpFI=QN3tVdS z)BOF*3ii&;A}f%7HQP5JCmhAyv7`1NQ#a2i+PEDj>f*!;fXWkG+?1Y#b$>k5c2Yv? zHc8}T@kVROaBUbf=0~j`^dA!PI{k(zJYmNMa?QRY8by}HSFwq(P`CMwdi*X zW5i&Gzx zrfvyn$1ukxJRl*}gnRXfNEfv4amTtRKSx4W6Eu|HZo(Wwm5?qoeB_R7@5(QmX!(F=G4U{ATMH*D|vkPTMKXR%7f~6VDi7)z{zo z6acbf#+k}DhL{*f+o=l0%<~$OmTwi9D_3lONAl68x*Fgn)yF(t|>ugSyqabf#RFpm$ z5@@VFX6d`!4+FX@VT&Tup46T^`Tg@11hcsmWo0c2S2-?Yhh8!7L5Ct*XtgH4WhdCP z%Kx)m6r~lT8N^%&-aL?q6fld;E83XV7Z3M)^U;{4WzI*c68%O85ZzREGFInyjwo@j z=mf*fHt{h|e+ig&eZ)`dXZrw+?Z}n;9 z!>ZKNCTrhWjOdBd+tP@N8UQY>R8`;p1*G`Q?6i9d^dKWBzg9P;E^G#eyUw{9Pk}y7 z#cKH7NL2ub+sfz5`k4!+++g(MpBhI_$E(EH7wg~HCN3<9geC3;a>3=9@)q4qzzK0d zI>|v#n;7mMhql0WrF0KpvaOmdBP>{1WRL^s7Q-#a8NXN`q<(u4RoUGsZPFF%r)#`e+MfX=V(4nD$7 zLx@1eK~)olP>HF7E}k&zI8ty_II5_CyrH;?FT3nZJ5YmQ#Yj?YOm+Y;Q7#kY>H>Y5 zHd3=4#o)XRY+tN!x=a5)4p44)!-5W!2Yf$HU2oSa(1J9wIj1jQobI}JnIUxgZGiA? z-i4;MdEl?h#_mMuWXz$1``Zkf3y|(y4W?Mui|wAIqBmpKp_I60C0s(EulV;h*zDaO zbk1IINl;G;-BF*zQJmOpXqe{@t2sK7NMGlrXz%lUl|686EW)dXA0;XdZg>!J=o zVUhVWYvvSJm{RyFZ8pKy&+2^o%^&*$gil+$ZHk~9?pB#dW^KvCUIzZ1sKD7G+k6t* zqt1W}F;N^kgJRNFh@n8V$KEw+q2U}1w^CKRz5`PGuI02cE!ox9*9(>e@bK*e?{rgb zFeJ`S_V>5Gf&NG&Ft>5REU>>4@q6hPQK5~Qmld=WEBk$6mT zO(|{O`s+hpEGgvyMd5M~=-px{jfqco&19&`Sa0?EE}wco%J=tO&SzE4R$GY^*Wcl3 zKo557D7e>0k??fs_bVQN$lZkLkofa{&6K3dOJO#8j8eB;hk!m37Q9l4?k^AMFi7v1g=g;q88Qxda}I#hiRRFJun8vdQ*FA$X1JF})d)Os-D_vpjH=LifecE2|uUhpE4 za{2*=l4#72HV7`lh2*p4*t8Aw2g1a9Sby>0um{GdlyT7S>fg2ZXbPD&A0p@y%&YvT zIs~e!&kH_?Au%fIDVAU<;b=D6+rnwG^Wok~_Q+e)06VeeJJ_{2+=E=*wO0q#nk33^ULf$myGJvrO6s^ z7LW*!;elDr_+Y?`n>)U&IhXc$+MvRD1D128QZ$Y9$b4h=oc=5&0`!!W5>oi@H}QFk zX*C&Qcz^g{G_Lrj&kmV#ZwFcQ*uDD3NJ1csotN6-K=T@SEW*pkEtuc7lYW_tN4K(9I6J=EI-`!~0 zk}!jB*?*_4s6q@zSa*$OY>NPBiC(@y4+kg8e%R3l52Bu_?}FDy6r$mZ^_Jc#s(`Nk zDHh@nv-^#5!VKdV($TR0*S>H3k%R9-mL=3)I_4B#mm zA+G#syZk5cMy}HPpCsq5sl}lu_6(*-TnLE}=meD1!!q6-9~3%*QO(k?zqcoSBwXl} zFi~=!$7CJ@_){Z1yi=ZwdV~HxqO4XWr;m96jM@%YUE3y&0(vZP={s`YCkx2vXD?ue z^r}_d@wGwE;tTAI zFVmo(V_SxlE}dCm-K&)l@mM0B?!Y+;!CJdTr8BXegErw{nsLeEdw{C55WXxuW}Nys z5FpyfRKJv)|3T4sD(=^A^VdmG27Kc<7Lgu@CT58obSOd{q8}gZ4{Nvv^6M|Ad@Mc- z#y332cps;fCFeYh`x-FSbZ`l2las-2*^z!JOTrMrxO5-zjeHTq~>YRFeDZ z0w-H>{!6O$2k0ukTm*qSiWH+@fn4}v3mG)Gp71Q$zkJjMrx=8L#@kPOB#K7Crsmb3 z_##7&@8tYr0Ndg;BE^Rsf6rZme+L;}pLM$diU_2n-*io)#@H+|=vo+#rD$osP*o|g zm+tU~G1rN}4ekj~y4AM5Wc6ML(@8tai1OI#f$=k`anUH|7D%AZ_n&v5urDdB@}<*L zo(+!LTX|pB?u@;0tIE9?3h4amLKn0gRc*-KxMt0rsmzN&{13YaB9t=!QL7$QHb3qD zZl-WIA(WHvjE!>TPWjRoKo&)6Y>FT%Zrg^tW=6hW{?czbG&S26iID3G-+n@L&~L7% zH5{0T4mvnytJtN6*!+p`9z%?GCfpSUOk1dEXPgaq6a1{dsvE)AUTlU3Uv+`G;!*t; zTNQj7*z8w&iRdx~FSQca;>6m@bafuJ^6(FNAp1D^fu`E?YELC`TT?q7Nv9yI{z~?sTn>>(I|A@4t zbisChzT7ZlW{MFZFfU|Wa`K*tJ^9WX=wQPki9Gb;3m`~PyineoOZ}KD$EO9C5|f~( zQ$wVw*$cM+(VJ=j`ZU!KA}WezD~%>)j>k~ueXo=4tGt=vvn(I{9#|* zr&QwXtLa~aU`pxDCFvyj#%Ts9F&L&=w>rj-2N(!)wy8174ifSs+}bLg96{*=6>l}8LC(2 zjRU_>o(}3awGB&&1PI2+jruI)hPgWP>8W(8+<&Wjq!+5n+*Q;d zFI-X5JZewwu{Q!f*ul%4YKvo*A_?Y`tzO^gO3R8uS^V>|)SiPVgNl7~jee8iOB_I( zdjIsGj6@T2h^DqNi@)2Uo=J_RQC_ z_BtIXhz>v_M+QlRwZ9kvRzIzsZk=@cG)~xjpyr$7jD57ev4KwPwxRD=ViL43Y-ex> zOSAa=j1xU!quK8}59r+HCi{B6gf^V?)JH>QXXj@7wF>G15Hrnx7myukRC?B=#g)<_ zAE5~h7eSH_RzbFq&*cT3^jn@h*+Dhn_P{PXo?L>Qhd=wF9-tC_*9h&dcD|H8h??~- zm1z10nY*5ueuCVx(+9x!%pnj5lR~#I5W^G9()fDU8b-y&wVQoZ!5VOi1N!_pgd$0# zCD$8<6FrjiI913qFPq3F;&;^^RGe@ME7Tn62L@5*3D@uV+>Y*FVc16*K%-_Aqk`5F zegy14B#$gZe~rS9`&tf)OVjT0zkTwcmp-Wlt)q_R-BMIf*mmdN*kVQfSB33E8Z@0m z7~MD)SQ(nzvM4>*j!8)}K3!V4oERs3b7hFII-5q~4rq{45fqKAx$F zz=OHi zhGJGf8UNaHQ!Idv`hZ7s)<@Eg`psAAn2D51P(61yK6|TuE0ot|gP!O*+cKHecx}#y zt3P+V2!hL20v4ktjDuy7AUPHw>I{M!J{^cUt8q;GRh=ic*)y7pKyS>MQW1-s=Kj{J zv)_(7rtFL2BADf9Q9JR25wBw2FA_v!66Z861mWXA!T%|RIo}67CDa?|@9G|FG&?)1 zBCzTsnEnmoE9l5~?BfxwI)M(bl`D$k6iz#{Tb1npwsVu`nk122(XXP~M_uS1M8v1z z|1%XhLM9m6*jR30_3e332Dm*)w32SM<_(6kvsE3HqZ|!0IebDMqkvK{2ZIzl|4gPBT? z_+iQQl-!zbq?FQ_pg&^-7174zY@IS$p!WfK&6V^L$YVQsw~C|tY1cD=&^v$QL@U-2 ziSYt{mUBp3RFzbKyTRsqGWyB{lPNV#&_*?z+kd!kOGpyz)Am zI81(V1eQFVM%(R>Q@-p%aW&RJlvkrIjV9pq>o3=QSAb7PT=6%{5(`jVDw<}7=+3UP zifhXj_mfL3d%H0X^i=P*xyaNG^C-4eTD|W6zqXFzHPm>FU=Wi- zdt(bo&AIFpb@19i44r*zX6fXQoXy~R+T4L5ACi*%>LrZay>6<{G$9_>AC_dRu3O4@^)Tb+z&gRGX96L*%vRxKk!^8}#-5ybun+GD|bH0E+ zlZX*)6mQD@<)&kr?I%p4R@wuT@^$Q;?zSNRA>|x=b>mWv^L-W~US_fk18{(zf(N$S zCT3vcON*YTW$zv)e8_eKbo<`4>%^zcoezG^fDT0zginYt1{(XXnrgD|jU5|%B8>_g zhWJ7+QDM9pXP!qCd=OC`B?r$tnJErBj4&z#+awtUq+G;Bj6K|&8m=%SDh9DzNrh^2 zgYS|h_%omnuG{{8e8BCDe&;h12pQS?V*5v`;aH)$cOEW{mFZTYw6YL)?4iO+3;Jq1 zk5i)CkPk2!8AI=7blT}jXt_C@x0=I0rsQnvY2I4ndP^hT105)DmTu97O0D7$qt*E) zk(IA9uUPJ|2Pv57NcI)ZO3P_WhH-4SYs3HrlRg!}bM|cmScUE|DRswdBZ%&@&POQS zF+}Xly~(yD8rF}}Hj@S2q@pfl?ZXWo*n$~hfG?cg#QWl|nO?9!eMT;l#UWoo$W%Mf zgn#CAEC?rXv_cl6ECQSe*K-j}wp=%iUqJqaF_Nm zu3rkD%v4bFvRueAr7@sH=lsh?Y4-2`=#Nv@DQKpKNXX(Riu87Vm#%6Y?{V&kzmCq? zU}ik7Kg4pCcMSvRS=y(ghyyEF;J^>*s5wPWa3;7@jEdVRUfN+GB5->_@a-@*78A!5`B*Y)-U=5cJ}@w zeA6QwvdECZIYnc(=XAhOF=buD$34n~bxKyC5s2PaQ*AAui??>U6W1Q)C zzj-P6aXWQG(5EnE)mmAvybmVj{WQFg64;#N#eRMJ0_1VS)P+KZn7y!<-yf+d*&dKA zN|zZcKgM=|&;(lFw16FNt&G8k1YV3evYEqrW4H;#<&Vz-?w6U}sWO#g$+s zN!m1x+-qG`P33`scKf{DN7>PBZG$eyq7PaNHJsanyV!>NYru^rZT2GTqCz9p_ZFjE z4HFZrSTi*8*MV+r5q4%U(BI?aPQNaksNV~an%9A8)ju2sI~>f{5Cf0(Yc6CEi$JfR+>J=QxW^ zqDzJmGk|%!!Rh-<-WpPY(fa!YGlBN@!Su$L7%_2Np5GM3?tYd~y_lW8%6 zX5oTA_~>V@f&3wR#1k2?~h?}qwx+A6x;+vBmGUu2h<8+`$|w>{*aFUV~CSVO2_G?!XY)=COh|~WIL(? z#uD`RIIKPBjhHINz?cmT%htkdEGWJtGw}CTX|D3vD-!OtRBJ%W$Fj4?wlr_DFQ+q# zGGHC6u9#|1_0&>iV3Amst-Oyq&8m`sIQWf6ctRT%^sl-?D4fVL%95+#+wv!eQ-GXK zfzJ?~)ooDMDHMxw7cv)#lHvJ+Kl2k&C`9 zc+~7KCfMNJ+GwC>TsMaW$rBdmkF&6<&eLJedkUX5WMO?sV)w|TUyS2kx*sXj{;FRe zT>FR~K9SH!(*SBMuAoi+-7(Hy*&0*h93^pYxcrjn3%TMC`IZCS0y-2?$S9#=@p;90 zWA%I~)v-W9xI)=ow=NR?5Id9tBMu{+?uF~1I{a|-lo=n-bcX&DATZceGHA2DoF(8N zvDghKH@6)7W*gY-Z7r4++3f;)zEgZuHy7m$!qO9+V7FpajrL$w;*7D?q0no9-|~z! zhoAX6?}#u;pYhw$gIbOQ$}XU}i4AeQ*Yo0H zc9Nz$IyZO*o6`WhbRJP46h^^QBx2S_Zym7bNy)5D&Tpx<+x}>^wMCW0v&r$2je2Vy z;f+f$t^@kV#ZMX}IBSD$Qak&*5aYMi_n+vJMaOz1UN`_r+$Sbj%m~sv&V=z3VF&XAA?I!AzZJ_`Ol9cou3UZuxl z-DNPS-&*Ah8Tv8Q`_r*_*qS3ivZ6dx6^f!~*Viwuumn)ogvliAc^ri!1i5<}spjj) z*M|aC%#ohP1+cr5*`QO|g^ZNXi< z9U{1{(j`A0n(U zZP{WVOvap44}ETdR|r{ur6!W8u;&<0y6jS-|JID;b!w7xlgO<48ydhl_S0iBaX~^X ztp1$+Aw{y$_~-D=Bf5dB^!`sS0D99_kM+k`Rf23bnqNU11M`SHh7owO6a!CgWWfB9 zrx$X1?0{vSi)(mGG4uFsv_Dh>(C-FH*|)Jc)E_vB^9Z9imI+}{N_u*Kwvjnc_!LEf z4k@~3rN@PR3C__IEw+ov8Boens0O#cHn_~nx6ccV{}6hlycso9&OOk0Ir@4?5ehsl z7753syRTpuuX3JPZ)7k~<4{v*NR?Js=d z8x8c8eOM7e2Vd^z8nv;v&y;3DFwos7^pz&rwkhL!!}4AxO`?ddcY4%|sq9yHTU-ym z?CfL?s9X|9f@-6>40;{-<3zx`3HyV1OpFZCUsAZ`C4nNoe?RdS^bK!~4HIk|)>P$(r zoHUQtH1IB9DJeKu+IOIrx5-Qf{7htZ)wDTYJ7Lym7l?D1IV(aI?If6-iUjurp@;2tYX^Wk>t=bj!*xyvXzyi#Cd13iYuz5Ivpxai4qZjM| zLG9&VYSE1glRe%4O`u3xADLLn4R-D5Nn&WUtnWGQWSg)DXRH@nV%D+(YZYqT8uBqA z1|-xivs{8AQgu6JjNI;1(${Gfim0GZVWQhl^axQMd}V1HJX13gZ5ik9w8q5|odst_ zp4M8CZoZ2IgD#|B0{g&!oQkxC-Ij$r&?nnmLAa8BLj?*_KADaBhF zLH7fRq3JAv5y}3g)bn%c!6W;;rZh3()uFj*3D^GmmwwUhmmQe59Vee6*p*oHHuaAm z0Co&GAxXWeq>}pa5lS;1`?}Y*?070BnY&Xm55FPkAZk9#VBHC^qhclES2EWSKlQL~ zz<^GVz*WXvm;B3HpuOqSKWzzS=>#O#yKf%RE^UA)V$AMEk#|5R&TV?kYL4-hfH_h~ zprFM>3yzE(FX#YUNZki*-wzBX7N;G8qO{A|?u5R1g5sM^>p$~VZr;KQlkkQ}F=dqspI6kI7Wptq^! z+r320{?`9KM+Xs38wN&NAJ()UtCiQzi-u)Di9qAt9JWrHcZQ5*Y zttt08=T`RZ))FJ~pVs22LE~T0kCRW_K5p)JMDyevsB`7IcK7dKay7LHo`Ku*F}9vP z>3gfO4g`xhFW{L7#37Rx-hi0nD&I^yVdUpDR+kyWVJJ&|8=) z4j$RK<_&e#QixE#ngWejX*P&uY(vZ@oi6_;Q9t8?E1X^}1?KiI_;Fe?SN!RK*_%Ed zgn2QKnWqDt`TIeG^~YWPbPSxRt+J8VvOMTn0|}HWF7Ss{U+LSZ0C{egWC$Kw-kZbc zl=>&N2a=jsIc5g$Kb;)pMEuS`g@?wMbpW$mV4;C?M4pH)>>isz5+SV}UQ_iPOqW}= z5feKK1@zzegNu;)8m^HajG_87jbepUp{ie>78{`^)~16@^&QbGQ`)`LcTokyiu=#m ziOVCvq@s10yi=q}_*-p5l{?n|0q*M~xLj z7qRRA=kd3eA+3{y#irYc1UCA zPM_>c<;PPFO-NmOdyg0^JSqGgCxfL@Gs+c$J<}8Pv{jGNT?uge_F89(7xW{t z{v_$}_y#Xwi@~3IGApVVb8A8g1$wYl<)lR8`fV%x+OnRscGc0Bxfag>y!SM?G$JKl zv7C3cxwo`76}A$zpYb+7p(eBOfHb<||50`g>Up(WaL0{}#9&+6iXD?moNo&{6xHg39z&d_ zSP3WFrY`%Bg-d{rlpVS@RH;;KaWfyA6(d=rYk?H#AuZE^DG z1?}V?nb_0q&HRrQ{tT{{l3@tjin?T+1c2gHb7RG97mvC_dGWAAz?avr7X2QPL@&>E z;6!lZpl^mmkjnmfhz&tHjhK;t>V~TYxo}I1;l#`iFOyup6y^ZJ z$Skknw-r4}a9R93G5unXJsWYT#w(ZcdjD-ws^%LMG*O@*%aJZ0DSXySTL>L0XWA#n zmYp-)v(bI-H(BnDp&01%akNhKWSxKm8`_gS&JEQwHd{jfg$iENhFT^HS=rGQt%AY+ zi$hoirjB7r{U|3Qz%4u^C_|3@4X!u8=y6oTP_5Fy2bS@54W+Fa&&GlQbjb~Rl6K_n zA(9fruXC&1j$@t_gCEw#ql0~jtQ}X?dPA0{1K6VQOj?E(qw6Jv39vxh3|Hc@vs{H? z=Kk%!0}|hYt$ypoN^AZoqVMWnv?HL)oayj;s{Z9~>D~6}O;x^;lPGw~#z}T?{Y1>M zHDsA~F)zmtMA>|IOM@nUf5%f|2e{J9C>AknJ*~|GPVyuFiM5HY$~jnNAJAGB)jiUH zZZ;E|Wi^9BgM8W^S?r?xhkxV2d{^C)y-7tx*6%WGPzgFzAgr1qzYQ5iQz&F@Se5Vdie1UOLsX;_0`M1&?Wn~w1GR$s0I6kKP>dzKo%?m$;1-a_<(`128ZN18u9Mn0pJs9PF8 zoI#J6;xwzi58%6h3fl4eKnr|o!tpK8uH#L7RL))NZ6oO^-b46-u3(G3GGQkUPMWWm zEHw2t+^oFb2pmL+F*1PGy;D#`(_+^e{QYZrwD=8sd`!#wp5+Q?ti&^4(VBbO>k_hG zLi(q7K3MepNx(sZ*t@5L3iB6qEYsiH!w6jEgY(_RGd;RN5RqMl!M`pMtL4a?uN3%= zVEG=S+n!c~LI)}Ea10-&4dnh{qHhY*cU0j#KgjgK&81D%T4DVxP0JTA}O zvLPkk?eS%1Oc=L9J9XVPifMMcuUd2!Blw*{R_-cLsQ!G4UUw85lE$87Q)(Y*L6K*0 z^_W0n{7XuVdaz<=fudQULn?#Rnq3N8E~S>=Y791fG*JSgDy!#{ z!jDR-$8v$i0O*hf{Qx%AFX%Zf&;jp~9l*w?Ty~U8`C{9lN;$7n=?An{)~wBF&TpBI z3~H$i&|`>$i#-B}@{eC9X+Dtp;uWxx;(p&P@?^MPWK1xcp&lgvy4{<;3O%qISK$}d zMK@pog3BMsPL3+%DaC%lz5M02YBgBE|Lu;weeJ#CzLNmDkSs*^Hu2)NW=au>234C| z`)9))T~M7;0lbWSr%@KBOKl*8^wuC>a|uzhts`f-9vz_9Lsc?*BW9z21p6%xjD>U? zY+*5TcPKEW|J06R5A-a)!mB?>uL0q=EWxV zhh-%f`%+<*uw15G00mDyfu$kMpC<4B{^K*Fb9pG37mptXcNCAwyJ3nsAz z-R>>}T`&IJhcq(hDyvF}5;4dENuO1J=S9QMj$`l8es7H*N4?t?Z%d3@BNj!C(DcW|>(GDDR(QhN4$1S#M-}3IyfPZG!#9#AJ zs(x}*GXE;nCvOQ_bm#gFRc8x%UaS1&FNQ^Ml>?Cfn|!rGZ4WbuwP01OfSIi#Hru-n zOS4;&gkKUE1RW@kDBL54b)??&7#yK+BFsJih0*-m2(gJSnR}-U^@dl95PfH{rGZqV z=)9^d3=`rSa7F3{+&c+mf8zc-C!#vLv1*}!KlOi?3ora#Ltza12$RYx`6Em^E#ALb z+MC&{j-5dvQPZpw!SiuJ-A*sqOh=m>zfN2H`Y<{+J>{+G!5jepH^C7&e<`$=P;g** z4V|j;qctCSr};a1T9Ei34A4iI1Q%0vUbMvl#&xg+b5W^W0@~jD+*c#F%DV_Vh@r{S z*!Z2xqB8RGx{j`m3geFDjwk97!?I|hu%IW@$kf*9&XJQ+=)vpT%%KSwi2Z?Y!xqs; zj!H+VgkJt7L7Z!d4_hsK($(7Wf^Y}NN%o-Q)%Un;o=L(UC?V~6sWE7qrpFZak5!Uq zEaeYdffIWo1eaIXna$|6GfmltX3vzW#z8@fvKiZRuTtHZOTjKrK z!)6W)rD!=A#syzRE$xH_sMu`B)}Agw;dC#p_imD6b@PKjJXabW7n>t6c< z3bKi&q6#e15XZ4G!{AqHw*+7w-)Pg5IuoZ$Fq<`D0GK&rei_6pMrwp2YqpycW7_Nl z-^o2!c-N<}P`mfz0R61~Tn3aNMYvU=}`2UFL|Aa@w(FI^+KU7XkSn3 z;rCeNqcP${(_(>GG~BnFlGeTex_sE{Ud?1P)^dp^R$?a1QK{8=?lRC{uJ2O@f4VhW z8h=Rgsejw}SJa!Y3hNV29fV4S`%JzwDZsHlFD2xtY{E-L()Jo_1puXaN#xFG8_XXY z3LExa^{iyx>@JQw)nHrs9ExZ%pzldQS^j};-ff@pX~yBcWSi23H22DV=bhmxzJqK= zO~)O3TBPd}upo{%tk($Cp?wD^(rVgm-7!mi?v`oEc)~*MO&QfLSel*EFdqt?zZ`@9 z9bb2GEZntC$x2J#;+14A@aKO7>wfq}%3R7ywrn8Exr_VoTj(Zu<_ZAEDAAYV_*4MQC^?ilQ&MHIX>0bM! z7--Qy^)L0AEb&*;PicQ;W%$Dw2Yqs;OWp^pOmY3F!nKXq2u*X_oU{P*JAUun&T9W~ zGqQF_g0KU9(TaZOCH>JPXtH|JGds`0L})()rU6>H)%00hx@5U6)l+vb_d@dxQG1SQ z+?w2A9B^K#D<(%7R3~>nv`g{k=j`+pWxm6QAmGU&v@z)bT~VIFjxULamKpNW7*XgWw6Hub{bFxAs6U_c`2g*OGKppt#$_jHrg9VE|XPBgS;Tm?1eEKN)=pe*1bKvO^EITo5YsW+D2Iu!4T89oS+C z*DXI?`02#pyQc9~{CU%u3JI%<$h%8jS%lp`u^F=T7gGD6KtXla!MU}$j_Myz%`;eOO448O+JQnsnI-ZP=VI6nO3UqRK;08|n7 zVe1}$cJbIrfbPnl75tCaRDXHr*5!{g>?O}i`)wC#uwWdV-i~3=o4wi!xKU0fR+ky~ z%bF=)WrqTN!YJpyO3Gc;fvFq#cV(>oC#*TuNBrrwjD|Sz|k8h+XmjLWOxtJ3qNW%wCJym zteEzFDME^j@knRF$4E~u7=Z8`wzN)lW8ju*E8G)F(fQ@2mBQoJ+n29`sh73``mK(S z@j8!8-=&2j#O3~!Ig+xZa=<0bIRiVyWk!e$<1ULH!1%l}nS9;it5ik$I^PBu%OAgt zz&!`9LR{XdQrrpAzrf$3NV8vrTc9Vnqho{K`VcP!Ch79v3;jFxT}z5J*T5+xRbUxR zM;gJufQT*dA;;R4b4VHb>-&fXg&b-I225`AV3(f8r}D>V=@Il(sq}s&Jev!**iEL} zaSbzy0v+{PdCG^SYxCRIE(urj)Ue<_1v@g*kk57-KEW|aX-UWe`v;rgbCi2l`n%vn z0m%;tKR)OydP7x>nb3sT?H^(*otOSNA*O| ziOm1cBm|ar<$twJ=#lA|XEF|!o7?J(F{&y+SOdAdy+{e$myj~5^4gMk- zvVV`9OIJ|6#lLrTL=Yp!lj@L!bWNkrc_)i-A1?yXL;MhM zpZA%t2t| zAG`QMR8=_{P!!Fkx5ux24ztYc8 z(xnqAS$d|r-_A4F@!7W+7QpR*r9K=rc@5nOP4thhj@i_hp9HG~{SwdVkUU%v z=wiWIbVg3Cr37Ds{TdRj_`5^IZ~U12N`JD(_%Po)2z`RSb>{AaQ?ec>ldRi--6CZJ zuy%{rqFTtxISQpNU4-k9YKxcWv@+a~(QvkR5)Gg~;|hdU^Y#$*l+~P%6A4PNlxxG9 zS3!0_?Za9W87)Ovn!f8<-Y5xSg*RYA4{Gg}75F2ZyXOe+v{z~YhNI8fJHt44Rv=(I zFroM9mad`)`k0!LcCB+&I=;c%B*hB0{R$5=YX;$*RV^A-X6c#Zs<2ecwjbZ=yKbK} zZXg*>tO5-{STpK;)gZ8PDfxwWO0JsxHq&0Nl4=-rg@GVtjR-m!(#o7f5=>^Q(+i>b zaimAi9Nt0jH+=s46`Xhs7rv!rfAL}Nw?d8Au;*t3jo-@513;p5Wg6I|sR}hSltc@S zw^V&1ZAj6NwW9T}(;4)IpyOO^q`ZftMZ}?MSF}BM3!dqC;wI01oskZkDbiXCF2W-9 zBPsHtbuOLTT>(|Jgol;DOp|CoEFF~LVV`X7Ziv-wAFn? z;Vlp$1oxiagLU{t$nbM#UK*4ad~(sYmU=Ro&wZ%z^t!8h;E(g(&0fMVxh;29WCiE!&i zJDdM}I4it(?OK8SKU%ytiR?Gf5&F6>*Uiro%;1~`+mGmNZ@X}K8)gT6+NxuHCu0VB z=VpCQ{LD4dri$v-ki$0%arZzfeQ8@oUAKKJZy9ur#Pt)hAoE!(6Svgc6e+~l70}_P z0h-`bN0IJ))eRH&MB}3lZSqTaNUecU5PWY<~3^x^D^=-k*W`jNT1d zfoI7>jRm@b%|=*yTmM(Lm)>BTfv+=Z%E<{vh_iiM>bmD6L4=U2!n;_}NvT z1I_FaqL}|!;LX-35Bls>o2PNKaY-#WO8KJ!Ux^njy3=$zO?zZ^1o*rDuW~q!J`U;k zzpkxLPaDMzno#0FfDkvUvO}__vxs;_QBhl-VQ`ZM4J#k}pFU9`Mv)8&=;$qyKJ34` zOa>9UMWMJODnp*~3VAjW<^mIzaOJxV97#Bf1^d~K+GXto1&(iz`Mn-= zEHkZ_PDk!?p%C8pUS@i|XFPcFY^HJBn#R!mJ6qvhHlHv?Lc{T&W3CfZs*cymBod&6 z%VeT?O%jdX|6Apygf&CjRA;?qd17LnLaKQ zm&m~(MpfH{0IIe!$27JzIzi;~3zP|eXv!{sAlg$*0t@1XX-dxxN~5Dn{{b}|i8a0Q z#6*ZIe3b@tQZuD+9Kn+jiDz0IdhMJJV(JK-S!J6PV{OPyIwK!JD9=*uI!ne2`*+rx z?V-pG?ksTeb27FU`Y;g@3jA}GC+sW=1EG_UKc+?7Ss1nQKcu8YygGlU7g1mNdWzf{ zyP^}zY5SKYYQ#z_NBRg_bZK&p^!6(+)3f8hM!`vWj+n+PK$1=Mq^hJG*hD$0K8<%( zBawRQW^qklKW0_{Z#4nEaDwD@yrZc(?K9r4%;X>EXK8FQ(e@Q7Rh&sa=Cly--hIIf zVCj2&w?b?_bW}AyH2@K+02A}o-l%sk?C|ETI1=ZtV)(V^o$m<`VcAij3Fy-zhB4f` zXkt+Zj++5~-5H0v)#KAoG!Mw_$Jqkk#TE&R{b z#RTTRCFF)vcJD+OpEImArffUo{HMI2H+xMXzVVIYPlzcxpX493SNKH0;dCJ%+y>Rp1<|DqX+2#?C-9R{&br4;gn#;!l zMawR^cn=-rYW2SNb)r~FBj^_;ep&e!2y}lk;cFv6f2;MU7Lix_az()rW9s-P|H$dN zYC@J<*`tEF*kb*t&>nzUCtSCy4jSwT~60(i~k1euS*AiIuiI9 zgYBeIPR8K_CsUl4EM*iiZuxkM%kWJIZR*U$U|+@aJu{gmuxUWIkq(Skn26CVMR=5| z=!_wG<+Tz)5RHBx{=^ITQ~BE@P1=xe<|ktJ5lp#5rcc3nQ!GHawkCGc2aA#FOSv2S z6HXRP;)uk7IJ4;R@Ze>R9`v3oVP5q#!_^@v%ZW;NRBpRCrY0by3By+NTp57^>@#RoO%%N*c)L(T;=vp08UdTg!)@LMVUe2IJlh`W26u zqVteCq9eoMm#Fic=iAWxxIN*Gsxo5nx0|6_@OgcS8kHb0SrUaWM>^8yXaj2c3upC2 z_VobC@p*@vh+qh$?VAy+1D&mUt9u`U70{=}brkc*V9hm#6^CXSTNuAn(Up1`i%_Jt zn+xp5HNg|CXZRqL;OB;0Y=5KJlz*MT7wFC)zSU;aN*>x%+0Yxi&Q-9&J%m&rN~@l3 zIRVhkSObLL>hAs!(fZP|-T zAOe^eu|LzUT9rn>?BCAZGF2L+DT1MZ6L!j0_WNhl<4p25DXRMcwt?hH7{GpCm)Evn6eu3@6-1wT+>fmKq!#Bur`fQC{*gg(q#uZj+u6tYUA;-XosR zTK9iO#|M%GoD3v6k{I_&FC2m0Fj*JsgcHk;h@8jJmZLtf+_^N7JP|E3ebGWe6wucP zlXI4WBBrmUpGVBmn}+UuweT?4!E-N}bx)OV>JAHmet=ZVdqJT6k)}z9LP#!kWZ>P%U~eBj z{xkmFH(K6xyp4V%vfj(wq&^JxE^FC1=k^|G`*>)u`gU$_!I7%8|M7ka{`Ui)b`Rwi znlo_IY!Gypn`HR*580VaUe4@rO7W_v=T`4un`F7KrV^AH6-YXSCQZH^do*-Kdi%_0 z2VyP*c7WiM=JLesnKEUypHE`1B=U;?cUVTLy8hxyNPbvF(3jhT^G`8y6N^hjoVeOM zxXzuNL+(7VOXjkk($ONS_L^+ zGa)*P9+UIMTG!=)vKVyUDOm|tC#(|OiS0}4?03?$n9uLM^&n=V#9w?3S8p`E#TVvj|0Tw>l_vdM>HD4A#4vu*y;&#*ILBAQqpqd53w=<&N0l@Y0uQ-hZjyCW)9Hg;TDq5(3590=pUe7N2Z zqp$bP`fG?!Dp^5GG%l4Ab2-4XW);o=dL&*)ptmDaczTm4rT2Gh+@&OPjB=THnsvCI z8xmWWA>zNMn035Y%X7Yb{q%_1-AQHu$6sf`hlh17KE~cD(V7iZoS7)896393dsUm8 z%48(a)lFOLh=y=kk=bsf>~==(t4*dXqb4SqqDR~58hP`%?oUGlQWYxojF%cc zctDPuq)`ag;YpevM&!fPAro_$Ieyg#jr~ef(6`+JWXW?J4*19>XVU^m7W!i;Ey>E# zPRckBT2x1Jm}YfAf4Q<6SarjTqT6DLzW0#g$*)4@ps0q@%sEv<>Rp#3!IvGvJb&m| z8;r{?B$yH_paF37-iCH;W1Ak?-*LV*PP#SXl1;pzyY;TY?n%c|1m=vAm4e@nRD*Fne%HVWMSJ5ig9s9D?WOe=A? zcMcwTy~oGl;)$z47B$?{xdak4VT@eD6R51_Q4k+WdBvY~h?U4ayLa>A7AlZsX+SPq z*>jsqvud|v8^ZHTFarD#R^U?=E>NWJ6_qo)XhxQ<0&KzdrdA!f(_qGfdAOAln7jRb z<)WG9;)>gS7E!9x&vofU>?rllH7g1Y;2wZpIB21X{&V0g&7}4JPx1~{H7(e5Q{g@( z4^ySHH|i&_5!`Q+_5*`jn$;^XZdu4^ z?pF~ofzFtx{px~)D04Ubp}2p7+UUpy3%_F|T64qNe?c1;6Fk07S#KD!y`;)_uC$#K ze|HOH-ui(_vysa$oqAtFroc43^~Suic%$YT3M;B87J=UEMLNW!9_9vF8Hm;FejX{C z(g{4XCR}fGPF#Tf=z>+LZ;=Tb7-V@kXUJ zI(qq=e3>K14Rks|hZKW}<&&N0`||e}a?WswB)G;Dd%f|5sjbDuXxuTUo$4*X@si1L z-y;XjzkZ!7PAUU1FCoDeBz|2#Xm$A};(W`LJR+q3X=Eq;)r9qMQ6BVg?ZD79(mzvR zU;`xhQNh1rU)Q{(GX9?TF9_j}*a;90E=v7eilUpXZCVsC=eMX56a!X&eZh$r#oT%! z&LJ~&xNfTrn0iVthTziJC|az;0o`Y>SVu0zJVLse3#&+(x}PFlof5ZVvY!bx>e0$q z1anLcovCr@h5SZ=qyJJ!k-D@V`0`HS^Ow!cHj^_%Qo^W8g*CHSeTrq_$&8*irH}-4 z?QP2AU)N(3_*oo@=Az7=?|YFDPF6QZIU(J@-{aRq4|cR3+Co?Hwk~Vu9bL^6B4q*R zMPzste#KI%&%%TUInnD938vPFg42T%gLp7!R?tzOAl3XJ|?YS`X6bx(WW zE?q;n2`0$GamP<*mts{4n=M`iN4;BPGxX(3fQul?jQhvitd}pdXPkkd#zk>Tk8^7> zBMlkNqb@n8v$n#0n;QZa zCc1M0@C7zWwm>Z%3x)0;?c zsx)EW1o%#PR>_$l^}VD(f2%vl{@r!89Q>n4ZiS|{cny){?OX8nbmB8*#EZif9hE0rQZBKTAJbjNF^q?jSM%JPmiva$r%sXW>E$r{xm zupjgQ^?E?qJnHaInOk)Pk;CbIqylY9kw?JI=jeGRt-4tG*eR~a@trij8l-DqdE~g3 zIq*QYgg%J0w~}S+l0POkTsbm+&-BQPHgyF-ZC^47x;1I6l!sFUrq*QB7J&g>z2wHM zEB9m>d3Tc#E9EANe1jynlS@qGL2`ZR!4;6Cu}1*ZHLtC7!khEZrHcNEzC>er(;}(q z{u!HUw)#EuhcM{kglZB(hn@D`VfPB&=~;cA)|KMvtzimm&jA-CwjW z5sJ1rBp7LE6%+>0DJ@qyPvb#9s}-_HOxN56S}cf{43DVw`KGieZ_^_No*hEb`gdeG z7C)E$;4n=6#9I&i_p{QLfkNj~Ldtf+1cUe6E+JIXJ{!Fb;;deMx53C+>Elz-w||1* zs?T#3pe|Do84@~+QoyaM(#Z@JX?D6CvbAiA*5cNq1dTcfYomC9BE)>+E!vAmvi2|LKUg```z3KczK*?F<}`VTBuWWJT2f0jpz5|9`df6iB5IvOrJJs8?q;`bR+FIjIM|^84X> zz@6VCU7Te#2u{{6@`FCeuf9HeZvOM^6`nR7Rd{sz0}xkZzleL$+}-}|CZkIvCt4EI zZe9Fp^R2UiNA7#96zHuFLw18DrGd&r@@ei_$`2_8v>jVTMxP}9WMjdX#4wte+8>gl zdXO>c-Gv)8O~+q>pw&P-d$#sVi(7PsPedMG2;TF&ic~f0SIowtdOpzE)RGpxKADu> z7w{=eR_NOHnM?KPOu{lSQL(c-L44+~4wTJh`RDJpRemZtr}K@P34r&;&n;O0gQ@bi&+a7OJvf*NLdMF zWpr!o4mKFFw|eH?oP!=^jqUzGNBIs#V0pPm!`cnQze5FE-y&k-rI?@}_4|EEjQmZY z6JCn6%1Ymn6#4Ll4E5p_C2ym1G?V^@ruT3fBuB*P@u#U)eET4#OWR%Xdq$RHcLba) zoHLkWzM&9>CXX3caa4J-)>3v!`NkrzLxIWGfxZTuqA=P*Dz`TzqUg6;@JlUUt=r|g z#(PPdo->hHq`^ITKttun!4L2Pij)219eV8(fL)vTW#H6Wh6^Lpr;ePy;d{V^l61}4 zngeRZJXIj*CKYYPWZpjb0aU;N3!tU76!LYqty|1TphRY?*5zdl{1UxX1_!-_)AAR4 zH5eb|k9?qamS;C7yi7}buW^R85>UIXa;TA;L>I17u!tb~sSCRDrQe(Yf64qu(T5K@ z!djSu{(-Y?yPh%UGi6Dx5{s1UsO*wSqhBCHfbKb8@;3t_K<&$y^8^TTqV8Tqw4Uia zN){aLhw_b{8B31%5+{7nZ*_)hrYX@*bm*XjLbKVIVBURlk+-Gx?%00lP#jO*QU<@1 zIgZw-vxIn-p0U>R--bYiR|%wJ%@=;&Q1<8XL`_(=q(ZsI&S6Z=cF0NM!10W}moAf@G z^x1w&@?6)pdIFGsd8a?6h(k%Y(Rv$!9*Gx~?lj4_z&2iIElV8LX(EaF8v8J$q#LcJ zs`Bw?F8`=Y)t4K4>!_>YciU>~mCqu8Sff&w{saGUx7imT++t$KWo3B$Dgs!1>f|$V zya64{Of}Po6D8tZRgw>@d^H_pKshjV=wpqrxr*JxNi|IOv%}+%+uXMgFxw+99lMi> z1+Letdw+@R-+ZNisFAJyMLi(C9Kc)Iy_3i|d>VpaLJo!h?zpH=}D8nUK( z&6+AU1P9gJ0yD?mvpSZq!;C}j3*S(BLnsNI3iqIZRCDOx51%)OULln`BYEbpsi|jg zvOcjw%J=yLbR3|k9mSFtC5exk1&)Jb;8v6srT?<(GRq}2PzJMrsZ2y*8%Qy*5$Z}D z95wh9{gKMl)C*h;CFQ>|NFNf-&SNp9Lqh2Wa}E^1`|sMn^HSATLxTPtH+n6P2%Zh8 zm?9phq4>tR@?wu?N*MEMG`dD=bW)EZg?ShY9&vRk+o;8o&CDbLHK=v_ipmL`%PZxK zpB*@Ct&oQ&D_fdX%*zNNIm)1WzC=ij?W05A_Y60oX#3waZ9Q^$(80OIXcllO?qP}y z^9RcNQ}szlV~j6~!lKaUTL39#2h5m8WN-S`MKo8vZxC2nL0ju#o^?9bqpw@xaiD+4 z+x@pUR%F?1CdZ}G7kw?hQm*)2T#FH7cDB+M!o!a1MT&*yH>*pL@sE4|#J_d`UC+tn zK|K^h+>9d+Ttojb&wp?t>VhAxjfY!z7z3cMmcoZ&D3~+&B@mU6a%&s-hT*ECGc3AZrm`B1N973y~WhWf98XWg}jSUMIkNrp#CXz1b58jrr!f0sRsgb>84$ z9b=Z?0rezCmjTXUN{|;<9UX-7hQz!CZS&8{{*y`R6*FL#*pR5#oh zM1mQ@7O^G5V{Bx?rFV5Y*psU4Zp_i#t^a|AC=$D321YAGiT)! z->2!+>?Q5oNUqfest4}mtB=g;ms*$7iIE;)j^P6uN7oW-sm~MUTNUTL8f8YH$dFXS`>%18Z&H=&t%mA@iO)FE2 z3x@Ymj9*GK*?3d_P;)`SijSy?92DAL8Z~Aq|{dTLjh-W z#^%#2(0ud|FbS*3lPt(6?hVd=(3qMW&@J?!K%XQ!4m}5qFvw8tgr6yWU3?v8&>L?I z7wph$mGltG3p{^LxL1~dPfDq{3{*C4WCS8^E&0M6O(|d#XmoMl{n<=ZXX8dYNDAx+b z&-M!##N3JODM$CVdOWzz1Pt@+LLS=j*-O%$nC+|&HPQMD0HgPGE0hmewvju5hviun zxyHM&l-X2DVm=v05Aq-zbSyI%IQB;Om5k)5s-azH&-TBuxL}&0ZL+9YMvB+@LE9p@ zpgH)X)En+ynD?@a9}(zJ35AK!|7G1f13QPes!wHR$vf~p!%4xjyh)%;9CWy;O?h0a z6lRv3tzQ5MpHyBOj1ie8E&!7B@4=N*8Wh#}%m(IpLA=_>aS~US5tU69kk!;B!W^`; z-l-oBZi7CQ$=xcn#&2SQAU>w1byNbv=YbVnGnoxbV}HwGvT@CFo#5Xl za7NGz$Fi+-ypVPg5C}Vx^&O`}xE2Jo=YbXes37S|)@IBc^TK5Inj|jY_&u3s=75v| zV8gZ$n&h3mG`oh+A?K4s)`Z#3VEriRx)Fd0(2^Gdz2{OE(q9W_jU}&WixPy64`h}z z^iZ=kKgKUX-d5qQ+#U&6-x$1`hSanELv%*EE(8>4lbtG2S|i4KEzX3f%cd(D&(CZ< zgKK9i5g9E_aA_l6jD4I zOA#ChKj&Nk(gcnnuHMWkBDxZE=*O9L&mB5lu;x$gApF@#yJ@xvfn<|yc2>drvO&M#i}{t^~ncmKrxT& zi?F>itJEB!CTzcc9mhTq=o8=E483T1V3I8^ou`$k4Y2~;x>={W2K_rTP`^d2Av-4)->!sQ6DN}Z&U*4ER0ak z6_XIymGt9dkPG#1%Tq9hOqUGrrB)`jxi7P+vyE=0%+vcZ39HjvSD7zkcR)MUvvoKh z>@>qJm3Nk1Uk{bKONOdV^g{S`vojjHALz~A%{TcBtS!Qq{iIHA{5o>neIeBj-5`HD zDhmAD5V>g45RwYl*uP;D0U{R79M6-$c)jsRkEvVnm0|vTnU@YWyU2b;^k4QCRm zWopnp*wTfh4nK-&=(WR$spkF8h^qzi8=gI+24TipXYfp#D9) zr~}{_Cw@&oifH)%@FAdBo(3!SSHMa4&VD$dL_d^nN<)MOk zu98Z3uK`xuyH!J~Qd7%F1k{Opa}@KAr2 ztGiSsdup)g66FDOY9Jg&qrBGmxcpFx$pu=QhK5{;%j~|CD`at|UMdw9PFwlgH@<_L zluU;9R~A!gEVEZ-aqr=pqZSfNowbVQs>zjv6h{WQhJLrX}gvYel{dpD? zG-NDw84u~^`NL&V0}+ik(brMYUF0QKw-D8bdEd_>hE>R{yC{I9V}H^iwlX?V3^u6} zB`{Rf?H_}7{`?BMXmUw#_n^DL*7vnj5()`L@b>xAM|3OGEsth?=alNBsKE>1eEgkr zgD0#P;zj8{3-kSB5ZCxmHn8Tf#^<~8Z1tO=f&<6<#G|9+Z-(@5ybn^FS_1nK(0zTv z#{xY(q)3TL->Xqz?8&6D>^lXADe~hkVoX^A1qYLHqWPRJeaK=b+#s8HG^yCH3 zu1=xp&embTyy2!0e;c*!jNIy9K z*g$KTFa}+m0FOzL_D9eK{?t?v)oTIR`__^A2c?5XmiID@J3X0uM`nAUZ72vw@`^ws zeK3?BXn9WNq3t0)Kb@6lx=l->RMJSpICb>D7K_6&dqheCxo}afqb}U%{43kUv|>9> zYnfmNPNz%d6J~^7`~t1gS!eCcd14S}DGKnUJ6>0$SgAqX>*!DE!N&8{ zpTK)ou$@mPFN~j94Z0FFhR5;P;l*J{KvPoOs0}Sb_4TBydB=;<#^%%ns~cma$jI~- zmdg04VP9xWIH;u`Xib+ZH%@?Ipa0VoYw|Th8J3_HS2vKaLAgpUR)HDx!u5pSO?N|v z1v5n)HP|glR9Q(Ijf;~b1)IMBk$DLk+x54LMt&aAk_^-yaybIwGQdA0Ue@PdbU!j? z3V6uIZayDVA`#Z2%~*YD?aL<_JjjKsfDWgrBy4J>2y3xC(&#Qj_K${~3)lLr=VB?^ z)%S9fefTV;7GdGcV|Kdue@4L?%#97oVI zuA^qQMuy10CB%@wE%A$FfepWA5k3poKM5Tu8dkv%` zzsOZXBaBhsJZ?E$1tghrxr_hANDn;TYM{pjuLJ#aD&s6pD-7c^A|oOvZx#z4cC|3k z*kc*+>J&|lf*&7F>Li|Kk?ZSmWvC& zr{fC3BQRD2xp2+#XV6dy0dy96vJ9#*ZuA1gPNTrwU0ReX_?tAIwA@y+uSUKLWRDtk zwZTb$Pc+c=y>hHAat5zP4`8viDE-K9o{Qo;cY(v4Mzpu4k@T?I;+R!Dd$InbkfWp3Qeo4gv9?4QOo!Q zobV(!t+A_7uU zBT0GFad;3poiaSlLA2DXB_vE|iHNpPvRHcW0n^>^yuljPBD@3NK!uM@?1g`ZR zNhYE}LaObA1xPzH*b})#4u*;&C#4Ycc5b+ zK{vnA(JGsUR9VfnRGS%WlJqsMU0{>TRSQTk-LlSRuYb%x|K$~Dp~rufXl6_V1Tr;l zG^Jolt0KQ`o&SyIcE&8j1#7kXSU!!K>_I;PeQ2X$kV4Dj!JV6>`et67oTK`D3I`|h zh2*a{&X!?xXVup0u;es(xScPDbJNl-_XObgE@(X}uJ4h1SzA`9sxez32Hjzm<|l18 zx{juR^#S@7lXlHntT#d95ISovVX`Ny{w>EYn;4F<3+)=**AV;!RZIFS!%2f3jpd z=W1^pav>NcllJ)6Y|`zSq+IU`CnMa4s`=fZ5!D03joFKf>4nSpi+gpOm}J6ilPcir zmT%2LCfevjv9l@CGa{zPkNFzHG$j6zcEeWg26{?LL}+N?2Uq5vUn?*B4gM_-SYR6$AlYS zyiN}oil9c&?e4<4pE<9Dc+ZUUq8h&(+f_Nd3%?Go5fnbA!RaF6K|9pZBzodk^YsfT z(j#YtAM;waNPpHTowh=cft%@{T8O6n)~PVa^0BiZ@~4%`WGog-C1_ovN1i?9lWH zjIte}lWgx*RcuU9Qt}S48GfufFu|644RNoevT4`4`knfG>ms}HMV!X=w=(EE=Ardd zqoQ5p3iD%PTaEN9n;3m%cBG_?2Nb27@n6RJN~LZ~`XSPy(wj~D5NHMJxPZogv%FT$ zj7bR4M@Q!TiMQ8(UY&EAV%6ojEO80v??K<;VHqN}E+*-z$mMDF;ONV&eo-vz zcnJdfi2Xer&+HlWO~_ePA_Zk=;aEOdQj_Ej+u~yM0hsR?QbbTZ*SY5lJkZwP1bpRr2lxk*2HddA?!Xk%Y47d*yEM>Z4n!_sHkG( z+4K|q*XT}%o($B!r z`+ek)R+?$&3FzGn69~5j0nDm^3Z}`ct<0*4Thky4SH?LuL7C?&c_4|+W8g7!!*eh{ zXlSt9M`U%LqPo>1ED@z&mH9LjbUjxw-5+nkG1~C$_hG5l+WCYYwNbH(#`EMHJ9Y zl>_y5W@Lip^?rJ5KRs{?aEe6=F-~tpcz3$2%@RYZW;>qrDpS<|O3zVL3vgdGNe8HA zOdOpHN*IdJYL%*q!L+-xr{UDo0;(vn+x5P2fv&Gkz^@LCd!$z$JA7EfyE-*T)&HV? zsj9liauB9w=QOZ@U;eAjD{xgCpq{VYl($F)2u#4znZ5?{$LQfXSbPD3^~X^9;i+mM zq93e;`4445E}XwS;W)`yloq6*;WoET^zETUQ~z`#V)51XM=#sALBF-5-Ice1V8STt zROwzaL>)kCVEp;drgT`~N&8q-2K6LZlgG}2t$z=^oup`6IOy$d6@AQUsVi463aUj6c#SKf*+Q^mV|Ux?0OhJpxKW#;AafPlXQttD zfNo|@>CuaXlKZ72ua*JmTlJ~gA`}U~ZRZsS7I`Q$^pChgroxk^ouS0an3H;Rs3^r3 zi`y1nzYfzRv&U#sI3ojS5#}rnd!9e4+scW58_b-$cz(9a{527z3T=nozym$)D7=4( z#dOG|=B;}>a&Y23g~Xq9fK|M$H@7!{56F_5&C3M_?={^NvUOF?&9rV!fNow>c|y$u zmE$~HM(^x%$1z`)IKz<*EJbT3``wR0&_zb~zh|O&+fx=o&6=qkhS_qEsE}}D4*Dc7 zMP~-@{q8XKjWQH&Xgaz49CXCmQ?3CV?4k`4lyI%~Id(ISTWXA2jwfVA_zg9u2tQYW zeb58c!{V11G8pT%1RtXn88jWUSd-z*oBp0$QWji7&MHskf%^*z2R_CUN+ z1c<)9YkwqDB^#|#cJnPY#66hQPk!BMLl31R6Qw={z1fTC5}1B1$D|KUv-6C7?$ZGK zOFMUw$LTa3-7CGhXN+%kG)iHP$v0dw+KfKFo?Hy*s4s7lU#-vzUWjhea!Qq&gZvR6nzire7eqL6&{Yw|9~lWpSknPo zI{D$4Xpe;pk)#kO^VckCHnR>x=vI8CPQAuOg~X}P(Bc6rE$&LxcfNF>ns%Mx zY#YqTb|McL4(nwwEFE)V&!Pie-82O=oPj+}oHj(N3lj$8G87D(X?R4Gq>%B28j`Be4U8d<{<%ro-n*wzpw2Nwm*7Ryhn+iU$G@bU|n( z<#b9!?9cFzB*|{O7mhUW$y)NyHj=W!CS(dG$uHW!IB6{Z;TabWkxP~aBZ}t&GqyO* z(DjJON7flf0Uh4L@L7!x=%qsH(fM>X!9$>LY8KZ0(>eOh#<5nT!ra1&A=yn8O&L8B zMNqjL9Nj}Zs^y%$-J}h@S~#-9B(onR!V9QCRX#yGC%sx^CC`lY(mqU*sqX(7*+}GE z&`h`T2R(*3XjBJD_|jC2?7Z?+_VVJPJGrZ)=^$99XJ_;f!%qx?_@^I<2{X^UBGdhY zp$$?uP$`CE-Iu;3k4lYwSKuvG-08<8ZxUbfNc zqZ?!d#oge^u3d&MAo%~(S`>h7f`O;7H;@F>F&S$vAo;RcL%PSpEQA5VikaVdTIDy; zg^zA)CL%CBD-&(1_HSRKxobsP2SJbEX=HdqjvTat6@6yn=-^){kR>p>`^}v_N`fxB z#?8>E+hn4 zTU{}=z6xX7fpOz@e!uT|9zMqAO@U$7Nvmm!%mLk~GbPQsJAvTneKzJ5`5R1^pRYmthPA+4ml(8AMYrgtHR#CQw|S`w1OQK{?cU{rK60hsUpQjW+q& zP@kE;DjW@jC%V4Wa4BO)ds4@zWalT%-HXL|uAxUv5lNWShk{OOhD`UYRa2IqMjR+U z;C=q6FWG@~p6zG!vE4jZs^4+C7 zdSSL%7HOZny4kWXcJ12z2d7`Kg_|}911^g{!3VCdf&pF+E&(CC*5TV?l>*n4=G8Ms zOTKg8r=moV$Y%?__HP1-+r#zzX34oeQjezr5nQ!RdwqcqTlLS;yw9jvR^*^-_GS^b z`#wXm%sj9PI*ca~e&Mn{@~y#o*Iav01NcQ>Cc)&{Ul+>+bg1rHG|V1S0fuIK7MsuD z+s2Jo8UAGK;(QtRRZf_XeH523jl$NTUvV8)5PdTtC*rau0wyh4sd39_a?^+ie^9f) zKvPtC&u)$}(w)R0WVaaB>Y2VuF&A)$!k#SINwCQguw6*5mOh7-nR|6KNidWiCGX1xmQY~&8;P(aAHW;UE>ptB>YMZTnH2IMdXRr%;|k)C|{Yr7JQH z3Vc*rb6n_Mn<)wxBr%wd0PD7Q=uxMx`#LnMjkwT;5ab>2cwk{6)TKlHgB$W1=vN%w z4Vfydqg%f5!?Le4K`LoCXViRDeZ1DtI8|)-Nt4PadODKEWomnoqD&{%%oH$Qh5d^0 z%};;16vu6oENY*!ucLHry9`jbPc@Crs0LkMoychU#MsaPMcvcKi7F>)9HT^PMZ-OR z7t_dA6i#IN*8M?K&y9%9<;DF^lL(IouuF8vqF9~&^_luL`vfjo<6irqO-vHz+XTsZ zjNBXO&inOH!{ZOI3-x=U#cl8c2+;D>Th=E;Dw-R0H#gX_a1l2_Gt5+&e$JdUqxPsW z8uh>%I%{j48f^AMY8%UoNS+^KoH&AS^*1Q=--?3P3PjyeY z%{H_&2=NiL;=nN%L5FTvY0)>%{bN0wqvfasb{T@p^eA;L8>Gq+ppbh$td5W#e z=BMvE^rv>L7CPTQG10eA96kHr4&dtkE1?)rdDMF+Yo%A4D(#n)P+0x&`M_#4i%JgK zL%o8&_tiP=4)Bb)js=*HERK{u0`!HYjgB z17(zMFo|tT*sH{{O#OtZA4R0lf|@ZvM@ad8uolk1fWgVd`YJVVSA~S=Qj>E?%+A!} zcQw#&b;D3=(2G*HA#SSVkX7sZcXE!g<@reu>W8^-!iEegFr{e@tQLK>0xia(d>6fj zN&v=S^hZIn<664ZZKOJ>bXI6i?=-43m<{%v#{tbE=)c7n_?xy?K3~Te%94e`daWrJ z*KQ>&v?j9|x_k0oD!Nv>FAuw(1qQZMla%`74uM6 z5Ho3J6umq3>;`ky4Xe^~o}Y*?a3Q|miw)`qQYLLp;7n7xcoZvvc-1B(dDyiS7*m{I zb{rP*SZPG^mQL%%$+``n@=BnK_X85~%2Ze~V?(+J)2>@-QubU})#EB$=Xo(cv(4W> zC^OYh5p7!EQ2t7_imQchQ1XM3*Fm{z?e+;A9-&7jTUjoHL%Ko^pg zvQ_193phunJyM5_ba9(C`F#C8S1740gJwWNuQ5`5j6hT3+3zxc<1CQ8;;0@9BuVl7 zmY0oE?;Y&dy#9CkYgzf_4_F;HFE}O@-`@*S(Dl`#u$cGl<4lsJqS$|4c^|7kr|K!5 z{P&%S|Q<2imZUYPrX zIF6pm&`AN*#58Y_KN-ZwA-lX!9R3iOnI9F`IVXc@I{Y<2h8JEtUU-i#xwOZoX--%v zl`o#3UP0bs@>>7%6DsJ5&rL-&Y&WZs$lsGL5lY!U7@zaOTE_3szIHENRx-wY#m?@N zAk2dr5~sfGIw8Tv8Uw%%qKVG=hY4BIFzjnBN*O+1_l!ITm3!FD+o+qq{RACSEOC}@ z?)xNvOH~=zTkS=3lQAy>7+h4xL(enP27Dm6eGhbc$0aohW1o21Cp7ti!I-!mt`okW z&)a_t{o=;;`A^&j}T3t3dr%X{kHy|U3U&^Lc1c;q!7B7X<&)N{RuWoDqP`N25kdg(y zVU$~wvgXAE?lxl_Aww31Qs(xTYrGiCsm`WSje>5R-PVRCA`~m{aFc#g8D-3F8b7WT zn(1Mjpa^*trQz_V83c8cV=vn0=;_N>S6v($13+=p(H6WG2x2j`F_zS2HaMKKtK_I# zJN;XB?q@3lovKe{J>jbR4zE9ogQ|{j0((4FYu#mkHY9Bq&?>7Re~x%%>>m`5?f~P? zSyX4+NVWM%Ip7-^cQNgSVOY$^Djjr%sCDE@_c`4Ib(+1+eNq9zg8kO8hP`zM-iM z!?F7jMZVt}oK+a#@YMz;6m&8~QEQnY6RpjPn}gEr(+FuAVsr2U(A9^g4Nq?1PlI&p zkFPrSKDA;AqRU{O=aB=d(tI?S8imgU;k!F-vZh^jWvwPOpOvB&8RdU#v4K9qG#t#% zUS01fC2SU?=zVok`ZQV9^R^q0%BFFJTDIeVBX}C_$;*WPxVM=mtwAz|g z2s&O}9zq-;znCIp{J~9AqwXWcrL`GyqfA5J=)I!~-a5TvzaY52{DrD*(RtJ|eTm~4 zFoHlh)38Jt;^-o&RuA*^Kd-b3hNM>Hz$31tg-!-NPP}#LMbCspD1u;|w$myGcO9tZ zyIEq`LlVHX`iIP9k9b}A3ro4tqW1&iMr@^K;t_!B!|mo08X$xY?&O!r<2}ufHoEpy zOSd*hK-Ag`1RZ>-SR|LwH@1FRuT&c$_(c3Xjt}#~!_W&?!h#pQldTj5CnQAsVj%3* zfMi30%{+t&6kWR25L_1WKdSEE*#()DzWyaf{|%2Y^V4ygC{7i0iZ5uC2OC&gTDw%N zcX$oz(aTEQ^VUf6{&9@rX+Sl@p^O0qah=+6y(f({)5aw3!3>;j(l=heEaJSljPRO2?Ys|^5SpWLfRkUO2Yc#Ld zXEyC8TFT?1I@;J1GldBzP=oTB*oREo2(WzfZxfepbcwt_K-fP$NZ;@|aK8fG?k@Ro z!_M1b(bKb;06nz&@`455Fv|8fY%dEnveJY^0Go`Z-^wuKY}8X33Esxhw{>eBxGJTYHZUJM zz6IoUWDwqaz0ZM&pp$Pn+xRQ}FIMkVZg!-~IS~Q)=U@Iqf@6u>MOJjBN!YuX*+R6JTbEsS7iEa3UjGOD1%L2uu{JJRP>ROGw7&K z13pr&Br)Si6I*zn)5tmF<&hK4*|+hpX&5eW9%kalDna3W+1gH|8ZQyN_*2bLqlpvVnC@2jIS8U zoLY0OqBKp&u)WUPhr%kh((iuhf7?eX zt)FOh@j>?kNvU?bZtoaJHwj#xSYtNl4@x_xzF<#jM0vEtOY*{b?!Qm`(UG$%K8ZJF zHz@jX43OLEpC`b$hK{`qn^5&zH*|in&?=yQqTOjV(*KD7`le<;9)qJ|Vtj^PxxsnXQEP`R+K=?Wa0V z1G?r5IxoX1t;NgCYQSX|1;xe#Ifd82=1usDny27l-@O|CbXZvSYYZ9$=y?)>JFU{3 z+<)(v1>+(s{g@yl2QjhQh03c4X`*C`Sa`Q{Mp0kA!STsSWf8vlE{OM0xzGDdbtVh$3K6eQ%jfpFWDyvM< z79%3bN(}B@gGrGYh9P^xv+DC<Q>{wBp1qt&$O3}x?q_fq9sMnB-KqiBj{?xQ>cf~H^lJz@QnX58U0-Ztjwgd_ zMac12a;*8=fA}GR(MFdRg<|nP2MImoY!T*n^8r^o3H&~0Wr2d?5YdY(w;`*GL|K*; zE2U@mDmtay;h+y~a6Af1!lk&48}-wp#OPJjkW->fc)Q2~&(N*+X_RR$l|PRSM%U+iV;2Z3^vqW#K?zx1O#p-jj>`m(}v<_|%)7;bD)llGuLN;z8& zaX@q8Yr&@}|D)lnf`Oa+L6IqSi3-2ic&`&RtEn{a=1h?1X$825HxQ`D#Cnk*f}#Fk zGmD{&_;J8bJx=CI4)>5W4m!YA@u)udwyubP9Z$MVbwe3Y2AOVmeNVAQ)a-mFnAZGb zKP?KLeoOBOcQ&5m@SlqWu+alYX7>BL+bpM)DVad&AJQ%S4Bsr8ZwwKNNU}l=pcg*Q z4-c)eT@%TRnqY*AkcM%DJod>ISnIP<&KK7k>drc(#r>t$p#0bVquF+h6b4w~lw1kldLk4=!wGmI4VZ7~%+^I0xbLX*b{%n8hXaoP5 zD*06=-%cQHhRXn`))MRf^2Z0so0Sq92q`0iG-w8 zw?%IQ{4IZCNlL`E7<`*X#Sn|JdsFjPZ8VW3SWG#!0scyB_Z}v^)Xn0KqIOQh+;Ea# zt{2x>RC9*?HbGPZJ@&Ai#wKY#g7VoGR%mn)=O9gsiiA%JubG&goUZtxYQ7j&|KOR| z{Jf~%o#{Mpxxx>yG=0T_#Q#Gvip0~Ns``EtXrU5}{CmA3{P4w)eid}lfttzj9u*ApuJN6f9H-etc!Ld41KsZbT%k zn>1Ne`gZH}y0I2F9hkxdo-Pj$Z0$}J`F^X?$`bjeXJnI=ACPu+JhD-F?!lxZUK{ft zLI81VW&5Yp4@4@zN`El^^$%1(SC2lit|CoouC~2trLNF5o5xw2d)H(gB+sPy>;V$* zB0{vg6(-3k<+9=_jGK*h{4k5%YedddpuiW%K({8XRKC;jUEP5HwZ=&C-R%d0HGJhk zMFuX~fSYxvQ|sjuc_VE#qbZS$yihsBDkEVG0KI|6cvhyie*9r;!VX1}tqq%O1aV*| zsT1A2dMpR}6_?GNPdr&J)KJL=GCa)HVp=uLcF_wjb^p19J%BkGD3lpFR@_}6dq;hf z+5Y!0@fL7J!FnFUmLaNd6)N~=UxNA*N&NdS0Vob?H=|d$8PFr~@=doOeCh;;6wDG{ z!}^ISKqwc_EsN`K#6o#n$dlKV2bqx4Xq-;`GV^Q6jc?Gr(>p0+;AB@v ze`mUC^D|q0u?pTWtIp}~MMj(>ryniXfaB+H;-`u880R~eKRuUS3AK2LZDy9Tc#te~ z0YA9|LH|jR433GI$UP1TCdZVFm=K#gki|iN>yN%|*dtkC6?A>4!Z-hMj;&@ig!1hm z4nr6)5nQQe5P@=Td*uQbdsH?%PctNDIi>lQ8(7-Gg9*BZzTU*-HJ^6G{(44r%p<0E zXFvavTvh9NSaYvgMEt5uiWK5&+MhdxA=%%7^vYDU-2gk2eDOIerp1Pp5JR0SAQpS& z@OVfjFiu;LnbhS1`cIm;-`K>%R2V;{@rfA}Bi zA~yU)Jxv}V8+uJmT5N`l!e$QB{zIab>HGZYWQw)$vdY(AHOuSQITFWw?Ei+ru+_Rx zeh7$H!)LxL30x7<+|O0g(fvXI%I8Jx=ShA~N>1nz^ls&>6Nd|SrP9iOxCxxX6Em`a zTsR)R9xqHr>ik5#DahIX=X31q<*L+&zu5lu#X%~<>xET3(($dEKkS`5r^JEgg#f@? zz3XMD8pv-1<223XkAmt&xQMdaqSm%7C8;=g2>RAQAb72@y3DsiJ8Ykc2#*4J)R2mN z4?aswTK!Abx|Ju*`r|ddK7}~!uh_I$5s5ZcfbelMeTw5vYRcqHF1h_tl>M{Kp+Vj~ zRpK!VZo?z!nIWO@D{@u>SZ(_7cC*lAifaE5t~-o|l}_jOFwI6P=Lq(TP@V}lc_#V$ zSA~`D=ac}bTJUur{EWDCz3GMk4de%i@JB?xq?lP2Q{<s!idU-U#C<%qskl|^xtA9?duxi{A;H>mDRwv5ly6x0CYF!*uGXO z=syZtyPd0_N$|*=ecLTJ0`#l5fGXeM^VNmk%OU=kuq{L%xvx@x?bw?v0iH@&?x4Vl zB+pvIbNf@|OBu&bhGn}XIe`{ZMQ~csJ=hYdc-slG?qP;Sa73B>`5foi)65|+Yl9El3{EjEgEwkeIKglJ zs-RN?5l9n|yCcGlT`gfci@i8oXs9pQYETz{g79)}-saQDH^)(30-pI1Cpz|18}O-r z0=}y{Q5v`Pmb&4erc6RxAgj_`zQq&(Lc<*&5EgC zkzI)#rTmWDbLrYtfaWTa20m+F<}M_(S_d}viZk#R`q6jQ=TNLhg2bD%>#6@;HzKE} zjH+u$a`cQG4)namlv2urE7R}k-adXi1gHl`umF?E>D(YUYuxTHBbZ;tr+5YA3rllV z>fm;$wWa(S0F3r``^XOt)Y!owqLa}ej-Ba2i&J6a{cZA;%_^^Npz}^P=VS;Kl!==S z@*43<133Kqwvm4^YA1eu({ZT9ZmOaHe^oOW!fhBk5eyezW}pNbcAK)h_D)HpYhl_w z&o6DPQl*z-C7hcOIhBd(2~%71x;p+p{>RJX&IWrD75+J9 zZLl>yg&>;yF6vNmkP9b0Z8<(nih&Q>4>5 z?Ah`Di9nnVj`xOC#k+QJCc+X|1cM;IU2$g)&aJSa#S*n9vxTNcGzQRF0GSAE*>2 z>0T%cS5Ke^OI0ex=|hfhSH!i8YF`(GFLueWsN5OnXnQva=$PGYb}O#){(`X#u%GpK|GSpHNONAAWN>EV`sdAV%JBgKUV`hP_D`jgP+vi^0V};2nmPOW1%#rYh|(IUh_O~IuZ+! zQwQfTQ@C&ki)?CXofBX=ed5y!l9*(aPS@x|^yMxUQh}>lymhzTCV37K0DUkIeiK#a z$Zi%k0IU9@PquTF<80P|=Cj0_rkVJ_H?hyz2GiKL9Or`u`M`Y(=_3vaRChe!G9WKf zXQA6>c&jCMa_`nFtm4JYPR(+RxcPx@Hd8`kwlmM`UK0FCEs`$zj+^%|*)r7Ad<1V) zNZqq|ihI_LGJ!||-}VNbFA327+5*JNw_J_VDVOT)Z@o%BlKFF`H|y^wDE5K`*a=ut zL06&%DMjKEP1F|+i2|Q6^;PV*!-;ydNF&`>C___Aec`l^=qi+atn7PHF#tUW&_!c7+Zw2t7k{ko z%o02^FA_$Nni^GFJ|@)&I_eV=;z*$wgFXK*I?I>~KJBl1H;Tws3VN+AwK7D`z@il@ zX91L3%yqj84=M8U7<)62?1A``r`GHA0LFb|8yQh*FG9ecn5{XFu7(Det`YQS9Kn~m zHXxVqH|=4=3Hsfo5c2k?%DPu~7Z zpHL*Z`aQsqomwvpKWo=xzAn0}@9Thz1?Vd&f3WlTekz7Nn=gnKFsE*@ChPqh_~L8R zG_#1eGv#Wr+9NO6xQ_j-CvMsxwXmiH7oxrnc|vSJ2Pu8lVq(1TBz78Xx}C2wrNC zusurrCvL!6wh^)Pb4)a*VVcn%5*R&!uF{j&Eam_jP*W;ht>{D6yo7J4>Q%_N4mOGX z3rxw0s~y&h6WkN@h}sJKuV1LrvFh!Q*iSaHf2HA&yu^l4I;L*GT3fj4+()4f(u{q# z=!X3JSZoADj^P0tEyja2CA{_cN#pShnN09wZ0d?;y`|-PYA#M61EBlfhG?gxDv85q zZ40up!Wc zmz&^=7mtsG)m42v7St9Y*T2qddQ+m!RHSIf<5$+eeo7+G6_iYJGh#y1!fTKaUI6Vo z-Q5n_<}`4Z=e;j~deO;~6gLQaU;N363#2KDK^LHuVKwE_pkYp`huTWJx0;?gOLl|` zbQIpA?L*sC7N-w|>PuNWbe9~?2t57G-{NKjOtqq;Y;(ANbD%sW(9P*(Ol)K=z&P<_ zaO?3SQCWhXH4sNh(JAw!0j-3!`)3;tNv>$hI`NB4o&tTr8q=qb5(>CRI zKzJ=j006YK?rTTV9g!R=efkF_BTTxoaqxf8%;cfeKl}_yK)2T^{o55V#as%xsKl;~ zsXm$!dy?LIT==U4OHieg+UiNL!MtJyE^SP`_LUusq7**}xV=-Cpy1h{%ZN4{pt^YV#~1+G!!m=;HdMPdl;j6V8S>#f~1_~ z^4ZFZ=mCBz;;BsUKL#Lp0O^*}*))xz`}>tln+#T?3bZ%^k%vxH7U=D5Bt!SA z6PkbkBL?1$C3!%Zq3I4Q7LMJFb-WV6&lqYY+sD0C`V!CI=hD%vT>@L8z#w=97N;to z_!p>eVl@ArWL|9jJh65*1=5^ZNibSK*U%@4nQM_xTMEL8Z9r1atPFZGyC89-9Z#x> zvKm_b=8tdW`kFqNBl%OU&67aq(&8OJw%WoAHUC>A?j(~*jGPF+E1&l8k%k8$b?YShkdNcn_g*(z_=1=*j+f^K)0veskO8`}KgPMK0Yw@vaT zOvrj>U~Z$4KGXiJ z_~A8`o>y|egPaYzV|V)9V5d@_75)GuMR`eg6_&80dx7!wZcS}1&a|&%JD8UcT!pnB z!A3p@$+G(%2M2&OwvrothANH!aiobNA`Uq~OtV*BF^c-W<`rTj4m#@7fV^I~Y&A?Q zBl0Ml6`SBT_Om>KWLI41H^eH+!7t&*D_#0!X-@h-9FdBctnyF@z+cb8{*pm>+ zHNnLb|8E4$?l0tW3M0+S#5X{nIu$0`!;pC0mA0h5o#8rZw~JdNc87v=s`Yu{Ea>vc z`j+nxw}o6tTp_MW@Bg};|E#E6tmZWuikrtBeo8ecjLx~%NenK*Kn+b(tdZqj0^4Yo z4-4Mk9CCdqKI@IQbFt{1x(2 zT7JtTvar%ikG3I(+xRN5P0})5Bz_lix2OfeT!`!2Q7-DHF;aIaDKcyd#q2e7+>!9_ za5r;@7Xv_to4kn_h6n}x8U@37!yrCGp_tdmY+9Kt{O3B_MjviZyHYPG&cj}Kyf-=3 z=4&I3fv)#Zne2{+iulKlu6=s@ToIi|FxK_h%>ohCksN+}(4mOGaKz;l8)2xb@OBel zvc}g^oD$i;tg#fo8S!Yz>4ey{2J}_9{4| z1`$vgz!NhqQtL{TqJC`s!r&KmWch~5LTg8rQ3{~~N0_k&7Bbf|0?i0~{36OwEi66d z?J$3jyV)S zOwhnT8O%L|YtLd@!LQ8~^fPwSzq9v6u16x{ktf$kO2^m)xuHh?;8*gj$RVC~o3mCM(QOnJB^&4ARbq%E)x znWAvL<4H*_l#!@%2_+>9tb6q3=2~i+l7CZdL&_1e?6)G!8HRn1riEoim;L}l!q*b+`9{;Hmqiu2=bSIU%V)Rd#F;Su^cwW zTWSgB}?&m93#P-46o^v_I=)FlHE{&d+C+H(g?GPf__2UX|jdj3?$gN11pm$@s!t&g7KfJBmHg3d$IK!|ojGB3m)4fMd)Di2!_8@6VBC?mFb%CmK~Os#Sil&v?H(k~2d28E)uu0{Y%!y|X{}tny?- zEeS1(GB0tN10?xz0@>|>T%k9mt47&m{a#EQ;NoSW0l$IroOUe-kUmau{~N-nXuPPy zdg(f^Z#=l}%yOx&+h)~T{Eh?zdLtnB6JPhffI9H3?EqQNGkiPl>$g9&1dHD*+dWXD z-s^hud?(HN?$j)Gx=oL*kp2PUPt#pp6=D9c*i0XgVzjDaz3kajn@wI_vKCmZ44^aS zC8Z9CKdC(*^(lY4Q@s?Z;#eSd#wP@Ib$vIaG`z4{sCRWlEK@)06ZpE7YW3Hd9WZP5 zQ65#~$l4~Lq~*C1+*Wj9*yewr=56W#SZZ$ngMT&TL2bk8wdwZkM~Hx_i;2*c2`Tu? zzf>ydf(Jflpr-4~^fb6sQ?_FAB**7mi#$-<(T>`ODrzZ)qT`;0C{ZZUPc2J>7lWcZ zq=)gVdmQvDKGH}HXG*257{b49n@b z_AQSuDX0|R;9o5NAm}Vi$(8T1pO-<1u`b%*^{jpVl**-%_?9o>o;^;t2|Z!xBQ}aUb~z2m=vIHwgKvpU0TZ7 z%S(Bpf>SKaT=fpYRv~kPyq^IF03C`*^F9u&^X9>^+c~pSuFB=RgJ7|Bp``1ef1<7s zxt0X~fQIiupU`h8eQ6pROnHt2q8OblB5WO8fiSTREYl4gHel9~LuM>KqtAfb$RG3( zroiJ2?wHdbTc{xSLx%Kuln5-^NA%|O`-3!H(06|RUi6AkWtC-xG>@9)qfV;tbNrPw=>A+CyG+do{$U&6!^ zw`8t;qKng34f@V)q;7IbPLbBjGING^4^O~6cK zPgK6`mpA=WLIV;@QEeF{3?&4^&J5!BBe`X~pJunU2?0hzz!hqk;`+6GWd0C!hLVW+ z0^MndNC>UyxzP9bX)Ci<(BUT4HERy28~x?HC4%t>+fvJKvz!prCjF@YLhE~EPgv;A zi&rCq<|#)Z7JP(!hcJO}%Cyz~)*>=R(6xpA=ZM>}%`A8B=gl?B%WwgmhoC1~wOU_s zOmU1DQ-FELaQAa7Dz)-?eZAI#lOE!(k<^|4W?aoOR3t2yXlh)%ji`N(4=_gKpGutw zDp-{~h#wcpFenVH<64viHT+8Cf+H3NJua;oO@3F(iUdi>9F0!h+ZqBvZe=jt5q27u z8w!tAgmix>T{$+Kebtb|C#pDr{f!e?A)&0c^WJ%X-s5(>(cLV~9~B=YHi)SQw=PHc zWd^#JVuSO521UzBJfVgn#o0BuJ|mo~r126*eN;JSY_&}7!|J8_>zoQa-bbrt{mYg3 z1VE&yt9@$I+@0n3Z7Jt_(XN2K@$<9yVBBuFhXi#M=-EH5qAcK|=ea;n!h!)Z_MpDU z7CiSWmXvgLZ2BHmU1%>}>`%4A(k=bWkaWccCb$Tohs#7?IPhNImy{ZdvMb})!S{bG z6}1LX#o-rZ9L->$3sAmja8j(bfGr1G*e{!zNQafFu-NDaCkiU4mJTu^J|)v*uuk4t zFQvDiW~Tpv`U;c=ygCw8P;Xe3E@Pfzi+857TX!p#sfH-fuC^fl0DVktb^Ohwa5HxC z18*sT`rf8eT;pOX^Ci-sHLGic${wL^+b+=Xb9oh#&%_{pA%;T|s4EvCNVAYOM3m8? zk};q1#E6R~XG;F#6}SXH8u$}*xT(6ZeyeJ)s8;Q6iLvhCB_Tz-C2?i2Aa+EVdt6s zkD%6CEG>HG)cdua=%m=2CUbPyB`r8sLGPUeGDV~&wZM->-er1whle@wOR~BcrJW9Z zdD%^-oYW{B8aB+^#@3cjZf9WkP0;}>vW(TgswH9^Kj@ZFQw2+^(~ss)WoC)9cE1jO zpn z4`5=mpOo@T4~^>}eFUyG@$A*jSCyB-t7Nyk6wXP}F z%MtheNz-_CLj%BCCb;iEfp1PKT{yOf_aJ;u@M@AGhr}xH!_*{~>;?M3tNIImD&N?P zv_1Bzs(6E_d<}>vLi1duC}9|4Xa68AJ~v9kb|IYFmwZ_4_jTK zF9i1+ZBzy?a>9B50(%vVezXS%^cIGC!5Tal7XmZ$kXX4dZoB5l%bA5ekxCT4w9lz= z06F`VyA0zD&FZ|CdV)p7kPWchrsAD`!En)X`B^K!C^bozf5s%hF^>8g?v_G)c?kN= zH7d}dSp+kNpuZHS)!Yr7h^&mtKbGo{ z)4*h6K>yUS9j*Lz3RRuXaBe&B{yp#pv|5qrGrUUJYpu1O`_Bm@&TJbjY9|Mh3+iph zYt%Qu`X;B^R#wN9w_K@~AgTzXa7G5>Gy`uR;8BC6oe%opx_YzY=>}<#Qv)xgo6gw< z?3kmQCP1Uvs6=OJunceV<3tu1M!xcAXg{)=z5nX_4qSiSPA)r|(oWzA|I{fjcG9Zd zxZ={AM9hISycp7+zUct4j?0T3zV^Pr&hg6&)5spmU$DkgR2P)i<|c)&(guC*R40U}12t6b zGchZTc#}rn41XH}>pO2a$@)Df=?@qoz_fMYbHzJ1ocN8mLIy`!9AGJhUKI_D!}4?w z)w`X8@w;)^98-L4g??A1#ur5g-IgPyn@>G96$*ZL!fs0c&R}O4QOlP*vPqsXrye5r zX*PM00V*LyV+G8E;Z~e7a9$N~8&}JSLo`Y%+&a7JL5&Era~pJ=^z1xPj6H$3$ zrolA!LFPdA+FOLvMad>ox8Qkb=kEd1c>{%`+dZzq_v#rz7W_oPWEGzj=R9Hf6W}b# zyvV+f#TO zeji)^bYSuiAwwPZQ6)bm0iulCxpRNadggkde^N`aIGgoy)KaD(;hRTs_D*DFV*m~b~(LV0|8CDRkJ;2zG`!}>$Fj+{5UGkg*9TKrRoJS>L%-WX}a*xmo2pgaQ*pXm5MVA z2RW?Qy*H8|Yg_rwOV3f8%mUmRUX}-RAAzWJC{_D93E-uZewQt?ANMYUI87(5=;s)g zQ0uGtR8>~V;B1Mme~Z|Il_t-^!C&C#iJ}2h6|}W-cx+5%8x3SaiSo_VonJkS$KWirMXMH9XcKLg3i3gZq{$Oy(a*q;vnJc9+}Pe|zQjQjdN zI2NhGfp!6>;-LS>E%B9W)+HxDX!>Q$U2uL@ZN<*ETs2*N;pEpJ7JDFN?)h4&z=_A_ z@J(6C4DBy1EkI*yVcWxnjq{hq{<3V1J~-u`bh8-6WA*uMON~JTbopQexcR*oh8lv0 zz3c}5bn13u=Epd*mce(}>v64;@9jd`)Orqex#_4MZ+L47-`w5+9LGo{+QZ&kvmlOF zOm($$|4v(`@Rw&q$MM+6lLOEbG(xkQp#e7eAv$~kEY3Ct%}MydGW4upRI!9aswu-80vbuI;0{0rf8%_tCi!}HDP{#QqT@w6 z;w;_4$Ed*utPUem$VL%%)vH4&x1Za$_<-J~wi&lGII9W$8#2`)<2$pEmUxsiu+`J! zygncm=+*Tincdvm&tS%qXMaxV$zjPc1guLjL$V1mM4p%Wd|u&+@B)(3_!-&q45ULU zj>?}wr#aX14*Vd1PinDom?GVw*32jV9FnI2xOovRn0q!HaEnr~v~9eWec)T-mAvO1 z#y$c0+K=yJSn67}_y??tSom?h#U>MkbrLbNJZ)2hd>8@c>^f(2rb(pEtxyvMrBn9p7A8HuJ?Hz$bG)1T zD^jPezT1r47fV2brorhA#=!Z?U;Sy++E+uO*Hz0{B?3Jc)Dy=}qgC zS!h0}8QgyVo*=N>c$^PTR5fh?K(DKn{fO9;_wrzSIbH%`9tuQw&a5pM_)>Wr^`R}8 z0~URTp}D`{_Hl@NpGH(oV=Mz0yq6~yCKX(jKU>lySf8r&3Sc?kqzQ@87JKDv8U91M zf}K0WS>V+SRvV=|(0ina}7F{4Voft6iL zLXfc@Qi0C(DRgfuz1;o4^7P!rGEsj5_9_>RC0*ES5QBCa+Lf{UOs!hLjnR0KMmdxq zbmk?*f#-%Xi@SvRa%6I=Np#WB(d&ETF9dX0$IIe158I7=ptq?iYtbX@tG|&BvDy^t zOK5V_{?J?N>m}D2PaQ%pgcsq%dU?$KD5sT&HqD0EkCA|1H*Qq#pwa6=cHMV)&fKDsJ#px@*sGvCt?l##&dy^ z5yaBMyhxu}PpUTuzP6M8p!1dwv<9w+PQF`o{Jqb2paYDQi-f-0Cpepe46?aACpQDmP zJW8^XbR-7rm#v&8+C~htliKDWD$xBvDj20@tbH8}>PBtA*KmfxXfvdECJ0e-7E$X} zgsf|QmpoHB`g|kT|9bM~jJ@ks158p{JVXOmr_ltuZ39TI9aQ&@GkQTamiZ+MxLe7rQ8kvb{;MkW8X6ifna z`;~XDMMsz~Hs71MhoMp}^c$JUKQlE|vmGWsDy>1kx#Y2y9v*6u?h*2Wje5s8I5J_# zt)x;${44jGIl79L?i}4Ff>fIgg}X~6&}kUvfd0;5ilivtV6ByeV2F+Z^kDjn?Mn2G zhB$8r_6&T`t-U|-)4KNF|Tuyq+$)O7d|4tfaPeV}kxHHh-JMe~p81K@2MO z%I%5z#J?^0q+KGrDNYk8#Ika<99u>AN&fk=H(JDXQZ@>)1K?;8qq)-(qPL~uUE7Wk z1%EB37rYx@?TKWH%5jVUeNKS+nmMFl0_k~q-c(zSwObTCT8zoaYnKK3ak9lg z^tN5H&{>$fq+4oKx`N@FXsFXzPnvJTQE;<@ybuu^&rhk@0{;K_v!tp|161tZ744mp zSd^2Ve`TD{Uyto<2Ada4^Id2jqxVoiCw5nqp=xt0*rVa?tX8?KcC`1@A`nvKfoJak zVL+b0!OhqTz^}pTd(??MV#I?r-7_W6rlJS|3~egUl<9?(%R?8vO6_ijFJV$-920sh zng!2k&9$KWR~MY%4_avAH{><>%2GJ}N%>2_p^hB(^3A)w!BT#W<7CiByI0qp=d0EB z9migfcn*-Ue(>xr2UmvPf&}TX4KX+PFv;>0&Z^SAwX-_n40P&Tv~|z<5n9@pgd!E# zdEraETi!+FuJMO_O9)MpG0{uK?~0KX>D_9*MAoL$RFAHPfQgdnF)_Z)Uok_u?R+^( zlurI9dvS)u*;n0k_v%>CUFTB6epOA-NSo%iFH6v_R!h~Oa4@US(2j<+mfdH{iaSw= z|J%828?>9@d_w1`=!OEUUnwERP@VB2>sDU9`s;BaMuMZ$4|WM{oh?I{QC$V9 zky?V@!oadg7Z*B=^gqBd>LRzmu4eT4HT-RJTMFa3J($bJH3}o&2hvL{G&rZmOK}Lb z0JSMU2EG}nEx(A}EnL$fmX?|k(eSgrCQ1TpxVI$GIrIsBciGh_IZt%QcT-aXzRRB$ z{qfwctJ2ENG6wac7EN;FcPIfeCXz?!rYjl*xYNLlk)-l<6I=K|y@4)~DNcG)<)`d*3f7IFaP zm~14=remZL@clwY<`5OlfF&++aFJInE--U9x8>1#dI981; z!_P~k5}0OxA$`Y{lMetN01gvU?+V^ygvc9X(oCp6&tPwwei=TV$UuzABPqp!4mTC; zFQ2wMS#K-CWE4Nzz$Z%Zw-bihvFjM#wvGa}-RlQN8Oy(~;8}H0YBGHyf4>67->Tl& ziGqIR4vx>E|6s6^Rk0m0rkW)ArlUl8B?9_Tvj_uP&7sZSnp^fWi)IUHFZ@6VWvR=~ z2C=-^;}6wK$l@V2?6)Luh;sK+j93jlB|r~ugFxaBzqloFrK^(-!xQ)3Q;m~LL}HA! z-(lgB80bygzTYsz%VAuapb=%|%w}%fmpFcUEDlLH9<4 z&GXQD2Tk#zrZ`FXUX0C>Qny!!`nWyHt}PDmA$_FR0j>f&4LFqWytpZNB(si6@B|&1 zHVU#EWg=%(>}vl&_sfjKMYe%!^3Sd+^Fl;%+0G+@M^Z;w@!3+sQ@oQYt+ldEOk$qR zI4qhwvhC#$MzRKYh6M@*!l0mYjsNVkzy5P_QvG9_+qd!;t2BwcUjp<;qE2NT`q=mU z>D%Q8d%@V2c}(!6H`%)!Ld`YTE$%|JJje6KjRJ93aeINTgL!~oApqUj6dKmikH#>X zQ^kdSr=~5dDpru}^Kp+z+C$d^x_q$WJ~B)k?1>Sv`ZY)53s3208v-MZXwV(lZ`f^L zstBta&!ystn?d?ra(Dk~p=ea#2kqSg53TfSTD-ZuZ*KG6HS;#v1BWZD$MAld3q_Y`0iuqI0Q5B!a1>4K-->x4n>q0V&`|&Ev}E`mz_HMMaMRK_h3KI zEKkik-(o##bvIo%xA5?07heIf`2iFFSw}nf-UC_ELaky*9?UJ zrf<-WfeM&HRnjfvDc7mTYY+8r53cjrtM#V&ogy~nnTB@SpkE*`_%q?Z(PSmdB6=#4 zAN^W*=e-a~Ih1a&>upGFmQAHdD7{5Cl$qnO12H?oqc#E3?JYfNI+^!JTPIApXvI_@ zQfwezvmj7iCzIe%$_8`{MEzOK{`)`uSrMMvC+LSW!+g5X5;GRGm(%lllZJ%-oAoL4 zvw_rCYD0gwb)$q`Ao4vqWcp#Oi05|QLyBzt9mb-qUTqn_mE9xHL-V{6^v%_Z>-%IG zvH<1xeoR7%of{pgLEG%vn{tH4Or%gcPnVG-^@m2)oG?)h-iEoC2nCo6Jf`MKe=xf* za5?*jL=WVJ13Bj-4Gb49h9{p>VIhig1#v`k>(Atf3jLAz zuvutH^gb^(&TkMgCU>Y|1_EGm0a{^S0^8*8olw8+|DI{;tjECO#Fx-M%M|8(Fj=zP zfess2l%zOY;}=p!GTn?b&434`GV-Rzb^nhJwHuaf;;m4#cY zk1xv|-SUwcdHA&L$pGfLN&a)L23Z=$fjFLj1sM$`^Tx*Nte-!?l87!iE7o->F?a z<9M(wD=|p^XC2ssYj>xL<&;Q?w(-Kaw_ww#d5|Mzclb%xxIA9LVQ7vYzdUdvF2Kab zQ=QN|%{%}7m@<{@nji@y6SuQ#^oy?PUOnhQdBqU;*6x_BBHg%l&qlcxBcMw??sx|) zw;Ac?vItFRA{r^*EoH=YsUl#KQb;0DL55k?9JL==W6wh6UbBil_$Gk@;W458K@PGHfP|W?i+@&pNAET z`vXwYJd6-=6t(fjtp_fl3|xhT=OzosB&A4jt0ogofF4#-%!b#=a@vto#2qAJ(oy_f zXvpSZ7L)Z^0@Ja-8lqk&h}{&`M`OEfs)EfyOdst6=-Xk^tzh;CMjIN0)cu+p3R=Zzfp+Kd4{xOGye?{h4?OMj7G=SN)tk` zc4(1Wkh^WRoCBa0^M%z$_*E>;51wZE&7nj;I)asikU5Ggjdo#H6?7}KD7&Lqk74T1 z!9Ts@+UB9+I?@W!FGoG=iVx(!_t1G20zQ=$60qufJck_9(x1Omh z;@(ZkK@kD2@iU0#rC~Se6oM-+pd$kNvu^C7U)D;E#>~eaNn{;;jOpE@W43M!>0jR) zZ`m5ZDQgYG`Z-yU5i#4*+VugG)~mZMEoc=se>SVFjMUAK`=xRxPQ2S`5qLvgnNC1n zxH7HHco5tp)>^K*G{fqcz3(SH=0lVpF%z*JF6N$I)7L+l9U7783&r-<$?|wM*ua=7 znP92@WSSB@ou<}Ho6|1_^aK6Yq-f_n%qH01?x1sTiC`QG4OG|nG}T@H_O~^cOfnv4 zLQ=&Y+{W_wXu)OAgj#S4T=3&F|0EaoyRPj6@NcGKsC-|)r=6bA)Ta^v0#@4s<_|a=@u8HDUtNON1!@WJWP#Xn9lB}Qf9VN4B>(%nkby6^X`k>#{)wHN~ z&b}|LCJA}Di9$H{@6H303!}xzqRL z(sAWnvQcy*%=SR9x#qqKOJbaw|3sY<74V?39SZ&fD#)%GvqCH;2Y3Kc%F(*(KM8R$(L zs`y{Z4daUDo}XdEqlp10iV{CaHSeaG&<+sfCQGrs4U!n;-C9*H5UGZ@x(Nya;!os& zmZ3l>o71%~*Bb%}`3q9lE6pMecG#9vvC5zu3f2FCG78m>9(9p;q%qtv9P=5q%M?jq zQ@3-)`7+}7SLgouw=c5-Md;lSXDj!MFE%h5ZM%o`SU^$Z}pfq3ZGZx#qk)sBqWuu`i& z=d1p_z}qS~7>bAh)>qIG`spG^2(Id1R_LviFoeK@4>EA;lsBiU;;it8f@GrfkA!dA zn7F>)uWPw)-&WQc0mpRfmtHxxJUemSV_!TMuloisu5gO6*?%_$(TuU6rw`VTQtl=c zzy;a23K;(?oyLNV^eg<%O?YWjU$@iBeUyD;eER>j7tF{uc6{=6N51t)24 zX#1YEo>Ip)sl|pQWycwBocDd%;jtfdUM3cFY>Cj66GFyU1PPlLIu$B;c7y^KmXOI0 zvq@D}Fij2|-7!VwLa8UOHX3qk51^p1&@;E%fol88TCJDFRDa_y8N$_-MoNK?G` z2D+wASHa(AIfJV3D5~lHLl*i;ph7OvjfxQmU9)njO}bZ}ZYIWj>8$4_z9LxYW3&Tk z3)JuEfRuN7t%QLp9Zz8LdXOj6moy}rg8tUyMMGs>qTY9l zblZQg2Z_@UdUAW*W6q@Y#NPtBp{M>?OY*${^=sGbGL%=N`82%qFRkQI2)vA=x!Xdh zco=SlV#TSz1zh&;UKZ9ZOp;C&s$Hf(7busZgq~%ozVvus6W~A(q)A1g6D+>uq@}-E zH?Qz`T~(T^R<5H=e|F7_(ND&nA zN%dFp8nWbxN$vCSvZA~Ma7m)YweWhaDDgnXmAZWe{B%mQ`nE+wIo!Q0qm%}^A4uEw z@o^d|s=oY4V#AkGs%lqP>zb)l_;fqoKiK1Z;!%3KTGlyHlk;`xZ69C`mI*-WivbKo zUFoTt=o7?G_@xU~6%$CyqmlADh?m$pXV78eq@xB&iR=OmV2h8|poxIHC+vhWVdUFY zWnmxgcIV#+EQDHuAcCmr!bz8$M)kkV*;PK28ng!H+>vc;juif3(b>W!m!M0Zr2GZiNcQxFrO%7Wr8^} zA4C9SzGo)*?IMd-kybS%ft%O*6`2Vok3`$7z0T#gHR$PsL0L-{ERNGe;jsI&Bw|~kiC*~&O>?2#lc5rxka34ewB{-pVkRp50@OTo|j5Xr6UV zi99nkJ}vCu1>+f@dpFgwc?`yX&&;SYQdbo?$~P^7IEk^Pu$tm-Jec;|=x3<6_(>q> zbv6=VFpK1T_f`RfwCwmB1^sjzV3V6%h2h@|Lmpg$iS!mrN+pA)js~6Bod)^NZ6@%I zW)!JzOAHOtUTCmOf$IlZerYwulHLw6K>sfcVK(-WKHi~%0E4OS z{tlabmEQ$!%T98BC{? zSq0ad{}`&TI#4b<8@8+ZUAHn4Mio7G1Z*tjD%PBi8 zyiEKLfBXlHxvMh@8bjB+O5l6B$$fKI|KY!xTP=H8c0G!MHxdEWKht*Tn#Plg$bad> zn;^?10rr6~!*4IzM$YLZ;1l{wcVyjH>G=_z@F2rn;c10z~`LT=ecMq7LbMSue zH!Sq)uhje>u-i=A;eS_4xFOuOfi@ZRNWHzku)2;(-EJam+-~vi4T)7RJYE%YxEI`@ z>m-T-)3B~{`XKbksDAv*ZGA*R`b&Q(mXGI*ESG?!lA(8r0j;N=)332TBf7rpT>cBd z8g7m$uY_;=MiB;p@<7&;WhXmgq!X9EdU=@HD@U?bTWwJ!eRk z=#25}`qc4n>%jUw4YsEVsswFhomB$dnNFezCouZy5QllPF!?CY)bQ-LD`J*aP#H3xV)W{Oaw7m}ZPIU`1voGD3C|0Mr|?1*C{r4my|o-ely z6N6kb2fCVXcO}&XeTyVGB;@!QS+ImeH9^vNBTBfR*N%`_3jizsw@s4gLUn7?aWJHf zhw)%#|2y)+kbLH87owpO^qjUfly0Q4GJ(4=*mW5^KeLkdS}nRA)(%BTQAq2c%MwpN znZcg8iX606M!DewFoi*Yw*VWF^i`!`UBh7F0Ogi*IuAKaAkb)H#gvcJBN7Sp_ZUNr z{|Iiz>Y^nRhgHz*iNika-r0a)Ce-o@Yi0L-E+}PVjuL!?s>oWfT%hnq2q3|UV+;_% z(n7O@Gwj!2F6|o3duoSK=kgeBKsDJ+R%3?tpdsRpcH*HxLZJX^r zeiW=}fhoGnKvXI2xdn*C(G}hvR_l|wfUo4LY2j8kUQLDgx zZFLHo#EhLDuLAuX7Y&J6ed9beS${BKmX#$5(c__-q2G0_bt&~8xgJxv#;1~JT=T&3 z+1|q-G;uf!1rjmUei5CjB~P>(*3uPMY>Pv*#`5EkpvA1i|*`*c-2L|&jnrm6Uu!Zq@pH&NdKV!km^@d;+4<76oEq`K<}h2L)D}; zWz9GyWtjcvZ1n}E3TiFU7QiDI9q7*YU{Brai#G5NF;t~L$~}ubeti)-^+S3FJ%Xn> zoLBS)m0d^6U^FWQzZwHPg@QAxPuvkVW8jY38osoHGOTQtO>2bNo zxa9kQ4!%?;)8@#?%;6p67%bnNFSP5f!|5(=$Mo9x7Gurb(ysql9YcfBi<6s6MurvU^`Cn>4#JQYp&{do@sMi zl$_ei;T>~XOt)QcMvr>mI<2b2_;a2?HE%lLOp5&&w+ZWehfNwPVw0~@a>9%3dU(pT_fP!Z zTY)p3KcwpKv$}G?x|X3^8DfR5K(99%5A!9SS3qP=@p4>J4K@o=;ZM-X3B{Ww{?a

CUenVhs$OTXahBXNf0ynyU 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%0DK6!+Y-oUVp3s7J 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

-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ⅈc?8GrX4Xm7|9tN#iHqTxargpzOLq=oBBlE(*xLsVbheGg zd6XG1I~_QyEuDUp%U)|$sC?&X)-d7`E4BvRrETE~6M-Hhm2;x?1B*;<2Ml%Tmf&=i<%wLDp(*9{(`6Lob9^U77mwb>D6<&lT} z(HAt~GYj&<4NX-Lja+tif|BUos3yWQjBhb5nPzRJBX{y;$YU4IA32+QTYL$mXbBp= z^xwlufvNhn3gg;8`sYE9WYsOtvp}m#nncItGeyU(K6(u#$P3p$;TS#3c@B!2H*ApL z-|=|tzcn9VI`gx8hQ5EJBWzk0nnPBD6%8T?_9`;ES?Qr&;D*FK0in zDPYisFv~UvH}UJHV_mC`Ajha4f6LuZF8_*grFNf)FbiO#MP#F7VVkQHSw=}{C2q}WQ{#J@ zCf^0zCfb$y{mpI>d0i)aO*93Mq<$NGi(70;ECa7xCuVN-R zG-n;WZA0FAINQ*A=a;wMH0X}qwGiJ-JbTxWPjfJb#7P`9ImuBmW(8r8R^}<)3RN~d z<;y><0`-1zUv%l~J-1+O0`>i3<@R`F->Eo;A_eC?Jq1a_8L-sD9J_`k6@tx(qmR zG+9Nj`aoQ|f)1yNczQ)EL?ZNCCx8G$rw07|!PJvlX|3n*KB-z9XCMI$KHma_E)Ra2 z3KwXz#Oil$%X<4*V4;IO2`K8HbW-;F*9-b=F>V09OBNS@;2JmQ8#|2HmZ|^w)R*yk zY6UE{nDXby5XRSL;;-OKuyLkfHl8F^kwEw0pBJXF6c!B$dC$?y6Q7dV%*ucd+(q{6Bl)w6Tb+3bGqNEd^NlhBsr2Fc_aAT0r9U64=nn`QQV90F{>q}V8|rsqS!2nbMgRI)~Uk}-;Zp> z$=|;oQb_z;oW)g^vpHX_EGo<`HYS}|ghY6+1DhFLZvYtb)Cjl*ikXIx6S!xmCd(yF zTh#9xGdWxAWnk%}>7Wn1CME8qXy**8%f3o~Z-PN7(1gt2NqWj=5p3?T*Vg~@$J@;O z9DE2KfIrA1QZ2teY(C>Yt1?a7gmo=I ze->*p<_>iU4*IWz9+R$DDFcSi=+M5zDQ6&KZ?dR)!G5WLtiO+lmM4f_@GwnQH97-M z9$vzu@3{5x59~5IQi90bc*640*WrGxdJ7tPHe`W*j`@F}ltqoMhqHF`nSJhvqbwMg z`mX=^nBvuAeq#9i(JOJ5GuB_=)F~!Pa+1SI2DAj^cKwn=z}_9${mag`MG+U8Z}Bby z%sj-jS>?F$fv!#E5q7>JnQtEvf*swit;10&&?9-|e(dHnBwc?6lZ@a6r)|+9?fK&A zAi`13a~TQXxO@wQb3~2Z{YCL}+bH|UK- z2C}XGzCr84y%cZqf~Y#pE{V`nDe= zABXh)^PhB`P_Sm=ZfWlaBk1(VQ}pH%HKkb8)jx_?LokynqxUdW*D9e%&{$DsKKhtL-$b70B(d0G%ZD1vG3 zI0UuayXOfzT=wNC_xI+9Lw~7yOL&k1RLE!IQN^BAAso$l%c53aHv6G$^K;^4cf~SH zS9d@+_^b3+za7Uc40ym~FZI&MPuqP+TEg96cdXnT@77E%oIWBWjY26>l5et!jqB0o z-3MUKh(b49599*b%=q+NE+9#oFsI-9Es)Ym#=hGU#eiOOy)Wb&M9Iw$#nm@MPZ-FM zVjse{Xdq%!U9?Xa#Dldn5SJImHo~evm9tvTP`g?_{T6~ufr^qtO7sB z?>`_s$Z48>M+3~Tp~ox{^eC7-caV}9^^_+6QzcL* zFIchyp`MJApRIDGR|oW;;XSjh70r6RAt!Qn$d%B0KZieA07!Iqpmaaug|Em|!L?vH zGo(Rtl9@pL4*@GK{~AifEu-s;*@v|q42 zXzK1XEjbyG28`2|A6yW*wOj(-F*Eo3qKB7+cuH06&hj#Ivnh@OK! zg(2!lNK^8m*lEnae*ywXx(A7UlKTi;OYq^}E*Y^(m z2U@Doo{5;s#HmQLc+7eW^LcO!3EGsZ&FhCf1qPZ(6lTK!u)PQXOF*>0Q_gY=PqFAO zlO*22=7u*2xZ(vD59xBUiZ60apzruNX)v#32`jo<^KS%h!=4kB-LQNN;mB&0xMSqZ zb>auhlV{LBg=q|mzO)q5bZ3Ao^RH31Cl~h^2V$l<3Un>EUGE`$7n+Sv*~Ms7Gw7rG zhDiz`KT5&Row3#S=Yc}cA7(zEb3!BrF!1Jye9)^wOwmCmIPgViRMdJyZ83TIpzg*^#so-f}8zcVRyQ?kD z3E;K-ItKkcZVBk?dj84%!q!uS)K%X@<*q2e>vK=c0$F$(Pst%xMlIdW5Kke{fyW93 z{)6Sy3V3K?CKT>d$s`?{hi;M)x>Kw(vC!Z$@&8vs*fW0}4>}VSww*FA%JPqAsCCVX zPCvXop&tyty@Vs7vn=8Wuf>r}&=2#LVff3i9}5JiNp-q_2Mp}xOn~twG2Y4HB-5%AeIzPJGXFosTkx6vZFWK08=G5^|A2G7AAn~Y zF)zQQj+yegD0OBIEhT|_3s++1j>);nC$)RgWMMvlvGq7a zzZYkAOCXSbZhSz=0K2@FoHS*o2Ot*TiPxS@!S4@~v<8>qmy$Se>UTVFSowy&(aWTQ zu1!tjATQlJjBQ(?+%c&B7G1BWcH2VeM7^e3F0p^PL>pdxS^RWCGAGTUhFZ1v)=>{s zA&!qnm& zx?J@$gP3}Z$g)&L{~>I+9qWAlqo+*^v9~ev6F@e2GWcDbhz%8D5v}jQZVGqzmz|18 z6zshs6*`9NE9l_MeC0kCY!P56LXIA7Et6WWLR92pc?J>U^~(JDO95w-=~BtE=KN7_ zJ(;>%2DTPJpzbcGKYaPTwf+rRz3T5-PWjo%b({&EWoub%#r+HPX=;Es`185fN!4Dh z_AOcV-rm9Ws{{#R(Q9c;461|8+XehX+q6|@RLex2@y)@>G+=ro^8fWLjIfDR#7PR# z$it?6Aj|f}h4Y`r1e0oi&}mivSkz(#2U>_%i7IGKmgN-JL_|e7)Tp%p`&+ix^ypA| z$rzbm3F6ZbiG=wqL=v#=^FdrBUO{$>$*M#5EmBwv2jvz!B~|zBW24oA0Q7W)nn{ia zK9m+&GSt2jVB^wTi|A56q=O;DA6-wyQ`C?ccOeJy9ny$M%krGetjhBn0JrwNj&GWP zDwsFfv-RGm_oUaof*(;|PDOp<_rGn>1(R)Qu=LFFWUSd>$IIO8CcG>M0%KQCjfkG@ z7{vudVp=phV5GmBw;vX@lrf=AaZ-UpmJapB)4d#fu1*MwUkNa@%}Q&^iHGzLNPdqFpwsX8!B%_p`kk%L?!9#Rw(&${@&n_#A=v@atZqLB`fABMt#PWlbr^81qZsxtxJ z-rgPhlV#1CNFRDm_#tzmt0_B-GB`~6YrwzBwl8u}NyVs(kGX`vFZ~jd;-_^{f2gYwy_XP;0atu_IjcuUwG8;!L#E`W!GX%M>7p20HmFwM8WsY5_2g4Y`-D*qm zkW;YKb?8bUF{`lmGtvkOTmfOX*38XLSz)C@RmpAOxtTeKiR*Gx#p-UB2Xk-@^w`75 zbV)CxWjS9qozn+Y=a^_e4D@igDGy~-LMN{NXCXvhDb5Z3y;wcZl|Up7C2u1DgLOkw z&!0p0=P1dCMu^FRz!}E|nBAm&I=qErO@21$bc~-U^dyfyO7~G^OG^Hn^C4T}IA9w3 z&})<129wMod;%*9W!jCTQTzfI!X&0?&(f80NaGoVkjc$uBwjM4gi!lzM_r}Q@TRu1Tsw#d!tHduM=GBD<%g`EuT zjhEM$?l|6xhzTPweXt+?AFE$9Oi9}t!LQu5Q~Jf^oB%4sNUt-l>K;66#tRC!uc7A1 zcWNGCcQNzSWseb=pc6tX{AA#YVJuY|6OJ|O8ImKl={75BjkoSMbCW*4$meM&y`;C9 z6G^7@&tE_q&tX9T(_aq)s~O||1+KbL(Z<5}?gFG!M;i(dW!j7=E1tNZlLhs}jCYR% zVu(*qI2Vn75~5_2+%_PGOOMCxTKlolGvcouIV<(3vll#$njA4MmoOSAzteV4@~!AA%>;)|Uk5qc7fG zuFSr^zM70c=6U*Noi1@4M@Tb}r^4o<11xk*B1F_Zf5ynNI4Jzow z?qKCLC24%0HYRzYR%-pbua2dIk)anOerUX>lx;zj0diP!D)oC6w4kJSV(R zNV|UbdU@1gh36hk4EBF|aS4BMdy0hD#WlwQyyVF0LgU|KG&D>^_XM$rnx5=_O;ycB zqL0ap{gDIR+c=~loHmTIOA-$3fmEqsyrN(#4{slBHaL@A~2*ohqBADNe$>k*A*h@yF$cDK@9^ zSwnU3n-E~45*umc<8{!6rGD_6aU0MIS*rSFzyr(oyNjOSI$F#W%`i+iud72DGG}&7 z8+5%>QP;QgJvWB&7W-|h)$4N?=8_~(%pFr{ZRKUbk~Ep?pVQ!C zz=40FB{x<&@xNUtuX*B*xDZP3kC6vRVaAj<_BNCTd|(# zpKa>FHBT=IQqcXY)8RWG@JxKHDXP{1VHid7{aNBqRUzffAPB$oE4r`P=ZRf5 zg8KjoHYAb;Am;#~X`voX7rVgjJpqs5QxXLdj0<151fqGwxsMw3VMq#oq3U#@=+xpm z?m^RHDUT=)&s7W)WBcdJ^04kmU$`M~(88V!uw5_O{k-ucumH}?Q)#sjSg2HDsH@L* zIv`=H+?zicY_*HORC1HfYk>|$_|TK|4hs6wNjIPoK_OuqZ?0J@mt`0A%UM8Wq@zRW zL~*V;MO7r`v!}y_{)RXNygczFmy$gTDtve@@ukjwfOYIYCL zPEt^07AMqn28BieQA(Q8h|UwX40GFW*^i5%(Hyc{<#h&6(aO4x@T~oEJoDUK>PaAV*22) z1Aow?wDRP5F=L0!nTZyL$dT1Z#omc_cD3+&kmt=4#imGRHF2flC2h-f$WygDk^aE2 z%>%|{JM+2O(%bU|utP4_+LeDfvvV}c(~%1aCq+_VK+kt7lIA5Tb@}>>6I`jPq7|Yc zzH86@Xer2A^y`<^zj;z_?k(M;?777ZL#q-nYZ85&z}(lZg2)IOx!3k0HB>`Jl(86?YMLlgHn@ zEbdRU(4{6#-kLmEajlFLx>CUYl9tErPo0nJ*7IvD&2rYSwi9|V1ipBKADhw<-eV!! zDF|}<qmIm9K+q#`{Lud)S${vKEC@7LvKKUaSw_qt}U{hi7sCJ;CMe`oNN~=-NbjO zmA`}ddoM4SW)A@_FVMeg#mZz9Rm>SvPC-6m z$3uXvAD_T(+u)f;i0-nW@(ZVY?Hhd#b0LY8w!jIR6HyW%HHCtN;Wn{1XtwoL{Vn1r z!+Mjja&q7`2# zBl7Y}@Tas`n9(Xsk5XX*NHFjvDJe zeE?!}1#gqvaQ8}qg$VE!QuI{1AD|5gF;X+Bq_`E5irH3WjnodBXg29Uh{kv!|5+0I z19Zv_6N&IGUu#+d5iMG!md{ZBd0Pn`FY_5?q>TED;sTKfv})upJt6}o-(a>Ag3cO% zN#Y+am3^g{ulP%!uetBcQGj|wglNk@o-SRDnp4olbSe1bHe`?8+&T9+^TZE4FOetX zY609uQ%*cc;;S*ygmj2a0F;@1k`fYJaH{lqy)v|zlDxyrYCZf;?Wl0N+jJ< zjI>T3U02!&`m>l=*d1S-Y-d}O(u&vOmURCef(}6cmArj4B;wNSSaDM>$y_?DUBlPk zmEWpZ)GZ5qM!3u<{e)L>f@X=xUi=lzq1l$qP||(p4%Y;4d=0wKUL`b)@an0zPnO&k zejup`r3c|^C+e{i}K(hUFJ-{JWG{r@Qu?8caoiNi% zc>{sx^8o9j?Hs@gUG*Rg`rN7Ilp^bE(h71DQBC9hMgRUk(+etFm(^5ru&k(Rh$VF2 zk3Yk^y6nQ#f2D%wb`-LK3Jn#qL@<~aN}RUKwCjB{vi;bvcWer3jjikoyKSJ4e=5wH zs-qE_OTY3FmMsaME>B_1`ATZ*H|_E6&m`*{3H%XR9KG1yme?*0IGv|nB>|WWx)}Ix z4&fE11Uc(Q6)BQm4V*f(QXb-DqBHfmKu@%aF^DamqyaZBOU0#Y7Dh|>ZbLbP=lm-$ z$n~4ratJFyF1FnZdFL;-u3;qM^)CT@0RLxkvCXy!5>p~g#a1Xu?1uIL^J(@pw}P?1 z`tmsFHd!rNd%vQe8ur;EE)CenS>L&0RGf8^N9NxL4ao=%-!M`WC)do<@4D_Wd1GF$ z(;0wzu9Rbi7BD+1$!``asfWLPX$iUWT%#FeG{^JSRIEVnkNIufbJ+=%n^jvHvL~N2qLXlZNAUx-3~gbV?vKU{@H5w5%%gwWNQ;-==4tvv_)Zd3~9{$avM_ zg9u{}hD>t$=7NEaoy#p0f@dY=H;D^r`i`3EATHMLKOy4X)Vx&|MJqrjCus1`aEI}W zfANE1pEW7oiEgqjc>UFbS5W0uX7=6XJ=9105uUj&x=rRUbs>VmFF=Mv8A>)aEYNQt zQ0x$|p6-@_kJ$e3qTRgyV|rW)bhDYVHRQ2YQ7z&_Gn}*bW-gz?O6R`?f3bth=QT4o}Z#i(519Gf%G8sCX<3(}?zq7sS+y(c|r^1{?z%&CokY_h^;_ieS4-_}))1d|qX zgk~i_+5!yp9arm1s7z{I$NaU`BK{sPfo>DguJj00z5=KuR z=b>#-#dr~{{U*w~$T>_f)xrzgA`#|gW+|XxXgA$c^F{IuFjFKVgtKQLf)#wq&iohG z(~^|jf-3vXPk(zRg#`!nx;hj&!Xsjr&flCW`D%G&UHye}mIsT*vLaU-`h|N}k&}-F zjDtD6_msl~4qOH!J`s3vbeb&!mK1M-RK!JTDU6{vZKF?gAO+(IC#xk z=IK#IqS#XQs6jRRnrwl;c2IaoYh?Kq{Bz`o-vBTEsnegvRYmgiD+vS{;Mk47AT*BX z>O`VrYB2vd7gzP$FzeCF?$`MByq1+W(02?324B^Qv?=OJvs?49W4=*6z`SV;H(AG8 z{H9IErlsg3Xug5v7&^-Gib7^VcL(U$rKxbJkie(vTw~fJWHb^~T%rtuQSod#V#J=_ zKyTXOD&0!Cd^-fTHn$HJ@cQ8-vVLaaSUTn+mQ?R+1^I_sSj8Wkpu4$!d0}a&$eG{( zHsZ^KG;@2Ga9rWffZXR%NvwmS-9DNk5=)u9r7h4s*aCf+^SyyzCg_~4WKSMGWD0p2 zYh22=ui3U5_B4b6j$!)`&g}_>6rhUBX7qf3oXo1+j%qJml)#T=p z#vGpMRKP{HK?lm~R@d$3cdPgUZK*PrkJ#e*EqBRY&kQc8PY$jeE{MP&h-IAy3NnG< zO+Ss8t^qN?QR7~+B+%ULB?+X3YU0k^GL^ zPP`vFljP^{Gxw1hQwUrfAiijgfEC=^htvtPuD8?hJEk3t0rM#E5eWlIeq(yKeVo^`$;vWT8i{0CivJi-l(!&H+tjzhHolh4 zC^Bq^XiPjL+;Nd#Btr&(7y3?8^j=8#-6on=QrQZEtLc-qjw}<@|r}5ik<4 zhWye5FHsSXz7!zv7dGUVJ@dVGv69ZKciVZDl}^{zNE8J0pSCs@O9@4Ici>}&a=ic& zeF`jWDw2`vA0AZ4E2Esju2A*6VDEbj=(@#-Ql3v}_(d)5#BaIyt6O*wa^eLyiPPaR z_@NCyh2Rd5Q43TrAi*p7b}BtwTu_++8ufW!b)Epx?G;GQi<6;_p0)xEmr-fzi_nDD z0VB}$$K@=jP-^!kQLc@GXxel4g2_jsSKk(4mj97!U~K7|g#i2Z&#|tMSp7s=#eN^f z(tr|dhhe(r{Wsml^=dZ@YQA7!n<}5=vP$ny+xe0)7|>OG%3o8sg}i^Cko>_s&Robp zi9tq>CC0C_`TGRPt24@RjYaSZm3rSCYegvtl~(Hl1jzsUar>oZ)m~iI4M-OLVYa79k8I$O@?|6k2ci*7s6bDO%@+<{F?np~ zQxmYbaD=afyccO_DGfFZemM8I?x&+5K{!|&3930TX`lTgH`4Rx2%!3mhEEQ6%;O+% zW@BbQ>cr(`6_<;(ocC|L5E6(2-76v^fzjlqu-A%Ije31~rWv-WspvT=q@g>8DAMPJ zT)LX-{bdoKT9aUvzVJJZ{rnzq5|=bu(j$k?5MVN3kf{}oKX8O*M-4S+VEG8U@&vPDc1|Bb1Er`}(p!zt=r+H>V15u_7|qSh&JQ=U`eE_LHHxjF%D_5`xH^B79p|8?zZD?lSTJ_1#qfh%mpM{8i0eSA?wVA#}ifHa(&pzA}u6 z_I3J&r<@yf$L`XLr4+Wx7kQId-VUyTEB?{j&qTlCCACUf6Z(kZ9J?2z##+BDaMC`% z;$fLPJV-#tf##`F`#uf9>Y_=qpeHDB|(IR;e3k`b=;l|JCs0*2K@rroqd?m@s0q{l$_$12vuL2 z%C8Cq+gKb}`7ad*NheVPiAMZ*Dgr3NJbz9`=+OZ3%PpNgfgJgXd#=?ZlC%OROTDBh z_++8b)T0hWIiTmlgt4rMy^^{Ye;Tgv_SlIcQ8AZtI6KND|E5Gm<(oLyIW|7s`# znBykq3W5oI1^)WNuhtVp#z*=PDms1?9n;ol&KsK(!z8*tXw*T19&K5ogG~KX@?DKP z^6x_&*pyj1{$tWN=Jh8O#?r6^6Pe(DPqzsj|KFWG=NTrjzi@FF0%a8I1~Nvu-3xXG$5PBV+j%cP*HO79+~4t(a5sQBdgAN<;j2`2_$3zQaC!J%1H=i9S#k+Ccvy z1kcyw!43DXS>HUxnkJ8j310*d~oCG7gvmj_wlpoy=Q4?c_2|n zi>OZmUH44>l%#)$2b*ouLd;U&EMVK>;jW zyLbq~TJYra_pmb_JkH&MS`o*d?>V495`T;ix<&cf>iCB6>qfa zySk|BQq`#VZ7lZd;m0jwbbHBk0Eppke{R%>NOySL^=!3JM}#n#w1sEUs)}IlTc07& z$%4s)`+CTeTr}ZTnill_YVC=A*d1K7W@dv4V>Kg*Jsl52c9&n|F#hoQ-Z)@d9G(Dm z>yRPKp6YT=PhjY&`ml@97&9e2P=A2?E95uJW6H#yX0r>m5f10!JKC+#s zmnBT?3SoNsuP79LIyHv#ptmrAD}T%W!1AAdUey?$yA!Tz1_`r7Aj%*nOi2w{*+0F) zmj|0|*fsFxG^{brqWM|^5zV|`8w+DlMg4!(M~?nf3Dk}?A01=Tv()T?en$nJ6%mp{ zZnI6FlyJ;DQ0#Ak6|)^{uj*~0oMayt}OI2W2-s^jUp%C3!%XTMM+3=K4!)M5HF zMNKTbMD|OAN7+oe1z#ovsblKYcjV@}fzHbe+Rxt$byb~nuA{Wb*;XMC5B(c;X1o-n z|52k-0F%7Y@i%d~}#P7R=eh`VD<>-IYCl z1(yNcsPp%=o({@$j*)i{ed%)kr@wpAKL^Lb2rR#eJPC9~Maa|^#SB=lTRT&9wZbQP zd}`neY@o}@piRJNsJeK0^MHHm1Hbuj)}W&5s}@>PA?QT1iWU0eGkTQkyO7 zA2=E>ro|^Tm8Tb6pJ{?!#&!h^4DJ#;6?6lh(~m`Jfb825 z>HkO|_wbF8=NbgsoOQlpaKWmP&)(NoW&!iO=O* zKD7clm<(p(7x$qVoHiSze^oErnAt?qbIzR_J$PDO#OBsh6_ID&f#e_z+?0$r_q#j0 zxh|l=X$^KJ#^%M6hy4fPqzeh?6-ae*0HZZRG7gNp6y6JtPay}a(m|dDtbUv{^7QPn zie$8uFS!YEOC03+OH0(n>;kZpG>ICw{s&D%Z^*Is;oG+4)uw1=j0ZeSF1Kwt*9+(z z`h%FUYKQwj`M2%njUVk2=#Fj!4OOSzcs1yysvSG@>wUV)0tgc2xiI6GWU`(eK$}&_ zcSDiy<@Gl;PAH^`#+)JuiC>AvoV!NNNzXY!_e2f&mdr^Bt`=_SmhmECmJYl43#H=% zGpQV%ObHg8sP1v4RuGTv-3G#hO7$LsfSmvca9ZdiOx8+2W+E`tu0r>s3FS(hNkkJ~ zl#Y?6&PD{i=BnU$eFG};zhmH<>J4TyVCeZCG=8N8GoT3@^F(Iq*p3l_rR~>zi#M7y zT9mv~1755r%5*U2t|uCoKUz#TE1F zgjs`+XH_q#)SkAy1AjqgOsM}GU4}rFh(MFLw7D!q=?n)D5;Mr3LChgjlq*eB(hWHhCZU5~-Uj&Y-VqsD%OOUx=Oag`kp7j>_xeb0?gq=1oTbF+m3B%TDp@_u(=Ngb5zKf zeBDTma*9RV6VbDL5*dwIlm~BS2bkSSbr~!>H8|GB*jaWH4XH6QXbJ0Z^H&qRhM}NH zLFaRg_>yI){ch!!qLOz#glDuCFp6Fm~-~$iZh}2##y-C8>-UG*?u&MxN z9CN@H)iqUH#*fRG2X93)<+YwHU&DVG%@@JdLxPU%6&CA|^EnAGp;pb8q-7!OW{jYA zhb_vAG%Q>6*&2ACZRbwB$j9R=iE|;efBHoC0NOYsrvoE0r^E>+%S`Ai-#+?fx??)P znvRhSA6;TuK%YshuKE2k@?Kg zn<>`t{i7bhk(luq9NPL!K+ccr)leJILbtjqWE8~dnxsma{Rg@$d#LS@PXZ*ApB!8} zql;f-XrgXwqJb(@^YbvRzooCNd2w>)P##My8pOmCsP%p8j zVJGbUP5jH`eb87WZnr|i8R)%}GNN(MP>(_vTZLM%#Ke=Ja-Hu2a|=6qy<|oHc~EC; zLXLqbZCF8a+D+XdNt-kfJW!fArs*r|aVo2uwKojE=SwMMJtCZq zdA@_*ABR?X1gbX2A7gtaJ_?8d;zOOGHVkOuwH&@hlcfWX{`%mzd1WbvHJkDARxJC4 zG649A!XXUqXu{(JBX*$bJTFZ2YOv_XF&wMyUpZb)deDFBYFJvJ2DbS)wGFMK3M0O4|BMy#Tt4Q@0N6a2EM!=! zz@^pNWQSbdc5l${>JZDR)8VK9bK2bLfnzVm9o7=nq}}G7TE?7l!{$Ie?HObhM&XRG zD6~5iS|u_vNxCR0uWxWoegyu9UEun(bNF574)=B2p!?p2 zOY?lbMKb+aunTdSnN{9$^|NegiPL%%EbsYH{JB@vlT1cuuudy1COaD~(A{hZFr|#0 zWY8x5;l{~QL;CY!mK>h&Sb?yx$rJT4PQnU0^Cg|P+IvT}cVNu+$Hq4_muk)~L1`k< zl9F_EOL8qA6CJq|V+Bu9LK=Sr_B6ndm=U-ViO}4uq3xgz=u!%=aPv{nl)K5<@0o$Q zF@+x^NCbId|6-r#@vl+bG*|>b-(u?^C?h=x?!b+-ZfI5%aoY~f_+f&*ahdap=Ec9; z=%&{C0#&|Ph}k3C-zS5}WL>(wkw#Px6P&pEwsLtsd({X)r_Lp&r`ZhBHNf}1j)$_2 zC~H@^`#~1fh~NL{Nft6R;~XP;(ROfjnmuX3GGSEssyhgvY3No=R*4o~OycX2q~dfE zIj5+?Z!7SRn~(MRs)IgFZQA+mWLLhbmqc>9-e>sZcMRCp97-`yc$TBHxk!%Tj8XG> zBtOBM`GmEH&Fo;J8E~*rL-YKauus+V84+{yNjCGUAciXpX}aXDM%F0{dM6R+gh)dp zTqbvWXUkK>Zj&v9Zrpauz$nK`J=={SSx%tSXk|q zMbLMg=KLk*Y0q>=z4*EDCU|)?Iyto@g|_K8)I(3>*#-6O8jPrEuHSutubGlJCa*d0 zi^4wwec*5Wnl#Ul&kaFa+ZzC*Tnr9-!CGU zq?O94L;e#wDVqJPS>`Zqj*&LUW3XIF#>6`tFMfJo9?K zXvJX3SF}X{YN%KcUO)X&Y&8!_*P7F z-RtdLgi|-q8$?Pm$c=9;)K4JAKbC^9P?g8WaJxVVYZ-)siVysAg;5CkrhfN1A#io& z-R~%*heWljSbfGFxC57P)QGSminE3aWFZBcpJ zSS&7?+eUoaOvNiBS!D+-U_;ONN6FsJXn|e%OSo*Z>mo#7{8i%ai(}Ig=V%A$leW-f z9s+q}2{`*=p_wz=Or}4V_s@IYR`o5!^DWb2x`@8}7K*X4O z%VG^(>_*tVpC{DC{JrPL17AoROC)d#EZ{+JVV=vp3bwQQA(gQFSu<8K%G%g5mKV4i z1XvhNlTz@SX2|xbS;V55j_r&aR9;4g0gTe~!^bo9Xu67!bX6xB+%`U-6PYA($)`u_GNolK1`_^7fE5}u-Eg7uVcGz{vya=5!1EOHwa+viRh)R&c+7A zRKW(`WaT2M77QUPaD1Ng(mtXYAs6d7_lD5iTAi-6qrQQTa{RUU+zBA{WrhvmJT8#LyiXjqnV0gJ)|=LVeAKRbAHc9tfdS;PG- zG5HxtaxIe!YTl=y53XZ~GR7sYRmb^`4o-`ZRLDL)=N`^m%-X-5|Izh;CO-(;KTD_< zVOS0EtjT5cXLSMwqBQi15F9OC`REU3KUpBsykHHc-pHk`&tOM8nLyuhjL^t!x7c;O zyY0bmfdZL3+|0OG3TW9zTREOc9`RrdWGQDNLlhDSGcR6jNfGHBjh6c zNTrQou!gpIZMw5U@2|?LoHq7dkX zKvUE){b?~_fzae6{pBN^<>bE$!PDD#*=~tiXePCmb(nxKWz@G8C5n*JdP*T0Kz599 zby?`|{-@r-)pygC4DrSl%)Ih~(F%%Of!qYpos6Od*_6ar;*$jimW9_!-lmv<7TyVu zrA9R`QOw<^%ZwrAIEpy$wfs$+f3yt$N+N(oRYr~j)+nN`m#5&OQ!n8^5Qr;h){ZVr zq+f8x{6L?=6mrGiMZb|`g%vIt7Tth(3Mx%v6UFd`Lg>tq4YlR!H5_PZS8y249%KDQ z3CrpG1IT09HXiP%hv!KRcSx%p8o6L4cEjzAwf~6GT(KhpUGG$|`*Z(1U>3%u?pKa( zBLDbZ&MR6~aiygOmYo@*qJ8C)YR{o23^K*~#roYo{lqv>@!d7zT8E9ioq35T4$LX< zi4d4jK7DpxjP=IiQ$imxTyxnd zVC8Dlj!y^|bu$DG$^pk^IiuP}bsIvi)?X>GWKNEOehYCDh8dir^lePYpgS4W#VY@3 zDZ?+yj5t()O0%0bBM#*Y`z^za?B0#rM6vu2niidx$n6Jxz2y&@8a$*pp!K-a9tV7) znFs-&9RWeCp7+r;uDh~|{dR^Qb{`#dANr!|$ue5Yi*q~a7wcSOIH`}cF_%$J)3u?G zfhyx%L0Pbi@`(BGnd+GiVln8mi%WnGNBZosE`U_n9buroao%l?Xzx1Tx|ciC8(8bY z4tii~SSzk+gGGJshH;@YWE!1D{_}LBjla%sA-M=E%z6VKnV0^Uw95Wz{qC)>W)+7y z0H#u&`;o2qti8AV@Q(7ebh_F62IV0SQw^u#Y|R05DtnO*+E8_=EI7JDwoK6T065Oy z*L*j&yDlf;I`|Zq&loNhafaCa3!C8B*rU#tx-Q`6mGnLOcwT8|(5Eyb7Hh!YF86&M zwJ3HZ^P?<29RlkK|q9_2H~jJk^>tdr8cktolp;nDdnq5$I*AX&ZZ`h zcG=Owg|{65XgU?0voYe-O}q(wwT5VbzEUKz4<6S2JCLL8unc+#V9@KksPV@r9u3<0 zW?)tN6#sgk?SgH)#YX7ND|HKzIbzdsLcL6Eczl>^(Guq zMzH86uJ75`?x?j!O2SKktS=AclMqLw^)Cfg!5|JWg*-HNxmn@Sg;nfbXL5efu}sW4 zdBOGHB=i?#w(&jTcHXb}>ZCoKI%P?^r@J9P#mPFeReiJ;&=QNZ3SV4z4}iK`Ke=kk zjK3^f$aMJ6o>q=Ju4aE1h_q(8CtNA?2;LZ+|^FznEVJP+qx7v74r1#?X4Qo1On$cnS55L~$G$kC&@h z%h9O;{mQgN&!lx0dpK<5`G`#8rER|N=IP% zIs-z&PuUcUs-pTyb`-AyCv((6l-AUFt)y6TD;XY?R^^Ul zl=<;}tD-C*vkP>kW@sqUTmQ^(JDp$9H;we4?P|C7Jqjhk+;Detcj|uwYQ_$mj!q#W zuCY;{N6j+abAieA`GYS?(BC9?Y!?`IYFvVH*OR$NaDVTLKnPHcf*!LJJ7c(?e<41-5onTCO-rJB2-_pnLoL;{se zbTWdga2dZ0lSsId;-@~WI{>jlN|oF)syuEZRNin27?t^gf?w08W$)Hc#&O=eDtq0K^g9}_#^Y4cvXd$A05=1d?uUiCuo`e55N49jO|3}Oh$6Z&7 zBVqNwQzj*5=KgwZOr9*~-EXr~_>91%NHjF$ugZu)6E4XNdU-qMt&WE}IC{uZ3vR_t z)OV#Mzj4@rq>DxQ_l4AVTg5X1Nd>!x7A1k7v6}UIWdhJ%fH`PF`qnvgK(ooj2cxd* zgEnDmptToO*%Unz2f9C3Sv?KvhDs!|4(fg2Z4DVCD*c7{tv19EX1K4gxfo_52ECbP zRQU}xGBy#c*J6+!um$tnBxi!GBUl)DlSbPnL9KXHVtQC8OaD})?c@Zy8EeqtYEyQ9 zD<;#=K8|Mb%`}}mMBwXyIEH=%+__bmgQg#GiVMcwlkPv`0BPh*)L|g;Qw!rK7gx3k zMAE_(+kn0a#DXk^#E|H-zG?{45$II*05t@!AKoeqBA#z%ias7Z7T5_A1MH|TnR3^B zNNHX!5|ApdvbT!kG%d^ZwU4tzK*TvKvq6{@_ACN+O!=j}MbCohl_dO;@}<%Hgv?ja z+tfm?ROGBD-m{T-iL{dQE0UVn}b1Bc7zQm{0(= zU^!IQu@*sIu&~wqEg9~KR9A$= zmt*1o61-rsUb6lv{w-G3NyH!W`*TEcVKqWy6~G;$?L{+5#^2UjO>)NH(*<*|VJt0f zC>-Q|k|`$s59%LIv5aS&x}jQ%wiFJ$iNypFW)3x^N_@Bw2Ab>gws>O~A~ zA)x0{bhGJD)|1|b|BL%{r6c9)Pn~J&G|Auad)u_@4zJft;QYnpjM7e%bl~SHztlzFn3tkSDS7oL95Z)|0yN z_z(uEI<8ugup!H5cn4s6(e{oeBNv&=LstnSbpGd=hJc4k8pg%a{CjnW4RmC$LFp77 ztC^rkCzGH#+)A0&D z)utw5Vf#3rT@djIK^F`VGay>|;4$=7tzvoMr;YH>!vIZ9ZqCr{K4b6+SY z1BDUi8q$|2(V6p_(R7fIjK^s<4^pH9iBH(AC2BCB8)qj>z50i};e6qCcn2=F;!1>O zy{{f~j64Ir=yM}Jo%vKyZ5h<;bz1YgRuBi7RDuCit7a^xd*-p&`dju$_7GK_a7_z0 zdCJ9iS^U^Xh5o4w_{r(oTz`+qgJG>AWVVU*O6FU9e-K7hD?WOx`EgI(BfZlL z!%1VYc*m-vZ_{<$R*!i_0T^LF2$)U9bn?|XR7IRs#M0K#AG^VqFY7`#ui1u6pnuh5 z)e_9F(MP4?QCtB^4IC#=k>(8MO3Bo@YBQ>g?UN$s`P`g|lBYM%&q5jSI*NxAh8>{Qc7La6lg?b(D>}c@f5Qt?nf* zuX5#P-TyARoTn5y89n~y6k&be2HAhg54`D}G);E>0b}%9oVkAsC`aM5I9LGatn8v2!*q@xR~aycqb3; z5Msq*3W$4LaZ&;pBv~Z=Wia?%sj~x0yQ6x!V4ceSPJIEqQdQ1d<{6;h)hWwnyTw7e zHv4DO>!0Q?B#a(oOKa>GBoY}X+Gm#k_6?nBlL)^lehZ~da9>n=0ET2ZvL(W2ddZnB zV8gonuXM+3W|s1O;@}cshY|}xcNPrmk%uQ1vJU<(tlF+YSXyKwyFY|OX2Bqw8g#R+ z_Qr7H{D{!kkh%t85qs3caI_A~dau$i|*x!u|S3q<-2{-(9IVic2Da>!t!j&ezs5APDz%ReM>N-zgJ6cA01 z(;L|i^F_C~ieW8pqr$L}sDI+M%lY)2yMZoA36Z4|$aQ3r{pbG}ar!BkqUmF!u=hnU z!pDcT*bQ01)rmbOONHvmF{4BPKS0306rMS^Kmb^rCSG(WDZ@E6-g(9_FXp5Ool|k= zTwFCR@uPvN09|O6_%x9285w!Bkwx`ep5-GctuoT|w}3QY&#ffbCWYDil=b24&j!$y zc9?j^q4!$?*eA6CCocYf&yC^)jGJhnc8{wTwu!=To-y_%3C%#a3NNPw!eJyV_$}xP zw+sGeQ(Wd@+{6E2sbCl^{0l=74<#KTAW6jV3_mr=jT3x01OX`XY!&Kx_Xz&|Xbfr7 zrQ9|bidhLLzuWYibSbDl2AzPC=#rkWlhe2RrI)^q+3pYP`u-!F$OY)`OZJMQft<{uG(@9;puh3Dt+YYcdR!ZLN z9hNhKHQ=c~Kh@+CC>!(i-FO>$vvnKa2c3Wt&F5X|B)pZ7)Lo1QPW9vJ>ES}jz=caj z)pYHwbFl}@ZN(3Ut!QGG{q0vO(aThUqZ#bZ@afQE!C5KX0 zby=*r->X2p8GKG+Agy?@E0*?DWhaeGf^V}_>oWVx|KNnOy7X#j1fu&?<61+)P=#AD z0F!}%n~>l(E}YWTx8d66J54H+Ozrzvb)AQQ%q6kw*v$Jz_eg@G^jhu@&F;>R%)`Cv@ zjl(7Q*~zRb2K61+PVdd_*nI%25ke!*Zp0MET)|$P2w{URJ1E+&8R$xSo9_DsLc1B z0?lvCS*tHXW5sc*v{%~UuBH@rmW1|CeVJu2nNjE$>o=}I(Ql#yRtC8^%z>hgS|rQ6 z>z8+|)duN0wJ#z%g`1$Oe**S54QF1=tyR{LzY|m)fA>iHMB-H3Q$R}9C-p|jE0?Q6 zIq8D3Rr6H&!9R~noC_$}l?fVcXZ7sG4IrV3r-xTD+%~@L{ z71v<{C3Q4p(|=dgXO&i|<@lTOdsEFL32^?_uPD!ZW|Tb2V+7~^-Z4972G%u!FVf6|@hrTcF^Q0+H&-bXpl8ih}H{M8>J>jS= zHK6xgH3a03zwA=43xrSMDx}HYT~ff%eI6toGh9Rshfyf@*F>k0eAzMi0vFZcM$1=_ zfSPDbHX$W=-*(M8nKT{QG+K%(IK2hYm&N;%}F)k*rL*Ih`FNA!b+B z+S=IT_-uXH5G0->Oi+)Ywu#qZ&iermGpUd1wZbKQ905!vR})mO8}skW zEY_wSrrL}trJy^Kl{NNTAoZH=URSD0+XQFh3DME$Bb7~YYN4>3WYn}hX1K;tH0)5> z>sT`$QNcPwbi%!1^E zt(O%_aaPOgQWqKbpOcKCWI$Kr{zgXS)E2;Q@4&Tqa&2;jW42`@`nen{1Ev*4X$sRk zD4IalVHaFVua{%+bV5o70Eh}6n7vh5Xd*WfpCrF(l_E%uz=RTmaK^1~zi$|Wj&qe> zH|z4xE9;w>3s@z=GfrC+-_}Y{EHd3s?S-oT!B<57WoncJ{r-0*SIlltcX?3-P z%NlMkHFXWt;QY;T6$0Z7w86E@MTbT)lw+XZ$0%upg8e5`4+x9TXjP+0A|qO4ZArYG zz@3N3WcWm$H`d8PY_k?PyzTBtNeAIN5L@=_?Z6`X+2VcFqfdZ8-0ZK|-{?t;o13jh zUVa6-J4TGUmB4oJ1&n>IRB$)SOKDrDohptlwS`3zW|-5B`C+9B%4EvhX7Qzo^8>o_%?E;Z{X2Rrh4z7{|KvPV5<%hNX$fgh`*Le~kk+kj3 zK`h*1sN1$UVloeUBwpBzm|P3SCo}f|L0R_b(_rR2BZAaigPBT_8}@wpdgbGmU_N02 zzPA!-WaN9@{RJ?A>tW~_K0eMs-B9|nUd27~n1@@n|7!Jlo!V2p_6WMrD*BdXWS8X6 zAXZ-hW!q!A*bBOO0*Qyg=f;Sqk3!61hhqNW_pz}lSvr}kfAM*Uzy`^*UPn@2i<82O z)>?aQL_Svc7gY}Fwt(JkHO1Ic&|fZ?A2kEl864U0%Boct6JZub^WkG`UW8;Lutslm z=wvVQjSb|9&^Kiab1OP+qJEo#RuB=?8@>Y<<8h;{JI^*0y!B2YV zPxV6&Y`;;#yVd5Hp6cM?WKmeB?@R)07o1X0gY@ghdOiTFefuoF6>e{iu%bC(n<~VE z;#S#GKZ@Ma4l%G28PMnBn%*qO%dPN^yj1>c@@~9;`VN@WM#!_}nQ4p`RkaE;=yK=> zS;BdCX+vclQF7_5K%Ht}Z9_x2Zhx(XVv7QXcSnz4Tb?iLYZRKrLz@BUhP%~g7(EFX zGxQic9@TD~7cOwmbMBZ%ftt;OxMdeH?@5S*(4OGIW%cyOhyCvfg3oRO2^O!#f(cv0qCDo6qOx2hADh%7laHE`8Rm;=H`-_rAMVmOXwO^ zPG3lz>D+_P7&-2k&3$HX91=7JVE#%`%_;eZH$iGCVc3>+%dKC$j@f5x$81H~iPGJ9b{Yn1kUSGsVU1Q40+WD`Y zLi=OgJre&eM!aTBq2L*fhyw@LkKjGgN@19VSb#Y3(Un^q*8RHHA&e>)H7sH$Yd7}X z+Lv0QOjh+P=w1<(g&j>Ye?K%Wd{7C@bZZ*5D9W^SH2dX$re9b5V>}0I%^nVW`hI7d z-LaAqqHP!heD@DdjJN0Nz*l9w;>iYmn;P2u(itBIFEU(n zS*sKsBes8zS<`@ZA<47s9fNnzwZa2khE}2lt6H;Gm20UGL zz7d=@7R+u$*!eN&$m!i2KprG0O;sj9HxwGdA)~pjE0o1|zaHu5W*!s5p~D7UK3Jl- zIN{JfAPt@Q*P}ecgm4>7&!B52hP4S)-t44l6-(i{0m_FRh^nb z;0Q&9qfV_E&MF&s$7cqfn2jl1^R3uCo*ndNkM`w^D|TocRvupu_7CMHg@Zsjw0Vfz zpL%fHk0Vd$ptnWm@*QbPp)xRCU&WFn040w&E_T?JdTvOTQq=9Uqxb4?Buy)BI?$f4 z#_|qy8|mV~(JwZJkSnHNA=y4mXlF33KMa@bT`U#YUSA=7lDS#m+-f(tPS^LZ%kiVX zG{*rou*F|0xTtfrg`O0_1xcZ@Zf9awtS#w66GJ}>RzZ)%i-~V%hK*7dOl4RRCJH8A zvgR=BjZ7XiMs}ldkM=Ly%$Z3&j9-YADG(oi4rHhl$9K)cMR73IlEh9 zaFwavK+ZAXD?VP{1$yh_HbY!r$53#z2RBwFC)L+WeCX2!nO$w#Y@SB$!mJ>@Ig!-T z$Sq73`g?-projPtBHU6(d{SF#**FN}d}GI+SoHiVB*SR4REslD9|n4ycwFV*42ily z6{L9BjA4!b^_Oj>BImaie!}ujeJYRA32HN&@eCn3E=vlbG-|5!e}G4^FuJ9JzaeF? z3k}2exuj}b&u=~##mWyC)1gNg(23o7@H0y(q=P$fRwG|f?V8#}xk*lcrXvtNpB-z| zx~4PyKKgM$8$JNgm^)j$ERpL0eYi+~Mj4UxL8I9s#3l+wG)&d%#9l z&oz7-dsO{vPqR*jY_v_lk@o(dB*7U%+d^F@(DNiBY|<1tgiO9z5o#nK+_ZN6uGVM7dAlOYc}~n@fVOdd+PiHJT?jx>NV~DJHLxANVf8CwVyw!N;N0> zY(Clxu5<)l6dU=?G>xYwbLUkXQ*bgIO8&Rr#yscV&q9-8T@Q@|lea;F*t1ZS%$0A$ zHQBVJCB;D3PI3Z#p^laAVMfy{Y)2eBOj%OBV^ZKQ--+(lSU%{?m!DOVne#^);q46J zexq>BJ&}L3&hw~rgB@@a)z}BhW&WN2IB^hdF{e9)7`8mo0EE=%bjR-HnRJmYszo~K z)#q4Dcq=xcjT6^5F$lmkK>w*}vi^P9Z}H4}XPv5lh(IeQm=48@>$-*$C|o_xIfms< zOpCtB3V2jR$ zyXO$)mgx&M(=Wa8zX~^vADRv0ig+*qa*eJh!q~(gxgSo4&UUN-ZKUBE;#$(CWNUvf zH2XQ|%^pol`f0hu0_%AC#7*lg1HAv#?bY!o{!&0}5ND+&AW?j>^`j$D7`uy0PLQl^ z7$6z!9iubJf4;AyYo+&Y*%faJ6NZnD)d?ceIj}JVowL^n-9l}Kqa=4+ZIq~G=q+6f zvD4hq;x#0N*)SbpRw{kHIWB*3XDcw(s$30~^6Ug)O$b#0&KdX`a3B5ByRRg7@Op&x zDj8H(rCY_kNaP?FF8YZiR68h57`n`u8l{pJ_9U;m{C%q6Oa^zedFgv2#;0T z7+hp?U-R|d3WzIlJij%f&?X4f+8{3T;Z)YYl)^%el}d~HDQaWv0ea5`CNWE!#^L2P z*ebkwqHB*sw7Fq&J@+#xFy!|O&bTQQppiuC>=<&_vvH3l!Q2TD-;D|zRI8aXBF8v9 zU$N@*8RSJmkTi4N#n5!%5rPh)#)H54kGDy!X`y8_)1F^eKoGp6E@$AtFeW*qDHcAt&DC7=u=%;Zwjh~ptn8@ z@EG0BHZ-xbJ! z-+yhTLtO$&N`!kzMR!1+B)RIR_Ui)YTfH*VofguKiR=LI_>E@J;e zfFq9rdVBkccxJ)~A>GN1BOlx`N)SKrhF)d7rO30NoQTYauO)MUUDW(LB*22?yX=BX zp)e4@wf?U-I40?-52awY&*z9rYIGAb-?;Ybi|*+Uni$ZZxO5=?pbxA~2r7lN%OC1j zrW$ugGmo~wnaK24q3Cr2x@*jtePy-^2ZG-jd+V|cz!fv_S3ke=dt-ULm!>D{N(YM& zC1AXHVLJiGbY=-UY#jF+UkF3*i`8Md-AuUl=vJta_ywy_61%RRJhVdZEeA%IlProQ z?u>{whk&b{Y7_weJH3A)J6FT(3Ez+62iB8$*%Qw17d>a2`H`8&2GA+6etg5Cf1>Q) z%Z3kZ|0VKSli|qh9bpA$r8AnZeVSHh3mPd#a!kvZSCakq=k-c20L0wxY@~vz&$5pH z^#(C`WAbLHmg1RCbG$4Z6@D`W-F`Nn-Y@%#IqSRsw-dWNqFUhzwSUNO^Dyxqn1w(Q zz1oM1U|nX)@V5KDY$RJ=0MZcfm9XT>*MPK+)AEi-;2rwWWkJYDX;ic$Bprm*cWc39PRApCnA6u8s>d@KUx_ak z=qDGHE5%2gIEUsu^YTmx7HI*u#))=e69fSNMZ(~pvTb~X!}4=Ig`E!WUk3Km5p96V z;7SvLO62FuD2YA7a+FuvBXq60{lgF275mE5K3dS9SOH-qppD~ga(Yp{@tet$qK9;| z%5RcS4)xkWY?beqW3IYEY(}Bz{iXUd_KfLI0Kbtb&liLo1oLa!mI0vyWm)h*b2rJe zcjeG*ZiZdZIeWn!c6nup!8C0wwpefk0UhR52YaIH2+RL)B#+QW`6Qjk43ek!-1}92 zQzDPI)@1>e;7$^c)79OnC;_UGCxf&9VEM?_;&J|PsD4LaRNDr*aFb(psDm>bCjW~0 zO1taiCPr3hHQMp|pTsB!ZNuJhGdctB>``ICEt-+c)j#rWjlc$102a%h0E>4THnPWW z&2A1eq+WTZi)DlQxwWSspzocU{t>M1Ifc5fQclk9R_ZwZipBg6i`gXZv}ZDsr+V_Yh1fovGS)Jj^$y#l;mWxO}G3)7R zJd)p^eLe0C7K5Jy13ilVJOnH2^iTo=h#wdU*Wjz#*<2Cq_`{|!gd_S*dbqo!Hg4q+dXMB}3*1G=|y=&z&J8&{SUG;2xKpTj4% z<3c3dY#)Za^gTG1ePV9aXt7)R`P3$|7O4-F@#M0uz?i}WRyx+F7QeVJBGmcDcT;uT z9_DhXT`KcXnv`bHgQWt44}h_s$^vxJ(oHGQbC-or`WN^X_zGaYUFMgp+CDyCkX}xZ zX#X&kzJB8(2*sQRa z2q7@~jYri=_3IXx>MxsEG>vh&j~-E}-s0FVdqI;d7X1cgBU6tDeSo)eX*r|MbSpSf z0D&Cgl!T%v#NUS6YcdrE9lQX1Fwl1rS~Afa;Wa;4M86PQkQpFS%o=<>T^@g~$3(>6 zdVs;#{d(*pUjB`53gw4*^|KW(0C}h1q_f@WvOd@!+h#vj-F^!SaA8H158BFy?f zxH$`2BR%sQoiNWsU-Q0v5C!4u)uynwOqraoY=FMvyPcwgnJL&j9K)=>;b+4_W*~Sr zC%eQ6SEiDPT3ruQ2%e)kncj${+HP;7HFK)~Y{=}jVWB4Ar2kbOWQ+(EB-3$4n-%0P z8Won5C(MEFR+SpPjknL7;o2&pkj;1)t$$$&SENCdwRPg?pwCK9dbFD zeAA)7yw5;3?t{{*GlxSkMvLnE5_ekuerpodK0K487k^Al#yY#y17*TAmDJHWCzO{X|W!`_T`!?w<-UXZ~!{57<5Zt}kI1rGH?xBVFdH6lyIwVhMf1)$pzGruH4 zwqf2YYQm6!^Z}Mxrs18HA#V>CttA^kcQQ)Jeq8N`aGmJO)T^TtncOuO^B@*|d0hyv zswi9j2yvTL>AhKFtC85EK@xd2N^b-HfGsLst|Sn=pwJ0DcrA0OO+cUUd_|b+sJ)dv zwC)4Ba1c0^zM?d|>J-ioG`@gDyp2xQ$5ni$Ic0k`3pWPM6W4Jt#}}lX7e#ePyqY`X zOaRk2(Pn#4z{upSAPRd^5s;b%bxt-!OtkBh07ChT#2y^(1~Qfhf^BEcUm)_ zR#K!)-5}i+3u_p5)Wr?WdnZHY$ zdMf|IB+z&!**uo?{0?HlDFGx}uF62kvCtpi8(HfG+qvm~SM{?*cux}g@RzDgfX;kL z)YEjxl8WxgUg?9KCQ?3}7NULadl%0thw7w zJS(*gUGj8Hm9)!pNOeJVNss)7N+()rPi)5pUAM^GO);gae)@j5L*t7e?NXpY5F0W@ zB*TI(KT-6;f)!6nGm~ydkAv^>IryHaZ3HZqgqeiCpug^7-{pdPst0m%K3C@CgDKIn z;-EVK5}=Q%5F6*2mW)FULKtrL-`)>qy|EjQ%3Jb2{5|GdL~Q8KFX2PZ@DVM_kE18@ zSACWNabsfc_C>MI!0g$E(l1a{75J`1RV(9kxp{3y@1vl5MTBj0_labC$3Rtk2_u@> zyO-4KOPaTThqG?{sy?->nvOq&{q0sF_Q^!rFL>~%^9Vp#G#)mRI&vI$taK=0uB7;A zfTC!Jt`DeUH)1I_egeG_2>C6{a^h3G7$XuBZV5&l1Fo0ME_7|4gHL>Ry|faaJ#HQ) zFDZCg>qXd9XZ^(#pqw_#%2oYd9)EmceWty!#zuIsp=nW;BohVY>J16HV|UO=!_!OB zd4)w->x+%%YH##$x~-$iza~Xg;r5Yz2hW7w+x*S1M#7T%@@`JQLdO7SQj9Kd)COa` zY|_32D7v2HXww?Gzu#dQYcKZNx%fdpK+4km4XPsGMOK#`GpQb>kkw7d!fFXbT48! z{49a95_pJp-1Pc_L)u-^taB4~p0PbQM8q*ziVelyz=E1fT2+XW)yd4omNlKg4~o?TSvK<3KZMJeHVgYn}0=9|tAoJ}N=w zXI-FUnMJ4j{p)#^i(Sdf=CN#aKPIKN?S-xh%hTB~ixKrmba`3OT{0|D`2sm2i&oOY zZUG$_SK7nmoKXO!NFd+c~oc^&}Rv`T-kYN41M}vp0z}hOA zJ!`yx#nkCip#;n_>@9>gChBi7O^EXq zFe_j8QW%@g7=R%M=&-L~kX6fXMrf9)78fshukWVw^oa1A$*9}sY zd7NqASWXj3jI-b3y}^G`eLZ6Yxv+oVcU_n&4a(+Ss$e0o3b9B<;Vmi`5g!|p-?ss( zN@Lb?Y-BoGXDd>c?|DZq?y^-5)vBP4{XqT zt}eNeaw4}8BMzBfa^?;a8N1?s=&36p_mltusY;9^ylPmq`j?9iKNWn}c8yXQfd2x~ zYA+*XJ5ze0SuT3Q2t?3876(ZiioDo;h-s$erN#QgDugh6)~%SB0pi>8MW~c ztOOaDa|GXZaY=t=f#D9vVIaBkR?wEVFr3_m-{7GengCGYPZRq$MQ0#)2n&$uzd0n4 ziFjsi7qTu?@>j32AAsJ05Yy^{eLuZY7#n}0&F|Fo--<7|s}~gl+ZE7Me54k9Cn6vX zDm_&={>_G(Zj%cD1Y`7YV=S^LN%;|`C2OWF~B>dePYF}I;{Pd53ZB1(KuT$0^Om?>g&fWIv zk(6*o=|*@=q=*``z^il9KcAF_K%Ly+b!r)$;G2Uz-QaA@X((;7A~EAp^4&A~X( zbrMDTJu?-%Uk3xuI&MVajHzZsgp1rxv}~hkSwFOtuN`yNs*=q7)8a@mS$Ww6U55ZQ zvvNWGF@>5B@A{AneVG^ve8_f6HMW@fM-Ax*Q_$0nYFf(nU?9qT$@Y8=4HtEOU%PJA zSQ>(nM$^%0Xc;w`yvn$-W340l?33UdpXw;b0)OAnQb?49ycJIsx|FnE$*-)7Xjj>( zzNItQ%ycx4fIdlBFua!FlxfO1b&`!nDU{}fCLdqIe53Zzt42g^Uim@x&>EDJ(TXEp zxZx*DH`ECvFJfF`+oY|2g`24r%{NEE$8U_Gw2KOC@ULAaNM8eelF&e>>#MJJaA==q z#onM8iCmMAOPiH|Q0vS8##BBX5;6Sk^JU0D7Vle7W0>Dhc3}5|Mu*yFfgYKUl_0#h z774+|kBB$?>z~D1M%Pd!&}q&wMM}S1<-^UvptnhWHgXJ0c)=xHhFhnV%9Z~pnPJpl zK{yHFHo70#ypbA5ML)m*A~|09UsYO?ju1C{3jeZgMj!^}*bRQ~;xY0L$l3xOuMSNa z{&R4|##AeX|9tX`Ft0mfvpgDOfBSBSuub|*a^fJ9s6)FSjpahK=0Q!rc@Ll@&t-Vm zB~|!av!EhJEbhsJhRZ(sq&qhMt$YZRXNx+CCG@2T zHUA6oWS9G)<;jPNn-e=W1WBdZNoX+%@ZL8RcG)(VZ3xR41z*Ejebn3M2W3)0*+ggr z5u1YkQ`fOr3eZ|EbkOVW{;C{(YN@oDd;ItNuy@^ePT2kgiZorYp)j>$wBvXhf)NW! zqZ2TNK~%!dtN)t@N9OU!LcjFY`Dx>tjgBCH07=TR??1$eFFqkn?vk&va!!UnSNqNd z6U?eBY#F&-|JqabU(%$Bh&^ZCn9``u{^V9Y{Vw+oG~lgi`d$P-p#5e#y&_OnMw-vB zH|0ljEyL`QkfQ! zRQ|A^A%I{O!Ird`oe{E&b`b}i-4ra*Kdz1@0&9rA#3dc6U2HiWk%w;@6#l-aeP6|U zj+`Ih3==f{cwaxz4em}EH2_cq?;lfT+eR9NpqrhJK5s3#PTdS4!2d=yCI~8lV*|a} zQ_UG@Xx}i4)+fOV*XZ`}%BkYf92^jjGg?dJN0V{ovRhJt0B5)}YX1z9Ll>_DW(r#F z!q+LJ#*7R!pRhf#R@Qo3j+=pifdEg-$D*>#cr(@Gyj>MUyJ=z z5gVBN!n;EV_E`FU9#`Rdt;A1qYexNm^b1g{#eheW8sO_#*;*rIGOm>$SK~BE^H;BC zu*5Uo;RGGoGby1kRt2-aQtL&Cv1l`5Tw0|$b6)UpMOYf`m9okhjcIOSB@V+Q9GmNW zXYjBBKFNu#@xs2!uy{g|{&${)2iGZyiYoD`X*z z7GBX=`Bvca+!Os{snu~dHpNhvLj?4~!Q=Gf#KRITDn_t zJrn1-1~zODb@p>TL<_heZYO(BpkE?R-5EwbN)pPGW|(;CHGblbuJ$)c_tdIJ#9#h$ zkP9aaBuKtDe%uT{^4uHji+nDb7JVY!SRE5{xbDV;jX)Kmh83NW3WXJL_AZ>GPLlxY z{<898&kiTY2q|An9kSWf&Yt-Z$uMxFhRkmf$qhjtQvryG)Fwi+K4KbnG*m9T%mp2S zv!0=(B3do(8+&|692_Z8>qI^er|_`Vxg@`CK#PT1#*k%W>-fso>3VN{Es2Wm2|X+a z!NQK<7j+BhnIZmNMmz9t6r#|K!q$L)Y|a*4hDlapN>h}+MeKAtzp~XkcaboiqvDQu zOI@9FMj-HHx2N7S0Hxasfjh)X_)~g>pGCAj2!YFjH78#W5dzd$h+@>x@nCAAfzIH|+?e&Jpd9`cga7fNLx(w*I(+Wg< z1x_+0M4%Oe;t>Jtthx?#7aARkjL?;+Axr%e!@bvGC9LS;PlC0Pi45fyAjYvg-hd^j z8219wlp$(t&eB`9&N|_!Hx{f#x3}F1^e!_Nx&NEnyXl3Yk74|NIXYI>rILo4!yp++!7OTR|5igyObEfY}fWVJ$29vG&riN-oAWY$$lHr)Cr89p!m!Srwx zIRtdJF+4us_?Md!sk>s0so{t`<Jv-dY^D%8-#Eg@P{ zfCjZ4E>XVA61&Wv#1N#pRO;3jQN(=;PX~xx?GzOv&~GQRH`D5zYCV)m5w1E)Ep@9tp1}n4)5SYm+1d2d zsz%Xjv~8>114SvF2DYSQhRh+NQ?^F%tZ*Ka`L@xO%LhzT?Sk^4d!oinxP9|Xg=f%J zKJWN+;&ssu;V3s4ldD!}*Zgx*{EYv{B|;eyDqBq>*ZLzdCm-f8)Gs`n}7_4?I41E6uQ^ z`|zI+=Ybyjv-)4W(p}lANFdi}W&PDE2FI0LvxJ={T98U$MdarNz0dy== zhl(`Mx!05TMTt%Ec1WHT-tN^Rl}>tvu<11!j_yf#sj)wLV00+UG;)X#!PF1Xm%k9J z^~-~(+gS{XJtd72W6@~^uAj7xht+EQe@vDQDQ5gWr*SrOQ63OC$QA-Q^(n1QfZI-ptmH3YaV7A7tsieYGkv*XvfJ3HdFG zBrX~ZI$m9w)ALIScYB^PPFqa=TX*lvR@?jl>{_?BAZO^A;o(>P7Gp(w4G5mSnBIsr z0W>loTb<)nh)Qj}2f}~%3rr+~6@R0U^tu^G(;)5JXjmZVXEkpmA6O(G`>an}5iWtr zx9~#P&TX?uPePlYm&n!RisM1D`_i95`qX7t(?X`QTtL(HHH3j)9!H)+Z1)o3xv%;* zjX5*gf-mt+khV(%=y-LaVQR|rFT1aB5$zP;4PdZn&FJofVyQ1(aQi7+hE~(naxrj0DG#8F+nXJ!>^CUC ziG5rA?cff#d@52;(nF9xTjkeHu*RK%+>;aNgF`r7umA-?IsSWfeMu()1ZAgV1(dGPkWb+xEHLqJp zFPLCqs1Sbh0IxdcCp1I;%pHdUaZ(H=7N$N%N_;kVAJd2)eTNJ$#pqNGZ}~sCf|p`t0>c1V zL!7w29Y)}hC3s`$O;Nq>jr>TZU7zn`QflfZh&$abfacfW1?Z}QYSDaZ-iKE1G6go6 z(Qh*%v!d%L2r!b);&3=^6dL1onfq=+|7CfJ!;Ig_sgJ)_k@si~Lfh zkYUpDO>HkhHd_1Dd5H}l=;Zy`+#}wB0m7UR#80Qzg??|+nPX*>m3|*#_?#Z;h7PGU zWy7q3tnQCOGWJZ-r6WLkLdkmlODdJo^f`SFtbmWup!0X%Y`;NkDdeBVUZ|j75?1vh z*MY?yp36xK?`r2RNen`Vnrz6P8rdZ715X)EBmC|P6G`(5!DVH1wb-7`zz2c)q~hb> zHX?adSxhbRcKedYKuVR=$vEXT&2kjb7uS9maguO#JgQd)G(-1r#$JuPqhMLvx~TFF z6$Z!4xxP~#1;z}6jlUKG@BI-~pdkS>8ftcg$0?}Hwmql5w5vs)dq0?Gw@*JL1}RoeeZA~;;$0&X{B%U z(PEW1Wsv7v1l_GF$p2avm-a#yMOriyUVXYZx0|UxNCWlsj#+lr% z(^51oKVV4PoiI@?8ScCT_>wMwMoK;lp-I8hLP(3VKC&>$U>@%GB2^cj;-VOSf6)5ma|phV)28%g$xo1Tis{dx@2B8_{K z0w4s&N8|VvE*S9gjx_0!h!{z{Cq7*_;~&n^28+D}-S@V9>YvSK2$ZAPT2v6CTSYzP z2?^y_%IEID1!pr9jrPi8hPrFhV4ssJ_gshO-Xc~Ya8Mq5pHI zzYPc*kG)7y&Km-K{UcfT;=!Fs|L$^HJFUSI)oU{86DbCP7pOcDok(I18;6(i0b|yNBF>@T(0q5cBGjl2yYBu)imtGXJlLOsBTmz|hWq|8Ow}bTihP zujQpT>`EE;S?s*%2%*dDJG#crRkqP8rMpMS+R{8>11*fzgSe-RJ4MPKMF%ZF$mH^f z(yhQsC<1~s1w_28kAqg8qMv58XdG4ObF~HNTpz@ef5gW5n6r*X&Y0nQ^!^y)xvNnE zFJGMwFUn&eb`-H@w;vY2dI%J@qsWNEN#u%86n^jzMoscd(K$YR5(8h+y5_S~p&`b{cBoP)iz$GZX&F<_w72)Dy z&Y_&Z%SQ*v&lywpa2usbDOW#Ec27ag^b(z#e0`OaXASI8R8(OJ~ z?0!G#nPsv&svP*L96=!h=VVxQ7wB075%rW>!N-1X&VvqVPv?!-V@T)tUBxieo0fme;&X6byF(h_kD?8(^Kh9_3IXajavXTj;7SnmJu za-|ie^cXhkIaITvTZZGGW+XbsW_KF8&pdTP*<-54#bh*@?B~OF?OS5@*F1vH& z8oE561Vy8H6!%pSH}PLfR@N0IJbSw{f2eH$-?f-Nw#g3ssnnI1oj(Xh**G?WhKFCs zSp`fdX@fym4b-UIP!BXb!!y$QpMQV!jYir?#m^91)?!%tBq}qan%6zyuumzOY?)LoEuo3>!+BS6WYYh; zSZmZ>WTQnpORg5ZJK%`c=pLoQEe>07No~YxlM`pW#qlrE&u(IFKEYuuHPHL&TC>xw z&Rte_&S_DtZdUOqmi~*_Jq=oLpDb>A==(Y^$LV<$d95hrinH)Vv(Iq=wsYw>3|xPW zRkQh!)TDKq=p<~}n<)A4v}3wFTL|c?`r@q__a?q^BIapDt`S>rW}$!Q>g>f|ZVnp_ zAdqg*2l4q>SY~~rA)x9IQqchhMd19SjQGSlz1H~gn+wK2Qkpp#Rrm(Um`SXjran}E z(A_a=?j&O%2Vyj*k)A&cGt4FAA;VdVpBxp#pTcg1h~%?gQ%or67xw6w6h8;X%SRG` z20r_cCG;#UsiPlbO9MCLRfx4KA{Ilxj+F5mSJyy?BFeH_s88g!TfW@vGq42Aoz4lw z!HhFORw{;ubqFN`&B{) zY`lu9qEx~{T0Iw$OuytKwgf-_*h|kYSMp8#V0J@qomCe9k_F(s|4uPZiyU((8HP$L z@Xv}U3yT{>+(Y5Qk1KTD@l()Q5iY>-8&P|F|U+Xy+#ZK7U$;Z*%+3pqPcmy!Lv*FRMO z#8>NJPzVS7#g`Gpf-1EycA;xhW<2-HU#U~dG8tJ|gOzIZsR z#XerfYh32b(cW;Nb>!1f!xleH87`LzmrLJ!KXW5VfBaG*~w7AX9 zE~gdqgMNi7zUY^Urt7sxH}DWW3WHPD7J>Ik7C5L zRg3SVdYbC>oL#B6;WTm*rEl{ZkH?Q}N{Gk({G zScNP=8FVU*nb2vZj!4GjZA_peLhN!s0$=W7He}FW2dsF0-j6hU;nrDerghY)F)iAs z$}Sd->6SAEM{%3mb{aT8X9ZXG`m( zX~_TpHIL@Z=G~O!Um%gWkIiBh`&hcx)8q7=Z-@(XO?p5_eagOm7_8{W(*CvGEIHum zCD)a}IC^EmCsICc(SlQ-cKd544_S7cVnUVM2X8im52R0{S9yO|j@}!@hlWnQ6C|G$giB#RluSnFWZiS( z1L~cG%Y8xtH3NSj16q&gEpD+^va<+98ztmis9P zriiR2e{ylw1{@4W?s#BfqL}haQ@=qUDcz&R*NuI8^O~1L7i!bd#R7C~0h-N)4%tU; zzUcvo+5qO0g^*qR^-)_%^%5)t=rZ8Ii#dHu9R-wv9d7Ot{AdElQ5+Qlp=>USwujA! zYOw9FsJ4DqXrp!XcHny$STh{Zhg@QS9t^m!ok^-{-50O_{%B~b?yQJtqEEBhIMC#0ncPB7&Vjw$_T!cZCgK586nf6pB(+e6(aJTw1&M!&hxiw`Dc?|XBDs)BGNqFwM+ zV_@TN3eYy@#Yb`7%CNLxno&Kx=0|{hmNs+LYS2_W#5j<=3OWG=qr^W|IuZ$d;4b;G z#`HX}$v7lhPt}^CD_f2&Bw1m#I-qXT7J8-e>gZ3mG`9($_Lg+n^B!k=NPUJkt zPx)`+kecJvU3S-b-7=lz9Soo!-PbKH=p5JzIek53M13W#3Tg~~?E(kn+v(pfI*XVf zpdH-<#}5^t3bl%{aQHklq4mwbJ@!I`%xlw9N5k*ARM z+yIGHmRxLT;^qNfTDLW&ZF@ax2BZlnNSU$~bvHBdV&uKayyv~;v?bSddeEhXd|Z@* z4n-875W*F~{=Am=I`CQf+u)lbmnd)WmB)e_zkuWm^*Rtls+g03gy7F&us9N@yd?!_ zQ~t2KN;cs>KM_m#S8{8$<_!NwCRRXWz5nBED+%;Qpl~NK`+SX6KG_!K()w?R6?~MA zkN+oX^a|~kylwcZz`FzeA!AP{BU7Jx^R5-b0MKyWdl%xJ{IjE|D^kMrayH-|CPT3g zn{ehER7>FOFz95#Qw(U+VP$!t;7ADZwA6qepDuR~(`Ja)b^9kW&C{=AmYbr87B!a= zj8;3ed0O#6^Y3CZg#@O69jWtfxjL;{Z0dppQRWkR$kol{etOWIextJs9qJY{3O=;3 z;iXj}pv-LI{5T+Hyr3L|z!SN!ylTH-IkAIVYcfVg;c$^|eF2iT_DUKIp?>ijs`ABQ z*pgJswf7GML{-6R&l^gPf^N$ZXPO3o`=%dCW-U(o|K9Z1mkX12eV_l2HZn3Lh0ok) zU**!VSn0XS6Iv;mULNX20Fo`Zp0%!~+#He#l)oR^Qj4kc`At~J!E#m{-HTJ8_gqoT zPEW)4AJSu}dSt$@T3S6pV#E;21@t5b-`SjnQy0j`Aew&7><1V5B`ptA%##7a5qzl! z2gL%TfBrRNBFjCH&zaifs&s4g5pb-@Dkgw_AICRa!%@b_Do2{OYic5k&$*6jtNu!f ztEl~Y&=dJkz=lhf&vl6q*!&S05cLaX24MR2*DoleKZSljfrTI#)#Y(QW#Lrt(u8`9 zhW5}zk7YQ`{}1N-`?!YP)xiyFJ?I@sh1fz&1Lnt~{TuSoc6p1VtLw^knGtNeF7%%? zR!h6mVHxN&e8`Y0XWNy^F$+}y7yr#C-?UMn%@UzGF%p8;*2qnmuT`SFaw0MP1r_v$ zKERX6-7qVhM%_+`j~!(x{!ZU#+8u926UFhwva(CLW`xf~dr%|LEPwL{t-E_2EKqG9 zQi;}mkjS;P3ij!ezif{o$)+!@r3oL(`&_mSy4_veF~j`)Xsx2opsLH(JNL$)(g0*J z33kVf_`2yhFhy%Nvs;WsmF~}E=0mvcM_4)FDAcpOh)%|KbouAp$v;vrhZi!73(q`k zQ=f79pia;==E;_@C$`p(g$@pdcm_XI8jjgd2*hz>hAS(QdqO@8tMMwmc?Ja^kY71q zxT-LJ`U6bFDtb4n4S~%!AZP9yy*?~0J)#FmdUU{_#1s@RXuMvf0F&*!1b9zNkU=0et zUO1GBF1dNC$h^+9{Q#U0h}-}UD0@?w4Hfs+Vweej{qC)snrwlMUwc^;py#wj!ZjCQ zLFuFXP|Cn5;o<<6W%^d0*}W!SW|jzu^r&f^1NOgj58$k@cg`fT#*4QC<+&@FcfHwd zCcIjs3kaoHh6N4Zr(UbDUiq;&@XSF^EsMm#C?M0bCch?!{&Msz?vwvbkIl(pw*&^_ z)MI+Z+4J|q*l<$q+?FZAH3mf zAbLebm;X03CI7aVMb?Y9D6s^=RPeo52lhWyS+^-yM~YT=imx7>WvtRw2s z`-S2627p_jcj|;WbTGju9242M({Gx~{Ra;*FI_;cP3l52$LSRe53{F2nb%|H0lw%F zBIb{bL2Gk5DA1K5g>oXOmv7<@=hO1@9KNw{#7$YRsEal_Ps*4n6jAQPix#NvN@BER zZdMk7*J~kf08Pydf>`rkf7Ym435xTZJX37@JchyT(9Gz8*X(o9f9g1sX%8hD_(da? z$@AVU6}1qxfrRH-qBK5S-p0W2opJ`6il8W?+iBeMod|^GuRQ=IO@aFgK^qL!rDzW{ z9~3)BX-=zm&LWV{3jWa&Bx&QjZJ9#i*yvwpSaZJ zR#539Z=-0CLWVbi+1#LuDxr?_x8EN)u96GR_6;o``3Qg5LF5gvUh73wl}^AJ=N)Wp z@!%yS5y6>Z(pOQy55@JLf&xt`vl`1ii6H2NP&bmwpGp_3^cKTv1wP-rDts{7U4AfHC%;cdqtr#t!14uC_ zXwv}g`;vOiB)!DEP{>|V=L%5m#Yvb!0AY}L^#E1NIyr2 zVey?NCQ8@yuKiJ$R7p?zF#T&ax2w&Lvw~pKshq3`fNNP+E6kNZ+;7m1b#W?bG-~Fj$+)cr2`U zUObB7hiZaRmGLIA=fwA867(VYny3Ty3A932OzBSD$2)>+?*tb>)XMrqX(pT$U7nW@ z*o!v(`R#=f+8@%?%!3j7a2E8vQzMe}z}e}SLlM$<)YWjw%SK)Bm|jo(TfYb1wK95_UYG; zTnXRgG~L(1i_UWz`>}#;<8pG$YD`(W1MmEnj8NXlg!YXZy# z!u(CGCro}`Z6Yv3)<$LrV2`+(^j$b~#d; zxZv(bWfSL+&|l95#JT_J?)cfi7+JW*o3?CHnEdP=BtPJ^9p&?@llTyHy;HQrKhpfq zX1x32*7%}PD04GjZUlnjebl32>S_DTong`z1VP;Ef?CXXM5*Q*NO!;{1nQ`6_2KiV z&?eAzteStOjbZP;COP}JP5wmnRu$+xkU71FgNfJ6PT_b1bKN;0jKy}ZE*4y!70op` zyf4lZ%(pA7$7}O2vateWi_8!Si3BeSkuTOwj zKxiUrIedRI@eopA)VaVMM#79GCBO|i$4J~<2L*c1B|dEMw*e(5IQirx;RmE3LGm9` z){apGDHq&7cxL^r^=xOTJQ~Q|K|!Z^`T|HPz`tcea#s~u5(1ya^<2j7+nqimncC~f zKmHVZ_b2e6<6Ma*46knf`H_>PCQnQE>-n{@XR{*QVNri?q9cPApx5xhLr%Lq`@E#Z zVOD4$1mA%2$Cjc4RGp5Y?~nb1i~E7$l#DKdk{-v!RV=K6EqkH8hqjRk_cM6~(G-vD2iTxx2(Wz=tc80z|eFHa&E05<}(;W$WJC51YU2Ulb|fOh+7m)Mo!^TWM;*Do^wNZ$K2;D8Kq|IcqT|;h&4@c2Pq{g_kPt98#&f06CQfEdNw*0S zaRAx`j0(G3cLguCV|r=bVfV%Hz+r>Ns{B}xc8m`hL3cnYnL&U*-AbC=K0;-YleJas z-BIA-P;U)2suxeYyBQk%8g{L0in&NfCn(#(d>T|AcP=4S#ff_r29cna$`cx8BA2{1ha%tf}R;te}kR7r4Qas z(2;lbG)U2m@S_Y@eLKV%P@;S<$QR%HxpKwesnol+TJFPLw>dd zKb#TS_Ce#{m92>V995$ zuEY=mYzSrUvwmA!B{7sogwBlJkrv9O8IXLYgjI7`G;f@MepchDOuJnym);(D9OSu~ z^K^^Xg(dvOAA=*t+hE`f&#K9rz3ZEWQ}0SdWkG?lq6W@77k%WA$S1}h-gT9WSgC&q z+%NN9eYTm$SU|0O2OUyuDI*fW;{DFJu0W=7fDl#Sdajsy7Ny>VK4rnKzebkgbK}^Z zDOc7&jj~d-G(({eFz4I;2*ZCRgbM4)5^xUnGaF*o_y8Lkm!j%a>L1Pl{j4rmv2cUh z2-1;B8+ofv&chP&em5j15S+*8FwsJvSy+1NiF96iGcA;18g4W3(*d50%&x>KePFzC zOQ4T71_H#yxeiB`{+;$&S}N@bfqpxMaEtGeaw-d<&kqY$x3VUQYF)fen+*?@C>`!% zG6!8sH(&gP@8VoYrz1&VOC^&49Llgdb$guL?z^lkh)4Zh<*?Jyi;>S-2Xxf=TS%Be zFI?M%yXc|5bKakRCDT(~V_Av59C^$tXL%ifE&N6)Bw+dkvHX6Xv+wNmHBn!K5-@@u zv;s$@g^0gyRu!mZMwst+`}GGFeQufC?%_iLbp5eE@A@!|9Nos(ER5D=id;rxwSGJm zc_GL36O%BWJf-crhc(i=L@Wi#b})jYL+x(>?qMHHr<)S2pUQ!PEEu6$tc zTQC6E=7rq!>XrNN3Sfat@< zIWoo&67Xr*M4C;fD~I!X(RxKr7~4eob!{Kq)|M;9Uy(T*^whGr1pN}EF_eFPA*bFLO5(UHL8f7PpdK8$3Hsit0?$bf zqW`lw?>us917Pk&J82?V@@1^+v=~b+`B@a1eV18oW$AMPT}_lJ<6QRqnwmI#xh;{@WuMQJL#EWPkd&gvz$8Cqr%qXE4vdArCtJyFO zQdDypn^+EQ@11%vjknt5O|`=C1m2zvH^1wld4q3-xn-dS2(hniI*gKWmaA^6pC=N5 zj)By0oaF1IFsoEc@BVJ(cnr!2*{=2?ni~n3JKnc~K-htMuR-#x?tLc-CTo`x-JJta zkp{emZ1A;NXUOUjXzdxAP`lgYGzW|ui(99MG2KDG7A5ewG>xo$(wM$r&)q2Zq`3QP zIpiQo0z(;P+lQ~A4sz>8%(a?BC@ZTzbG*XcfUUFEc5HaYd7AIkV3yq=oM|*?>M`Q2 zrvdDQ!ZzoBP?Bk_=uEnOUk+T~JU;Cf7q(hwXM?K_6kFJ>)8=U`;NK2%x`% z3;iCpIn?hz8$x{;5<_xuS0FX{{?`x>D#p!Y4~nk_&SZ1~Al7w}mTp!;eG*j}7jeXH zIX?3;XPOeziEvQMEJy&I`QqO|W*^`CPDfHyFV{g)y?E;XWz@|pBzZK8U&K);&dR6~ zpqKYGlFX8tsqa`(i~}+~IAcv}FFe_6MmOIaN=y4q=>%Ey1&s;X+&r`sL05RyQ(i#( zdehCYuPxO7{^RG~GFWuhS{4&F&b;7qLiyOnf-)=aVkll*dovUP1;^C@v6X^$(|zxGQEw~Tv_BY)H7(;Mj`KQ` zGUy{rDA+M?&`O7EjAP%cNne!Bk!3R+Gi5g!AIn?wz7pS!2p6H9ae8>szI*a5_-0iY z0COI@;jf8q84$R(bvmKlQ40s(v@{whk$0T}K%#?goSov1y}|Xmzgh7Pug>2?=Nj`5 zjzhne?XHduK2g#C1IEDMf;7{U}W1F@??`o4Wow0`) zH|>hH@jK%e0G;a-g)+$ryNR%Gcj%{FiG(ZN8`BmzjbXiM5jNSBZV~6(gEAp2&*U89 zz{(!wq|t2*@KRnS4Kw24tUM*Cts+W$X+(7TSE_0Iee*@IaRF8)CnQ?Kc6h0MPgr%X8vQ6HC*gJEv zjV6EE$K_Yl%#@-be0awJZl!nmuMVbo)*|ol9_;|MDx#Z`$q&Wy9>gRAZc`D^VPkC# zLbL(O2ZytupD&hTS2-<^Zvsyo5{cge;dZED5?&m;f@yC>;A1vJN+hj~RRAA;{KDxA z_8~SsHMI|+eL@Diksg`gX-pv%C&z?SB1`3 z`gZ^mT$Ja0t51_6Zp*Fk?QW|<3XkVHkYJwi_=%XE9rQ^ev{Fv4+q2Hz_%r0lJUq_5 z!;6u&)wp$*lNLwk4kGJIYoxV-zA4cnRM?TGg-K>R%(SS3?O`bU^0oRQ&r6}+`qGCQn(IKM3 zIl?5snTlr>BMr4(LtEVaT@5fu#^e7d@uipm-Dv!+OQ7pHQ?K#m2j21XQ*#w559sJ^ zz7<12`|b8lIV^)m55b3S_*2|$^yYW=g$$BV8=sQ|1g<~Vv?^TiKghJ|Kat+4fO_L3 zWxk~iUDWIHsBQN$dAC72*HwX2O^jgzEKd>87hd(6LaA&=AyN*8(g(R#MQ zVmZ3Dn7sZxHLqT2q-Am{^-1jK9pXN-mv}(J!^fHM7iiy$AnqR@lOa7%7#yACMgoH? z{JMT44WOewp$8dm&!m^@8N*a|naQdE#_xG;dc#h#Qp5OTx+~};hgEF!)qV8t^FcaA zuFQ;UKpxL-+r7RVdn;g>-lld;-DnSKGN00*$Y6#e;Cre7$c2Byw_!YybyW-*^We|@ z!V!`i_}gA=!)?j*O*ThGy4R8q5!~VZ-#L{653Nhp+vqDGk5evUvA%t<*f+%qi>%No zDgSR3smNbt^-4f|&lB{$Q^cUEQ@8U-S!DWgJ3b@QWlsL!HI7M^p*_F6lH_x4g6s{J z{hU03T8WSj-(vUSI)HAR502qsy=i4n)|f=FS@>PZSQy3qh@aOFUy2hA^x)+%mbz(v z1F?NiL4CF7S3C=%5r~lb*MGJ!HUfd0zaI`)46l8km6%_z)YQZj`t%S1rFb@aJ`7(5 z7iILZQRuYbrR0qH+t+?<_^e2q_;t{Swo=8cwrKJkJW8L`+*A&Ju%vfMM9y;O>*?Hd zBa!cKFs<4Zxp5v*@>;mLwqGM*Ye{DM2?kso)A90=KJtCft(tHE97A|K6n+}xE&2AFh0;>BzIi_DU6WNmIae$9OY?!AS{AjO|2gS;L3ZD$ z4mG0X{HW_3!5@ZaS6D)AJKrgudOyWdE%|Vizo&sTPF;D5lhS* z0fagu9by`sSNMlp+k&_8Ku=dFKF(Z!pp*Ff>nWtnhN1HI?6=;Dv&u=>!@o4NE}>KA zSK$E0V#k?b9BR$`Tki2Gpy2Nw;ZH8HGt#=KTIZCf4mmm!&X}4btsb8M`k&>XOUr8F zm}W++*CcM%GfcUrJbwMFuvMZ+YFf!(k~nFcw6k&5X0XCMr}(#SUh&L=(4-5HkXB!k zg&pR_P%%_;5Y~-hN*}mo@$}R=LZdLihCqT&KoPN96qPo4zW-WCs!|Ym$zP6V!gGjW zm>-82n!a8B4$f=XZKH`&?bR}9Et7l>3q%iY7}e|8NKGUcW>Pd#%{H(US3i9J{zpJ| z`JRsf^f1rpT3?z9o_{tNDzltQ7;cxDuGZ#Plf#M8pS=n6*FkfdH(?#6t=Am3x~jJA zn>>*~5wH3Tc&4(!4}8w}qc-FYs^Gb|oYLIG;jk`VWDL;t$Au7UPD=$j(W2C!2P=nt z+a;9KaQk%Vk})iEJQu=}+mmas0ac99i^i^fcfIIV1%Rk$;DuA8X2?3Za$M=P~+zJwaJPTxWs=(v#eU?+|@D zwtqV$o)@lnE(SdTZ~B&9N4~t+lJ1y=L(V02Lh7>fN{Do{Yuc@TO?c3q6B4T2*L0KZc77ps9&?<<`2s}#0_03lUe-86T$w*%-0>z zqo%`C-=w?|Us${ac)d^~M2(C%&3_O)5B8&9_p1@pB5>c##MZ7*gHe=pqQ}s*1P1}F zg?foKvbi%9>8`ytO5waPqdsU-U1C+a%rq6G z4&rp;i}cbDAa6cSB=JXOyOT$jQawri&ghUB2JCpYqg)gJ(3z>v)|F^{_s|YSwI^~d zdkp`qC`LAt2f1*yo8QP90@Th+zH{E?r>IZXm|~8{II^?rTjP;*q)E^<>QcN7WTBYo z;I;468`nG#_B8kJS@lBd>Y$mb!)yFj)&<7gvtbm;p75okALlRVXLXn*D-N<(>&Rkn z9^=Tg19K|gt=??LafXQ>XEr~MN=e{|sQ$Ur-K{H=j!ROuC;&dGX_FCqy-8I_moqd) zyaO9Z5zs?>%_95dmTeLhbP8-e9MfoACfAXK@F9zosg%tS?PVPxvq+1}VH*9ySablx zLUnjWM4NFhD=DJ2JgEar@K@LF-2;0j|QA zSczfa1}yOqfeME9vpo!V{-imWnKc*yYpxeceXsJLz`6^*<zV@AIqeza^=0{H^ZDQ9~FxX>c<(-<0ck(eDM9KOQ_o&emW0F zn$?3_A%|rmhMyAjmuvkVj0wVTTcHb+YIA-Y7RyXn_ zXtvIszfYr0=W&JLTPRw7IwJPg$ZvD&%v`dz_-*ifF67(4U*SgqVKFYhqvBtmo#z!l zcW>$^!B!5ZXBuCQuYdGEJI{iCAIBCg!Z|I#Ek#<(nAy6}Eoo|%{ev9%%qEnmf9emF9N!+2F1#k`Hf+j;Vrx|bRB*LwNJK(h-l>n5g`_xheiAhY8paG^boJ_Qlh^wMlMv3Y(bEeuHMvHRyL%<0~0YRyY8Lhb|sDHxeu!9^dS zhG>l`qXqifUqUa92|u%&F5>OYz0Ae!sT1rC5>8CW2ss#t+NH_OU>42S`-AmL!`sPou6+i zlf5`r_+0JILV_(NbW^+75Igxpr?(}@d0$Vqn3t^2DzyN7{@TQn_OkL_gfT@T)x`lO zpt0KXSJ*Ln9VFUv4CplHCbm3fJ-r6bT&Y#PX*y{U5vy<6?|h}~%HXofzZR8$s3I~f z@CizEETwcy?BY?u1FD?0P$t`#Qa>sbPnzcE%;eS$YB0S988H-NiM4n@PxVgNTIevL zCr6MWcz0Y#9=e2wxlJ(;(BKKu;mB1wG$WWyCff{)PrSAN_48__-$oQ*LZ16>Uw=$R zFE_OS?e0KcYR8Ko-S`{~;U@(L-cbbl8W&IM9>*>xSIt?x6n#QhKX)XR`hJThK->VIsPU0% z2Rb?7=j@+vO6hO->lY`8A^$%yb;9%r6tz890<7PypoF0hz7YucEP0KVCo|m-!^nIA zjD?(j@iqUO1)XH{hvVD#2r`#gS+i*inO`$T;7NRBM7%!@FKVAvWuFm#KVkj-N_!(&7C3JUv#D1SLAzQwG zwQF=zukCTS;=r!F9@!M2lLWo5el%%O9Gp|N&l)3Bz{K^X`))qclpT)S-T$TYm!__i z>2}idY#2&wJzbTpyjC?T;3HVgfAtMU8u!$c6vg|PD5R#-844b0VaKpJTq>+0nosxaXc_xW5!XGxxFy1SKRb{B7s#!F z(`{$g$$r*FB+y@&;6D7_13cF!d~ky)0`xAkOdkb*@%t~y{&iW8E{9sfMS$fy) zlLcLI9v;znQNcxI{OtIZ_}piyN;eID;43GN5h9eYi*h>h70XUA?jy-%UT1M3H9mJ0 zGkO~6lSCayrQ5J1!R^CB2Q_EP8%j@2>tEefF*kv7nf|K{gzUMO*yLre$bwc(ZiS+7 zh9f{dNXqrcsrSfQhJxS^nDBFTZd~F^gTP(SuP=OYR)e6AFu$20c{~n-4D-cn^wgR3 z@--pk3Xm)QwkCC-F_k^F;FfuH!P%n8 zY@bl+SIc=K$ANaTH@lYryp=&f?FDy}{zw ze_=R;wstuN?7dci&^OaxHAcqRp!2K$(AVv_#%fB+Q4GMz*9Eo_Mp#jLV5G5XdgD8Qo#Flh?De^)E3O0ln?w6U-OKL}L4De;CQ5qN)(oUeJ5q|LLQgedt z9+^U)ciUtg{O`99yxCbU_h6q>ARRuB{hGAKp5fP*uMx6KX_~Bob z(a{Z&9+HtveX~s`4>OurN^64Ok-k|;YzwRh$`wybd%EV^^?j6BM639p)6s8!@UQGR zuXo0vHj;zB8VFsCw1U~1-aA$|rY2!$%4ZLVy+y*J`-c^lFsR1qV&hebmmaO0aAPXA zh&onAN()fc9Vc?ounr}fj2vbPMed~xC!?e_)cEU+UEugf`-0vGY${p2Ql!U!Jjzl< z*sKUiwJ3Itn~}%=bf*NEQC9uavoMlO@$lL6lb;m&zo&WwuZ>=rLBwpF{7NZ3Y8r^; zIYbee3eauUs3tGz!eIsOev+Cj6d7lmw3js_&A+<54wMK{KN_4 zi$6y^TmxU4S?^#dSGe2qe5-5)*x*lI10#JlNZl&8Z8-Lcf63s}kclgKz?EKWQchNC zzOL40?bYbH9yi##vNQH)&-I}`V|OCxUJ<`jBT*cO3HaR?A!m?uS#_=V!=jBfA%~Pw?+7Y*(c<9>3$%oE}71C*4>N{QP`YU(J=}^e4fHU?yU+hm(Ln02~=dd~{ zk8c#xYFB?|Z%-quI(Upc#CE!Riy~5vx&1BZgZZoW=VU+L6fucm6pn&`Skq^#u`OD- zI5XopE_0ad0QB(W^gka?c?OP&%@%OiG5~%5Q7v)wryQkfqtuw?Ky=_X!d>IZ1(IsO z>Y(co=(kf9ERXohdipkknW<`+l|FOakfsjL%}VLf9x#uiwY)a@kZp2 z{Z+ci?d(_J6dRm0lJv3wicmp=Yz9O5C@|a$sTFe4%U!{$3r9%9~+ye zsW<;R@7ak^CO6Aey1wEFtxWtHxWSp!2kK>17=5{s7L3u4=H- z-p~sY-b%^KuM-Gcd_nxqi7@9)@1&TR#_yp|!f}N`tKg{$H74)>BjT{1TPQOUs~2z> zQmtbca)cfH_tGQQz9V1j_N@Gce_so75AyUIGLKgV`zBj5V1NXajUINU>7FulRu^3r|052!z^JCQRDDT1tSk=FdA1e^?5cVp^ zoRhXBrNSkkyJN)qqr8()SP}NLEUX7jJVh(fk5*ngbhN?qaEGu3$erl?D3cv^HK6?V zq5Q9kOp6^@$ujFaoU`ILD_Pu+gA0UL>&fpV=ckWNJ=kMTe5M7ta7={;O3;~Qz@_<* zv@1iGdjBJ}s8ATHWbv1e1Nb?AH9n+{XJyh(SWdYzWG@EQM1ZSVukPHmMG7l5`p~Bc z9>*VE-6k8Lg8ADVo2sZ#3pxe%$ZPai##xtA${P-CB}^q+*U4d_&#*CVGf>YZN!hi< z-)uZN$mn0qPqBel3sN(HO2H9)=zBybw<4Yg9QdlO2!a)-m!9e$nYEuOJ?vAUf5(gt z!rfKrhzIVz7~z^sc8@U%6g%Df7Q%v@3pS6ui2>&Wi9LzE@vH|M8h;mhWPuIbYsZmz!Jsz+MB&qy%8EwHXI;qI1oa)v3qyGiD8m;| z6IlVxhS+?4>jWxl9kTT$hLEx7Jk2h^MyS>*;bBx0Ie(fiQ|7Fr2BF2&hdn$?Tmk>3 z=@aPovxP^W-6pZ5MxRipu_%^J**_aY$-Yw7mAl|mT7IM6cgZOel1S#xpX&*;9aG!? zISV|tuF*fLyfA-#^R1mEm0cz6dTUs!ujU?_SMG212Ym}ue1Y0&{o-2!=kAG9x|KBY zC1`ts4__9q-122Y%NVrvHmbR+f=Gg{?$=(*TMau5{u;7&=-fLn?t&hg-d}&M&pB zDEX1%s>c_1KN}dX_-SmcPY2&q<(|MlmX`tD78-SHG#%&SouK~C2s-z+JR%b_L;5iY zTMXVSkxZbqYBZGTxK0Vpw$<)!hX*#2MY06ick~H?iVKXG%+?uYJ-k8ynBs z{O;%Ey58;NqCF*rc&zeGu}d%!^um@+BGx;(y7iKasE$33!%iM@M4BF+YXyJ@gQ6?! z$t)LY6<|VSYJas1x~8q+ zLf%12>!)N)e&?&~!;|J;zM3To^7{=AB+E0JZkX6C;za9$M$? ztpw*oU>Gl$IQE80$OSxlcNYn|>8c|oIUn?wt4>ovdPNlN0JE3GU!a1_95aMhA@8tw zNGCW?E3$@58H|P0PpXe8&(=vMc6gb=1~7XOEpm{`W7zGwohJ171HocJMs-<^Yv}%6 zLDl5b40JjMPwn@OOcWvaR#?TYpe94CqXTA579N%isJuJWQncS!URzd9J7U)3*7yz0 zl_b&tq}bUCwYtz=yvMOyz+^X-itExSjcW7I$XoyLLOJN++Hp8YSZ&xi`)#$n-pha3 ze?5PRF`BFYf(l_%Saskj4EHsksL(aLO3$-m(SRPS91eKpmZp?5E@t9E-jmiEU(c!5 zMqYR}OD5*vjpSSk0i7P16d)hDBE0w7WCoYolVN(HuSjDO;Ka{tWDJJ*Fm=pNVI@k! zuZ?T4wjG}}rPYiDTof`V>HFN0cwtrudy@TvT@PYhx=6wQc?2Um*N_Mc`fjoDhRfp> zvV!r@#o!rNv~x07p9ZaGjDbnK3$q?ZFA3LAd1BXV@HcYY`K`LFHwEx@mz;$Yl2lgZ zR2C_m9ka1gw#eyO&~ls$Nts;yKgb7*gsKq2DN}+F7g2%?{wiPurvHNe zABSkW5wHKTRUQ@K~OEy$&c9Y&R7IGdh{#yNHtQ9mJ5Dt~5g5jpPcr&o&n?I@=~ayX?|L^FRDShmCi8j$>b-LJ#iogb#{^Qv+<69w-prIvw)k z$-wxq>=Lj4$$MP@&{omyk2Sv$%>XMxt=K}9qz-WFt?gkzOwsWwfT?Xk@%P@BjK4GA zKu^%{`;r*5NqG|TW%TzV&(^8x@X`J9w3bXnFuD(lwFfylgy9G7$Cd)}f$>k|krt((Q^qdP!?oi$fBcyjjyUEtXAJ~XZVu}0 zzcPc)Y0@9``QCb$!uIDd(`5(+0nuP*s?oGy5#HXgH+Vz~u}$!d=O zX|B1p7}M8I)`7l1E}To$Ddlbc_e>)^89JgOCbCs8U77s!4=V5xpg%2S8|}=&dK~g| ze?2>jq9?1a0^GLT4)xc*|0#(zW6iBcTQ4+E+DyXYj%ApxA84G`5)p`YeaUGdG%$ak74EK3Y z_dTP#^VmJ#w{0V!SnI9rZ;mB%yN#w;BQLEb{M)RXDj;USB@GyU@t2(KCJH!ZFexF{ zVe7b&b4wpO3g$~3y5!#`13i7P=2(C;dpj>TAoZb4V2jqYa+H1%5peyT)$oP3NZX1= z?dwx-Ku@CxRmyi`wabAbAZWwj`=TieG=JB{2ihxjia2^6(q>D_7oO+?ICwr^qwE^E>*~7o zj;*G#ZQC{)+jgVIwr$(C?WSqcGTX;7Bii|4GFVgP?Ev+Me9LdYDScQga`#%(EO;uR*yJd5Li&ES!dzwHw*rH zqxs2QtHT^GJDfzK!5C(+Ym^(S=duV}4n?Zl;;7-rwKvWas5mE1GdTi0F z0DZUE&LEXczxXYI5qjMl>qu^a-ZjEzzt1HV?-#vJQXNfJ1whhc^uxDM05~Z<%cboH z)*pX1yS*s0ehGcoP772Rx^dnm_*T{K&RMSVRs;z;A`sZW|L$!snWpw6H`P@iFgik5 zPB!c#nEY(^+c=X?S+DvJPm3$XTK=khmDYAatOamNIs1OF)d(GkJ-5%aLKlte-OII^ zQXw@HFr+-03i@5$I8`h8wi*S!|408TTQVf)bEGM<3FCSk*~Sm`7MyKpdKNdbadEXA z_G`2>`-=HMpr~~O+N{kPsS?={OzB#*YDnQe{6<T|`pVbqei=A^eF9Z0mn@W?O`CDbm4^DNr1qS%p z*2^p%Lk#C4ErC$B6D-Z_%nu<&`S33${Ca8`i{hb2sz;QS|^!3VTr| zn8R=p{TH38?8?-o=H$*;T18C^q7%4FYgNz--}=CYIAlx+P4N3Nom48@!DZ9K+e`X& z$Q}|uXxK7ymL7v{d)k z*RyyH^w)_BIil+}jEU0b)8((hoeto(D zb~@NcbtCfrSwBGL%yQCZwzn%#n=4YYulcF zdFfpTW12bGXUmR!)ynD@ESn(cIp$@uq%c~ddNBo?D_DQRYbM$=a!gDPGWvv<-#Z)x z4fN3UbZcJM$OJJao5wN~!v+ELivc%9qlc6U)^>04?c%q)UB~9|VMD|$Mto^>i#m`C z*GOj0FgoRU`CHrt<@kHLgK>GG7s%DkTxPLsvpwWvu%saWg~kud-H7z+y+ynO01H;9 zvE|(fEA_RGvM@Ypc(DAGl5ct(=Z5c46|_E}qdx6-^k^5S)%9APJn;BM63&PnKgQol z2ixpIsJDawohN5o@-z+xgUL&>8gZ;&3ps#u%*|-Tu+ne6U%}@uHu@dhegZFalE3YC zqafQP1pk13Wk%T9Z5zA6j%vPIUPW%(Vhm~26V?7i@ZSCztE>XwNbEo$CG#o5FB_b=x z3;zW|z5IHxSe-Q@%>s0heX z7W9;q0zMk{!yRNw*!~_S=*dtXX3Dc4$+Cw0ygz93)~ng&yv7>#eD`q_uTl|;F*1P5u#*m>cFE?9|23L z;afq9@)m6n$OC!|anO+G#+MnbDj^Bf;~IDvy~qB2E}7!PS?Yt0kYj>$iX8PaQ7)(8 zQVi_q2a~x;5@7#qJN#*vyVTB#f3{;uZ?rV>%^lkT{SUny(}Ii@=od(Gk`t|Z^O71j zYOuh%bWHEazJgKbzrEo3M#z|t2o zBDsZrqJxkU`^Fi9He2qjgRL#l=i>s2tIjJ?wW1e1o5xD2oh0G%Mn1DfNKBvAeqr!`W4XKoWn7>7@Sayg%RquYFx+NwzLWKXpxm_8KrLnp$u?Rf3w{@Spxa7nY1Ek&8cidZ=Us>8R#&^0Q}(M444d#uf_(n{4Ai~Tp8Ry56Kh9LY4`r)~^eV zE0PE65|h6x-Z4RGR-~yjx|$0h=!nRhOwD^MOMCpVqXyvoU!zn*iDzJ;=CCG$?butU zS^~&mS%#A)nVZ`qwLnJ%HaYISPYc$^mKkhDa)oqDXlgn)YnG#JS*Hn-7b@V$SzXU? zf1?jix#D<#!i=o~YAO|e+I6JFL5myPu)#?!ZuE+GkNPX(5PJbj9w;N8SC;(NP?3-Gpd`O$P z$QcYd#b#|guC@c7g|A3+3GLt9j7s{N{+Oo;AK*W3 zKuTrNuBc83iS=U52orLSscaGm=oYSL_Cyl;dIU!1@e1qI2amOpLsjI=8|Ke{-J1bD zYoNw#X7eQU`NA?Gh6~#@LsbD^<6z2PC!8#sJu+Bq*uscbl%;zxgKnY1bOv6o5*e0d3wqFF>l1kZHYt%>mn{m{hJUv0{SEHQ z_X9r#zGnFv8FI)O+BW?FBg_12oG{;oyfrNmz@b?{@Sk>de56%^;SYZmTxlaq0(wLU zGFw4kPIn7Y&|fDLYhlK_6ZZa3%2-S;z1O3~`0dWYth-Q_D)TVCcgP_k`Ra2=;|y3p{4TP_o@(v@vn|8g0wxF^4U*g${gUYGVE1-C z*fY%>8?PL{JIY>*G?*EIZh&7q=)fSSQWr6wgd55^w|Zfw85NQ25v8Jm%i(HFgX2^g z5#4}fr8ml7jdZZG)1wF6RF4YdZ+oiLAR}>IHSBmb7B+@fZ4mG!)Zn>AG=ok+N%E@s z_C-&gaKaiWbc%3;)cz}OV-e(#ei`uQPxUT2S@7+_a$kO=DkD4fzHfh|43L+aE=Uc9 zwt({c-a+F0c;(5)%GLI->(cdI9MRw26m(vul(?OHtlJ^nfPu0|+C3Uno<*t)+H}2J zhCXZTVlLY}0jty`=f=15BnSeXH6=^{dX^@lGTiykpmPo$H~SoL?QCJ+=$C)>AOg?z zw;c3@$tJ<*w@A9hW)mn}x~yw*=gn{jn6$O58|(dYK_h~)FP=K^3AKZIWIqjHJ!mL{ z>40U9m;qR?5`n>BQYZCv>Jo{*=Cpz-p6~2qgn~@WpmX+8^;HZHUzi$RB?k2>gD;=@z&JtvK#+xHc7A25 zSB-!|O>u_d__=@|m@vs!v%jHsz#S`8nB=Bj=fCe7$ zW3wQa@({sqf0*MZb^OM{IJJrXZ&B~4ZKMOx!#vYz21vVt+BGd#po+Fg9ykzM7S45@ zhVV@852?d~>Df6$Nf(N5S;U6Gv!(s(WVQgT2@!IifPEFwUYg#d&op9wy$WT%rA-a2 z-0v>yZ8o64$0&SaI?Zm<`Tr80m{Srq0q@lN2tZ3p0hP1RjH1K4P?rix;r;3C5nc26 zTgZ|vV8=8rg}Bn!ghO98#0Tbq;##B;-@o8}_qR^@fP@%ycZ>#i=**K^?6u#iFdvXe zUMJz!`_fA|jd}|)T+EGV&NjSKIHbJCA>Gz=sqI=nbu$6lBmcf#vmt5;PD`97*JTn{ z=wv&~gA!bFj@FV1C(tjD)ML(PjsB#0PI}3a?@&q*loCqjKJr7OVtB|H_h;tdS5(h~ z<;7m@gCA&`=77mpfWW<@KrcKD&8s#)+{MQ)uACs{HLFQP@ho z+p{5^0M)-u2BL7-@7;hG`hqmZ5%jpU5=4aAB7pRBwPBB+i+0lSSjASgq<%g-%c4*O zfzWmBH1$4;=u^36(-^nGc|x)jxES`Gy~5_BMX752Nd{>m*J#>s#7h!2Be{w@ZRiL( z+*B(0E0{G)!Zdq{T%AQB#hv^x?oMOdleX!I6Cafm4Y$`F5FCkm2UUuY#LhDmWMzBz%&k}Shd%Nsm z{UDhKifsn+n3zud5oJB*9|Yn(V#tx=z%R2rF>m^W zsWTLL1n!}#PIu~lsrxo0D&ymgoW0Wk5hM0Cd_yyN{$<=yMPK9G)L{GRo1EnoTLodT zfBgZSEZEUMB7AQzQ+xjsxABEK!K1xnXPRLvqE~d+z@@clrd6l=uBh{@V@yt5P%6%y z`Vd%MXZBD6>nU+2eRgX9!`dstK=PCwor>Cq&{y{RKp%8uFRU`&9NMs&4k4Kq=@q;B zUJkK>j~Piw^Yt<7DCM^hK1-#I8q&eKM{v6y`u+dfR}>oyHA_?Xfroai_``qJr*mc* z{fjR)n^gV#!dp3@rz@ner8ApJ$qOQ?rJNeN2TBt;A4ZBBuO8rA$a5b*2qgRLzn_hS zryCRcR3zq=IVJ+4Dh1- zn<&3+IH-Q-jZ?a6(oApIQ5?QQ!J~W}n|Bcu$|#cJFOkMXcV!iG22LA`FKB;Nyj)C< zzjq|V(8YxE1H|$(`nVODf{{6(LlLdE0+t3oo7Xx=BP&#FGr4IqzjY5ixtw8?VVcnf zmws5rub{@=#T6*~i!uD>PCie2%y5k0A!-= z#N$Wn*}+PEWddKo>#V;!>-Dt$LrZzGOC4|qy{~S~3*k;iB0eXWtVI=(=?M%S+dEd` z_8Lhtg6u+yoE0F7;4ad@r@dxjR5QK>H<1Bu;Og$}dG@_1{yof)^h$>a(rf2a=Dtyy zYifS`v#1ODZt+gnYi>fH&U;tkhppce&I4Tf=6=FIaWZ{1=&ip78_%o(9-~v|3ueEr{%u*{tRBa1 z`N`_$B5vzQMeUZb!tR3}ZJ7oS8%~#F31PPL231Z>n>CBJIO)GDqf(47`s<0AWAv)9 zVydt7UGMKVCJfDL_!hwJI)d3Xutsklz9qJTQ~cS?`R8+Mr_7)Mr(IXzBIxA(DCys^ z&AR{6#pboNIa{nm3yV7d4C~G-=yG=&T(R#PPxt4w9NZ=vSgY7D-F8_7fT_U|rwR#s z00qS^xvr`wQhYAe0Y-7&B_8=vo*HY7-=GjV~=Iba}bT29XKCkPpVNS6lz} zCDpODq@NseViodNJca@SeUJL)6D2^oUa?q_3oVHZB9=U%gZ;9EE1^mD=fKCEUm|oZ z6X+=^NsNE%JCO*jTXm*df>w4mcL}V7yN%Di#$;tS<4*@kvmxin?g~DsUdpyySgvp8DANpe!^u_f} z1!nJRq(en7(r%H1IzFVS%q#>3dgst$DY)IbEz+ZOT@0S#fHBHI12tL3?lh2ZnHs{o z%2*pb)8>yHbFbIHiu@BEMkN(uk9Id!4D{H;8Yg!>U#pMds0k(yMScz!0u}+v08tOi z(l6!XD0!{yiRds)&Wyh-?!_idT=*=VAM3Xop%QqPD0^;IeeS>iPbngkWN6sxqek8&NXSqfc_&onYam z9zz8zjv))+Iz}&qkVAMfdQeldV8~3>m>ENVEK6L!<$xYmlGsZ)^>ws?)cc(7X<|Rw zrpE6e@2begUK~oJ=7%!HXm)*)=HCAOdCD&%i`r{!F@U0Y%iVYJBRysPkmE$R$L>xJ z`Ilm7XfdjwdWbiP6X@LAMnAa{ObMrc!9j09LP4xupLz^s?@O{Q=&#n`x(52B{_Wo@ zACp<{DoApk~4m?t}u);Gm+ z%Mz)W)fP;DoaO&Sa>PdOvVZB)e4NSxK0yzr=c-wYH(@ZJ!QzD%|z z#Ny(Nc+uEQ>}@MmwXZy#HR?9(Zv_yr{uwOAh2y3AsbOU4_hPE4|3@whk0U59(yivcI9?y)8P|z zc2mKs);~5id4X@i(A$c8e%o*lY>A#~k}F0@tFOqG&eqEDokJI1cnrPrcBgyIyLdqS zp=*)J@`;iW+l_+ioTu9IA8d^1pzO1{Z}`8*!$CJ=jch{asdNj*B(BI-&e+N1$ItIB zutjZl{~{L_=V{LQ6U;+?C^n&ws7|X>EYZH13?RVN+n`8c6NSBrg=DiMq39lC{HY{1 zbuqFVyi6hoy41V<5jJ0PDID{hj@HF7PnM&e$iXC1h#@l{BlG7fL8ZetJ5hcf99lCP zhm7Vxmz*@<`b5;CX;VZ+M2P67FVcd#{7i&zDcBKWz7m!@{Rs4)E2gegj3g^tI>z>y7<9E|K`IoHR_P=+PT@5xiVV7#uH4G$ z$U-Bv*oW3(S5TIEFd+=XSUsuG2(x23n6hfNr`mt*597A#_g)0Sh#ax_QD8>TCJEVU z{oX@v^?Cl)uEqKL^FpNVgery?yi%io6tUGgCp3FjI6$rKH>_q@7z)VeQ(rz!w4)?UO1wv9 z{Q$1nGv3|9b=Hyv1s)xXL-cLOpk3^3#opIksr;w>$H>IO)6EhqX&}}&y!tWZt`e6lf z=&T@XpX@cx&^HAzDL+QbT?7$oB6c@bKV5uXx;LGrPSGO?jLO^t6f$WH+zsyRGr}4^I74O4o0q}7C=V? z#LBie#h2s0No!Wv_kGQEjQUy=H_xLkn^)8^REMcxc(LhzBLk-;7`MX4jm4b;d<%}W zadR9i+2UiQap2zad(l}4IQ9oy(l&>GA)f)A5E`<@7>;``eI0hDSvgrt+(G{+ZO!ht zgGG+Xc1tK~nM9)T8P6kB%p1N((OzpSumTKssDV!|G*>m&Y9P!Y<&Ra^@^Zx5Be%l^ zn1|UBf*$Ko|I#$|(cT${!WK#9nXtpAThAxPUcCmGM;hLf!3`5)M>O}^B|t=3$ScsX zB`ur-{il#o0}Ygg7_uMAkTuyEQQOx}98)MFv6L*a^pBvg1`2+ur3-o88^LoNc52rS zt4FX952Qp&oKrFooZ5Cga@5l9@Xgo|DeSmtxf;J@wgS!#8H#lNU}rl*Er<9R(3~yy zqYuef;n%o_ec{{-pnu1yTxMD%uB-1Qvc5mQP>XN)&x0wS);1|+14y#)GMu02R(;`E z2}(bg99dTehHFg$Buvti`64IibkLhU;~7+826~id1>c58^spoH#y@6G6bfhTC1f3^ zq`ZnGvi6GQ8sf*Vs9nB<_TH+1VFj}dc;Z@Gqm3P%8U4z@VL#b@H&k`pfI zlY}0YCs-ubFG0%R^zMIQAl_x<^Co&*-Voa<3+E12N@ECSanDRwkl(-}fQmx8slkjduNs zgf7u=Jr4S6pe1+5pxf?A;hMHk8j7;(t5^UUYhL+HtcHhDqIJ4ddzFBFt`w&PFLb9V zr7q2C7odG+la#nt@s=1E+D=r0+Kc3()tKAj5mi4g`?22J26}t@P5F0=g&fy0DrvX# z2=t-@hxWh?wcmFP6E%x&SGtv&*nsdSS*7J!aVl%-ePdo=Rn}UqBKeA(J((du6BCIT z?53tMb~4`Jy&*Aq1{?G(OlS|(3BelXx)oTcW&XJ@eONL+S)8&YrpC$7II|v7rPNc~ zZj6|U5T*j76rtwg2%r>-I{QX3lQCvaHdR3rshA*1xQPra2(Q*xCO>@hoKX~~a1I)O*#-bB2V#GX0@cZndy|?Zvp15d442FXe>ziwwB{*A)JLIyzQij9#N1<<6^AH zgT86Y_@gAr3n4!#OxU;n^2QK&PSL8>{3MTum!Vuvp#tuFDoyO1L?T-a?J6`t06a$k zp72j+iX|Sx_P@dl5WeJA{ktxpLfRLwUx_Gpv_f;m!Q9H%G4{fuF zGCN~A8iUvhuu{mIQnQ{RouR!h(>%urEwG3Dra?1o&s?H>kYWTnOEIBAX;VtW$aRb` zy~{Z_JwPC#sqnX+%%`^7+X3b7+`rbHlQ{${z1$)_)WvkoeJ!Aow*4lE1zDW6Z~9lw zTx@{6{RFFt20pxcr>s1px+mz3z$!*dmyM&i(wVB}V4-$vawHMWwg!puMzO8(0{hW4Nz}DGAX6$~i&nCFKvDz=U3=jP_+yNn+B55<`yJHMG>XTfg z>2dXp-mQzr08Y>H*YFPu;}fIaC$UM=+cJxsb%QuGgIUF|FS+gie52xg52}GXYIOxt zb8#lzXexc4Cs@m;@@f*aC6bl1#%oXJGd|FPa_Q6+uM>-$*Af~XYY&Wu&ZZyD(ht4@ zlU)OaQYGtUEdO?MNwuN5Z^00xf8#a902j+vypPKeK+;G^ex@ivfG$}CS%<4IDkhbl zn#C6As`_Zu4WIHdXL?tWJ>AZr!jMM%s1L4%wjm9L$Vu6SsTBvE&O>GRT&BYHA5y<4 zAn^cWE_F!jz*DgIhzqY-O`-|20XW;T=N4-SkOXg*~Fx%M# zSuTDdl_hU2l07tte2)hoD9~Jdtp1Da;?Yf`uuc(r3^<`Wtk*SLJF(8>b7g-)^^|}% z5-Y$|m#z-0La$3Y1^sinoq)rmQ;YH5N`IWe=b~pKFu+TE=-8oxx7U!qFpd>T_X-rv zc#frN7-WkQ3jF`iiQ4Qv*&D0%YuKW8-lPn9r1I58UCnUG!6=PP5$GOlDL6w%YkRvx z=A=mL(_yhe#x#RU8#gs#uo>9($Z*9g4kxfT=@>Ty}v*wqgCS>qWz?FDIA+ z8_MZ4Jn=e+o=t-4Atm{HjsggOYqt#=Xi{X6YP~fFE7zT5eNJYatchh)O?2&%0XQNg?+u66+7^PcfsNdF%zfEJR= z%il9jCV^OPhZza6lIx%8RC8MOyQ_3lYvpJG=3K@h%aW}`&?>5 z5R9ht!})*cxrE3Sr-hgJ+LGcVtCbWW3d^VcP}+P&Rd|2>{-S>6nBbwG+~<;ia^krw zn>=;_grBoK4LSW;K@OEHv@U8oLee;r;60B@lzpfsZNmq>uWoPfeF&3BtY>*mG07;$cU#B;c_W%W0~UnW041D-b!)G21OyY3#5xOu=i4m z0)NDQ5ZI>f2^3lbD^aTEm$S0QR(@Y@5d*r78!SbSE;*{^UMskYeIl_yzq!`RpvcxU z`#5VQtcqeiGq-KaO4q&!ojDnPKIGj0Z6paGi}9Xdc(WyavUGloZUHt&be*)*ji==c z!&MEhnc0#axQE)meVK1RJJrY%2K}yX+%QX0CRTIHd>fRc0Xt}vIuH#C^!Of;rIK$N zn{1x_Ne=E9D;}h&{noDBdVo9#Y=2q&O^@!hSP@+ewNhNt{G$(Js*W}>T~^>$(u)=m z^qcD>S32$Gn_(1SvM*%E75C-lHJ-gyo6l&j=`zNVLgXJ2e+XHhiHh$a%h1p)nJ8dk zSja(AI!7@gyCMPODs=M|nxJ3a-M>U&)82d)S4a=0RfZD^ANu(4k1EmEV}u)nV~+z>B3rq zq_agY?_gQbgO}@G*|P9m<4Y4HpZ$MK`jkpcXqp)HDi54C+Kp|av|Y20>G3b%%MF0X zz&PChj4uYN5mQzro|aZCI(Q2f zBDHCZnhEfk5{u_hsEJ1ppcl^KA^RSVvg3jbhmhNzA1D|3d&w{E^u27$MQ;m}G3@lv zvEJAYtV`x01+2MmEe61?uQv~+P%hh{)blf!5)vG+_HSoLk0(FGo1CyHN2FLHq*JN@f3&Z0p8xn80Crg$HyZK& z)dA?|BWdTeKPkZu=1U8ZzJ4=3St2APLNfnpPB0xR=d#v00(v730)Fm? zq3Rqww{WtVtLJmvNlgQM@!1kvH8Y@UL5uz1+bhtSc&-+TKrA4KhaO?oD}npZ+dUuu zTKPX90$ZtxRktbu{TB|m-JQAQZgnFM$p^UP3h@{k;^_KEaBW|SW8HOCR}XZ$SnoIi z1IcFix#*)&>UDxIJ$b}>fehcx2v7vlXJmz-4&gv&zLfu-$3s!q)Nq~Ai1b-Tjz?vV zm0Hsbe>C+#?@2wg|NGeIFhC)!ZyI8UE>{4a9|RoK8Ahbm25@9?&EjYT79y2Mx=B{H zEC$iGnZ8d#gN}1$j-$utWyNG*#zyCiU(}CQhNMqXQ6NAi1xY0wzfInrjdgEq>D&&~ zt9K@u6Z1X+cuAGLQ*ak^SuD`7WxVgl&3*U7kx_bTYFsY~PN$%6VZ!d=e%^a0E~;{8 z{M|yjPufPU{Q+HF@GbpZ(DC@^}<9f zD$e*8Q4;1sXqhR|KFS|(fYXi$6yw^-&!H{?#L|Di;|`Dvj`dx)_Fy@0v64B9L2veq z=uV+MzvyfatO)$`Nn9o+h7om@9uFWX@X?Jlr1sOCt6fY`lj0_#1 z!Ul&2jhQ@Ms`xzybmxSk!n11eK#j1ycTJofMF&{{<_q?P+z@a5I8%|~;IoJfcH%s+ zf`zB=sN%Jrwr)$n&+1a%az->^`UD4X*eh?O>8fC52dnA5Y#oZ0L$~Fs&i~v|Htyy7H2#o&m zLJuBnPc2Q+$j$#6w#ouHcz6ksLAMw#oGwA4k2~hX*(;)E;Xr=rZE)UXS{wwH5#+u2 zb~)^-EW3Rcy)tib5)+g%@laKOGnMOdQT?*!f(YVJeUmZ_a`5HpNLah-FjCVppCHgF zu%$kaA=CDYS$q$@&30j;OlaP>1)WifnB&mdg<&nx#u=2_(tHIW?@V0O#P!!tr9c5c z)cFwM54%Ez7#ST3LVrCLnU^6=8z@;W&Y?l7*g;5<;YXdF2>4*}hk1B*X?_Q^-o>)IzxH#H-8RG}rej7*w=$(s>Gv2< z6;>LlKSF@M{*gdO%zs-2=iqSE9s!(qeZ(<^sOWU3g9NDM3g<*r;R98>eooyDD$CNs z0d_<;K$f>)^Nl{3k2l#cIh-?;D*q^!Un11{jFLO~7Tq!E3$KcA?7|*7Jk(dA4`)o{ z1ae*%3h6K`=R9$?MI0R5H_DLh2YubE5^aYuehwjR&=P=fZ}=HYj)_iH$ls^0ZpwPJ zVO9a@Y86b!-(jWINdALP!f|Sv@}AYR7w&}?MI!|;0MpjmUC9rjBHKZouY|6 z6weAF_%=vI`?hQh=n6soLW8ZK1emLXMyfTCw=QK-1g(QHU*aybE1z~jzcMGxN#`P> zPyc$;p+372bg}X3svFh}h_x)H{UBJkM8}m3sR&W-*#$$SFQnVX&;gW8T#h0N7Qz+; zfBnR>-gkcL?sx?+#4^qhsvEVx0lfoBu`KY6sVDkdsKgkKe{cBG)&{@UpQAR#{3G!4 z@F1sgyB_6$;#)(u;k;Qbgg+8Iu)tLXK3Sihh`Lt5cbRBxk-{rWv}w9v$>o}5oz?|< zs(15_(V(ngcrUhq6f>_(&ksYA7a3j^Pp=oohjIm2UPP^SZN~7LzqY+5>^q zKNJ%3UWcOD7xKr^C?*wVL8#`o;*U%D2c~EwEua(0f?z0=uv@cwMR{1c8=krksD##U z`L9+W@drZoLln$;SJ?!tXfO`e!H%_6Z)*EBrInWE&qLZjrbl*J&2g{=< zM_TU4L9@Zm{W&3Ufq=qpR>Lvec$PhfF{)JSy)kwn!P!LsoNZ&e)ix?Co8+o(ZtKMB zADk-#EfIcmMw$gZHNk+s8mKlv<9n#UF3V?tSaGjfcN<9nU#L256x`8ob|{p>OtSZ4 z@PX%%SS++nz2c103I=G#t(1_&+7quF{eL$OSdbIb2_a%jkA9aK&ds5{_y#&`tcEDJ z_iT_(eIU(r7r&i`5cbRYt#qFIY2Kh&7dx)g{x%BVeRw-=dl7hpDTpa2fN8ILU@nvt%aC#9v5r7WhdNdSl)CvtlVCJ(TA9(CvT zM$Vh15@X1^FI`~NVMBiF7J>dBGg9mzGBJKo`7x3ObINQijD?N$tRMn0(-pbNJsGeC zCewdk*RCeYlWCP&{rJ^$kD0>uX=@uPvxNPCU2r9APs-7fiOM zU_MIjgE1Fm1w0iSh%5({3AaV-@)kGarW;@D#OaGzQgdg7y&bGE*wE_U%K#^C0fUu1QsK#xmn`l862Xv7pUpfY7Ur^o9m1_yg;pCe8| zIyjPZi&k&oWeeqGrZWJ^y6g|9Ory5~46O(b*hK!Se!a&r3%#Uj5w2!-+Gz=`tl{I5 z+}CmkeHjwZ1a>kFAF)ZL*Q|}L48C|1<`G zcOIZj@i2~0da~3w=%6=*PVx_6A((R;47!#jMOT1%hXMU{Li$Uq$es7kv$4V@6YOy% zd5%Nvuxx8RFz^XWx>p(puKy$%^O}7lp2xD6-!D@I(Bu*z4$}g!_^p?@ys}QvA`kl! z0gnznEq3#QMd<;0d}$>dlG-CG^cXXNGqKLLj9(tRzG8QHd%8wUonJeZ&)Aei=gYh! zDT(XJp`-H3(gBc?bW0J=kHGoJAzR-N9z z*WbVwB0_eVZLe<3af$_uc6Xe}t_Ae2v`?1O3o*n@zm*fl2^D1`AVfOK>hY_EkR`W; zr|&<5-=6f+W-!-;xg~vTCv?%EXa6)XL*Dt$87DPHv(c8vOyv_(4)SgghM-YmlkX9r zfZa}x%BfR;A(m(vJ~q{$BSQf`zx`H6IhL51Q_7OIHR!HHVUl(To^YV+rIyalGePe_ z0){Gs2bk|1O~UPy{@KGx^ntaf_Z~LC-rTSK&5^3QVD=smc7~T;JR&KAmJFU21E9fk z>DB9$;OwQB?@O4Me;6SV3TH|6qPQCreys)veVf`M^95->33~vhmsQy8AO0^(8`1pF z1VS~(kF0J-9<){MzrAeV9Nxt8Mgrarwx|98pG~bh1a{4;ti#r3vh_M}`}-Z8fWQ+1rstb~;)KzA|B& ze)eAJao!05?aAgsk&!olHE+8zbD=IGlTvgcSno# z;c6^+R~TEH0W{Vd12z;x0<88#?;EH`boe*1<8D+WT4_DA4w-_~QI{IP#`(qs_+PD~ zs7tD2_>Ywu?+b9h&R-%IScJ<}lY5}&riLzr{p2T2qgGQK7bP?Tmt%hs=(d_56mxV9 z(QufP#1PvkhT+G=V_%_s;62#*BMl7BAu$-Cja;byYgxe6iigeO3%b57{$BTbWknUw z4En;WW?G?y=qqDXdr$jTS4ZMwn8e!aN%GC=rWrpE*5NjM!P_&+DVMV9?&qEqZ=<6N6G zj4ZuZa>xnO(nXG6c7XnVBc#orY;124ZF~L`h7uKk$w`Yz`Mw|WR4w!!`dq3D#!y(HiC$x$Q%nT++0tT zS<_`{)1QeJCV(ENd(GBbZ@#r~&Os<^2Th%#T->(jrjuWkK}3?f0O$z4m*_-nP70q4 zjged4u+CX_vVXidWmHfFY0X(!nbJ&={oQj#Sx~gvz1~mCqpBDHS$CPFPZgbN6_<}( z@p~7>oU@e%$NDW@b!_O&+@ihkjX-&CiXH_-D;8P1L(9CZcLXq?q?wYj&$NI<;DKgiW}CcW7&8%Q@xSZ0nCfSa z2#U}c0i9&jnfy@iu$1vuMNWexHFKb>tE$`GXcO_j z4hZj2VB+sOimvxleoq4aNcT4Sg=S`kc>p5cICXkci6=P}=-`XKkK51Mud7Qq!F0@j zg<-h+@_s)(lvJ}v@G1E(YV-*dR22mA&_&J#E=!*L1085K`_+G@uWaT?M#Lb_QYxVQ4G>*_e)ub>D$0q4Or@)5BhI9VB zX+ioE!014sZM;_d*WKh%F?1@J3J!va)ai2s0`vTwI5>E`YnZLbx~>qQU%FZN$oS6i z&69ZC4TE-UfIjVo{Eo0?yQsG4uo3i|E6}o_uC<{qnQR_1rI?_g%%kPmk@FLQNGWGR zEslD#k}<+fS4o_q76mtHqRJ=e10W14es*}qt-#o=p*MoB zP{w{ywYXbLwD){e_*}31N7_s1nmFuyQE2f=QIG>&KKMNWJCGWl`;-XctE%8YBj#7W zXoAQ#JR^52f@1kR66RDAcCiTw98*(D?Z_O0dmv)=O9!314D<(NQ99l)7i9o;K#9Nk zVxcp5{OvaFVog+ViEYq9R9mURjfccSuDJ}gp7{+}=q$Gt3YTtv;!r6({BMv6<8V&- zEvk|t(=Xa?ROpt$K#jl(tdF6jFwGgW+Ib6x2@XnJN;P5ZgY`zpc8nCVt+ zlS_}lMEG>Ux1UfU-He;0X>{rZ@N@cUvS)?C%2wO6oH;i>mE!34Z~t_dp1jo7h5v`b zk%RAf;z>-t{R?<0ne4yr#4S`G`+PC319&Nc)}wB?m6yU!#yo!K5xp=zf47fc0Q28* zusB0Pfsoz^WkLV0z~5c*K@V5ZS8-tZFsK(F4@XE0M*<286@rq7A8pvJ+ z*n8U#UHD@pE?M8$8IbfdC7LW=!?;BR+#P_t(Q7$$n)3b920{grKWQ9`mK?k~zi@i- zP!6T(G(mR=Z3FWr6uofd{Tu(%I5ym6NqB_&b7hPAMWN0N=d~tme0IJO^%osyMt0Ql z>3wcACot@$@U844++?kl)6ow7+t;)4`}kc6ckFMkg;N=9-k=X{NSd=y{$lDoZqDK; zCdwtG-wCn7iodbv4oRjIm`z~V+jC?4|C31kLGf4$SwzhQoVLTj^!8c_b7iLdyX_-< zy8oG!YxF$8BHyCoVAd4_a^d0}Zj;N3zj}G>bPfz^Ynx>wMZ#cD1*t{YW@oGQU+{jl zvl9-Oc>kVqYJCpbdtC(D)mA5d9Xw_>bK0DJWF{ixy{?2%G-D|Gp4DsSg0p~LIKI!+ zQLGp#R4e|LEpI7L^;^02S7q-Qsw2wTMToZg1-+=s2|Q})R&3ZZGOcb3fR^L@kG|<2 zjAPqNL(lfcw6dJ!aeNStpch;TT>*R-eN|wz zEdZSY+e%83?2K7G`}D1{o*0vSNjcBHJJEf$0*nZLKzL%`0P8kNp4%z4lY{g^o;qm^ z0niR}gd>F)X2ffZd7O9&(D)No;x{Q6+fv{ef@wts`l$|~aTt6n6nSl)5&;`qV&0X= zMgcOypj@d7`gk@6tm%7#K1~v7Dw|{IdHgF|Ak~4|81_h{H-i?hV0n1(uDMz^>5JMt z=i={QbSoKKSwZ(GkAoT*gR49E5HH&A#UvW#B5XNYI7E5t_Hh!ctOL_fas8!5%vHj% z2=RA+OV|M-A28mErM9|WTodeAc%W<6u<^9OHgB()4kJ*hV|1M$CTI*qO_ke+A5s(twih!tA#vZm;RXvRy-df#JpNwbZ@N;li0FJaHvYpxa27 z{M-F!-UVk+HY*{Yy3a!}4ko=rAwP88(pGyleZdd?ECuIcP_Q+y`}cvb^LvjlP?i=b zx|E&Ekg%5zogaIWX9$U6STW6QOjfh|qE-ZYuvEOv7t&C}@&`ceJXqJz>l0;RS?KEK{4^=C+Qb3f?wyGCH}dJ ze{;(0C_xvu*LRLL@Q3JzIvRAYJt@^xrf6Ynaowydj22gU$NpieSWLC5d{${H7XggS zqEJ4FfVF_Qv7xp@eZ9tK)_2ykej0QYV}f8bh$yIlW}R8k9m%4xoj9-dM{wO55YzgQ zc~c)R3~mO@Ss$7#DY zgxR3OZKc5+3yG#MlHm=_hgjG5Ofuux9@ru#7B5xg;BoK%jkQ(guv`Hcs2t4_!U;h` zv*yhkM7aqwlUt&A-!Ppv3Ua*ZkNpFkj*%g^?04Xwf8{GS;Vw&4xNhXRjC$+mx`JGk zrA3_At^(Gm_sepiC$XDE64LQzxd0k#e})rCYCzy$f^CvPAy z@I?nX@G5w$qpoH6iebt66~jjZ-2ui+4=K;dO&WBPQL*>Zo(UDjXrlObxJK(tv2me8 zn*?m27RP776}5Fh-?{}A@*%hFB6eVt1OQ>m84bOH15e= zF8`qncfV~3=wY5k#axGh;bas+`p`V1h;y`EAA+KOEH5!vy|pKTS|P>vTm5wouE!op zWKP(NO-pS+3BP4@tO{bih6pXpd`>?P6Te zoE=B8;D1cd`x7fUTuG{>oSP)c`1yhqMNUn;hIY$dDHFHXegc%)gAqufe>xynVT(=6 zky-J!h2%w?)@>+H7OF{VLDxG~@{!V_=ESE@qwe0Smh6{b;x7{8eZoB<1jk5~p7iTl zz(s;Bgiu;uy_Usr({B<0#N!k4_w3)J?oSQaP%tc9@Y|aDyc8EWn)Ff#eg9 zXZ2BmSzk}^lH14TO`GM~5Laa7dg-lT7U)0q>&h)Tr}W8O2>7``zClCw400JxQ^0pI zh^(2W09`++%%iL@T+8Y!mSmz|mEmQ;QSAr%g(UIr2>cN7S$S+sV*=L(qRa@^3jPlt z$mDj=uS^B(0vr}`h6HwG*~;Yu*a9iOaLi8WBUi-Blk=&clG@C0^azWK#-s2_xG)wh zD*!gR_O(idn3)qDeg_{A$juSl<&VE>pJ605>k6$A1$qY}Y;>RJzB){S@7UW3$;spS z6uPB9NGu=%3!mXG!Fc{ACo!qVV5sX|*ZY^>APouN3Lxfaoxsccd+<$@k%yUM>JDO{ zAs1WHU7TnQbsQRW%8mTgH*%cPW&!6zU4_H7)#*)p4TM)I{Y%8uGdIYJPlPBX@dH=6 zaHBSA_@A>O7=YK`N?MZH@L=f^?kp19>+PV?`4Kr4Rq&nzW z<|ym5qSdohWA3Waz`(%hO)Lezm4y5w19uAynYW}rLF27I zY!|A0wL%#h$)#!gI|@20A_J_$o^B8a1?OHU88MMp%%YByj%+`CzUzgyuJ#{Vk(>j1S#Sf?cjK zghYn;#>S2>Rf@6>)zn2LcA!()$Jst+0?tGAG%<}xU$ zfZrY3$(g77_5b=n`Q1L?q+9FsL?PbBHD~?sS9vvgh)-JISqebBh^qe*o_9I(V|;k$ z&6dghsweIbi6-Uxnr)nGFzDj;mMdp3?G7|%iSetgWim7P_E+KHTbG61VJUOD8vDBj z_Li9z>uB4e$zpEB2r`F0pgF=H$JX4MQGWItI08_=>;qvw zdF_A9ANe+E5Y@Nf%a%d{?2MsJC&7qOgZ@)@oEY`s*>J{uv5=pnl6fdi zbF(u~?!s|Z4%29`-J@G3*wNYd!}IV1a7Q-oekl2u!`GLUx4yI zZP5P@+EnM_(}zv?(7$|Y7<@KWDpqkV&aNa4(#94yh*48C&sTUb>&KYWpY6G9(Yj(>x0_VBWh1EnMn4P%c)u4%POw`n^w?h!O6UwH@-h)5 zEPqPBPzoG-j4K&|u7#OHnxgv28Eg-&P#T{aXveaN#+@X%_b-8bW;q0W^%%V?)D-?l zu0WvQ4}WszMNgpGTW4nk4EMGViJ>h1lP-oo1oA4SQK0fZA7_U92=qpv6AGH;+JG3& zr0&&$UO1nLiiL%N{PPSdghxy=;+S1fB#@I+NnFlnCh9M}o2Qc@Kw5$#uNF9g4~c++ z*S@RUY8|%Y7ud}iG{fHErAG+5cT?(MVpcVR(SzODgoM>0G9ngv0 zCGU8d!cEE<+wgyNg5v%pQq7~8WVbI__}7L>{apI(3g)Gwyzk;?g(NjoC@M8s0j!=; z{@dym?_tT!kLJ|2oC%-cOE|$YTqH}GM(?%-J+QU&#lc2Fy+x?8r~~5cD~`ImSxPrE zTr^R8Ze}v6;Awid(6eN6aolU7yR$tpoN5rzl*fSR?*QW$_Igg&$B-Dugwt;~lD}Hy zosECUyQ2rX{`dz^K~Vv7fLO2@3lwv>o1ES!ge_DvD|)s*354!1FU@g2=$m@wC&8qg zsur&2LIA;AiTPdRYBpr zbZIWiRnELAO3mEUCQgA|xQfCiK&tuG#`iRA1ZD{z@0rKDkN+%Xbc?J^8S{RS#n{z` zUBm`Um;&rFI%lE65|}eXjaB{671@sYSi|SPH z5!uTctEx!mD^t>*N;>Y{RpqRQaMl{w&YtH>-q+@2-LGX{oO03kZDzJ%Gf^sWZe*!FFaE&Pt>jt-HTo(&?i!W%O^ zaZuVaevQXEK;SzXyR{o7jn7sLMFTD=o)~;^lTO*?twO$)nI05nNMrcz>%f=UP|>_2 zU4o9#x1c!p!mkd76p^iHBI07hAw!OTa&QN6yZ++Qqb13{VvCFKcNwojdU4}-u*Z`H zX8Q?zLLtoAp6fjJ(@8uRUF#{(@p~BwQ>%8(lhx2b7vcDFv=@_!*Yh1p{f2L-*ZW6$ z&Ta}mTdi*U#%=MT7u>kkWLe(_$0-mtt)lRe?OZJqQ3g2i%?IG5(uf;{OKv6^G*GS!i* z@>@2#*DY}h&~TU=$wa->;uk^DYQh{1Hw_uIVZwwdMfuZ;GA|Q!c2ilP4>PUNB8HT? zTUW(uEw=oGy2+cq0o0C@jKk`JP3sTUi4GafDvfOH;sQnT)f<3rL`e;do7*pM($&yo zgyM&EW%|&`_ru$NL$S1iwxDawOD~@d1L@|2J^Qe*otqIP@V}o`))g63=fK;2?^O<-6N}ZcUnk zQOmYE??(4?RQ)AsJbhtNd&O$-MEeFP8;)PR3J%}1RjB%&fhJS{Cq)iP6tM^pvU&!U z9dcl)^{dJ-xFjDgy^f(vxCYj6x zug)1Q2ZN=i2P$5GM+oAXV)`^sW3tT$`1@dlV(A_GCFln{@2D_xZV8nzQev&+r@-1?$RVguB}wgI~V2K#E(9d4O)JTsQ`uZCVrPHU&m!!=*zq zyo134#`kF1dO3yotRP;Ze#_Y>?nso9yM&hCa6>5M2S8=4&3fq1^7qNRVbuz-x1@?s zR?oRQyzl=EMjn3v-O{jOryuhA0iwH3&FU`Du`(&=S|SItI!`zoy(TY)FK*i=BzAff zL+_K(kndTXXg(bnjvdX2cBfK+4UI^%vUg>K7c*Z+4?pFiA3bz(CkB009}KuswFi(B z7EK%^MAgnsUTvfTZZ`YHsofZiagH&RcH;fpt%I ztH!+BScOr~aQI9YB2(B1yQn$T55sj|af>w((1G&aXM%oSIR{$sq4C+<0jx9iMH|;n zG>AM67I37K@xP%-a9wapMSUlkeM&|(q$XUrcd7>|KV7c$SFCef6&J1qU4F# z`U_;am$yR8P!$y>0d=9cP;u6NmrA`(2X|T{e6r$WA5{zN|yB;xyu@ZqZt`{F#L#P;k%m`-Dw*1BKheQIvPsG(?utk9I zJtcHAyp@adk#-#&jybHVD2N6lIS_QRU>!%#0y$dhc~!pp1+30KimCkp9p(U={CSms zNVwG8i&T(Fb495k;XlJnnDQnedSJ@O%&o(Q?T?lJZD&ezVmRHR?9KWCWK?*M_HbSt z=;;d0rIt5S0UuLAPYT;x7q>x=L9RqYu?~KIF|>r*ANIp)(IGh!qinVWlWIwO4ScYG zMlUQ0v6cXN%d1_MePcy|zWs*5-(TD4Ja~yKx0s--f12=yPBRF(z?Wyq>%h_l!t!lO zXS>|%jh^V>rSLzpz5EbJO-y6#7?1EKxS3`M6#+Iw8y6C-+JoM|btt&NrnAbw(e78C zNk`?j1cZ_)&6Jkolw8?393wQY@IMjEkeG+H3%rEV)$AdgT@Hc^u0!Tvc>tZE< zfF~|fQ~Sa(y|F;Oa*GAC^-?fJw>mrtx-ulw(f^7)mIRvGhpTkt&jtFy+WZ07UnFyh zcv59-#+>a6NPL^2s)1$CiXS&IOk~_ZtR>~b4tbJX8q}1dr+tFdUn1`*-K9~nOfH8F zaGPAv4_D+CiFvW;UmTmdo^_}qeQ%jq-aqJHnAx=#iJWl`)C3ss-8qKKU~({P-Ph@$ zK7p@__mW-LE(exzd;TpD;=OQZD(W`yN|E7^MXrO*si5y9kWj+EnbxADOSR-d#dtp+ zKeJd@2GQwbBHU3Dh7XT=V@h!!Q8Y>5s8_-5R%!$SJbz1MihptM_Jif*wAVTj27OB2 zFK9|KG^Cud%EO?8z8XNW|29l!DqTz~^JVTa%nUa*PoZW>-izzh=5~Ms z^)9^ogBhDXDH<@x^p36^W;EXTo++>%$yg#3v8Rflw6vcRV#)8{2D(x+vBm?DaM82_ zY!oe&AbBWISU8LP_g(k`|5P5+H0%%4qgw6t=h0w~G!ete-|VK1K*pJ1W--RahtoeU zqHGSsAbBlIDQX@xbQH7d4cceWnJ=Aqb{U&{1IXECj0f!Vj9P>VatN6tBeD?ISztq~ z_-jzeoVH9aifvovn=Fkkbtr(-(EAT&Yq)u0)cw=>#6U(v@t_MRjlaU~!oV~D3p(5s z+!ak#TIeVjoNBrakE!kqZJI|61FknL-sOP)VwOl$1WB0n6+1aP0cToolyme1;D{XN zXBmBZtoZ5{n@v(KtW|OyvwhF)BjT{4s<-eLbSNUP(lO{05F0{B^l4H?$jj$fw7k3qRzEHbD`nOzm zWyZw(9rU5Ca>#38?TD&MY1l2+qCw7|t1injCXK_g`r&NKRoy{i;|m<0mcP5iS9 zI-@TxxY!V0$@uPI>CA%E^D5OvbVleG0NT(iA>C2dmI+W>l8+15KAts8F_AX1Kxc>5 zI>rahjE*!zN)javu?RYd8jZQMV=a7E7lyH&+O7m)roUlRsxG8jCR=8h^3nGu&sT`I zES07FPg)l|0~YELNbV^%ol*ERCb8SJ48vr_=#Xz#SQ?vfWa4{qhPXooI>464qMO|L zXY)Ss?+(s*$8^P;gBMOtkgTR=8rzpUnaJGRyjkCg3_c)vJ!7z^IwTC~ zyPh^y@Yt?-_bZ`C+wwQt+3uzDIMA(EQl{N1C@KR6v3|O$bis%^@-L?zBuvxr;cm?T zeZ?2nOIrSfaDS3=To8P}`!~9G0;rrEIj2^-1nHT3kQrBANfFJel zfN7Ue*xFyvfj+e1oxRo12shlIE^+DiNfnNoCW#XE>!&W`{4q`VaZ=iWc+ld;RJnh(@u281^2ZBjtjus95Kj@B;njs+{K|e&j9tjNxD$ zC~aEMvm+FY3dTH_nkYkBZl`o0QwoP`o4v_q{cQl=*>fI&2;`1t6UEZw@zlTrq_QQQ znFao`=A9^~frft7R5bpe`v?Rl6}lx`4!P=ZloMUTgx}Oyo+Xpl*qq`dT)m9gvt9{~ z-VA|luZl^#hx$N{2zdgnPOE_e;MRF`u_$Kr+AAW~;9n|++au@bD#^wN4nWWT>0pyQ zUsmA%7mTWa*CgXllFA$J#m=nuFZJ7)9^TOhszW776}3K%cTEgL)TSu*7Vx7y=1s}_ zrAj>>yPEcS}_3XT4{C9}UM1Z-Y`4GtIfo|9Mxq?Di~V%9zX(WS-HBD-9KZW6f8 z;c3vrJc~{C3%u2`PE8*gnx(k4cy(Jkj3Cf>o`=|P5;lw&qJm+KLXZs}l$E*@Row5$ z0pN5U(^yD7#`yIn@hhQ{??nrw4&6(iI!V>J4D!)02hcZdUw%NqUV_d3V+=ncQPKE| zXLw1w;hMz^>}{ae7E4=>kqPiVN7%`Z@cH_PKFBcx9AKPW@DyqeGDS|L(=zU31R~?} z0jD;H-^M*QX|F-&(AW3jU}+43k@->D%DKj{S`J<--<>R0nU-9Q@<+@JOq zVDxb`$BS1{Spla7--=)To%>H(9Hh|Z`^&zOXu=Jm4^U@ounO2hfbRKHqr@CgUfE+8 zLo!R~LXEeFn?yVnraGESBk?uNFGq(XGs@xC7CoF&gXRf+pk%WK$W>49WTD>Jhi~Ye zjjeMyjE8hT)~8N|N1`Hg&W{8guZ~zrGw6MEXo<<;zH)(yzrEQL!Q~=5(3Fh8{u57S z4N;3Db{tobZI+lhy!`x)%Moy=8fZr*9}iHS2&Zs=KUg)kc$8%weJTjb;e|QI1qZos zYS<{*pYuD+cz4xO+q8ZIZfG7oBh9zcs!Kr*8d*p{)F_oE$<5eq|^c0eosT zQ!PiOAprl{)Od+^p<5p-{p+-hbnzKhXVMVW{zJ2;$M64Tz5xwfQ{`s~o70c*XfAgL zRg6^%*|v-b#Dx)r!z;mUUtdHO3BB#xMJ7OhaQs+{QLsCW`Ivkct9RXQ4NK(nFzkmt zOH15>k0I!c^5ttVew#VPw8lgBtINQ((T1qpUK(aJj$eK~+kaX#X^f1qS}+}MRt;`z zaZYpp02hfUqD!AUXKYIx5eGqPIn}1STF(N1o!e^~$T;fRL5Cu$KejDdBpw{P*%RTs zSza1fWgm@CwoZOk9y3|0Y``+(@QH_n*Z z=?I*C4_(`PUsDqL?Tz3_OCkYAb`H>SE`y_L3ETTxT`St=FzcC&cFQ;`5_qLK;vj_= zB%(q!ikTw(JC5-`WVXI4jz!DAfY=erbtPhvqh^@$!buOp);DfGJZxus7$5z#BIg`1 zkPFvpP3urbAoTDaR|%(pV{z>t9;liP=NOqN<0D+2OARhn2R-cY)2?hyTsc5?C}sgU zq|U?SgX6}I$Du83Ewvt08KI%?gsokKK510f%oCs^0$8zxmV>|htDf1SBfo{(Z#@qF z&TT9?i+Av_)o>vj{YCP&cXYb);(IG1`)mtP1K)^4Y(nYIS0YjCa6WHuhVTV?Q6D2U zVJ(Dyg|aB^gTBUXwGElRE_rC@bB=TCwb38((^rNf#!)CZJJ9?Q$#l2G3il;aA1qEK zs%rzPAL$2h!?0PV&&Kf6_E^F05%L$EV2!OJ(y*v?WyKHToN&-(N0D1NA&4r1U&6BU z9*odk{NesqXWn`>{cKJG-o#HC%7S9LTOQ7GguX76ub42VT>$ZiyckA>n>qdHKeY6C zMXUcnwBfZ*OjA=|`$4hsgDyKti5<}9#jzslDUF8gnN*l@p+}60TuNORlYi)%^_Xiv zj_~5KKD)JgBcV;Ycj83_`r=QUt}+>*2MzHVXKdT?#uRbQd6P9IFJRa@5;s5(*DjLk zaQ;LJheeX7LTzym zY7x_h44}3#NXb5!@uvO$AxR&yD}_u9a1B;5&!3wlCh)ZxU^zt@`QhWoDvPN`^IiUE zkdW^Ly%8{qFA!3t*zq4p9%;f#%;mbLAG$w*A;!40jN*r-qO->GK$l~l*rb0{M2I4? zg#gll>Xy#cF4?{qlEeZIru8rm*Jf)M>-}JuL)GuYpobhZ7veb*Ik2~Bo*rqRWySRz zrzl*7GWV5d>bEmZ{*XL{NA5{H+{;(4)mn9_N9uyPtgMi|{wCo3pQKHGpmm^b996sdmjI?nS5{ zF2|RM5Fn8L2?nrZ(hBXuhXfw2uOG@tEQd4UL*#a_{!@Zg42K89sR8|Uil|9)c3b_7 zUSuS7DNc>zhu`Hz@$l2fH3yX>mXkTCz7L(}~H5I||YS~IIqTgr*A>p)kImQ!j>4PYI0d&Xi zW(}&j(SH+qE-4w~pZS?GVeJ_|2OR&(v)DaXrkdROhjk#aW_(YhT5Hdk{yM}&3@EMu zkLU{$P@F`QIv%{~FGv|cMZ+*@=Yh&}mC+y2!IyM1E$zEJLBlkXjz__R6ft|=T(0~{ zwyHFbllDzvgQ*W#42Z9$>R1vS=%`esH@v`kdt)#}noiVA#<+PMgJpecASnk>_;WTK ztBV0w9dtw>h7iK+T3xCl-gCJcA!$M zclaY8q-2~3o;_k;fu?WNePPeaoz%n@%9iJ>7}yZ&GP{WG+y;;CTU1H z_(>LqSj057yNRy7ja+1>OrXW^9P}+r=X=z2*wuHklZ$xYpOigoP-B2fEIfsXAZdwD zb|mD2uUX)uiZXVblS2W1F(g+laAx%rRq9y;IW+%C*e^_wW&05`V2c*cSfyi-M|ll& zCTd)urRq&HI=pdMw*T~4(~h~jnSdxUWaw|#h-jm;kq>bmH1bY$p3wDKA?t9_J4c{c zMgWOyRvd~8TAE6Y{eX|XA&4a!MLYGYr3vfT9?*Fp?d%57WA2E=20!`7R!^!OTkt5D zh9U_azjX%*quqYhn`gF@?;Uve+kwL)%d9in706d(s~1 zd{PUiL8bVCt}%~%CV45LV>Z|k|E~USet(<#`FU>dG0KO1wQ2xsF>i9ZV^{LFC?42= zu9TcRwKxbw)(u0n&lXG%V6u@@M%o7|HG*!qTc7!|(C;m~N*iZ% zB-e@`axHggPmQk40-=bOlGl{XbAJMbjQo~d!25EkgI07_4&WpCn};AKn(ea|OD$E_ z-6=~;%Bj5yMEOelWHOq7p0`*G5gkRVgDLR%zmJe$*_Ken#I4BVp(IWrXyErh`?Tp3 zl9k}1ncGjVzT+JQbn9e5>+6&^FaNzmcye2$rYnEq)z7-HE#gx*$+A{Nf*R1*Kji|e z+_=r2GL(m$r39R?(@W8DXxAZ@gV)+IGmkL0DG$`mo4dVqlbWSsd)I2H3_vyZ+dPnq z>Jea$tYpm(`#p*8WK;_t>{b8z*Qf3dSCE58EIP+pJq}+zL0NLO5L91JjZ+165c1LD2xG( zBf#gnGt=j5<}WpDq1%gh-N_Ap#7~af`4H;e*FAK{13I#|@3@`B7Trd&X?78yok?C( zPV~cIjH)uPYp}^W%$6V)F-6SSEGMwSMKcs{m|O!;s`?G93}3dF#}!_@bRx7d9;_F7 zfyd?-+-k*~`|Cf1d5VQmV*#sC1owuz;)VP-D+Iv?rCr1u@|j()d)w9@64vdM*#&5h z`p}t!R^03#fIX5?O19I($W<4gPM=DUs>{nx+lFwkI?OrDr?saj$c2-i`?;oh^|;i& zCYRRSJktJg!-4i*fVYWn8a&)RFHgll^Ae-YUw%eF5(zRXnE4BMq+EG;d`6VIvqg7( zuPLxkEN?NaY6xzrIthlWivnF^Ui2&|F(FO(lFbb64K4faz`Ed@g>)~o?5)}1jt*3H z?Nl}sIkxI2%MD!Po5OpIJTT}ejLK;U-Qx$Qbu5wHv;E`cY$v0_*$e+i=D*u|&`))e zezbNo0&mB82#*xzfeNu(%)i}s2-#$)P>1qAnM+(rUy(HTKQc&f4_e-r!V|NA+dF~l z=Tp_{GPo}#DKy5=Zev@YhZmOQ9|WX#Kwufjg#%ztkc(rkWlI-Iq(_{(7a4RtW-3-k z3HQbCYDAgsj?^PQyuWEr3?y5gHCRiQ z^(sW1uR`wJ2A!+bA`kkQ%BT62x&zHP{h>8yLSy06-0I&gr90ZY_A9Z7exZ>?O-v{v ztW!ig(o9#-GREc$|Gk03 zZhCh=!Hf3ytXpU4?sMyTm6{)5=CHM1^;$WeYb2jllvp{xR}x@xXDfgUrZg+8ki%6k z3J%7)U=67~h7Qh*JYEZa`CsY9@t_Md0)h%PG_2Itsg+xrscH6d@8h|#+;c)1R(T*(nS|7$Q_Vp2omQ zVj$&Cjw;!w%fpcwIQXcs4jEsh>BMTB-VzhvAn1@{tY75FfSj<_Y=$*mvAR^I{A|!KmkMKK`^Ea?|)mKSzbv9?# zsqbi=sy8YWpf`KQZ(&_Oz>#QtzfqDN5h5Fa2vWy5n zp{vM?t80^8MOwjRY$yF6jI&b$tvxKc<+#FYYM$MeZ|Q?$hQE~*^o5~#w#b={O+omy zs}o2vXi~vDV@Z(al6?cbxbcV>JQIXWrzqHx|d;l|P%7 zplB)Lt_;s%Iy>tfEyQ{N^@739hkk1h^oBmhwoWm}V_aKAsN*d_$`cJ5XsiurP9uuV ztVt9+w|jF1FUbAoQiGEAHF0*p@)`oTw3WPk(le$C$$)`{IZ`|d3oO|lwR^MTJdh?} z(x?P|b}}YrnEyG$5SVUFCTfp#Z(*K8c9cbU%0S8bOIMAgwab<_NLfS=|2s*icqVm} z8=#7>_~m;*q>~`+LpCX5Ad#L>Vzkd_@ z8<)!Jf)b9>E!q_v&Xsa>B=!2ptH?+#l&N+sPfjWzgC{$FW?6PVmq1;~ZN^M03z2`FIb zQtQc=&-V?Yo}yJ+``at_rJPsKq);~B@{$|~e`_#Ae__k2f95y^YQ&-c!5-=79Yy{) z=T@Zu3Mn7lmGeCvrb>qw*6=@&jLJKs*a;0nDwTcOVWD%|AIDSKqmVM9f7>$9|AQ#j zXS!&k^)xM@1~z#H4HE()nt3VlCo;|iSyIA-S6N3Oqtp-T8r`sCxNa9{J1Tqt+$H9x z0!-V-_nvSr?(JAgc?PuyvZPb!21lCJ#Az4M50~?e%sAQuU4v*bXM-Y^{SumB7`;a_ zT*zJiYYsizwA1lgjKj%Qv7MyCs}u)b6Y#^tyeTx(E5eXFt2*Y{o)B)@O~&vfUC`Zh zOS)1C^fhj9KVHjZB8^Y!%JaB7Bu58NUgd~*ih}Q3y|S>z8X-MIfheSHOei%hX7Kv= zqnIn8G`EQdo>_TGQ^fDq_j(!TpzInMfe`GcQqQAXN&@K3Ucs}p*u)+Qi6)V)SkgFN z;Y~NU0=-6~mS-s2hCxs&TDe%ARzO4%!7);tGg(T67;x4~cieR487!paaB3!W(1*nY zgT}$rs?r?!TG-i-1Nx~(*P3SBuW{yQ(8$30(v^5IjkQ4j{wumTCG)RuMYB(PJnWH9 zC3%p8V*kG&wU&9na0xFcV4ZsD^?tZs+2k;d1V?Yf8(h|Bt91AfpCSMsLa=S30D zytGtDv#7=|;P~4}vXw{tRi7$p&Q_$C2I}*4wniH=wY)0(zp7_(WdM+uFeCPvFPWwU z^ZIJiR`>5YA*$PZfc}|bBUsoJnmoHO%FWqe_z4q+(;V7 zB3Vwp%n?pIDjTHFgInOgqmx9j!ZFG3o0kK7v-Ym>|F~d~ZMOspu)87Dhkj0`>-y{NgIj)_$k_y_A>W$N>zgrB&{B#SunCk8&*+V6ZcVksD^wOZH;c}K{Bg`VC zYpzKctvj*-6RD0~Ak3IyN2h(9k2?GZ!=jP^TWU1&!?orySG$`{@!T2cBTOvWU+t7B z#@{O}aUbv|W2V&t`S=$Mhr7eyO?u(5Ba?AlN`mN!Lyu68%+Ce=b}E3l`^Yzs5>@O)DHSgBrJfIJ4@on}!d(`P)g!a(-DsJLWms7oFhD|azz-v0# z%g%o@VrOb8E86FCnm~HB68r~@6Rrg zpf`I*Xoi2Pi-&l(`x4VMX}CzT9#v74$bF#@*#q|*%auKcz^4_v5{z@&-NwM`Bbp-7|}s$3|FC6#Y( zB-n5fWx#O%2h@kYWUq~2`~pf-E|YxU6zk?=)U!L=L=#S#t|Ml({4wS<-qltpO}K7Ni88=iYTD&sd!@>;1n3t6ATcMCkaNFaiP{7 zO^-646oB9F=Ruis8aBTIy}d=&!VU3WWkj_S?wsr87IB}$_Mc2Fpw;Ok2^qRV7PPnn zrsOgnNc?ki(1yKqivfcAV1qGSStPAel61{sKclJyX<6FcerGN#(^(eWUeFr>U$rTM zMlOBI->2u6!F#C`X~(50INuu%N)#RT`)`;=JQOW&CyepIN1Pwnc?!9KzhVt~=)Ac! z18Xk7RIDFn<4#M;c?0&KaK8AG*(`y+F>fiCx}X$x@tA`kXX|sFFH(j@7MWUCALz(m z4Qkpap;&R093f)q*UOjIY+u*^6$HG8Pz?62{1j59owR>}zASH=2!8)Cop&70txCtBtJ z{U6QWbCPJ$7RgdA>7C|oSID{kj@@42EIRR1M$Y<8q#4#Jtcgb%+}iABoI{oEU4m_gB- z`_wDs3i?C8)c`v8mIWdFzBSe5S0n=mV069MBdeybTLHbS@I9u}jj3zWW>fq!Yf4YA z)C7Ba+|7*vn0gwS_AW5;8e{2x-j^c1nnPfrmgNjF<`%_Aq3ia>)y@ zwvr~!3MKWltmHkW3ZI}Fpq_<@{`9R;eIk}E{vq(8vI#}3l8AETEZ^r0;- zPDY4|omB|#dpm+2PHBR~r|f|jV*q`Op-PTpq}P6x?QIav@1En%oAERZt$ZNj14{p; zaY-#W6n_Qtdni)6D`R98yBezSFYW6S%%eToIjkoIB4^9 zx#og$qVoN=z7k?790DjQy+1~b0%ZGc0P|MFFKbtW5(P}|aIY7wPZypMteuH6qnl`4 zjVXKspi5HpjojNlZ_w>D$55NpBZ*rZyYfW*JHeEV+x%$0+}>#ob0p5k%Z{rWzAL@I z`b`58yjYuf$L#4=(CoQ?eKi+8m{NtoqVc9BW7B~7=NJpQF#raH&q^# zRG#)7Vdv9!=}im9c8@s;1{?dRDbTXo8#%p)j#q?1cV#d5p(M8-K?PAcRPL1i;|pONbSO)s2u!BWtng8N2kTO~{DCn< zyz`{X9Ofia=>-8`8xX5cLCB?Tp0VbQV47t*=L5?@n?}_r9jZ!`HVnElB$Tz+kcc$?SnR9F*J_4+NeQVEIKXcr3zF5hmXoj3i_p~grh)#g1ysW25WNFngCX`_42h^mrNQ| zTQ>xsN&PgJ-{v|&c`6Ux#<4OG0tH@0-eoHu$qe=jDx;n1=Wf2SJWkGw&u__ujRZ%~ z3-@lYi@(Z!CGav0a`~7s8`jNQ;e~}bl|fM|ZVvsf@A%i`%$}imD$lR9e(iTD2T)rg z8rxPw+(N}$4j(#np|L29IsjupoWEcZ?kC6&g&|SO2D)u!Q83RQdvX?KrBgR%=hW|T z+X*=s&ZKsRwA`ZxpSs~GTeJ=*35a=WYR=)?ESrccfL6g5EFf=g>M&*AmCc=$eGDo< zK4QFgERWyk$YBTc46laeCOwYDA6{18LPA925y@%1IS zIL7{GWhlu5TNbdA!qETc6RblfE~(*rbg(iuYZg}DYF*aGS)2K9dC>hpike(fE0Df) zP?#CHB!7CN{dQN3y<+RMIN4eNDsVLYd%G*_LfI0<_vg2PV@_=$K+Ax9ZJ^G#lD*;8 z5bta83P*zA8W%mPg54LoRywi+NDslWq%$o6%=s7D9cQ>0t`M@$LhH%CG zP|Drn_7zf$dl%rAKi~sqFoKAPc@$Ne}YCkCUs7bt={|%Zz>H(oBmL z`F;3{2KO{DhFVS~09xhsgR7I`@m7UyUlN#;oiDRCqC%e};u6{QQf%B9tZzr3<^JW3 zqioFD4f;~ETGBWepK{4;XNOg(+iH2C^qI!?hG_Sy!EN$*k)jPwWvI5q#@q=<8ShE; zG(cJ(;4nGkyn(E>>!=)QoC0jNP>{ztV%a4GJxerw7W6@%kK5nO8z8LRSj>%Srv2>+ zqpd0n_`uKl#QLF3iF=svzCbtKQGSM4tVkAw35?mvR|A-TA3L%=eimcEPm>j|Jo%JK zoWEJcKnM=xTIZCrXM=uaUZmlww5ksg}7b(NdF~aJ1!M;8|h~F)Qe-e zV)=b;jBQ)2Uev5{9q8uVofh;{L)4ULyVm$DL?54P!eGAwYfFoX89ZQ{B<)oY+S@Z3 zbwCmbU9@}>K@cg-AoCn3YaHTY-UIz`8E>22EH)rE%v3MaZ9CeAbpO5b&!h|3K&cE7 z%lhu`Xv{Udf+aXY6c^>>Dh3_umtI!q;d-j z`UnF?wNY!-srjCt6#hIWG6d=xxPqBY-id?)Xc~ue4 zNayFWOko(=206kr{Z$yxey6+-tr));wcpwTXzr7_Ug=-jC02Plz%zk)X1-(&8O}Gm zU#~%&V^#${i!ajy`Ze{{Bu8@l&&8OW>`D7Aff9V~pCX>1S*b9hmH$2MomG}?%I(lr z_c2iCEwlg{?21nV+tJ2dQH_xnHw&ujQkATzH;eN6$)OKsKj=J=;Ffv#rJlFmMsGOX z@3&1R{q@IO=HX*2vBg8KiPurg*mkI*zi*>dGe?*M>*bc7fws>DRp-Eip78P2ybYV> zBf8RZU%C?7i=Xgj8<>iqN8)Aj!2IOn#H)_n>NN)_dJFcbzQe3a@GQ)7{F zcl{q_*Pvckw?%hsvu*68Ng5lCZQHif*tTsnb{gAOW7}?wdmrKaPq4n^?6u~cV-7fn z)b=2|k(3PD!uo##Qk!4=lgf$V`(BU#!Gpbs$b`4Y%-v(h4_}lrGF%;jd~k_`mgf3& zxWW%jiv6?(@=v$??Q2;*_z80GzQIr5AP7!=x}GaK_u3wa)aK?1A1mM%V+y%#Omms7 zQ*jhU_QrmDY>2-(6(gAdOkhzv8+3#|Hgj$z1KQ&IgxDn#rfRFXDukiy4>+pdN(%nr z^^~S)Kc*_i2iC5d3%|~HboTMH0mGhY9s2fo5ndXk=TM2*LZw1bts+7R7)?fg!NNNe zpjW5l7=rIzS(?R9w5NEok?0KH)+ZkKV=R$t86tRY7dreP{=(lxW==&Ot`}{98*%~Q z$Njy?XE@807wv3oTA91mXdH+43pjT6s?+5{37|Iu<==K9Fk0r9Xo7+z9`bWf!ImJL zv^=Lp4$FNEosf={n%d&`6gpgfe!9!S$0$2Y0ESjr?d-U<;k^~P0IQN~d)W4{$m_2i z(vJA#EC(vkHEpdBKMKp|+)yvHg=K>kiGr*&mz*lf;YY;vRvNsmeo_xAp(3w!Cwc`b#->Axxhzx$cI_d#o`JxJT>XjRW`N~-i611z+dxAtwkq|B zboU}iEyRK4)qzvYqtjA?UY-2oqV-bIE?Ip%D;|lVXSS<DW$xJ7=iy*-r+dByowJu4bT0Rh!u+YY>(@XD@%Gw6Ko7ceNvtJ%KLJ_?@`z zJW^$LyL!EYzueJUctQzQ45cZgWVM02ydF-u&~PG{vl{}fksV*!RtMj~40PL%9Eqla z^N0E{a55(e^`1A_&!Hei@D#Pq@|?JWZtz#sGG6fdcXF)R4U>qVPm~7;OW2n6bo|8zc5i)ZaA11a+ss@_zhrw# zdcW3ew~qhuF#8WCjxriHcbRnSsjlALtY@SN!JVQ`FG%R4xOL~;-0)+IKYs+3Y@gN6 z>U5Pjy!gnr0|dQS-lLC5-b5!1Bx8u+&=2*TW7uB?9DZgN5_P_T4wMIb%1~fiA88&f z&9Jkt7O2P)E3OS3w&>7Tru%SF8bJgp<#r*B4RgMiUe=O*sDuM7`tklN0M{kEEY<5E zy%y}el(MrjNAp2~;?_>;1L(|`#$Sow)!Wh93-*31Jn22lbn1PEO!c#k!$w^Q>eUc< z73*mqq0DY&{wU!E*QwmqsI5e8i%8pqYvG`q0Q)Tot8dYzO)io=mEALlz{ zEaw8C4j`aR^w}XrC-!sx>)elS8oMsI1H4s(u?R*3%E^M3S8Fo!z>E_66nKqxO>_Uj zEJI&{?!ngjd(mv8x6JOSDzG0qfL_FzT;;j9fDvbC;=ZRD@oYos5LU({Le5cvdFNL! z8{Z&M4_=ufUB1}!7yE&434OkwQTq*}r4-&WrPa-#c(es{j=& zHXaL{9U*0 za+#4{vCbLH=V>;;T4=~B^G*PpMHuxgSTN2P+=PJCzzl2_4 zmi%z5yUHYdt~H7H!f+?lCIX(BA793>k4vRmUn+C zxzrhUQuZr{A9{E2r=$T2zqGG_f{C{ZE=rG8T=_1@pC+ri4z@txkKf%-zXNvG7c4;s zQLARxAikp?6UIMQh&2b%WJcv9Y12ZkUtny(iCwP!;Y11g(-s=vB-ON1m@&D>JO?0T zIDaWmhC2CTnfW&m=^sZrw|2Hj=txgmY>H5u8tC`fUotnokK%{7_|R=xOKWm>g#g= zK|SnO%v&YUajwwEyms&pkEj_NN4CNMzEV=8etI?s>KUH3Ah*C34%nPLC&a?4>{Z1V zTq%OwuWvxl5zd6RK;v|_f&>Ma9LLSsXBpV?xjplEIN~4l-vw*)HP8x;L%%@XNTn!7_0)b01m{n zQ273ZWP0@Ub^&WUl*9$S*$YEx=G~=Z6qEA~WQSQsP-$@qgZ>TKg_?4llXhHrTWnYI zN)N|5&w7Qp}X~m>xR!z$MV9@2@@s7jFy*7YW6V^M86Eo&Sf?8t?F+&ZQE>9=u}v8O*q78kF_W<$ zQmH=nP_)o|au&DD<%JxiBz)HJPGBD(ADrycW702W_z@PO6&%OkA^!H$n&}o(?*}=~ zSGpo{8eD{o$p#T3e3+~zon}6BvcEubE~ASl5*0}tL1#3h^D=~UpZ?~^aKo3Ie+Vt6 z)S#31D-~xZ(5B}-m4B`8-+Ij)w_`ePa8y}i;pg2)RM$C<6{GmP7&6scA$y>lP8lX; z0B>hI^S6a|ZpY1WMsq!^*}<1i`9-63()OE6P32Rd?~fbGs!qgZvE-Jc4C1QRPPo3n z%QQICg*hd9MjfJjc{Sz*Z*o<5PTq9>R3GNNsbdFL*IGhCI)cvfv9^DPnQ@fmO;Q@; z#k(R?9ny`7$t8h)om$q|xWX-^Z`SWjI`68|hVcqi+mgHTq{C^GAWjP` zCX@Td)ZXBu0IP1}f7SVt1C@*^PUI9c5$8Iu#cg^gHpO%%urZ&YyWA90gUQKU|18~5 zD)jgV{o~}A)7R)Dyi3m)dI#o>6%~(BC^bwRK1%a1ylu4g4bB<#Xp;WW1squtsgF2HjMEjHBukK%C`m+Ms`Aed5_j+t=7xzuCmAJD zN^j2f6ys)wJL)fm{T~3yM`MTC?c6 zxCdh~=p>`$C+>3GMF)d$f3jM(!s+x5(&&ZXbJT{Cvk22ZDX%>L6r+w|A#0{{@PGS; z&YEHahBHseLnY9pQ1@z_q?c%C{j-kupKbQ^V}D%>pPE6JmPL)hfd5uMy2-7(GQN4~ zH{xHM8>Ggx<*FUWy>_y{O6GL^tVdSSMV06xhWSRY&I61ic>Dg0nD&04+Np$Izb;j4 zEGMJTF=lvQnZSCn13g`#X-EP=-A_mTPlLA?Bm02^ia0vHj`%yro_7BA{#Mx2-wL8A zPr*=C$AE8}uar&)fZ_$-r9b1BnYZAaVfr5syIyNlQpB(*Llk%SjYiCupnuht4#IY> zI7qO;E-IDDg89bosR+mH``SzW1!9k(%yD)Ii0mzV;LC*cQ-M_d@xK7G4`T-dSWN$JZkrlbt^b!I#HTwY*1tk zZQ#irt*T#2m4%yc9@BQta%&P80iFy&)9LLnNfsv9Q6l1QLLD#f<1e|f#x&}GlzP>Q zKnGu{OP^AS(06o0{L#|YY-y+J(Z5CLmY<;XqW{VuxN|bL)b|V_9IbG=&l0( zd1yM^$L*){e+AphSiYpiIo%k1aDmgb;vs$L@ZSJ^n=0KP@jL9_be-AjFQwNqnC-@& zQY4>AmQ}!D4nYgfn(mM_KLyIJ)l|$5x2Ne84&d{5Y$nX&CxHpVSNDHe>>1QM)iF^g z1MmB}bq)X-=oZ6Cpet_}bOu@R{vnUci_EbaF!S*Kq$#5X3;Q6G2u zZg#nz-54Xit zbLjL~+n2)rRjG3-hW%UDPKh|$c=s(q(A}IX1AL@6`le(v_&;#GjRwS(zn(CPzRGPW zS%}Nxz@$~{wIe(D%)Q=(@ma4p1jjG{t5DTmcC?<1>bvh4)QIYZRm1Fs;EXWb8lDs81x8f9l&(%_0$z8X%Eg;#lJ&V>!D8 z{s7}S^ms`7OXswsx?>FY`0j^eqKrK}M12!_LNZ*G3ZUa$824*#9=`J&WDm7$J*lO< z161+fzc<)I2^+CmZMqxklJ$(CNtT$Z@a2O+sf<(uaJAnft?j5r|EffBHvXG%-y6AM zw9I?qX9^QzTQUZHe;oZ?=3C}~5cBogjIGju3@szFQ&ZfH2W#1j&7JougNJk%cEXBo zMD(cik)@V5YXqm$G+ZMZuQAFwB~w~5WMqqprQ5Lj>aEfN4|=ra@75Ni&}Q{I zI3>~Bw)A#%cX1eqea;Ax#6LmU9%HjRDDZ`a<^;B=f9uNP?nwKX0b|?W7c$DpV$lZ* zp>_vmBUo3Kp()tPLP1jKT=xU(pmXSvY6jrXm>Rh>x z_9_P638%+l8Nt3_-#KPxNDL5Ih|X0&rE63&f8~gajLt^a?}nM7y9(OjG?Kle1awvi zND5vsIK%l*LO&>YU8MK)4u^FlL=NH$t7F<|Fd6Bz-DaaK742Sd}?rd}5=ZCNh68bnFPqImv} zQgCrv8-R}bByA-dN9TO` zzRXJJ1=@z0yUt!u&S;5z3=GFf%yJZ>ya*x1H+0l)ocA&M@oF zd6K1(&%Gr;MRxa+%J*V5eHUf$o6vr!@Cx z=QcfnI+Li3FG~nkW#Oa@<9v%?T->#h`De=a#iK%{g{=UR3gs(;Zv-|ufYZ$5&HMt< zJ%oB>$wwVL$M!e%s~sz(jWF|!Pg*zx$Oo5k*Ze7!-=}*udvuA!A#m%IQpx=zVQa0dU}>UAd)jsUCT7=NO~>e8 zyQKwsS@hsF~ufeXj?8DnQS>ozDp_~(@PMPqeU3BWeJyUCfGv0Q z55M6p?(2$cS+EZ1Y-47(yuW|@Zz5eU7EXbXRfd5PcYV4lfhhnPvEIEJvgp zBh5V=80e99-T{apzMap5Qn^v{Z)2s@P`w_>17`lR<|nLMZL>)&pd<9PpAO{mSlR9s zUnPGwJjSb*@inGT^;B7sCurw0L}M!c`Brau7*6sQX`hj4l8f2|#NLT*1blv1M~TnK z0wX5aQ1_{&Lc`+LsU$yE`v(oW*-Rnk#E6BhO+(X4_D>lrw9|e*A5;f7uaplDU3ZqC$fH z8&@}}(UH(+A5jaTEa;Bot{Kcr?47G8w$ud>HqI0YCSK zFGYK@7da>AQTL7H|NStaWgro$0ZSkfDp6Yv1|5n>kBu?h_s3eO^4Jt)F{ncRp4DuW zf3NYl#7OJI5Xkl7-Bd;_9x6ro3a`s@fCUb)yxj>F!7wsjuQ1Y%wuSMPe3E_eC%g2( z>Z@W?jDT(xUR7%Hj(p^;6#0e(z7SZe;TnjTU8OOHdN;zJ*?H@U*sEf$E;-8MppZuP zb`RJ04G<+TwHV~MugVMTy3~aOJ!f^nZ0|#-kuHBZ2*87XDzX zZd3;O$98}qsmY|pE)Rcs!fHIP9GR@+OIoi?ms;sok5;r-*G$_oEQlcqI3BW zU9;f>yP_*9eQWn~E8+q4X_0W+(TY z{%;7AXK-(OD9>zqFyM754JRJ`5UtR5~A?$x{-Qz3Ij9e7=+lq}b2y5=8sws^%-$- z(78VG&-+0$n$UH{f5P47g_+8yc2`TvZ*1?{qFh${DnzeCsDOS`qIiW*tnX%Y_ zMV~Kb7Pu*hKHW-*gch@2Mt%Ktfr_u8AF}B%Ub>)95`O9Fh;MfLHe*Iy5sb;dN!?|* zz?ykEEjy^UnRZiK-E|GTtiEax#3P%CQG_uU9RvHkS|bb5f50&7)M@Lv4PW>-qYi^? z)tF=y!xwje3(zSySp8~rrHqGz7@L>}!!FAuXKlJAovlsmE4sM%HbsV1NCaN7PqG8w zVLKZfmZH{xvPMM>6(cwr>Nqd)pG!9Mg@Z`!sU3ACJNR7IIG&(Oy;FDL-YhZ(Yb4z? zC-ifnrsU=?v|Jqr@Zu+8h9fE!=er!!Y~w|U!pks8s}s{5&jE%FDk#SF7&TfbF|~f8 zxXg^k_%`v4u6K6T$b6_<&==Qn)Ixra(hifXoMsv5@QCplbzv(#_pgkFX2OqXz*xN= zDsV{*v9%6~@%$?T|0)1D{T>FkI768u82SBbv~t0LCcN-W`a6R?+NPad_+cRE>YtY) zYML8>XM_Y2UzE|G%h$izq4x`(m&8Vs_aXNO3Aeu0r_tCxw%>PeNwz60M!-*c-WrDm z1-3q~yQ-x+C~UZX+M&ohoI@S%=k+o@9q2p|BYrDvHV6%N-VlneTUChw@KQ4^P8HIm zvVf@J)gp~$!?`W3MnBpb0jw;NJmM9g5DU*#M2%uUsGE5J9#dtd(}1H>cSxXX-ftW= zYE};9gG1&B<7)HCKMti|F6p@{A59EW(zjyL2Z@H>lSfR1$Sm5x)QBTD=Tv4A0*80h zc7Qs$SOpBfbQN~;MA>e0qT@*@3-w(*J;2W!LF;W9^m-gF2XAjEw66)d7AI3sbqmiI z`cItS>Xt4@RfC+~RpKCmGKn|FXK^KXUiT+rvw|uRoB48N(&&3nMY8G|O@5u+y5AgffSl{$rQtWG0VsxzP*Tq`0l0-HQAQIDx~) z^VZwq+IIv+6ab8iS2Q&pKEchKPUkVTu*RVCY*fS_^Jjhnq)f=GKj;9PHE%(NxRO)q zpqt*~-mZKbcnSCR{-*Wx8)!zM3e?^SId!IpS89>m_U)&TSru6G4<;(=&9ZX z_0*)NmEZNBfl@Q9N*LbMEpw==s@$ zrxjf62s$CO{-DY)CF?T4)M~fx%a0zub@{kMW>zZ2t%AD#-&p})@3A+=RA$KhSIF&j zlF1D5fz}z9oU}-?W~=4v&Mx<|pNwx-w7M72<&B+YLHD1auW{onoqynU=iNIo1*&r} zn6NyBw$!9CNhh-nj;F!Bzu<7jW<7DC{BaM8L})1qee(y-vgt4!KH0T@3rbvvdj|@9 z`Gfc4lztYSQ^-o7_FMz>*@>1pG82y18p+H`ltHMZIxyh$H_Da{pYC21#n}%hsrwAU z^Isd^h|Rl(4NB|$7lBPCbhhzd8vzTqlSst+gHaZRrN(Qj-G_>j4QpC&BA~BvD=tP4 zW*{{D znV(nvAZg3ruLKP0-oZ=r1vDl4&Q?vJztu7yXif71sek6nAKg4W7NL_NXHeo{r25C# zi`a1He{tP#<>{FI-X6gp&HBOp6&_%J(d;A`s9wsKTSuX2ojAJ=Qm($s8w`rjYo5aJ z16?9oL*EyFjh(y6@U9=JS|3RwVnRwdcvQP)Z6Kr-j%(g-wA(9YYF9FFICoqVMO;G6> z7gq>z8r8fFsFESV(s?7!XwZw()c;!;4^bHC$HtBq(#p((W=FgM9rZ!j&rQi*3OmPo zNcGie1miNj^sDxxqZ+cN$Q{@C>QKmmB(nYtM#g^@pK9+JAx|lYq z^T>2#S}cOkx){3yu4_kuRewU+QMi)q?3NejtwpBn#N6${!Otu#g(TIHUr zSwGz&S6O?lov=;y-z_}}QOa;q_JEt8pi5FJ7M{Hy zB#FT}U{bF)eL-o?=? zZVn*7fs}SfAn%-ltrXGvFturKf1V`AG4$>K1s0lPXASyajP-ZzMPf#ZWT%}#T5y@= zY3h%<9Jbl41L7FlVWlyLh%VpfBbkoO;VAxBM%D=pfJO^S`jj#s$`vZ0hE%S2LF}JU zF`4`-^=)Z|}rpce@s)C{ zw+zP|99WfyL;f6=-tE6G#ZbAF*&EFRG$fn%ZED;6=fyS_iW+aXfP)N$)b3cWk@CXX z9rLe3fAY4U+5$CX)MrqCu@3FxLH~_^jJOku8&f?xx3k^xbdwJ+d&y#NAwPC-K3ux) za%EqZ1mB7tF9tc_je|kb>L>$$&_d314FhT=caAI~O9N`z)7eAv3iKt>Sx%iE_Ce3o zEITgyiUs4T{q67z3hMMR;ZX0U+ljTAJrCx~0OUGzxE-_9N@%+J+LqUbZ6?OQ8{nU= z3p6gtYyozZ-?8&Mc7^0G&BvbvWR|L*y>8I?pz9?3&2w2K<%2!hk6N*Be9)P6tM4(< zSWI7SoFn{Etpe`l4WbVi?3B&KZT0I(XtHZRLfDxNR!?u=uAsh#E?^r} zCu9eAe^+E|s_$h> zzrZ8odXWt(PrV}6=do(5wWxTEuw~IU?YSZ6vBnDMlVd6XK|J_(^2TPzHm-Vd<~=7^ zdMGxlr9Cm6-Y%SEa0#G)Tm_Et2eXXgQ3^Wi=~jf_+CTZ2uI8j;g&cjbI(WXj_plE- zR>%kGHZe?ZLHTpd3jwlgLBICP?%Bh?O*1migydZ1$O3Xt>y;!iwWV%Fpz9VJ%s5nW z20N?^(%xsWbC<+_40bC&+7qG5>0XRqaddy0Aatehotls$O|{`;k6dCO&%wBny~Lkv3?gSX;oNNy5MdA=jz;% z13GmsEW65^$9>++{V!|UIz0HK;+_|FiOT3>ui6kw>3lw#z;)*%$5=#lqi=H)@BJg7;0wWx&SXZiMeM6V#B-c60;8>=);qyJSf}W|`;Dubo&%tBeK?{|uIAYI94^tj;FN=M#E~GS6V^KYgO67k%O8jJ z{M~IkRyRKi(sREAH@Iop1Hm&;Y}x5bBx_Z`Pl@Lq#QQ?qD0f5`eu%xF-@cWAZc@=o zVswQ^1>L(2Bbch{qO0V;$I;WbXM~(wuS#qLj}u1!I}N4Ep%GyABy8qcQrvIC!KS<`21qE zb`_Tu#iVEPa;r3XpOV5!utNM=! zLIgE4=x=qITZ>X(^#}2~LT%NA|D%@IpNF^D`^{;)z&~Z$8&%13!nwk*Ieqxq`CwR> z=l;+@V;`jqGGW19-+l3_&mr8iaM;nBt-y`BF21~W)u0mS7zhAk!%Z?|Bk$HR2<54I zC22j?(_HOmv+J$eVA9Cu-Db9Mi_6<+=+Xt2?D$A21sJRjZnzELS%rX&MsHh-r5|n2 z3e(-?V8U~Zg?$A;Uw8$Fp9w+UX`z}sN-+=^=>&0NdTV4&DJ7fdha+V1J(VsA6WN5@ z;rKW%c1r5=+q(e25&xQuo`e-zQoj}3y)AuibFCR*Nd?dN_IQ1Z2`>e`^?4|C=DJ1< zM?Nwjg;kJktvuD{N=p@IDUWz0c%M9I96-py{$Oigd!|SEh514!1K@V^NbOYiC>15& z$lK&Ao*ibFAEAv-%PWR7aNae8p2gRi>Lnwb!q^?Shfax}?%eJUNyaJB(>j>Ytm7vt zo4`Xlv>mm87nDoDQ%q6w=3)i3>&?v%e2Eef6^Q3K*)yr3L2t#{jxp3vct@BxnokFP z8S*PKLQ(^dQjM}}O(rDMt~b99ih0_k+?~}-SH(jZ3Sl>^owqX7!WfCrGWb>}3b+Sm zR8QI0rQZVviuQDJqUGnQWRMw}^;)ndZ>`lpk4yXQ(n=FEB#Fif?prZ?=sliEpkJ&_7{wh5hSVg`vvE z_swy=sCW`|rKXIShhZVnhS-OaAgb;eR9}Tn1ES*c8G0getL@syH=G1Yj111X^#L7~ zXy8}@A2_EmDlyT;+wMC2zP#6UWBUc7@3-6A%JL<3?Ih|a=yBq|BM!<;W|+D^Z0PK| z<73)4iBwwN#;~Hjol}KPHhvJ5!xprR$~ptZ&c6^)_MFavq%54A3j95Bo4^U#zq8Fy zCL&gHQNLNn+em)SHgo+4eznq<&}7>bU=d}bX|wA)EO+@@E#u#QKfQQSnM%hE&xMol zWudpa=2F|vE)8&&0U$mI4KTEjZh5v}CC{~?L6djWd^9aQWsZ*nIgn33^K-VV7;c9Q&3$B2(FB3zlMg>Efy zo#ws2TcLuhRBdk+OWyltWyL7^@!?hci-?jk=Tv>&+T3=Kk0C*R=*3UNGPt&~{{~!?vqH z={uI9U&$uIr>>p0Pe4>3vHG77gKxTCE&{S;FRh@P&G@@m-oZs|=s}wW+{8=VnSNf^ zsx$`uZlSd3@2zaItnpaCWMF(w$->NOAq79Ryat|nb=A8GiQTYn113u(t7!FmU)ck} z>l&HSwTG&rU9Pi^m4tTdeI)UP*CTG_&dalw|<) zIn+&vCVQtQfagfsvG9|X+@Jrn?N1PLX1D40gYt;i!0nhg963tR;iiZKgBYM&V2~ySAJ|rEzyMTfO(GL~?@VQv&WbF| zp}+Q>6q~?b#4udgugo7MfDS3P6yPu7Dw1y`sc%%>o?j>ci69Ic(%|X zMIv~hKC~hWW8%>H`-dz7RAP~nvk~85XzbGvH}UDqD+%tNviO+7782&&AU#2s0S8n! zG(pQ zrudp9(h-VB#&R|B_9f@Bd=|fXPE98dqC82j{pxOrax|San z2|fa}znT_HpHPM(xn>UNAM(o;hu&rPRS?f{gl?((GWqr{^G^1P3O6|^oymO zP8-ne?gGeVj+l%HZzE-;47nTpO~EO=*7EN+NC-+ziYbG8Mey+_#(7t`LYSY4^m`rE z%7IXP2_(jW;?R$6-Cm69QCSuD#@(>PM~LA53L+i1N6^PqakkR@qM_qn!E~N%IRVVq zvvO{(hg!J`HcY>Wv|a{m=DZ=atBB2@pPSeyI}{Z_`1)tqu&moj^C!=GRvh}FOE-S` zJO2V910{II?_kg^4HNiI&;l2FF(YQEbJpAiDZIz@-)n9)T5k#D8?qvhRr4c?H2AlP z;`trd_e2%_+yU)6-m_Tsc4$+Btt2{%bDG*J%M4!N7xCI~!+*~hDt0kcM zJ0znxe1+R`C@10%dhdY!+y>o3skB(u`JIpH$ptHhKbJ**<0v14QO?NeDP=Yiy#&TI zCL(~a)xlwu&pNEO&>vRT1|TW%;roY(l-bdIZKkj}e0uZU<7-aW(rOLVdouwY=*p0C zj^=5dpj3a}>7+pS-aL6%}RzjD5+BDmPRjWS$1OhXuX8Er^58%Zwh6i&@wzv!#`&YpJl}?kihBtWy|t z9n(2byTbb!0?joDN&5F}!-Ao#^_=R{)dVPFYsS%ZS8ZiO#Vr2Z*Pv>(FcR)4J5WEi z!sgV61f9Y5TjD%0(6a|DF;7GW3T;|WdC5T_=?|`XR3-FmeVrw85{^x>o9!$;p8xF; z{P%xOz(G@W{Wg69o;PkD$rt+F{>Rw&v>&WKfZ#RPWlNI`=qo-h+uDH-j}jT%8Ounc z`L{v{h*EW&3e;#7E*T$ujB0S2P`ltHT`Q9o^xv(vsJ;L(_WUhcVa{;6rjG5u^1Cmn zv^aE{8h9ai@K>%4##x~Axz3Y4Cn@EuWRvF$KV0K*Unqyf2jSa}EKp#~e@Nt$|9qm! z&2nko8?cfI?^x3N0#p$Ee3vD6JN%1A27=26qV} zdSCEDjJ@UrY->ErUX8D=rf#t1ezXnA(ot@RmMPBZ^<*AGc=p`)QNjSjUbSzM)`&di zgr|Dr$^0(Vw=cYrH@3$xM)*(Gi9VnUtu{->;VB(BX)gS6vk3b(=MSgo^)B?@Zkkfq zfEza-2cGF^&4>;2x8Vimgm|z3USJCKLFAO?MQ6Q^c5=l?k(4MIuG1s^~Dvg=w zA!}C77QG3&J2{c&|ConxJt3SLIoDHbL{d(bZLLvf4WFUp7#`8#>Zcp(%1U@9(Ybz_Ri ztjj3!krrUQInCt0YkaABug zGs=qMTl2^3fpM|e)>|Ti{u@iW8BbMO%jUa%QtlnB%&qn`VZ{cST`{js$y6Djp{||q zt-~f-(J8AL5?s%82mt25zW`06gJepET~CPL)=`!@;YJ9@-2}DES_O&ZG@##OAr02s ziLliytS|RSlHp1#mSSCPJ5LK;eP&ytWbLUWfEGDbjw*vXQ#?fHOOO* zRnR91YM%MrGpoV7R=GFxBfX?+pm6RqaxLFC^G0g5$RjZ5!P>r!jk~0*?N5Sd+-noy zq|(NS*f=s-*3>f@od*>tS_QB@{aY6?zK7 z(}m9;O-PkNhM-rc(I>;CZo;!Svy*hU7~k6&vr$c#Q1@U-Qx`LthZ65W5} zKWk@kpdefVZ70yHoqkc(b6-p7kh)^#FTzR+icmkI7figM0%?6gJ~-uKiLt)IiDPGr zVXs{iCCWl)pAf28eMRkHy;5n~KD2FTMC5AfH%jjSgPr};05}jXE1q#9!7{CUHcP&D zYWRpqW^{X*e6>w{VNlda1bRem+!?3tVR5w5doK6Mn$c`O3@xPDATt%Kp~M|s?A;l> z&irC^P=o^=++g7pYe*+I@Gl{?8=7Q%m`{C(gR=JCWJjB zwea6OK)=Tf_k0vr3>W<^(DNJpQ__EYYBM{yQdzO7$@^2jZ9Sx0rPofIGOzK-L5sgE{oJa_CR^ z?}v>$4Mjk<6G<14DWo+zZ>AwRg*SUW8Bh);qYg#&eTdgFDb(Y*N*{FCxFJ*{lJ9PL z(sZ@hX+myI*}}Iiys~LTyFc65+aDARE!asw2Nx6?AOjwL-4Y{ z(gGr`MhN4a-%xubYXTp_8sY+Q?sy;S;PH2^JOUPSzsTJI8NJcFS?%Xse$Vgo6M|gO zpUkQ#!lz40@;wFK@`f1{alyV>KKF`Rg`Nc${h}nBFRq@<$+>_3Iie?JfPYnEVFa>U z{#nstOHMbc-oeQ;qrC@?rxoKJ4TWpphw{K2|A)c+D=yE%fY$VVAWZqFxRPaHKU?)i zgN@57?5udYw6N(T%K(F@^K1qH@nO#4doE3i(J=Vk{&OTv;Tpei8EPn3 zP-aS13P~Syc9Xi71}a+h(g*xlh>!6h1K&QYKa69M2&a58Qq$Q)o zwqV?k9Rm zRq~CQ$;R5$3r#bDZXNJG#q{Hm_`1SIT&#Nhk1Lj_#Obqybk_(&GOTgAj?UKAEbA-jy`yH0MwpyZG%l(_URO#g!_B1AKE>jW4|F*A2aw zG>;KqGRshvpNe@ORK4h}521t+g-ZZ%{?}hu^FL5;I>!nch_7~Xj~^yjN(&Yj+rJWX zn1Rl2sxD(MyjBi(Sdt3(#)0LKv^bo&IN9)Q_>maI@+z{uHkTro+;(0t~~I z;cI*{**}N8gjUc|pGcv+YJYpS7BivH)9snB@KG1H3AbZK$JP2$8fGFj0VVOqSHj&i z2lXOM7;>ook-)Qg+vd{MzfCTI9+vOc*{1^i#PfKJ1M0urOKJ$9LBCE-&7=19rNz{j zPZ6F~5+?>~411sOcuAog)^>lChS3;loOTleWsHCD!v52`P{|qxAxQi7xkD`yb z$VY9A6JlfZyP|BL;p{BbN9uuUrIrh>6dqk5+_I)?A@sF9d86ZT)S2`C+S#2W6)KHAkbx5#Jk*f&vOH| z`r_dt-Lk4s!zA^fHOye7F|!bX5DWtHMG7ci89_8RC!tD^ZN5!^o77C!`V&%v%BR{? zFghzk0{Y&mP{%s2rY0@eR`lWkw}jgU=>pk}Pdu`G{R8J4r}|Ck;V^iOPZp*sH>n0g zrh%V5Fkj_7U&NDuuU}hsVq`&3pF&R`m^a}BMPi4HIpVzNELJg`+ef*bpOVU^Gb z2iLQ-kKk`6YX@?dWESU;3mSNgw5^=55u1ZW3j|gPb9>;Je5s8TljQYtgh4reYZIAwiH8A zUVBwVY>{+IjBm~zY=qu4_*o!#k&wqFPGYvsN^rOb9=^VeZ{gPiiw;m`g$fh>nPmOc zG^2Y~A36!Y>eUw0Ufi-ljk!@$1psnDjlbRCubOzyiz-vdJhr+vC^Q>I$~_4GAZ~n&xjK14dB6A8E*($MvK_0)&A~Dog0gyd|I>rbAL!@ ziko8F3iK6UL+jb9}4rfm*aOf`hv%%JzxiT<-nkH1S4Jg&9p&Ro4Ho(wK!Jw42jy6IF`F5DqvKmR|c zMhmBTVet=Os1|Mk-5fQTjwk%+S2SOvg;VowCIzvm{Qf>u*ghn+!`p%mqLzw(3SfIB zHk2ZNvLpu7nvhF54*c!##y@|7oZI$8Ej;Wj61r*=A`V5~({fFnUk8Fwg}|)`@moZz zj0&b-9_CGqMC!9+u?FqXeLiZ4zk&`aviw+L8&!QSl$xf^AD8`kj;%TJaWr#DxDA!A zn)4Y!79fwb$2as&ff7IQnTwbNjO5%z$}_TDAKhK^IIG9}u1XP|B}~(kPXvRm zF%L&={KeiBVb^P=>mVP&-ZDnzWi6dzJ?*=}QWihN!SF?Wv5}gdIRlEGu2u*;D+n-- zFJ5{*>s~sLBc|d17MYb4V)CZsGV>bQeh5J|1bWX^7ITxiy^-iZ1s>(l>30W{PM`Ji zm-|_CbNB-$hYCSnu&=*Iz9VWFjEEL$V~%$YxK`Err{J1ZuJ@v=*)T@)=_Yi_Z>-qw z*&?-`cU}fMzdG4On_+2*1Tiq(aKUi=JEgv)s*KX(*7B%`-O;(bJ$pGG?S*7I+VXN# z-+TC9js$?xMoN`(a(_IX&{FSjuR+RD@3&iL3VQR}D&`Ti+NJ+MWv5ELmTf3)&FnCJ z3anUl^}qO@*AFo%M~CumPbC=9*>axqh>C#dCUQl!Lz)i_oFkYwWl;@(!=vfK*A~2C z2tW#}Z`Yd4 zpeIb$_KP{8JAL`r{l&7Yh&zWK{8O}L{)4BKL+;C3`yV& zAm_zZ`|UqwM+CB@j>#-Jgb2 zUsM@~eZj-QQ3iczi*H+4RuzJ`CaKcUBX%P2D-3BA`DlatIXj!>^x%lP00Vwwv;hYS&$TUDhiy5NU?->5t<^_GAya!;_qURR7 zseLg(r=G8kEFt{NEKafRG%V;Z7kbq9ui*mC+L|Tr&sZ|!y z?fdT-^p{JOf>PR{h?$d+Wc!vZkN!F@@Q+S}&bLL>SwD`csS($g-G}PE7x3GQcdBKH zu4mxyYjdMl>garifrF`j={MDsu#*VOe`Yp8Uz5<7RY0%Dg}19~iKI-w%E;&(&lWgi zvWCZ#dn&q|(L(E90 z*xe9KJXF3$Oc^ACZtxetp<{}Vv4s@U$&dJH?>r8q`T2EZWRYS$a16G(tmR;Pmvkxe z-5)^H3!^*jOGE=b1eaE}N+)l}D9wD&3MGP5wN)0S_uyx2&kbl4H=tXSMpM!Tl`L9G zzeL6QE=l96bD*S9zi+Q2dZFIgHK%ni=vmfaCJjo(&zaRa3aM~V1M%ihH{$z0$atw! zz{#UHV=2*_;mBKvx4FyKz`qTEj#sy|);;)*I=G=BQ`XIp6yearBdOgeT)(Jwkm}_0 zu*?n_Jm6(X?(4<}DNG-K$Ke8~+ASKZJKR*_;{)q$kYPwr4W#kPVFMi%>1Zp$} zJu*U#q>o@!xEhZ!=_*JL!oINW|GhWeVR*_M1^wgd@$|$s?~(ZNX>xdB_r=^_K#z8d z{A5{jl1o}hs3+u{@GoLQF&jyCf%wx3MloFoSs7WXCu(%n;YT0-l$*HdOVyB_u z6Y{=nIzVJ)%w>MpArkby7UN&Ae#^RS*b~BTdgz{FDgt^uGSJ7=eKG%U5#N@jYUW_F zmF$1O4OnBd*yQ*f0`2&Akq~nEDQ0X`7(=Juk{#(6c zoCIk>HP>~$rSf%hZHbFuz_>hIl4bL2`a8?@#1c{geH1V;Jw>L?3sc*R{$xZRXmGFMu)kc#l_Q=- zNF(WULrqG6g=55uEqFrPpf%9kLAXgFpa<6 zK})f=9|qwtdLPbGRXm=8e?cG2YbO~YY6r9%|MH}hEUFVt>>o6*GM2&zhy2O>&`;dvKvKiv zbb2KZ`u@0Hjpm9P8MePjA4U;}=3N~3Yctt?_+*^BUbLZVB4!5PaK>uCe4Gg7g5TP8 zh#lbVd-n5#ZJ+=5arsJepD_RJJmod%dPJge-Siu@UkvCEh_~AWoz}>z6*+A{8X8G= zWN34 ^ubyKpjs;6vt<8+K@m@?aCTiGRUUltNi6FzZw|Fgy(NiOpXYgPTrq@c1pw z1(!AAaS*F$-&_v#uexPM%H&IF(VR|f0J@2R^smfR0-@FNdAYG56y;GmwhQ~Lv@6LuDhlm95`H$iuX!Xw16jALp$DqpBZkw^YB(PNf6)3l8j1)eG94I7rZQ@8mceaT8z&Do8`H8F4)^KV-+akg zoW59c`y41%+%uOAQ*`zm-f9fMW1#(0CY>iQjca3}l|ijiyBhyRS2}GJBhvrtW3B`A zNkZpXeZ*`jPj1zm?PYQN=D@GLvmBgu#g}%IObFABkso2>ddd2<|#8Ei#VEWwL(AYa!A_w{45)z#bF`1WQVv4qf zf`J6PKWFjB1wCa72QJX9q~Y{zzho0zXz;1|5nx3(!W&naihLOuR?Ewh$=gJ0aG@wTx1g zV)}oTJP0#+u;WSQ`MOvM&G`~P=^+k$@13wU${hVJ$n>yqg`+xi1HSBz(nWX_K)+jn z+6+3|I5t^t)jmLxwG2n|)6F#hkg}puky5Y~7o%~&DX<0!H8oQZ*XCY&meJzuoQohE z9>^0|Z~JBJ!*G9_f8pL+F0Y%)aGkG}ss*gXp!1l6zVP~g!Nbf_KT#H2bT+3fWNL}B zp6Wt4XbE1h&a*X~ybSVi`5Y~A{ru5}rsH=pID8Fk{Y>%p%}Ks$WH5@>=7N*|GR^B% zv$WNZq(3T;*a*7yO3=jAk-dr&_gP6%p!dIYhTvgk*~!aL(*EVXrhX0uuq>|{OoLwo zvr>UnYmZo(P{4bKqT@`Zf;2-Jug{lJKh@6|M&i0F{{rlHXqtjk~v>XNfcq*{?$vCK+0-iWV&91l{HF~QpeZ>YsbmZWfiUGhy!0X z38-eB>{9sx;KANTo>Z-Wod$!R{S&G<>URr9r|G!AN@vAgqP6}=GLGke$mGE7oX)Uo zQ}j_3djHVxp7)X+4!_2JH3>ilSg}pPnml-+`*l|mk)0#TT#xZNTMi{lYYlw42mQ(P zuQ0Y+nTnk~B?=%jaE0S54V*(HJq(|tM}AVtovG+i*{;tx8(1WICC8sDRLZyl{C}!7 zRq*^>F)#Xsj&^`RkynNnE-LV3tEU+S~DzC z!hd?@!Jq?df8xyDy$}jdT9(}fXazA~!&&3dJc0m+YcZCV76a3l&O&vLo%V^49$pSZ z0+ohtKvb(rX>?)61NttlO6(E^^Z7SvMblj9_hV7DvAI6b{Xkl&H9p9SVVESmG`@yh z(cD-|P`zBi+icXA5W+1#1@Q~|S|?P6VunYA2f+?1u89F_G7U_mbl<114#d5={<+tv z87+SUCN5Mny7x&Q>_Kn#;(qghP&lLfOrYt>RMziTXO-3Nms5(N zSI#&ysCG}RkUfD!0-nZ@T>sJcDecH~Fd-%C#qiaZzH4ZK6 zzjo)fhPbqGsL8*_szJmAcwi6+{#F6K+4G7SgnTv63SJE3AKX_G3)q}=D^N@}nrW+t ztVQDtrkrGpC&R)eM@yQB>X8rr1kmfXcSFn2$atc7n8T|mrgN?;3lxe>D5SHLKBw40 z4-ZS|ad0C^&NqWe9vH?x7e3ClLS5CHEDrVGwo%Ww2%ry{v*dZm_x@SP<}DmIUb6%U zC(%X^w{2(Z*X|Z(DLe5_yus1y9+L%Oi;>cm9f0nMnr7^FxZ;>pfu*9CoNcC5*{1pxlbU>GY6^W;%UXuM)|zbRg5q6U2HL2SSj2_-skC0gW~>B79;3;r-w7#B258WJz_&@B`_LF(SdU6&&>BoUph^M^0Bv^bdC*gPCg8{vYs>dFP@%@G{uW% zz=}650mJN(ZOYKj?#)NIhrcSq(iF=({^Z2wy2w^9K=$+uwO}r{QBK%G9gnx0?O5M< z+eQ1MVsF+otwIcRF`XZhv7ymJ_JHk!{2{41y=y>K#Y)ywsi;6OFOI1N!X=#;rf-A` z`dzitB)*kxVJ8q>e10-#^Q~O+TQ!x5iT86&`GCi@@oZh&4wL;XsRPIdNA){k9cX!F zrQMf%zDAW4XShkfL~!mH;x8gRhr>l^*aw=Qo#;Y`t7YBeoffr%0Ue4YK`Rnwp68hd zKYkBZ#Nwy)W>D0851Lh#sq6ji6dvWJqmW@RmWjLo zySi?rE^37jv#{d-+b^ChRB{L4G`J?~k@z@frDN%^P&MYGmozHC|2gDsFdRq1;R<@l zL3njBqTc-H~KvV@R1%&=$hoqgYr_)ScghQ2j9Ybs%3$9e=qF^whF~&uv3L@EUeHKWf(C z`Q#lkiv|SPRTd$UBPCHEmmzw{JupgCCY&>oy7RyKQZe&%GHsy^=bd2 z-1~F7x)5ASKuQi(6yTuI$G3!^gcs1Bnp8C9rSde!IGiwAvj4$v|GG^Jx|}~P&+ki< zR|*}vj-6e=B~ujA=iNN3Ng=prnv+B<7@hip)NeYcumKN&y4vZV57Z3+2}NrD*=zkN z_FAfQDvrAW)#K2gF5}eRnM`t`U@_2Nu5d=8Q+7#FQ5U0}3{%ddeI-kph6)ZkW3VgaWf}NyYwlBiT>iv(sN}7HKEr33cDHP$-0c1adRer|pEj%}61nFTfXFm2f#26C zg~z0CjN*)@g+cV@o_i}LHen(bOddZP%3<=cQU$)TUy_*hZz(-&!CT95hWb+3Q|d?|p4Tw=W!J|*UC(?!osU~4S%)EfjnJS=)zj@?$L)K~xH zHWy>`tKU6#{o-J1xV&MSPIGw*^2?P>WcxZP0lo+zB;+nm6h%0z)h zD=vI1r?l7F;`QcILT(4Q4Rnq`bYSa?jgwgI+>IfUL(?;sqC{?A@Z!( z0+Vm=vYE;h)VUC}d&Hav@ZkB0{>d7L*?xV7z0ZU97p=l-|G?^-lW8$(q$|`I=+rqN zuQ>M#sVms|c)Gz$or{Z}{e6(SC*4O1D$}oUB}iX%(jsH`^7Eb0>3N#u-2`}Z4+? zz4foA15AD%4!T+UwkB~zEHHSrsaY}_KvM1c?3_70R#OHv4#gC(rv_bjNSEdwsync2 zVrvPyadyh6JEzvfrJ)3brf4J0{_>cbc<8p&>?xF0%KcUIrW4-~to8&>NIEjQfr8u1 zSO~z?Hus-`_0Y;k<1+-0-0PLrH{8 zOft$idt12WpC$gpPDx%>)1~1J+eS?V;3v(RdpEcs#DPhdHA9 zVl5-1vCPsqV&~5}=uc+T-csX;IU|h1`gl_Iu54ae+-^m>zRJV)4*4Zsf)Jt!+@Z>FXL3A7j!XQJkuAFQkwJ# znI4Yd`$Wm}9#|q=@SjwS-rGbtBtoz7Sd1TG6gEZbxQ#!n~4=~K1pdqeFU|w_N8>Asbm*YVH7=O=rzOd!es1xYawoIpH-0m(Od_hSy`%7KydF}i**e+;6eDo z!O0CaZ7ALu4I!X0NrBG24dN1;4%RZn!%Bvy;*20b*h9Lu)})?d9epn*P#NyH2}R2b zrhq=v)5{-;r=MiX1|E#T;l|dCNw&Ej@+xX=2i_J#(}X9CjPz8$@;CB>KA49knKcKw zIR8^#YM708VHF6s;LPWj(ipd^Y%EXEPwf)RMnYX{(Q8>gzE~KIFu(@#ne{f~6p@$qKLQtDJs6FB&BWImm~ z|6A=opYefLV{MOXY82x=Dx7KJK zbhdFTeqDr3HsZ+JkM`7q-+>Mg4n(}F8pmJJ@CY!l*Wh`!a4~VOM7(_R?L0hITq7KS zlsDn+9wXJ84P`L~iaKWW($oMNALZ}1BkW69qXXNZf7LK^vcKT+@q)y7ydyd3`_gUJ zvx^|xPZhib!tQL?T-JhEYA-%n1NWa@iY4Y(-T?_t*Y&~rz|1DG-Y4r3y_D;Bvz0lv`cA~LHazd zntlZHJLha&&f+xa^Odb5{;_DUdj-*xti7cp;Lz;^s*7z;zs9w=&GGhBlT|0Owc zK@@qm20V4;|?BxUmHF zP>5Bv%A(Cieb1M)MOX01<^D-v&e_A34I(5G0qp&8Ht1>K=w|AmuJ4r@9&lCLNgnfU zjF|gzJ7F1q6W&io*1!>sVL3-D{OFSN<{sYzhAy@_)^ z0iBOkoHn<60pgwE1}N-g^n5hv=J3GP{*l)zOyIIyy`Zu8HX+QWg{fh8qLV;5TC>82 z0_dSb1tVsJh#FJ7cFolVp~yjV8N%gC#XNVLIr03gLH4(qYFHb@D*Q#R&?f4Uc#LM- zzz?6jqb#JvYWpKh?7fPW5EDcqUT(ZE<7#{njh~$apz}aD9C+2K7T?YjbktJPWaH@n zqIAjqNL7lu%Ssv+|FRR^=1J;uY0on(_i)bd1%nP0^GH5DR~S&$Yg1rO82Koxyv5j& zQtpP1b4Y)Pbc3!x{=-qfkg=NRb`nIJ%CDjZu4bp1{Zj1)^f7+_Z6T`G4&X~&!xAxb z@5Ns3VSiIA1J)pjzrJUkM^!P+klIlT*6BaK7zPt4(Z#hluV@{Eo_`#YtLQv)Ma^2=o4asu+6tG%-DXezKttfPtIKZG3k z?MUdn&-~;WI^oQYZ=a!_IcpOj4KS<`3BU5!f~R4!IMK8uui1+39VbgoLKX*5lXRMO z!UL!gECh=;5X*CXn=R4c291J3<*Hvhut2}ZEnO2$y@R(=dbe*njbtnPetTTkN_P=9 zWf@uFQ!Wwt{)n0*Tp0gm!Y@>f*gGVg_jMmz zN~yUsaRpcbii;&(+oM>Fe|Ki=dA%B`;8q`XpYsxo5V&_3f+8_9%ueNj*8G9O0IuGv+70NoiVc@_-x(&HJy3Mzch_J?va zM`Mgc2wgmk!A-lM>lW+G<>Jc02f>$kY$uJnA*_VHN3T=m@kcwpQDKm6T|(GRK|C^S zo(ZM#mikJ~Sq}qTo3S>;B2-?|h`LXU8GAyz7Ceh^HWdm-b>9uCH_JdiI6}`uOKJ-I zB)XrCcy*63ovCgh2G%4+0zYlAn;!Xx4g6{`Q2w`E;Lg#vnR%hn6+rvbwYsIr{WF=% zIuV=}pWC_JPA|lL0z6sK@244gJ)%{&XRm%x!#@Z(pMArE z;>G=%u_*!}7`Wy;Jb7tp&i6r}$JE=q{J=pZkv*|#u4;lsPy%47iZ!gOcEEP$9teu4(}CQ#*me=^>5eCOP_~h3jp~j z?E16u!@oDjI*yG0oH~6Q!sENQ9!Ycq=MjDc=*D2FGiYb4hB>KWH|Y-kwkUXSy}Ca_ zFcp6r_275VkUn30H4=LI{NuF&Q&Ro)M>Dt&V4eXM4d6ZeMPs zxUJer=Py8=FJ&!I4=F^tGg)L^CK@~}=P`*j2-5#SX~5K)8T3tCC1XsBQxh84U-=DS zW*o}xie#DLL`%rxvGJceI_4YSLz23a?6*hJ-E<

k4KcbPU_H_B7~=Yqy`5 z%C`?$hKje6AxVU6zvQ?D%bsumIs;+?MZ7NPkl(RX+riVDE;{ZUyq|S803=miMLua@ zGGH5O5ksyDJvvK5qX0Nf8QDn+n-aip!QPy*Z~f zz?^30a6pP@bA!{ii}Lo{5SQYzktZgyVo8w=!p|Adsq8gm6Blcf=viKEMO=K}(7EqJ zA7Z@(wKbMxmSKq>^z|=4FuRbs{0{33U(23ML)`$^55$(~ahF&*M}T$ipg8!(Q2>5C zIN33hbvsXw0d%=Sabw4$)R4=da6wv|h~+e;gld(gJrC*NAkVrMn_HdtkgnhuzJaIE zj)ZHK7k(-Ozy!MvK(f!u1xm7SKt)TK?mj(eM~2wtuJRkzR>*@M8Q*A5x(97;n~t}6 zZn1^Xp?d6JnzJoWByeJ7e{JG2t+#6Rg7Y`jP{)8P)>5MW$P_@>{9Q{Y@q}E5B3#oh z{GN#LQ{^<};X8eTRi2mV68nFk&cVSJ!yxE}?B`XX1ni7Z@kwl6ov~^H(+4Ayj8^gs-THrvrZHKB${JwwE~k%TF>P* z=Oni4c$d;sb%mQFHn=JWt-#&95@qE(=+!9>DnOAn><`+X_B|G+t|Hp1y-5+e+{=~t zU$Ps`FoNNu9R%t9uH0PUDW1nf3=z)2f#y#Ph1i+gT6&82r!A;?y|U_a1!8a=XjHp0 zgiIvRd707XndHO3A`sQO%>sLsNzTW8qq*Py8~PTU(wx^8VaZ3Jj-|4})+0UH<{pOO)iQG1HqA`pFkabY2u>sU`~Uw0R;ws$dG)v>BKdQ%I~$@@X|R%SpNMkh;A z)l2&zn*)ANyYD|M7HfUuOdFbA)k!e^fFxbhNp(hFPO5rv=K`Rn2jJk3BLkYIBg{MN z7*M`*Az`6R=3--zaw(VMfo}O!M38BT<8xG5;@bpd!LFQA$6*7k(`KHO!AoFYdCC?>+0@RScO&=T#i^4x}0d z`Dae*)S{NMO6<}CE2{m8pL{Fp+fHdlV3lP){L@!0*ZXjX00f+Q<@xGyD`}vc@m7fv z!$!kyP^Fknn4B9c<@Q?UY~zS+g-dqf1a#A=Iy;_0LV5=bQj>A))96wi*y3>%7*^Mo z)y9vVrA9X7-C~_WGNR%OKIuMt1n2f*1aly!Bv)}iyz`iT2e4+zds)&XSK{F?0rPY|3 z%ri%FWsljv81~%;&a{eh+%<;&sIOu#5WBUw=sK zKRSeD3m9Mt5|aQ58C@;kwbg74FL={kYj%vIh$NU@?2q#jsTvS$W zCL_BVq6}`-50(N*4O|X*f>8?dkDbH#q!Ryi{5e5I6C6tZ`vHrD0Ti@dis;a4pe1tm zSDa2y*1+RXY(&}b7+Yyvmejt2E^beuvj%JaA-9Z-Kf!ypA3%ajB2rL}sKc-l9FLle zTDW_6z#q85n(%>-;pb{OZYWgav-cL>ckLhUFrQ#B<<;m`6?ljN zeOaSYTThxplD918PY1D9u{D%KSZ6iIuG73k-+=gvxEl|197Rp7ROb4wiS*0Fv|RDIVT|6eO( zxDJV~#v;U9OEQsxY`e&yHv+oS75ACcOeBg4$w4UZDfP{sD@c3p0%C_j6~uZw_czGQ zHU_`yzm4fibjT@TG)$kzjj&Xz5Z0c1t8Iy6^ynFQ z?fYnNgVhAc*k_ytd8CBJgQXi~^LhE?iLXz(SwQFdq*?_+e`|qNQKX-`b~z9Web;}g zkcu?E^Nr2lZWG8LF5Y&K9bk=0-|*T+XoDJU0iaV4aCxEdONB>R)kL5F^v z!^zcy;zW)_tg;b_=6r_+HxB$1mhZlol}Q? z=LQz6yL;{WR(;zA+cWQG2qbu!3K&9I&v_2`(vSGCgx6LW za`11?q2^?e$9uq>zeI^q_6M)C(2oLDYm!RxF zGhzH^;&jkc_w!`oEz3~kW9|1BB_jmPn2@agPzmIYO#EliU-0sf-O2%Cqj4*wmt;2cik83Sn zXYRxp^%nN(HRm^WP#}ZIVQ_sa+-iU-J=R>y*jYH_Byi`-s(|#?)Cz7Q9K=j#_qI7} z8_*N2{QMyQyc@CGW8Kj$PTMzRP^C8d^!TA&2{tNiVY8^k+edcdHv0_RK8(QV+q8wE z0i0NVBAau*>|EJGdi;29IwIFT!C4Wxn9#oD4bTvSpf9|nvC;8+XXSsTWBYrepsV>L zc@4{4#3c)z=+Z<5Ciy~9b4>Jzpt;~0!CmIK3J(I?LyKb#l8!A@kwe3+|0p!J6a3j3 z7s3{ti^)u5HbGy8{P{we*w{;|vL=d$yfP@wE*fczJ!QMxZi0Fq@~`ZyU_nn2{9$W%5SDiA&ayvmBD zwmZ^W2{BTY^;4(z42C07UFkUV5Y^oq6eggHa6)2z3O~O6M36XILFe}h#0&iD`qde^ z2tN&g{fDb2m43tEKk4xffM-FhsX?JfR{=90n8Y8mwy)M-w@!%b+gT}2Ye;*bo?-m@ zi~?JCK;KD}zpod~Wmqm-H~wS&GFp%}c{aVrlp^MsFumG2x2nX%KUvw~ZYJL`;R>pB=Em z36m{tLQSH8^{T&cyhbsq#*Un3(2z8Yu@R#;TGK5)0;7PW7{BX&b9P*qN49Dp57+}C z%QL)pV-8on&F$YYBhY0>k!qocY-BPqBV`K>r8U9#&UUFs*|v$^F_*Z$js$l~v?0Ua zaYfZ`Da|%z_};^-ff(Y(p$r@>{#Fu6)y%}|WNZmprWZe+x}3`93~F-F5&GDM8)fmI zOfDY!uc`&5{y)79DJwJ0+o&R+hZ`#jYw(6%Tn0@%G)Fw?WxT$AJJAM8&a{>JrnS01 z_Wj|ZmM^jc>ilu4eI2jC^o6g5n?auz1L-BK`S~pr4)c48uf^6PXjfv?%rX2T)pd&F z+p;!BGFx#A8}fb9;b;?Yw@sF!fS2V@&eXj%()4g~pWGR$=DYG;X36ifGG^I76_rD( zK(EL942tKYFG^UvDYPN`2{D?NMsfOfg(JJttMC7kWVi`xe?CN1NyfzB;*u7{Mb-nW z49KPxxi*Ea**Uqbvwxft%F7$meZ{4C-6?+aS#N;;aq;q>WZ5~bo!!l0TkX5V;FolO z&-gO}_SD%r^$rzRB90W=CUp1~aRm`n*CoAKLJURvBLWsDX{|0 z9NNGQ)jHre_H-(qN~c9D5$|rFCozLNsy+$fGgnm?TT6*4GcDhi-?bhFan4G_b zX1Gkvzd{`T%Fv(5E!?$RC+FeJ-&+_4M$tZ_fjzb8+?_yP-wCPfql1%=H)F$P?hcq^)=*nXuY9P`Dwt2VZuea(iFGFyL^bx z(JdS7sqjoX05I66C`RLkU%yAP-7=eIf7RY)!f-)ZlHjjZLGrk4f(|LN>0*4tG>^K- zS%^4OH)L~7cdf!*_1;6lU(+1XYgs77je*Qfj!hf9t581qx+4eN&P-dzCJ7emB^S%i zr6+BBfinzL-6uSn5PNoznuBiQ*s56J5{lq%E}Rtb&An6zU`IPv+X?u7)l)Vr3*RnXAbzM9AtXxGIP47@jaxi_Rz-B`)tT`!P1SUb5Z91A$^S=*bdFGJ*kZiVLm z4OdlDNGtHE1CQBsoF(DxASHPJSPt&RYhJ=56D4CR7qd>(!0L^lGr{NBLwqfOFPZPa)!Kkr>MvyzMMFDf+gWa^235g+)$xiowtkQ={ zCGw1gxytdZomB&TK+od)lQ=H7)j+xowf+U|1RuF%b+4e<}9)pa3d<-dI_2d<4~Vw*=$hYK=GY5);W z?$E zkp778;9mi=s7R%mYP=gXtFOcc0dD1QidyGa%f0;HLKe?i`_x>jByK)SU9i7I{{(19(8Cg%wDy{#R<0n(>n( zY!R%5US%6SUbdfNFYpbzJ9Qt7!(;DPyMjc{2c0r<$_H_JbbQECUx1(CUpA>n zRbP%!j%K6CKB$Zx1n%P)Oe7Fs`M+o`f<8ON*Hdx{s2D>-!hbAfRjMFjhWWT7l?t_G zACYkAz0dHPUDX@-SA`b`l$Ocb?OkdBRl48J7&^pKly@YJdN~H7Q2cIe?kkWI6grtU zPIbaT=laY?R$9(zWg+w&GlEy^xcqZFISWw6V-=+?L=5Y$O{$0J3nBQu+Wsj1Z(7$| zP6GHBAlh;=b+lK@g-SV>SSyBj4!UkJ`jdq^jL=2b3cfP?`gijC zW!Q^acwCc+1O!9-Mo^f>HaxssH2sq?xu&Z#@ka>)ATTM|@h@=9+14^jkefqZKUc0p za0i99R723Ri(xnebf7#j-Go!V=@4_lnZLV;dCt2KwQa}!^^XP0sK8*Q{%ND`yEe+D zt@?87*IbcrwS|7)q z)>x2{S`_KweiNQ6K$-z8WSBd0UnFbS9dw1)5OkRFnO?i8&gI}^a|$jE0@14gWx~_5EAY;G0=q%CzS+Rgp173+Zm)d6nvS$dx+!2d)=olwi-<3~k=gn+ooI z1|WVcB`L!L2}y&rz+A)=C;0#>l$DE((095SFfS?sy}kY8-=*+JAEu_rXD`33Grd^i zS7R_O@ze6=UhOwaj0455gvaWblbDIY)?MEz)e$;@P1$fF${?`a@2XqKMI^5okK6?x zo*7^#VfzP1>6f6d24d`%UO5XM$g)FDV175;!i^-dbP{O`EHB}gB#HZQ|+$6DCl@N zC%L0D7t~mkGm~>4h!cZSe^J%nfGZIwwtV7Xld;5T)(;ym=~-|HxWD8@yR;)f535*o z8Wv^IhZnxRP`W!!CgIgKx!K`>UL=eR$PLt0deF%^@9M9aM9`A@I=t7b?MX7kTAhD= zWDKai%3h#dR?Ct~ZXO`4LIBxTDoY}oDU&1O{Mg2+n}-X^^9ZQ6n`8%S6sp=YptrY$ zzWsFYUr;j=9!KW>M5bufQau$WUd}OhlZLOGxjnagW2=68>`G5|EZ6xa(9N^~3G40- zUb%7cHtbFg2$LjEW7$n79Mc8e>dWjpwEmzUT%S$%v8q-#|8e$yI5sken`CIC!%~}L zjpvI_B%gAQ_|ASk#OW#wRRue4_Axb14sgtV&ycQd8F!mnV^sOweo8MlJj{+~cH=*x zGACpSI#3=EFj@Io-clNh%~x5T`iS#a1eF#}RoQs~E{)Qsp9gQ21S=RvXjmt+>yfj@ zM=BGbI#W`wRBF(q04(B|84&5YVoXVrepXO3dVlnA z7>P=Ys#gnWTne^<4jZSVIoEeu(k2&*1Yg0H6_FjO>5R8LqwWUO)2~FD)|PK2!d5Sf z#gs@!Bgn|V`DO#Sq$%sI96y$MBKj6@mT~jCHygj@+Xoo6`&Fq45P}{aR!P5s4aK0R zQ%jyIV-w%0zDt1@tnk`~s@Ul>Ez_7GT`@gSB^pw@2>;gVW`ZmQgfT;@HjmrxzzB6h*&SoMD9_CsMK(m+z03Hb8s(59Di$DAZ<93Y5I zX^o?-AvHZ!$@#nt!beJqZ662gJWS&bZ&zjlJvX&tty~pw{pD=;P~B*qT5*YW99Us# za0}*$0EujPv*OZsrI4Ru`f(zYBr0IiBHabtwmW~`ed14C>NHgTb^=hKp8ZoP4d$FP4HuV2`aHR~UROj|pKi*7GCOLT9x6_Po+4VPht7u1-S%wZxsDOR zD@Q}z5$`$I#>pLZy?f?z?%N-NDV$D0iP4+4VEV8*DMkh~2=l@pmEhfU6^c<1=D#uT z`Vhw)IzaW{VVWAu!HR-@os8Eibzl!sW}k5BWF zGW*;|;74S(dtw$e4e;C~Zty_OAD+oB%0?9&eWUZ^=a#lqSyX@kcEj}>8XM|7V^=-b<^@teRDBm0lOO2W@@ zmfFn%Y$~swGAFfcda5o0j?0_0H_!uccEBGQ+t?Kwr$&FmT3Bme; zj?l+`&prFj9P%+CFn0*=QN?t>CER zBYO?dM`KdK{#j3)(}}ZW;iRlzm6;9#!%@D93IOHbQUINiY0*447>GasZ` z$k_?QeAVa}xB&e+l@E_ia1S}*l@(G@4;@?0JH0$_zI{+UM@|Zx@1jYk<$FjWY8KJ{ zW4fP2jhiV4`uw8Fq)K0_{C>NdZS$S2;FRIjw%tEGeD6sp495VSml=_)jlxRKj>vTE zJlVPVKgzCwEzh@&-?^5Tmu)TEwrzV^%eHOXSXeE)W!JK8*ZY2i=l=<=3php0@w{ax$^N!BH&~Ptz{1D`C9hYKSpL7J^ z$SeaS6LJ6%ny;5uo1;-vs!@ps?6}T8(2kpgBi>TM$xf|Url1>VXPD`JJ4=or z{Ejj4P@Jv^t+9aqr83ooZnfFBqgCmcYJ-TewJ3&@n?dy44`!On5P0VZoOouHCnmwu zak27I*5*`CXoK0)WXU*ZA@|e=JuUiMXR<()zBM6}f{W`ToD@t>At*!M~9`u^NWHbwRh2l)^ zN&j?$EX;?4nuLqO0`EbVMTisG#Nzn2c)kk!mFec+#Rub%4I_jh%Yrl^lTZrYuB4(ZoK@s`yWkC7AnYtL0I*k5K4 zI`E214nPiTT~9@We+iE(3`e!VLKrQ-E5?ekF&!( zN&blEt_FJ6Sy~0M?SF!`zOrlJfx3%9%4kh|bZ6;|SS%)h{iVT{YJciSf8`tQMF7G- zo-pcnrB2aR-5Ml~jD66Nw#fGRgx88$pFiS4v{E^!*a4^IOJ2{xnSJRMjjxDKXFu!MkA1z6b=jmIQ zT&e7O1w|Thg8fLpgdX-L73kg_b0Rl@(Qe&^!TMRi7wz?sWJ_%wS-m=IgSbZ@qia z(>MQGQd=3Tx!$j_S*#UzYF{if9{rB+MLgn$Z4vMt@A4 z?I@FLV3&sjR3;=DBturA`(c0nHGj7*^e$N$Vp59d}Aa38Ra!@Sti7 zh7f80shveWUWx9iKOBD%t6Ao!iBz!P*fe5Tss8oDueu`OlNf+`lO^=(YUcT9azr{q z9=xUVr>s;9+sJ7W#_f-hlLS3Ud zCkOd5swl@f#2-xCd-$^ufFik-eq8Va z;&bB|H*g{(tLJHUTp{vQT~MsZGU13p^$?y;99i`rsj+YtxOX7!kIU&!2ReW-ul@BB zu5xzHLZX$}bVm{e$7kuN?tK%OY=%z=6$PDNJ!pssx61Jv=f{eo`>**Q?%J1Jw7@Ge zIE`ltw(M_rFfaYt^4u4tEL5VEd@_9)z#(x<2AKQ0Bn#mlCc9Rus=+4x{x{|jA?LnF z14tOqVcg2Vw=nkGRmitK-fQa=29>X5J024|{l+8y=#E}LtrCtA+6RpfJTshXtxi25 zeqsU)4hlj`ff(G(#xwVwm>wN=!#P*h0juY5bd$_{*r3~1Caiqw@j_l{H*_H4)(s!& zTw9zVE-|oO9Bgc%);y_U=ki-~Ib$fh(S0D0q-AX|0KAy+o4>(rl##>1j?^Ff(4N6V z6a01~W%4~j1tQ}>_pc5T7sB(Q4S(d}WQ6ADq?a;DwB)yMFC~fTd)4XN*ClcGFG;Ph z_S9;lp;=$&$GZZ|0)4v1;b4>GkbHml&6#~@saHmuOMPV$A#c}!odA8?QTbZ=628*? zm^RMz$ZxpS(3T+kI_HbEw$H_=%KbY=-l}C1jlrwmYWT|Se_eHTs{v8(sFbNue2#5@ zQ#GGgb<@vgpMn5JaUHJ82RO1_&=*S;J7R_Sqp!L_LEbyXG)C0l1&Z=n`f%~|_K6FN zgt0v-Foox)Y0knkPv$38rx=<6Sx4DRf3#NW1u|YfQmAP|y0)?OM+)FeckINiMk(1r zC;es~26XkG@a6(robQHRC

    B_qy$g0S0yyZbKd;SvZm$ZZoKs|EzTHzP)~~a`J7uj0=e8&?yPa3bPP?(z zGXHnYb^o2yZXhaTv{kcRY%&<^7zOlcvGBluhUZ2>H0finNYIrC4TYE&*NYM(KzW6~Lu*Y#zl+C#ovjw5$%L=zDp zIZ3@A(g0kor0ZwnFWHHTq`dQ!Q5_@7y@4ed3BSts~?*d*uV z0Y$9YtoM-Wodmu+OkJBWvd;dwn@ZU6)58hT8EA^8|b%OWmb zclOJF>8+Pqr60$UjC_BbX*h|RdGBY+5rGNL_^DNl~PKavIzVpfTQd_r5dkb@zYpWFXFK(d25zjk{!C>n~6M56%EM=I6y8Oa? zWCeDh9l-NDup$6l7yE?HjdhO_3}SDNAIvZs)N^fLpFy7%VQ+2yLJbHqcWIdGk>6vl ze-0a?D)YoH{d1DZU~1Q_*QO29VF}P8TFdgfxb=_)px`ZkPWcDm#qIb{Bg7x^OuP`w?`x9v$`r{E2j1L^9^A)U zNF!DqeprJIUo3zST1F%Sz0bh(2kVy*5t7%>*AU>~)(bmWp2Z}?02Xwu&uZdd3ewjw zu}G3FrKz%}41J1rjD7^KaMagMm;UY_U71gDls9md0&MM~vx%u^fP^l1d)MJ&N&?@r zmvZbMi8G?NK7MB$?17f9J0>yEeGhy0iWC&5s+k#qg6T0k zA-nKhVE~CJNY=4>DgDHvOV;L?hN2#l*una_HFl^p$*0Ln&<&FTOz2x^BzEmvH?|y>}!tB&Cvy;33uyL$fw*ar@A5Z%vq)@0gQCiqX zQ|R)i#tk^Z9nulgtp5v)AN_#%aF1DOL>ba!+OhKPsK5WeOCu1Pg_FvEThl=N=)`oF{( z?%Z#Fi$H#2VyrEnkfPF}Un;l0hRv}eG~Zd9qZI{v3~STQ z5|1F%I18)4ja;+I%6~DX89mt$XpL8J2TprD&;Zx1T={+75}ms3pSkR>zKN@kc*an7 zO+&|z!mSVxpetYMLaRSVuPy4E2d3X5V0pK6)Lx&;++^)eZh0)#OYq*Ti@rF83sj@;bs`(SlDZ-k^bwh)x3@eUtIn%g5kaAHb}R z)P=aH7*8Ra!n4a{16wBsG@Wk{BzOsKK~A}O*+N2mhq*-#dO1rq-{tNMtpUh2%tUEr zRmSC6TH8|Hk{UShs6uk9nri|z;ME3VK)0j>Lx-bVE!XUhUJFs2Fg~$uoNarqrjGa! zkFs8xTIZJ19qJiJFDOiF%$S>;IR{YycB-DRa`LbHhu_HJtEoTA4lrpwTH&u!P+BzW zt(HKao$?}7h7jQ^;dXk@Y_PGK8Tbg(&X@>C znE;OUECu-bYyLkLw5)fP{;jtaaNC4lcQP5yz&vsZU4ky1)8fZ@sO8+)f`!-S${Fth&4s&*;KPH)F<;zONPf*%$Z$5Rfi90sr!H_8z;;A! zqs7g@7=7992%x)mbev1K{-WP=5sl9kSI+r+!ILm5qE%Xz?7d54I(xkG@27${(iTuihD|0CJJ;wE9DOH)prwYHK14oIKv}zTdI2RrFbFzT z@1pYM+&N!zQIgp03=0WuPBQPzzD>-m_L*1{L1)KOKoI-4kLaffgqG@|hhf=109l(i zEPi5QdA4TY&Ev$83{I(AVX=t*(^t>jO}p(sEV7Vud|mNZz5@4RC0SC5tikSiSY4uU z1xIoxb{)0lZU)<1wt#5nb(a287Mwk-s}Agk)aaG|Sja8>b7S(a#>#(BiNpVbSO{j& z%YCX;j|24kmUDr-QhlQqQh{X9KE@Xgk1m$Q_cpY^LI{4BK$2(AFu4vj+YNDnA zJ5x#l<+hy>L1UT9uZA&XX@rl3#Y}BtGs2ec~{_`wZRaO2DEk%$3f$ppVsi;jb0a znS?5K2+V4kihu(!V1ydTXa6p_II(zBDQb0f^y^C{V&GjtfQ9cIMIPum0{LimEGy8V zt5(JDKcjY91rk|@SZ}f*3 zne3$fjEm3~F&|!;d4qMVDVvw#2|(BSi1PfU=?rtK_=M9WVzIIG!2<6D(sFhZ+kto2 zMdZKK&~m8wFYDY3Tnr8_`qBS;UBGj(3Xhz3>2rFxk6br!`aLR!R0Z$EV8hUHA0t7h z>YM6@TCn|{N3bv7aQ|?Qo<{$(8W1N;IE4*0e%ZqmhUc;1!qHxq{nTeZ?wA=ssRPIf zklZ4_@3CeT&lX$*igmXLE_|xu{)d}4^oiWCpno!x3X+HvZ9X#AviXLN&#qBb`zV+b z5(ybE?XkzPqC()*u5)qb@EZLW8ORDoFy~5uO7FC%MmNW3jFm`1)7v?AFvjDlSqtNP zCjyLAt8btmt}5{-E8?>rXztQaE)=d{e7Q|>9a2NbDC-gBg#ZYBFU0X{UdSN=hzsKZ z)o47u9pJb(_6-K!fk<>0SVQd#>8uIiKKwXOwHbmbp*eUn0$m=txdy4S>x#)<^Vg>& zC72B0;6NPSS&O6|Ou5lSEmPI9g$gph+2f3EfrxKp;sM1z`+W^| zr^^(V6tIW0#@`*B8iBJwsT1R8Y4;z(#~7~X5Ex&+fC&$gp8RrYdtR8>1U>gQ6?-u+ zaVz21)?b=*-WP zA~;zPi;|wRPH-Mo@aGKKGTo#7P2LIUg-i7E;xIP*Ji4^{2KS#F1K1KY9ZxMk58vno zI?!70KPp$h{)A+r3dC!=xAPws%mcOq{SO+i4??$5ugjtK#ZDEf=w^8AW?!)`GJkA* zf}TiLo_a+plb;QXSoe$J6YHC5g39i*`*gRUCm|pBaXhQ;39B;Blt*cl7MR!z!L)Wb z;6b}@!WAP~NBoDVYSXuU)vkZDB!h0bx*+uLWc(WFtxsX__ReNokK@k6*Jvp#tMcNh z_rnX(UFa2sb@2Ty;iG?$J1nXjNs3klYd9Ho6T^6>*!oKD=n+#T zAGe;u>WeNBz_*l}6@KG8WbxBWror#gL?!}Zyj)R2_r)e7Oh;cq-^CZV;riV>J&Si) z7osRl)@j}~Ec_EutbY$+$_N(@b2uV;dRs?RnQ0+kJoKvZf_MYg`Y}^;8@Xom>~r(T zZJj*fWb4qp-DgH1myg+nJ3x2U7Z@%~WWEbhPzO+z+TXnfnw(5QfrIov;Oc7?5>z{3BI(wQNiL1; z9!0EE6@Tl5rSc}a0j=jSUeqsP40e4fx4>^fm8}2JVONbpTEwAWSEuV>k^Tu zV(fm=pquH!;~WMGMeMbLjYcNjyfnydSrYr((_<}Z^M2hH;^NE`@4exd>ZYJNFPlEk zNKPgLGAkSgPd$CU-6*0gevTn)gfe;_DuDW6gtbSITmKU1pUl*W?{hF>XV9+P-Bm&y z^Db93SKGrKI+!r;BkQRvx4oI-6B&_sMOHaQD2i_-r9dE}StctaXB*33-!Auwxl!{3 zHCcmZ&T-UT2@j@g(6bZ+Bxi+*{n0PDynj|}4H6#-u;FsOOwK;W{x}wi&64OObmS~V zrQXHvSz*Tk&u@wXh}_#ya>z&0vQa&=c~H`7HFiHkEI*C|l90;)KcMM9_!bekHs|FL zRTwn`#!~f+PbcDjP8j?G=etT2Po!AlePK}&s=G!rn)eWI-B?nZ0X8w!(AKvLR}lzn_wln_ze4*C-$@&&0aN^kS2;EfLC-dBh8GCfX zhxb!C8&Au=Cc6XhG($*+L3IVFWkV&I=n$dIr9;ffFb}d!hjA% z)CK>d{CYd~zCS^G{qnQ+&dCpK+{+mm(aBuftMVynH3;VCf@O8h_76y(Hi+mm)=j3 z5i&T$^2QxhqnU1jlWgkAQ-S7yu=!OTDu#K%`IJhq)8E^_sb&8*K;i-bI0@Oy4aoKP zO(%Q5gG^Wc)ukk1j5zJyjoL_D8T^X?y`jg_Y-l6YUh@z~X1rQUXFtT#Ml$o)ENf|U zRWHB$jNK%8`T>2jR^sJX2i5e7Py(R(%Q;&M`!nSnNgV9sx)fs!9qFdtGv|2-1Y6!s z4uF2DrJ)_U-R^vV9S!~R$)MJW=h?LJzTTDQpVK09zxvwv680R_!4UU6RMnrk^oc(K zBh@4Aed=;|662uS!Ui`8rcZ6YC9-dmQd_aHko2GrZH0uaDl_=9ENr3Vw*l6i9%V^1 zz!wLqQG9s>ePchDw`=VnU6k#q)n_SKF=-bD8z4Rt%;uRlwp7JyX)H#@N7%-jJ0#se zZA&*z>WAe8=rPizMdvE;F>=V1PtS@UOO=$a2dM23@@6@Qa_{WLoZN-g59Ahp39VV4ddTj1bXERHx(9Y&moD(sWZ=`b@ohIs_Pm6(LTW`eWoFX;g zr7bu4_mDmAyz}BK8YctGLAfC$Jt(#S7`&7uiXaA36M5h#*4bAVl4iov|Kk8 zM`T4H*pUunM0_{lSBr=S(o|b%QGx@Essr;Ok=|2Y^1jiNQh?j(w(p#Qq0p&-u2TG$ zS{7nHQ#7nMe|VR_}<`wy{|xWPXC2~~C1Mk@iqr{KZsiC=b7$Aewk zkbAkpr{!9IHd?&E>Iy^~zqPer@z|mRIow&~<;@w^U&Q;Fic+#pgoPF8PIRt_)9ajX z{*`!uE*A71spB8@KV{GcB=w)&zN5$clqm&5L?;Ns?0hSqSj2O&T#=<6ud4|P|5oM) zO$z8t{o{GTqswL?PmQMiQU*bHl{_R#MwlTqIM-C82>MRVuo(Q)>}CeK5dZnoP5)Q4 z9QCxWx2nwtT>qiquZkTg#}PMyxCoC3KYkY)_35Yg10V6^F71+DPL=YzTs*dg(LcTi z-^?v9uz$LojOFNq9@!9Tp4#GqLy`UOdJ0dGMTv1`yYEms=vtA_Oi+XKMl_7>m{^Kz zr@*gh<^aO@>hlWdElqpE{0W78=%3RUkWfg?Abl0j^7H!3uF>HiJIxoq@nL0`Ju@KqZdNa*1CA;r7XsTms6Wwph)p@3Fy%^AJ+YE{06 z598KEQ=;q@KmcJtp1;Z6#pC=bTF1=O{uAWFXZ6%O7959lkr%vYWY1T{w?^%CEy5$!ECo%X@`5AlBV(Iw_g3xkeuzE$t6IwNGh&hti!(l?fOsSA3xadS(Um_+`p#fcZX-Q9iv zAdQ~rwhO*uuXPbzzN0K{2pd7tm$G)ki%uTdpR1PzU_iKx9WS~6*Vn9C|KvY%zwGu4 zDGsH|`z?Wa7kCu8PVji$OEtbP|qm# zpIXF2OWf9AqM0KAcyKq3-_DgMcu>z5hwj63(dcd!bO!^}X~DB$nO#7C#svfP41q4g z6_2%|Fy`xdg2kp95r=Cdib<0mDR$o)PjGB0s7O@rix*USE4z?7|;Spr=Qc>>EG#98JROYF6qkC=JsKqBEFOX@Z?x{a!R; zShQ=8r2X4Yw>QiNr|@ddbdZY-oGt7VtS*>5Zt;4S6Bvsp(Q?krl;AN$vH2|fdTM~q zv;`xovRHq8KE|^#NxIMg;Ln4vs7FvuyQVp zm!tOjwUqFVPGmIvrg~w`8XA*Y!PyKvW^Ird2%50708f|FYvGzTWtJ*V)l?0OyC`5$ z7;q6W{b>fels(pKkrC6VqRcI@r&|ZBG`@x$TQLEdvP}MKEypJ_!6461=aI!n1LMBc zrE(oZpCMrHnNNkYrp^90B%LGcJXOE-rGv%5C9-idvQ%o&8t4>XSXxXLe>@I>QKv^F zO%N(H+%Huqwl_;{-b`5X3sc>;?%^okFOifRA650NNBG*3K+A5cQ6!z}Ry)iRjL|kT z(k=p|0b#y3$CpXbe<&Unpo1^W<+K%V{CsmA2J>|ULmS$f*Dx(=;?kcTC3C%C@bn0m>9i)E8>@ux**?+WGkac%4HnTy$j~VgnYOsmlxN%HHQ5q1*AsQ&EE4f zi=#H3(?l-(qTIh!Y70}ij1L=Hw1A8Q-5F9O5l3HO# z2nRSjTgS6vk ze!v#I6d6Tg=&-9kwf7ipA&=wl$_jsDf0!vJ3*Ma|=m>ov3VLSEnf;6cHIgH*n;%C}g522%lrFQ!Il? zA;pi^Zey?72nD(TrLxrim=jF{{86g2!bSA;is&KcE{|ei-tY3$vWD{{KVKirMFw(# zZLhK%j9*3|1dz&u(U{cik7V0sfgCM2Tkk?dz=%o|l*<{23#SNO0sU~Xg=~CL>w#*0 zlK9HAh2kEOy*cfuN>`;Glqok^ubE8Fh<8vd#Uy?WX?hwYMEDnYU91Wbv_RFqW%j_G zp?!}LhZyQ}7{d0F%_41T>wO3Pby~od&ZcN(>lHEu6_bS65S&tQ4SXBCNXG4 z+*=^o!X);=KIYg2DlaXrfnt3l~ z#43UXEkEH2>3Z1Vs$pI8O6mR1@!@a=E}s{7-#Zl%lF#17qf7&p=uyz6L;>I+^%zS| zf$p5(^oBwqWZnFV&aP8^N9Y`#qk6lw4fGBqFCeh~nKZy=-4B+R7GYT-yR}*1^tCAU zB32|>nGEe~%Xi#Hg})KcJryKM_SXvJz`%%P5^NZ%>u0a`QnlTI^tb4>N#v(zwA0I5O{m#O8~@e2Gpb=BC~0imnnqe~}hB&`y1@@Z;{o)=dy zFAIPZtsRaK9C;&py_INh7G`-jY6`E71_)9`a)^s}23<%NRNu3I?{DuE+(g^jHKtz7 z!7q~}gN~3qQ~>az1^qf7bEDzs(l9@S@6Oqz64^Hgym08q>b*brs`AL=A{h-=3pbUU z2E?$uK+Sj%9l4?~9I(Anre>8Ch94)hn#vcP0s4KFxi{fp1TNgu ze?3XQP^;6woLFO^xjngUV2GQ6-gDLaDXx53ZNk&x)uCGJ`_TrIQzFi}I*5_{HJX{` zz7^}Iq z_rRYtpk!iOS87SArrMSX0^w9=Hx`W!AL1np++8!@1iS)ti)hMEb$9Pz@E$&r@eU@u zk|Ii6FP=E6!GlrlcOsOOe_v0>P!pQ(i+Ga^NHu=?Wds5pVM)Cx=7|*Ye%{gN2Dz?6 z-E+Hr(uWMP`sUe{@A;r3d+X5TD6UM@$hdVPC;@_sF3ej?l=JV9={lW-*s0v1ThLFO zDvs4h1?9pcA>em&K#@uC((XD4sm#)mivKcNq!#+?Dak9`s%#R3@Ojp z#eYBsAh91s6dTE1z^cy^A`ox{5wj&&vjh`jf1nC(L3{4x1K*CC=>k}yAZ3l+Ci?eV zSI=vr4HVQjQ$?x~a^CBb*oMCdfWAevTrcX(P>0kx#Ga8x9fD(9HA8+5;he6@fWyzO z$5JQMg-)FukPdQ`o{7P#Ffly>aL7&V8Hg!x*rqVKF?<3Tu%5uWNMtX{1bn)$&fCX8 zpN~sZE-^5Z5TSl2E!6m^M=;BN_(PTP@uck5mzZ{j@_I|3%{a9)<3G@P63Q^#(< zKgiQrHok@18q$e>q>d-3xek0sO?V(EN@}6z2K`$deqmN%NPFj^E`Yh>hjdlQ@9HWw zgLXhnF0l)-0IIs71H294px?*g2$hXhFV%)n?=ICb zw2mR|Th5pLO=u9CX9o^%#AT3VN|wj1Om&kMn;9@1r6K7dY!C`jD9 zJq8p#QWJK9$6InOBAY1pL~R>c{k&;*$YAr>##`OZm8J|o?ffRLK>PIxke^oD5<}T7 zkcA%`XEpEMyX+^4TZ$IfSx3_Wlp8_MHjcV`z;B2q+%s=(4VT~h?tYPzK#~`4C4P1K z!`Lj?VHIDm1EcO(qX93_gAbj$lM(Y1|;Bm{Oms9G4Q)FMGm4zL>2? zEuS>t2q!%5Ztm~ziUi%rw0`kUjvR@9V_9X;V*-GN4cFB#R3hRpsVB+#DbAil>E){u zhx`J+&RMR<{6Pm_>fMDk8;nj%f@Y}#M5%lf0vZJ4GH%a*$-A@jIhs?CSuoiv!bv)T z^+H)=_7}q*07@r9^*8Z(@%1=o>LHw&o}~qK*vy)hB}Wcu*rFkppx?)D(>G48rDHge zD>_LVXY8}xf$ni*S&g%d7I$74#t&u301?wEq?AK-nbbdQGSksSkI4}Q9H@QS#j$ll2 z^%6e3Pg>cB|HdG_Qj~yMnN4G;BR} zlj{LWL#LNQp^slZxNOrl`vONhat-x);LYk@{0FV+`9ZfU_`R&xL7k=NYn6&n1ub@4 z?6+~8^U=i$kvv@3Lj?s*##ZIhuD>;8DPB~3c|&RP0JsBZ!!U-e_x>Rz!_m;Tp6=4z z%)$86><9)7xZaQ3fDWR{7#Tg=rHrz84hQ+?dbhbXO8VA}?hRu~#q7Ua|qSD}UmicH0*uAmR*QHz?op3Tu= zHaiQv2x=3S-cnSIX9FZ?I;09iJU$eY_$BNg?A|M*zwC!`Yk%h$131wTE|gOiwNbAh z{E^jPgTBFS!ne}i=fRK@cu9VM9)%XS3rnZA*CV4+aC+(e>VMm5rg^sZ#;YdLeLA4!4q;(2BAcjz%16|#;e>TDue!a+?F^&If zTj+EDPwgOx6CsgHz3Lf>;KYuFZPfrnCr{mRRr|*PQ&~NrOffi>gAy2nVWG$>z(D!+ z5{%98A{+-R9M7}=tOWEl=f-|Q49u?=({R)}j1bvq$%`z~qdP91$04(UR_qVs{noW4 z*hBtVgVg4T0-LR(BmkP!shdUPTNl)06Wxwpz?+y_j#1|k8leMs2jYyD0O+@qa}S@* zz{lF&<|37IU@lpH4}jum&SeuV*q}txtG*+%DMS?9(Ijz?sJFL~`1uELp4=kQ@0?(G zGHq!FhnUT#D`Mj5g!Rh9+9(;b(=Y*@{y}ib8&rAu_{&NjGR*m|lV;n_g5u82GS=dd z`=h@W*>56&!vONTD0LjwYpW0=HDLC4>wRj)F`ddE&v#p=$J&Z*?XFHY(z5ji2h&Rw z^gZT@y{$^sSWcEChQV9FUJh6vtV?Tc4QzU9!VgU|9gc&q<8+hc7_!7?#)Rg90Nod0 z9cC97)ttyqvbp`bN#C!&iGJn;pIu8+bwFtdFA?;>-GcWOluo>kXd~Xb!F73x$l|vF zD&=#=Dhny8hFV9b?uo+UzI#eS~NJb)7iKH<~f<@P;9H*m3E9Q)V{GjUG1 zsU&J0S+CN#19a5KX8VKNn2^>!3N_UD`g|7v|AGDVd*Q_et#XrMQ_H>J!SNK;kCD&uYtqv(gjBk01m*<(<5f(uQQKOee(O<$o*s?mA&E|zcAKF4%sL0_Hy-Pd_zzKb=w50Ls;aO`GF`{RCh8R0S^%`&l zPKx3?wah$S${1~KNqK=!g717jlJHNHX2e1}wt_*pzWV{(jWwJ>s}@{6_MnURtBty; zS!&DT`V#-`PueZ_QtdXkLUpM^qMQV#RWgfs}M zxmG~mCs7B$cWtI31Oc2s@bc9O&DCQ?*PKizY3Na!7c1si|NP?*-4#F4mb7RFUWjZa0`!vm&t0yo?6uNRnf^2obZsOgAJ$*}EovurS!lrlq+1$L1=>M%GfI4hi&AT^j$iNSCo! z-0;VBm6}tXY-i@EK~cc+f|f`_^Aq=g`A0tNt6)pQT|jk?e*SX(4A3SZBKy4==dY7F zOH7B$aL>J)Zo#VQ=XGm5GSJM|P<90!`r zo1w?h8pBbE)?pCJMH>IL_Cj|+SH{%!m-?0o^?*)>pfF^)NoW&A)+9z0Lqa?m@&CI& zF8r*uhCz{{EWG`Fm$>BA90{?a(b1MPfU9Z>WbBjmFwGtM#(gVv9RAz8@FrY3$hy$7Pq~dPBddhs5!w0UH)S;N9Sh zO_vPPZoUQ7HFyrymc!;KwkCr&59EMxgRVpsuG^Qqjcn8Bzs^ndCEwgm@fEx6sWHsi zNcTzA(%jr%x8N=Or|5%bJ7tSd&T)n>nO&-R#NS@wp5Cz zH*n1P;G<{P%Zi<+VQcp098*wOCsY7e;X?EEdjwPTF6fs;w{e;t$>*}qld7sNt66Pi z`GNhqu2Km<9xfdeqDt~&@Cy2b6u0`nv*jN z8%Z6kg<2C|(`e|(Z<~~&w$CY*a;=dR^d*R5 zr0it}O)nXLm=)&UWUXt2c+a{(ha#v6^KxhRpwPvd2Sr~UiL62bR@8tBVVT@Nl3|$_AOZ3MC zw)oZcZv(#}%?rgrb<^uHS_l#x;1(5QCIF!v0!v2Ky2@n<0soe0zxmKad^yqCuB?%O zeUA(823^YDXufa4zHi`M|9&;LR;zA)JYRGkP0LgsZ~QctY~Rc8sl9|!v=(5;rV8G( z^F2rhkWcKqnwL1RJ{>y0VzC8_w3@Rg&7oNBm13hapM;DAooO3WmKEjej4GSx{!4k> zt4iiLeIf?0UbHvF991ST z8Pw9EZyK~|L3pUTxLg(~o8tG*`Z703=TR-gj85X9tv3En{pV#L)fBHYujb8(F48V#cTHOJNumcg8b15ZW+_7AhOGf&QmWqnNd=k zh;d(%c&S$~c8k$lfhKTWCs=aqaxc!Dq0dBg5-k*t(T0 z=o*MzCFw@Yt=7M2)t5-;2!!`W`(=yXu@{+us_3#WSe~SmHRLmgB?r2JT~9shr7Qrs z&ArIm9g-R)j1u;f+Y#*%&X_49&GcYmfEANK0qEbczqCf&dC%nLcd?*E%;U%{y1`lN z8BGcCRpsjO+iCaRhefH-Cri{D4swfv25`eEfJ#)20lF;1O!JsxV1*nv(Qoi_n;3gP zEP=E*n+_WEsru5thyiMg2qW7I7j;?!lUBBHa=*ClJ1a4-9*$H>EivOnLkkcRJf1{# zJkg}G(UyT=RSW9^Kizw~v989IX(MOuBMx8nx;)c-)9cN^CC~|>Ex2*ot#!N>9L6l+ zugjtk0U59?VZ1^=FJG{RzV~$OGayVBoIF7C=CRYBJpSer2GlkCP)PnJuvwqc`C-N; zF@_9vy&K+g3?ko%%lL+Xen^xo{;-AVJhE-$AkV%Qt_^p3&N}ylIwCkQ`=3fdbAcNkMXmI*P z0eO@uC2|LmP?!7hFMW`nb)2Y9Wt%$PdlZbsa~H1H(!?Wz%h1 z_+Fwg+$D#4yBS|rZZPrP@Rv_8tS-ZVWUyfvo!$v)@;wdqe!>%U$m{Sa|6~Bp!ouh` zEDGqhsw51QYkMe+e;Pl9r`|nnFpOaoMfXE#rO$Y^hx2U_L2~4C!-L|2*rC zR06nJ2a5j!@dprL_L9nfQL9R34xpA7Rk+aKNg1?xADlF}hF%=i^8_RASBMx*s###k4H|q~3 zd9CIvicx!iU+`^sxsq(@#dyki8Iok-f@O6hRW<&x+6SOc8^8G&!zf)am^&Vcim?JrUJFg9IUA|sx2_#l| z5@CG_1@KG}2CDTF3LTy`m|M)N87!Vs%6INkSLeE*~gI)-P?QhN}Ep*|JiD;X@ z@BJc;TWBC^5oroTk-K909n4zEJy)R;sPs^?tzWu4DR=@{E*wN*%z4W&vgdZm`=4ze zr4Xs3@TILGj|UUMUL`G?2PB9_AOh$=U^9L*5viNiDFNGS%=$X#Zt|Xg$Ft z82jAhLigEf>!cPi3;0M@e1G|VLmtsYwHxAzO`T2M`B0lQY;^fR6Gt%yy3Q3oYMO_R z*|=u*W%aUFzZheR_~|7;K=al%biGB(5VKjlCvNyTsOh1ZxGPW%sio1=E3EQf^ zSKtwDOW46NJE$P|LnfLsc!*IXp9l1~wEB>iT~o_`iO}O;m5ZjFe=HfwdL!!I2V!sF z$a|NG)2)1K)3qi06AI$2?dicj)c~Fv;l~YB9$wRUaDDFi8JKwlbh$-0mSR@&a~FAa z&}HL*=N~ev-L%ea4hqjE3&$Qfb-o9p?gp4KHobm)9*v_@+ft!_=5rl ziGQf$6)bY+R3I-LPxsC?5t%e_t3|&fP?@kdZoJAlvVwX>4q^UV0PLBoTH>fdg~SH6 zv>j3fH-I1o_|g}yl)kXM=^DE#a`~$ca|O?tVgZY z?HsM6pE`bWluhIg#w!uw#XIWQOmO+tt}AmAHLW91pMfgy>jfaL!Kw6+UXaa_`O5x% z{c@L63mcL5?dC59k~+F!!7At*hy`c-gTALV*cRf0O|xD%<$UE|$Gs`_CnMxQOK*{) z?6!O!WH3bDg47j0TWmos;E$p4Rw_!0F0^GUlrp$uf*<2czakDQY79f1YhV+0-oO))1u%d^Iz%S; zr^X#(!;10mFS)AnqqT7|P)C334YQn3 zYmZ1l0{y4H6<*0{BA!*ooO9nIpCK@fJP^H9uXI7Z+B(!BR2cO;F4JJ;Hus|%OiSdO zY2X8b`Lfdgq8wrr%jj?xFa11yMGnbeb3Dc0`~8QPj|z0ea727=LVTx-v~>9@gF~>$ zjNBE+{J!++<|dK+Z&iY2rbUL87De=+A$<~(TIOrHVOlR3?yZgj^TWABu|1%@5&cw{SMS-ZaxAzkC)5+U74AEyl zLhm3semv#eCPd>dhRb1^@QNY`*9(b37!KCdikhxlQ zb#gmiLz!qPBl8;9|IuXry@?ANbSit9RpR(vsesqvw=x^-BZgQBCC2Zl3XQ6~ec%GM ziDtfc_{*YOX9gwFoku}xX;*qcE0vc`{GRRhdrrfoc@xOb zwLPRB)>_UikwOF9zgWEfRTM!DFwfn=MK0t4FewrGz&~Kn=m>DzIGlPoWeUs{{duP+ z?EQTlWg)^qzotUOmbQu`Xc=4Fkg~2B^3r2NcA7IN#dS zOXaR|RIL^E{RxLaAp+zuOF73~<~-jUe-_D6=;_0EvcZK1er%<*oX>eJw}bw~S~$2d zMlO{1-~8IizT{I?t+Ou$AMM)MROuIg#7gZD`m<)+b{QECYiDWZB zE&RCDye!P{OahF2WGs=Zr^myajx(Sm18J&>$f-G`AEq1Pk+FX_8wK*$>TPDhH@P_T zKG3losnc$0ScL>GQ1pNG3r6S#y$|2K^NJFa;h@numxjkx2HtB=f-@xQ+Ab09<*NSS z04K*z+o3R&wb!oPdM9lz_gVf2feq3 zl*;b*JjUw=~uVE!*V>&ai);oZT5xG5V_K#%2y6Ub&G-0`I zZiA?uvLUry8PVM&^QZ=|0rvXN>sm#QNN>qA(7$osv2n^bGca5~L+5!&ps^@_0bK+6 zd+$Z^Pu*QtEJFv!IRf0EDr7tJYoD1FZh_5a2updkxGdf;gjaryfqJ=kmLBtv-bNF=(yjllVhBmv1kR|I(IlN=bs=mjAo;1VZyrMlIdpA0yFco ziZ@C;?rX|{WUo$ngU8L1?G%kd<%IKhbf910ga>;mk!IKer3W8IdYDkGg> z@_N_%KM={9qMMC)zVwcKS16LiEr5_-+ZIu(r_`$335RxerAhxuJdYD+d`Y>5Hanv+ z8vhJD<=0M%#;7;hkQI)Q5~ZE@cwN!9eRU3lnQ@j(L^J?>%N$gx<&8a6(9=UGtS9s& zo`Ve=wGb4-=@-x}vftE zCe2tivt;{THPa!19#I?9$nd2@hsjbH{p+`D`%sz0Vg5q&T6_qx8)l6N>3JI$CG7$} zH<4sNj6d8mt}5ezZUFAnfDppDNUh8If4kdXE1(}U1(|dQCV9?kW`0!IW5Hi zdEvZ*e|vsEw#)qs(H%$_{%j%CHGY%cO z@g%s{pAvFwf}v%nnQm>9;L=vM`bA6hgR^qvAL*cPAoTADYy*R@V1f(IXhGKEIapPu z5HndGvV6NIdqsbe@?nmj;*+a01-x|Q;|!^wfxfx1+juv|0EbjYUt?BBUC!I{jFP%E z#)au3tUmew02F$(Al_h+yM>3mOdR!Klj-nesbV8lX&lcSB-0!+ zatHheSAgitK9=x1P6Dy;B`4aOZb!k)Lh$?6tOZmNH(WoHT+pk`wq()ZH@0zmhOjRx z7_l*F*3(M62z`1~ag_o2DpO^ve6sp_ND=|#@$hU!*NG!QOPm>geHT&qWeXQ|(Ht`` zOn_*O@O2@-^SO&l>I6CHiU8dX0lHQuOH|HAyb`)VWu~w;iCvX{a>r>R>N6F zK$sT))!0cU62RmsaPe~jsnS;UgdcQ{KwJn0(IIBVy%Y07+JhYAoKgG>_M*#*O7+n~ zsAEL9Q20r^CQHkNl*e330g$p0UeCZ(wm}77iEL#2B8sGB?Uofk5|#h~Ips(U zI@hOFk08`Ld7Dt5U#WI;fE4d*r2J~8Ja`b`SN}uGEj3HqYwH|9U0OZG-0;tN~xlnCam@D`7gMa zKQ5wu&b#Z&M%d%F*V5A*@4QQf27*XaI`?ZpKVZjvV<+Pe4vR6SZg1Y$v(dyAW%9-SRO8C)dPy69(?_P!I;NDIRKpV33U&U8KNJlUZ1NVXuB+QQw-SapQ1|NY( zuL~NI|6mMypKB=yW|dh%k9BAh^jrKnR7na!R7){;5R=hxKLJO%N3W=y&_u4A|H>Cf zY3=|eLSMexO!TFDs&*2Xxmuf18Hsti{fZ#0FmBe?p&j5huJ^JRDohM@1)pO-9vZ9Q6_o`q)BCGd3{W%mj_)$eHz z6Z$p##wXuW3wIqX$xYBKpCSE^F~)wL(kXDEyeEyu>t5szvNHphK1Yr`|+qc~yx& zBEW=04>j5{V!)t~>{!=0k_I1y{)RgMQVk)v4ZEkHO~2UZ zXXTE5%U)^Eh;TN`6~d}i{+7^j$BbGQaW!3y*z z&ij$L#w12w0wfqo8<)wV|1Er07_FM#-dhHG;H~Q!MFjhuiz9cXcA55ljvYb)_JT}g z@=dCL_EL`y72YlBb-MGmy87b?E(8PE9Xz0SQ|oRCJjNLyOzO3?$e0fXDzcVgZhdNi zaerd3@n1N!1`cjR)%sCeBi-o_#5+YbuK-zlh^Vt7W+@{bTrV)3vmldb;xn=qXb63) z5j2{95Awo=q+Jv;M~Zy#h3cht-;cBN=B8pqD-+3#`g05p)D9Jn}Je#V5TDOB^$l2Xf zjr`?JwdS!DX58JfP&iBtzpsur;q23Lcn3%zDgONG%jm{oRh5LjUj*FV{z4UAc>Zl| z##D3k;qCn=K@%2op06Z#H~4;s7z_F=OnEu0`cA98Nkd`W`%#NR{cw8~;+3zyiQ1Y< zs+E16gatw7!lITo)t@$qY4kWu;Oid$O-y>Y@gcPA=D=N|$2XyGvtuEjza54w)`b6p z{&Izqmq&5$pM`FyAp__V`yq1SXD^h0ht@Ty=-tokdXD1IRBFqU_l1hoOqceOUt<8_ z)U->cJ_!7%7rcK@rwfRo(55Q%ZA9<)bWeQ3YoKGKLl8y3e6L0$jcimRy%-8Ryl z)cra10;xUo3a#r4bKetexNVqjJ|8fN^K0TG4(J?;5@na6q3>d}9*K2v;D%`X+oB4# zDBr^ns9~wN40;8k)S{mIC!{D19qmY01E_0JvL8vj? zUAlUz5q3-V;6kTE{ZAE3WnElPNg4&O-)PoE2ikQL!hfevENd;{d0oQvvuE>Ua$ z^gqJ+V(u>WO^~##Z$ANGy>7z5aI!+`P=@qx{B&``l^vKP3UTM%d^ojcV zUft&#iAjnE_r&4@dJekLjutth5k$A&pbH#*CZF8(QL3E-&Uds3OzeCU&H55T5-2GzSczQ+TTYwI@E zD>ZoQukQJhxez!a1kvrp_o)xfvAqive$n^w?a>Fzo6PepJ!J|0f@rw?Q|n^8(<)01 zVgPhwcMRJp42wG6GEU+8$U}kw^{8l(PL!^dfsMV$L|hqvj+T(mnS8@K2_CGR2ef_= z6TtC_n{~l2@A>UzbzvA4?v871sZ~b_*Xv}&6!C99=*e_}tuC9bc1x7)wYA1?C@fPy zE|#7EgeRLu9z#xF2#5|fi0>y#gv)TIbfkGW{@I@Z_e=G6Rv(87MY+-;2fiSelAesMUq z1as*z?cXEAWta!>^$lUcwaxeT#*ocMy}P&`Oc2v&rimL-YL7~Ru)&o+hue=_w1|?R zmy<2+E=;Q|Y%RW*^6?SoNLA3=KP`WsM`D#Pp7GD`cJA`EP@&xOoRe(`ZwX#%J&OV~}W=<>=R6TDCAvrS3qx!lT2J>Pt0Gdu8VKsTV& zl8W8jr|8*9d9SIMObYk9B!_bI{UOcwPgF5_e2i$stSugb54p@YwdEh|IN6T4p$XS_}Q?CX%`yHG!RJh2Me zq}bjMh|rqW%H+S*c8FOCcv6yW!-GxGB?i=dp6=PkL*V`{Nvtxl2h54SDVI|&Q`^A{ ze7>}+2!g&>mo?#>IU;tOjqq-u#d;55s3reBw?%f?wXnRps{ID9ih-2=4R_*8l&tfQ zj=}0JVB!1xm*)1~f?AoqLl`(}xqu&&Rt^o82QY{StU4~Bm$wyYDcF(r?2IPRmkHN# z*2Kn)Es#{Yztl-(794j3=0=9yW`A!DJk@Lu9FJ}FU$+A43IE)4*k-@fGI=GiqO09a z4p=G;1}E(k2()`ZG=Q$&RvR0;H6hPp>?^zXNbM_~Do7>>3Y@#;PnfsFaQIv|;U!oc0huV+0PUT9|@BF4wo9}_-{pbXRi;XGi zZ0Q0DDt_v5&S6D)zh@SF#A@FJLeP8z6#@NlvSumJmR;`NQ1ChNM3C0c zKt%QaKex@HO10o#rjP^mPi=b0YHA+%x`y%2R&V`UaT%?Fv@CYc+G2lB3+b9sAg>c0VoyeFqzm{hG*>c^p37=0P#htdPWCusL zdk!8TNIS#fSnBTx^dSIjS|Jjuzs=)528+6mB$jMIKW-Gn--;35pGrcJ2B3FS{WA`& zf?qYxxw7QKXkC1xc3vi5ZYr}DSGu-Khg>c(lU&yrggEF9zjW=c185)d{ud(& zSt8>PwgsK9G=1fv&w3|OYiIfsW==k!t3J8Erb|}xhlv@D6;UL(p)C)HLwis*(1?vK zW0uuP!p;j(EWA8bxaDTlk~?E+9PWU_mrZO3<22=~5+$VH$8)aI_y6Lw@+GhD5hF@F znn5pb{c)4JQ37X{o-c>&z%>8$vY-uAO$*0|RuFGI+*7BNX?m03>V&5zEF>esjjK-X z0eGD-k%=fjCL5q_MJf{+LIO>mS&`%-p6Bgp1+GYo{F++a)nFlp?;6#zq zfe@v36z&i*Tw6 z5&A-=y#qQOqX>>uty>W`^a~Z(b32kp9nv1E(Kfz=i3M>k?=*C*hQHOcP>Hrf-r!0x zI!gSL6;RIkn@aJrUKs*$0vFM5?iuw7vu>NQq-M^D=L@kc=;nkvi>cVJEaejh$eoGl zi)q8X8xnjRaVH;BbKvB|bP7x8`C1J1@#}IkO;$e~LQFe=(voC}s!5=SDt5BYrB*$w zms~~Xj}OW^!qDjeWI&t0CCODwG2j&jRV&_>zf$dDD*KlA(tgJ}8r(dtVZD8{0CI`Cd zcYjcyrJn{}{Zt>HLT!?#r4$EIhkn$d;r>J{DeurYCyrsi?uekKz6|ocFhh(HsDYm; zvHthBwM>layZ;rnsz=(u=9`&-Hxy%RLKhh5X2CS1y82*ZNb|~ZSpGvANG%hMCRec% zX{XjEt*0^4)ke#{H;ixwmi}gRy?;(|)ZPI5neLd*a&9qS_02O{p^YZj863Tq?wlD9 z8}H~xHR#>c@C&=OMd$DupJy{0u&+@Kvd3JL2>y0;e~(AYpA4t@SK8)Gfs2C|V*5da zDov>%KQq6F$zc%AxXoA^(o+ zB$e%nHF&@?w=ocpzk+TuN@JA&OYYiMF@X=wx$pn;38rZbQZYxlZZ5&rHk1Cb zuRWX3t8f^4K7(J42nc6^#f|us-7c>FX=Teo6TkfY*Sv&YzsKk|V|A1~8t6}qnWFNW zxphs;zfvICBbVhsF!OI!I~09C@ndO5^4r7@oXIk^(%xorJ$8M@j7LhKFTT<%FT6!i zpSNrMU2EBx1Dup#Mg8223g@YG_bcd!M1nrgaZU=pYoc=26%K9;uUk0|M%C_L4Gw#K zHWMp|#W*wEbeY=|xozX3K8P{HN}%WrGkYxq$FjS|DP5;c56AWXXdS#$GgfvcsV|od zbX0glFhkDhnZDC~0aYZ3#Qk)K$= z?C{D(B3t{eu&9VWbmHCzc4#O!o^OfLsc`?8$#2jXZj2!Td#$4NF>`|*q&>{;)FgzV zlR$s=);iB&-x>7xd654R1ySyolg!SAWPQ;03m}YQ(mr3usc!N!`piji^3CJu{=gj3CUDnN}H`&yzn-7 zuhrC@J8?g-H$9}3QI2jH(n3H$X?@j_z!UspXs?^gt$CSuMhm*Y7AF)vla>_|WfkF)PF4cORKG?QV>E_HB*E4_Lhj*#(0{MT+U3*nmx_ z*8^B$Wz{<(5BFF_JIo$HU)T@hhs99A6CX_UjdJlIwHSkm=?f#rG%J7U;lnc%G0$`` zW2)WEsQ)g9DwM@O?h=q672W6~3Ad!r+5$(%j|6q=$m1KgzNNC}{A`3SL@h z2s;99HwK7`4(5 zfF3nnR;jTTVY;1{F9pZF0v5cf9Y9py=c>`^KGS0H^WBo$_~_?O%g?#<`rdP&p~fr) z;Ac9N^KRaXJY#?2H%hT5Stcc4)96m&k9!EP!#YdQ?@p-_J(UxD-;JtmeVi$V_sIsD zqU!mPeh#-XZ%5b)?)8pcvwzIjb%h`&q;Y9z9Q^=-^`$ivIy=tTd^FNr%}^>#c$=wv zYkvBo7e)s)!uo^0fxv{NUFF~&>68nDrG9G;2KUv&O5!p7#lg^72xSwRe0=b4io7?c zCv)XEUD%1v5$H~Qv@Xf`#ty|_gOrcO&Uap0R7i9`O@#jB%Q%r-1iEZ|A~|^5!es5k z?^xR(#F}NDpK3RC!frF-eNrDE9%F1~_SiqD^7u!GA(ysfciaMy*Io4S$eJ`_SUewE z(-;t}|FY18|MY`3M-m6-H%lVu6-Z;!N>*+Gsa8?6TF5z(V=LWgmjdZSleP`ZsdhqD z2c>eC3-bs#seFczX<$eQ1t6M0;CZE3}%|sa5Pk@0hynwCCE&I#{dLdB7 zu9N{g2k$&FoQAc5mE9d@66yMG!oCt|t9<5fUkVGI^}yTh@9xx2=|dkKXFLJKjy%bX z*O~=RI^~rHYAUW-VsG$A(ZH@$LCLU&1(JeZ&_`w_z^ORMD)O2T(x%qWHT&M7%8{pd zC-qo=6Xxm8+_Qvo8d9b|u)z1Ndd61k17tV7-)2HMgk=11={-<1ClGZPycF!pl>oc$Coouz^?{f3e)U0`a@xz;RORgDhm8~z>ixB5hW_)w|xIKlcy&o%#d%+f*v|_aN@B1C^bZI)D7{zlh$*@_*F)Rsn=vY@I(@8N!Pk zAWt)XPejT6g+07zRgA+B=w&lb1RZG@%1*e%N>B!V_%j6A<9W}o>MxNZv-jdL{tI0p zA4$C)9_3KUT>|#kd_GHOU<;xFNWoY9uzb!J_*OggE;$Hp|6Xml9x?u&CA^d8goN`I zbVYzcf&OT^)@9y|AHRszzd#&HT_3!YJDGi4$;e@SM1t$9n(~Y=uNVnF(jy~j|1eO2 z8AmZorB{EuR&;5=h^|(`lrcA=&PN-kdbA?{4RmBf$j9s-9&PW3HeS|Lgjikk3GFjk{f6$u ztRdRGpk??fj`YKYhs+2ec1^5Xs2OSb*A?T_Lo>wYLbJaWH1O>Wya`jUKG%?3m^zH_ z<+Nfd$wv{nuvuY2Tpvsf^bMr#OjNt5l8|tNR?=&$8m=c~Lcxu5Xm&+V!oxc2ttrum zmFhqQ)gc}ky^J{ANTC1#s|)jco>`4Mre}XCUO1e1iF1tV+|za#Bj6I8Ljc_s5zlKS z+`ew6`k9_{mggNfTCTxh(3Q@v_}5xAv1op)?DL;j&?xvirFw5XgraS?0FZ`OXmas; zmCJ5t&IuOU8=9_Cou(1IK&#&5@uqzS^wKA{`Val(zllp4)neO}-hRmRq0Vf-RWf{1 z^=nf(QO2q0h&RWmF&?^tF;41lv#AJx%htl~J+dc{<1$QSmw641^)LNmTpf&=(oj)P znqJTiD2Y3GB&XMy5>8Xab?X%FTaR>DX!=o09NP;qUPMEe+cM;?#~y@sh3<3|`u}JF zasY?G_h*5!rH{inVFAJdMv67-oZ7g%R|Z{+PFe6L8|YgmlGvoA0^)Y@FvVWwUIKYR zIZJVk!$)3_h~l~@C1c!!a;fx<8{Mu0H=B7;_*@mx0iR16s_^R~G2tC1g;2z{6f6RD zLxkwZG8F!sjTh($rN(B`Z-IocxRVR^tIp8UYdN(^Nc-;winLbzgHJdINkh)|3)*m# z1V}+azp|)HPk;xs4Y_#}omh@pPeyUqazmN0xZh5J)p))Vl?KAPpeMKc+SBczJ=n;3 zU>GrcaU#{m(WMel^F4eD3BL4qFCx1D-wx6*d$Shw?!s(#c$b5=3N%9p*r z<{Y5%reN3_y<^Nw#EAy{;Mf8kla+_ReyNwRo``5(d>>dB{KxhCA*%@Czk|I`+RVJp zZPR^=KiZFl*YT04)Rf+00l5H#jZe$4R*9(Vg}FlyTuF_{qSpA=)^ya8WsPjjPSC;G zEvc^$TXVUso42X-T`Cxgf^MxOI{boo#&;56(iy+i&%=EJn0#tx8`DEb$k#N8~_S+s;$6E)v&(8U)&;g;)ZYaCZ2EK2UDP$L-Dm3#;; zo#d2_`Z9^h*l@{4Q==N0>g3~ktb4E!UwL3Ub~~8A(n!Q?J&?#4{C9ut)tFCdI^t`7 zyXoBS3+PW=U?KWBhQ_8uE_H$aO}_X;rSJtEWpMLhku1q~i~T0?Fl%4atu8jz*Sgab zIZ{XufPCn{Q~RL-k*(uFiPJx0ld{qHHzNj($*Wm_nREs8asEhK6s@sx5uZxWhRVY| z-+mRZZuh#pR8L5p@3h;2%gw5VJBe4xN1|iCqLhsZmoz|Rq#K%K=U}L?Ue)hY+}3u> zranw zS(NjX;5DboW;w^m1Dd{t7h4>i)nYzgH*kbOg8{KCrGJ|`0*|hxsEv}3LBE)9>K1>G z(k8?Zbe>62ca_*R!`1ZD)q*E6cB+0jJ<%w#L>cRcj(c7<7|M*N^_T3XhN(Nu?SPNy_JDD-> z5cG?=G0<1E6GiG$}2G8yp{Bh9&FmVFO+ zH}gE?G7H>CVq8{h%-pN-fiJ7-v3#L5RXt3}at9r%9Q7|f*04X^rf+`19;PQD5;_-g=Chasd<{x{K#z$w=!{6%>LF9bht!U*!S>I~&`cD&tO6|{nF`(2!yZBp3d1kq!+rx1J{+94&X zGRQZWRB^0;`Q1Ce@(n8yYpdEk?KHl4+58r7vN4=m^X!v^IW_42vF`xUCT^XjkWo48 zDS}aSm(C0WoNheA@!_K^X+U+XGXEg|mIuZ77PU=Ep4QJu3m}gV(|_fh6#{prf*MRuJRAQm)Y@}gr;V{l zj4gFZzU}r0o`AX`1-N|91a-h$&Rjh-hszCX6JvhRJPf}sBIOj?I-iOUG z)QVy;4gDPGfVmj!K$k6PzC$pRZXarRBY& zo8FQ@r(=XMPT;bR7ZS{pJG}Z#z2>i&|4hcRsLZFy%z+>B=_S(`O|u$!Tvz`E(+_JO zp@#xM+RkQ#+#x#6W6`3W$0kAT6u=us{@PO5TVO>#%>>=ulu(yJH$JKpD=%KKJ;4jh zCJE%UlM%ktW%#;1*EHRg%%M-VUhz2B-Bl+sQ;Dx(}y!pMM@mscKc0MMS42=;e3|0-ay&chi!KV?P{o z%I5~=90-QA5Rtjt%#$99S9orKwyb$!#}@5L5Vz@$$qlXfdpfxSXm`_+l%Sy!bLVtc zrE8!qPS*)Npo=W3TGspuS%m%{@+9#7eWI4P4vOV&7x#}+8T|&+I6xMvoG*zxyAflh zszu*|pxOIzyH@>0)5GaksW-q8Ki`>wy^MvI*0Q$<^yFQ{v!M;G(l&n|G-#|jrO1~{dv zM_^H*(kCq>ju$48ijh^7vOAglXSVX*RkEo-4_;0=C{7b81MjIGc|X(YSIUv1+2-kDbecXfLinaPR*N!0@3TWHNFuM=JUZ=a=?JEBPW1daOgtcCA7X3*kRw@CtfB zXxJIdklMFWl#B?`smpEA(*K(oxqW6QQsAB_H2>~n#wRzR6Rz)CtaGKaNN(CS+e;2L zD+jG)5I=oMO|31tMS~6ce>|txRFoy`5*yc716ENVYs2;nTzYFbQ#_qGHMS>;9@fwF z>Dc5#Lc3!3bJfma1lVG%7=dHBxVpcr>js;reCCORU^>%zT4?>oPaUNPI&3Bp@@DMg z2_-Vt=R5fEem7(}wRf4(jbRTAE`<>6r3F2`ipW>@oGX)jjJw(<}WJqe>*df&X zGFY*%_AK&>{Z)pW&8>I02}Ojsu7Hb;=52irlNmc7?(MI7w+26I&C-rb@EEZ0Q{_za zDbQao?dLZ$c2&pvCA^`Z;&?ax_|^OqL!aPIKT*pm3*j+=wdC6N@f)^oeLde8MLyW+F0=T)5*2QC6Qa+QE zAUYRjXtu6yfD#-=4V_Xx$F=PbRDu&&r01dC4*+vFf~ySogaqd4{z?y1%ZLojSkdwp}<> zdF~<~q{ce|oD{v6{n%RiaD&J=9`#)llMiz^{H&5y;1_KDOFu!En-bh-t>3@8XUl$J z{kEYs53OXvQQ?ioBhPN*-b2M&W(_tc1f^rCgm5b8shPE4A^O?E?Z1gbAs4o~fu4j@K?!Z(<<>i9|EHX^V$nA3%PMS&Tm>~m1%#*g?nh}N z9y7`(S0KO3J;q@Jqn@`h5QOgJf#ac&9kAtx4~W&svGateEgc>BL)R+-&U&EBO?eEz zkee{}CVhDdL`l$}@3Fj8k2q!B8IXy6P`|US%0wU_gIWKY+jhN@4wzPho8gKt41XqaNf|2 z`W1r?Rc_sEjq`)TNf$YrVDA-6Q`}AanW6?}y@ICA#x4r`Dj>edC^RL+w~(^uuKeom zP6?c;8f3JlEFpBrvqizB=&uH-t;R?=2Wxf@43hUfgH8yIhC7WUCYl`54gRfJ9&Tl5 zdk$s3I5W9x+fgyJE>+M*QI}l<@05H1R|cMlr67w2^qb+w#K3pMkyMf|NLm&OQV_N$ zue-Z-Gf=R^%HV)*xd{mlfV5M&X2T~}7HWg~HMo>9K9}Joa74VzzP}@1GmZ|61-KRB zL{CNI_H+jhH2_>r5HCnD4_alzuepJr$zphlCMA*enO~#Ii|Q0}>xlV&?|j}!8!MN&_X%g)^TVK&j?eZ-lsTHBB>N%&9IKsNP!bMSB0yK0 z{Mi-V#HXEd;{;Ce!lE(uCd8OQzaPuFujCw%5_v?kt=tgwJVA1!Io_dup*XJ&2zf9J z0vCm=c~D*9k#y0nOmHGcZdPKn_7l2PeB^56k(nX3A^^>&`CZ=G|Ys- zh3knDMLhnQdy=wZ8hr95*N5_q?B|19n+M3v$}|Xmen%L2c0+xp# z6cmDoot<|-kd7hi2YNtUya{#`L~HJ93;mClSlJ`GGB*$Wj|2j&ODpRdvtHri)TRk$ zT{d)-DlQJ#EJCgqz;&*RTlI~14+SdZ5lneTnS^R*YI`d*q%p%^DryPz(Xz0=CbG(9 zmNi0yyj(np^Egc9DrYmEi;$@7(TQ|sGjjVDqnkvMGgE$l^YY7uEpvh26Mq%sHw=vD zoStO;YIFlEpS}^umT`2nEkPh<`~sbTlH0FU!UB(xH=ywf2Oyk=5>p8Q(plT}`q$f* zA^6Yk_H+{gClxnKS)XQe!A!e80Q?Wgx5hb07XA7NQP)^hlugRn`I4R4K+ZJQFUSAVH zp0a9UscGl{J%XAgVOg*Cd%h|4J;07rj+jM@$r<#(*2o4Fy^3mA=vqSzp@$LK+rHGCZ|^>#Fi15jF&JM3*Z{OSYWieJ-OlrQm(ttUHx&_jUYS_Z zV+-YD#S^tiNQFKn~qqR733qLv4j?AxGMU(Ws-vecUGa5?0}ka54Lnd?c?Cm%LM+_9W>~6j8e#h z87FC?RyeaUV!vmt*L~UF(f4pmJ2L`3^Yq@52?vF*lBd2~l@Rc`G+G5l-vOUEE+#X2 z#=lWnTxU_srAT}ETs>@OM4qpDRJk2XphGH(Btr&;l)=qh6AXmvTgI0xCcfi+C-_5F zZu)Srj2y3pTmO{{>*(7@L(VKO42^dnFsocSPGJ_(J@-Hmnyr8T5Pot@l}7iikLou#Rgera!wcw=qT$bH>Fk2rVlq}C;b+`c z^*px)2QZYmx3=Uw`$%{jV4N1q$aDZwMsS^xRWlI)q&Xt+v9G=VRRkb1q|h7Z`hSn- zZ69f`wHNHlj^n}s{c{4N^De*r`RQ>ZwL$+Cs{GfuJ0EFJI+4+-U2a=;=Gwq|gBb*N zr_NvYn9U(FQvqQ4n1{1;Lb&Z)%84b(=xx*$9d!aaC+O)4F?d62V|E+x z6g<`t9Cop6N(gOSn?X$acyqU+e8&HpuhXJ_Kp;-}t_=y;W3_bJ0X9?D!DyW{al5Z< zXi`lXeM+}hxOE1QtyeJDHe{io_ZI8IX7lR3rjr5!YbZw?URAsgoS}Ywe2Mb>?zTNeNyx1o89Zh=T}PL+ ze%294Wkw%MiKVwzsV;9FJXMRb)VG252ihV)x;)c#SgJ-Mre0%2Le2Ai1N~~&IE))q(Df@b6JPl+Z@ji znq=5l8-S7W@W`N1{!sym`Nk{Tuw5%o+2cD2@~(|@d5rNT=z~^ag-k#apaqDiQyLc7~Jwo6%wGVVLt0gK-rV57#} z03do2>TvrrXN!74QOPeRXx=Be0mK|H1>Q?8C0G5zA>fX|Ni;%okPs;$2U@UQHtq>Q z4>?FJ9!a#{dH(jws-JQ;Ok>f6RHx1mg@Sg4_2b@msD;t**-uzQULitBNb+=(wxtcw zJ1C8f;qWHPO*+zX!OtvC_5?H0fy^W!8?!*M(FT1sH3kBnASkJ0CTe1cA(Si;QiH)r zEGS|L&9-$VVS0&`JqG+Sj_?0vO+Jp0n@?D14e;13&JwNBh`nGx8$%2Ae-p@bCu z%ZVkp6B6xbe&w(ib}^J|mBjd-za~O^@27jFf1t@ES@!jazX3Blf}2QKDz#lX^mp$IvY`WQB&vregpbm{j`PsWEI_ClTy18r1h{$D;-c-9oJ%r z1rLLOzI8J7_QaaBkFdpv!;8{=i$kFev;tTwjKa6IXo}q4tkBO4O-5-YFS|B?KAdH`q3-7O+V(tFSwf#}w6lzCA_@mXyRePI4 zBL)N{z$0*8)*w4san_`w_zK#A&H6<#k*LEKjPk?XflkLL>t7d=yIv=Afyr;?jznf| z{DatAsyJFFF-<|a?$c->idd!hSKbWTT6B9Hkb9SBK^(dC*TfKWh0=|2-|l2E zP<#>bcP`b%mJ0_R8kJ-mD{US2BdRKDFGl7t4By(j2&Hj`hwIC@NTgBx} zs!@=#UG`b80~2^7ix0V>`$?Mo6Qjr4391hEVF4{c2ke&QwTaz2?LP!Bd)|xgP4dR+ zCGZE+z$GKS#py;CxmFf1 za5C;HL0wpKu!}L$SNoV?LIASiH?A&D=CoCXfO@P8(sA{#*Ax z>+wW426|+CO_&)pR)Y_PM3o3x-?x7E7=Q9_e{fOxh}&S~JZ0{5;q{U(-;DAI8h#`B15k|#<2pQ6Eg~hcHQ@eW#I(Vk*lHzXIMT250QLpw;|g(mO_Xx&gpxH79xsw3 zTQ#!0VRWLaa*o`d6t5eJ5H{k{TF9@15Z4As1f}8pwV=cPY-o2E zy0Y6_d<$A8Z_ivS2fj9}-Bljo{BeTPK7C8oe$TP2Z;7*=pLAw#7oyJreakF77@9o} zmc)f2+0X7}V@oyOql)bIHu+UMR))F+U*Y)XrgDbB*YO)`az0VLx7HC5psZwG*f_YD zheJp{Bg36nPfG&Nkcbdp3NkZ`Z3F#~Xc_$K$4|{Li)GTB_IUfLPF{^b1Wk?{j6^dz z<`s^H9Drn=2}eRlh-PIklrK9k1$^OA9KQebPiAmD*<2ryR5emDemq-_XDariD!)Gi zeQF?<;MABW<*&)}D-8`Cwnz0+4+a11TemwO*PiW6jFgced6WtBd}^1pPwIlSX0;SR z_niCK#_Wphp-e|zOts+2-?mzLlp{hBMzr zATV5mM%AO4wvsv0j$3NcZppD<$Pm&j1(fD4jDb?7BjmVU9UmT_s`#@kjfSSaA3KY| zO!P?j=M?i;p!2KinR<@r*|UkOjgtFj2tu#;eKvnIO;_xrh2l3Kt)Oj+mK5bG2PQhM zy_tsR?^CS;v6#xp=-b*~csi@;F4O@fS6d_LUqGHR>^Ykml3j-H1ySu3{-nOSIP^{w?5kH=v~{ zw?V{}p{pA?rC)6vy13-Bn*Z@H6~`tD1@sWWYRYc*J1VTOEIuEl<5AK)%pQ`ciXp0% zAp}8 z4*VT-%1upNcons;A4B^8PnlC1DdWb+r$kI{1+PP}Sf@$UhJ4AtV-t1=EuB0;$0qtC z+*Uw@njCeBjInFXW6!(}+_(cBW^y^$ti($Oxg2^#FzC@8iJzivcpQ%05J%34WTpDU z-w5nE4nyUUywIyc!I!^+qm7KFVm9?GUzJy6xmHn#0!&^ip(+s)P{FoMYLB@PRj)go z99PB!!mwFGqL-=}pf7xyvf*u?rJk$7(NSgB58=z({6!lToX~xR&#Faf*~|QWFL>Vj z!lgvhfr)TCatg?mx#QtAgM3op%JVK6i)?^I`@>m#FB3^KV-Xb2-3fXjz&|<6l8x8i zwwB}?teG-?+7a6R?`BLLe-2CMwL=Jr{_oM&6|+O@+jHr`3yVrRFjjA&ZNl`Fi!ZZZ zJ+z;0sB@;lgc>~d3w<=xy?hJwzEd^2bARwQ9*GRovcFs55Av#J5a{xd^cnJ?H#L*tl$P_dlC)s zuP%qo)ouI*js(jkT4>NwXw6C!d72V&+QyQOxG^pa%vtCDCGl&3;~DlkysY_dU{&6yvw{{tzn8lqCU%;FG7dY z=V7O6lHaDMhu6I#>8uJ{@ZSK}*_L|Hr}$Lxo3g9gZaA?D$oYzo`;NX;ar>X*R*Y5u zMiNrZV~td2_0h(!LIO)V{92?s;t9Z&IXvpmrd2(vTX2@Dl*@Bac^z+ZTJ-7EK7Lz& z1D)Me7dm9+Rrv)6lhA!@p~)>173BpZ7$LEwjrzx}o_5UnWTz}+0MB>mI^&uLksWVq zpsiZpAdje1hW*VcFv=#fFdUitXq^I;p(zMKV-OB>KUd0^V}Abzru2RcI))y!#GHng zPw1`od0{_S-SCqI@S!wU913*BiyQsj+?Dppw?{ynDLwGbXWN%=l=j-=DxB)-0jBAi zhlz;+aq=l94s`TN7?#B7ei8^iM;h8+7@yTEpu`s-#h~P3G|q zD$Am#*JNrUKtT5f0_XNAIpj&qI~AeicrVL2@kqXmk)p}YZ?6p*^a_NXcrq7?B?U}5 zG3be~!xMGy57}ea<-2aZXM&maF}7sOz(1`~6bR&k%~oSVg{Q>>(*J}C+NukfZo{w%^P2%Wb9wAa+r=~aX+_{c<4sy-q;Dr9*m27 ziwxScn_~ip71m=5;3jIqfjx!&_>fW3V*y9+$+yc#ctnC|4eEZ?)>)bD7TjpiZB+qb zfg^&vwCArh#y&w%tKeS}3A1YIOZHqTCeTqu|W{Lld+6AX@^ zgd6ayrEo_J3@NfuTsk#}Y4|%7-uW-gLY(%|QN#X7V_(c)P3?3-3^(EB|Tn zhgib;QY=2s~6$+Q8hf4!pWN}V26V5wQ!9{H+j zBV`UZGG4qhITH&gI_t^ncj^rv83;#`-=%%RV7wl4Q6dx9> zH0gIe)*#Te%wTjgfOlBxeT@I35XI)_QzS0g==;tvV86%92}xB`cct*H2p6KE1Hx8T z%I(c|8u+boCT%XKyriD~C6ESz?&u|6GPzopX-Cx<{;&EO=+?P9LvvzXSi9&DG)=wT zC%$(;*!|nQ7$;F{rs-E#FEt-rqBTLzcVAC^*ulbe5khZ3Xq+j0ppy#BPTPX-4*@^f z9z{+fkh_Kq;^DF2+kT(4xmU;^e21w4 z*k_p5-W(k>?z>HbF#uA-t_ecs;CjCV_h!vP$l`jcVM6BPSn&<%EfXUN=pt%)Abznt zc(AIh2e*L@<6ZgTg1!)2jrDx2Y7}q5Avmu!3>L8nt(2~vUU0$k zwsrBbm<|Bc0mtKM3 z-S{bNoL&w>;EUqV*<7HJ(n0-;%)F(WBX8%NF7sH*QHyDPXQmVA$cCy2Hdi6Nk%ejc zvQ-PwLIR0pg)}p3vP=|azqbWy|D50BeYkLrA;eUYP)&i+cD>XcLz4G*>A;Ep2(ykGBrckqtqz z@_(n04vw?${!Nx%JvLxXioP`8`!UsJ;kfoO5D3I7cgT@0u^%CmzWZ@WY^K3Rr`v;!*i#UL?dUqD|oo)VB3GgB;+23y%*U@}PI zUq=gmfo>!V*7jI?rz^7Wh%jCBpSm%^RFqIbe&hCj`rahP8F~QOy*g*Ms5mjmimyI@ zK1}Qnpaw~M2II>Gke4HJ9x5)k`upKBRKbD;yq?oq8>E2#AIG2~;bf*7`bz>XAp|4- z^|-ogE*k&#PWEMj3LxY?^%udC)eP6=N?42<3z*!f@PXsqb2578o%r+b_|3F+A13RR znWPgd+EsS((6QzopkK`ECLqoX(aU4DXS+uPrT2c&xDR-EMcpB=$`57WH{KJ7AB)#_ z)^z0Glnslta+W*-IUQVwC>wufELgb)uq{{A5c3rImLTKUhT?%n@9&`F-~;+?lOO*% zj(2>b2ZPB&v1x*ltDI=>r*D=X+V?-#OZINZg~)V=1AoL?=)Jpaz5-2Z!|h~-b_hHS zbgnKN))9hq6-J!glWB%X>VyJZpnK?x-h1jh7cucLJ(~r`ZcZS-S07SmI<4!<>u0gr zIh?q5N@s8?$Vy<+dQ!H3_p1Nsw|NrnL*1C+7|nOCd=i;J zf2)7*F~T1-;p^C@QFPs_XoyPDqKO-ndn~7&3N8&%rX_iPt^B7|L>a;-VlinsKm|yt zlFTzc;?=E$Xvflp)`v7lku6S7z$Ry@)SUdB2c3XYQS9+C{@r!!`O!_HMC+&Z1t+Z6 za$@Px9`PbASTw%sNhzs$qu`~+Hv*A&Mp`skU{HxEq4h0d-%yks8kei|DR7t3x?OQq zv~3aVZH>Yn^e3J{*maDiw}zeOIch^NPMARJGPJzlIkbOwlzEpB0exW7ms=Cc5eq(yA&=Kc zpyUgE{}6wx;hx>Exr^lPU`thMdsiAl_NXTC%><~Is%k$jt!MW2|M35)24)V z)Pj6Ymbw9A?xo1QW_3V!x`yEV*^F?qpX}X7Rzn*uoAKqht)0Xkt33*>FX#i4b^Jf` z+DGHu;O(dr7KH>&Ij;H4*L5ZvslIkU*=o9DaLDGGA(&|uw84F1hmJro1E~Z~rx8Oye`uenwP?Kon(dilfMaejZ1*LTA%KGi5+RRXbYg3GyQ|4%gqe#U(#f zPF^Zi({vZuGAFzIXdU;jAtLNx2a5&-GF`<*D&-O`v5TjuO$XqbE4HJbPwQj3xbp&q zK0wd@X)L>Ji$`8r9UkyC!)we_vEK14Oi%I)3zhxq(;;mY?~`+q7Hsl|(}ksO?$51a z15o(g#0jAWDOZanh2tDy0X6a@AxO+_EHT{#W@EAsbX!%x?q)+|SC&QLwIeT;WD&BF zjUqO?)z$$s1w>~9INQW$L%(9lVEfWg3A8p?$FvntLmpBR(^n-!@%uGaVpKdwWT*R7 z1y8h@swgVq_5}2sgg@%!jg*Qo>>2dPEe=qjw<&^_X)E{DikC`fPE6w_cQ-~fRm~`R zmE(M@pqG>68z6KQC$#_`@K%W{3ef_M2+wrY%PKFdfH5iu^#sfJ1zIl%I zchx?G4w6yFStOlFF6vuOdJ5>Rfn+t*Te@xiWszU;|1c2cJ=S!-!aQ2Zm-RDV?d_Gn zs_chW=OJ48pX|~7u`4Fc|Khu&mIPggAeL{f^HUU z^a}1EgliP!6S!1_I^|rSD7e?r-CNCRdDwscQI27TsU@b4YE`d^`151gJ8g|e*-Y#E0J zc$`L8 zX7gl@fNQ^z;L&9$^EBsXH5O!>~ zjpY&s8wai}i-VC+^r~b1a#}%8C;0?ClSJ+Edzxdu8HUo#YfW?{^VY3cBZYGyO)gI6K6qG z&WOiH({Q+KGK?dDdnSi_!EfTQaow7F(Sy+1mfW(9Ca4x0rWNozIS6ztM-$OMy*YCU zvcIf`4j~KY60b?}7)UME&+WgWA>RGR2Ubei`PmK3&<^`JM$u@tHi1s-87NkaG>%+> z{1gi+2>HKKFkA4Zd&j-9>0Lwqpf|4Trc6F$Oy`6~&M8tLVay6GmA3M_?qtxLH;OD5 z@(m{e+A3nlx%T-}bWGQ~E%!daAw&%DkRw6 z$id}*FO~DjpOUFv6GfRYZ8UL!*LKb^D`|Rvw@TeENZY98!>PWIkAWxmyueE(FdeFB_avSVt{X-6U-Q$o&uq&9`g`ly(()VlNuLkfP( z756N9xtDV##i4{dYyp={UqnMJCBnC{=9=;txC6zZL~F~f^5kWK)_Liwr<|m!dz^Nx_c-f&n;|TFd6W zZ_f{#euZU38J&tnaoRTayL-KX# z>Ye;0DXw}pGgf9#&k+UlfUgVx|G5h{5BKE@i>)|SKoId zfD&GxoNk%9S|1n6S+~&g6Ojvy5(uL%q(}_RVG#s97p9oRI{9cVFl)_+I_ol1^Z+); z8ACed1}$89@U)+O{g@puxiD<8$)8kMhw#r%K`#L4C&fPla0O6CVw4%kjNYY+i(NE= z!Lt!l-zac|4?vfVU8hLUjzmwck40hqOJ^0h3*b!j@H4Ch|BZELy1)6t!g6Ml3FL5D zzCSRX5_{tT5iSHG*!=LR09!z$zhvCM%P71zzT}-Ya|L{{2_?rQf0eMR0KIX2pPO4Y z3t7~KcU+-EV)JHroq`x~PZ{XEzT#V;SzHNJwLR2(d^9vt3R|ubOgqc5 zS*e%)QdJ5Q*z9?y;Y0Cr_JTfD?=LW2Cz3;W_p|W2g=3=nL~3N>7QR$~n0M!| zM^Ptmd@O=T26kM30@DzI-se$-1svW+{0lL#PnbMM*(ulZHC`cmPY(A?Uc{s}ndp%R z9bgc)W>R#=gx7YotXrk_801kCC2#iLM`!3F<1gfxj}ia5vg=`pzw7&0$<)Q6^`!+E zO&JeIQ!(<8*xy#RLW66!pyLzjM1Q{uf5+w3`U(1NG3XY;vPjJ__Ua?l3hgUrO1a9K zFBJQp(UR+o|6#=V!cO%wDe5{)0b#3JU9AWy0Pt3k3y7sIR1VadmrCuv-5J)_!jg8Y z=`s}Id12y$UUS7al+U6_lq@%&l3g>uHfuIs`aLT}5N5wKCm>F9JQb^#INxd-BQ-2( zUG-v$7&!xp8twhW^+DcL+nHPYgJtnesnh6~2kIB{thnN3I-uicL#L#dkA+|QUV3R7 z(na)`lzV}*)cl>#o@}KE)@gJbiZJbUW(f{Cg5`FcqWFs-0DD7w{2kkelDndr?w=z8 zb)A5T^bvkn6r%KFZ6V?S=x;TFA_J=Vg(8pEbV-q_US!$EzaT0IUAE8HgE_v$o6Q~1 ztEIH}^ld7PeHC>SaVcORw-tW0q*dZM>!0ZqCN&j_@Y zR{ouuJv9Ts?+q4QoS?1w)mxt~)@;obbYEsiFAiRo5LibZLGiFc3{T6JG5d20F{+^^ zyjB8#TBj>|)o4F|bi>ZyB00-n9N;Ao?#I{h0shbqr#9-;aNG@p6YwQ?B)0XPL(er7(DdI7* z03?6XRq;|rw)3`CrZP1yhNkq8%sB7r@Tx^-?A9Fjh>>k;(dAS69%tqfnge%gC zzospXkrDcPkg(wQcSKc+0-6-SoI7`pJ-zvNQ?GMPnLpXe0dO`!wH$Cm2>}}cpzGB+ z$}xh1qcz~`mQsIG`)%WRRT2N;+DyNzm9AOR~AP*-p8xFGTL#u%JUK{DzbiI@raDMg=`vg59~D>FW#EnBzFz zjdoh$z_=och%U6KkF_4ERG&Tw`x%&rfl=YQ`5pElBBuJ?!nJJaTI{LNL0((RnZ3J& zYs^p3M^YNigAj;66sG43c~&WYxO1RZa~9MGa9r=FMjc>d;=r=qa>1I3PsU-x?hiud zfM)_n@~5{^JQ-N)vr?(-Vd(ksNZDO|{X$Z|qT*||VL<-T_WI}rf87Q4tJiB)s)eg5W71hFGNLv!A)x7~i*7Ib@LamZyKrh%qW zH6}e>W;)Ms#cOwOg0>%wYml%;zYW#mbFPYQOnA!DOI&RP-kQ7_@UdiHZwmX;?sl7u zuqiBO2!9Gq{5RnHrRFCwb$CAL+}q@C16L~1b$CH62Q2a>LS))+Dn0(+#Hn5b=(1$K z4R1UKv2#^2L}FLJ8yR88j79+6eD)8Y-?lf48EmPYY%WZ^sVXOlAadlJwze0_WIzWB z1?2CM+LEmm_iH6iMJiztEaI&tLH!IgiIwd%>9I~`zJv96+8KSsr-?5mWTT!L12l9N zW}zpX{jv}1sXZ_ja>eB%o4%PoAhTN%Nkx!@K2;wGJqN>dg_u$x(CBKmj4O-LB+KuJ zRR6U~jwOy6GEProU@MWu_YrcWmi)8HTu2${5^A7G=)@pJ{u(Z+l$X}+nt_iPHt;SH z@ML9j-T?ajxF7|s$%aiSm%Ig4sMSeTxTjvbRGE&N14Ru&$4qJ!Y0XMHrMOO4fj=q) z!T7{n9zZK*xT7?xvd3}uQ0pc2k=IQ-v*FT-@K4A%Ps!^CJ*O=?dir~Q7-B%;Nj@%E z**EE7N0@ECaFd9Kk$r`Z72{yTh3SH4b9BkE-^j66hi2RWH-1B6+rP(V4jPvT1zWd3 zu%9Y7t^LtG0TzJ8sxjz}^5$9>J5G-bteol}owJxyO(rgIH2jm!zp~XA-=8RBpRA?0 zj-Hi#ex=Guqri6*{?38OQe6fB!IkdK8y>5 znoq%FgdLovi)L1?J-l_pp3~H;N6Q5fIAPJZO5;*w4)GoqA&OkPR;r3CfW0~M+_AN1 z4|{l+CH&VSc} zFXO~)Qg-H>V*#tb@_96$l>Y4=Ii3N{m2ji>T?6BR#CmjM`F>g3thn($U&vrZSszg{ zJ3!BOYVDn*@L_{Td%+8XtTPcAH_CYddUs2;#NbIK4n9=B;w}kTM z1DNvDd$KJoFkqA=aCZl(5I%G7+O)|?K2Hy@rDas9LEo!MMkV`NeLM4=-l6i$-<|f9 zhHh)gng)W}^-d*&ZRXv21naShG5%QzXwmAx6JG#r9JctGGz5*CGW|>s((@TP2se}k z+-6V~6B+rxd_eEC1y#=0#EuuOxLK*)S4Y6k!*A$7IuGL?<7P=Rl*zsPqm|$%_}#bv zkrI1$IYe4i0xTstYUt5V$mqyAuscld5uCWdi$ZP6icl{Ul9aJEfxK|)w|9Tzxe^se z+(80)%wVxGn$Zcqi)AMR;!pFvnN%m7rH8B+tzLB|h1M34Khros{K!1?Z}`6yL87>r z%(xUvHRMcB!J?;vf;^57olBsH4*4ep9?!zKXmFR4EFaNIOn06zFi zJTue!IeUsULSo0IX&Sm*TmtwIVMYb0eSs!MB{7bsLGia`30M=NQ~36;FaQ^ zE6(!w|3H_G!QZZJ>h((}lE4zQqt=z90yj)-|Bx1saInPg?G(1YWNJi->&LRCsqXI; zJZI3wSu^T^-vL;Nre+Nd)-OM+Vhgnlm`(b@4<@382CUV%u@+d#N{D$oWMmIU2)7U0et}9wO3?FTZ$~;@~^6XOY>Q?h3j~kxpEbXuwV4efkpyK8%1S*X?t3q{a9LE%Tf%Rk*TC3_q=f zx83rsW^4bs{FjGNpgV~xdOP`BrTJ#5B73(VIJ5rIp38X84x@}c98>r@=$E$h84XFS ze@?twT#?}RHIItjIN!>rzf~8t!bux@gsQb}&KMj}|0XNT^W3lV3)u%|QEbA})mY^h zh^`gkNxnuD;eqw*+vgCY2_S>_3xdvWYM4ROks+VPW8+<7gTj0%el9uAta1?4Tfn-ev zJ#R6jB~Y)S46ir8D3%O$UnEt>o^9r+5g`j3OGwY&H%t(6zn_`AWcy3m$r9<=If4?< zD4~}qg8JP)kSAjll8PNeIbS6)UZ7u&p0s6i+d~=Tg>&7t#XDLm=v>uUUj!-&U|rv4Z1E|2`#);mXbvL z8{Z4SL)AKU^#k1yx<;6@b*I{(9>BMc<%6#+8~4raXX!==#(g50Tkew@R+Xj@?30gx z>a;_Mjizz|5FUF^bmn}AD2lzHX{8sPhx#5wxNO4U#>XpBW|{*!em0qQB2-%{%gz1; zww#EDmYQ{tMmR)GMx1Eev<1l;iRBaSyG6o4vxoY2rNdH$l{6s1x11evgS3AV;+YW8 zh+kpB3)ikf(A9B~%x@@pU<>lX5x>$@yjja2|NNaXX7G-_SAWuWhb{WKK~9W?`MWsb zC{<4UcLZXlRnhd`Z&-|#SGf`u%X|aLn5ynSN_ZtLq4_5rd#Cge*}7zLN08ybkl^ph zk#AnIE_gpwPI{Amw07=PB?k4!gc3nNeEtTVWRyq1A*kOdLTF76Zo_%K6#FYFOZ+V^ z)#}%x&dA5%ro<+a@w(#|pD6`Fkyf#jV;X>=BF2Ky=!&;HvFRKO%`hg~XdNXsa8?^l zf|REt9CQOpp-Et>*>NFZk#9|g`r{o%7e>v4#|u!To*yxN)ZTIZ{i?m>;M|2Guu|Q3 zRTb71fIpk_tB4IUgMic_n9e!9`}qSZ%l?Gm{OC_F#M3b!=*J?C@_epZP2&{N_v{I6 zf;XW)jvT+J>R+cKKGS~IQ(qa#YyOS8qbg4n3p8~LdPD!0kz4l~(gkmB`u(rzBBC!VLt~9Uk1HyENMD}zTOV1g z8)Ii+9&-D^2c0CX1Du|Yq)(jiY8cwt;BMp)>klw#FRhO3_0JvZ5=l;=yCNbC6guD* zjA({gDDIB9g#7c(`9l@8PG1aJv0Blu)UDd4soA5Df~e2Gmn9{m*QEmeWxlZoGpdjq z?&?oY;EMOtgPxv8ZloDDG@A2YGC>ECgf^EXmb1T9Trgj|2I;tm4>$y@n6BoD;|U{gElV!S*xM(sN516z~fSo=Rcl-lt3-J>TEweM4CyRqUdXwQ`#m1{9U zzdI$*p?8nXK}1?aBM4fw zFjGTX@SwOw?CAZXQn|<{|3|E@!JF@WQM)PW-G7*>S9hjLu^;!5-TG?c{!E~@l>RTt zSuvkO1DW`n_4NYUhPtG%gDExy{U{$GfY>FY{^;L{#@M6X2ty+qpQtuYfU@Iq_B92e?zKCj-q7ZvQP zS#EI!N!mairl7({-z(Bh2pd3s z3N@F?L`faeH^boSYW_Visel0m4R(>}o|&P3C8!c2QwpsWKn9bO{tDKl&GVQKyOyzB zOBU%!IWNn7sD~(p=`b1eiR%bI?AR)iHmg+ZDH*~RtPVA|4={o^uKnV8RzVGL4ret1H5`J?iE`v z2Gme3$bS{HB&9|Q$;D4y-?c{6;<}B19_vsfqv^nvS{Q_LNSBKsLDFnu+R%P$G8$Yf zz+_MOz>WZhCyN4kb6X?*2>aQ?I6wsu(7crFq>!ak$w36ndCmyRjDNgGz7Q_sC@ImM z9ZP{;(BF>QQ4q_Ey~200ea?m?z(_65&j-Jssa93z-v!}ikD!T3i@73D>Mi&uhs<1C z0fNLiZkH^fJbW;d^z>+0hWhHs)m-dyMk8vf*%N=yK<~8qsCaY;mGhsla+(Tfz~@7n z{NPbs&{cUK&^-4W2Tu!%>K`Qy(d0QF*hv*#ghK-c7#F}93#=5)^lg+-MWFGfs=`*w z*?UGE)+;XWOR_;;xIU${V0T~g&^HdTW&NLR;H~qh;$|2;SovMA)sQ5{CaJqzc#;q* zPl}7_0ZAj91^^lGVkZQN$8eFOIq~t1erWthMN#f+$w(2|NNObi4(L~ydGf>?gOS*o zf1YB_OqhKYTgHNlPfV(Y{Yh_Gev3X#mtrn)8nw;}(NitE{_b)BN3bLJ(3K#*MJs-l zi3t^(k(@wcPN5!|xuQr3fA>A;TV{ABA+4Ce{c96NW!1?mt54Pp;X{~;oyl+6Sxf*+fM#Fn3fdgomP&S(KI>FU|8c0)hY@4Z873Z%$D%vw_Ruf#?phS z5?OOy^y3_@jO7?d?wJ)oorF!BJ*~xA;0@E9-k~FpjIk`!wNf{>-FXz;LSH=Wdn`*ZXV5O_sb#ej-=KYY zrRV-+M@Q>eg}c3kG2k#+(SgI2Vsh?>*Pz&(|>e;@;w=;=)05u6}k#M(w1=oQGgz#pa~Wp26RFg`wyOdu-jX`L9;J68I%%V1Gu@D z9YJquvL{1L7{2v49vSoxt>wuCEZRlj?t39vTXfV^&jRz5)q;e4IOZA|>Iy^_%`ed4(+Pr}rc1g@A=AWOqBiYqe1b z^=~08Z<8q&W_jo$PKwN>l3J_EQ>`B{DJO60i(fk>NO^$>Vt^T6zP;->cskAhhY`+6 z{10c5ZF{jE$R*7}5g7frRnWIgPYi8S6!KVb6)1ACeKD=ep-Wv)75AriLAEUHD*(#XI5guU<1&`(aK-*_RMgSd$6R4+&%( zWs!!zapT>#b&)Sf=V?yAu%Iu{itd5C^D76Y++csSu>LX;+f&^tQ9G{_rbqKY0@p_)xPi1 z!GYsUoW&=|8j3@J?tIbU#;aI?#BhJY91c=B*_F~M3bDGJ5ATh>Al9{DCzOABM7)UG zhEnmUucD}~`~#eDW-$Bc9YALre#7tVy$cKu0z->$ROCS9E6M zIVUHvx(jb+CMLpd>0OBDGSKrfExN<+LX%4*lbNG)K!K}m2u3{sJBN2P*x!q-=zkd` zAvVy9pfpLFS!6yW*_fw5qWeXGUhJhO6ZBV&l)&lzj|NN@q*Mts7pI{-o=+g$;TPt}vZdrTUXn~_klB>Rowh+<0NIg;>$Kremr zGH2j)BrNY(hx|IcNv$*;QLuj7H<2$f7Lr#OO5=4q<|8s=QtIlgmHB&fq(U?Rh}B`) zjgvhbwa$26kEu(VD8V5qB571-oSkhodke~7dG-C60uhIjqGijOO=sa^ z7JyJsbI_ldGa;YhgU=&&0lnCDzbpo!#?DC^sc6LWd$K~PXCovJv<$O(zA-d2b)fhW z3QZRv51kp#>jmfWbrj}dSx`G>b?gDdhfm-LlBb;*ZUuBJdjf6j)KF2<8vc*btub}d zS(mF^%ZF3 z+VeTEAu@1E+=)gG2e`g6k|>6YVBv`E zk4B*%B@%`{QGvT7z7!PJ;|azN=(okT#HO_9rDoFit&_G+8Sef$?rv7@$LI<$_xpf5 zrIY$BXj*(m8oyj6?akFli)%w5*4iNFxj66^Kv=6Cc3l39rd<$?I=E79;a|ii+KT{P zVDsJvd%!S$oDH|#iCdpmU_z83$YL@#Pqxjfa+nko9aYQSMOkYWp@M^(Qod;<2CU+w z0>0An$EFDh68nnj2lF-lKIVW;M1&KLv_G){9of)2HiGG-{1Id6UX(@0e85elM>MC6 zA@DK!CeO+K^$kzdr@7ETnhaat%*`uvMPvc+g5!K!NW#nwwWM-^P>}hebC*bF(PfqH#e$3zJa`OrI1LTht5ZeRI7y% zUdplYE{S2t0^b|{$f)hOmye$CN13v^F&NRaz+2Y*=}l`rpn>wP#<(wGVuRF*+B*Aj zGOu@JS36j(R)UfqzXS$)1yXCFWZr({{!*scSJe^zvYK*r^H=Mjffre4$NGPiT?1RD zT^GG;(q!9qO}1^@wry+TRFiGn#$-&GY}-wm>id4e^ZtT!^>m-J_g;Hpuyq5+WSS~e zwf&k4%&yC9zhuQ9c#x_9e<$?d(H>d@i$1=DmDymh;I182-yF!=xQPaR#h0?w?ueQg z@%OlwWSiG09IfOfjuek$tAg|ehOF_8LZA7(p)N&A!PS%$E^hO;^bIi3#NQ3@lq~Od z%}k5L;NAZ=-NEC;-B!mqCl4_=hXcK@b}wUn%iJ|Oxlw{3iZC-Og~zFf>-IQ`dN(1B z;BdYUL9fDwL%YR-xsn0zbDazaeD-mV#wL*R7GAF=VxM=?d)FdKYk9B;4d*A!BVMUM zZv-@EDfBvgBy`aX1*>DH4$#odv`*NZ+Bv_1iRUOtImV5t?V@jnwtuVKW%?#|9{_y) zws%P>C<3?b?fUrUIpk8d>(DSz>J6@`{7o6M7jyzjS$zhR4sm!YT>PxggjItq6e*af zfUK-Oo-o~DEV%;vc(*BT@CdGQR$)2Kxm)}ZptLjHFIvOIB$!y`T=sPT5Nv=Cesv%h zWQ2~-vLgVxfk6ir!|tkx6zjetRG!<6sXcaNpm9wV<}UA0ImU(sYOone&0~W8>?-Q7 zgS0>Euay8XU#KLx!3Wp`K$QT69%bkd2%b<2RgXqowEH;(m&+`XvPw2sx+=K=WkDEs34L*jhY4P3SI3 z@y-3SmYkG&>1@mDRc-+|=zpCpVk}Qb*qz?8tO29*_d<{e>KW?+CdW$f^Os@wHx| zSeBr7nen$=D4H0|*K^XN9eU4EVd}psp}z<Hd~cvti#`Jh884x;JZ)vVPiu!&U8P(fsrWmFx9Qy;ut@yt zn%6hqQm>6WS{9gxruvp!l#-Q?GCp4SIZ$r*3BMZt_@D@} z2wes{0KM6(n58~vlgxa;zPd|l!N@bNS)tGr`@9+8jnsVJC7$v`9A_8FV%!dM|E11O zv7Uks7;wvSnPsPmm#j+y*jttijddi%DJoSfdP45~8I7QuDmTzchzjN9NpBsN&%t1( zeP`d5iiGeglz`f!56B0Uv5`)Zj*2_@TEB8%bAtoKoMv>u-3&m+k!zhASO!mC8!LkzpW5Brf$!WSeQt4p@mzx9H6_o!L-4$S;1pS8NC5mt#U^_;+t*4+J8*56n{&*h{8L^(TBu*dMi`USAu~) zv|(nkq8!#X$Oa<}*S!g#I=fVQV}Cq9an{Bl+L-(6L5y46yxgL7F2rzoj&F)I0v6+} zESH@!`jy0944L*ER1jJ=IV4k`1lMOh#rKzIpidG|SSsEuQ36<(Z;G~T>5FgxtGR68 zy7s9mi$>=-LTSg9w-Qq|A4Vg#3L%Hk06(yJp6=kp2eZb|wY4pr8Z6XOgK@Z3B21Bv z;^0CU2)gx3B3$ddT_*Vy?a?mo$H>1d!#pM~1;T`hWC|)yEg0f>W8)=Dx9Z%m%MGm- zu6zC|;9V;_wKDQ;tUG$OARDm!gn+6tiOG3;x=OF~5PAf?NJPzMtmtP>ymujc)3Kax z#?nk&VXT{#R3Yr~y2C@LY^|@;r50FO+wMPE!@6lgKmr3*y0;Z-e_vmy9EAJ$T)q0x z*yhTg%eSw(KE(qWm_f%tpxTyXxhgVgqth*%v71pT5m;n`9*w2bmV}6kS37rm7VvZk zu02k?353FqzCG~(K0{Y@M2N%B{NyUMMY*s!nLlWJ%IvwBp`QlT2&F)uB+}goayS&0 z&}5@WQG!`da=%^r>nXoXR1kK!U`aAJVJ)gkLnqBSK_V&!!KUPE(*WXZnL;MX>QknO zHv0$x3kw%E%oA_YGuBxHQ%>pNwxE|qMcS-DBh?muxva?-{`Rk#MN$h4Kh0m0e&mpk z3^rq*ECZCLJ(C5Rx6ALeob?J(c!4FM~m~aDU^l*sVY} zjY?=F&~?7xBs80>5UU*hjN|Xblay%T`ZIU>b%S-oS~|pVrtqVQ$4??9H%})dw-h+1 zP8ZxTH&(hGjxFf4b9DL!W8Phw{LXllzPNUK1-fNJNQO6aiJmZ8pun?CjdB*m5Z4Rx zou)Oi&T$)qk1n1hTyQYAu0-mu?|SI_Y39ct0I3v)`?FD6c|R#R19In=6+^s$r7{aAiHtJs+m`^n)doWLY}<}Dw6oG- z@aNwzNC^P8*KhI%Dc2mlBmLQ^kKhWPr*bXMI@50G9v}5_KF~L9;V$|6XDSP_QIi14Z{n!DkZ<&rZDJ|+xYH%IO9n6a}8qXN)50-xp+ z{4VMoLa4Bz5XHe=hb;cO%^gCF=k&wJmFHN{qZ`~`NjFL5Gdx@@KQ_l~0NuEJX=EI* zC|g(JMK}r%O?XJGdeNiliiP|Wi9FN}&?kv@{b;io|BIh~N%Qe6RX!6wb69tFYQGBv zW>TrkoNX=`c8^S2!|GidH~yMdV&?!O<=LO>@>A?}^Ob`-kr9{@l}IU8hTu7}vnx4? zcxs?uCo;z-V#Wn9vi8#Ncr0TXv9-(HA`^a@zVmvOjb%w+JoUcxkA?nAIpTr!mV{?r z0UFhQj-gBhKKtjRMNzpzb{zDpn{p!#S(KQ2ll&S1oq&>YK!U(3dDgIZ6nyQ1A(P1s zW7gg06^=n0b@UFF*M2|_BN zE~Iu>Fm8()l1E#6Zs3cq3Aw^fYH~i2;d*g6tO({#MQRIjxi~F=x;@(k!*$g=4afa- zZ#_?_fKO97l-vRpfR_*(0f4>?iP${Y#XpWb*Geon4!(FAA7oG>)p2z7+ec!+&*$Vs zxBSt2RH}q?IVM=ch^49&0C;=v%9QdvYdFH7=dAOyH%8z7unG|E$Ro{O(I;R6eRfLE zh%k(rr+It5VHs~YDv3^v75^uf?4bhaurNT+t>L;Wvnx*jz4~=4hFDK1o%jjF5^3A@ zN6#*H8`mRb+rZ5|;WW2B)gD{1i?2AyVu0>Z9zLBLJO}OGBkVarroiuQK5UqcwLkGH zUx^L({ZcJ!8UHYS%yA64JyED(vB4~G7U&DEgA1cg=@;pxWX<>RmPm}Y8Bn5kkbBY` zm!(z11%0X6=4CEJiZe|-@UlP8yR>QIbZu2m%h`f`Df(I)<&g`t>#gd<#E^+-K4#PRNS6iD+S^N9ds5J~Fy$tmG-Aks zihkPn1d~xbv-4y0OuyBGc@rBRWFJ<~W%l=dMu@7DA2PA&n_m?R%Ykzu?zSA7;`Jm6 zllKuD3RVL<Ul_wH@4CZD4@wRS22+S$9y#OhXgEbY!znCY&?)ORXv*h?QB2wvW3pezx#s@ zH&t=Uv)qtpNkC)%c7X1=*JS$~1Ap@IU|cD1M+8r16&M$WnE954YFlPJ(2z~1(g64t z$0TU=By>aYm4r0~(5Dl52zFIqVtVAgJVX#hfWALY;l~zNBNRAWLNlYfEIfa1QP*Rf z9JB=dd8fMZzmV1YW=Kw{&8k8@AK@y{UVi!l&{Ud=WV_g=(*#liB72a~Xpmh<}(>=shD;<*3B zny6~OK9&MmPdOq})5q2W58c9X@yj23xxPtz6|1qXwj`AIlc4|9p|dry-l^!+A4{rt zJ_^dLQSd)d(R+-BwP#rWb|`C@*QX^$uxc$lc`@0#dpL<@1M7JBdQ)~!#x2T`(xzuD z?W8}|Vchte=_68UN248soWIay35l~4}jOP=C}D-z6(zlo$i8RLOVVZ z!|o?qTCNuZsHnYk)pnrCOId4oDDckg^PK=?K7_`96MZJ@8`s#Z()Lkb>MZC*0%GCi zFcZR-1VZ9{F53a4s(}-%*(0uy7D2Vk_Mu`hW4OeUZ0hb!sfGV=r8gr1fc9gdL{Zxl z9a(bKZf0#FLZe{rvU1Q&|I=6pmehCyI^0C)WdeHwi-V7uD$cNDJ}2!vx=pu+d_Voh zN2{R1hS3Z5+!AzTJFor)PnUiXF<3ouq#+o-8c>d7TM^IqkC%6=D{~hs17L7ig{P~7~F{&v$ z;9{^JrbI`;!q(Ie)GH?{^{ ziL3=uY^wjF1;=akT0tOojDU^^wC;~0hRIj;kDOx!+MsNRI!eUrF=Idw*FBgQ@_DcD zYwDgQzn!zD){GYU^IVrQ16Q(oflcq&Qces5HbfA@oAx|IU++k9#oG-+pbOMN2g>vL zT#k;A@1>y=aOn}Keta{zn$HiVI4)&AHo|o$K)px~kuQjIlZ7u>fl$^KGxrtmgmKcGMNE{|^8J{*TR|ro)hY_t3?l7+S@j7<{@weXt232rR6{*% zQ|b5P->g4B_ifh`2UFLuQUqRg;v%fnq=8jw#3iEfuyW|bd`j+AyLa78fcr$LT(VJ^$!( z4HFRn_lKCS_{`${S(c~PIwYUD=8|984OPg74xSfk`%XzfzfKW^HQ|h54&G=SWoo~5 ze&FI)_uhQl`t|dhA!`DiT3X1ZuR)a)x8{ZDmLGH%?Kq%U7}$xFG&b~|x^ShmfIYP# z&KI8O(lvJeYe)261?Ue*VIv7sgQ@DcZc4t={-F<&=T}6G-_6En&yCV=w7BYX23)PU z204k63NO%blh1o-z*lYw#FWdx}P&+hlb_ol&GB z=&w9v$D6YKtc3gTF;N#lz#pI`^s-EbY(aT1h}+&F~sNM?4zK4#^zR7jiBIVl8yW8vAfuG=)MEr z`Q8z1zN?hCJqvBdz@1hd$B4%x*F1RmJPjU6mx69YlHMRXdW&h&qt{z6o&aBk`%5(n zL4)JPfLMPHt(FN-$^%I@f#0Y$)FZ%93QA?E8dx_n7oI8O1TWj0vqd_c-A3jFVoHvAXvL^|;P8+G;pL-Pv|2Q_s5&NPl;49Ca zSpg^ceclcrr`4WZRwG1Ze;8%6urSjozt4nA$HaY{f2cUZL@Wt9UY#WL1*J-MHGHWj z6Pt<%DBO;!_l3NM zo8pw?4&vn^0Rg#9p==D~!GowH($i3s`VK$aPvsF8cpbG5Ux9}Kbo%cR`RH?%RyO^R$5Ku=Kptc-y1#cjkB z+7rS_XSkxD`CvWgbAO>@;zvH{o3?zOHj(bZglPy(A}pUNK^Xz5ZJ#e@anNGkm>U+g zkIv1RNrp2#mmYQuODSy}v0mp94@ciWsiB7ZtuhY{k2$=4Ofa(<11N zzzkKauIE8z!NT3sU?+wMbG+D2=`awE6GcV;C$pYw3p#C}_R-6pAE|jYseLpRD1}a& zp)4;8^$c(y&paa2H`c1fjP%7uZ`74f>imNR`u{kra`!}!vD@>ODxAPM(6*g3uD^}; ztEgFOaF79gf#Uejk-;i&(}fCe|M#b$lRiKrwQ@kqGyr;^bsqZ{Rv>NQmBAH`<9jYH zY7XyVCFt7JMv|MBeN09IET`$kCm7yp(xc6-8W}%^PiM*?n&WpZ;wLx@Jzu9o$;;*n zLN$nPU|?I1RMgp5>z5zzR(RKsVC!Sz^>4ObsP;}U;F|rQrvb-nqWh5`Wa+e$u0b`U zc0aNTDYbrDmp6d!-Y{?@>R41(V5MSN0~nd&uVdE06u-rt7=knIoiw|$~iM}U>TYQB@X_-Aw$ zc;$7c#gRf|Q#?l-0YmLcl6bP5(_m<7a~8S5W{+(ir{EFhXde*SgtlkvpuINeEi5C&v!_7%#YF?vi>S~>oRXZR^2ZR zx{5DWrzCrTazyc7{Z=or6l+7QNo`}WM<4*1g6oy3YPIc)GxesB_7#5^+a&hX)dQ#PA}!5RRX;_6)z5OWZoS*@qAog z&ca~QCO5{YIw#RYJO-btPbW^Jj06%&-Hx)$SRZCuua16^0bGAo@i%Gfc;1l3Rq@B4 zEHH5STZL;$R=0v(<_QghzG?e`R02iZn&&}7q@6lOz*9a$a!hmJAt%U`sJqsr@aofU zLFge<9Vodw_7rkDtBeX@BcyVwMWTTBFG6CylLWu%`Jib0nj-c5kS#!A76P3f8Lsn# z03F(wj@AsR{p)U$Y@|9xK$=n6+&|19leiG~YU#QZ5sz?wnil*chBwUZK|rKJN5Bz& zf)WSFx{~pqpUG3}J(K4~4|VRtpf|;`1D$f?QZpeskntB z3;-!z_^5?;3JS29G3{0g`4s2v6r4d%uA&_wUPPS(WzZo-6~C8Kw{Dbw*?U7IsC9yUDTuk^nO2EiP=J76-s^8|}`MA{>d{ELKoX{_6fuaRU)wN#Zmy1=plhprtG3 zC#o33*kX)BF)ZfHfp+W1mCyh0FeSSN1<9a0=zAyqHvJWywDO_Zdz`#l+HrN|&)|>tDR=!-SxNQXKcW8;K1SN|ta+_-kI*3{#X@h_I zTHO>CFFeyFKE+V;+gJLnmbfiEh3rc*Lcx*e^Asme6|F+~0t;cYP_x=4nv)3~S z^V&*GaYVj1gKmsNngeJ37%WX30YHq$I>6|RaL7qON?Y?fBV5g>S7OZS=$55cD5~B7 z-Eg-!L%F4#<1Q~&!Rqf*Dr$qEM)Q16jF zU-jmH&5EOVbMq*xiZet084kZfj6TAp>@1|KX79x9zxxI>9BJIuor!M_^kDzRM3$)^ zq@$^J6m(%TiLIm32bZvvZoEA9DNaRIOZRb>$n>`=~!O*7Wi1s|GfD?m-9zg&^Gtd zXKR{{l=8LA))E9q6~r?kRh7{xLtRooQ`Ai1LntG%*(iR4fIR&W(=Oed)j11}seeInXlu zF0Y)Awq)(tAEtwWd_@_|ZnVMC2PjRTJdY<^oMxOS;nL%YNB^0Pf0PjvHeSUQIL<3w z1O2BCmP)kN1+ee6i^6ZhkRke`GCfB-cZ59?k%O+x?upzOkbXvO7xf&66`UoAu+RXS z;#ijD6^NxCfBrGoT||@w?|eabiyD@5i?>@bY60DKu3-%`iu?!3T1NiWl#wD>@x&tZ zqp#TVzg8C>6Q+R2iH^UBt`X343wl4n@ar~Rr2+Jno-uA~9Ry-9skJs%i=e#M9y+Qh z{<*^|u!Zak(A}IXWVCy9gt?RB4fI;g5WDZfCe{7!R?j`QSOST^_1YK4sm9s zxWvTTW_NFZ23<~36$UQW@0KmRjJ3Ds>JKD2PE`euOjy0>CsZoP2Nz*{2CQVtdh#Fb z?Co{Xd#NzZNq8j%h2haF4{(+9RgO9C+rNnwc4VJa#=2pgRjzZ?`GgTSs?S)W|Vo&DBfSX+W2MQxdga5aJX8GdKz+ zRGgq!)`nk|3(tlu0COk+o?30FP_tn(ay3R|>OCZ8B@ApO@KGQst-?;5;EO;P(?!5M z+!*PsC`}0x4Q(#cJZc00bg-LG7<<mzHeYYudY52A>$=LN;4vMpT;L{Vm@LqXrHyG-PC^@3=Rcqs}(W$ zArcTA^Vn(dKD0G?OB^M9C?lf}+{|4K|J?>g2IYrxU<5jmEc?fd@aUM$<4ig!WW9qa^yUY&~M6pQJTEGKUcUi7F*kC(IrdWInL;h=SYet-T0 zmtHc2WslY)dwBvY!A58>^Qi%(Eim?wi&n%p{S)5Ss%+&c{DHj{)GY|kS7LoKZ8ie( z!I9-S)#xJ(&*1!8Z5G3&s3y~`8nh{#Uf^)`Uj$y zC0Pkwi-F|$#9Z`$^YA3?QdV3i*_|UE`ycM=&;Gf7ia4C~pu6+?$DJ>|^v+`#+3FYi{$ch^PYbK#p9*w|mqu;8jv_?^i z+>dz4%0?;_6+D1IaaZw3^53(E8&J(kj=AgXG(VJ) zL2m>~kycC{eR0hOEdR3nO-{Jaw?G?Q+6}0i5j$Mb)1<^{aj+vN>5O{ z%TUBN6)i6p$2sdW-S{X^{-ajD>)c-|l=Baw12xc&9alm65*3wj=+mB1<471&d)>&{ z)$eL>D}tmu3_8gu2uNVuR)dO^^eZ;$YL9*^M~t%lO0ns1Gn0I(#I_ilgc|3Ljz9&Obj6iH zIFys(y|dYg89b5JCg7S7U{~h}r(PU9p0Co14f#Dua3I)Sz(K?8&fddzZu%4S#OETn z*LCx9?zxx+^Fr1piQI*B$WJATo^Q9JU^$x$*hWV``wo*zCR@d%u==bvq%Qzb2I&b- zIy_E*204$nGynJgBCo)gy)Spd&X8>N*n*%-%jByw8w*Ld(dvghMStIEp9m-!{?a6x zVk5AN(3nvaUqk$hqx4nL?t0g^h?>2N9Uza!xnLczE{%JLHK-G(>?Xy$7zqgT+e%#MWU_z<)Z21q_wes&}>}Ev{yl5Hv>%8-*#F^g=9_d3=UpgDBuewXSsyq;?JI#Yga~T z0EktQB+k=-{&C4$F6c3oJ<3pN_9-p$*8D2cz04WPF7{fVq$c{xJR0d;vM#stP*Yr9 zH{iW4-w6nQixXo0AcoNVaezW0u>ymJ$rBLQW3gQmCG@=t3v@T<+CBdV%LKh8dqgy7 z>gYa;WC7?cMu91~FLVbOl>(kE4%r-J?@aEdXxal*-1*GuxKW&hE`?lx}x4E3oz3{TO;rrujzxhfWrz zy@+EtpWYz0ew#jYKOG>%^15c%BWqYSFg6^?oIKA?s{3%G**QrbRyFNH{tEKJaok^@ zQx^|{p=4A4t|mW!3Vk^!<>dsc>IKRCGJ>#@{_NrpNwu@D`An;J)D0~!)+y*h8* zLTE>vc(OunD5eIz2bo|?9h%uG;;bz}=T}#t&<)3TY!f6dTGivqV_yh8Bl8Rm)!Ev* zboS{;V{_f3(&h&K(xZuKXd*v?IB@`&a?lYd%nHY27%b9MHxG*Ke}oqiS}{_@F^{7W zseo=$QP``oH=uMKxXrUZ>rX|7Kzh$o;ng~Xf4_G{*7A#b(DTL6a2Kh-v6b4Ak+vd% z3$W@Vz;R}+q3AITe!i*7tYg3C+*eN|s%V)9~!tbonau%8076j&$_ z!?Pag{esJ~jtJ46H++3s3Y86|CnT12Ogqy`e2D~P)75!K&wQyNspZB}vsn?Pp>HXX zU>SbWF>E~?%P4}52=p6~i$?ZR33^~Crk%~U3K2sI!RyqPc~(uw^g%xx^Tvt$WrHm} z@KsTA#x}=?0hoX6m0(pM?LNPZ&kf{a(_#OKRAg58Q?lV-L}NM!FAM@LxkZR%;U!&!by zNA(tepWZ=@u^0D+&oWOBbOWB!U;kn5lQ=b-4JC1Q+0CY%Li0esc_6Mxp8f#zBtUNj zt_2n}c5z~YKd*(pN+KychQA*Z{rljPE6KM!7a8re<$ z4Xx{po_iL)SNd~KPOl7O$zMJlIn#sn%*vY4gK2jojECKBVQbGXD@jNRBa=M1Bt%9&a&n#+ElQqExSuC3y zJ~$zm6ZD>|;mJ*)( zsL`B}5M{L$HoL0~bG_9o<)2lm+E#y)O~}J}ZFEC0cO?MuT8u(m^sFK&M;;ts&Z9@b zTrTD5#Jx>xdBrq9k`nZt#MY6DhyrEhtb1;z{ey#Cd6W~hiI0i#VuPQPN%!7Tq2 z?y%JfM%T*t-oaD&=0?@y$EvAh0bi42M}C)T(!o@PBtUZjPyk3C|#yd zHy@g4AKY4jyulMTD>Zn;hJhbCv-I3Q>H_7>d~LJdhl4w@lLSCtT-S&N@6VUEI`c8z z_q#Zx$?IQb82MyUln~W7sxCw?=5)dYAk*+nu7RswxBki*1}E3o%PUs{O@hlpPun{zEKPN!3f zr?qT<@(GH4w2nldn!*H$D5cWGtlUEq(3DhUUA^vTm2yg_{YujZPZqTr^X2~aQBgg5 zLXHX_^d~bLk>mYn>K`ghY7X@ZisUr0uwf@3D?FWR)J8aa*MbjxI{_7a+UQ70dyi+{GIaqK98l>#xV&U3XsDd zSZ&9py@tN9Q~W4LK8#noOp4FLjJ-}*|58e3G}=`UaAkXDnEyrKZonLE3wclCt|z`f zk+vqhOdiq>qDciEp--%>;^q@-+xY6(NKS9?m zh6e|r7|HM^r@!1n`m$nw!ndp6oV$A+3bT`*DkylA(iKv(9f|nn6FTiQ|6=1{W zTaDXh3bOoaui1{`pNsX!w1~|h=PaU7(Oh)_bl=-H=yyYmkw0=1{g^gGGh;#as&qDm zdSL)foVMe%yCRr@Sg%*88s_Y$o8pm0x8T%wLvXW^%3ma_M?dt=M^emjOXHMIECps=cD zeyRpr7VwfP`2yz%(GQlmW5|)%HUYKHqc86rG0i!_@81~+I<2Zz=~+=uOSVHn##1nU z+@r1}cHwba>0%^FtKe*5v^@{3l~rImdZ~ zs8xPq*qC^IlFeo)I)IQBm#*3pifL=lBavpbaWtEI|CT(Oc{ek#4SrJ&dIV39nENlJ z0PBNEF^8EGMUsCb8o%sN^r?yKk)b}=3!CJ~WZ&}R;$PedCftw_*1hck2({J4eaiIL zre7b(mt?&as2`6Pg6KD_dLKR6WFw$=ATc&YKmJ(YqH0bvEgfa98PCA`xwjL?%qaOs z_oRh|m~Ba*-^9-MwY`!G6is?_jsiaj#5br8LzIs1-=8ibTHpQps`Ro62_1La4Zf8< zfxgs?&Z^c*$NrUa_{g{#PE_rC!z{!{P8s!A| znyLT4OL!cu1YK1hJArXP63}hsfh^tYrNzd4BXherpiTBt%pb&o^xOY&%oa_Nfz<1- zYwopPax#7(K<~|8qU!!`H>PbI7$jYpm`X`YGF_am3zqeXLNYD= zyx!Zg#(CcC$|75njz!L|){RfHuQS#L4V#I(vI+a?2`>1gc@hBFIE6;_lzY$#T@2Dk zq~cBVEseh6*ZJ)NKbL<>yhWgQAm%&3dY|G4^n3iD$ZdG?zx-B#)%Wc`gcgM%tle9v zuEc6@V4+~o)Q`fnnA}t`0ky}HVB$ZqJ9`Z+ufKE&BqVQckC#MqG38YprU%OZL#Cz) zoNOrSdAfb8cf^}pL_#k%b(d0qaQLvB9&cFbA!3PhQpQ((j53;j@BMWtt{(tqxQ(ZK zRP1%&cC#rq8lSzYOJ)_9Lzq@IO6h*}E9e~h@A8b8yO=2(0ZFZa;?&iUA@K-h{Nj0E zh<61iC)LM#S#2M?dc^Q8KVQ>EI#5{Rf#~l)q-&KCPGV^7&6|gjIez(lZ#)yfqf6Uj**JWT~2Mr96j2=T_*snW&}U48Z+PgF7OwupOoocw6|)5`!V( zGFD+tvi7XV!_l-1x|~0q6+`qxqli`^*UgP~qMI{I*ZI!O&BJ;_+6KsJFQfEM)zro?yD{lD4o6TQz+pz}b=iimbLT*HOLCpL(b zrC@$}A(vnzy%Iz)r>4+YG`Ukpk%l4(2G8BaYGenW63 znaVH|J(xH0=CrR$9e_d|&o|dvPLct?2jtrviC@A+9)H&I;hTf9C4@m$3GoG z47vX(Zmkr$;dQsbDHm=X(6s*>T&m#_=OP|b;;^UtWv;MeajNsYiB^~$5JzQEr%|+% zX@Vz-Vf^Ot1qF4ju0H47-0O#e{ntIvajpy>!ge#2`{SP**{)j8ZU<@9V%@2H>vHiA zDm!Y_x|aJsP#4w8!S( z0~{*|%)P(YVQju$-8$Y|fBqe7mm%0a3y^~GO)#?pU4LBEV-UyFM-Y5>Aj`gujLJR< z?bC`7x!u^TN0a?s?3boRLAU1Bc&!&t>F>nhAyIPx!JuWc|Fm1E{5gl>x3O6CgUGs{ z7@mc(|)bv1cgYz5Wt)xV%z|SojM2&d}BQL$WX4HTIec_dCxUuCEKss4K zdd^S6(iuG)lSE09eOS8<$9J6U8cpOAC8(D7bUZ?P8>)XgclihmFEjl!AVR0G`#IH) zH@`z$FUd+d!6}7z4eN5pfcPKC36{TZW?Orm|2-}RWU5J9Jz&xu=UA91mJx!H-b>{5h0KLHuJ`1==L3m(~W@16zcx=(~ATe^gM}b zFI`s$>v`Ox>;v<%U5)Yed|2RAg#42=sn=&Fs(s0+$reU4cdE35^Jy~lwS^mqF3W=b z*3`LUQ9P#Y5j36PCI5>^C)Veu;GZ73F?-N4kRo0~U$M)RsQgi-aL?ZA?$IU54o{vi zpZiwfzp#XMj_KbHAGN&|+`SG}9xj|w34x&cSqcmbfvKV&hbmuNp?=UCYM`ya1&#k= z5}K;q2Hi&>=x=WeewTNk$5oUyy|Ivsx|C2eptZNbVd3_QzHzc}MH5VO>!>=D;%wl0 z+I)ZqunHSU+x`4lW89YEtvI09Ia5B2qGiJ(S%e;Hz1rTf zNfh(tE42zvVzBJt?D2ulz~O@ts;NR(wK2U~!UZxy{LsW_D$;tPqI zaD(`lr*8MnTkU!Y9rQq&8smLEgt)(@SxmZlG2-=BNd5;z>VFK0t9`>#X`kTZCRuH= zdrjVS*?Xl*Jv&G30KeM5@G+^I^@NPS2gnV(heK3Rm%omTiZQ&{8t1x#PMxdUrI=b} z)=<7&``Y2&rPQYC6#i@b=;)$pUa*bXk;%mYVFZ%2)o|yeTAWg6@k|APD9m3530rV{Lx>0c0ij>C@_H3LB81yhwqK@V4&|U$T_A8$k?|`f zA&)VK1z?PSD1{t^lKbv|x-Tw$1;FpUWc=7}D|(e1J-NR+C>#Iuz&k<>Q(I2nQf5$G z0Q~_Wwd}|V6@J?Kr$JB-W@IlIe;QGmv4VfB8YKd_ z`uKvkjto{xcEr)|qma0hI%v&qOR!-THm6ILS^#=dY|VIe@eVkB#cXeQES>sO*PARn z`&Ll!NjhtqU}DwZy0d+XgA<$aHjI?}f0qS)zCarf!Dn!%tB7stMoG1rdfT%vw(BQ& zsPWuUX9Q{j=znn)owDM;Wlx{Sy*o$^y%bORvZs6(hrwv{`Y9z9C*`9M4g5DuxWTZ` zY3Z~1hy*hL2B#?rANFg{Jaz4oR$exAcpG(tv;F#Hx`Kc?4WkI?EJdx_kH#1aI8ib6 z?$bk@`?#Qqn~|2wG)XfYH*9H2+*=*6n%8j8c3kfz6mT=~S%7q#O8q30(zfX`&UNr& zjOJ^{P{mC`ASXub0*Xp3=o|ASzBaPfQr;knzFX(}%GR$LACnO&u^%K(VB9JfNLlQg z3O-fi6K>9)0Hd%h=YT(Ob7~ld;7gaEP)8)tzD5jQC@D2Mh;bTGUnA1?P6ImkHeDFc zoEeIvl>Uue*vNwM?4`|x^Zm&+;o$W7E;Y7&ub%x-vRLoFHe_1r^hz#E6gXF3K!E@I z@93J08U9U1+lZ!1?t*ssVBv|lSrG3Z=&*5m!6pT557fVr{huBKOyy>RN6Fs{B%8if zNTrWkSEGirs^+s<@;Buu~#k+}vmRMPdd49fxjKgV9 zK*~#ljtDHO$z#n&t*@4UPl`#^FYM-?`*rVw4|bsLmpD#27~f7p%Oe+?!}{T`TfR6e*VGwQyNsexT!An&pfo`dnv^CrX$EDCS?P zpp?MQlz;Q&V1<&nlehQNOjG4U%w3Tm>FiLz?)H@fBxcdO@Gbe`oor-*m_54>m)K>C z$BF&C3*}8>Ph6nKiO0QL86HwLEoREnDtpC+m|uiQP5ZNIzwgM%XN=1sE`)@=ZSokL zQN^YwP1>sb?FD{a^oPZ8{#?*U%s_cw6qh=A&Be!hW{bDQ4ZvVO1)U=hKlJVmZML5x zQ&onT(9bR#uuZz_R^OfZZegvtmpeWa7$PSw!>4%(*fS^ zyVD-{t2ssBy5;HH582H>oZc~@3!jrV0QOB5B2`nPN}^_cv~#g;)V0h9L&wkJ>v_?P z(Nqq{XTk-ZZLG7^XnB_{uAhL)?{)4Y*0%Tivo7xtN$5CRUYuepJj39`7Fe2nXgSd9 zv8wPecO*LW>jWByqU1e+FoMdwYD&bP_5OY&i9aJ(M=#FJ=UxwC0+hNi;NOBgfMu;^ z)MY6-m@?E&;_fnRDH=yN{O@OBjK6U;FWMd&K`_~yt z)+QJ=a;osv;eZEWX=A_7n=<(KpSv1hGe$sFwE!2M78>$CoCOj~mWq#cGnWhvxhJw5 zt-V(81nBp;S+>`y&JCev?fK{(#qtscGT+y!8@1^N5=?q-oB=aNOl^na`B;k+tg~)= zS;j*b0R3-z*dY1oQ>OTCwtT;JFx3>cdxG)Y%)Zoa2-=nx^ffL?*R%`%dB-MgW2)g}jC|_$#zpt1Ej!w+NQCSpblfz0i$-OGvTR#F=#TdGJ*bhsL zv6^?K#W8ha7o%VW;A@C%_F)}ifzEsX)Ra!=wG*H8=&h_hZ`S#S3_LpM;o7xx5DQ#x zwv+DUfB1U~yQ8f|HQ~Q)&{3R{p`fYFINAtpJ%=U^62~v}G8%aRZEnDx4g2Wo&hs21 z`bw-u0g+>}=5Qd-d7wR0smdLvbtmZc*kH(bV!7}~N=y1?ec@RyEx#xz3+V>-ngJoy zLFq`6bFGdNj)i^E3iMFE*J3wV(b{G+yKCYbprbyO9C$O=Fb?Qmm{8=RI$v7sm*dA6 zqkiY|U};C~zez2f6HG2)h6KGMfyqdGrr;R>J1q!ddT$l%y9VPP_6qi1U)tDNhpHb@ zu{+!SUl}1lpPk&uG3?mn9A=#;H_MK+VA&=G@17BZZaLuyxmk$vkbZUEDi*sta1gW@ zA#VPjCk6&)^U^~zn%H8(Tr8D8kvJ!>jKj$zb`*rsmpA_!fX;lWTyfo!aq!*yT?@8Q z9Q*?b;wjcd5ltNuYivK8sfrc0E20%m*ZoZrpDHcR&<*$h_muOxT0Qb_OY>fRw9aNS zm(%FxVLQqQ8ztDWWqa-lSn|VL#Z!F?=U@tJ0uCHb?HVg|fm#1K^zwGSOvp zF~c#nd2s`0GU%GbFHGr5PmlV_q{cB$Kwn(f4pSxseKmb0xlo-|5ol~1PMqf=(G7>y zY7KW)?9Dh)avA>}sp7iVJvx|p6`uzDmA%exTZU8FosZ;hv|~Jb&;NPTMvK7fldENa z-~kD`eDI%aG3%A*%iYyrwX>=C0>TI5Ta%3|IQ{CC@&3hZ=jR;m#7k&S$LZ2DvvZ-6 z9q^|$t)ls2GZAc=kVGQt3*!zk4B`>xJgM^8N1UvxG3eFlYq-&eZSKiGrxeKK#}8QX z)7I$?W!N5H*OF`cp=5>bHVB7*ZAgllp~am*>|!@y7vc|p>U*}8s%U)@`K&=~uiN*78dZu7Gff~ry6boTdI{Qdtw_B1 z+@n9MRavat3y=t=J*G#Y7=rh*79lwCk%Tz^IImpr?XQecQ#_P0=nZ|#j)-oaPJGLf z5y3mjue_*JmLDNE&gSufp$jIbLkT)7to_u{ZQHeJqq_GG59)QmW2OdkJzh)aviL*T z>>HdsIh~d{z4T0LvrI@|@&V{Sb>p{#PN#W^*QREk0+f}abPK?|&mAwRM)DmclW>m? zo@xfZ!l=n}>rZirF-AEUE-*av{MIlQSDe6~6jhmn8WVfCmbd!oY zf-W&je(IG(=*hAkD$Nb9gDTyy-ePQoJbwebLn!9VE!(w5qKLS{nS?HG3TbSBy1`O1 zD$lra=%(F2_pt%2+OwQ(b_d7KL<<7pzK?pgcL6r5l#y9{Rll2mF`+MZ!y=em&CDN13P{}A z+V#Cqg07QD_kju7V>21+uDJ6#s=W!@muFsN8ZeRmGLN{anJ#A>_9fXkN`4Uba-jm# z(-Q+0Xki;z?s584HqeakZrN`zPV9xnTib_nSI20+%aac}6ScjR8foKhE>qe28_H_M z09%gsMlg#VekP)G(uGk{Syk-%4tXp&yG~g5r6#S2)*;YMrHwYvu);#Mn(UGsU3B-n z+%Q0GhUoY6tgPgtwh46R3sXyyklIb@L-=y+?mmLi0wXDx;ElcU+ePg3MFrdt2?N`_ z#4ma4o5vVq0(Wd>U?cLdMX8oO@a)vcn3^^`Jv?eiLb25Rc+(;HJNRAy5C$=_ZQ&h*42u@+E_s+$sW(8%HGY|g4!+z? z97x^qguJH}$$2oo9N&&;gfkZ@1^PX1#(SE)m=})w6{`_)&)3W9+Td83LT-(2#2yS@ z#m4N(g&05Vj(N=qp9poj0VFH~0olBrLCuv-?#Ey5|NRt0Wm8j6)z?BmT*N0(9g{EJ;C1_28Kf2nJrT zhGurWQt%^0?Qo8yFK*XViVJe7NV4DypzA-5KnGDvzH3tI8~4mXLd`7CeaQQ^waQZ~ z@On-%z>Pe4YvL2BaEgXQdi`lTRbuZacx+Js=omXM-SrZ{GhbwKCJ&)CDhh~3O$V8E z!fs9LwhmT7A5-zf*1AZTF=g`MG$ZHUD%>KOYC65ECZKkij}JTU)^zjL0(AXP7jWr6 z8s?nI2!H?v{l^!P9|200!F&WW5s_%!h~}4u?>|3{@k@q@xIpKDIGW)_8;2KsK+|nA zlYaY0EERmH^o3~k?P?=`;s?9rIwv$X*w{ety#1^4-ekiU0QP#dth9qAqfdIS{N5@2 zpE%5jQCp^O;BsxcZb2C6a{ij5Q@`(PoyE)IK7~H zwz^q`%shr!#J=G;vxYFvTuN2aJf%lZ_HwbA#=mt8In(yJes! zYJ2MYbWArsN1-(HmmIH~zR$d^I-_17;&(!I(4#}t(o9SG)CacpOyKviz*Sv}Y&JtE z_T+QW@3FsO-L`*n>as%be0HE^^v>-^R-stJ`Npb;BWEAdmFZ@Gzav2vd z3D6Q&)*n`!aH^npneEaUkZc-{_PO&LH*nFPGL@cpK7TusBy|*+Otd~N<0)+ym+M%w zp80MkV4&%{KL7{#h-;c>=BHgM*AvDmJ{~PoT4ndz0VC?D}Ik z#s7)FGO})E$1R0XFhbcoTVk6rXv#Kxms{R-=V2rGI_pjs*I~ z++L-c5tW-~Thg>+ARg7brLf6e1?W#VVWqE6N;^n!gk<@gC@pJ(veDc8_8cq>v^ct) zB6dSm;9+Q<$rSQ*LR-V7BfKijyOoB}RQ)UgeK3y-4Q`X^pos6mtN2@;r9Yxib_Ac0 zrlEhJ8EAc)UvIKx9huYnVr4sJcOcG?846H}`Hlx?RLWVuY@tL*B9@NiX_4UQ2R1OT z#)+Z+2Ay9WqPm2GSMy{M8h}a*&BvAPR2fb25) z&;CXNc)a21!`*6_Ech^i8GDg>UEaC4Y~=8tMPx6&OSoy=qoQAv2fawd@icWwFuONOmvb?XVe%gmS65|((l^n?89)tq)YzTu}JsKaXCc=i&bP?kPj^N2auPf{K@P4nw3Sn z&fN?j#B{o?XWxv8!Q;EGjhr9}db3v#k#RTUn89M3w%N4WPx;$g3Ct5~LHAwl`BmS4 zcZCa|>RBqdwJAzmlynS ziRUqYz5)y3lLP}}jGX9g6h~sex@Pe_Po%G$J01?U`e<}4*g!v+C|4~7hnm-Hk#>*9bvGOqA+Cr*5{7&+L^4$TId6m(S<`oN-!2 zAs+FM&$uWy>&CFPHv;JBZD9eDd4UVE3HLFC?rfqq+G0@okg z=3@mcUJ=zUU~su?>wqmowHBLmIbL)j8$+x6s>&3{C$Z*Ao|j#{crbGz=r~s?e5cbl zx^Pql#&H3e92xp6+Mept3%m5z&e?n|*7at^xUj$&l?vk?Mmcg7V zY2mhkLq~26#&36N8G+swJ4{b!iKjoHuW=bL-`4^;v!=POgTlMdUW~!*nN>+xh_0=D zM|9$Mkt~g*H(Qz)huHt7pOswa6arotdd)LCdQ5@8RhzA5!rSQT@=+{xNOV;zxUQ0> zLGQV0XJe+dr=@jH=ZpHWAxM~#Jiv}>m2ADrM9Py&{AnSyn|a&!X;o7p)#r2;cPq1j zi|RA#7PG>D?_b*1I%6<*rhhJaf5~7;>6SozK?Xo)MP$SU53ri?AcyHa9Xh(xdC){3 z%xe*)4SfVqJ52+}mWH~&C?yul_%FusHE&qxC;_tX4uklEdov$wZpUm8b2$d6qDv+O z`TdY9m$32DhoDPRoLVcn$)027x?xd@ey{mV+uU#0_baswtl1~SfA=Q&V6+RR{T*Gt zsBK{VaaHvjI6p=e+I2zm5I^MRy~y2YQLnnNTawQcY=-M=7mNd4sTt~ddg`eqN_gr7 z&q_JEe5Q zWNfR^`e8=JFnDR9ayPiFg6<;_`lVawpIKcX&4NzE#Y0N)^CD%uE)hqVDVq6^ODNwo zBht?f=VZPxMxotO8{4vaz|QR@M6-B&0~4m{!wi9U$W{uj&;`-At)-JKay9^TjzF^e zT%^;CiBOIU9=s7)%EGj_MYKg78rozyht-^B*>vMu7U9sjY_~1AC_yfzs4jp$qUBVv zK>6pGOk5t~Bn|es*K~GxOuXxc3xM8*M+2RS>T9~9>PpdTnhS>ZrkcJA>orbUZyvKS zEZ3#OME_@>4StY}X25sJHpYCcy<4^vSa`E*ZQoT%nL2xZ5$jv}+>>~$^|I%!2$kHG zE%5~%VEeIyA9^{MlGI9PD~WU0`v5<}NsR*KxuoR;>6%I=HbGB~A9*pj9)$W{v5s4P zLk~Ez^p@D*Wxa;8U)#?|fsN_>VQ4ol3CRK))%I_AKu<}@poDJ-qWx;_TqvqKF7BIU z_XHr8F(m5-g}VvsSQ2ASA_kjm2-tZH)sn2#`Q)PlVz)$S=B`{1F<5jRm>j1F9M3SM zQoQs^PB}yQY?+{UnW@~D>Ej|4asQMIloZw~U`!*r>ezf;%d#4(fh z0Kdq0)r`ZM1AzY2pIJxoiK3~0zFrX-H)G9bGq1Gcpj8G1QPF2Mg6>fs{xvj;6vp+J zsg~@bh+k4!upa*s{0PSgIKSfUOJesNru(f>=-1M3vVvcyXec;mfEsMB5VN3RI<~^( zz2rXTPE1D`e%>4gAYZ@<^D!HAp;i8$$2*uH*MPtD`wI76cp>zU>AKOMkQSz0dpqOb z^7OhGA8hG$Re98QygmH()a3wv0#6I_8yD>pnG&etv-;o24Jmu$zs8!~aP02MHiki8 z|Ga<+w<|ga_b_@B5)dU?)_)!0Z4a>}8a7JgR}}AGz2-nOQ^n%5F#PKmbvDDv2_#c| zvD_l|47lD-P z2!*|RvXQ?R^IhdpE>X-{Vp0rYLw~eDhiCz0Hzn;UY;kso5;w?fNU+gx*Cgv>ivoL| zwwOfk&p~&&DTy(P=sHfigUm0yL9`R`kcUWT4D$~hhgvX&3&OD5I-5fET&fzU6f;;D zD`+Dh0vZQjpVtx!#+qtE2ejC28T@-=V%qsgyi`OZ>u{7lKt8ybRBf8qE%2s_+OE7T zhG__kMiq}^u1#J;86=#>-NF1C<;b-7gcI z%(xhyf~n?j9A<(dxLWW)haxZw*T%`fz9WZB(nJWs1e6#^GnU1-Cf32ddlh6lq-;yF z+R&dJb!cWdgnh)bYybw+*S`vwO7`I4D$$57iIRgM>AH+Kq|io?sEAO!cszDjt ze@~0K=vB$UfdV0Nbne0mLM>gj)6s>V2b~6lzwz=9S}S__=G?fTbA5tPucV{BF0Pu@ zPpu-zA*_Qb=MApJFOa2)g}?QKaqdn+)`}j_F5@7r?><#crAYw9g8t}M8I>h(b;zom z(iB|YgG9O)QrYP!iYd++e?X7mX`V=SU4QK~D|cT{;kyz5`;k%;UNBDn z>!PhT4eeKGCLz?4GnsBEA}}#|%;|T8W`?97?Vor?7-^zyOiM?YR~>PL)agq zc8)dNc&ZU6O}>-te`OD1`!U!Tp5HAd_aBD}&i}G9Rskjc;vHk6@^|=c$+XMg)CDv% zx6BL-EbMA+&2V}iSwL@ZF|1@AnKzrfRbyzkWk{12l~-Ct!6oB}%`;V|*k^1;E_DY_ z9o=GX=lVIf{R311w}iUhG|DKQjdAX-63iQhboV?FsRaFuhNCLi41Ul%kSa{kV${69 z*3^uN2T#F}#M4n)?vy{3SI9n>PgsJn1FC;0@;9j=%!y==w0}oM2n5XIku#dbSBuhY zG3@$J`4d?s-f&}TS9adr_NIhaLAU(>F1a3J%(Z9&Lp3)Eo{@T8Ic0+2lF%3WMwt07 zyAff04vQ?=jy#!J(w&t8CwxW@RNv-2Q4QX@=~iWYm7;`hSGbSwV0q`FM5BUhq+SJG z;Z<6$$dLWxRgE8Gz`e*D8ks8~rsxb?kWniMobX{ASLTyuWST}jilnlpwoK1O2Mkaq zyXAfgYM4`N+N;LL(2bvFfLN|p8TO$aExEV85*r!kJ_izf>QLhwlGO} z!vI=9rN5F*4QF(a4t9ag|HIT>ekP2AWlxHS1Q)9c3s^n%a8BcPIT*HZH=4`SkMqm= zIoeNm~ZE5=qNL@}X7n3_zGewAg`PGiP}}X=}%kvg)s0#+v~B;~H@L^860f zH|wvt{e1;~e^UUe9r|q{Dc+XN!Bi7Bpr*8Y+gsVX@UFII(nzDE5g0p$ze13Jc}3F5 zQj7l798MvuI8>wb_qeF7A{)M%e0kSLC zdN_9vs@F)?Yev>Q@H6Vl!yA#YLJGrWe+T{p-7BIhC1FF3|7HG7#F9o660KNUi$WiT zcM!~K9ruRu?#-?UP0#cq+gflV0Ci$r{U8^>xaScNh?~FCX^E|M6`xeblI0+;O3;HA zhl;@DjmiYQz5Tf(Sz0X_i{m(fCkTIEd?sTK5qxn=W=rO=|=KhW?J0cCCDF z@{;Q@1tagp-CNxq}&c3uLV z6_FN!o$fOGjD)ykq}kBC7To8c3GD|jZzqPue)OQH-S(I2>$f1+VQRRlkEMest93y7 zrvBhDRQp@S^*HKC`lf^oSFeW9AwDs>g_H0*ALw6ox{1tk84)`20CR47uW$nWuBSN3 zo^x0_SQfMVGNj~!_uMpk;QA>if>yj2Sy4eBATt|Jr8it-UH}t4IdE*sV`u*Is{nZ} zszs8jUpN$W#dSO5_eh$?C)`yF)(T1CQy(YK3&pkG&5I5s-nSnmiAf0vs~4G&BxeE} zsPXh-_If~?8z-S_CKKX)1j`kHY;mXxPpAKcp);5P)iBgT)PG>Ubn`P=+RRF5*3WY^ zCzM}fOTLaQ@OLTH35E6O|HzL22drdu)f>PdoC|9FH4p;>swBZ?tB_$*-In$7Tl3P$8H87R=%s`fL{ho)zc-Tj6#k zLA>vQ_LmKIK0XVq;1;qO_*EsC>haXef~tVx0~-v--Kdu}7x{BS#C{iX;C&L;Z;yv* zyZWbE3TFEW+rLQCv}^}|t9K81Q}lJvJ<1creq%KMnSXxx^VSUTu zy3-RnP7-hMQ-O%99_>4==sUH|@)7_R+{3elCmP@A_bN>}rq<}_gz;kxHP*cUX0HCK z>GTABO#RxpQTuNjN>Qj0y>#;u9c&I~0GIbuoiT7QWdx0bafS)7n5M2LU{N@xApg+9bpsSri^ZCYK{#t1HA*08pADi8$=QsOJ0*1d?P9V zW4McH*4Rb;dO^JhllZa}oZydd7huEOq*>liTjdWR8ke5Gw%={ZZD~Lns2ix#EIJ-H zYuhkZw@AQJ5Ga677BsH%>aeu!PdH7Jbc%=G>97j3Ms4ODIgzm7<|9XbaG7~4i^4sc z^LRPa)pwwI0z{A6febk>1w(Z)^Wq>F`7`->F6cCkqJP1O{S?EXi*O1OGG-f-5isn! zxmjs~vy@bC0DKs=FKn;^->vpJpn4q%A?1VV(!^h^E#PQ)yVHUGmJRk%rO<&2OU66X zi~MV$S@+_u>+UZ}GBn$)k;Nb%+$L;yQkiSHZZmqG#}_=c)ENOuX-{>Z9$xKP_;{d` zTyJRAC&KjTH;rU>!LT7*0gUZRZ|e?8Hir(Y6WD4F#0%@s1{TZZQ+&CbYbmC41AT-! z1y>hy#rVn0w%fs;MM8R7om2DfS}y=uyYp}Zi&-wFgtm=R_*;`tUDA2b5StDd`dDH= z=$)VExi!emEWWXe49 z&m0uAK_W4FB94q0`CK2ro&)Mj$*^~cvw$Z-W;+2D3doE*p^Ux2$1n=gWm%VSBBFx+ zw6fku(92?_B|=nFc-u;rmh9i7Wj!a2y!q7w&x(Si4+i6kyYOnRhrz3;`wS{*sn#sv z=d+&x#Hm_!2#2VnE_PCRy;ZP-!Cpax1U?y5Ew`bM?=I-fm+)1u&|)cqSIk8WdH5^O zrgqCySwmsD5w~)Z_99%aV)$(>#_?Z6EE?Ql!f)WAUjS3G49l{Y;Rk)g5ZWCC7LMrq zzyn(cgvqHBxbNtGpp%S}2~vm^c#PDqE{0zwh_kuxzj(-s;vH4Qq)fnDjPEWywywyE z?~1~B(sq)Sz+AfkPr2;}!bk-_F!?m~$l)Pu8&jfS4yus)hly3u@2o+0GK%=|kRWvc zKhv+w_*ZU*wa-`?T)25C)>_}_&Om2RNUB(_1(JfJknQ_Cv^U=g2|WNcZ5}OOkbDId zd4_d@B8?v?%+J{!ykX2!sAVmW2Ri9DS#V?D2d=qe;V8F|b<1&%z9D*yZIPdaKWO!rdpj%U$2^6VULXwU(+>Q$rUMszMzm_g@Z zaBew&nqz3;Tvh7BOf-J@e+YlE^=moiv{Wz==y@VpmK=UW0X+q>;sS%(FV?51nmtj8 znlNrq9wXhip*DWAV~pmSppz36CQ@XpPQ1JJPm?`A`ln!ySqCn~p~`tAx3h`f9NvPz zqC%By4h8Vh4!iVye%A(&;In4!CM;*OgC(Wd=re^+HZ7?Mkvspy6&ejTNtlEFamig< zM96v*h7MF)aQ7mf5}K^x1pI4bwxikDMdOi+p(i9wj{SXc>gevp&-$d84gADgDXT?6 z{MNSRaE0+eosQT@;VZd8ooKYF+Hr5(!9fwe}Ahl&XMc9hA zQ-N+8^*yz#?yZPK(Iqn`sXSlYq=Tu%&HbIImVDa!{G3b0d=T0HnGZs;t$<9zWI;|- z1V}}7j*?zDl>DqZ^ ze|y%Ra7v7U@yT&fQ%jTUMw4NKR%1JHwEx8tjPoJTCLG}~`R9ymxsCRC@n5BZpx7${z1nu?j9C;poa_T&|m!^p*-NYF)sHTV^@+a=<>l}2jB7jpZf^} zT#<)EX$JZ0E|fGE5w5;#sSu$Jl1*rjISv8Yq|a#N^)o-H}NDA*$D87k5b z#Nvf*{~Ay7=tM)VR}XF;)dSGQbU{(Zec*ldUe~GLU{}6!psW)h$2r-L*T8q1Wofb8 zq^CHCet8XR=sJ$^**DuSivtLbc6AjpN>=2R1Gg4*x$2dQM`$20jdZ^F@w?|#h=INg zai7mwt9YxV-=5`Ni27mnHa_Y1r|t+HIcYFDzSSma1swe{$=i%V0@k z9wSgY@0+1NX*d<#@|L=J@8#}Be-0B)kRL#HZhj{>w~|MAnbOPP#;0z8xU#b($usN@ zW)_5J40_abq!4hA<5af*740Ob;`8%^v@m=WSN@NLdvv~y!$57NE0(9|P|Ap1tn*j~ z=Lp|2;Pkp6Sfs;2o%6Z7GQD_|tHvfXd%GCHd}JT&<$ebGiZ8gq5*O97`!gc$dZdjV z`LT$**FkKf{{pSYxZ%lc427hs)pup`eF+kYYx)#1G#k*H_AZEG$GSNWV96JL)I*Jb zd}@G@jX(a!N&1z?0Q8+iKC?6~jhJfQ!Q&4eyr|{1dG;uI)A|rSe^WNUt4X!_EF?CM z{0rI&>A_hx&gjuSAe;>owXdXwoN2jB{)f&WB7)oBvPIr9=NLHlh%=V0<@8=aJ>eD^$lnBOc8U8U;ZWlzSK z3v>qU#8wE2I~vSV(G~~ci-kivfDYzUUWYsCXVD2b7-Ok34rU%B=I{7v_bX|XiIPsx z@#@5{3-w-VbDx(1zdVg@`~%z71cL%M*-}l?M=PZDP>`n*kL)tCkb#wP!lN;tu3&(< znnl_~)i^Ak1~)NW$~^+cg*;CHTz$VD#v5na8FVd7tPX)W#glDVETrbgI(%OSiQWZ+ zp{rE=-YL$QByHz!Gs649uYWLLAaB22e3I3?18^4-uUl6vcpw=xzXM3U=~4CCq=ulWxY^>z%U9f;dh!Snd3}Q|& zP5t5OU`U5hn)OAIRAzj~Nu#$XSHRF*L5b2#K~pqI^zTP32T(hdcADTDNKtrM9;c#Q zuMsIk)sy3j4o-fG#N6L}0i7&3jO;L=VsB#88Z}*-UhKc$i5m>~CoI_y4%BBgx~ea$ z4t$N4w(=tjTbo1lzGVYYb4F;+&}QQ&a3W(ezAdK(5I;qo&+*)>EIm%W6J&wTC=Z5Q z{@RQ#j{5x*Rwv}AB~c!o{l7f~X|z-`nuB9Z6NN`3qF*qjYwUW@or$qO%>Li(rFi&; zqegZ&ArHv?v%@ro@aI-oi%_m%28?hQV?YZX4;zyGX|ivLi}ijw73o%qniLAxX~BWHR8kyt7fM)gllI!j#UGDgLlFr>%Y zS1lIBOAndMk71x2b(V23JfT!lB`k4et4H7Oq_rPRQg=9H)gi#=M87>2rWZPlkt?UF zoWAL$GN)SmP6Nk_{Q2lNn{`W(0gwYK7`kr*UG5avE#8LX$_S*beV`BKX1@%J`+qGU zhwr7AikuC})aQ>M&dj3(h5P>okoj{4j1q+Ar`h-iu-y7O)#{Oe>6A*pR__EP%a_@8 zI<~nrGRijCa1$)-Ky)r~H9^oLY8!TIX^W%ZN-YySm_ConA5JHaE_M7qX}p_JfA(vV zJkJ%+*+K9X9~9b@4GgbRJOXB-#L%HQVkjL&%xE0)-cD^OR-tMSV%%sCVXQrEps)Dq zyR-ueUB9piub>>oFJ=65kM|n*fNR{E(DqFV$XrXG;rxnV140q zw9yV_jLzNhv`Rf64D__4#&}tcPDoWI6*Sl=6tpB7Lr&yI%nDi-N*~%>JC9*jZ?QEu zTwFTzcerJ_uV)g=K+q?vC8j=PhGQzFCenHndK9O#iw6!bbJ~^bB9AEOWik5CCp`T9 zRKqS^Y#Dcpz}b_~XqFipe-M4YME@4;;?$~M9^)j`nJCw!yAlDEn;KyGD_$R`2bYCo zU=G6P+-=DMwMiTy%E{*m9ZDDx26Wj`ZT^i}+*}xXYUZqEddSaIJ@F$BQo8ih*EM%8 z7)+Jp6vk)en{PN_5|xYoM3ovO+Icf9YtPkm)}p&lVBqIm{T) zCy6qm7%E4s8D_O9Y!~#6rFcgtyYt~ROfkl;08QZ!C5FqFE*xB5rz~6LmwdW zuNtlS(<@DMTBy>swN033D(kIibo2?; z&>{IzHto0THLLG27!b=!a=-?Sc`F1l~zE+Ze5G zfx2_zU^^Gk$JBTiJldd=P@2hRRFQj9vxJC)n@j5D`CG-H?-Ds@hPqbe2yC(k!Krqt z4G{ndWJQbEGwy0Zz{2GOcTyH!*7;(h(Q_yqFOVFMkai#X+i){2rQ1i~mF@ky15^O$bfYS;cX zmOjpBK^tdpI^jxs-*s5^g1%eCf3h6fXwOlIl_=86dbA34oiLVk)2RE6Jkc4H6Hf_~ z6f`Q9^*)J-Dqg2KZxsQs(;X@lv|n|8+`+O6!NV4v|73YKsOGfMVeq>>-2~n4F0~Y) z65S{!sd?AKn5m)mCpSirt{pFjm<;pxmQ=W-{ZhFzi@Y3Kk_ZqQftGp^$Ta~HXEZ3#&8sNfU4nQf&UHgB3S zww+K5Jj|Xve(Zsci`}Uljh|(c2FlXFqA6;tlWL+RU+h7*)ETtibNr7%u|{exF>^0F z>{HMifi$MR`8X?jBQYtT`@?JwDxn!v!s)`i|FX1n$4So#b#h zf{05%?6VYQw)wyBI4rEG zICv*guiboY))IGo*~TY`01;K_62IL!4cA(wY_^ zja#wJ1#?_wc+APm!daK?J>cUh9qo*4!790bTT~_2^iYWpK!^dKL{DZK+WO>OtnHDJ zGMi);fBEhYeqw@`YbgAV82b-qtg!pA?JzgXtX%Y5HD|@OF9mG2;Si~vcP$7kVzHDx zsCi-^(xO9dlm{M1!SExz03ow7lnyx*MuF8ys)c9*;VUnxr`MCXmL&9dR|yZ$Geb(@ z2Bm_e41WO*DwwMoS7aO`G%C!=QuoLe@1kTk@;+B0_quF_tYCO<5`2q^Y5IUutKG=a zhGOLiw=PA}N$siNIX~%7foW2iLq`Q_U(jQg>J)%~_O?x5vKObJ->e||^h`SEr`V`O zz7>G`IILj4>=DZ_Y{vY}n-h)bx zKmRm?-erEb>%8IqY)w{ri)$RHZDxCu=^k|oAer6aK9Hz|iaKYGZfZbi06l;x**AVT#n!I)YcF?EN>%oXyl#P#qot^N?gauvGmOzGgfW1o2f6^~L>9^c~ zxv*eY9H~#zJMhK(_;b~|*6KE?Aa@E|;``1Z9kX&wI503N6Ol)&W@CWNYycC|C;!+{ zV%6=8K9Qi6`Naks^wuZ!IcYv?j~wL*EjX@U6#oD1gw2EQz6{M5^c%3bm2k-cqMuWmI)hPPg*Y7r!p2)4fVsXPCH|D%N6T@rM-iW z>?OeU=oT@BN%;F| zt7(TQC;9S&vWO}(n(G%j_wuV@c)UhE_$}Ki3qk*>6+`Gf?JsT_pk{eoC9;p`OxI#J z;?N*sdR7U*3%TjNtl2~Xkes(f6Lz3Jkbt4+Jo1J?N!q$JPMQ=OIXUG zevTU#-y&Q=AKE^3-4BXBk^9X@<5|tN(xi0|?%ERN0y@IzNa4(1KfO-&Zc83p*R?A2 zFmGfDGXOI`ol&i0`wFXBbz=wcHyC8ICi;0LI5X7o{F1#|&|j{|i_zrysydwVMXNFH zEje)Sp&2RuKunROVlLmfQNr&BaIOgaorS@yAwX1g%t!(7?P+kmVCE&462(C1pD1&< zw%LzQ&#Rig=0#<*;!pD5AD0KamkmwPu(Zm!o||2 znK1Kvdj$qs*JTqi=#OgAnC|ytwE+n0pC_hrp@t=N2XZ56#Gz9jH|thep-4Xu-8cp? zKo8}uNx~zeOq&qgd_cK-T%;bp6p=)zQX4z9stJ@O`#qx^uw7ecp^LgGL~(H^LKsg6 z=-tOHx3Hf-cKUj>?mmWlBWA-qjO|~@DEbynM;1kbez30hXYzC58LLGIrpUX?-I7s$ zVYL;#g=EOPkBIj1GFxP`ngYTjk8fsK4vKzEEubNB$DYBimxy0T!it;cbf716j{GZ$ zR%UqA*9=1i^p~s7cyXsqV!~R0LSP5z9Y~=ZDs=I#jl$(oRFO_$KZ~p-u-I zify7l7!F3zDFAgVW;90Vvx*fOFVZE4zS>?>>7TA(@3L0%2gH-+g!Hh@Qnv9E762#f;uqBI z&Mefk_*{JVp_ctW>|XSy)`bm@lo6!}&@CI{pmR(;mjz1P9pauOZrs3%gW?qE5F4!8 z=DsYReeoa_cz@78b|Uj&B0c&dqaj}T>)eK1qfTn9F~B$f}{{Z#GzJj6Ym z%mL^uOF_rJAx81Vn23u$lr7PcxV!I}OoBQN`EN^qKu>(GkwSq^1E?7qeoh7!bEq5g zR?S)h?3532DP&07jEOgknwNVBr-I)PFrqN~AAP@;qs_mlnDOQ3 zK{TFH=Iq~z{+R(ii?60oTiDztKj1)6<8FCul-X$0k~uC8rzUM7eG=GjNdE4WKv@7T7TG`6kAR%0h^%*M9O#m+;L8q3{aBJcKrtWZm~vK!vtPIw}^&K3-7+ZKw(6;;f9OGDoWVxqL#9&$u2Uq zz<=tasWmVDw62^O4@3>0{cY@crvnWHA_J2_cbe1@sn0*L$#BwMeow@Iqk6A>pjXlb z*8p9B(oC-;)M>le6}vc@kW70xy3NUY=f)M0#=9Yb5x$cf{i&)|^$Wj_d(4P@qRczh z8EE`KRDjndI`1*p1P_M5Q9$=(6z;h%P)!AM+4#lQ4Z7B6A1qX@wO>_WW_0hUqx+-; z^+n0gaB*&i`98oCV{Z|P2}O?+!WHR>GD`aeejy2%`fP(b^KFddvXF&rhG>;S{SCg6 zp6Zt5ly&LMFX{pMPmPmlo{=%+`o{P|4?*XyXr-LRVseu8QL&Sa9UJ4pKM-Ppb;1?p zO6!#wh?wf@Y7gVyCQaGa|Ei zAm%Pc3+r~y6La|5TFEzKY92tpB<@P;82uUk1fYRW`aHotKqQ8e3gNSk34e&@KlK_C z`TnXWTq4eUDM@o%T|O6o#%nJi-~pL)ToxTw{Dp7~N< zLBQ{2!{e5h!T|o4MFnmShZGL+dQ5E}%y;{H?i5;|(K@a{VM(}ri<#J>zg81KVE5Q9 zd)Rndmcg^>^*Qank^vv}%x7&dfa31r6kHM4OWsp9Qus88KQ7XxgM|nR zT`gyG3PqH9=yW%xn z?_YrOn=bza1lQjPJ#YDDb8iMVgORql(@F!vuN48P{{cj;u`gqTu0luef(Ad|GO{-O zzzH?W%OsGFwh2ZnT-g|0^4S(s+5tZ;2&J^y zxRLNr{TbZ6$dv|tk9my5@1m`N_DOjUQ(hTx*^ws!#lC841`Vs9e6z`LbiqicNJI2MWaNCK`0>1bgatHRXiU&u19Ifbn#Fjl zv@eBEI`#uDbO@MC-u1tAFqudn%vmI}+}xs^j`yKq7k>uPG5@`d1+qJwt0RlMab?+7 z$%QUE1Ag#Wfp7Ao-wtiaE=$vct^-MHMhx}kcNMXPI!X0C*Qm+@AEuj5oBqS}S;tRG z2bqv_r+~^aFFd$@D1>)N?EA5V@%m&2t2Sv%=MTeVs=#4p4R%r84@~yD zdsjk>5`}zKZCVP%IeN5X+^1h_0T-^(_~ft$JtnJG9BO!A!Sq-f{pxKeY}0vquY(hM z?^sx>FHaUm#=X?a_#oHZgv4QU)W#WNfy)svBy1FJ&pBeALnfn5AJs^P)b@OnA*~Kq zGU+?B_e%m@I!Dz78zK{%gD^B7W%<)5#z3ns<=cS7?nVNowd_o?nF6mIwuCI0c6(SG zjYmP2J&>0Cw9pV+nV3=m|2Q?wQc=SrazLtqh1c+WQZx4l^j&<_@K2gxoFYP9V}CwI zuY6dD5t5I$m`zy=|59oS>;Go%KZHbRAjrp`3t7CqjH{pnI%Si8{vjVj28%2Ev77zf zd|NUVjui=XaD?aAdYe*-3)y_dlW;Oy}DXUIdgjE<#aQ6hayXkiW0ktQ#YX5+f z%cAbye@!ol<;r#cDnz(1&YV9-m$hdoLBAy6=YJKTysx_k6HN^MJLJObsQs4JvY<&C zSys?vXd!Q8c8GGiuy2jN8hd^HPkje~4S@R7BAI$!_$?bdf%z8977FXG7MBO%Uovt7 z8yM(=c|K!&K3*D++ZUWlTjgD-VdwnFg#h~Kkje}FI(S9=^K=&O3GB#W>I*`YA8l8p zg8)Ixdm1L`>gUYN#l{rWE?aa@ zKT>0h7ape4XH&8AA*s?l@D1s1RE~pR{R0`cD*fE9N4r%f%3{lx*8KYQ_kfuOtROTs>A^2wx{> zzWH0Y*6-!$769r$=+`H!PO<+Q?#9fPP}(88hn|s{H8q|-pn_QifZl-wN#&1m#q#sa zgBe3FU;mlo?4*EiV%wmOP{~rJZkld$C;g06?vWuV_<7rA>~b>*)O@?eCd)}4KXm?U zN-^6XjFJ@UX_S_p2s1mMsq_97bQ;$ZDhY)iPNC-T8`x$a@)Pb%k*1zzRxqzGVr*He z!vXr+0prS%MO9HagYlK0-Tylfer{_oswW%h_|e0o63x71cmC?=QQI_RB-p;ZCnC`8 zgUz_Yk@IAMUmg&0=(jbj6odtuPYXJralraZuDz@3`sCsMwfjIW-hBAiXw<*30kHj# zCwPx6e(S2&&GVQ~3SM@h#M-Us5^dS4W#^BeD__#Ewg#vVj*0#?oUQF-vEcf#-X=sx z1(B^lUoE;y4|eh162|k*h;mY&WKPlSV{`#2fj?iI#EgEEl<+S*tpBj8-9|&0-qm#O zdDdLr-2z>g85~g_chDMah1~Ur=8Q!?>j@?k>d6h66~X1Ky)%CYN6Po%Dfev&sG8vq|E+@!ukk&=@1{EV5-!jKagZDqfGi!S zrzua2uY^PP&t2WJa2IrgM)-_{d*YW0(`|^m@#}0P|gN0b?12TTLIC2A8_#7XLIl~#@6NFMIJ1{^PP_yLf68|kp>!I~ zl0k28$IZe!JWiENMm|S>EEl>|m7#d0kiB^GJc|n3vryw?>!LEq-}gW-nRPy6v1nX+8^$XtrMM!#`dsb9 zqX$X!wmdCVO7lB~YG0u;Bw_ec%NP_Gvc*|6QUL!4hq*dm`q$nsGSzc!wVQ0o)+<4_ zvz+=a<@*{jpvP9W1U*tLnIKJM&K6TY^MfJD=iRXsP8y7h{J@gwjHvXee4a*g{w|Z1 zTRp-*pMGBq6fAOPik0rB#MyWK$z+s-r;9E^=J8%G?Tk-NII*NiN~HF&Fi(W^21*h*(!kqg-Ud5DKJPH^avV*b*k zAVGgs-~aRd8y%`^|1XmZ-M0g2xxx&4Hso-Il4tJ9e5#&MY^=I(h3sr*Y#% zULAa?%pYMU|9#&*+j1b`{g#3=^wsW`uL;Hn5tkt4>IuJ)lybGTFtm%$v*ag`7>O4A z_u1GP37waw{dcNou0Mv&Cb|WFRWB@ugv&7KX1cOhR;rZOpbIM4YwoW7&iOyDv-i{8 z3CmeZM@AWCDe+ZuZofUYZ!Jn=uV=@nvwHjgC^&k_R8Lu3n4~>(c+s(BM~e{Tj24v%K`=#77R zp^=t{5!+cg3_aL8yRf``_ueInk(x`H$drn;|44K@25^DYPlwz)pj4EI`e$IU?j1~a zVzM@qI$0J-%}uZd9a3xv6gA3Y;UudDCsr#R|1Ix_FC%0BOs*~d$^(RVADOgj&2p|U z9FX(5taqkgRD%J(%A(>WtnxL#iw-dH9}Qy^d*HvF<8Jv892I0(cYuC7#TVx>H(;Px zShCnstbRClvC-C2Vd^6}D92SRRle-GmqWJLr2b^8u9KZK(-foB2S&%`_yv4Ajl0Ih z?ry{mbP8GQx2k9ESBJSwWJh>{LI0`?f7|y8j9fgKq8RV$lJe)~tCkG@ehQ}OnsQ;k%#QpzAW75Wo6uNz)S!6sluA43fTw@m=6b zOj#;2RMuNA+TpY?o2b13V9;fGfqKA`=Ip8=cS|_x_VY||EgfLC!_&LDZfb5P z-$~O;1bPOWzXEGCI6LIJflcX2RM;~)lxuEn>B4rB=WNW1a#e723i~UupkEPr#PInp zhWw@#pgHa3$ki$CdkblEbGY+XgmmKl5qg)FtAbw&!Cee`++EW-L?NSKH`=hJ%BdI> zx!{}7`^u)vbJI{;quCoK9%elltG>&CKq?*BI~m*Wx)NYy>t}A==uW~=k;3n(#9Zge zgk|lst8t6+f^!@dQ&B{<+Wvw*=7qY4XWXOp_N$Jw?es;;T_2 zThvTg?f(%RPGpbUS}@OqK>; z)Sm^{%WtDMyb+AQeGKt>!5vdiIxW@u&izU^nad@BisFB`X_B>n z?o2Y+A}XFXh@Tz!GyUm{Jn&`UE|Wn=_RQUm@&FPd=Zrv>rqQI)+?9(o(PZ}Ay=GP1(^TA$AVRis3F^rGr}OY9Q=tCXHkop z3A!mZv9DW30r_Ce)Of*!O%CkWm;CM+{roVj(qDNH2K=A2(P2cqWh%GJ!?v8U0~*|D zz?rR5IV>)=-ce@@*PXw=Unk$N?7A9hH27a8+yaSh(B&9y6ouxN^Ic{sq&qX5?w4CW zEpBUJeDM_32>N7{6X57fiodN@<4PPYAgMcqBnW`jZUHsKe^JJZg0)U6J7?taJNvsV z{tmVC64)=pS9PGjabOa&ix}lmk8{cj@ny-irxLJ*eGEU@lRmXD#G{>1r;AO}=GTGt zjbD2UdDi3(z@{LlIG&3d{W+(TbpE5rf4p<$=ShR)uE){*LL@rqu^a*3N9YO2=g?fQ z>bsrJ9VA3HV7&Rlj}rH5mZSfuzC4gN3F)FAS_EnU5`liR8ZZDIwex9{P>peamLv7s zL9RtirB$8j3|ghjkNJ=nYS72jw3Ei}ljkRn+2YTZ>xDTFS6V+9be}f6r0e*pTTq;Y$)KqATaLRzdb;O~yDl6Gx1`Gm2~ce5Ehq=ML<%XWnjg z8TRGFEe+x#c*-&@w)Y`0y)3&-F8=Vo16^%gC><!0jDIlv^SC$__DED`1_ z6?4D-hnOtl3;QN4^6UM_iZh9vx_LB52$z&`^rtLgCrV$b+5&F>Ajm#V$sLBw zxjJC?r5mNc3SuL|uv>0Ks}9TG77|}$=v(OnL$jI>gi*?w=TK%SUY(eARpC4;LR-z52S8B0e~x1f1MDd4QxJi&$5aMn;4-5E1W_`)|0Tp_HNB52TWr{5g!U41yb z&>HF+a26?_B&7f9)@YWY)9dXBo>VHSWo}RL-BA*Mm%{U+_RJiO14ozAO{p=faZ{;o zGKiV}p1U&GZy3iO2rI;kEGQBPpm!kFf-o?iShMhKNv%2M-Qch60=^WRWS-h1kJE*e z2%4BX>@Rt}WQAm?`)6vC-irWC069i#CL|4oWEaxNM2m(pq9!LCTG?gMlpieM33>tX zR}v+^a&{aoGGuW*%4nq&f!}J?(^sxytue$3McOb=n_wu9a_G<^{WjU2&Tgv#IQaTI z1YGN}810sE)fryuB!Op+CR8v7h^O%)H3WmMZc2Nk`MDz_;cYi7SO z5E3m2lc?pa-%$}duEV@G!VdTPS4ZVX&beQMwfI&JL*Svh$O!yh4= zY!|5o;XE*_O2X@lu@_N19ky9ePS3lK(&VHHvcDe0f&Hgbm-*4< z6-D2&E7pofr#Wj2$gnt$$6NUPfz`Di$e(){;<{VMrfB`D_cygcG7q=JzWr8f5t#U( zQ+(AcA8ldxq6TSfrd)eN+r3_7F;yXpLWv4Z*2V3e%&v2GBOaR$kNBBUFZ{T~;0VC> z=>(KXIySV&E9;ni*8_cX3KjbIm`6e%nhqV)8qkGgfvvsqY`e2YQy=ef9yNQ9reC6m8xICa0V?@swwEpmHmqdNV_VGsp%LhdeHd#64=+;Y5kz(m*+tPcSFxk{P`4`!H;Z;8K$q>^si(0Nm+u5L8dh)|IJTAzT~iU9pSX05HVQ2n06I}~}` zrY#Pi)!-FcEb?kp-YL`>^gY8}BBebO;d_8TJ6NBqMcei%u(njx_VPkI`6F{T?*5;m z{(=U!t0%b2!}WOJzsq>g4H|)ct|fU_|2TropimgSmP0HI9u%i2fo5Y%#P!!TRGhC% zwz8W#*2-hOlLSTi+^2x19i*6@Y9ai1n|e?uEhf}I1hIWK<6Jx@J@m@ePSA<#2u#RY zyI8*E5Uo&M1f$QRN$Hxy__3N?@Vv1o@*jmNR|2gRZ0V~0%|&T4e@0yBF1*%gNGE2waSl@CBnmD&dp$~_zGo66Yv7FzI|$zlGC zd?S7E+A()1)5AUnfw4qx}xau{ZnDEY7k^p9&|@+NqQ#VNT~ zVVDF{C2+2P-5~iYNmFK4QKU_ETaoM!9}iH%X(57|if8`wIAi23 zovReNGlQuruK@ioAK?0?v5ups0RQ|S_LFWKOY-Z zPPNSxo+9R+KnJSQL7)ZPQD%{PShb?0fS%Z$_;f-Tc_-II$UlsIA$$Huy2!Zya_k~H zr!Bxzo?4-CjXEt(1`@8~bM(a<0zobrXz#tATVrLyk-w+Lf-5_)WYlr$`m5#-=3$%@ z?7M9X`Xn*WnXHC!CRHsqfLi{|^iulGY@{_gsT6jwSy6;g`uT(_n$L66FXy>uHdNzh zNG8B*SenGitX!m-Sck`l9Z0@$YF}lI9D${z(mZ%&3c4Jl`7HdJrHBh=tV{j%tD~Na zpjKdapv_mm-%x#+QRj@{ora6%|Nh_BMt>(S`B8($1%xU$sV`Ya3lr}osF|_^ckt&x zwMa;FMpuXE!Mzv!2hs02+{Ke4#ycHTXt3CFg-#+B}d56Mmvn)1*4 z%g%j43j^4T1zMmXA)*Q{yCtGu5KV`8>c?s=v|^{~;WE$EP90T_Ipz(CA~ z@1(yZd&$@?7K|h8^Jj?{#T-iV+qu^La-m2S^B=U#-UYY7+F(2tB`ZN4!ONLo$aEGGOwW0G^??a#)LHcul>G;zTzePgAWeU!rDp zDKCH%^uT&+Yd}T-_5jMPt z!eRNLu+1qy1|_g#7ZyVB@GSbH4FMSsKj)|ACpuY)Z9HJfoHT1*o;kFxJS^13?J-~J zFLE)4ZZF&4q&LQUhYvcIX>+G$wigiJge(#ni!Jq8z?U_yM~l-&^J-?ziE_lQA~!oZ zMMm*eC#bf9lZxUJ;KWMFFM6chm(}?!51tWN*n~WwCqn}p(`Mwo46{%H{f&QW8NL!p z61&Nix1OmQO%aaj-@wMgie^UJRg=0xV*M*_7hf5(L8=#(>kmW}%>dZ5*ofsawV3$J zK4ioMYY-93qQ+*E__{EX2r+cmKzH%QcYG=MO7fcSZT!vBikp;P&(De7l{-Lk)#dm* zy~Ljcr8qh;!3=?1TD)GK3y!W107F#DaNE$wlpB|(5(%B%b;B?J)?3lcB)Bd|xBmn5 zp)D@tBRA_ChCDv{13ZR3YI4VQ^G(Ir=zL&(JTFmuDEy#5zx5U=O@Y_C33G-`HaIY6 z7P5`^vdGe_J>jWKWVwxOv5{dlM%S%5>NHP{4EiRVn0uW)M}nx%>7zW)Zx4tPTw=)f zI*i`UvzUQ6DHCSNn@njvAK_f>{oNF(pRU9*0LmyhJ2{`O-tU(*)HzpAo8(m^85UW8 zWU+>SoBVE|lbUtToB7P$t!y(Qk?BZOqBId^+e|BE|8AXCAVV&pq)jL_UsIhNa1L4{ zCX|FNYl;Dh6f@*n-UGkU*ClBmlNbF}6FkUe*fht*@dPMFt8?=p0521oY&?jtoLE> z@iy6wl=tQRx2xmW;%pbt9bN_Io!FbtKVnfgW3!UU&bfF~1~ZK5N_N$FTT_cY8%|!8 zGt;T?@Uw>hSQyCa$u9s{{B^PA70eai2?)(DF*+4UoC}CgH5y~^wOlojq~C#oi6$qqb2^XQ;1p&ClyQ|IQj!J| z?X*loH^LWOOBCuzJny3+1T}3kvfBseD*B{IJY0Ly?ObdLvbkNj^4w~)5f)6Y@lw}osK4uxI zmUQ;O2Q>XS1fAkbDPL|Rwgy9eBEhhhIz<|_x;dYLO4uUj#+4u{8$c6Ug{fcivXomT4L9@>r({4kx91ng%bBFC+i`mO zI2-1JODpY)^P#g!HpgTq&njHC8;^g5LviK9=4*>8?4=BDEeCi6PILTwSTy#^eNoNE zDs{OF@{e5&#>j-MA&NQ5{6H6WZewFE`8HQ-g_OgWUJC=c=iQx?5)*iHnRx6xeM||mkAN{YcZ-# zQ6EWelS_0){kXq0SfKGxajQ22rorG&20^c@Evv2{LdFXCBWEPE8 z6yG&`{OH0$m?|B zYP6pPDlwd(%HO?CoT4ENB$fkb{a<6G`B?goP_fn9!KvswBP z1r3KNO^pmqa;LO0&`ahYu>5O0=@>Q9LArK@o(|&431YQZp%H15b=mFc`hmg=a6Jj; zwP3-0H-rRPbAJF_>4({ia%y@71B};KzpOWl?{@laE3#rxyOVNpOrU$(g1eB5F_}rL z#M;zJnA2hK7SJW(M5~DLdvFKL7=;jM6)!rR!BgC<2zCwMm1bH}fUAu+(lt6$j?I+y zVO-yo+vnY1&A(W^^tqR$9T8CSL02~&&6J*onXBm~hM2)G)G8#!{l1GwUw z%gYY7;(hS9d3g(#lk z*&qA_OF>^c6w_#x3P0CKFwLC$)}m`{fm(K{1@2t&FZcj|x49kVEz_0SJt;6u3@hIM z`3qJn1`zx8aBcMTh5XMN)10%MFCI)p1W%*`jx4J-VYYpb8t71jc8l2eL@9|UTm)>q zPoAXE)I`meZ*mLNiHOiq^-|4|j%>}`CFJywc6*_aC!IWi8+I7R4}F_)0<62msQz3p z@t$U(6B*XIXXxLiZUhaWx3^dcfnju?D9wRPhfxFv6_7YLACFs((tbsu19DKitH?>o zZ9R(~CZ|6??B$Ra+yK$&eUu1w*qcIJ$z2uJb!)RC(-zeM!Ng77>30s6QR|?8{>> zPcqG-JMnbEv6-?pRT>92=8wNk(TUkqZ zTW)~})x%1E0;JnBWSLTcUeTgTnx$hg1uViCd(L$?9g4RNdV2~gobgq`JW_mDp z0SMuJ@w810!mKLZckBn8ifD==NnHpzP0R)hS$^Y#9=KbaOBgFzBjaD7WARozk&W_E zuzCYQH(w!*wF8g;t8jiEPBC-gqZq#QTg*2iEHnzhTPV>r@qnkqASZop=`-GV_Xb3li8-b9wd`N1zX|2>Y%NQiKnK{;BvN5poaf;4 zVUUTY9Iy7!rN5PKO5{8tN+_nwdd#rcgBxlV%4)QnIu_55?=#N>O_Q|=L6M{i4QgYb z>vn_;f18*;d7sKm&z(lqSFTV%pO1^Ltl}71i?4gvSM*yK7&xdgg7O>{RYE0lwzj@V zx+0L!_L-rh4^37VF(O^u%y_Foo7CxLSWs%4{;M8%LKz=sH7H8o{XCFkCYkr1y+=6g1 z$)ECR&?Pr9KFg_fYszeR{Arv>Zx33v<(b(#iHcSQF+|gmX+5kPsF9(Juc<$mt@JHU zxJV-bSnl=9wa`g@?S4g36ZUYSf$SF_{DzEN0{Ia+E4YctRFRV^p38_ zzbl+8!pNr`%V5>(d>`0yYntbs`!y~J=FbQq#09>6!~kRBxKk9mUh^TkhIU}4EfXz2 z>zsaRAoENjAaNLufL=g?LTy8&7jAytUv6Xx)QWAyO7sL17iOH!$_t9^txjnCuGek# zE0t*MQo+J|tbl3+z9&9-$jajdtrGaoe99i~woz?Msi1 z^uot=AC4C%1(4n}Z&9%rp71pLfd0l!ZrLQl#4DPqLVrbZ7?xDS<&U6pGxtv;laA_i zXU8!aC>@4g&=CX;yJsJE^o(wS+74k?oo0n3SHyhVYstmA6fcve1Bgfa_xZyQ8!{Ns z0k+>!6*3YE(#Hs%I8Q{Y5hY`Olx;fE)^MG^m@plzlSCs#j@@Bx)Q*|k-Bm5Df`EJa zg@1Fo(-%VdufNUZyy3L*r@mU61q!Kx{Ly9@r}{GIH3!wwI` z5Hcuj<=V^!T>>ln@A%wjsD}l5MTB9x>6gp$gqaxs!l&aoVKsI0{AK&^lQg&Kla(Untwn1CRiMh<%4h}&w9>g1-}-%DAL||wdJ^J6}WWS0C!U|@Vt&clD`RUmpem^ zPs|y<4LXxl7$N+%tZw!IeU(<3*5x^~8pW&E=Ox-5`grT|{ZE0Sx&|n**D}p3FsibS zjQ0d&v4h^TsU4zTxwBsYRvMPwR(Fi@(b?SK)xP5%Dk&qQyWP8!YOI}v(Ipre_An%~iA~kUuw9zntjp`zvaF*rt5DSTP*Z~Set4EsfH*Hgq`!`m~ z_uzt>XN8$a^~-S>owVO;mypFPuYEWH6Z&(Q-yKUj5R6ii8C0lE2Jcm{EdRooIO@(? zxXwWbQPZ_->9Lq5Nf21Ny-K`gm%?spS5nIlXM5x{udXqAp zWCJ#KMp?S_I{~yJV09e8Z@T1S%~C6V17}VMr{akj1RVo;Y(3)M$yKBsT30t?$obAA z>9(O0s~iV-%~7+UXAJfmU? zS14@(KiRpzJc6ENR0s!~J0ll?@FNCqsqC9)j>TV+o%sar??`w~QQFgF5l)N6lGdKE z1+$47imd05l)x9gmK|S1j~}o@(rRBK+#G_$Q2L5#u8F@_o?WQQfzC-(OtH|hq8JNr z&Cx04*;W@rvfK|jhpjQG$R8M@D`PUge(9#$iXPnG&5y5Mz05=a<`C7&*3P5nmviVs z=}>5r<)T+5;Qty2%-5hXaM?pmO5dME;du*+}(H#c6$Hj&x9vD%zZ(% z$~8)UWce*i7Ff|v$Y5r~mG5errx~fWEkNknA^KQkmr`F=WFL0iSA6VEMcL>qScM;| ziz;Sh@SuNO8L5oGh@|7)Vzq=Z{Wb(c{gr(ZIm~K_b7$6ohOFB0Hf;BaZYiqe@G=#A zyE+u0S^ih>Z;Mo!1C4WxV$IcLFqCDDKHt4BLx2tba1rQM@79dm>KTa;z7)?kPUpIs zlyR$%M+S}9w8AybJ|FM%!bdfu+-$0QIJ+Kkct#aZIzTS5t(V1a3F}zBAG1=bvXL4W zlIfM==}fn9Lxa*S7IYm*j1eSzz5YLRERMru`MAG=2Dc^G$(DTP=r_Z%=8X>T#_NvI zE{&mT{)nM{2_HMa<%u&o%m8Aw2CK=paYgl{fG+|C7wJXd7^jFo;V?m8EY%?KOU=k< zjU(+!I08NsN*9{bx7*%*J;_4jV5Tyoan6d`fKSEAzx$OHzsMYpe;GLJ6+Kx$od|39x$+Kd82(=EVHji^J6S`?gQ$Pv< zeM~)ITFXlbPxxJzhA|j6drh|$xYoE)^e6wo2o5hB^NQ-csLPU)Eh$UsN?!c2vl1}g zr2mUMVanCTT-kt~Z!DjN(^AyYOr&9mUp<+7mp zp*FZo{3j>qHsE+feH2@hmHb#EXj|&NK*90ULZ$g{X&JtXW&b`4S;Nq4PDaC?|D1XPF?lZom&U8|O~fflF11$-k14{Po zLTW$QgCwI~NCo;+Y^l|Cr!WhAjoYB7K|jZlf2sYUc5%PqKrL1&Y`WAqnZebe@3+ec zno{7EBQ-KNOu|`+DEUE$%E^xo@mvGwG&bR0P#c`L^fs$=`1(6sdX+3}lkSB9h~jwz z8Z@8}ZTW1O;14uxYO#C*IPW@e@&*f01$0@A-wKo(k}puT;YOI+)YFA6)Y(TNVqQ9l z0O%x_h7h3lx#Rlhw#%=Vq%Df2z-80{i;^C1_$Wuv<&lADI06g5#Z*=Kt1@>N)jd9x z-Ou*C^81rxGNq&i{^t3A6C@~U!RNhbJ|z8fQ)&hTdKMfDCRF1RGwyu#+>Wg-X(N;F`Eu=_=ls76aooQp)KO-Y;LD2i^9Q8m>nX$?0 zsFF8rTN#c0^hOM<9FuT|2T}?ZrgTrC#KUW&goRGDqJF2m8e9_~)6qcrfV77jjYECn zD8EXUWg~SAD)SF__B?}Gt}`y^yi;f3SS_dBl=RtXhx5a!j=2&My_O>D0GkSB{M+Ao zCW7}o+Cq~)YlkOPbH5{BXF#FRVFPwAO02jzLG=3U06C=on)V*2yHXLiB$A!N3v}g+ zv6??S-2*=ZBTx9ikPDpWu*T&@n3sP+BdY0X<YLK!BAtwN0cd!8rv|s_h@>Y$~T|zjthlHc{rU`}D09dYdFO<}ns^ zN$9W&PwAYgC1PHvk3q`p$+Rjen;AC~O8{AMzp|64KW+e{Ims<4zxtQ%OEh68Y}ErF~}fX8#E;Sai4Y;{-qGnq;OE9`958BxqTxc zFkLhXxO$N(sK_1JP5L-ZnijeVN+8-lK)6n%;A?q@joW~}xxLMZdhwM~l^b_wv0w{wIL6FK+is{LNf2*9m<9>e3s| zWY(;Kl$8i77CS*j8g$WbAbPqzyIjW1ElnmK&o>_Fi+lA7+%{YLV?D@ZZ4b^kCYe^H z%0~(fdrof(56R_pV7-sXtCEk?^p-ZK*n9gV;GZ(50RPWU&%gR8Spy=V&&O41Dj^Zu zv|bvIldt5mTVMO|8w_zT0_I<36xi^63q|{QVzWB*V zx>X25GCb#QTVUn0j%1NXkw05N0rd8^-BKcXZQ3g$>~AqU+}A>DzuaGu-+0LB_n{$d zbRT}#1||OR$Cdf+&iUi+I&6`o3NYSjp@Hz|}li=d0tRB;|6Y}ee;;e51w3F$gH&YYDbW@d)`Gj%8ZlBmIv@N+=L&e zkfeSz5lT1ZQ70s|-J3=U5SbTbcup(lJ%bLEd*4`n|GKWWWIDLM`IDYq7W>>UWzYgW zzemqT(C)Eqy)&DqiBL&BUI$MmMcxw^K&=_(1i#SLG3-*jAn8fh?KLOYo>+I(BP{Pbba2uMLM1&FQ)QJ{j$Gyddbc=bAn3KaZ2MVE%3@l&Ss*RX0ZEIM z=|=Ge=8N(JA*H!q5kqOTu}<*f7BOS8|1cM}b>VRo)7s*1*+)^(+)_48h$7McI z&EbTAk+$wR-3g$(%M4`^)@>>yczs{vXk5qGJ*1d(&hTD6<8_ep2r{5Y0T+$G@!BHXcb6ZH8w zSRkbH6QM5gi=p7!NUGWs>yczW1Z}mI%=%+OP%Sy(EN&)SO{wFem4AaVw0BSgzy+@J zo6NpUr3QwH=~uWLk>hl4B^>o)JYUlWN>>l)AZl|nIJaUZUf$B&bbhU1=KEiARq&1y zA+m4h1`&Ww+ppp7U)i0D{@J*=YksAk&~pHE6(>YiEOtKInvUZQve+y^xy(7;pHOL2 zs-J==@1XNe0qxsjwDf2v1byANVnORneFVKpvUepv!rzyirrY%g#I&+DTl}bo2#CF> z%**%n0bUR7e6p&Q05P#X%Jy&5kuKBu3HFw`!0Q^Rf-vC`=o$f)Wx6~_;3`Va#s4;)w%BnRs2GRcu$<+>z$`!i!+D~#KZ_4iMfwD)c_>fA zy=ZD>K&Lkb%nKUyu)a#ok*xsYYQt{W_(UnEjj&C~iO8W{r&Q-O;|9h|z z7u9)~tCfbXS8&|eNgNsSEh2jAbzBTHSdR~5+~OrY^dISNZUrRsSua3}y~!E$cJupb z&q9KV=nquY)*{Z_5!eIc022eZzdz_Dvwy}0v9GqIv?HGUgZsWE2SK^RD=*~71YnKd z1(Ro>iO2Bg-H=e}U}%ibs_yr9AlAw_u0#Zk9>cGu!F{$luKG$bxN7NmcEw=5eI(MeSeg{UUWRZ=8meOuc>Y3g9nzWK?#TgCfB50y7m&tcUBW)petW$q_qoC+SSw}RJyfl? z{m}3IV8Ezts}Ib_?A9X$T{`!Ps5lovyMPH6$nM7ZXQLpvEzE$&jFX3G$pK8?(nvYDf1#so}TSgGSK*TApT040x;LN=#5<@ zy$tuz=g!S0Q9nheWAwhr-rGo-JNd(a&PlY6Th4mVlqSC`WxTeE66V81l?p_25m~V3 zTEw{{(-dJ)vddyhR$em!5))B>iAw<%zrl<7zi#7(LVlY&V?VeXTgMGeGf~)|(257q z^gyR^o4M}`$7LVrEsp9L5N7r|VK|G-_ zIm)xN-1|9ZgpM7i@Qs32qD|GcjD6mkCz2S4dKCr$!Ge)WDdS?$OK2!QwY?nI&wmIQ z_(FX#m<3@d2hc*;!Dk=Om`(0S zH$MBPNt1n|G(ZLWfBvrM z9Lb~6*i-{M;W>;H-z^N+Vo#};j=eaapQd0oh3Ngi@Vh{7Z(H4XJr|r+bQ0_IY^xmjOSvm6+#YuNzO|&X+=k)L z26G7tCicv%U`KfOwbplLSOF5AwfB3ql^M2;0SN1DY1tZ98@RPglFpfBaE z#l2}oCpgsRFXk5OB!J#Xm!qI2+6Z}H7|r)v2I)S3>p zA*GijaWbprxE}}VP^!@W{1;LtqyBzK?S2coAhdXfTlrbw&jg!0@D*V{V{wnA2#u7u zY12EV-#;R-A&9D+Jd>yz1K_ebU4usG5dxm;(;8aY>dUDNq;Fp+2)x<`x8yHF)$QZO z;^7|`^qwc@k)cRF1X84qHJfh+j zVC?6&2!WWcZY4%7K<3X8puEs;ucAI{Fqe#`?ia!%t6V8Ak_ljk-guV*`Xu4s6G!(_ z)3zX#e17n|STp$^70D15b{jpp?Q_q0NPLAXi$mMK%suKul4*jepdLU8cRg2|Q=osk zrwD22r@%lT;6n}A(^yj;KE3W91U=F)HbG$s@!haaMXqH`YnKgHsHu#IkU!o6Ic8p3 zBLKEs;#6aDDhs}`@kxR7agY}iP?{lDZ#UunA#FTnKP}WGrDk^-4@Nvtb|F|x`1A>S z_*>-;{|Nl126DA*T%?AiV`Jh#&%lT4!Sm4h-y@~8`KXRTjgnHxugN)jXol2DO1r?u z_9bG$$vrL}44SzjN_B2G0s2BeKU|!O3zbJRw*lyc*S#&=A0#4w$OeoyTG(?&mm}!W zX%1(o@o!Q@0!EX?Uu$`Oe&rHjpZ&IH*izJ82atO`RuOYjqlT&S7J4uW(Y6U48yfV zN+a9#C;neGKUksu6pmkm9ySw+;*GqM)}L+4>W8n6|C#kIcLuBLoI2$E`%zLMdw_u-cRQdjO{D+uU-vnC}DHca{&R^{!ITCy93K zAn{*gVXw}orSdE9>oQT<2M8oxPBV#cD^g!0&CNG>PqYdppj_n0cKg){UjeCeMh{pd zfxT*70k#e)>L0U>%hJ8lnq9}s#n9#^p!=N?lY1jbDX7=H&4NiAY`m6SX9m8GM8~yF z`<-<~LQ4;3wMG?WtQJr}O?Z>Lo+k1E8+^*_C01*!Hmm%kf|Z!?;m50QLU5T;^97-^ zK3t%C%$q8L5jt$dRRsoI7_K=jUFk=pMv_r87QY1laOo6&?L=Tqn9FfK(XsvW8>Y|$ zvH%F;VsJUuptWIj-2E0c3jLjGu^yIoF}X790dBB35p+%>GOQa_dd{f4h_IKA(!E&QQ z5pweTyW+Sk#K9L~)Z;8S)>vgN(8c?I%W+mn*oU;%HzwIeskf+Pb`$LUoS}|AHuzlE zR?LHX@2BR9NhQ-(R3;2;S|vfwnQk#27Ip&6xj(6!H8?Lw&C|$nWEm5 z2T?7UUqD}EQE_2k6k|CozowwYQBgTtgs@!bS$lCm{zy>+Tj}b5m`-lb+YHNl_k6?1 z?@|rL1#E6QsN{a?YQ$*s@z69YBO3A)$0_7Qm%Awc+j0J`$Py;=q+qIMD$K^!Qo-%@hvA zVzEB2BLvHB#RT^?Sw)qb*{D*AZCr>TF{YXs>Q+QEd#v{QG7+ib*uVKe_hLLA?y&{~ zYW1U8btCkT4AZ5GiN2%YQ~6^;BVo{SuDE*Iw@}N#Rl>P1^SJyH11i+_4rfS|EDCjf z4=O4R0#DOr`y4;qmqSy0FfeFG5dqi$IQ|KJ*K`|JcX+(13_nEh%_KxJKReY11Ekdk z2#_CKD)hr6&w|Ae!bK8Kf8G%FM+aG}MRsLQJ{p)xEvu5g8XmEJ4Df99DF>xHb`19$ z_(e5Qzsq>Q@0idFvmgFOR{xV(nUGiOP80jXTD%5yEVI&t7c1EZ zMYBd;4}Kj;eE4MvzHp_qZIq$qpMc8oyg|PTIR`x2i4f6gRMcb$M+ZXuGA%KgC#qpy zt954MUS*v#(ga=k;+bM99If>v<=Q;RwY_7W--cxVv12BJ@xRV}n4mi+Jqy;j@kju2jSA_`|K z!)^4O<*RW>;?VU>H88)-Jwi$;YD8pdqPy+Rj5&`G`sPi4876&ir zN!sUaP*zEB>GH-DJ~OBC#XV z{PP9&gy78JOmScb>*nqRC}`U@xtf$_Gwl*~H=S`H#bl91Hk%OIuOnsZT>GI1ddZ{_ zA5|jAccQ}DdMHQcTFX{v>eM;n8n@-!$E59K8Gp&?^wpQ#?rRvO?a-TrdMG)kPvReqrHvtNehX9#^i8{j6px#AUrh1A5)h9G6`bd`?MFXto<0) z+FC%j9hFd-k!->VK$uSmKsjIxlszyPNqhYv>C?9Qv1SKgGOZujr zTn`8|dqB@aQbFnL8`jsl@0}1Ih_ET`qkmCR62a2fcV z^={oTQ05X+l|N_@#v>eHOc(xG|7#JmVvcwQQS-ET@HBJ-JeRbf4M)2{ikPz6JF z(dAK86I(g!!d;;IonmLnT}M69Jn&NDBXDcA?dBs_Rr)hx@Lp{ZYVKEF%Lspz7)* zc7R1%R*E!*CMEd~CxR8hK3f^kS(vJk(X{257?F|QMQ5Bss$&{@GyrIbyu_y#egw;AQb3AvFc$=S%twxYA9JH^$n*OTJ4j^2`&7Y=@FTLI->aie$iuTjxPx zK*FeK8GPhLf_kch`v4W3WKj;sc9f$)77g_KxJ*Wu5|9a&=h<8?kd0pzhTgiJb>ml_;`A zsICY7t1kP<_SP3D|Ep+3ewX&+wr$boWUV4wajgV%lMGkk^WWB}n)YEXHVgJpA>&`3 z2P}ZnH}g+!c+wZ;me-&m-{>9<1Ol&I_L@U>E{qd}JJ5IWRf}6rPG3pSj+Hu@t6 zW$2|3w(4CJzZw-ff&OuYNw+}-J`&x8%sC+GYKA_Z&UHmx$WP%z{Vl$ka0Fk?(=X@k zCe3v7hmE0;{VNI>=V`b*dHvLVH-L+}lJ&vLOb=B%^Gqodpsn4lERq7f5jgj->H4~y zaLu0UH;4MhuZ*0&TTM)SYP^MfG!`!?lF$~eNS^h}uZs-l44@;=%+De#LqB84 zZR98DzGQJqv8&ttjNBPB zMIA4T0lc|sof&b`J1*}SF-i|`l%M31PI*X$NAyTJNzc-eq>W>n&@*{#?i+|=~ZVXsk7{CU% z%)a)rv4j3`-@{WrNeX41TDEBpSr(xJPN1*_bVQ(V@R>ZCW7al9kU<+yNFp`y-o~`~ z=m#?r$Kk`m&`^T^CpSuAxc=lgy38;1vX=?K^oBsO+|bKFAI0C-bR5O#9#Mgdw$VHxpc-mh{H%e(NAmOFUzn6m%hp)T(Twvq3()mkoHR#7+_RkXH*c`K zzazo4!+P;Un5jFi$4G{f7M63h~iZ>{hswmajp-o$@6#=#-PmoIaMz9~o_yzx3Sp%^bbtHm`3geeb9DH&G5q zsNPob)K}ujQM;4Q&IF`?ncw!9(wTHQq4ka_9i!}ig}|VUrv0afo(*N#7X&&6k`L7p zy;rpI#VQdIqE<@O7b8&i4AEQk#`24=Zsydc3M|q2(Obr{{IDjYr$Fkl*4psR*b z$@SdjNx#pY{O}daQ_$_ZOJRIL}gZS#z0WgLoh%WyUU`y8fd~UEcm)u4|L!t10&e4e_vTd5awq z0_eeDbqG^P=nN}%DlJF`lWH|smmC00)InS2&+5c0zdtg4?k<WW2MB&FZfNPl=Q8=mCy@?e9AdTmyC^JoO2y{04WI23blXu(=%EYk*hgid z#OXc5_t1;?4T?0RLz&7Od#%L?>O&0!(7`7I111qjcdxiJ*PeS`fP zUP9p!wH`_i2CHHl-`4ga>i~|$6LMVj%0U*w7se(7XNrvH6e2sW?B6H9`OR(BJVAfs z`=>LaQk}djv78U)yjHC5Wy%r`BE|@{B+p$mDl0qIZwMx|IXmagfs~|giDzp-w!7H2 zc0KID7x_D4(SisvN^~6y_f!V}f4fGT&=wKo2bUYFT&a2|u--+E7J{X77`1A7Z7ztz zhTT5dxO_WF)*hWQ;ip$9b}t;hEuo)--eme^j$A4;IDHbyDywq97 zB=d@bfxa8J4qH0-z(3zWdjwm25h#D3{q3xRFKl-lz)Pg4$%z-9K@|zUAl175OH;cN-k7 z7=WHj%V}#nTf*sL@d=|D)(u_hxNZ7+O=#wmR4!O22|a*aB_!AR#>j_%MkvM>~64+NOXGdb73)q2&yt0v*0zG*@E+X21Lv+khdt|o+K|TW`avof`dUthPg8iYeoWolJZ8R%uO#`G*EYV`Q$Ae%A%2%eQXej5;iX9v>LS{>trpu-mb$@|G zD$XhOP<80=C@a*@O>wI0Th)syPA@szrQhBvXrMbaGH_F3-<9`@aoy$dv&FA30s5qYH~dSA7K%`@2hF7g`9XhyMf3ZT4#N&ku z_yRY<7m$FC6`-REmu`~=cX>C^IKOR34PFt!+S~H@JL(#54e0lA0vk+AX7!OqB-4+r z>PDrx={G6xs?kAkCN?vuOYd}PiV&)>mdyJ?cX6cWHpQ@2fMKSyc_Pno>8m)UXSP`o zj0d)u`q^4cGD%#pT~#sY4ShIj8lwNwGfE%n9BnY&HNhLbvf|p_(5H-z<9rNa?n#?TaLfD z(j4NePGk}t+Nsk8=b!}T$s(VJMdl2i4Yt^7-6~8Gk$aEsruPOfhE%Qi0jgR|JGsVm zruqrp-$h4_AaL-4qv!DMzs9%R{FAZ+-3wERC(j;>R(|&>XYpl#ZtLDj|2L#9b>k3t zO+?na%nhp752Kvo+qTE{WB0@^KN~8*h_X}PKI?NCe9auBxuAxNRbV4I0(UMFjjd!8@#e$xwFJ~WAkaHz2=qvGRA>tJ>daS=8 zkp44Q4W{s_^v_gxg|*>-T~+F=Y=D{_6Sx_V6%*RW@_&LQNZ8`83=c~=Y#u;I_8N(+>)h5ei&yr3Z+E5pe~isv;5f>|yk9nFGaOM* zw9^xcNN;dT#`|cdt$+Kc1P)X_8C+lj?R}xO=Sw;J`A!L>T{KuY!Y~z^sa2-leW1@y zxkniFxO2~2iS5#xG)ui$WQ4LUJJdpV5)2YIikd%;if`8ovZgfA%AjV|-*hAZh9KFk zWM!sZS#gce_}-#&JsB1W-A-{Ad>)Q7>Qc}{m6PGeWip!sp+w~I-V$LT#6FH$VgKA& zigLi$j-L3-s1GACa$NL!(znU&)ZwwIhyq^>(2#~qS@w}rM_XAu3NKMT{tVjhIR8VZ zU!IayX9gW82gAcJ6OmZW(X*Fjg4V}KYcnkS{P2XNb4PBYbenSN!!2YP&5!X}K6!H} zZa-83;=g@F2il5ob2qc25AD|CyV>Ets#tN)c(qzKL#;G}{!<6@uE?*+JJa%*+e#~i zou5qHChc9EM!AF)>1uh0H(d{u5VEXxrbZyk(M!F{NdY?IIga}#&kF5PM|C~tY`Jes z!(O8!t60{nrfh5`pwqZ{5;e4VGk$EcuFz^0LB=d5f(R%-;OtAADKJUBnfv(;A|KM` zG?dL1l)`rQ0Z#;=;@I$0?(Ft4{olGgE><+Wh9Src67U3gSgaUXsvi_Qe-UfK)Y?-x)9dU6*Od8aRDawM>4I(% zEpV>we20T3IsCZ?S<5-oS_JvJEv6VsR8f z{9pA%XgJ(~D#rf4!7mwjU}|mIEqJ_*k^^fi$e?>u8Ii+`#Ru?@^nX01)nz=(5YE?K z;RbrxScFEwIT%0o2HaQ&eG-dlHk+MYSJa;Y+Y48JTq3Zn#E~|lic0aXu+F|Jdc!u5 zMldg(bRL1O1F6#Nmg4fnCq(nk%UI_8$RDLHF86#BoirlJ;Y(RRYqt!wl+k*c%(5Uu z&s#Yc)&aVPb!%Yzc){;z><7rfX0LFo@INUK_zt&}j=rzQf_|K0=7j!au=%n_@veFg-18r=qc>4siMvU48I%2<2yA?}W>(QTh zwL>DG*zH=J$R(@6V>R2PQ04(2^UTpJG4Od7iLuA`Z(La)8-F1s%ZIRjM}42|t4N|9LKJ>=F>6ygk-nVT3v1TcY4 zFYu7wkCLnJ(bV_M%pe%~Ol(=~VLND*FG)qA2ffQw|Hcz9_@EuPXvHmB;T3A!!cE{p zmx0Ul?vuzK#c!O>A)7%kHnLva3G<-ZV&DrD)RZ%e8~&XUiY<6rWYC#0$U1x9Rq9%< zI{Wu0IuP`pE7=R50J%V9S1JVg5L4_r9oKm@&+T-PFGg^}?569Bh_BcmtbrlQxjdno zQMJ^Y1E48bsOt=K5#994C0qIkviBggh&Dqw0K*u{Me7s+^sU}e@E$9C!7Ty2>kL^! zN7Tf6!_ry1jEMV}Ui%IWDj9fd)H#9LbWl9fe_XIb<{mYHB82*{?3TH4IZAjZG@B}d3Nao zq4ff=G0m$H@&RGg6#&=}nXiLs!ST#H$ueGUdpwF+PtX7%an(*Wp;_1;9MB60_eVPf zpRf8fE~+F^Qo}gD+GLY~N3L%H5-L%T^O?R{cJ)x<&7ngE+SJ!V`$<)xsPf&KTJ3{+ zo{R41Vgi`Pc#a`%iaEWvTi__uRRrh(2E~65PHNhaLpw2An28d}DAp`sb=y!I6r7O# zQNRcK=84t6+**!->v58u;BIY|rU9*@SFnF>=ej7&HSe6`RxHmXci$L z2D0y?H8Zl$={w@Uwc$waBcHF!lWpxmhfd@0*b3;`P4(*B%5M(fD!GJ^f7X?&%^*+U zy617N?&QI3nbx!~2CYuJ$|WNgBAB|}FJXD0qyYy>2KiUoi!fPg5u2s7=Q_eG-#Mmo z-eoC9b5R!y(AORYxkt=So1PNzE>LfjY@f*d15?%F7++NPB6jQTV|<6O<~=`eNI?qB zmC>R~8J>UuR+d_@C@ZO|99|BH9mj?hh3v2xhAHzA;fs*-RV6{suMU`EZ4{yR(7px7 zA+hcGgL|Jv;laWyyDH7CS^oi`pF%%d3Bp%^pPZbCikVNtX#+g`GT?3^m*oN5Cvk!D zMzACXaM`+3A>R+{l*P5qLC^JxM6Xd4^}Z~0b)|}#;G~-mTSq$t9QC?g-Q+jf1H3C zqnTFij?Ncmn$u*Q7eS;P#xqdVBzdH-!IH$z{=S(Pm+Og!A!iL4f_k93)Cz!wXL>@R zRLRF}Z;zVn3H6;f_fEPAuA{VVt9j+I+JTO9@ys8UNxrWZmHHR#{H&7CGk#ZVx_-eS zxpJgr(Y;P)!?xtb`Nx}DIk{+J3S61x0ewT zOCJY)@p4H{Mff(8ehC)JD=!K2-U?CiKlAcgty>a|*wNH00Jf+S?~OlyW* zWvKx4K!Q(|(oIi0w2Gc(T)NOqGwr6D&^5TuDJn-{J?QBeRXu0KzWI0m(t)L}?QoN} zrMl1b2ab?@Lklew`5R_z3#z9p!#xPb^&E&C!au7$z}U^HJr+cbWgvRDsiI-S#OS$a zV1(%#B|17^+m~k0)0~rl0*LIH=5XX9kDt@sI#4sL#rgJ*ODOGWHba@_1kD@Rt^&)V z%}V1DTbX;%IaFeG2H38%tdzN z7NK|BtC&%Izp~?3X~*6|`GN@iO2{j?h&6U^D(3cKbVg5~frR9C)Us~+-mYtn74|=$cZfSpfXiN(U&X; zhtL}*9_J%Xun~nGNaWO}D6~|kW-PjYG2ys?Unl{g(&C74Sj_lJdC?fE@&5Il_hIrU z!yX^B*YX|cwK{@-e^PUN^`mNJF3gA4li8)x4`EvfhPnAF`ZOfE>gr0*i~WH@Rlc7f z0HtH^2Y@~@u^qu6hug$p{?K=YFEa{zQvMm2_yY~^j^F1$m||N;-yBI@?@bluq+ri&j_VSr zm*XMXy3?Z72Ne7M!F3Bfau?+68vuH$l4D^bPsLh-xRAW_J0F71t+F|btn|*p_Vv>g z=#4;lw^2RX<6>dw!@rb4gw>;I$iEWOZ$cJ3u$89xUV!@41PwKx>S>E({8dThk_Q=Z z?QXCW+vR`sCv?a~riLzluHB=$4cuCbVy9r@FDB><)Pv@a_}QJlL*+_9q(GZ8?4B0h zk!YQS*vHL#e@+03VPVmon6vb0O=YiULt0!fe!!}lKf>MsTyyHJkE2w++oPZ5H(NVr z=-pFEE9gs4(4)djUCwMa?1tSb1c@yTm$qZBB@S-Y7?C50(@*-+?ieOyPBZ}9C)+!2s44MU>C@_2Ke+NlaGJS6;uC*N>H2W*&T{;%Yu9T z$vfmn_p$;%XTL-BPgb`cpr7o}?gT=Q@)6NzBQ~ppeR7?9U$QzOWw;W7)TkG9k9len z_vn*y;4cB+OO&5U5F;L)MD1yX2N6yRd%K~787d>KGkk^%d+tvq7EBLO*^I!~qnHVU zc$P7a@lH$+*(z2rcuNfV&N)Jnf!nt>CeW?kv9c*Yjus7hOgNRXIK2XeD~^9n0GyvzY;pSMs|7g z1O{!vK({Mkxe+|y(_vEa;F5;#LBpcYPPLlx((k)`qwq{<4(MyLU8~mAO&hj~ygP4` z`jiF`jvx=e6(;OMbDn87KUhxbd8zV<9AJE&C5JYdb%LJxk_0Dr{wIkR&-42n!d8c- z2SFsK*q5Rn4{)48QeV$^GRllzDh#JKaVvG+JcUlhRe&4cD*tosB_TzuGka`3jPuWr z2>U>+UwCHhq7yzKb!Xv)h^rS$pzQMnKQh|IBTzS7EF>S>-Xv zw~|kQL6QnPGFol`h-I>XWPgU#jpfG#bA_Lj(v)As?8JW$HK=|y3-twE!IpAZHd$Wf z3Wtm3#J8(kqp|yNj#9gk92G6*eYVE7I=|S*{OVIKL|SJ?|LS5@9wz;m0 z)^ZmAUe;1zpM|iweS8}W;=|V2=lRYzL6h1&^)TcsFZe zL>Ls}h03c}c_!h6w@^Xz|Il;c&ipc!Pa(}cjcUZ5V@-L<^ChW}#qZv+l_KM zkM{%{M>{BcIbwx^+RuFn(_wH$rY;JwY?Rv-HWg%2p`BU$a#o(w#1G~v02HJDI330} zvIU2|R1uM?=GPVdqN_RXbNVfR!0_iODd+{HVHmeDuxY1|6c6FHk`c;73Dv0uO? zG*S4EmsOZSBs}pQ{v*QU_}lO)X=WPWg7bAF-(%#4Wa%|O%-Az{Y^SjxwyHCl_mMct zxLh0b!Q5`Xn`1*7r#8;rl|~~r<67(l!S++;-57E*;LTIAy%(Wt>a=Ff#fEJ&Yb2;A z9I)|eX|64LL5zCLGAF5=Mo$gr(Q`(S!`RsB_~-Wm`j}cyNfSNoj^$=u>r5GalilfV z(PbxOM?g>l+e+#Z=6(cAAc{lDrO#!=fL^O?@EHw+eEfaBbVyb`s zp=9e50=p#`gzG8o8I=wuD4_^TA;geTYr1vOS%2pr%*0rDD{>tnUN^7nw=L&_#~-n{s*OY zyHe&q<2CF+trr8Uq@~dW0L0@+naC#mtAXzkFs?o`blIb*%31HY?B_+l#G!^k58Q3S zb}eZRmQfyye(fnE>UmgC2|n4w(p_R+s)oUS%7=^3vgJYPQ+-R%gR;y|DMtZnW97#$ zja>j<(rx+u4BQjuHR;D)G~A03AU&mDAgdq7W8R;}t2ny}^> z-Iz$@M5>J-VIM#!O6l)(3t7K2QUe?Ii|l2HOrL*4M>SHP% zEXYVpLNSi1^v%^mP|nlMqUiezF!Ncd>rL-7QuXH=ib>Xvzi1(c3Nky#iq_FTZLR4T z^ao?Ao`pFR|}-S&51$QU9}uJa5o_Ws)O)s8z(t%NnhXoB2YMtu}U3D{ndHJ zLO~&6(kuks(-vH|8iVsw05v@GipCaRq4dR^GpB&U8gY?qKH#7J4i4cO5!_UZK4J#F zrY|EHPdRYLMIjlbT%-B17WXaG%`h$?eCqKAP;6S^ozWu-ju%w z^Ec9u4czd3y`OBZV>$nFb zXsA`)t6=TwZvBm%!4yCyW6F5;g(-mh$!=E(qCf^JO)*VI?e*yX0G^8 z0xakyv*0T%KXV8zKWiB@LF%+KNiTi9vKHx|Xr*lb!&%@Lax)1;^ub94Z1>lcOM5M1 zpjp&liTM`1n*$LlBKk^_41twtGN2J{CwRyY4+@zYP(7b<-^qe-U;tN10%L zdzbD|wLqEoW&?eMssG27*d`YD-WV;0qepBP8H&<;F^ zcI2+Q1)-270Eca?(ByOAQCO*;amMcS8en?KfId`1;8dD|428Ap&tv-fq&-WQEzo~& zqbH;JA9R`8QKC&g7AFo_us18~$BU1qXe<7Cp_kM+zc+}J2(C&$nJE?3LaKXn9U8JL zTT6gxt9lLsY!nVnJMB=Nf}0>qnoX=>RZ{NS_ZWP-|2GOC%bango$D}+LlpdQC9wVw zVJXq2kyqR&qa3hiOle9IA^p3q*JB{{>#}ws$f-6HQwAjI*r%OFN827#lv+wNNACk; z3xu~P>hzPX^wt9sDM7!T6#2-vufAqDNU#tZ8?Wi+_s%SFseMV_=CwTJOcsopT)Pzv z5~~yVK-9G=4re6<7Hy$v-G`~H)R&k_`A3WO-DAr?hDTZ*l)l$!B8h;`w6(8A=22nb zu_bG*Gy67U?9l9UU(g%CUVZUQS0yjI-n-OiF?~O0qFpPLH(6%p*8}oa22xRRn!oPk z{XNH1%Ae*$SCj4c`aUokE=L(12zm-^#GH9SEs2%z;vYlP4eKUQ7-CPD6g0aN-!T^YFqYmRupV}wpsvg z2d+>yadjQhzkKtB#(sEDWVds+Qe3OF;pFS%!?OYXKVB|S9Yyd{ca6z%`uEu>9#Znl z>};R6f+UXS2iYuHnoZ4`RipDMshv?W1#&A)Kd^lR(Pr4itxW!%n6<_pVp9a+HC-HR z3co(wtSDy?03Bcx)K7JKY{L7?Rgb_7?*u(f2p9IDoHJ!7S|z769i7y0(F_H1y*;n$ z7>jx1v@ZyRNL>Iz4l|IA)~+kX_c89;$ae0eMhz6lVvo#}$DqG)B_cLS`WFnZ^htv( z1SR4GJej+HFe|ww6gcuz0r&6fu;`UAU!KmaS;Xcq^2qvP#$t zSixl@lBF@+V7_!Jpt}Ydndxb23_GP05ujV-`l2B)&Dw9rDJ@TgG7Sy?{RQ3c6sI-) z6=ENMXf4>$HG-fn+EQ0RSp&Y_6meRG>)hxVtFPY)c^nX;S{hn2BD zL_kj@3rq`7s!J1IMU_Qj43PYci!n2UR8-m8n*C^yk+k!zJ{wRdso^@_2$T6 zn~|L*q)=tcax#|eX``anrG`EwP9As*J$f8P?K}fn1nW_TFBk(phG|hdAq52Ye8((* zd5h^7?{wSKdO=T*%)=;=M)dsIry&1LydF;8Z+9?E1IL*2n$@?c5*`246?#aDQkT$W zIE7+(3}-AB7C>S#@J+&ONXQ;p@L*+3hmDf6Yydazh5n3W)M0W)uW8{*#gm{36THH7CXet`_6hx&I^Ay-&lBZO~FKRU)zcj4RjKKE+ngh z4&WE11_Z0S=86)fX{$GOw#35_C?HA{@^&qkE z;RwVozi>TO8IJV0{f?Jz!LJ_7`VhDrE>!PRj3K43ykKgWsVU z8mRQ3BLXQ{0Sz@w;n7(pSn{DG>iq6HeNkC~$!u}jw6@euP;|YblnABH+}_9Nmz#Dc z+|_^=pU#UuXKPT?oObhw1!I%f=jc=_jud>ZfLEib_7&&=+gBg=KB;D~ngTyk@R+CXB31mCa zvLyOaYx9)(qi3lW7k}Z=0yNnXmv29?iH2Yy6@~hJ z!=yOSbden&#FScW`a5V$S$o{sg=l7Sbf&TQljM& zjE4Kr#Q>!u;qGNcnvWl9-SflJq2GE8Te$w`%6MYNHR<962IwU-J1?ybF6{>_t_QXD zKSMjn2HfBKAyvLl#5S8sCBh8j;E+-i^TK@RoAge)=3^|tIvWL;r+gH+ZNXYb5X?NR zPnvHkJcDQLg`&`Jl<%M)r_>Ycz38ZBw%?q8qS~EZHl|7;O?a#pWo9Ve&L*?8qNrp5 zQAj$L4rRuiXz^ij3BWX2SJHLQ>}DZC021o!Or*ps)RW4SS_^G)BGh{`C+I`l7(Hg% z&94E&;pgxlnra7{7psLisDF+!1ZRRbW#XOkMF}xUU!8CaR3|&pXMA%2vo%`s&^qU4 z=6MB$bo8CSj=9M~bGO8DzdgIVy2jrB!_fBeiJgBVYjKK9@xE8BaEgOGpB3^|9)_*3 zDM6yS@xGAgZ|gq;Z$+kk)(ul*8Q{35wbZ4pc4#_Jq%2-}#pOIM*kpF#A1f_v-qYLT z9_X`E{Su{22eRyU*RFl+N84ShU2FQZWjW<4)i!|DfTPQUdCLE9G+2QwhrJwY8;cs? zuH!msqV&&~HCf9{?E*}d7tP|`kQ6g`4}n!NyA$-By#h!>oW<`b0e9e$0WexRB)iiP zq6e))eCm{6C7<1(ja)^Cj}VGG{w@mZ?zC~c4*`@IL*6Dtii=eB>}};wzl~8uj$V>a zL``yt+xDT~K#$i6^!tt)2R`N_qNT-BsNg$tY#ML0EDbD{7}w9XAcMbaHm^5`xz;f% z%2)8YU$LwMo)jo)?Ud1&-+WEt!RquOp?4M<$JW3i;05{+ST8|8PSK@2|8gA3sHcDF zd4vbA-(YGV((4G&^L&bbzv|6No7Xk;xu6z4_vB2aXj?2(Wd$6m#A~1TCpR8Z4cV*h zUdE3do7&9x8dct{!0cH1G(diEybNMnp{dVS*wu5pka)fy2^isefIO~dE=DedSFqzm zl`*b@DCRB6@5KDtu!2Kuz*@bw`>(q;oNDe+kq$LXr6PPmfkhQ`x=yrX^Q#ExTfO7A zWUt$dy8@{Nvx?0vEy91`QmXv^oEf+uS#j~7OE~x30Ut;=xz5dACy;<>LV5)X^mV%p zA5KDSr-@Q@fPk9sdHSai#$3~MhZfv!&&BnH!#);b0`!~Du>&UBEl~zChN&`t&0^OD2go@hIg%#e$wA>;2)4cDXu{ikj_ z%qgK}`zA$?qSDG;N>U?b=T976!I`c%IE*?1CKyr^qLy{)5)WnYUJ@J2Nrnt$TUG3h z`dAYxl0bn=?o_`zijw zUzQBzwLww+b~?NNuo=glupB`AIDUC)0OW5|(3YY2cC)U%FZ@0<;FRnSBE5q#O~EJm ztMRf2I$j;cqZp(AG2)U<7bo>lCv$mjZ@sns_ zDVNo`juSj|d~GK8AJDJGhvnSbVP!}aN_K;1`Z@5QLNIILkAwjYLk|&k!f5V*iviC8 zldxC9OpL~eG&Lb0=!ruRcXZy-QqZ6667es3T9KY}FA(P0I{C{d<4Nk{@z+p-MKpwTF&g zk3yn#XGbUub42h6Ug(Y`_4iUn(6=yciI+}urLBxqd4uOKRnASv%3iKJM#5ZQGAXzZ zUD_txeyp}P!XE~oMt7O&evM55uvymyFk~0daD!L`b+58jq`NV}`EWnO>%8omwGu$L zkxqp}oSr*3qwx!f4NqXz8nk@f-mRmR{&L?LA7&@=&vdosNUP!VP(h^zGYe1Ho(-t8 z?)j5GE1^BcQ+R17l155VK|g&R2up6AU};(Nj|+4LTh;t_5uWGClcf({C3p&ngY)!s zhA6Ed-Uo88_#NUC;$}k%ZPCMfV}zZF!R|f)2*VXgQU^XArB7|L1WL6ZiJtxqAHU}i zkV8c=(T4#Y^(jb|>s+$0YwRGT1#@tq6OQ@pTEnM1WD1h6?u%$nPK6H~Y!7{8)MsMe-ZV-yTJW;$1=w{hwkZ6sC z$DkX4z>n;K;hsNgkp^(P$5=PXpA=LVY)`yg8gh|p`@q)UpnnRWnD{_Nfi8S*#bd;! zM4+D73tr&3l=vJb9U~3RMU)E*#Bg2&vy@?SI771e!BqAwjwt9YUCh=T*v=8&3XqgY zaEqW9CO|m9rmcEPo`jZiZ3fVuqpm^E)QtYff|lwT$|-_p9e%Q@dLTEppW3Azp;r3Q z=}Q`amtFU??jexa-|@T>G#!<590kO9hmH<){54IkM;lFw{mwJur4`_D=^L}OU$)C% z2D&3zz=jpYY^oaL{9ZnF?gGRtZ@ii%I7bgm&UUwXNj)#od6YY?mXykAo5ebxFvl(w zFzxAqC4I_{nFYRst3zmgtlI8CwH(enQTO<(x~bzB^es%UI8@zUhfuO{au=#F2Bh3? zPj>tPJAbrg(XQ|HhRD_X$EBVc>^zV)E|6Dc$ib#EFQLjXYh z;wBhgwW=kGs|5O2t-wr+sWA8bOrSH|!p4}LUnv9K3ax6wB*PGYDdGUC z$;Rsg+=~%BLv@LcoUfDx>=(k@h6^idh$k6p3rZ^`c<=b%ObH2i7F8sYTwuJs-4~W0G4!y3kmJy zX{viAXsG^NH5j5}c2_EFV78NBMvjwMWNgPj;F{t6X8AnaR4Zler=h+Od+n16=s)#q zys`Rug5ehxqwnLMgUBhiW;k%KcV_*bzM)=k9%c{r8kPuUcOC7f24FNFkElQeMb=0S z#d2#!jj48N5hP@e)c%B#*k64`G{m>9UeFDNf~JyY8^hkDZoo4LK1FDUW1r~`!sgyo zJH5)ZmDf_0p1dm_dDnoQB@V%(rcbi#PU57Lkf`sk{mH0S4YI{$E67#ow6%XWtYvl};c$bWlOtNHIbrV!D zpdcNaIB*etd|uBHdUzYiDoohsm}eeUl3NOQn4b{2fyecx07o`8zH{h`-kx!honvhV z*vDGa+$jDrVcgLF5OS~-#;8cU^khNM=&Qa~i@yFjfnno;F8k4UAOC&KJd{|)Ot}{) zz25UnwKVN%u_VASypnV$82{w9WzOQa+CV`ZGkJk|j!N50>-ma_06I{f;O~fnKc;7q z->)lg=^fy5&Al#|u~uAGflOr4>QKau8Ax$W)H1weoyTL(?oYD@u&0$yol2J&LXNbG zmB~v&U0E1;$3O2sdN#wbO@EaKeW?j!D9TZ}YVJ|=J{s{Rh&K-|Ao_K*co>zs!_lr> zM9p{HEa==J{qxZ~plj#gJi1$qJT zd;Ky&DH^;d?bgZ8t>|Snvh=|!1Vd#fyYbLnX~GRrriawu?S8I3y{33(6Fk@9sY)fHGLWojmr!Q5c#?XQ%JtiyvegyHspGUw#A z|Fk~J0NvLo&CVQasHE|liDlh6ILT?K9$(kLT?rn%hiO_9PmcPP7kV*ZxOOLA#EKd( z_^eJI zjSW~kPOQJMS~j450SCRB1_lV>)E{+rlA?V-6W;#Uqt#sA%6zdQ>`_n#U7%6TUs^=I z^{3#Atd6vQve15ciGr8gULviSCvB`*_NSSY6OJ+-5PjK9mD6`xEe;XT)Pt zS$;ivQq8Qo!n4b&)whfA(UATH2drqUF>h<3p_XvKI~C=0ew{3a>vs0^3^EDm_KFh% zT}TXjbxZyAEH8NI0 zcI_wUSH1o&&<*~|=Pb)>f3A4v1%6pu8rdbjb5z7wZdM`A8!t<0+pHq9OQNi-fv8XV z%v_7dzSy=0u!BMremhe8(8J%E?xY5d(>bZ%|%VQC?x?s!#ETcxGTR57~lA!qxJ`|O|E12AmPyq+bp zf>Olj#_2MqJSm(RY+Bwt;52C&HwW!(>K8kznIz0J4tUjFeebJhWz)a^P45Gsk1*}V zoPUPj%Qt51f4d2g{&UO7u1~nN8Dg0by1wT!M5`^ODM3xtqYxJ5Hu9|i z;Ax4>z2#D3HV@Q}=n4#Xck4;MPqMY0$)GoT1#jDkh=05mH~R22o_rBmkbMq+j3Y^` z)C%T)wiuy#{e&99O#KzCIIJ|)!;8q^0x-Ri{~6}kD!E0VmBS>_4y54mN_-9F+H20v$zr1*}FZA1!DvE z)n*-l-1s#3`*ivOpMPr&ObO~iIf`u!j1yv(`-6&7&!AG9|-Dwr~E z)OShj-O2##z^-e@N&n`Ph4r9iLMV;>aTzfiV2x*a0W4-#o+$<&uVj@F8V7SaO~pL) zPRNblga^-nN#65<4k=aAqDN|NF)mR4 zM=z@4s&JD9%<>J;r{loMY2*(f7i$Qk6AEM*q?M&rOKS18FYkYj5CuJ9vJr{BQ&-6` z!o6J2-L9{;KMb4x!A8GF5%wux@9_SZ{i$beemZsbOA7hIOmdW23sB%U!AGcHG@+Wy zVjj!8m1;P^OO|d7*-{USSwRL4`rfG_b!O{KWa`#Ey{ldywkNS3UmX71=xSE1moLTB zaOln7r`Rg)C*ANYYP;bKF@G+AH(gw4(YGI6FPmZJuC0~I^<3uerQKo-4310lH`W>G zCDRn!+IVW#DQ1x)-zM{{I&yAi>Tg;u_gO`=zVAIAwK(44x<8yRTfOpn>GK9w8L*zE zL#d&uHWySa95bNmgGLre6P@%&qpzLcgeIcoKm46sS`*cxedi{dFytT&zD=2?gzYwc z>vT)#X4$4E!gAsr-n*1s`J73_pc~5Zftm)Qop%7&d{tbHRf`$>SNga5#b!}_zI~zM zST_hIBhbl$5#p(eVd0_B5c(`ET*yn$2g$`j-kSHD=lz zd&WA~04#O3x?7W#iF^#ot^SzF_JI%CsiVQijsBUV467SW&;^t0;;na5B}GMt_opw@ zs)qK4?qh^AKG*1AT&V0=VPceS^L3WiJHb|fAsS0F6*N$_@|r}Y<9a{VXWZp*o(FE8 z5^S3QkEbD!f`nUl{u}hgHN=hFK-OPA)0W))1{14eS+L5Sr~5qglSO{@raB6UqP*YC zZ$F~HJ?Clogm60k1g7r6SN1~ludw9l(>Bkx-RPS0I~P453;GF?s!fvpLH{2Q73YO| zL>&>l+SoHO@6=ZsTBLBv{$>~+er3$7nD&ZV!A=OaF8V>bug^`iE8_~-+fEBaZ&{iW z(@oApmA0Tqq^9euh(G28LN_E@#W}!2A!G)pVZQ$59J>``L~pJ$-N}=L6@< zLFf8>zI%Jk_~IYS(0`GUAy(-fZoK5;de2d!aT&*qL#UA@F|cV5>J3SNCmgPQx%2{5 z+hxbJYy;&@TDH874s*Q1z#4)JSp--%lIW2~XF%_(_)TW7+)&L zlbHoGv&i`OrtGM`Z4fhlFXI}eR0bRBsV73!1gg01Sg>pbTG!8prv_5kUYG3N`sbl1 zF%P2ZiFp)3w`@qJw#0iDeqjz#nyvEf3yq6xTUNlb_v5>7VKM3wU0lRP<{73C5GSO2 zb|IkqkJn%M&U<2s%Rl<|sAI?0DVy6UVEeq>My!fjbz(zjdP6U{f5Kgtb$P zJ2IS@hUM}V41BusZ)iP$mYe!`u9-Tux(|=P=bqZ~S|$hi0^eAg%3>30}~qu4{+~+5ECZ4 zXzplbtoHnPlE4K7!ztU!BG|U;HIpfT9-!_o8jqmt_~+by$Cv}WgmVX;2E(je@t=Iw zUI`FzDnD`eUaVDOj}0+Wv$EXcuxC!hfF(wKRdiRzc?>rLej>)EFioM)+gv^ zbTV#`3?$akf?^5iOw?~j0{5DDt3|F=6FKw)2os&buZF@GQ?j>NW1FIvir=ZzXkC{V zGgydAhB<*O4*;AhCVddI1(25R8#89qY`b#CAGbb9n)Xy?vnts%0{tDE`;A^Uma>3f z|G5yYjPNKstgbmYiV<uRVU-3@y4)@En&Y+4KN4dH z8P90G@C^2anBFF2-of~ZBE*3{A4i(e`?-X|CGk${TzHRfe|f>dmw218ff*E5{RkcP z|Kn#W;d}BaXuwn`c-F5z2QXOR{N@lKj7RZFNas4~BOz(V_;TD!UqBJO{Y91$bl=;k z%=w)qS*Z?|*eLQE=#AeH+(YhAz8pgzVgFk4z9tQBd6PNQK>ZKOtKuJO**w9w1feaBbMg_tGywu)YGs&=I_yRqz8t|1zaQj|R1k`HyKRLw zwz0>dC!j-$AGk2Ap@QcSj4r$G7A8(J9s887g|E$n!NOmSX?fi6vo$otlWq|S=ddGq zj}^GxB32}_FUTmndD-&)o+$oIx8;7ln$ULX!u{F@MrPk z!SMWvfoY}2Z|0evNLwJwqeRoMU~9j#)35AVqrtB?i>ABE?SP2yxd9Rb-W0QMZc!v# zX7|2E+I}sytWNf@=5|;c(7iwN1l^V+QA(rkx%`pv`Fbbu=VIUjRX|F{p{sKLQ-$BM zM{W{r2-8+_SDrBK@Ty7c-*_QXVEC--52bM~yJ{hZQeRq;jW;$tCkx^9s8M$)ExNlL z$Ojh!f65BN|1cYK)eqno(aZ2ExcsfliXFcf=wHB&;d>ts!9Jvdv$g=eR;P1oHtpz(D6AUhcH_nmJmN5g zTS>c?AA20FOUs>W82vOAJoNc;Z{zIUSI{P%3A{9cHJDr<7Ua>Jb$*rF)O0Cjr67)* zT8^24fc9;B0lii?drN)7m_sg>f-OK7wHc7i_nd+KiN987Q3E>4WkY{vB#0#`5Ba%*PER*??X^V(k(fDQ z)Gu_SGqCT&`nvzz3>g>?T>_FN5Nm#Xg8p#@kegR*?V1Dp{EZ6XZS{6)15@gzIvtADHY*BUfOjXrd;+zOjmpK_q`2c#lH%esbQ2)=)PRi5ol!I zu+7K8df2p?6a@4-b}Vk<8S^YH(t2Vy;~&n6)UBB#Aja8p_ra@bAVKHQNAclBk3+9> z>nK=5iOylMz$6&-Kwp`uZ?w-3D_#Bhw3pn3Zq9)lQ%KIB8CC26I0!ETO{VA`m85jfA5s?_*G+;i!f4sp z^-OD#x9mCwDf$tvcim9l+rnmFNuL`-}g#ss1{=rVDQZ31R?yKp`EXe*O095_1TKzRG5 zpv9Mz;OjE|qPoC=T=G4C$-rlUe|~@m=Rao9p@_H#GrKhDCH$soK4ILE-7^))pb0ks zWI&t0tq}7LBKF!s>;CSKX>HU>!G$E%ukC{U;t^s1VIzN!-EU=Z(mJPBv_SOvk(SAB z8~$jM$E{yi2Xde*L&EezW?`K62nP)O$tZ4WeuJIsuY^qR_p_tp!FshkV6iGK(VDJD zhvJRQD|@5OaRAYCYu}xiKbzeZ{G62Hpu$O#bsHbd>9}RRNFZ@6K*za~`nwhN<0idB z&xJ)v?%OI;!ixuz>-~S~5tV-Y5r~Zb@{ia9YwJ-_JGFuu%BsE}Ab*+ef73-*_H}}sM9%&z< zZv*Zy?|a6+0^9dg9fT;dUtmWMuoVc1^r*l36VapI05&z8YaB00B|| zF0$wZUerN%SM+}JELkMXOd;Bain_=1=gQw-po6GTR+eIUW!+3Z8PNAD6zAW!iRW#o zdb@-|)>?SosH=^aGrOB^{}_&C|HL~Qm|+8sLzjZWo6`91UrVR^mYvr;*+Za_ZV3Kx zL>d&?;)0IewwxuXzd5N^=sG}LwG$w}s1;S>9a||101HE&9khuf2h9eS=Muavqe`Ym zQrola0PKAuEE|qdo%-_ob@dwshrG|f7hR+a)_Z8dB%F&=(0i^fTC{p>A-}UF5&Rj| z0F|*X!wQ}^RMA`q7ml~h@r+GQ@pQ_MWiP&XySu5+*4O~GS^Ajb5|4I2y>!g3s#w!1 zW_^YPzPhxDAzjow06MZ)gAeh8l_~ru!YCy5aH%)_O{2^&{E2Le&1%26@4i35Q}VWy zBl(lwsm*=E=;ss>ffP5IWY=aqS_}VQn&!I44ad-SU=l?GNxqlzLb|1(TN;*A7RsGZ z!}YzR#vSkV3t^TsQ!bFAya;n+AwA#(g!n{^DgRZ-bCs5bE+77rQX>W6Q}rxiH|B}^ zmmBfAV;xzi z$Wy|SqMFOwf?&|-ZTw;Go`9EQ{Cnjan?y`yumR`|eNZUtS|tP{ZGo&7j?8A~89%Ck z=TJPO&v#cD|9>YfXR&@$E+_h5AqOxQHBZ92r~w*R4bGJzo{-Me)=%ex?CubCxU%5F z%`Q?xwWaigE6`zM))sl#S<<=Yu9U{iftO>xOW$Q;<42QK`yY~EkduuBb}by972tho zJ_b-|>aFg;0#v*p16+%8yR0{utNdGA7j-X&%|9Kf=PaH1UXobQOXh9h$F#!bEsTa8 zqD-@mue@E2ML_{6%VAoqw^psXT;Uu3udxPZ(`4f-EF?#-BEaw2A-p$a2*>A1fYLFV z(1lUR+yeS#!S;;duf@D5=v4N|hE3*v=ZXYhSy_`3()wj5;-|btHZJHXyh(!TpIhgr z6V6*IWc)CJJ$Ep*$4IUK6RYYTy)scEri3nBb2-!(>&Y!fOlJOP0*OLN{%X+QaSeY0 zJhP@vqqXQYedGp``-|d9`)7S5AGN?&IJOKr&t-B6#e(}Y2IYvO;B-cIJRltvuD*Bd zI5frGf;PpX<4WVG^IuhbG~ICv{?`I#OVEcl_3s6#S}22c@{Y7k7NKp`QY0wmi45Sh z5(yYqC{AxD3PV;=m!(gCN2UW|iCU)ss=Z(0``i~;P;TcjHnu!Y;Ug^4pd*#YS#16x@1+;+aR zn7JG!D_g(id_fGlMATnCnO-u`K5qR@EvOeax}1T!d*)T%6mBAq8?$USl#|z^=0~ytgW&&$#`q zLnx7Fjl0o6?0Ohaw5~%2S`au1$Oi|Ge!*ZLBmVQ9IIHubPHm*=s!MCNw;J38bKCYI zTM^7N+Ejh88d)5sp;&O>wZu8}>%4N&(_|9RHA?4+vp-rn&SKEVA8n>7P(4bZ!B zSr|+F=8Piwxz**t{^N5HWDPM$7~3FqW}^tbR?Yc1TpejN(CI9V3FD|Bqj9LZrNd z#%3fPbv>YazQiqc$%l5S!p>Id!KNyeACG?6vl^Np*MuGr3ap{kss+PbQC?lSqgIIz zSIkW8ngKsM_)s|rVv1Spm9s54;5cK?G*;0Qa1ej$_Sc36fj*eGe>;NUxUfjTu^B%f zdxGGHoWO$l5r3_Ysa|R?uqH+Y_Wkb@60`p64yMCPPvw#(3rUceUO)=^2vhuq_R5DqmP(S3G}T4Y6DaF30wpPhjcqcofyMVwN?Fk0 z%AwseaMN)b7J|q(NDFwOqy1VM$uvNPlEj(J;0^aU-xqh^v>p6+;!fH97j*Z?sL2%% zTVL?Pjmhei=^ttSv$F9yqCu2WV@gX&D5sX+8V^~z+DVbocU3qoQ#aH80@tlG73qGA z2ay!2p}!4Zp3_OEqVMEQ$U+@+5ohOlK))6nZJxQQi%s3l@M``ZnrgFNVseO82Rb7e z2*{qYiVJ0Xewb`)rEnR|#usd*P1FI;W4dV)`?szm_lXc#iZe`Z%Ox{7g%;tGNziC`h^e0$NCMq7lV^xkC}R`$Z=icgwx&Do8**|3=*`|aK2KsEq0nL387j>NpR6Je zwkr3jMe=y`qT2COuGx2e%BhfANpx6(>Y{Q-3~0cC+j32~xhc@8L;Vl7CcROvF>`XT zy+5XxQ^FM`q-_glqFJfsaI`-dmEs3Tg9X(z?s!bf4| z%Y{7jpS(Pyq(p5}Y@pLInk6B*_abYQEmrRtRKK^a5K(n$Ym_s&T{~+k(>%!d zl5hT4+>4drpbm&ibQ^nY12CxBzm@#v+{^z&JJHxz=StA@{pV;#(XJlf==g>SdeCEd zA^n1JXN+JICi+<}+zc*vZz_&~tLiD_pmca6JH~{v7r*vqZz%EO70dvwiugG|C{9%D zxp|^*7?g~;(RAlhBo`Sn zWKgONdazXMrNg(g;0f3eA30T8NHTeRC3x=FG;Ngd(5WrF_qiKgD9e-}&b{G{%g0tvIKO&~B>aOYaOR5p5b&QR{(pkCr<%?Md7S=Pw#;lvS(DrdS>aspDzRS`Dp8WA6Q zhe`=Psa#=F7=wBPtBc{9eC1s-fuKLJlsgey02q+&0j8Pt4>{u3g+{U!v0Wvae@c5I*r zSwyF(5{i8J5#pr6qeJBbCJ9sh5$UE~fTMe)OVc8bI$n<>yG=tq-4c{V)KiLhI|AIq zody+%!zS1J?EX<~GGB&1HwqE7@h6FdQPI9M?*+YpJbG^#rFw_XV8Ew4M<9l-%hU8u zT95-fOSOhiHiDW33jKqzhLk~v+s3dCIB}f-r_F?(^C~CvoJ+UYyYRG0ZaOnHyO|KL zG<|k@rgJywJ(rGH8f?C=sVtF-XnZji_X89y6&Vgo9Sh9XfWhJT{uy+lp=8#hDD;y@ zCEM@zSs+Hk_~@N9R55vwD;IHu?QWvyV)Ea;F@mz8k>tN0pxeR67LbN_w_ zr{G7hP@;lBakvl7B-u~mIb(C(m&`Mi#*lf%_DVLQo7Efz3|$yYgoTpngpl`<)L?M1 zDgTlW38_+}`1}U;^SBsv>y;StZ*3(zGFQvim<(~+ZL!srO4-L(diy=}5Q)NVnq?zW zthvxm-!?|t(tdu`ZDs{@EeZQ%tu*COuD*3FpSfd3-7FpLq0DU)vqnbx_<+uQsW7^# z-|T54s?m4VL%Eq*=d^dJP9<&dDMG%VL(X8>G<_@i$!qmEmn?T=FLg2u1`tyuXpL)$ zUq9i$3KEGzujS4VMagU_9oAqv^>G!0o^f3y?I}n!2R5jrGwe3U$DNR3;O;8pxqtns zipZ&jvQ$#B)yo_XFGIZyliNCt?8^sml()B#D%JH494n%CE6r-~P)ldQevd!Tzzn9q zi3go>Q^ee-MMYwGdt#COE9aQtdJ<~a9^Zd*d9HK4L>=RxzlG7@6^*_;r$}|ArKGDk z3OM6e_2&3Cy?Of&*Otle`NMUNx+p-Xy|n5NA@igO=&OOo5~IB5ZWO$Fd<)5)q|;5T zT3?D+=B8%Uptx_m8!)|r5-%}wIfGp92W#vNO zh=48K@2^p{2kKm->t*|;ed@PudPEV#}ZAUMtb2Ofwf!bcA2X72t> z8P?9eus^D_e1QG)3W^~N0?Y@6`d7n>7-WiUVqDWq6k(2}-giJS`*jXlIiH6Mv%_^Z z81MVQLJgoAgM)gEH8DnZumn1FPB3Y`o%GdD>PdhDt1v4br&jZoC4R!cnkQR?P-)U| zLeS{;#~;McF#505m>6N*Kv4wEG0~6e+GeSKwkDSXyE6B&AVRqb1gGNJv(^mI-*GZU z*tDw&3NOi|&11YY)wz`O+@LHO8HRfEPBQrjoF}g9jFgTRWC)`oSRqP%8a0qjR5P>C zJ`?trNn#2GbIE3rmxrib3F@QTG#xVI67)u(5svg^w)~aWD(GZA9PMjgKvcr6%(c?F zcRD|wRie%VKL35bxEkf|#8QMCTXEDS(A-ou_y^^bFG1$cptwDq*1p+C8w~~Fd$84+ z5?C4Ncy;>STKnAB55b*fChVV4%55fl{(`wW#|e9lhwS3?@YNQ1nd`UYDD(L!=*Y^c zwx_@~<6gQ-79J%N)V%-YM)q31f=thxYE4R_{zMW-7U%{BB?b@dtB|?0Js;{cKW2G1 z{0y|F3s^T7vWBK$|JBi%SzSX-uelBuhuop{POmA;0Pb%%8WW)(8u}$|Gc3v&X;q9D z!pfd;Trlg}E3*f&HC?w}cnt*>Ici^Nb(q;5OLqF+^q%T*X`YIq>G_6e!zID#JF6 z9ESlDZeC(DNLI_TplQUq4hdf zQj@dU{ttq4b%;)kt#Bok5dVOT#riHBl%%YYR{|s2f)+EDK%_lUr2+5X`skq$|KZ@I z%s^Y;lI`u#7Z%iIt-blOF~9xxRV<*E?ayVi6(!ixY1w$qABU|ry%n-rX)*`k)k?N= zdGh_IARhk*nK~`PGhASLj-+8-cfmawWfbV9%5_TDc?zeOMG=(Jtz&TZ0yfu&$A+1D z4lw}MUj2{YYsj1`Ct)VQwQKJI3%&+{14y5IrlMTqXVIP#*C7-x`YScNNCegF!!+2m zr&0kw3c7r7S`b-8#ZUG7OAhkl`8PUs`TS%`5_)Fi-&xN^_RD*}=$^U>=+spx(4Mic zgEB*bhr$%`jkUZp{`NP!rRMCDhd&}-?S>Ccp4|2MhP9w;%-g(^tWBm~bWyEB@6$6r z)uyO|E+!E@4QGf#vls07hKDibVdfldW8K!ygEMv2y8$NV6`s0-0Dqgr5X_XZ%;tS= zZGJ3x5`Gmfbe+5&&}(%m?6v6y^<7^-wqqQ$E}X~d)&;M_70RF^my~xB+b*`|7>s4s z-@m|i*x#Czl)+J;E|)Jp@G9-LeY>lZDAM}nM?R+HpnJKZmP7o>D7iK0V=5<@J})d{ zDegj-2KqeJn*9%{ZY3uMAWe}E6~V>XBImVIJg8ezFHJGzy}pn<3os-JY*=U;=lF-~ z{~CbO;}@>e&}YPX@yH)t>w0<$Ivpb<)L*`@eDLi(I#Yvg8R6s0q6qS~AbE9PP9!uL z$E~q?#!u34Fx5i7;KE1d61$}vQde(7j5hIDAcf5;J#o$@FmNxO470Z3c)dlQy|e5>tO0S$ z%lm9Gl^4_mX|a0>yJ0=U7k-*lzMkLYh%(rOKv!yp=ksTuRLJu02_S4i->79WA{DoA zonq`U9CQFu>Ac=VqcMXac|_*e8w%gmr9IMtKyS11160yTc>~1HMIK?V$HL0R69!#D zV))Bezw%AcW=f5QmnJ{T2w-)|dhCHMR zv5z`uJai{itxO^R(-oMP8%q*bvLgITqv38pf%kLs&g{TK*!Hu*x0z*&33SShUu5=* z=p-@DsOjBdJU;|hQiC|G=FXo}*oHW!PIH14hTH2X<$D{j%l4)Py8{y&z@fdGuL3^M zrV)S2NVV}J?ps4FUjIvaP=aD%A+r?da8nXehK%lh0@A%taWj@BWxcXYjpoO7X#z?S z7hmpbyl(?*ImYZB2TC>W?ud_4l@Q?7`e7hO88#T0Za_AHw0oIToQ&tDi|_r6e)@A$ z{0a2=_*h&=1RG;USDl>@ljlV$l02(Eqe&-_3uiUNVYg!RDf|!8y-g$pME)Sd|#;OZ3X#qpoRO_F~+=+>kO zF?O4Y?wD6L9>#LMf%@jQg5d^o>OywBF;@`!(1ndlUwYc*a(SbFV?B>PG}fF0eqX7} z7>Q6?qh)D0xDDqmdJ}3gvXR7OuNYDTd*(q`h9v9|YQYrGbMuL=s7&Sy@f{xy{{}?aGkpHcgB^?0+r$|7V9z`OrLlC$~=u|a8`bo_WlZ>6kIEwxUT}R3k z5*q>=XjO~Wzaj~P;3pwpalKAKN#9xMRvK4_!OlnqTV*o?9oZWO!z)ukHFuu4@h%zL zz(VXSpG1?u4|kJ!;ghF@M1`Y3X`gZ3m_qc;8cFFj=LZV49tyj$k%$jbQZ(ClTkTFt zZaq@s6Q8Dp^78)P34tz{w7~K#4zg=Z)BSXty)?QsV*5*8AG_+|kNhdjy5DGjt6j!# zA>627vkA$iY{2>oB#U=GG5+Ek{Ed{Ze~0CpdmjpOz(sJr?DL~6K~M^G5l#y6&pit3 zK+aa4#l}iLafF_#4SzcBe&cs0-b`IjFot>SCqtZj$Gxyh__5R5bZvk)J5$L@H9P-T z*J`zUz5l5;T**JJg}Kp&S9-^pGtgs}Vt>Ub{^g*DmUMp>g<3W#$3YV)p3xG`rITMg zj32B+B2Ky3?}j=eceF5(+XWOAmbwx3w-Oihdv%|eUm?EhkC}9ox5hN3>Ga}f`$AR`t)5Qv#)U@Lr^W{O zmvNx_NW5S{XB*K36}u^^UI2EMnyimrd2M{IHlTa3rOQZWw0nFfOrk}by~vYwS5DH@ z%086`L!C+NPoM|;m+%yfVb#kVml}mYNAxqr4ER=Zm5zCsqkH8f@OzOzGA&_KtPu=v zP>CMvjrctabl=<3pl7{5bCpN@qU}>pUyLup-(qu}m$^{~v>K>`gHJ3issgx-kVBb* z9y!sv4E%BdaNSkhm>ttto-7l)&YBP{HIqx2%tA!ImTu0e?_3g~e_RgJ#7`1fe(9(5 zf*lCFETZapD?#`HYcOJCypAPFH)|DSi6MLb7glA^d`D`4&7 zH0;&qt~6?-p|0{HUX@n<%bM>$6$O7@d>*Tf-{7FQl6bjQF9Pc9#8U@xGtcgG;8C63Y z$OhX-4v5#ca|_b4gtNK@y&HUDp~cq-KCBcz<9P6j&tmB5NSG|dhxN2qDFV((KU^@4 zw2moI-#UKoJf=AE+p6$dn~9spO9ooLfv*0EpvlqX;W^L}`2l(K$_ExFj0!;uQWON`|j8Yofc$(_DkkFRx9J(eMz@7o_3PRwGt_7YCfu-ZgWa}Y`JpCr}*QM{) z_wt}`VL~a3pXBJEtkVT+u2_dGt@nO9uV~(< z%?6Sb7^}*h=5yk>dbK-%4#>#)0eVKYvmG?+Ub`|S(8YA^zB%}gOP1cyr$e_eQx_qT z1k+>1niR$i^Wcs{NdvLkiSPe(1)`uy5x2L`5vO{mX+iR1~G0E)zF9 zx-baW`-KiB7jJ5%l>Dqk22dRkZ`AjOL;J!xXr>7#phzs3w=lIX=DPfP1HYQw0ezbq zXvy=7w$YquC&m`>59w958ilSd`2Zz`ihedU8Iwx}#JN1?(UYrI{WhnID0l}@6o+cB z@YSpO>Tz*VNx0-YV%a6uVMkM9_&cS;(3%$Lyv*%iV?FT_r}7_%B+~2bNTliwxl@~) z;=5Jj2QzR#ooQ(e?XLnT(+$E+)76)uSOCKxIA6&OZ;v3_gO+&CnOcmo-$ib%O&RE` z#5FE3LI0}Llb+kWXE#-LD7176)kWtjHXy?&8`x4gJ)ov??gW(YZk)yO$2@OL zH?UvSCfn!X?ZJrzHgJ6e)!S$*f75CbTF>zEa;XTOh!UU-!*Ttsp1gAgeN45VZ0c{8 z5zL*Ar=Vnx`)A*Eu3JB3w|gg&!9HxB&>%!#L~&@eAnc%QI?*c*=LTq@m;~XFUtawq z+%Ki$@-Kftxq^9&53OEL{1HN^3Oe{w9F$W=>waaK1fUZ!?7Am_y(|?%Oz96qlJ*x< zx6;qR8o~q#bMiHHTlo;e{Gk{D5^?9BUW5n)bHU4?+R+WgO7uk#elPkVUd6fhc2t9& zOcyKHGo+!MVSR;Um7u+TRlM}Hj_LKpu+rQ2oQhWFl;R;Vn_(P1X1Tw$A}z@;bp-rd z@roHghnarSc-=NE#B%#8QE?# zosyf(eb7>M`>GQ>IP9}tnilu85S6SU?jRcxNJlM~EXi~l9Q-B!Q;3`pSGo|(NB9wb zPxK87@0&;G!L86SW>u~y~kuFh0hBdqsz(xvf`D!$(oJ&VYHwjh~ zk=QyM>r)g#(~CO#sdWtcVBR_%=0RS89@xb_kYZ$m`k{f}a>z!P= zU^+HfqL73J)mB}3hM!;?iP2Bg#K!TIYuoLwfXtZQQM*6>$u$SDc?3vdz*W;WWN`KE=h?Ja>;b?D4_B!#)a1I_UWdN zZN!emNyW_dtjtt;f$6=l6dhV$^7DnS#(ECaRMi7k^JqlPn;s3bf&Q z5;Ef%Y78zh0FI!}wmgbLbn{bGq6(?Q$4jJBZx}y-A^MWJ3Ka%)y;IbTRR0xanjHRENXFU@75=(K zH_savQ=T6+I}7PZf;j|@A@HEXO?sF0t}QyjEqM-0N;D~-ThAdLkv$2V0gVYpv_m51z4ji;ckZ)}ZH1m|o)Z2?%jY}l`Sh3@#k>kdW z`LoOgdJ;|&7alxP?!>Iz`BRI*PYXh69hy3kHh=7D_rnS`i!qLq2d7*vu#k4-VvkTV z^*L0atwBd)qq60fqS6w|+{yf0Uv2dMkC!TSk(F0>+U)eWcPwO%6OU1tsN znZZi7gpketmJEadWX!2`+I@qSE;*y;2{%9IA%kbqxc57uAx?+WuL;o2(cAT0)Xc)U zoEcC8&f%ilAnt|krmgL`klTKvqDNT>WPy1Pqz}0qDtn_V8(2|v@B-bXjJmbGv98-M z)-3qx`O9S!$r2?C5zXv+=R>tLpp%SJUdm~1Vvi@d#PYmX-HVd1N@Wp|UQ*?s%)g@l9te~WwX?rv_mEa0XJ_R;Y zrG&nF(Nfq1-aV=yk0P3+Usd4iAi~ji&@d!NvVqQ0Z0l~j;VJGYB->lJp}#T2QX#DC;+ZnIor^3p?z;Zi? z&rW7gxCHRCu57&;sE=A9CEEoW5&yBWEL0X-)PUM9a6ENn zna;1!*B1T-UxFS5ApL{3q2IH0NIRv-fA&m-t(Ez#V?@9Q?4Pl|W}YBt{>pa_2|Nlv zm1xAsXM5zWE=x%F6Ep!mGbFS|sg%Mul~~_LUl}~A*byzpuwVlW;1oHvghGYRsSk{ida<&rHUI<;)t+Zm!VJ8CloCE!6<8w+_N7b4qAIt#CT9}_L)RaNZ2XxL}nXO+R?P^X>{9R>HXqORB z_1IPbH81*ylPmNn%#;VEmo4;W}i@ z;MDp1QdT`^nNrWEP4jEltwg{*vLw60Ux1^lzHh1EI$sSJ5UZQ|Y9s$j0ZJCnN)+t7?&D{1L@Xn0#z`VxwGiE1+9;!Qn{#6HBbxd!T)GOWXGntC^ z3iYODi07nEK5ZZGY}tWB=q!yf7yKY{M5`B-mc?qzc5DH{XvA@p`L4I#Ss`|t#C&C% z!$yX1shR1sxvz@qi$UjsBr|6SZwYU%FfT>W9N&0RlA3O2u9$4aS@k+>_Wd%TYb)zn z#<6TH?hX1TW;y-33tY%^c+PBK_8+}BxuN>7A7rd{BN=J-x+gO#;pzSW{aUOc9B%9? zP8@NWtC*XMgt;~g)(!~HPu4-jQo$S;xk<2<1Xp^ZroEgKi8n_i)3pbhRl2_EUZPc) z(H%xBC_he2h-PjirI zn{1{Y=m`-3nt$U)aTm53WZWR~79;3WhiL(-1Wj-_{j zD>dzh$xmtnkxYb}Ldzb?w-qQ{_gQ!OB8knA0Bb%U|2~87$8~kl(evm5ORIlAij$gK zST|qk8e1wi*GFO(o^q%0}9{x>R- zyxLn-3Q77zg@Y{l7H3Bv%rI<5B9CmQ=Q+~T$MO8XGW8yT04Vi~%C}{k8e@cdwG}%g?q;H~I$&3gRzgp7HWS z^G7DOi_c&%Be|+YtxBXo^HRmP2%3V8w@|NG(%(tHk_8(vy(SfIh<^kH#Z7X6Ub##d zS-&N>Bu)Uqi<;=oc-lmimrKU*=x;&?_;&NrCKdzPCoUtOi0EH2ZjY=D765o@f)V%E zW_#-(Y{Wfzg)I2pWN4%>@cd69P7`RPpa-b8roGnjh=4sg*gqNtkUVJ)WV`9ybhTHtydd`@~7{v z!L^G)M+6u#;FB>f*oeIbw>i^0h3{4NXD6;dyIUnvzug74IM83{ef8{#x0XRoyBd9h zb^)wtbo9f&-4phe-h2G*yh<%0)u|(TP~R3arcP#O#svKxZxKL~ra5n8shd97%lP_a z80zZWtt^X5Z(&J}3(eZe=UZ$hd+rOQj(zZEa!{%RX}D=sY{z(s5);FLW<-Yy@dhZ5e%Vp$+)n`JHx3@N`^4sLkOTU=-#A2emH(Z}fWE44ytL}PJAeyW zcWd?}(O36oIT-%MqsV=NF%7;t?!F%JHAo0p;FLosfNW_+XdRzX9plTi5 z^LI_h-4q6{0y@ZlHwi*-&5I6nokSdY#7}LDL&G!60lxG6qhcm;F;zZtL#hJ*(1}bG zZR&4$KO(uGxlPrqJ5PSQz?=ZdOiQ=4Vd&^pXS!PgMT19v6(`sezh5@ghx@y7C_wj$ zXr+kma%0Tj0-QFhC<0|_zJ@B^swXX#*@SL)hRFEsGLf+Mx(haWz`>WlQiqfl01RoT zU3rjEu*2ngoKRdOpEzuD>-jWBmAQjhh`LyrARiphI7Kg_fo_1z{;O0MsngEKtlnd3 z)sk|>tDA-JM%_d9H<$Krht1a-n(-eFPx=UeDNNRLhStLeUB#QKUug&i4m0O`Yl)t< z5afnqj36}V*P?tB@jeZO#{l$G!!Hpcu7T<%MgqOAz1Q+sh%)vZ+%Z;(=Q1Oe)LagQ z%Re?=<^XGKr*l)93LQmBxPgvYDo@E>2nXi$UVo$ApIJ#h$^y#?=6?&AH5Ag&ck7tkD{L-U}n8f^TG;zB7_R1@HF+}8s&r>b6Auq~3y47yw)R-T)4 z`#R_blXia_DZFBFq?vl~8 z8Up#?GJNfI`}E*$+%=AWiGB`#Z>Ys>fys9&{I+Esp2Ud_u*OMbG2%8l*MkNv+t)2_ zz)aEv+*6)*w&b%S!G2b&EWwZ1>^JF0MM`IRTJrdQWkr`DG#`9v&xy_)8 zvP~e2prjEeSu^Of)6#aF*We~ZeCc^kc<^@t)6eLILAD)aag{e`BWr=A3QZ(yQvsUf zIuu~eIRW(+_#WgIY@#npR_KO*FU&bL{m2vwslY5vHm(l)TlWxjj(}foBhBhNdfG-{ zfk8#D)Xwqcs7;-zl&I1Oq_Nl5HXT?aOiTxzg1d@UbC)HSi!kub9S=t2;CwKr@yHl+ z#|rMWcAIO>!b+79DKh8X5cKx8Jm5oqu;NgMxv9Vm(#Gk#f`sa=ld%)g9k+nUn#n~>NS$mUjEd6VqNgJA%oT-G!0 ziSSdUhGxY-rU&Ad>9!HmLglQhDL#)MKes?{=sRimruM}3*7`9^EPFQAl5Mu)@1#cP ztbz=z67-SU;lRF}RK_98!t?yAX?dp(k4&}zJW zb__#;4mYLge9J#!`R*pWY0`D*o^4fS@rJ?kW@@hH&ZXa*ijtZW&)}mY-;Wg4RI!D=`6Zv?%YQwLtDn9 zZP1faetJDpkP*UzzW#}vKmSs0w^3q19(*?MU`}Q$gO*EM-LrPI->QJsQ9^9yT|c<6 z*a+*$Q1;jYdqn||5V2s{~IN zQ&Z0MdL}dPv_3la|Kn~Vsrhv#b9bF)2OH7;nt-4y-+u5}K~wQn4`Sicm!Q>~YRsEK+)Z!qhs7`OlZ{chC+ z`p0E-Zt<=3n)j;`GLGhV?9mRq-^ccO!A+#%>yM!hLZa1|Sps>_=9i!1XYcU`7!bf8 z2|BTTwtw|jQl&lqoMS1=Tv-QK@S1{^zg08oC_raL1X748Hksw3V4Qr)6??fDSqI{8 zs0;D;O&MpvpVwSANZlQ1ho@^ICM5HPAGK;608P2)-(Gqn&H}o+^q~prbrZXHID1bE z`cZDiBq85GA7QFH>2IwS^jSWsRQ$lLXU|^L7?PvKzryi&=%l-5c=*EloqIc0Oi<{} z|MZUZ(Od=64|n7r%|D%`7yl`lqqMfP+Cyu}*o@m-DH88!RfA4I3EZf?o^(iTqMzoZ z=g?axvXl$lR!LYzOpi}L5+(mm)Bqa-4YnIriB4rRbV_35}%_4fv6Eqk6+ zr@I$qL+B`5QPqp2yp=ZS2^!&6fBr5Gbcwj-OF@A{)XQ7)=gW1xlj#h+La56pSR5dH zk7?NhP=Dxm#J+}CGqwYxj=xKH%CnkOlynF6Pq^KJT4PNA#r#0D?pq<-f&zW189n%i za0W#djuFfW$E&OIimcfTBT#vDWII;@Sh^(>78>e1OieX;oGhD)jV|@30)DrZ3Q3XD zgg1E8dcm@f54*)K5l3BfK3--6^12 zb$v=TrNivI==Z}~dpr_mx`es;v#Wuhj+4$)3~wp?qy=DbH-Lo8s9P?PpQgKiqiTwI z=o-ie2S7>_yWJ#qWH<5gQDhpABND?ZFaEJ~A5SMwwpPDFlNEClUuKIMaCM`Vjfq-C z1Ilg{t2bJ-WW|x3Ka26dQr*H~m#6;OekwyUcj}4-ouwF?uDpFNV0uHGr!Qhb2QPHH z+;NkmeA0GJLKHOZxs6GM%0PM-)q}at137|5UXlk)g^1{Rh5h+ec>t9DX#D|O&UM7i zAW=*gDf74KOaOGasRG(owXO#FVfGgC3A*^VteCY#d%OzD_2zp+>%D>w%uVzu4Q0GZ z7aYQu-)W0ly#Q&aa}g)057Ndf-St@eD0-_nck_B?L8?#&?E zfxwn9xU=-hA_;ey(I#nLxK zx&^_-qaX#tk4EKyh&6_vpMZJ|_V)S!qbWi?RQVG4=`YmSuTkv{)vsFfEpnfFpeI`S z8!3F7c!;55wNlEcjmmvJ>nX`)XRZqM9yYt}h^RU&wcWa6T)ReKRN;W5)Ks!jg$Hx`bRFDf>=Nb`ILebeS@xSMq*cS>&{iO6_`z^%!e3mzCh z7>%s%tw4w69YKC^fO)1JshiJ{#Bkx%t_Qf^wuTbz&vWJXWL?)y+7y-z4@9+m&%j@O zEc6^30X^C>k%>&{UIUvC0nf4D)DqI^Z=r4kcJ(ej`C_XgFQl?!{m9OlYIuK|QC_-y z(L_oUK<57)y}#UlY^u5%3j>u@a!YqK8R~0FIYh%(SZzuoBm5PrEe`N7&^#nsr@LB1U9AmdGOU4#&1jnm*L zHcz&=IC8=#Od%++0C?%@l@~#EH)_1x7An|gTe#F!k_hN0_8#rRxYC?f9aUpQBT!h`tWcS-v!-lCS++AC#6+w>68#>7bTm%=9vAp*`QSqQ*6M+ zrZQ9a;fs7wu6yr4LA!r;kthz*n!scWQLTOIp?-8$Uk?%Y+b9^ZXkKyxB z9iS6X-ZL9M5PHMpl?D! ziTa4o_iYuBf*zpW8pR%K`B`Jpam^7-9{SU?Hz^a`>?}$bQghiBdq(2Uy{Gbrz}+tb z?;W(7Ikh8YK#u=-^mz|CJP2)Xsl7e0%!WC*lvY6!H|w!>Sl}LX^fsPZD;}C+vXMu| zWQ`s$Dcmj@64~ywPLuT2V~J>a`tn7kNp%lqjIf_&>sqq0+5v#o7{$a)m>{>m!j^<3 zjVzo~r~d+%wZhz$GMCDC4tnr%;2tuhkR)R@-?tAnTjNRv61VrG4satlD|Rus}ugj~-#Ctsg-w zv0D$zw~J_bv^RxpGPXL55DDHFEKuwaK4ZU1r5xqd%kG#i7Dp1TmxK>owF3> zxFexyb2Kh+71k#xjiBi&z#Nck@yN3lH zitnOi!**%E_KvNiUw(zcvOZ(jY4yH~ilY`kX-YYo#@meiBLj}wEf+dgDqn*WzD#m! z+a(3l+7OWwzC&(c5UoJ+fj&v3QS|U%j++}aS@0}Y{))>G27|st-{wa@Q4MKK{|7wJ zr;(xVFy?!EEA6slsoUiO6*Y%+3deR)rU?ItZ65@37U^j9c$(9VoW9YlqZ{>s{={Jt!taySn_|2{Ez;mVisFv~Y3% zUw2X7BNHp(pwd+J#;1nF+4ayt>I*Yv&@qr8Z@WtHGf_-@dut_*Pw2jy5SO#4w7%$$ zuW`z^sCkE4RJ9>-@=mOip~ezf?A`W&UCG~x=sTp4u#i?H1sYV;e+gpaU&AEvDW(6# z2x5V5L=wy*<|MupHM(=@yv6{h3a%Xl7Pb}1dHf?DnM!GCH!(6#MeDuw+t)_aAD$JT z&3Mm`@w3_(`nI^eD z-W=h>mt7&=ysv@|zQh?s9iDwvmb&C6CW*|&p&8_}tSVTo%46j)zG1$ug3WgI=AokU zDJ&0nK|(*^^#ypXz$sjJH@=1^^&L2(g?dG$u@@|Jtq6*`zw#9GirI8ANw{m0kRHiGN{KlFB8U_8R)oX*8o|IGU+NRu5_ zPhORjx`v6#Y?C6h>;J?-NdpKJ3`K)9pJPq%utlNV2D^*IZ}|stg;C8jSXXrALAQ~v z(zExRpl~T7Sad34Ym*~@%D>$A&7I3lIQq&U+gvL@kM%~O)XGlAjs4^g8@#g%aH;V% z#dFK1y7=2RRD{EHn=!VE9{%Ij@71#{Y@G!?60g+`-He~w6ij7}^e@)zO`_KWzXIc+ zAoWbdvFFqulYe*lMV9H&;i#q`T2y$zvH zVJMoqk^$&Hb-Hj7)C~zE)&@I7wGuc^1!$u(MG3Py_-3rKe=i>X z3l}S!K=cH9%xfLapTi~UC}Qu~G#f?eeb#vw1(~?_I+YqQ&?}etCMU}L4qCnrQb3P~ zZc&jmay9PPh^sikzb`vy7X@g4TI+TQIWMW1VL2q5U84Z|LYmU4-{vi${7&_G6)lk@ zJA^&F82?74S05nU^FXK0H9@WRYjhB8lR?b19I%~+;>fj=^Mha683YPq`42`!lH{eU6%>JV^Wv@tjb)xG5x-z8FM1nij z(4rQO(b4;>%G8SkoXm)V4yI4Z4=`@q8ZHX_YV|xTU!ShZHkXW9lmk|v)(*n1CDasC2uYKIZu+)1?Qs zXaZpO3zgL){;RPMB?Uyb%`3BgAHb5fN@|=H&O@|aD>z2!64`wp&EL<#Zu{%WNSm22 zpgVTgm#HgucJcjXEKHI6#B_9*wDe?+&13B4L+5s>y0ds?Y&+6N-wtTaEU<2#G?6H`SM*5T6TTU@y5 z|ITu{+De9Xf^NN%;-FPwY>1^7w}tGYEhl-5-|L3vJ&I-;9bjtM5ot>sEQU44T@%jo zm`I)F`o~cl0Gr)p-wMr)=b?#JL=h1kU}f0i%nI7)tG_Ug>@(TRi6#=!L@JQ zQKHqgBEMWbRLgzT{v<7KLn9{C;!2_j>qCD`v?zl|$3%T4x*!#SKk~8(LvCjRP+{jwRB`(xx21mp(nNo zAPNWn3@bxsKFD*Ol4#Nk{3Wb&jq1@0^vAl4XRJO+H%!?{%lZxG403Bdut_3cc^_0os@y70GKc=!t$R)iJNLEC|8Fj@hG^&b z^)TSiqh!j5w5_l_76wVxW^$aqSl*v3bpGb|Xlg$%4?60Tvgd-1m-32n5Zdmd67zsL zru&b}d-1-D@XJ=~^JYWX@>QB8?s;w)Qc+MoZ>t`ukvV{pQeb%n6L0tiPwa9!B%L~?kQ zW=L=yTzNx6gPx5eow}DNeyv-BKEhOGb!AmmIe#0dUx5h=V4H>mpH`+C)Et{d7QkEy zCBBzb#Z4gTvD}aMe4|6ufSUornxNEvHY!|)Av^^o6VZihB$dP)B#{+jmCgs@>w&&8 zPvLVq_{c^0DW*A@s#|JTUSd~0?hJ*J!dX(=FUZo`cd|1P7&v?uT4N7^XKg;i1C;$W z6zU3A4i~pF)PdDrL+j1SS9U70VmrPV>Bc+K2mPn60{^~XalQ(Wk))KReMM|U-Uk0V zap(MEQnD^2p+{*RWqy^n#Ji_J++mB0viS&d(GJd)6u?kt6FPdEM`Rg zLlf%95FmDZf6M|AXC_KoSDb;w=9~YtaK_=X!3JNQOUEXj1bWGw3l=s0y>V2yHTaz) z9R)oqHZXpG{6>dp@{Zo|P`}A8pEvJRZz)`puwGL7r`dr{dm8A5yD4R=v`yYsEGg@LC7gk8#dav1^V)L&`|pZN`nKXu(i+^yA6ALwV2u9EVM{m(5iB+miP@J+gx3Rvi=TjmXDRFU>%WsN$o33=Zgr0CUAA+G_aOeES`5>$q%$j$>zfp<;W46G?~m8!3wj z0Jw9%9@{7P&q%n7KX)ZEmaL)T!JXg6-npP(<+FfpKijGo_PvzyY?ZaQ=B6e6TFA|E zbJAy{_#3ZV?eV`SF3G}#yVOB@ZRgZC9^+}5KuLh(eog?QJphyS8=s7;-TS5-;kjeg z@l(~}l>vqN&oR&`H%!b+OX1^~-Vc9hE&UMkbe@L;a$9$!^i~^$JyaTfLdgVt%Zk@t zkKM1bp^%|#fN?t)ucjE7kVUs@c(oI^>qth4P&EazseuU;cJX`ANk&N=S7r=9h(@?M zQC(Uw&lu|9m>-peQjAqa^sJ3>#41KDdEAJSa3$Jb1gd{wISl}&?jx75cL~uDi(ZBJ z5!}HRmB|>S{@ziju(AVZgrJ*7HNW!5(O0nj9nx13>57tv8hE7q43twE{S_&S$gQ2- zk!{Z6U)N6-qZBIa#W83!13-eQ7qF|Gq5H5iTVb>aE@V%_3rj{qzmxNV&+h7izT#{D z*0Ns)|7rM#|Lb_2v!SHuZCk-dg|k{XN4=}J;9~@}XuG5hIvCv4{da7mn_+5zReM;` zIPG;DUmfihV-k%N`DvKc{AhGo$x|Vk=-u12Q3%&^G zmrI1Q1KmQY*d*~6?bn1|=z(O^_LgMU)C27t*%K}UHdvtM&9CQu6)koc9nO_+X)K?N zgXnS>kjmHWvL~UZZpB_O2QyR*jalZ#Ii-dM`6LR<8k6& z@5^g+yJ+H#&45k}R6Wp}J)Rgx$sr7`$;_iI8?q6VeNRc5 zhMeHS_|f~5hrgK0Q??7dp!^I%wf2LzOC^p z=;Va_yNB3mQHhv1siDF*_;UaFDS&L30;(J)C$GV^J?=S*+i{K?YqZA*v(Cz=L=;F& zzKlY_4BJicM)Q+=xb#$7BN#uMev%ewtHABISpog4M!I~CuSzG<@Z=Ji_b)*b<^CJ1 zYBLzGEg|MeH^ej2qj<{^Yc}IvK3SbCb6J}WJd_AK>e^t|-nPwg=9Ty_xWN65U5J6? z<~p;LEm;HIR5@O9{QeJ0Y^=(dt016?gSCEco#P&GANX}U)xljR%v2=KFk$FoSNO+W zXx5-3MGU}!IKpXEmNvB9PhX0jFW&1*ieRUzxGsrp`+{6c4!TK2`JKEpf}>#(WT&fk z&F0{7?}m`8jX2N0n&9pU!*IiJ>7Od)25^l#HTSD6CG=++fI11fA<9GYx7F|Efq2-~ zEMkYed{%laKp>%wFLOHRR^hF}Y=_Zndb)6TJS#b38sA4A33MOO%Z+MoC%XB-4GDd$ zY|M{&|pGdFj0ZC+AH`f1JM@tXt-W5cDSwUbSbO ziw;o!ma{y*&%6os;GiPLiG%&;w5iNeYh2##mxF5yIHQY&p^#7x69KIkV7;3yB`y$J zlR9QJ+++2JOPkn@rSQrjDB=Ov68RW(u1~vIA>|mEHz(`>L1(<~d@7>)JNr5@E^*9Y zf&7Rmd8MCg%5Rzqt$A}x#&C~vs{#NE&9{3v6If>_igkt&H$KeF!5!K`=Lh#6YKjR& z0bRFP#|2k=`Z~{JRRrswa=hE~7jq;~H{WQGs-w>{ySI+$JnAbyt8j1Ue?S4%kN!L^Hefe=jBHE+&Oi6JyJw4H z(b|K>>klZ^$wAjGMk5<0R~GXL#Ho|pNqhfXd7b|_x}0bgB!%;4WwgLPs_w2IA!ER+ zZ0xN}mcc>207{*?V8ybyIWCyq_;-FZe199o5-gznOd-qLt27D+oo!rB#TDuQmfrH4 zZ_cQH#-fRUcxi|?N}AGK@SXy~rRn8(#@G|)DlL5I)CO5#`iCkoMHF=r{29_v3Uk&B zZpH{%WBPz4Mm&K{E2n5+|Jx1pOTx@eL~l_t$4M&!k9E^yvhJ12c}%Olrs0ngEhNDd(039w zW+@Oyd6NRk9B}k^ja_bAqLzLN&gJsTdCSpO6rkK)XC6Q1@c(+rQ`c_AP*>LC; z{I9zZbACvJ8a`Zbmfp==@-2>LY9nOBa%Rwf>M+7}eJjQK0@elj=O;Uv;sAP#XaiRU zo7N59TaSUlJM?3CP4S~}XZrzX2UIh}BcQN4jp`TU^u-Uhe~Tr(&)5+>^UB#Psft{I zjUKhnpbI9Gn5Z_BdUGG3oc+M8++&6k^6Al311_EIHL{&b@ntU3Nl2LJdbSVrc=@MH zNymf$ok^J1ObO9l6yCM@xSE&mL(`*fhQC(CM(l!{3Q<9q^T#MyO5Yaa=pxTvw7qH`hD{9hx=ZWCnB@(ckD&6wDaD}mtO{H z!*t8^;^!>0nMs?kfTkXMUO`ry^lNmsn5j4h6f_K0b*ghJb8?%0!Gs*>C9{A|-75O) zfs8N;QkP&1XT035a_M+PeR2R#t7XA~i6zvcE2 zD<=$1Cb_SVN?Ytooe^}CaaaJSA`AM#ZifG`%0^ln_?DElt#wo6rRmA{4^(09AggFF zMl<_!yUNJ96ua^;4zxWjL)t!oZDxNVDTlxm_XnG0vFhBsuJRMq_iNwMM z+))tMEzH-f=*h}kf4(=B2z!fUd6jH(@A`fMhnEkN#Wu=J`UTdtIG8)va68P@=NG%}pWin9)VX|ci)9qaMg8Cy=)1KFtBr{Xi5yLC&5_C`0ST9L_yaqSN2}H>Y z@btah1!?C@xs2dglthW-X{xJ2v0-?hRz{Ee8S3cki(k>j2^Q@)um8nFe zc6hL>PBFXN#V7WLvm+?jvZ}*rLNL9a=scXDNe*KC40?XFo0CCB zbj}t~(ha3hOmG$<}Po8KMG2wJH zjSFlwz2$hPgB;?X0DX1>PGU4J#=PtGM{2j;4rGm&)@qN+;T7YI-tI)Q%g1r%Uj( zUH5IqD39fD;@=7V1km2r^A|E4SNQ)n=sol0&ZwQCt4E~y;0Eli0bvAnx4{L3M#GlM zZFQmaL9Z1ihv@2~kGt>rv6161pkESd>qa%a1CJ0;!WvzHVA#0uPU$F~M2Mn-VH7D> zWg{|qh)X+8^~yI!L2kIpJ6`}If5u2NrFGOLyA>q$9g^=GW^*EcR+1I?5vwD#TtK&< zZGhdd>qom~%qA3;XqSVUTXq%v>$`?Ahzwjl%3~xHV4oh!Dj2oQSi2TP0SsV& zt(?yZ)wH&+xI8SQaoO{6p7rG(oo2&FYBnuEr#UAI>*Y$~O%4%lX5o&#@0#dipZJ%n z79o3Jvb{Ygdv+?WR3$JHDiUHLbTY))rqc z)%p;yiUl89oMkjaEdFc_A>>}kw_3<=?ZD(}aaCiKxDF&`9UnYc?w{sA z@Z_>P3r$~^j3rxT&JX(S6qtdUw`y6yKqf3f04bi`hAGXWCYS8so9y+eKRsIP|CvW1 zrga=acTr;j;KT@Cxp(F3j71vLgp9xa#=nNIS;9sgTJQ8M8O{TJgsH!+-u8Kr zQ|m-`lBin($O?rAOmuxHH)8}0L!CAAFa>__4U%1aEczWrfi2%d>FsQrL>l>`d zw9ujn^0$zMwj1K={iFGQ^^GgH&mbRMc+Q~04AtS3lnP7o6yBNpS!9&IIdYbLRissE}wjMW$Xc38xDY2`6Yt%Q?s_G6fx>g(Xji^lKAmy_Hma;?&FGj&x%D+1&x1fi4wk?6BXr40$V|b%> zUVQhvQiG_puUXXTou1lC+HpWb$I7De@@QX{(_=M+ZO1Xw$R>f zXibrk1x3`W^~rLHfT+>QKJdQIGx{`^>L9#aQ!mfvr z*lSP47zvP0%8*^()PAoe)b-6uTIiwxOuyuBHWGx3^hgnsivN58 zt8fJ!5ont%tZ7V9z{acLh(o+8DM|+$Ggx-E$&_|Wy@Z_aF~rzFtbH}l8ne2m?SuCt zk_0Ac&pr#896T#U6Wj<`HuK{AXxHB8n?&S(7e;Pwfc}mfMiF|Z2ONTWRr!03Q{7>i z%_VegBLDXJw7MLxNw}grOg`Jio9aJE6d^XzgviDLGF3U8!A2ArMO4BfZAkhwhze&% zOJZX#m}HLHI0jyzZ_Mu}&iVr4QYE%B4@u5kPY>M~-Q_z1e#^>#wdr}!kY;aP1`Cq^ z7xlEl>dHSl0t1K@zDVi*^QDJ~l(o0F@?gt)Y+LUCUN1E2+kTz>83uag(&Q%RW*4mT zSUm~Ah%?=%p5{K>iVZ^S^ClonS2*?mF}<}bgtmC|Xg@4A|4F&K$X!L+8{` z9f0XKnyhpE8#oQnohiJ#*>eVcOl_MM?Al@3ipM}vr~a}rPqzUes|;x`P6m()bx92V!bM1z&$)WL_? zeJYWh;8jU`J8L7SHVbquo)mAMvN zpA;~~mNGlKEu((m+9rMmJ55{L{dJndP*e226xMZ*90xit)1c;BXMPZhmIqe5#RK)5 zpKBlO35#^3Rd!C+ZNRttA!5Ei*HbpQfxO?QYxxP%fok5qw*3^I^_QSX{;V&;aD?7=4-8p#P7{R~CstnWU+)RkX8VxUnpJ)Y zEM_KK+;XE_75M=IdfGT2!(_Atwr{4HKa|nJI5o}c;@1LN*mS+m_dy5PLSDzB@MJ8r zQNFX0wr$_i3l0qFuE5DUK#Ap1s-0x@;8l@%U9*3J&3_#tsSZq002I`2XOUdUCbWrE z#~$9+E-s>_GD6Felr~4VHig6oK;M{)tOcY5+Cv(5`G7M7C-VT}iTsBVStRveUmQ+* zqO}j>3b6_M4-URKhBR%Yqjdn>NioE`gA`fxxU&MZN{vM1`Jv69ItUCZ4JK#uXrLb) zHv58W+KOsx1pD=`S|E(Q*!*aYu1o&z{Xg8Fwy%^io?#_PmBEu)8t<+!Y%oIkfG@Qf zs_gd^VVOhL9htwxwmgp1!>t+j^`wB{muE^W(62=w$TV-kpJ{lEdIkZZ%y0ha?Bruh zqm-gcKdY_w#wsSmQcP!4Qa|aWBPrjlx*q}N7qpT@(t$;aGmhQIZ{*~eU?!`9Rcqgh z8(fm#-Dj_gtUOkF&+T`NKF0pP zF@#33863v-Dp8H9vkZN7fb;co-FkDDr<%S_WArMoOpYv$RgqFzGk>! z!G{DQ-^O==c8_CBkp|Ga%y?)n<;V*2gT}nLEolT&x?Rb~+2?z0ZC9&k+lC8fnjbDZ z6~1B}Xf)s(MGy)6F2G-9_oAQjvr94bx5Y25$gw!RFla1XUJu8mIkiE_4V|^z;CHwiQxCpT#25Jc_KL1j2VHWF7U0YJ=u->b@~un`$vkSSuHwUthT_*y8aG4bjOi@TQ z0UTeFLAo?HTKW=N25{!*k26pr1QR)eQla#)uyWDijsR{8FmkK9CypiD%Al z&~2-KLQC_cEW<(XK>EiG-ZE7$ePXZUkXoU9xyrbt3Yj@$t;u5wWw_JRq$Gn1^zvD< zHw>k#A4kg5fXywZ|D)_0)Z^^d=oj0z)u3r?qp@wHanjhfowTuS+i09Lwrw>y=Mv_> zg8j@)viEw|yYLRT6g3XMl{~2RAONM=V^2w_DD&i%YV;efJOy-1${gn7J;E2B3nW;w zR~dM)XKGFp@?Xq*$k$U!1DEql{F1^A6(k}qj#jkMY^$~P0OER&%S!uVXi{k$x|jim z3PiYEJ8DM~gWzJZGebD&tWRzLVFh;@n;NapIb&-OKBl_um#OrrY9*46kue>p2*GAW zdUT^eZ}yQ&XGi#nn`2r2&t#>ro#K2Y2?P^#U`%XNyck_9 zVeg3iHmUBa7aMgkPcrM1J$_nMI!YY$p{*EdgDbT_2la6USB#QpXRUfayc#vIWXSb? zLs2?GEqZP4e!GG<*HB@*#3iB*><92|kyX1n&W*>^%UI9T&N6uztmg%cVv=Q-$>;IM zIq2Hk6doxuvw&=>5O5MdE>f-(m^v`_&`V`^8@Ycz=J=K=4u$gc!8Ap%xNbs48ko=a z0FmvN^A-vQUapJHGQ8Geg}it8OTG_Z2})z4g2X9P(5VPygCPmFV&Se%jV28zdM_OC z8}i$YXW8UmJjda-c6v}Q+X*KBesa=K)y8$%za;=#fJqyAr%Kh3I9LyO$8gH~JPkpc z(%5*-J$nP%Ip`bnLiC0#k(1A$`fL~m>nS4BjGx%+GKEjl195u>DblzLHf+WOmfj_) z#N>tGgfE7FfYUSa6g{4l8IVpbNWYGHLxjxSW!G zMgpQm4?|1y)*wvTy5>?~h07DDSduQzdq0f@yjPfWk@|I#yi0)O2mS{K(n^9aA|v~m zv)z>cR$spdqLnskK!;t~YJ&bc6%cJP3a(T}OSbQagp0QcJwom6PeQ**V(X@LME@1r zZ0u_d*=(GvcBUR&rhYUX0emiIGwlPZGOTtGzf^r^!Z@}#qMfVMWlj&#ZNMY}y=x$7 z*TK)@Pr~tnipBe2xIIU;ZURpah1!AwZBFmb;{-~>vYwMT-(!SGxgNz8=13>t>`O9) zD~Wes^hG;`jd8<}OBglGz@m^Pv^b52{qhO)N#Yj1)B|TsC>hU_^Q{_DS-@k(%#@b@unzA`0T6P#$XYdy8 zt0rSB&#*j|J=S_*Po8nm%r2Io+-gjy5dsl-uO23^odrz(ZdLSK9{VoE|HJ=)Aj)Q4 z?4^JH0)a0^;0^ie@IRzgk@~#ghq)6E`Mwb3mwHc_RLi!toXEm+l&rp$JuD_m;-if< zK^7An&a4>C6|A`esDU*ik255(`YlhJHeL6EP=+=*J~~dco$BTs*zcf|FHPy#s950> z)_42ZBGCkeWcWNJX{Lg76c{KHSW>SUEJgOLt^`M|-Tc=#fgEd)a)5R>tKsSc2_Z`X zSeg_^3nrOE!S5#(ov%9?=(m5H-9TUQ<@+^D@uWew`)Le(U zEoVqlGr5M~HYZ`Yt)%z84+z=BXwmt3-CBUnN6m$khAH&g!MI53)uHLGC(*LEZ?~R%C%o0-}xq<6b8c#Iz2)Y0w6X}+fmaJ z6u&})Gb+!4KBh9JGHBlb7@R!BW>rspAN8yStiI-=`kmuwSu;bXLfF$?72H*?gg|m~ zht)8q5fGRb$Nhi6YdwQU+Pl@2JIIiafc%JFX@M%}-1^Rf4*G9gI-O2cMX1bEY#i&~ zp?Yu>qD4_A>gALJE4&@oz;n`~3TvW2SZWT>So@x|JWC2>MHYB{dy8yAP3|{@r|Eac z+j!c2h4yv)rx`Nb-UNENc0u`N(G3FItB2T9bvoZcTir*@A1{4D>pF#fEj8%p+Q1tg z*0*m+@hj}h`E%U!@qq0bPC58iXMyd(d@08Q`lNUyFhxQn`->Wrc)UjnbfZ<6No2Pi zDn(#5Su6&dskqjf_m@zcH-|E^q|1$9xOzha;$oGPnL6=AB{c~MBUx);u|}}G#}g{B z-|xxswoYOIJhgDxD|4mQIh>+x^G(E1m=~ z{)cZp#5$%U{Nk=g8YApSl3?k?b%0iG_C)9eWPp&Xqd=di32UIkS4pUJF!L`fcr_$S z51`-GVPh%53l;7v@<+UOl9i2?usVZh1~CZJG%`)k-!ye3lca|F_KmZT*I^c>s2q=g z)qhuaBAR2h3OxYQMbY=4X+gh~(9AYW^@!AayqQ7olV~HcJtKOoP8o$rWLmhbbkvUs zDLU%L@|8@Th!7cH&-vjeuQHQwM62tdj*8T$(=`rYA)m+%cSb=m=rJ#GbhZ~ z7(v~CQ?x*a0Nwpl#iiX4LnyXrlQ&>K>?$;HxQ0jKMWNStthS`I3B$%DCubHAF`G^L zBE`y{5+Ec1a9yYmlTSt#7=jOz!n7$D8BG`ziE5bMQF9Q|MHhe`%h5IpnIB~#+CPc% z{bjEvIocMJxcb7h4L-G{WP_oOzp^CkaNOvIbTHzN>+M{~Q3nu?%2;ZC_AO4LOy@Gk zb@eHr!U_@90i6$Qd2C2lxD(`qBWjAAZS4B#V^|Lwnd`XbQC{K|`?LmN#KrZ|j#F-X zUQv-1qE`PuuUs8dsJRkF0yrMrEJuv3#iJGk3s<6*y;z7Aor`*=usjaKR&Yt6mxskD zU-6J)w^N)^&}`g{nG|U7BHiZNLpW@*)kXd@u!Cwuis9|D&ND-!j5a2b9GL$<=#2dT^&KEA`ps;+16_t%@o{fjpB~6+K0k0rTH?y z+|a@QT;?|XxH6az@i$^vS3{aYH_6rv0y0nw8epjvsmEGvbgWIAS;-OWjm|J}b|s;s zpOMW#xARAxrj#C%tJc91xZkB@1bFRB#kX`V$f81XC3N`~@prdKT-fA`KisL={yi8n zV^IVWp*oxeMYlY>lE!P#!D%Q8?1TCcX}CA`q*NRxhkt-REq3l|Qw&O8YDd9#ZXLIq z1aIvf&b+#^(&$NkOqzG_KsOo9A7SYUwTK5N`Kll20ZDE*<<@ek91PKU*UeTXlZTY( zii7G>*WdaPJ|N>hKnL`Y(Ozpe@qT|B?}>|6YS|8!8ZKk(V_&XbEUQk)5+HP=JUg1V zQxT`)<&OzS!(D(ub1zIE`3B7AFweMOSe|Ti;oPHXhs207e&}=HhE<^JtA)%(MMmaA zdEg!xZ?Gtt^Aja8NO1oa^S@NPKLlD{M003%AiWo4^#wrs63@G30JV#+JeJOsLL@9$ z_^3(@lt|=9qgptUWNV~ZovFr9zQZL5_61gL5Z!b7Q7N|}EihYTqF8>og1&`upteC!kQv+@2)^#;(wo|r!2XqT zfWsPR`^s7iaYFtz?dtR4Oox5z0g{1KMTrQ|^$jl>#x!|h>OPs`*)%re}k5 z7_6CP?gPE6KG};uNXbi5^27QcP^Y6k%tWO^grL5-v_>~~*^pR?gPK;1V6*g(*r%?2 zY+j7P699j^18b(7Lrm-lgV9=V;S}ly+}R@=v{c(YXV#BE&qPfJ+cCD}L;{1vnG9AF z!a~C&@m7T%LnSKf6BP0O7g467%P4zN$nm)=8LnA@S5prR>Cj4;L^C>3#>I?Z*HY|5 zPP($MJ)FQ3z#GW4K2U*z@>f zC!OObl1GC_G3LZR0*reiGsJw1?(rR_-G+&eUSm%oSFmqf=|^s&vY=6dZs!kDZqVmR zQL4WqNY{X4yj_&efu~GvezZEx>lS&XW#>qjW_Crj7^N!PLF;oOV_4oI#+Esj#aLaGJeo9ieawH&c~#mKo-W5h|B$W}cz( z7DN&ad4AT2A`USNb^|$g4_Kq+Ksk!-*f;0ATAwLMxCa^0_`L!`2Rj5IKFL@C!B87+ z&=qXaR``7F4g;+rF1O?VzqqUg+cEy_q$dX*SRrD~OVcheKOU%DJg!WLd+a2Dhmrw3 zs%t1-vD}l(XCeixu$%!ln22(rMOCVm$BEBDfp(x%iW{r10l`X)=t57lN-n=(vKD^0 z%G{0A^{yM6(d6rpR*unNvw*|-N3F_xuYyM}0^YLa`C{$g*YK{zksOuF^`GCLw}Liq z3PSj-ia5_fpBAIq;-RE|582HiM^BU78J~yLm2(S>x7l*y1vh#7nSc5HQuI))Cwcbf z>B!_{*F6hBP9?$Xe>30;z!ALU`JsYiW@0~BpSVbLn+*2iEYk}5GQ?${HsiHS!Te(+ z*Q@XE-OsFjUHcsDp2WIMjogMq{g$j{1_5n6d|qkBoRPs&V*pOqGx?>#LtZG*h)D~Z zm;RAj;dp(XXA(S6h%sF4KQ!T#N@&gpdE&19bf>%cE?F^QvRRyW_|tG5r4G?Z&EOeo z7~O48505?mX6K@r3Kbnl6Oo%BfVxz_IQ#oIF{C>y;BOPSqCMhq6Z@~7azW6wKJ{m+ z{2qoyC`#qv1BK9A80>k`UY0eVQj*XVRRS<97h%q8oeEz=p=g->npx8_jDYI=6{UAu zY-q3Ogam`o4o%Tx&i9vM0~8qJ!9QTxpp!3Y_phR#mzHzs$Ea{GklAaix00+z#x6f_ z)X84MH0QJD2~)B5oj*}dah5}7GLmJ{`J7wm@v&8C_W-s z0POeT4>5=!yy{=A(sB!2g}AUpDjn3uohNX7mXZoUTiVPSMxEIlXXM1}Q^WgY!%+4N z+%9E4mG&IE&Kl^&QiT^UY+Xp9#ycjPUpXIJx_6`p&KE_=83QH5YGJlRVMeJe$IIuQ z2<+1c-=w%xy#a~ifGu!N=7gkxH8yN zBTKF@GV@SNqBMzwc#jR~v2^-FM)kJ%O-f=`4KsYvFbQ-g$z8_+2tpCmc18#l7Cslo zzK;?|GQhu?qyhKtB)}&N`qcV(==;(aeen&xqnW(@lnV{hgM6R!j|Hwq$eCX2x#0;jTu8bx!vnKhvv9z zQ_t;r1%jEv=i2EZvP1M$l;|Z2mJy-r*35oX?3o?QhaLU_z09+vkqz1IGz*1IL}Mw2 zzDvwoNr2VlbdEb=;vdJ?wK+?*pN-q39QEjhwp0N)Hgw9s@Tkb0$wa2pEI(B^zw&C& z*Ru}WADdn#0?7oGUl>0@hqw0P<>&P8P%l&Y%ftL?im#yoUI)iBeG`{aXV#EP#c=y8 zu}yVTMEIEKth-z5IYC&rd=b`3%^CQo{DI-2b6ZMm=)~JkXdsCwxu! zoh44vT}NN@v!!bq|4z5*ZmWIweccxH)VXk63aZ8u+qb+y#O4N%Ck+Im32jQ@eWLa+ zyQ9ch-%bM2rqiYLdh$A2gtaDhW8#1=Ef-q3E)vH8>GYow$Q6p%l%(5FEKYu>U;2N4 z3WJ^%QHQ?7t6Q!)79GWpR6S%Ql1b-oHoL1 z5qK2UgcPA|$VrK#{9WsFvp;tzf1@93jAyINXl=y+dc$N9i%6LK*DZzONKOxjkM$h# zA*ofenLBI<-8CO|2(s*fgngcAE~e!j%(7ok>f)n7iZUW}n&Q`&Yc;6ldw)LFN+i8p zw;3}QcuN|?+kc?v&?m>Z83V%fo} z2sc&okq%zH6Kf~+Wgevz`KthWh+`1P;AE^af0JLI-@G65q^@C|Kn0FR1ZFvQYe&?6h# zNFwV3vXvdxa#y`{-cQK79xujzt|($6wqwqI+WoP{7wF9g6N0U@EuoQ2@Ig2Nh=!3X zR9!lcMi2dupdxO~>AsvY?^y-mxKZArtg3-tNE3qBf6)`tE_cgbjx8rGds=R-`>R1U zCHSyJmL(_=s`^VzLP`E=iOOc=cdr>~oWDSANtC&xEp?{&63Qt17O9M<5u%)IT++o@ z5E7ey7U%`)WivPghF)Nz;~%@XeB6dBaPKHYNJu{2`aT*>p~Jbe8l~ht3a@g|jlT7w zVKnp!0G~!8vf%~PBuA0vkN#((avh5bjk79K_w|EQJyzK^(8c@om(T5XG;byi*pcXk z)0^KktOD(^X^Lee^XI-F)~zxYn#-n;xc{*xa}NupLePwXTAl%C0bD> zIvNQE`$q@u3p%R}Ku?1X_I%R|@FR1uS!xVWi8#B~X*b?c@M01d5E9Cr4!Jti9~El4 z2QsL6P1FDRHDP>N0w{+gL^GnJQD6wd&(Difn(aQYU`dz*O7@B}H@T8PS1AU9@plhf zWUaEWv8SHoF~LB~TE-)fn%QCRVNR__TjON*x3UKDqZ2N`TI%NP46_~g43@{PAcnzbl56;tch$uP z^qVUWZ-faab}C?*FRdMF9+sT5-4LHSmQ&j*+P{ST<_)v@B1$s%Y~RMq#T{9gB@3uj z(a|kW#T8^yS@vi+r|u?)cI`wfbsKuRG(HHE0-bIOfKBlIHis0Gk!BEPxEur@&Mn3z z_MO4$TV!R^lYYdsdf}SbfIIDkZjzBa%>)5A5D?$HhhDP1RC0A?>Kih`J*9>$@L7PG zSDCyn>w5t@%4{1nEhteHu-#l>DArSvx|6&T0C7N$zcA1% zcv^2r{u$p{mB&77mDocB5tPC#Q!VC9a;{r%O0aqGJ-(s;`uCnC`DwGF^b2csa|BRr z2p7@H*qn`Qgysia5C&4x}d4WGxD|XY79_l3*@6@Wjg))q{<4g3i;4VM?<1 z%2FPsObq}w%%w-YeQEr5>h==F8|M1lLHZ8K8isL7`G)WJhicH_EgAo)g7^83X$WZW4_Aqi36Q(e{ynz%(!sq!Q>$(rVD!_K4GtJ^<^`Q7N83g| zOtt3+o;C_OYpdN~R9KUMkIVAcz}K zYM5(KUEEQ+LEF28Jusr6H``Ws*8s@QemT{qZ(L;ZTeoC*1ceU&oy2c7x)G0~T>U#R z&kQ=nj?eOSV_ z-~MTJ9h^1Z9Tvs6HWA<6%IW^-E&8*QKgymvkPfsMH$1Rw;z{HPcy*rRt-VXdPesV> z!0n`e$DK=Z9|rwBZnJ_o<4pt%u(8&v(I)@;R$nuhVfuUtf)`CvWB8mR!=XH?Rj^Yn z=1wTj&%JO5$o~k)#$$%3ei*7Y-NN_hUxexFUVNPwy1dLK?U_{q`QYH)FXCFwGtml1 z?8=4I$bGnG4GdRC&C5o5I$JW*W$#NnvQJGAQa;#iZ5k9fa}&TB9XnF0SnyEY;ogd5 z10=_f_8RV3PJCNf#ZLt+3efdjp~eB7)TO&4JWn5fS=$Lfh8Dp^DHkOE!uZQj*){a_ivV{xhmnMU^I`ECy(#FphAbmxuXd zW<-^^J1&`E>J&e>ji7#%Tb2%f-eK zi^Nk)s0*uK3hVGvrNG_`?isf*O{}($xIk|o^slW2A2HAvfxv@d+M#c!hUHZzB z#n%XP;JG=9bq>$`QX3X0m~ih$}Byr zzAroHhd)@0e!~Y6Bx~v(thim3ZA?ATv2RU3c}~$Jd=nQ-M&I@+YCsnYM(^c&|5}>o zI2mrCPp)jqH)@RGfZ853%wYoib93^IGXagx`R!Q9xiX9>OAA9q20#R_bbxe^w;nhQ z)gCIfVjLiVlp+n+7fVbmP7n5kP<-t* ztMSk>Zd`B=V%0;3UUL_4bwC4VF{5-5zYg`J`d`6(3-G2`^uOmdS5f7r1TzNz1_Qb( zqPP&H4>N||JH*Ox3t%o$4Tn9BoK0WuA1+uQQT)TJ>3{2GR9^I$rlWoOkWWyn3go)y zPJqBP%y`r|DfZY*OL7|LW3EaU*)u#S0F(NoI z>~2kt%Y+9ESuc%f=UH4`r=`5GH<)wV(w9+S(Cyb}?jqp%5k780i!Z^RUeq?=CC-r! zVRaeeD`3fwdx-c|vjb=Jkjj<4Xe!z5wxuxA5PCtc{?dpQbaQ*%uhrDQh;85Ro=~Ff zQ6(_{<{503T^}C|JefZ?Y2TasD879Ojh~6fYt>1r`2sTn81Oxjp5B<=b_dktJRpHp z={zIQRo}x(@gts1ICp@)X)7bQU@b*X%GZ5d&TYO^maxWeADk8og8Bi+l62uT5w6io z+-0Yi)5#ixX|Q?bjSLKn8{EXx`+?yv=`o8)Ot@ROmd{GulT)0&Y~nXufF1{5HcT&K zj7(0M0wvgj5!ZutCku6;STmHy6NN?nyCjWTFS`pB3lXYX6&JP&kmU^k$eU(0Q)3<` zRu0+YvZs*4(@nFp_Hc+aZ%3O1XOKYus!OrLyA80-Ub7Jmjr+8|56kxt;eMhg27E^% zTG~fu?zs*Z?Lup(ObUf?=yMBKyaswTkD12=@D&)PV}qazq(gRTYb|Ga{+>9M4aBQk zfew8tsiLXcS)9ITi=pm*QcBOj>IOK_bVxhzaqsYWnhw%Upt&1kc(i6;uM#3#X^Qv) zbPWp41cZ7^;wt%@tJIy~S$1>{Ic^dwlBh!?kH(-s5>a+VEwR&AG8Csq+Hi2GN@a;# z{mDWY2YIj5nW~T311PBhWI_Ob4AQ&+4$Gd5FQ8*bVcM$l@I$~;29xN;`I}(=r#w?W ze88naawL`!D(FPH+AC9!{?FtdnkZ3c;LG3id1<@I88(}sRDv}U7xQt9r69Qu{|)e# zjBvkZG;vN~E$rcaN2rHe`4A}or=eYCqLWpOwmvVh*66ZFtM(tn2@3~hOgev((5y5b z=%7Wv6Q+Aeu&?DA7HvgHyA%kxAQOJ|z8@M@mDkA{JR3`%0qV1g24v>HsKxDAChw4T zYktV03t4*VhTR#`+_&&FfQ~XhQ((%?rB)vj3-AbdH106ngRrA1%*(y0YJ>wFf!qfN z28iwS6SZ^v)#rG?0I#-|m0=mF>&rb#e2v1HP|jDk;jAug>4KILVEsB{474W^!Z|uk z17>v^A^sDmG!EJe$IE&OKB|DZ8-ib{&_@2$MWd3CkQd0Uj5)u#Fmq@oYkVpG z3POXv{=uTZB|YO^)tZJlX4NZrRSHs&%X zfV>H@G5QK^Dg7TPMX~LMOD+$lRT;#<@%k?<=FA-&`?*!(Xw}2FYfk z_`Bjng$1t4qN{2tX3X!f-qYqt{^{}nzFi_LiiL&Tl{`+Yq6NSa?WGe?tBA(>{_&G5 z@hS+LWN6dSFW(_U=ZhAaLKx^k-~}3?bll*uvY}r6jS!Y+urswwgH!I;&yZF*r48oD zZ?4v5vWc(Ok>BBT8+~H*fKt*&xyttNkVsO#U(&`N#X@0>h#Q=cEV?d8`H+$tpwCW{ z=*euueu%+c$k3)G$Ynf9#Y0#*3b@S@Ht1;$YThI>9sZNk?zbqOQ5C}!fkr^)%dguC z#J0TcN735purkE$Rk~RwE-P!XCI(7GC(u!5Tb~Ltv}1iNPt;@C?Rt6Jbd%f8Cf+mZ z6l8<3wzTO`3dz8jiIT+^t+goMJ=wGK0>7}Haa4p$gLHbz1=kFU)$~zYl3h_qa>2z zw8_s#`#%Zb>xQ65{wJu_AJ7?}?v>~nnFO!i#eHj94^?W6UbDY9{`c!M z>UXAx^W43+Dn&^LKBVSHXo ze?7QIR>uw3PAcmU+%9W#SC9&6Xd-DP?^bonmQBE$FFN@thv^9xAkLJA6d3W1e7TpO z$3Zn)u%Wn5lCi({zBT~+KD!0XkGNdKIaJxvpU+!LrF$dsv^xO zO%!4l_v)Ff0#!BwpWENc(((Yg4Wm8#v*gMABuCr~6y_|s&6Y+jID5S}J2TZiWzcbT z_$HTxThnm+`QabgI~{Lo%VApVym+}jxW;XV6lF?e&XVX$xx3dT!Ya2}RG~i(fC1ds z*MZ&yaKnm>vo0N}MD;c<_9v)1+gwu%l>9)@^FT`Tul^39-TZ{63A&U_o>lf!+Q3~e zUHV|pNZC{Vni)oWP5U*w1ze0Z%BIOi4DSeVG3tA7QNgZNIvNzB8IAp2YXoMR8mYkb z(Kq)8wF-2*Ldm4(@?-QcMEyJ$o*ndGeY1tx(JRX~|EaO1;qsn2f3MJ%z!8=rn>Z5O z$(RW!dBF1`$#j999}E{QxA6SBx=Q%==j^TQ^7kJ+8kYIeJfQzOK^OMQs@@E#)V^o+ zGq928u{v<#i!DF+ezvKKH;a;u|CJ@|s0u{FF59os&!35{aWL zrKj7jp|$DBu@)v*Cb#~Bkc^EFB_MR-%f2tS-G~^_s+BhowB;T$(F)Act=E|yqJzC$ z`!$3PsZr-JO-I)<0|$HFG+(FoVk>g$4htC>|01$}F2Q+$o>tBH+-1;40VC_;`nNJ;TlNi0^h>5)c zx|uG++meVsPGY6aJ$^?=uPGdhu@>KSwhz~;80qX=sKDsw(`ODCSd@SKiPZf$U9lNJ zKE7eDKEd#d-YFf=vIOaR1Ai6XUqOpFSK9^dA7M1;o3>bI8H9YMOgf+wp9J?RwiWEV zk6bxqoZf_`VYP>Z!$RMRM2adQnt&6+X|(9amWgKZQRt)Dz|#*QZAc$w5a8Rk}PIR z<1)5=e5sK0u2{%`mu$-$;IRCfRb*mTonja#eT9ggo zYU`k7#)%b)Y)?|XCJ_o=7s`azu1>w40+v{RT=Etnuwb=xJOuoJa)8o_hXFXVy~N}n zdX32LK>v-CZdx2=G3Ha`zlPz%!M8(6a`Fo|89%V7Z!00DNxix2RcvXB_B1IiAM_1Q z*x&=h;CoHomWNnG7NZYhqDH%6;p|G*8<@Bup$E;hz!YCE__v+rkRM{|iV|z~Kd~|N zH6qoMtV7*<%|0i9>=dbbp^?^L%^u-;!`|?d3pb6G3`u3;{eEw$bCg@qCkaySNH?Fw z(i2V;YKZgXlpdOHJ!D^8X6lcOW4K~674R6NC!eHgbY~L-BM}p9dtgH$^ZM8whJo+r zKUlc?Jxd%Rq_ewp2CaiF8%Fxw7SJDwiH|8AvRNW_5+Ryg!PH0yDA0X|5 zfG?u>a(1Kzh^}uYoMOJIKsy|ZBz=Pr`1y1N1v=&uO{B|aE%%|Il(j7?#hSLeE1Q#_ z65egMTb#Z#Ord6>a)ojz=8)4i05>iLUc3M*9=DP2EO@6ko{;e$gt6|*ldCJ)bpzHm zflcH(d7!6Ng=4e;b1A38`C@N~pW8>t_v(K_iTlAVzj(I7U9}rLD`J>R+aMoLoZ!Si zUl0aW1F99b6}40}x#2CJ>Hd!Luocq2dh>Sb{t#;u-9{y#%c=^&SL}87xyIx|#gfwQ zbDCd%<3c;>_v9u~)$HF4p7tI`YN^)48j;KK|6*z3=?n+J>?B`&U@ab**qqt*mJ-^w z)+U7+FxQ5+hdfjdia?KS2*okxb)paG6k*lTAyWMJ7@@>Tf!`O5K_H+)LZb4IH^vpTq}U0#vk*|{6}Ps*@*-nw4_ z!SZkXOSy)nG%gx9t)q3>Mw>xx@jy!g*gyOELmZRe>Th0Ro_0ll|Jc;9ffv;vY~;xw zf-ZB8cKaR+FSV!mixl(T5?nonYN0SQXpRQfzvNvlX4jg1m24KZpcR!40Zh$ldNfo5 zD2cu)Y00q`kT$A^4<@w{X2bbwo0A;(&7_!cIe!s!9Z2K{_vFg$C((gXW?w%u1f4XV zeAZVA<=K+? z!%%{}bK65!2DCpVsI~8|zhdBbVYd6c5nYGCR}Vjn@Jjc&=p!D1zW!@Fq#K=u1;hMi-Xpa%0Qs^&s=VCTZkQpmiRJ3|HRzf(u)S{)w1mxUj(fsKdMxiH|E zduYw>@q4Cv;05i*k-ClH`5@?Db#2*=%*3}v8ucfFi6z!lG|l5_5@|~6_zyD)ekUBG zHG3^&qHOgo`Ps8?PgScI2!M0#S|kuIhxyml8*p|FGor@1=Ok|q!V-}aZhwRZ{jM(f zi3lXqRaqZQlVLWN$)p=?f%uj*Nt&+r;9r?luP zcqTGC=sJ*c0V681ABK;Ab};%)cM$KDPNsiLI3I__jrhy={Pc>)lck@tiXF?AxN5Be zL+IB5F7ocR2YJ+(PJ|HroF?|UyjDN&YR$d zJ3|)M=SCLE9qPS(!(p=>>Oh>w7 zfexRnH;jt13=GGj5tbv+)MA9Q#Eb*Ga^^3e~)S8u5&2K(DBmh z&F?pE!RErh|9&r@)UvZOyP$bO4CL_!t^b_qk_$jM`g#Am?R`On6F)EHN}RyCeceFu zKOhj(yp4!$$id|fEHLSRd87ZB z>2-XIn{B5eAKp$R1XQVl{k|U{iLoNIz*`v?~jqmI?E{W5b za<@voe=BZ4k8CJUX?*^+xZt&q)zL8n!y%7=9!L4XAA;D*3XYS+-@fI5na=d#ZP_nq z68d5vUvdB_&MikM$&|59fR9UjD#d8eH1+5jDr!7F9iO}plQ8}V7aub<)2{pXbYT^q zhi21U#Cz|0ShtT-v5@lZiEl8Ph`5h6i9b4rnsbDrjbYQ=fS!LmIoRwpXlGrz>MX^u zULJ$w*39>{l>7&d+12o5pkppmRh1*dNcea7m}a!dW~CHIsJ6QATT6JDd+QJfckHDJ zB~4b1Txvh-c$Mhj!telDHXPV=Qn*}67|G#u_x#Yb=L}hT`fn?$LPQnFji8GKGn6dw z35HO9Ipept9-6HLefcUvybj0ev?y*@G0APf`FNwDjdgeCm5(6^b%vwg|W6K}6$0v#C4 zlc00SBcS;F@7|z2E`v$MnD=MBt*;O8hg1*W+KAzc2r@14Sx+>%F1|)8j<&66^lg6h z=LYCTtJ2R^bAgAP5`&Z{MA_m9oGd8~H8X6yWT(mAqk0NGi63mtTYvlDZFeA{HN-P? z6@WDXcv;8sBa!&br{|4fshh%&RXVD<^c0?SWzk$Y8qjUPf4bAIP1fzVsrchmS+=4s zJ%7{4;%t#+U{-jgL1&Ua2T&QsC?i{U{q6c1t8wQ6Xj|Z~r@qvRY?kVA$7id5k^gsZ zD=J3oYWdD7ak>fmrY&56e_=gYbQ;lP?}L+o&4Rg*{$8dG`PCd3oWoZC%UZ+Ex4d~( zb^CHIWUYaFRA<2Z5rc45r9^T#+WTdcrJF>@%XWH?sUSu;X%>NF&I)vK0zF}YE(vAD z&+r`qnhLZN&!q4LcsCq6Ak{91iP9~xa}n zo^aL~es|{HeEY_tm`|AUZT=i|r)D!@en5(e-e3>BaZ6+|3=C>R%;toZqXcx5{J-HPr;ZMe)G6Ph{WG0nuf07lBfA=8dp9ZMAGO?t{PpH}iA>cu;j8A`2;&Mk71oQ7Qq$52}l0iEs-BykB zZhx~*C8b5+omIi8R}}i>rb%mvKt%Y;)c~AIy_k1QAnXb1Y=2~ll@Pa1oo zx_(0-20iySZ(aT38-Mu3w9shdKqUtJ{<&O`J?8aH^f(?otn7dt$u;@?FbM{h|Y$&gP6)QGpmU!)v`L|lP#1R2iIS4h@Fenz1(n~nF*aa=xE9SV_axk-bHYd z0wMhBin$CiwyCQZm%i>etRDrZsNtYbizW9sfAskR7%J*qO}^EukBtUF##+dv3VHnV zg35@iyNuF+NNcs;Zhfi4y;~WH>jvx#{JxiEF^##Wi@sfkq%3}|Z~|hTq+wmC!;8QY zKBHN!-LB_B>r;)N2`kk zNL~?o(s^y0WJ6){FK537#Vbe|Os!2klqXY|FWQNN4))%7XM}QGJsFF7_hh|iKZ%^q zf1JLz6_e#&Av$6};9Bis1d=`_OTr^s-wv7VA_DpqYrogR{l0U2!eS~Y+|uMU5BzbGe!Aq^zb# zM8JKV7@UZ&!KKnFw4s_hJ^}Pe0tJV|Y>2w|_`5LHy4d2fJ9JAmf|>FW?KL{=rTCi& ze;VIbn4qF4N2LEwUGxeB5UZ!#S`8!rZRNWv#a*|y5uXUl?+si%W8m6}zv&qCJdl9S z3ga%mVjc;Goi%97)=2+IvLbipssz0dag}czY{Q->P0qMkyaX81Jb9!;z9_(%hq-~6 zk9)QWivqYd-biYKMsU<{`ca};;>kFc- z0D+0ln7f?chQUdV#8qE>j|~|7CfdT!0sPg!ao6*BKOF6IaM$56Vkq%qO493?0o6w# zo$RV&&~deB0@mFiR`*D+Gps#L{OM#6quo3Aic2*4y@Ma8tHylX_Ptqk%VshWUKn~4Gpb8?{!1hYDQLi4X zEE;zX9dJP|AWsBcydQT7IQ9jsC-qiUzgaN#nMKk~M2n71`I=W6cJ=?n2LB$27kw(W zKo(H-%@PqWg9RX5*COhttf1x9<}eqE$C_6k*pB=otG+s7J)sH?33`30KY0iSz#c9^ z>A4?Qp31G6v#4o5&rQ^fXS5?Ykc`wbvTOs>wNim{XDq#Wo>{N$_d-DNdj(xdmgT)yL z2xGgbm`m?`q(P-;{V-PxT_2MG}o(qF+4i!|9AuOx@l2>-K6}X|ttLf;Zddh2cf%Ei90FCZ9Ns+#|zjC>b7Q?Z>?^z#q#_9kVN1X5|cqdhg zcCopCfsGfHT~{vDHu$%~5h1<{)1b4rA*f{Qw7$d}`CGv%)Y6P&t#w|GmtK#aMiL|cJtZ-$WK|DG0V4J z(24Tb>YRQ}%WgMzi6kMHMl}r}Pv8Ep@%JijBim{1YM^FtJ%?)mX02l*n+@Vx}2FxmMojb=f`e54o+OYhwO0bJv&;ecMyba}NrK6P3VrxQnU8R-4wR)sw z?f0hQ#V656-2Uu7Ykv;mt7+-*6S{409DM%~pc>i}9xkG^>>(){VF){#3?{}Cb(r%q zo3wb4H)sbvCM$>o<@Z^6aAKePZCWBL^yh>>tJ1EFv*1%wZHJWcMpIu|he!|0yg7ah zdFe;L-UCq6%NrtNQt7gp(VO+>$z+{IC#kp z*e6z=qcbfJf40b>2I+7eJYL`Zb5)CI3KJh9KYHK9Q^4Z}U?B`ewjgwHccB{q%!$gh=E1b9y7NBZX6%XRuv0<34I0TxeekT8-~Bq`>x^Kpj*Amw5Bqw zQ{U&1nf#fcBglVNKDG}lA2%t-go;g}{^MoGb$GpCC*|R(IAA>;xiOFhf>nm*2o5&T z-hBkK%FgkS`WTzHn_d65uo!t-Wk|q)?$n&osW!>h)6KOa=4piYO6HRP$56w4@@!BL zg_T+EA<4xkxk-~THz-XBPH=KWzXs%TLCzD(Oe1x|-P3NIbo37_fd}l!6DOgW?)eOj^F- zABDQ>X4b_&e^u{<#I5B2-X@89OXw-#;@rn2=QRS=Q)1dvb3aw^V-@9oh&gVbI48p7 zZQS=6Eh}yPO!NbNOyxhAsEjVoV*4ws6vY)IpF@P=|D8yM6x|SBDAs*B3C{ytWfLp+ zTMoWu|5^r}8X!E@e$G~U7fOGFom)=xs{9A`076aDLQQZ7q1kF1^wmI9l4hH!cjd=w zz&jS_ua(rsIpbv-_O< zIyXWrbWwIWyE9-e!FBjDtia(ZMWMYw*lEEN(CejKM&U#^7+g79c_RKXvROnAdc02j z^`zuWv(A@|^5?@J>(*r3J+Uif3N=U4X_@@$JP-&vbhk9d<3B1i;9hfj{5V~JaL1U1 z64j4-7CjD1x0mnM1*vmul49Q>&A(OROZ=n-eYe;f1&{8iqTk!H_V9|!!6iW0jy%bl z?sFsm)_p>MZ+3V+(J*c)U302+4msGK%$xi_y8KNijkz zxbsBE=7W52etyXp>YLhB?Tc0m?~hsN<1J_BUbv!niB*rz&-ef{`nCYU*lF5R9q1U~ zrHy6*&=t^~GZ`TCbQJX%U|ReUmta{YQ$Mrvd%^3ND$5@9NunMIqJ}7-)!m%A=a79e z-fqZxK0qc6%mS{X6Fl!df3XpFK*w7>4$)j} zJ5XqVV=HsV>gc)^f)0K1U+^*}LW-hTG<=}Ae$achuG^c7d2pm4CK+37r$*=-1cs-0 z?+4FnjHX)aoPnbQJU!)fwl-G%7hc79^&ScnA)NUsq^|yOT_mbB$l4Ow7)b=i!s|43yTAsT>a*Gl|a5GXYRtk=(MW! zGDq*_-{&!s3qQZpf!|3d18Z3cpwCWGjPbsVXVurZ#Io8Eyi!H3JqAJLp4pdu^evk| z6j2B59&f2AQTue-z8<|MqG*2st|p00mUq<%V+h4AD}JbM7c+^@R?!KVrE#Y-L1iC; zesk@ZQ)ADr{i3Cr(F)2V^vR>ctM6IV;!zfvagHL^lkOikVV}L^iY}0l_J8F-`3ZiDdxoK@s-6N~`o`9twVGa6~DZbnyfP09^d%aos z!8~?l1s`@Juk^TJnK!$3NyjjH&46bBvXT(T$ zQh<$JP!;YZ?bV*W{*?;)7AB_cz#aTpJoWFKV0a$5ZOsJL_wRsqc4LB3iKL>sG@akh zj3km4m5zMlA{lbJnG2w&a#C^ax3+%)tEaVOb_t&)-OyMU85$FkQolZh0eT`?F1<;X zG$ni+Y!!p|$KTcy}oPcQC=m>tDo$9|;NavFkpRt6IsKnZaQ_xd|e z=$jr8Q{`onwU(m>G0Td)JA3q{`YsssN1{df`*oL`q$)Pu^h*~er<7OW+S&^oDR;iV z-O+57UhP}GsTIMloC8rv;pf*h33XunI!4^X{*Pwf>30PBA^}LQ)9p%sS&OT!+~nxf z?SG(iAQt*tA8slFAK)danBb9VLy>o_OESZb8D>_l(RZ;&rP1rdyT?$_lYUFWdZ6qRafUX1L=o_K@L^i(=d~qnW;cD4^Ght~S&CIYMVrcM)F$EA zj68L=qX&?~G7;!uYr#MM-usI0co8PCvG1(*L!nr*upY9b`xXPWb2rhndUzEi{Rkx< z;}{VMPIkvXkh$5#!$?~lc0qS))>;*7;?%3n3qF@Lh3}}cihUV{v4DYqgy_C$7EDJN z=##NtEcYIw|NGC}bsr5I0CX;cS1We8=~s1xN&YmL`hs7+jF&wi?vcPNu$DCR<8~=0L8dzot}T>Qkfwg( ze~bfckj6u_bI2mhW)Zj=d1LezxUhB%D!yaD-M#64lz^_GFa17wiF+qUA+X#~z<-=H zlvw1Bi&jwUz&bNlxX+Su7xKiB>8E+uG7eU|<<05c3}BErns=sB#Hi+$-#H=#;__>? zBK{&)d9Og6GF*$e1pQegoDj=fel3>u@d|pg=W`t*ktzV{)Jh|z|HOgy5PcJFCOR`^ zji6}^mQGl?hD8C`MG`+G(~txD*o4+--1+0cXwNaOh|)%5cHT`%=Sw z$sj44-Ub|%S!q0|Eox1YZcC3)DaiB=hqj#&*aOvw8y^I=zQCfF0Xji;v}KWg1;o-6 z3427xi(DV!kx*z@rXoj7>^={m(@p96-5qT%`e;Hf_W!H`e1EVW`CFcr6GSn+Sw2gl zV(IrHX`x_Tc)*K?n?*6l{DTM5(MN4?!Rx+C@=`HAi{L8<9q%4vxqNx{=B#b=E20CP z15t1HZ+FaoKc*u5_(n1~(sN`dk>XmVU5afP2Ve6T!aMgigUXNN-_@0Sg42+)1k5gx zNQ@G3^k;Apz66BYl%$V-D};k7KC3N#x>NrEz2mwGryi|L%LM!Gd#yT*pp$H8Raz(c zg_c=4!>=V6e_%A~l^3&IY6y}M{<~EeC8bEK4h3a45mqtVd7J}&7wk{2~%2jrpeup*V%>ojnJ6W zZPf1nV<^>(9!X%$w{>ylH(us(2^Pvz!*}&UYOX9n8^8V#&}$C^Cyv?t3LbD5$RS=2 z(r==6(^D&q$Z)?;!!up*NvK$equ)W|cLLaCljLtU0$^f5-Q7>X3I=26#J^x?d!)iQ z#dzK>iW@6a(3pxlT^IB=;9MYe6ww`_BfJ=*ycIK~-|#-_DIlSL_0G!A`cgCH5)a)n zt=)vQTQgi)@zzHe&9qaR>pJ`qv-bQ$c2zYRt!PX@&~gMgXm*5j<=ryzn=m0-#C-9_6Xn3_tL@)9Qn^r=?1N+fL^iM{>Zvz z4Y}}~+0R+;DG?f6>^f(ZBVp~`3gAaT42|-Ju)PP&AA+$`w9s0-b=%u&Kp>oz-TH6q=0_td^bZRC%GhA-uc0OY zF~o|Sj|I$^m_x*>A)|`Eo#Acz)Z?SAZ`3&TR?ncfh^7>N^;^(=?iyA;64C~sdD(cW zKCCp${(jkPpOI=RPdm;DVXw<5S1{{siH2(BUjf8JD`kyF)O|CL7h>~NdY00y?+e__ zvJE}xuFQ?UfWAL&JP6Xf!KyiAwriI!O;F<+iNbcAD)?5QVaB?>*@v6{qnsbhR;cW6 zmw>+AdCmSXz=Y_T*-6d*AZ=BCJs00NGXFGu?#|u* zk7ehBD$btLlj6#_LAFt-qWII{b6u#Knoz=>Xe(TABE7RQs}v|I0)s2yIQD&i_x-7M zZ*IG`W6%YkJNmEaM+f-jLm9n4_#=TiK~|MHag@h>mm80bWKG-=EQMrX=5 zEzbs+mqfCWx3G=(e$T8dd5%Ziz;^=^z+y`JkPyi}Q6wu>;2M1O(C&I{Z$+UnG zh<)HI=)bXL_~X}a%iQ@~2P?c-vRwn2)^;)*;=lEX^c_|uw~8omVDnP_al9uIQPQ1U z#pD4ERftNr2Y=dEbK{CSm7;5y!MujY_?*-N&Q3{6Uj@)7iTO7SFu`}cv-gzsuNSKN z-u5x4%Cs@bIrN#M7f(b5Bv0PqY$ZXWssYMF4PN}8fWsPV;no;-;R)rhzqb)u>YTc< zFhK!Dg!d~g-7^oMy9QbVn5cT*&wb7VP8vXNkl7JllR3HXVF{z$Y2WB#S<_G1Ny(h!PeRnNz-T6VT* z(>Lxw8tF3J7L^kUHE{Y(`00hsz`mzfBfbC#V<;$DyC$T_U^s0msSp)lE-Y*=W`(kM zu}W&bb%HMXP1ucdBL9cqD%&GZFYLw*`6&-m;PKl;04Fv;hvU$$L|XNE)x9yyy7h?P zWc=g&6wvp@=bYi%KSjXBGAq4ri|l^IR0KTzW5-^xkyTAV$JNoUGWQKJo%~d;lXJ#; z^ZCFsqH4A0Y=`vT;ISd9bM$ObTmMVXzFG09A7^C6ZY010o9Lp*ep{Lr&HFs?=K(?P z!E>_KV4PF*X8@^VC0%gM>o@N?UmES5_QrDi4)Msst|ULujaK=cCP7V` zjbr&g!077J@Fj(WTOF!9wa;jpsk`RfY+M`{pqv>q)R>em#d3YpzsCYR2JI1^rA%`w zUYO~BpvF{7euLjE$H&C!aXXz$VSyg-7bVZRo8dmTKU7>fahzKDQT8qUjC-KUMM!g9 zS^}Nrc3^IvDXQX5=pp4qh{@7uyX#m&fjiXbJAO-1sptsvRj7O?uE>1Brqm980SKsLPO|stsQrPsDU^ zfB#kCK#@Z(79oomS@6$BXG*y^`y-|){)^C$FopguKPERik5zz5PD1mKLf6Y% zp)VveV%^`u=JE~?Rwn)a) zqvQ7d+eITTwZa_e8$Q1mf$u9U#NQZ*-L`~0C@eL*segz6B@M}teT5}cxj~!;z4kER z-pLi6)`|uZjbXZSU0%KYPls91#zXw@;=fHDBsnog9r1wOtzZ>UaZ?dLrgx zM19V>5t2F#4Oh0Y4e)Y~@{w1aFgUd^<^)}(nD)%v<|Q-Zb8_JETJA055}-FSCQ@7C6SfJBj-# zefE@r{u_rU@k&9O;kqXh75-u;k2HXx8aVEm2}gZ2jOws`Iyi5}fp^yO+!)-Fw(VZ! zgdPW2zXxtI*5iHp0 zxxH&1S8#T-DIn%RU-4B3R*{-zp+#pmf-g9Sw&>I-;(nhaaKWz^m%k22{i#7KtbVR0 zoq(TVZ0GAj;!6O)V`3q~4zrEV7hr8eJp2sV+)7{d%j!yGnS{F`!-)hP`qaXlT}yHy ztz=I9i~jouF8A>=0}6(D4l%Th*B_`!FUhd_0i3AO6?Zzy`@9@=0xL?@2_$na?Qs7n zAt`FCIzG|IU7GJ_+o*NBN04(sH`7(IR@iy-{R}d+r$pEEB4>*n+-|7I;hQZ{w(`ND zQ`^}V&r+W+f{b=D3#6Mbv`CJauhvDPsej zV6zQLOYW12Qqj%KHS#WFuI#;Z|0JA)PW#2@;<}V|Zrv$kHn#i3)n&rpddR=K4#?oC z?zn}%9Khtq;GmT{GE$YDDVQ>pTx^6YZXCjPhF-&*6Y6IYyJwG(E#9k(H z+wOm03WMGvTB>kmEFu)RXo|z*5rUwuF(x9oH(n1GdpUn!I5x6CEnmW;8SjFYoWK1$~*TtBc304)rPu6KcU{^m+}r?NK%&35@r^*QjL#e2gZh0cxAKmt>AUoac> zj}^1Up}nf{z|A4`d@XcsYF+8zHaZu*0b`QmTp@^O>rq_NFGwYQ#6bn)}4lkhp zWLpgy3@PsXq=vcth$KDux%XMoohhmz(F&{#FkN-^Z6kk|4BIB=b0M96C4B~Z-6@lB zwPzZCfDU~Mf3PdziK(Z?&@>YhSu05MDhC!$CG-xIw@5oOtJrYv3som-Cl2Lr2_lUp zm%^(7Y|?Cv7-pGNiyt&Nu5{*wfhqYt;!M(rZwfp}aZpzv9~`_r`DgR5w6Aj9A(i7> zUAMnuvdga8zjIP)mKw+)FIzW96bf$P@!7KqPLHY})>gnOt#%g1W=3@P!FM6oSvzD- z-=A*@f-vOujRoIeE)8@qj5oa(-@gDJw)KnE+xG`jo?Jr{XkCOaLH1B*8xEJF@rsYM zDy{d$2+Rp$+FW_kfX6?=p10h^sm}Dnl<# zsO%baXo?^0Ov60wA*(2d)=!Y~8REJwHZ@T54iqZ;J0a1nST{8!9y|cT;#NJ*?KskX zQOJhX<)_sjDGbXNb=9=XQ6gRuSkSe%p=7p#ro09;5eqyqv^>_PvH3)6fro#}|2`{h z#BQM6TtU?oQ&h=EiSBx1FfpKX1NRx|@MW1Mi^vv`?p#ItTyl@l=$F3sPm!)~tT9ku zK-bWt5#KnV{F=90fXSjgBi~2f?16rXwf4amiX()Etr2DjugE{zQ~E0r;}ze;?As1_ z$9?f3W9Ek>L3=CQ`0=^Fj$vZ|hK3s9<0 zu~Mju)}&otuH$+it34SpOfAzFA@H}aQU`~qSx1CJhJS?T$J9=%TZn1G*vkRTIL-~u zIu#Uy!#TT^Twb~mgiO{scL@tp*;KX~#-NJ@)4|#0eQx=?-bL+9-_=G`#0|$wG?AlMJ#yzU_V6)&Va*+QsJz*r^IQ?X#lVm%wPEpSka3fSP zaCW7Hd+kZN)ZzdcnDnA5#35qyYRW=}lLY1EZMFd^GHzn)u**~ihn)6N# z;nJjI`Ic#0o>zY0`Zfnu(tiLRrC~TxYHCs)X?e?!lvnt|=^C3o{8^Vv(p>XlOwboz zl}X$oHt$5a)oJ11o}8ghUPlg z4DBwlO)E!lIi$WAa%K#o&3z!gUPRGzRnG%-OG)itPg-mT%cgs4ML>l3CnD==x-0#BZAN@`M@=AlaKj@=nzTOVs0(xjvEoGRx&_)R=eId~RwD3vUMynC5_fvUG3DL5+e5vc5-K6e> zadOt6S4B0r_rZiPAl-NnL;j7e`g?bLYzA6vWr4oZYveybo^C9LKsOe29Y{>WUTZ3` zsywZ18%^_9e6zAVFvyFbjmK2AdLp%Coc68<$*KTR4XH1T8}(w;Pl3QoA13dwShU2) z4)Bm7n7Yr!^<|R^yThMew)r0o_}@W)7LS8I$I&%1S@Tu=Zx;Say-Q&~b?TVYDN1lb zi_q_}GYQGKt5J_Qeey#a^1I-L1Iq;5k#j@O{J!ZAn^W(#Rm~@p;8If^Bn|?8L<~)! zzsIQ~R|50c*Ac&v*QUcm9OD=hJtzO>1i_rOJ|koz5{l&7d=6N3ySy+5`V}wy@M#8q zmK~#>i2WkU#^2zfS7)dzYM&@P{FJcck+)%>c>>)vP}2RqQnmEbVp8kZ z4T^WSPj172tUtCJ|fgQx`0Z*=tk3lRKNV^ms2X zdUqfr%o0832b~eP)zvkq^HZt0DP#ALXEF>GKAXC8#Fg@7NEIgzpV9S7G;gpkADrm^ zR@AAh_nQEiHt;^?Cj6BdH_f7aDKX_(i;`^0we?PmNmVLR?hSfkcU176_?wjRTZaTu z>^wM3-^{#3aStUXfteWLF^3iW(uKTUpdAHv20^=6YFH4-1Ry~f;zO_}|GK$(u-IFz zO#Ph?*HPE;h;X~XCpC>y74(B^dA+|Xh=%^$_jYR$nH4E^5BUtX7yxU2OE0ZA(tslR zKIj0OJ_F-iud6$BPUQ(q=&+T`_vwyW-5I2kJnj+I&AeY((P|o3HH)DBy#ZYZQk6T$ zht9l9)RMcVZ^|!k`EuZ-Hk|pIip;XqG053s5J8&SV@dqw$|81(5BvLCqDtmyDJl$os0%NbdiY|0 z?*VvL@ydsI%BqNACwauhK{!MFam;%dgLbRJeFeYPR?xrdv>wCC1Kv@UG3N)%Ii^y$ zd)l3IPjSnh%J-ocbt{m2lxAK#puNwtQ`RpbzW(n8N>kts!$l3?>s#o_vu>Z&iL z?FMMgjj2AE2>((*m%twG2I#f(r=$NWM>0aB6mz*Y7YVc|Y9j1s4$2TT`pja= z@~=yP|B6KpdklP)gKhXmqPV}r_l6NY5JZu;x)5h$8!UK{pH_odZ`o0l;w-x4fbPhZYI3SNAp8Q5VV9E0vdXAo z(X+zVc4MN!q}R#VNrsRMi`;+?Z}VP=FKWb6lPg*dw-^&GuvSd@q>mVv;T!KfoQbp=Kd(Lwpupk0tVT_W4Fh#DkGpcJH48 zT`?dAx}Gb*xzKpQ9A0uLpY9jqCPza@Cy~l*XxG2%wuT-CC@X)5UG1ORPOHN<5+P5U zgn`n4d*1BhtCe(vcPM`IQ_AIG7k&}k?EXwSCtjard?e^06;%lwjn53Bi7yu61e)Aov!cRXMeqeL}5_tMc80)c*dBtEYRn_ff2tcDVy^xCHeo%GO zXIX}8ZlEM+<8m&qbv>e;yW(NMf)40^8>8CXq|}u#Ji>p$mH2jo&viu@_nvo9^=j$l ziy9s>$O2AHKxJ4?Q!Z3r!=eeC$1cv{eDj3J>gnHeqv{%;ha{Nx8hHBo71?Xa(g$?D zI=L|wPrfj%2^n1In7HpU+v!ppDYs(RS74bP_ai^@{}8w1wI0laFFGP=hI%<;doA_ApG1@J=D*1#?Fe;#*a`V#KP2+TBJZQ= zpmJvYdBs5&CnUwq3C&F_VTT;7*^5_PkQvRir*{^eDmVe-?z@^_oP0u+f0ZRH^R5mE z23l7hHUS^7@vYwUJ748J=?`MBEHm%yqWK5i$q< zzC%#opR>YK(a88U*8u4$i7=71PJ~}PHh)DdL|l;<>PEm5;QN+V<(c{8*M*sRN6b5s zRVvS!)CuhklUz>Gc?Dx8=z}@y=jvb@M#qQ1$ZA3G`5b8y^O5F@kQxD^U`f-d{|ya= z%^abK?*Ugn=Vo@vO@S?^wn+IUf9jsH|MX6ZC`g-VMxp zXx*gt{r~Lq);#8LEnSdHhs+o=gCSEp@?i5B=O9{I8-zK1=jHgIW5I}DAU+rSBT zo*KDp!GDF=x(oVOO{gB)a+^JYLk5irt)0#AbMBh(YW9-%X_J~BC(peW`i$Vm*7uy} z>U}}VCV-;|$i;%2x2;d1Y33gFtLSImj1-16s$yx*E1mgBDbojiOpTU*iFvkFyX{F? z8bwbUo3O_+ZAs~jtNN85 z?`b%BM!R}P_5O3C+H)&`>TFpHrgwO?k!Yw9XTOsrP<|`Mx?gY#sS`ofB6D=)!J^ zk7O{pmTYTg?J!o@9Ng-E)cIH~sqwZ}|7pU3VwrC5OT(g@{&d&Bv zkrD>rx9@pwXlMfSgc0XwKllmxVnvo9K+5+C`!BdV;@H~|sm z^-$dUjK*VpZd&F0J}zsYl~6p5oUg)27t6IC#~%F)y+Vwbz_d5}tI3D~Y){QX>{~{Z?b+ivu}~&suUi&$l1sL} z=?|ob`AvW>kF1+XexB4KF?{h}Ob z4^#Lr58U#yvEoFeeLrNanJRU!Wa-J?hZkda!v|H)X}OmHV6z!i{Js}%5Gh2@z1Go# z-%xuYHprjj#+3>gm|hP$>l5paW!r)viG9T8OheeC6reYTQmwvD+5G2Epc5rb{_3&Y zdd9|TBI!;Q?TMW9h%&&N>?R0)AL(~gWFvRn$Q8v4E|U9J9j^vv<#v#=54snofkODf zZCj4vEHwVd*(o)n%9;G!gw%{Qa#WKjPqOliM%~!0`&MO0O9iaPA=l$ z_bBj>nY7S`(4n(4Hb3;UWz~L1lffEv@+Db{InkQG`B-fR-26D(;Y`@T%+4Seat(p~ zgaZi|4`ID$1itmuel3?1J)|GsKos!(IF_}FvW)dREq%~OT4aI1S{c%-ZZalw55zR= z2Yvn1IQ5SeNt$y3@z#)oJvv1?TmE;KD63TlHyp4q{(@~!;J=L1j`f15MW#vPAlgy| zAa(RnJA4W8oqjbAeeQTflb1cQO3RX#?Y%w}?H1ez9al?Hqv(lE)T+z236R%5&7|&! zQ9_&j<>O2+ncPz2&oq9Fw8R#4l!h>@CMUzWIt9e}p0%U?eBsm7`eVY9o+;OYvQy}o z8Z+cWZR>op#tZr*5tqCFwB7AmAnEW!_p4L|JNtJT8pO*X>P^Y-Y^z6Oq4q*YynVjzQNmhNDw)p(m9CbOHK5>a|KX1-mX)zJCGUODAzVVTT>sRdY|=I~XGpp}6;-@tw0gRC zQWrmpyg=(_M=Yr{Gp2JMI6+h8*h&+mIXi=@sbW^+(V^$Gf$Jl%b(jwmRt;_hT~>9Y zNbfpd^|O#x{K8Ez)9%=~2@HCT`7S)A3$~IPQX@twd9&jBpFqsMQppwI1P36FEJrqI z>XnCIlVxv7LAw0xzJ>)OixHOF=OYgr(*zxJd8K}chdckV{r6b0oa=gP>}-=uvNEJX zMcF~wQ)8XnBqL5+Dx{qlcH8=sK^yEHxb6ygE;Dj9#mhWeBo#Mg2w67Xl}$f5qG4X8 z<9zl3{oko*ZL+!vLqa9lhRXv^kMC)$rP_5lAD5eVy(+k<0*j1@#Y0iPQjEaAF+Pq6 zrxG~ovh}en&=U|(`@5ml*HfS*wOO^^N_BUh^&33v8gw~Eii97P<1HUv;HLWU*;5-i z{U5{$3F8h_SH)YtCMmHt+sYAsPg{Y`TO(C!Hd~?$z)1MO&#YvgA`8soXPgv*eBD*M z?2Tc^tN+QtY~ms4$%0K(B#@bl6jAfcitV`&HJ%Z}8b$*HTZvnI4liWXI%0EHHyAKE z$|y~Jf8xWTJ;8xZXbeTPaCuCPu;#Chuu|=v0{cN!s-AY1i6r7nRG{YwB(p-DZBb{J zJq}ArUL~T5%PqEg^tZhHm6XHsKHzH`&?LL_XBpp2PC8lJ%&KL>0^rP53~YK813O-p zSEDA>b*eMYUZ*o)Vu(bNiW5aapB5X<%;9z6;l9H0cPekgFmTk%1PERE-JJVAAM3A8 zwe&5wKgf>GIjxCG_;yBL?s@~p4u#=Z18l7m)6Fb==5iO`epUZC{#6_FCU&IbJg z3C=Tvr%f5MIR^?-2+Y3MTK>X&eIveEQ&nV1KnPu7b55gbGO62s7WxVCWextO~D;8BqT{mQIB-=$ZzYH}TJG-$XM&;D*J;~#FQ zeW)SRq<*+^vH~b=tknv-Q^KR4S(fvC-F*X} zdi-MBpS7T4t~LQf%)tJmQ(563A5n1-%${;4vy=QX^PkVKOG6(tsUrL83Cv|NLJPRC zzk;3ufPaHC_1>>X!k|Ki?-Sn^c1t8kEw}Y?le+cHh=#9*g~Kt zYo_q5br}kPDwaD+VUCw{_dO`Drb+2p+ToiP^U&|Bb}9q>QAZXd|JX1@O?USqI5_se zU*r67ac&MNc^qwfi9rDQ;CeC<%m?yLOV^pA{8L&)?k+1F@yL#TtT^dI?bj5VQ-vzXkzY;y7q3Ho+)vde^Y5dK$zjm?IGilN_UFgC? zN9$|w8Kj}w-*Q2pB(@Oui}d}+}$@c>_L1z8r zeLVJHUttdCRG+(8J+0FHz=9I=RsD1IL0&>GL3Btt*kpr-KqvZ~liKq=%T_%+5Qc_r zq;~bT;dCbZkW-0$r6BFN19ZYBcz+E-SMhB!#C=^rN3)tF@rRmR)ix59a=4811f6cW z!rPQoy=1pkDEEY_(TUEz+i&CT)@Dp0^g+T!)bOUD+Ny!vfGGc7#^74?b`c2>;m_k% z35#tz1#57X`f=w<0j~WEicy?a<3L>n7-z-bRDM)|-r7 zx)4@MK9u_8n>eB6l@74;gZP42+>!R?B97>Q|&{j)%8H48@a@RJT7_&TPU$%47TCr6x#K zkYu!h()%Qy=06lKL-;#P0^)qVB?x~O%X-kX->+KjMNpGL2lO=M7NkR54~!DDW%_jO z)lS3s@rKN+@d4AdWC6bWU*LrN;OkrLalVT(=6=wS!vlQ#lG4Is?BoN|S>M!ivc4KM z??qKeD92X7F;#9dvxELuz22boHg0t<9SzB%b||trCU?%0z{J+`@Rd_dgiNV{{BW9i zC*YrI{z-0*PKdKA@Hcl;^|=$p1qa@5XB znjCK06y<;c)@S-85%qq}vY2mJ_3duUC>-xYd(9TU3sXuLUNsK+V_5)%aY83oT;lJs z+nZmIhkUpyPp4l^m&AyE!?@u5YaIezLw|h(tc&K`t`LM%)D(FY+-{2&TxE@Me$1dm zf8KAFW?bjCh19?eZnLbZ5n|Fb16&S)Ddf12e(w`DOb&zMLthFPLhAo`j-Lu9wb}Ep zgH9WNF?rcJgg{=z>3nDu-tUj%6$LVyp=s=vq0i^M)Y;%AZiW&Ps%TkArWz1?j-r5| znFd1~DqDO7D3rt7d_&WF{1J^+F*0~xA|}M*Z=mla>Y3g216xk0#V^Dd{}wxgDpr<>9*v5`jGqu-s5%kE$$IR1to#YxZsgL<*N;t2?!;+>ll6ZV4cytBn8 z<3Ik;g!=(2_B~Kg#EeK`^0&NM`otp$U8-cJ!+s>f17c2^8lYFy2Fv1qmmr_WbE6c| zx4$E1Je%=Jxq&q2xjM;`K0c;#x_`Ow;b5OtF@wwJA47IW00PU?w+#c|S!Hk6`&`q@ z6bFDkqcn&ovBG9wGh=YjQ|B_4sL>q~1S1murB)$4=w=G0aQX4+2HNLSJMpN=!rx1euRQ(d;# zt|58L%Ez0gQUR+(BI2 z+l=yZ(+@MFJa}28%tO477t=o5*{x?zpx@Q{0{3z2ed$oxP=1bE(+W;^WhG3Rq+lxe z$B&tQ=9mzMVMkiij(o{DWlknmH_pJ|uP@H1%p2YcnT#H&EgAj}1oP3HwK+#FRAO&` z$U*PMO?u1hv`Y;8F_27g82+m8<$#>*ocmWS!tvSzdYH!g5Mh@5>k+Ws^DD&Oism{J z9;iB>#FpA!F(#J~!hrHdip8&()?C3n?tO&)b-*JI`Zl%6cj{Kq!j5iJ^%J^P<%l+H zxTuAn$57tehGL6Ky`u1`c_kEURp!UBqp ze^;19zYNK$yB+j=uC$GL!3r1hJ{Kd+hB8*lSFYJBw56;^lY0qvJ^R{I--9xX!zb;D-Y+} zhLJFiq0`EyY*>`;iDx`>uz(xrSLO_6&AoCDe2hpk_rt`nru74mZLE*8l>q-F*!t{p zdo6!QJvumH%*T+uRZA@K4Hzu6bI>oXd~R5>6t<_otVFgk)^p^*{*x*Q`= zBJ~-LgBI^5E--MXJJ_zm*G`7vE!K@TkJ6d&aG8Z|Qujq7Wa3q;#vZe-iVz8C$d>w5 z;epC?v{vy-upmFZ=dng35&Gf8o@>Lb1`T>|YGBdm1Z@5y-$whiQ?uV-+|_mR%MawG z=&Eq+#`ZQP(hFJZJ_yxe%LUX7nZL1Yu)uO86ECn(qY@!By)hkF%;&k%-+fc(PB^Oi z6tvw8y3r~rRFz7{O82~`+JKeM*ID4mOjzk*RmrxcP;9O3F7OsfPWk%fM)^8{T^+#H>IOFfkZ!ds5KFf>G24$n+KvsrpVi+;r`p zO>;6}*~bf;_Cm|zXL00J0av4jBkwF;oKu~@s4k$WpMhxN3B$PfNyd_o!rhl|n7if# zrBbU-M>s{+N4#xVpf5F}UrneYh&Bi#(U2{~H9}vqiPB4L%eA6XO6sC*Nd&yq3n!-2 zViwKT0TTK5Qqex3KgN%=5{>wo=V^}jV+|&5s1rx+!7xPZ?B(4oM>`$#Pb|7%o`R!q zqHJr{yqgw*cSY^$K5(H#|0ZenKKHtq5))8>%BQehkiV2>>&`bP2J|HkYm$?vd0N==paJK?D}Iiq znrRg+SqR>V4UN8u6g<$hlL-=V`?%=!`4$t5BnTb^X*TY(dE;Qmj9Q?fXrXLQE|pI&Pha(4c#ygw^iYW;6n)S*bZM2ls6c&A&|kDnE`jI z(KPMb9}CBJ+VvU7)IWrhvw!E=q{L9FboIH~L|k&%~c8J>YSs6_O{sV^NwD zC&bZ2iF&}_Q-AYK)!r&Fw@(ydAhbK&l`k=9My$5Goyw)K0CcN&Bm71M$2Gi+eyHL> zHft8%%;fu|#Sf#E=w&0%6Vvj)xdrlmO#YIJBW!#`{14@EkTz7Hz4TamcJ)IhDK>yzqBB@Pil$latED5MJ6I z%MaIPm~WOPJbe%2kchw#*`3Ww2e?>q_}p*m5R0a@-g1@*i}Y<%VRWIFAE4V6f*!|f zkj(001t-|dt8x!`5or3EDI^PNqgS1G%i4SQk9Q3hkxAlr@wK+@re*jrfXxit@0~?F z`LEgy&QNKPNEmgHywA2t-j#ou>Dy4ptDM05rW#{Zqu$Aq+!EZW)73rFA8s1Sj(mqw?0h098r zx4nbDlPK%>Z8*YJyK;_OISj{4hxKL9^jVX@4g6tB37h>Ph5TeM>(qOL);bb4qW>8` z3*h~w%yw%1mh}461FPSWNMAsNhOy>k?%9|<7~y#GAHv@>ypGh^&J5}v#qRrD;VE_a z&hhu4c}LG0(%uOMPg&s$?mc03G#CCy*)_J;)osxoCym|Mwr#6P!^TO|*tTsuZEPEj zZQHihIQRa9^L{;F*0cB7YhuhX$FRLtS4eRnLk3Ls!1$>Oj}ysR8hv+8SI29y^n3Pp z4f-S`!@%0^LH7)aRw>a)N^OlGv=xt;Hj1i^!l7rh5G1lgDzq8(DZHn5Jh3%nIr1yQ zCAluCiKjdT?o(oh!*BMoM-qg}m^=@Qg=C>Ipv8JSMfLFdR`)>%QFHhm6VT$q&n{&e z%T42)v-fDb1snT&xWZ?ndSsF%;+QN?Ql9VP9mkk#dFgpos++6>2-md@XnWc zGeUxLRWeo&mU^gwCT&aj0qsB-17WDg4A5V7aPih|F6YDn*Dg3;nXzc4kJwl}qWi7V zNDoZp+42{^#;_~vhe!CU9Iic z<5Ytj=rxy5+Ar0tOdJi}s2RLJD~kqtZ#(U!w;v7!*KV8=o&uu*JS%aLmx(MA*2(J< zG4y~g#Q@o=l^fOJ^Lc?3O9G4#yPo`N_P6@kQCdu9Tolkd35^lTuwXPL^db3uJqCbHzctHiiY;^>=-=wzQzC0EztyVn} z;jBxQc`hXpaE1Y&#OdTZYBmEz`A8C@#Tqe_Bv&zqazDyTyHZtEDicscE%Q(9W_oP%->0cT?lxxX%frO#C zw0~z{6{&=h^LxKmt*MIQ+fy{a=8HY6C}p3jMtRRMV^fTZP&lC0yog7w-hPCZ`v!Vr zUj8iHfT9&~=w74gO+=UIAwe$ILse|GufnYZN#Z{1Ei(N4z_980IX1>Pm9BJ(+_Z9U0EyMd?a>tR+g$N6e~$#)N|?a+@rmT%mN>%Oqw`yBgT=u_r=B zpu}FSKpaA2V$}I*b~X$0!G4-4!NbIXE{CHiYsb@@w_9byMIwl{&}90ZqL2^0{=jak zc6&i*>gkD&Qbxwo>XIBd%%vKyGOpXtev{7+(3STap;Xbd zOJ^K?E}v90s!grjV;3aa)HxbHz3cE^&U$1+<1ywGEMUJ1s6`hPczEjoq{XJ>PeZy7 z7FP%|LqugtA=@b?1DHVW)<(p6!VKtM1Hqf`8wv0f7qtF!8gW%FLe|rI zNLKl&kS;9`aG+CeYH&=7GNn={=BPETPh|0p+&eoA9e8o`?25m)`P!yQfHT{#i!pC3 z#GfxN+y6iWjA`1lv%ktOQT@}O5^OsB(X>A3$Fq*5#qsUNNsH;cEf z&gZXESTi8fqiwm1TwgA@j#E@ThglAS>VBe`GEEIZ5sc#az>5H2U3_X?l%}wg;}oqq z)P7Y;l7^gVCZZ=lCY;a2yFmY{Tj99+W@*P%S&aXAxpea5F^}%)y@FG`SJ1TRXn&DO zSO2-HB~FswEDkgMd3Wm;4`8#~{$36>uA(`{s2;+v^?+H`h8IryVHtM+3g4^%I$qs) zS(Q(-aQEkoxsv)O2;&J-W82%sHEk-zwdS%0t|x=Wl>?uRu;U$XnK zIYlDC&jkPQ!H^IWK$mB%&0}(m6Y?io3_`j?OT~Tw0iq3b3}l!N4hdTnys{>o&=JSX zX4SvphKvl-yXs1!AfTUt{0~_pna+>X7a}u%^3>bDdmuZ5W#*U$(UdjQRQdpqeMF^Y zj_YO#IttOJDd$_?IOs`&`~;fy;LxSyOuz`sW_8@(E1uMkig~J7M1=(toO@(bEQIsa zeFjPfzVY`yU%(=;{5J~ATTa|J*rjjKQS0zY4%P z)UgL{jM9()-nVr%Rx|t_UUH-Rr;br4y1~9C;m@05Vv${6zG}j1oNrGJ|G{*KS-xOE#-rxXO@2+S&0hh0Re#E_ zRLJI&tFvsX865AG&Dcp%*zrr6?sHV#Tu(vq8p-1 z{%P+c|BhK)ivNQ+x(%?aJY`uF^qZW`#bhA1S(BTPC7Zm}m!u%oq?##lAb@;uK_%L< zRI379V#!$VH=yL8vNuQN%RsSg?&n{5LtFdj znpSl+pNWnqtUuAzOIHp_;}lExXA)4vFL@AvLauF)Qr;3?8*V4QRZ1ChE+d3c`ug+e zWg7HOf~uFE*K}_5Cu67MAc1d9;{y?1&t@igUMdh2dt zRu#h+{jPBC@{Iv+`}Y66gMUZo^8lE+AlB88v)jr24*9(}sSAL1@UwTu(*IU$(aG-I zUE24v#_k1ijE7xDTDj}t6ZG;nYHt%xfxro?lxFHgs<^Bq$0%{T_^CYWMl%|Z2KoGN z7yY&9{TIA6G0*xpe8FfeK=%*&K*2^qE?)X2zER?rF>9D8HmV@mmXb(suJc3CnJ;Br z-{%^ec+3bsYkJU}xyd0Krt;di-81oz_UOvq4_oz*60MKGyR6Xz1vo3p*>-{PtvgHa z$s|pIXGw+9j^ zLSO-2&_6Dvpz)-(ycL(amF(v@ApIqBJ&ETKDPN02c3WDnb*P%lol73dX6)5Ro7a?<=znXCN-R(;c- zj2&Ewdz^R1bkxC@e*ji?JSIFr{Lu1p_Cx0rP z<9M3Os{(uA`*;8-*T19J)r{0$V~5XSYnB3z|)zq?gUiD;ys<&q@xQRfC zIln2O?Ckg276yUi5A7_&>vs=2zq;}v&-1B2P0OSh@vpuNHl_PYaC!q(C-nn$YWJ6m zFVx;t-KEf%;LplPHiEa%;|+k5=UR;BK@tS2v=OjRFjOAzPw__&R-LzQRUv_^s0;M$ z6g|<;ThpRV>Sqp+ci^Gd)K~Kr;P!%zs!xP?_hWT4d49xlzXRdD*LnHSofmUIsEgg@G%BC@QpvjAht#4} zQNK<7O#uC1R7LPLNBsAcXEs7z+8CCb%-7&X$I@#y0rQ5J#SN-^Xy-o20S@;8t$5hbC3Be+n`4(jRs`q6WH5tIn zRXFZ0o7uUJ(^N}rbk1B$?Qgk4>*JJSQF%DnDSYgdLLl70$lA&nCe=$=!F(9jT|I5d zOsC$+R@Q>LM*KDp^lmZCmQVP?{ilv3);x+jKrMo&GVPU)G94eJymq0%v*cLwB>84MDs{ckT6VL3Y7~_mxP$?!2c>5Mgx9#kvc}9)2Ybx#!wJ1`Hu#UC)oEZy%sT zin;apB40ky@76e%Om;PhNV)%&Q*Jn1B<59hKZo%-@FKWLk)2GQ40dA|8Zz7;a{|I? zBCvYk1y_GiYKTJZN49hbza&*vaLJ~@#8C~;fzDD4g!(~O7$90v7HVUp9r&!(_>U+w zvq;H}-gjr?1Y9-o=2Vot;MuY3@vciRSme_np6*vwnfE-9s-&_C@*q#Rr`NTd_?a zaz4V(W(~#SqFGBg>{z4B1#nj~!xJ5TQa7Y#w;QAws=-TFsPGr_$XfXg0tsNugpGB( z2UM&#Fg3=5Q}@W%aB5vWHlt}-dj#{Ki&RvYe%-7&JPSt#%?f z9|XNytX$u~9krzwix`%c$4X@wZ{qBx44G#n z3V1~>d?#+OmO@`d=E3&cN5%AMyqP$^TgdpGaFqTv3v|?nV6TQdrPCwI^0Ip$I(u5^ z1RW&^3CYR3p<#6Vt1Q6<%VIuh89i)MOQ^R#3;{T>24>WL=t*=F>zXMqx$ygsGfuA- z-&e`&6XX4&e;A;z^XDgqkomk*tG4#FERL(P{0iZ3j>ZM|U!+-V)()b5Qdxr2Sq$8r z3^UlhqY*A4Mg_8LrSb2x6R9F?Uq*Yp5x*vq@5(dGmEU`Mkt=4F!eV#kmldqsp3wlnH$&=vzBc_IO6c*vbu2Fs2Ncv;|}_dF6h?^Qzv zk`#e0YZBlQUe*6Nr-WlhCXvDdJv(va1vy3)-a?Z5LzEhqac=yBJl!GM<+Z;xllgAP z8^f|xcK~Zb{4gdOdZUFj% z1_~6BbWRXV&M!EH9vx+CO<1XqMb$@2jD zn!Ohue?c*a0>ggg`NZA>!ei?fQNu{@1Z|}r=t;u6CS@x5$GbviCfL7!J*;)o*SeHe z?LrMunZDOeesX+g$Ih&XQI;!5kvs5+3L${US<0S?1_48l6?Py$QvRvZ8B{J=nK7z! zK+&3)80h_R07XE$zf_!_KR5D@(AY%_3!^;h9C#>?RK>ZUtX19+xSxBfh;(@zWL)LUEiS+#v9`Qs4zo*h}8t4pb?>}jP zdk8k`SdBP`j;TNJxx0&l{cFQqQPFQESOnNSUmnSaN84mN4!wy884HwxK@e6Rc1UI7 zWmDP<1)UHYM(&TsBQ|@8i*6%9zlPQ8d$*W=D_eZ?0}X9XWG;T?j=9Ad9Lhxmtt}!H zA|Nglc)ueoREdm5i^5MC@^Q>$iIrs# za;-ab;_vtGd8TxlQ6qVL$@agyvUNxUhq);kF70k)Is>!{VlfKRy6#UhVNQ0l7Zbl` z?GN0nl9yibM<(PCQZIJ!$Y~hob3f4Cnn%cDh$m!X zZWS5rm4Il_r;hf%uwliR^xlOf33`>;WSvX~afm76Brl?>3>E#OV3!sl_0PHv1Y$9GTr7MqYJWy)l#6D zXKym^nI+mt2zW{1;|G_<7W=cZl@5D~(lEai270W{v)SneVxGwggy*ez1qzu7gD({m zYZWJm-MeZ#Xz3H&)NwCPUUQp zuJ12Har2;WhUBIq@FTFT@m<7|4a31y%V>#Lh+Kv@Pn|4S|5#U3^M1_FW*FUVQtc94 zudu9K{s1zX7mUc(U{3;D^VaGsv}H~rXhO*6>8h4FqezAHL5Cs|s+l~fl%R6hq#l8p z;7}!U_h}d?FQMCs*S4>{$FaY3od_nj9GMb_7@2z>Su}3}Onz)jw8>_kz}gU&ptSfS zB>1)o=^ylSCd8^SXvd&?Y9^!b;0wssd_PHPG_56W?wK+Xb}#6bYde#7i&?~|J+X53;OqY;okXjVN{yp#?f}9o`$DGmgz8o#eNwaMtaK& z-LcO;TF3r{VORQ`R*VaR@emX{&sNYKG-85LlheF*;8tGcIbB1d+L~UQ=IUDDL*%tv zURp7WsF^hAQz-rHsGA3$H8z_engD3{6_pPQ_1Ny51kJ}@rBiOdIX0Mm#?$MRKI3>2 z(A6UwJp9>1=P-N35PW2ltjQ9-I(B3s2ziPMpr?Wb+={ z2M%cl!MUq60`x+ljMb#_$_C&S_rwj46vv(RLejU=U3z~5GPUh)pLI|4F4@2z#3|a= z0<+#-Z=vl0AK?lv)6YuL(Lfy%BFhOal~r5}${KC`h%ePGLl2LQVIB8K=E-jE@dSWGkTq$ zz!*j~I9DPjwAcE?jngFkn+5bv;t(CWs&XY{xZ>{+OUMkN7nIs^KSw8Wq_irT3*=3S z7m*yCz4)UiA@%mv?*M}nKtnCk&e3jJ^|)ll!>+H&t*jXx9b8#FY7P3e?$QBt4t-#+ zz*IR{yc>s-@V(79w{ucmnotQq#Q67AuSgHm*7kj$V;r4ztmg9=WX?KIZ6Ru88b1oi|%7s41Y9chdKUoGDX{%>7zW;>?iz+2Xai*5#uPPF; zWZwp=?j;x=#AXGWDBo9oVm`4P8_1MYiY2#~$!+T9gh5yOZGMIX&)(Lai$zn|=Tcd} zu%eI1UWA@v>E@Tn?OtPsPX1Z&F5Dq$8lD;nE)#dy3(zpataiirh0T1nV=Vr|XH=Eb zQ8?4Y3?e@Q`}Q1A4SJQyhc=kDj07u3^(EI#Uq~0@<^+zHJDj$qL1y7ZlN6g2tX{s| z!mL14alCs&e2Wx_G!m=qkGOiUK}b?!E^hm-%hD>;1oDg10QZR%+fWs`w7DQ3GYL{=o3fHYB($Z3ZlQ zpd##@qssebrc^)8d=WYON(FO6KIqd_*ciHRFYHoV9+S1echy@1MB-X#+rQT=UfvC;epbZz6b`((3*q>}`z{Er~`M}sd3iFulvF#od7g2ntPG3yq|8>A3C7DEZb#$poPHK_50>u zq*5qW@>475odh!D0f{&)zUc3S*S#MKUuz=r&WgBncARsHc3D<;?6AHopxEU3u1EYVkL}g4dp@0}>?A?lu3e{XT2WT;8ziyUc zpy}KED3V8WM`fS-sEbokNOvBODTGh~-4d@l4&|IzIg{`wu9TNKC(R8B>URM@mUfOe zk=t^Lu0OVc3kVeXw*Qp8ghD*>zW;0hSkWlZ8(`Z;sSmgA{8$sSDoqXOc`W z^UylOXUFe!X#<}@zfJ^i#uuEe-`8T+9&Q3YF#^60xK*0#S(&i&OfW3+6Y;*=o&{T5 z%k{Gdt5##1%>w-#{NXwN{rGAjE=|^HuP?7FR^iy}%E!ED=skDOd!QHecg!|qSkyx2 zE-7fUcEVOLSopP8&HCTir}6k=&Y3e;v`&pezxPaAIt?wFbSY>6%WrcZx^mDjm$>vP z(j|?b&m?T?m0M=B=axS?koG`VKxsTCC__4tqMail^+6r0bURm`Ri<%hw=rx+y@Hu@ z;ov3t>%)@wi}57B`2cDKK&Mp& zqE8T!jel;L^u$*}*17YM;h%_&Sa6CJHR!m)!)e7Mu~%|f8#&WNQU0A5tuCAfw7;h) z-s3+XeV~TLfPc|++QnT`Qi>8$ih3fcn>7aA)**M}g=U+VIAX5vEOPUaRoXGX+TGIV zLunuCG6D%5$F{)ctd%xr1~nj2Keu#ysTT0*9ET_9KH+VRMB326?n$^lTEmXI%%kuj zM|@sy0^J)opD(y+>&ZRT-f(M3sH%&d_ZccXX8_G zG#LN~dX5KYaI3HracS3kn@Evq(|w30M?Ok-!)AHOr42#%lPJ52aOhJfCm1IC#(1(| zx%98Y+B+1-M#<#cXdvx{b{@OBn$spL6SRh9gkz?Ue-Q9?Af(wNFd4%!$QF%hhDuxI zVC_{NYWPOvr5rq4WEAi`QTKGGiijf zC#{O8$0Gy^mn`N(mTBM2^3EaENed?kjhQAU9S?$7`pMyrCAo-vtWN;UOSQ&_u}ni{ z+ok?75GCuE==MaZ7@U3G>k;1^7wD3PK_!6*RUJ;BM$1Ik|Amf#8N@WbmUkWj3X#F3ef!1C`iIE+GujeRAIu2AI?t1ibYsdeVSf~ub~x3s$d z!BcbT2=+N^_4mIW+x}Ae%0MJ5$qe@uMDDWcUD>S@F0E2T*AVQeSrVAJB$p}f^I(8g z7`nanPo&1@ejX|fX%LfpruS_fx7Sk#MyTxZchGlXBJ{vGaGfFT^qWGjS5by!hvz$G z9r5!mKCFp{KCUb5WQZ7hu(~Hz6?aS}9Eejj0D}pSR%qe8UDF%$cpQj{noj+R(6-vD zH91&@VN)>BciN)#pK(ke+ohWsQ5}+sg?{=X5)GKVUk$c!i1@7dxK_l>_ba?}TQ=Tm zSdVV9tknXP=+}C9k8N7=p2n$mo4Ba9d&u%FM&FdQie0RLF3_>eVn(nZvoyN`Ny5tu zcbAW@>c2uYklb_if2(DC3@WS)NpWU#xq;E4e&uPFZoKIi1lFRjLP$JC7w>)JrzZ4} za!YtvXTE7eE^$v=js$)IosJRgK|5GHQL+KRtm3cp=$_=mmQ5?|9GLT%#IUM}tnQ3eMUw z9|)7*Ar0QKp7EwU*(niHUh4C!XhP~NhVNVnw;&lV$P~U^`v|xtNLc^zdJFkZ<^i4r5q<%M%dQ26 zjBM5sR6zC;lYUwL!Y$3R!!N=aq{RkU)4MWB+{`3gANeR(?e_>-* zuO0#&y;aYpbPT;0BQInX33JZZ7a0mH#!9|R9WVB|C#jb$fQnPiNMvKAGex*i)zcgmnNi09UqZ{;#T=lT@n^RK=QW@&~DR%{Jx&f8Rd z5^MhcOxaA;H74Te9g_EF=COX$g`;+haJ&9)H!T5hjB#Ws_C%34y*(FiL}BV@eYvpP z@DMpWYq$2sVg}vuIW4=dlC)8lcyOPcQ0i&~hqC)|@RtbwDJ+>dLDFh+6u6$h6hQ|J zUnU7%?S1Sp8o>BUt&Y|=Q~okrCE8{u_}gw=+)7B|VnJE?Cd(BJbi1^W@1*wf=QbXx zF=&~VNgs_|)4g&N<&siPPO_NXkwva?KbJBChvI)2hAewkefd(gB{w!k#SGIksW9yKjo6~Va_5ZR=sxec zAaBEK?y0ZG@9a?xvB$>O57W%_vZfY`lcOzrt|_X+)n}G z-Gtz}vQCIXozlFDJkb74X9+S}XOi_dk;;5$-@raF&rDF5g+&QJw zn`z<5U{4`pDE>sk3al0;GR|h>b2eb~0odl9xJ_36iQeD@-(6TcpMENaPnh|%ot zs&2k+g3b}xp*ll4S7O(ltJW5;o0<^sck%62~b2w+OY8AZp~$?77Da&$)c-fbGd zcR38mffMf&G&wzlQR5_TsIq+FR~#j#8oT!r6pL2&eeVOkli=hKa)}ooISY0)YG9qS zgl09-GyP-kqVYJ48sL>d(qUse#@^6``>oyzntC)Z2SDmHv-L25u>D$ZW+K6V9q>2H z)=2lj1(L_Ia_Y}H=&`zC1^??ZZv*?i@4k3&w%3T6OgICOeOVDIaoD>}&6ryfcb0##l1t zZ-n1ofl-foF%K~C?*}YE91XK!`j^dbP3vbA^k-WMf8v8c-!U(AWPl{rh=~0*%5jJO zdH_RdR<+>UR7`2L_w&>Ii<)oR)HT-@H~&UV^TjwGTM{SmJu29!WqjZ0r>MymW_gAr zQqZs1-*++I-l>>I3oM}1oO3XO{;{6+Dx&w-s~D;}BUm}+t#~&sAo_fYLM#+ve}jwi z37*nX@oML2iA_VP2nD3Goa?a$FN$$gt%n}s&yCS!UtTfx!#pT7UX}(HK{uAF+P+;! zCDcQUM;0{q^DXe$66^7hc6t>0xLi}RU~LT7mB!mkOT{JmmyA_oQ-v%IzzEkQgNZ;P z&K~JrwS$S9KEL=!8Z#-cqG6GTSFM0PTTJr@Bmdj;TO?Y}Xu>=tOR#xZRe$*jmC4Ag zu3?3n)3bvi4XRkAwb)^r+w|uRe-N-}K>WlRv$Qs*TttL^H_!b4Um|9(pUSDY$s5@v zL7z$Z_0`b_a$&%qK=F+z9#Te3f3tg5h3u`Mtg}b_Ecm=jB_)s3vHl{R){yKAP!e(j zDUdtvXjIe0SEpkXu=Mk|3e4p)wZZkpB>5pceILW17XpXvN%?^+sH5Es@?2!*C;r`U z-uq3J{{GukW5Rcn{sB)Sp}zgsCy%s!5Pc8s)%tsg5N8kn!rXrU zRBZp>{kuReK%|rxZ~Y{BF*Qpp=cRwI)mAop%tG)y#$#s9Bft#$P_tpAoF?M&RJIfD z8pjK-18xt&!2dN|+rpSg^_J64^r`=r3;i0*_otDUYeWDN@*m(vn2nZU)Oq)_n7_dP zYBZ9--uNs2KSifBBjRFM8&1&EqC(GI^NxqzU%J1h?8ZHN3Qc*M>XcuTlFg$t3OM&k zLTtH^7xxFb3In`0o0jUp0N44>b?be|C@7vE_F9piC})UGY#4{BG$iNVQuMEgpdb8X zyBD?vH&nKm1^bQ%#izv4BGeIjymhbT(CzH_>(}2>x;ys2QZOM|`dp)K*7Sg@^M_w< zoc&VnlS3W7*ZZU`_VB=rL>h_$3Hc_i!XMBVtu_W$W5l!V&^G5+TGpvrh?4i8lsffX4r<5rm8=Q(i)t-92fU0gl}o#lt`zvFs! z<-q;2L62Mq*)ifjd*7Ws$j;3xF(GjzeBkZ(NnbW; z3wnXSF$lC{7`ys&{`txu_?Y_&;c`#NWzn6EGRUzG(DtBDVZ;YVnXx-O1U^-#CV%C0 zat6-J;0Bu2oeY2#Pa07Fk{5eIEk*RQf42 z+h6&!SKFCOlU@;s2}Ge2tq6tKCF1rK{iA;T_|w=+A~R+Y*kJ6%CK}lS3Aq-xquMK{y&Wy~&w+ZJm z-Ehx`pK6dI{1u#rj@AyD7Bud_SNZbkMa^yF5|f{f--(+Jy{50Cos58t6|&)3!6?v^ zgnyX#GHRUAG7k0zQAUAGH~}ygCZA%6;@Jqf$%G8U}%^MW`S1P-NScYws5lB#$qXxN!fS=g~&DA~)p%W25&!%OtvGft5Qi z$b5r*G~f}d-d0OOH6#R=_jkl*`9Ft!Ib=cbsx-PF?{5Lu8=xZsV#(i3_#YAq-@=!? z+N`$->07@%lR^zyX9|hwt{32>OUSPdXu9MRWJ-*IT#O*rB)@#6w{07zlT~45 zk?Q)?M$MAiLfG)37p6s6| zki~`espZ@cOXq!+NoY*w~(<8(OQg6iRgJu8Q! z$!wv~v3A5QKR1hmLH13Ykv{RL6$QX;l4+*|%-1`!59WXbL#uOzs>DShkx1)wy3IO! z7Ia84uNn{4#@RcA9$u+o@(;L}u*=YA&1g*{G7_!G zf0>!?l{$P@vdGxK#o!kQ+6L5DlaY@M@VjrP8Q9;?~0 z&oK51QXX5=oZ4X4s39MOYl=9bCrj*QLbk~Tb?`M1cLG*?6CX55>1io`IRZ03BF?86 zA8YAgl9_#??S14eY#>^l_iAw?A@`4(4?)kzd7(U!e;PzE8p4V%-#PaUu%8?)k18!c z8C`DZ1~JN3AFI5OhRq|FxRcTc52Z|j7&~Kp*vCowwJHTp-_Wm>EHVjQP)pY+Q_OUC zI_(#r18kl<0<5ji?J9~if_P!)rq%+TlBj48y%`dZ76dtP$lhRn!x{$spX4u>_kN0t z>VQDwK%AG_Y|V5G9LtLNsxzW4ldlRNp{E1&QD{;p=vs zqU5&A56C$*qbvx}WA*87A>+_xf`Uuj@;`sotKVr|H4=Z1SR-J5rtsNymB|l&tSo_B zeX996P1azpJkec>*7X5OJln&zy0_kt)N)G?Z^`4d3p8nXSNfi9 zn8ZBj9wJ85>lmuEK$<-Ar~*K1Po)8u`tHZifdl@g^Dpm?@I%Z^!~(rb+8ZQPpv&tN z@O6YCSkAYUM^z{C|M>~Wr$>s{fVWjJa1K?*+}&A(^wGKGa1kW>5=`9bBNQtGe9NN_ ziE}(>oWRwW- zpwU)7S#9K44nM)xZqW?_c17&C(_x{rJt0uO8aewMvt$TRUsR!CdN^0=U^?2F775v~ zD!!l^$AJEE*`n{zkQafo?c^9hGPoSlPYzj}3x4IaSJtrpOH+Sd*8kP=Q1!=G`^?nv z+XB0Rcv`D=vd}QMz5?eElD;F_<)b2 zUcrhzye#*tV}o58A-2@6cS9Kc0Lf5=m=fo!etZ zWAAZ(Aini1g!ZKL5$MVZtxHXH|B!~Qb`0iILO*3hxPKv(D5SjFPintB)?U*^c5%q& zZla2OHGu&~VK}=I0-REYVdZFkU1$0sYU#UmVv+yLk8RXfWYfS>OlO4!UF9Y+!SnkI z54D_6X5uU-pYX;Z2ccS5a(JkZTx$n7c3rYs4RzEH9eXB*dOD`KD326?50_S_)}ilf zNw1g>BiWw4+2&<&l^<`@ zIK@c5wGKDLk%>y?bDBN{F%RZ#h_{*l8r)XH?+YZ?K^tLCGZ{l)hFH+%(5^JZg)cZ- zYscqJF;oblR)OBabmKnNTFL6Ref>+@wesi^^vb{1{55~8x(>c9bvRw&lWy-t6%ixC z^;%Y0eA}fR5DWDmhS&>I-%>LDg4Yz6jlJKb&&%~U0@i4ja}QerbY3P~?)rJ)OWb!H zuF1V(R2j1_X^HFZ_Ly3*Tp>Hb2L{-=-vG6L~@{dM1Ay8_p$c4Q?+g8 z2XV9k{L~hPP~@bLg?X!vHRx8;#TA7T-^=K(CX^cl9FCa!u?glJKj;_B4ZjWCxWCm# zqNQNp=Ad2nU7L;QkuUv1`&9I4}gv#uKd53j9Nz`6am4ZcI|4wM=Y>Z-Y; z&6sY>BRqT4StfYpZ>==5A@xWZ?5u`()&V-CSXn=4iWPxprpW)x&=Cv0pP9Krx>TqY z?Dg&5&RPA(Ef~K$#*AL0=)~LVk!&$45}*$~&z5)eb6~x@^1FlRP1L~F*Q(NuR9L(Z z8ibDnLeR65ot@Sy|8R8=wa?5c6suSBAlRy>t5uBUdnXJffxQL6+QL3NjW*a>jc0mO zJunDdLGc!6i5e)~tt9;Pb|uB8Y7qsicOJ1&iWR$Pw*Y;%7#(7kw~fDmS(f<`8mSU370EY1WM}kJZdu>9XqSZWyCjfpwV5n7MhzdTg zIO7ZE-d%k+`^|~4%foB~khe(#eF>-OUVuAUju4EBa+rHd!6(=mP^9N zpx_Ki1?@A12`%+oM-V+L!FQ;CQOYgRn(!Y0T=d~Gdh2yCrL>q%UcO%)1repF%4!wt z!{ZH1Y1BYR_NwILXK(|5U}=>3yrz@#Uy@H$B$+DB`t!sy8eKsow^vtaJQ@(rQ7byR zo{yiNB>{$Z*?;g#ntLp^`_X?vtue~~sj-`&Pzh~U7{soi1D)nvPA_XPT`S8c+9XJ~qdSA}GJ^qr67p*ZLlz{T(P<0YT2+v;CzzV%=b zwMcX<+dxM^w79|2Cg*A@=vAf`O8_b~J<@`=P4xTj@cFli!<4pP-yY!}E_N%;tvR)X zm7NVlB)@X_2hL)NXSgFv%aqHB0@>&t#ic5g2cV z`68rQLMFXNSKw5`=`kBb-5qZiRpbt=)Y7?;h!CkJxt$bNle^jbcSl^P%e{EltgP<( zseoQrr!7;X3TizeupAxHG7sOlT6)4D(KH7CiK!<;vl+`Bjfl3^WCG@_t+XK5HVpk71fw2s&(R%Pm#9W=UTJ=J8JJ7_oyN z-kTMT5L}j5tyKZ{ffMQwQtg&a88%86Ma^u!`!^W4x#x8xMq=41dCgKTa*W+}0%P3B z`QEfpx*#JS8|Dr=++^yC@9)2R)h}0dN8dQl^ZcOu+NFNNABZ7&I4w(Z!D*o?6sXZ)Wl;fa*8)CVEx^($cKcevKtSAqr%EO+;>YN6go_YOC|`2=*FN1HbUH@F zk3le^h_WBSlr^XU1i)2b`i`z2XPONK%B>>M#d}u!`)7ZUwl#k7SNw`}Pk2$Fevfrp zD=jD@X|J`!_hq~TdYqM1kwsR?3Ucc^2{q_iinYd$%}s7ra&%k-Nm8aYptEB zm+$;Zg5)%=7H45IXN!;;lC(`EI&Pw-qag|95ZUe^W> z7t8I}pbKZmiroC+*!9dS7(Av~Pf!Uu732ASAA=%n(O%}}Rlf+{d)KmDjS}RuxB&RC zY)#$)C<<1b2cJ}Urhr;0jEh9a71j2NNda#&fk$l5lbPg7adjcDC>lLv8DH5hMR z-kMg;`Il836?$mb(poRu1plB|`Q|#C$OYy`V3w8Pg#!J}5kaB)cAhPIbjU-~3FtL$ zUg21uqxmSYcKjc%zd`RLY|sBh$uu|L)-9}6Va~m>*fOHx6Y_{KcJjz*zxpad)cxce z?F1W_#A(3_)iwVHWJ+5qS9Iab*eujD;He$&iN6D1Ey>C|L{B&T^Gmfrf8tn(T35-| zYSG>u#B=j*xkN!7qA9;@R|hn5u&?Qg=; z_axL6#kCo}{Ik6$<6xlbQcnx~F{5!mWF$ zPC4)Y#H5tH&o%F#X%hJgAC=Ni5WW^)kd|Kp5tTOy_pa+kR0nB4=3-jdK4TXkNut)1 z@>!thmnT8L$EB-%djmA#79zI;zqerjARh^>e^7Tq{r-yiq_!7xVndksIEebSi^t1) zJ&!m1x)+Gc^&)ZSzBMuuZx!>rKp<>Ny&X2qv?2fN-7T}2J_&l8x>!waq`~qh#o6}T zyp~jvxeHU0yk5SESF-3s*f`o+#G-Bm{EvyzPc!-{?^YG5mZUCVB@B2Ge_7Y3UU@Sxw@1y-B3&F? z)AB?rOHsdhOmpI=K{o+Tna=UlDpPZOWR)Nx3TmFQWHNMUB~8=EdN0auMa6)VD;*9#W3(1fZ%eeqr}_ zd;D@!L6({L1|O=AB&jWCyIx|OkoPAH^ljY6e(B;A=$s(%x>O4X54<~+WwuMRd#_sx z*bQVFxu+p7_B^&_4eEWGJr`5kl{;d91!WnffLiy!m|XT!H??lE(dZxJggb`HB6dIY z$4}68Z*x%XHh;ccq9R=5i)Q{EC6ST4H=gz7r@cYQWFKY17HiB?KJ1|r3m$gj5|Cwo zK>`+Cx3p=}Y7Uw=LQ1?}anM^Y9%QW%3~X@M<{edB zhvIx;Yu=uR4d*Ls?<@*MuG9;vKF%fzHFMV?)4>xdYoCSN}UL>lp@ z8E26jW}KPD83W#g0rm|L-YW_rZ(g-|tQ>if7C}e7c(ERueHqrZ$sKTUIMQd_d=c z`2C#3lF`j0boi|roGGMc#Z;m~fj4gr=q_QGCOBIn@Tn5~hBUa`fru7e`TN{)0+hXy z)?9NFcS->NKa#~4Pytm}|s zbxwC&^fYJn2im3*gWTUi>!@J`J*1;Ah0V1<5>ZG``qWXoQ|i5X)Rzp`RN+QMX6e$Y ztkxW5|HLWKtIWaYRD!)_n8>LBjh+mEu_0{rpJAN|D<0cZsB^9OF)fV)Q#vP}VuDKM zwmM=Z4-o9lBM&A*afHps{{#OvV}JDk>1}#)mm}h8XSHw&bVagc@u0F%*-TUQxZmGZ zr)SaB$#Ui#2)1L&Z5p0z%F=7L5DlQ;6c5|e)fT}}ZJxdXMiECYhZAPE9LW&dL3Nh= z;=kkR$c@D5zQGY2H4xE*4k@B#CwOs-MGT`1N*a{VlHRch5SJH=F#SgIvSYQ~kL1r z{qP48Haf@p2^n+&gNQ$QGP_+P1MKg9zxU^IvC=NM2n$UUdf&^i3it$UDDk9ULP$Of zPT@`se6)WBkpiPV*1oXP@@1t$bs<^QgX8NAjFgGT+qq9P0_4?#Ioyp; z5wPy;bB&2U#t{`G@~ade@GIy5TY0kr8$vMEK+#MX1U0wjmA+>DvZEP)rWojq4yeGy7^++z4U%C8-I*={ zDnt6`9V}A2c8$n(qZZhiyVH7(M7+KsdOb}z@0Uy`&QmVbhQ1a~K%czwm?i_z*T4)6 zX}57lTFDaOJW`4WXVp19ad!DDg;}TE3k|v)d|^3F=znA?%*CSMj;etxR?wf7m!^jl`kY zP4~?d8uX>uEaymaunBnitpp5ANfZ4JsS>V_@>d!rT?&aW&dp_s457x~6MowON&ld4d6vdlJ2n|CdCR!hbPJn*5rI?YnI&}p4K8^icpLP4c;4u>cC4rwp@M^4*@(k5yjwtMO1(D2%)l<4r6R%)a2G-7?ucY|Orz!dm zntYgD?0kKMUf(n&#^%aw|6YlIf%os(<#rM>&(QdFIk?O9q2re+NL1_EiAEO$>3e;5D2=-Q-v_4aPIG9z)AsM z0L?l-42Ht*bk9_X$wrr(w#)PQan&R^I^ocz{I{j`O37LA3<* zDNG;ax{9{l68U0OaX)tW@)E^+ zo~b%Gbr%&k^Tx&OOJ99_1rW*J=5yvOQEB^x0Im-$ZDr)1dffboOEM+q4Xc{2I?SHmFL@3ASrLAc@)(9wgG5 zkS>0aR?YylXP&!}0NCM5h-~G%55rL~sr2`2=>-qcpCM)%Yv|lTN<4z8 zRqSrv!Pz2`={?)(Qx^bMDC(bpj%|I;(u}`_CAZabU?lD4d!=|Bnk9ki(9vDEZ{+ckPlzEnD}l?xNCiHe>ex zCJoEA|HdkQEl3@|b=59L1c{7*u5H{Tz5`HAPWWj@Ub!K3)eHs( zs@Q&H$@^2k0ij9Ka-)<_D7Li=zZpX}{8GV1@wNbV*b=uLxu!aopD0~ybGxrBx|H!D zy6F;nuuHw|?4aM{s$o)_Qoi}Wl}1xxp5$}?^!N4Cp%S(uNfZ|=v$2g{WseGs^)sp2 zCE(Vo$wM$Vf#WFB_aqMoizzBi@RlZTh}RU&P24ZVLNdWx|Lo#HM|}!*Hkd}v!%aK* z^M&0devDP%@21q4^FC4=p`P$0t3;$4PuFNN39oJ8Ls7CAZm|O$J@Y1nF+eG}S?yU7 zbcB)`fq9WsNV+gT}^&Bm!nbve0;>d)Uox$_A>rzu`Z*54O-`jvoHpBt=&a*Sa z!~yDai%jn8c!KpYr4PfiCOW!H35wt)MxYO_6R)%+o`?pMYDLB8{BhIkF_ghA^8M#I zve9$Ax;bfY$)KD{b2L5-2Nh!qLtMTyN9n{rpkdVmFVZT4+ClLo(*g3qQR>m&M>fZ95(l{1p8Mi- z=a6^DEJyuCPsjy>Gqu9L7KhV;2_r0}d>`&e2jHI5!1(nKzRSRO>)sc+Lw*fE#Jax_ z2vG4(r3}p70ux@Kdt678Br4`wO1t z|69EGUM^#R;oJXTr6B5yIJI3?BWY)d1c|0DQtkyJ`iW#?QiQ$=o(t$rTQKzJ8f3X9 zNq$OyBQ68<;@>hac?}#4o0Zb1dx1!TzmGlt)&qYl+>k)J79X6t7Xqj0`Q`A1L4*;4 zU{z)_Mf2;G{$9)!UItXYQP!`k(a&-g}8{XiL>iCt4cSphAt(H@krJhjGx2 zmxIC@cqPrnpeC(SH!uqhIGJUIrfA7f6nY`jreq|<4X5DOpA1fPxn#xAcDm}h)PS57 z9@5q5m%pc#%D=znIcN=El#)^JiZA2IPRdYeiGp7Gq&+`ZTN?F#-cdAbFr|^k&)Q9v zM3vH~ZpShqnoFQeV!?AKDa)RBWE|e+6CZww?t2;kf8Mr5so(+XnY#|qSH;lt?Pj)B>w)-)Y-ki1$~u-M?A9L) zocmZruT?t3Iz2C!r4!)2;1{DxZNXanb_E7keeg~8bqle+wKcC6+mA<~2y@VpJra68 z&Gor=nnkAcMmrd0)7*uZJy{ps;+MWL0NXod!id4{D_s&Cl9~eqOAG%QfUQgF!f7X2 zd0M@Wt@}&|JqeMOeQK$cr7w`Z&i4cKVy`yNZ|&`FezV_}9CiL1Lz>l?zfMkyYUGfb zq9U8=Vr0_+8kiUxzONL0dcxc1BOMUYEhFPxO71j=?Em;3IYtdERMAo3?xxjlV!M;V z2@3S_4+QZJNn5%UM!Ajgc<+@kCgR`uhfsz}|KDT$++P4;K%T$C3DC6vgy})Gl6{DO zCEbw_8v<(bjR+1jxkQd+B`iH@wxGGp-~5cEY9*989#5M$K;IguAP>JLpKyJQ#QzbP zSmJU~4}XM>%&pH%4F=gTX)v?|O~FqcW4c+F6CIG!K-yytkW8yBWaK5X3$9_qa8dYu z&NLHlzZ4J*fvJh&EQy2u#38>19_A+MYy_{c4BSbtj{@^&tOc~UY%PD>B7CVadhc_bn}??YJh-(dJzBPRWkIF|_5=QMT=x)U;w?Wj^)?I4+a687s zJr_oWl7QNv)7Dcpexokb?;M+gE)SrGOg|rC#XQvg-A>DkZc2Sj;dJm#fRT2g=68_lBb;oJZQyF2j?rWf2+foV6Q`r{+*$SXfVbV?Kw~&xmVXckCnMdFzFsEM+ z75Ub^qt1O`xE==c+bi4}aN_uu?N_mO+RH0Y763Z+$8Brz0PUrFVsjhxPseBnL~~>j z6!Lu5u(pnWpd)(~QDJZ2su1*ej4og&ekXmMLBxY@B$HL*2o(wX+SqnWqL^M53F9UNHsmidET-sWPQWNkm#%5+J0 zox1C5Kd#|1)CmgUy>N?$@ih3 zgT5JPb2LFS_0s2#@;N~opfk$TzPFcJwmctT5sT8rfBm~cS}Cygcy5M2cM63nx_c-kaqZi%3e@~eTa6;VkT z^?e}Vboa;c^e*uSbGFV@;=oqYz=ef8i*nhBZ{nZ4lw5B#!}h(|X12?WKO#Wq9NtlG zTa0tYUa_N~wy@#Q{RDycrM#IPso$&@8|aqt%^{t*$E=kzc>aD3cw3V>5RiQ(ZJh1S z0(;7Q&UD|Lk#f0Q&;Ih|A+36WNK%@6g9aFeDQz+iuYu>*Z3(ddRi{PJDXn{L(S2l1=7 zuau++5wE{X2T_3dNgBygzMxC=iQ5B3pvC<~Q-f7~My^i550p>J$5 zc2v=J$NIY~Z%l!aOO~>*C(qH%_kX58LL}Bq$@VXNd86Gy z&&Np~#bJDZPf~p(ES|o*5!dy~W+PmC%bM;`+vtkR@_sqtD8QIH`_51G@+5qeKVkxu zmQB5$Uw-f7Mq=9MuJ3z(wo&xZ-fm)aH}jvh2*?DzylwtiASk@0jCg?CFNpWxyhUl- ztQho|6lIyzhqTGRFbpD4gpN{&3+X*>l1?|I0oD)a-{{D2fYA4_kU?&O&4}$mRr97+ zXpaaI!|32k&`CzR6xRLal$Z-!&OSzy;6fDaWceXpZkoM1qamHbH8nd35(`u=q~f0Y zkkPFdvI@X2S(9&ENeCv^j)4fJZiZiEru|KzwN#^H5UpgQH9$`iaT0ZNqdJp`vuj40 zQRwH53)e3zkYQOUUX&tyMkLr#gcclLMHW-$M9Wbq$d;y90DYQeEQeTf5O;gOI%HSp zMGw`$nxw0RLhm8>ZA~Q#=&^b?^A<{aub|}7wU`QrI&u@wAAR&1)AV7w-SD&aIK}kJ zQ`=zPY+$k6%aS{6kQ!)LRGxdae{07l$bf%68l6qMg!h2@7Rux0GtA`#eFAzXaUp7^ zTy*$b)~*%dAa`XSLHCQruP^2IGY&FbZf@>>%4A9BVXYrFaebq;nrJVD0J1B5XjiO> zg!Q7J7>d5OD6;Gfv+!{aUW0ycCphCr(EH2FAKUu_YVT;OEwe|`W@^C7g1E^bXG#`+Y{BQT4$(YcnGAGXbTa^*E% z&7gxX;Y!H4pH>R^DB;k>hy2knjVz1lP5WN7^%2uK_ljkLT6k)PUHC8clHYOYDmqQS z0E0^@K2%F#fw=WzOR>|4FM(2%`Zz+kqZEzjspWT|Q`ytLjGlXS5NO;UoaS|k+3NBC^vbB;ZvN<+3)8NwkjttdwdR@e%)7IxH} z_J#6NZ3+RME6fah z47)}||Kxs>sZ%$HbAe<+Cbue>l9Qu!c&r2Y;A%%SIG0y1vtK7QN5OXTl`wOIhy(=h zEsywjP=WKQMI)PY7`d3q>pGN}8yX{oL_o0ME&AWAdrMhg-qeVi?2>$a>iH$@A6t6$ zRb3<|eW@uK}R2yX0=?2PoVQJY4khi&tF) z{t?Xq6B)_x|)eh`Lo*81e{k<(>0W9a0UFa^?=gzitL zX!5@&BI&*b*0<9DHjh)V;C;r6%doG^b_Js=7~VF?n{LgN=H6ryUM!%yh=$Pj2AU8o z<_}V2^lU;MC4L~P(aQ&$uc=ku?%91kG zIJYV?#PFy~Ja!w`G;x*sdX{DUv026jAy<1NfY*9cWsv0PF)>`HK<>Flcctk$Tdvw| zv)=<|4eUMW1Fw>PnNmJ`)OBF8bJ>TS`}qj=r)#B0X-KmNlxYk0>=U2s%8a&9|n6$HP+wuD;`e^l)V2$@cVs92IPqUZPiKXwFB z?Vu^)ZP3&{IxAf~S$KmEDJFFoc?v%d*5STOITG=Uzu3f0@k zqhWX)un}Y+7Ui0ALfJaE?DXsTk58au(Pb!w&TB3rGwq!P?b#@Dmbu)46&I*EH`+;R z;Y1OKY(yqBS|CORtoKvY0Paf?Rdx-?2dAWyR0(qAL4CaDR=_!;+OzhZ8en6!kFd1fQ;~jiz{g)`CHwEhd+yzKF~;CE#^#t_8>*bmwwL zCp6mk`jPxmb=4FRFQZ2Zr<;Pw{xD;t{9bIo_yBO~udRp^ZzSm#{l@cO!Afpe8*90| z2`317DRA~|O9S~}f8-OxR-w*OXd~G0mhUb9hV-6R2;c(e(TB!9Puwyz#w*7;di%Ug zlLV4|=Ck*0fOwCA!Y*2fJc!Z5XxOzRjr7xT8aW5SLv=TnWUm>}m)nc`k&hD)gLQ%L z$UGBY&%-6&M@VljDxfd7hle&rz(Ym<1z&4{l=`92Qs`|p8rZX(b6Vckd^)^- zEd=K={8xX8X`au8k}J-y8mN%Y#mCfdgFmBoN+c8Kh7aM>d5SGqck+EEF(Fk1-GV2e z?WyLLBwXSw(0_i5<@2!wirS~gB1>_vqm^3c_eBF`{2o+5>cnk2H)fv5O}4 z7B|oji7xy4#Wg?h3hB~z6~?3uAi|^{Lx2RlXmL*TYAW!w?_MM_H%}kO347Ely@NFK}Fcnk<@@#*rhIY`+wIf9RyhPq&S;Y)G52^l4 zjD0U6l}F5x9R9s45&xxSAK1)#@^n0Az^1!AxCSc`mj-%<*^?r!OMbQVgqhjkaAuB? z{ro3~QM_b8<0v-%4RmC$IufQ=FLLLO>t$g9)&VYGb@|CyIXSMj&n#mGHPbq~wnt&A z8k#yp3klX0hsJsu=!M1NqKexjQ^`kwat@e8fU!chInLL?(`CAKi%$l9?I>_i$J(;) z{B{ayw-C^psg5G^_T9PsRht}hTLusif;CjcUB+_^e1lZPqZhjRRSb~lF#o#v_lGBV zRHFGvfMlPV$awM>*Tzn_y*utb7U&w~x#J^5MP}S3MRqGzK_Au9$31cSyb+P$RBJ;= z2~gIzLnoel9wl);77zc_<8&p{f$i;%O(T0uD17iKVb_p|8wp~CtvHR|JPJ~+Z-16S z4n)*$VGkQH7c%0iUnIFexioQ&oR>VisYh zLwT)nv*+mX=AK>a*dq@@|3l;w5!MqhhJRj2`=a*{#2 z>`3-m>3rsS$haOIRU(0TkK46C|Trt^y;Gud5j2{%`h9>Dv-o$rhYMs9TvrsT04eI8D z@ivLUM$uEy4@PC!?2Fc32V?9%C%=w>{;Ku94)8k`j{UrrLglI!NpVABD#w4;DKd=c zwn6mIQt5=;)7CipJbdo7A?%-P9|1mhgo^Y{zR?jwvM2aoATh2DR-oUbVpp(%x4~w{ z{09Y;Q~fQJXPPjui?SXqp;m2#AHmtvXO;>4>&Q;0q(wsmRl06+PIEb6i0ODknLnlg z2vmcnkt<7}%#~pxz8bT_DH+3zblL}7Cugb1;y4fV7H0llmtI2iwwuAQV= zM*HOHA0s)l&`AB+l>HpXm~hNBvxESIz$mizN=1|wCLyU60`iNaw{%uvifI{*#XmVx z?J1TPF-O)DTMO*jOcljJPm7K2$F-h$Dou72%|D!*j$tlDSo@v4kZgnB#Rab84el$e z2BuauGF1!o*~WiU+2R5kq1cQ~b%S?Jdi?VNozHMmAypJ@zc>w8q=~NstU=dOthqnb zlN*5``6)d?BQ?BZU+L`e2sW|vWMN{pC}+3l7$brF^Z4;6chbem_Y;d^0RYMPGFqwC zFZPkV9s8erlaq&{DYALCL*XBzoFN`v(0$q>BW7b9har54?ZcAy%IOd#i3lgY-jS3$ zufF2YPwp8reTO}LE&}K9IpIl|J}4OgHnP1=py^o~G2F^Hj=SK2In_Hp{V&fM}J*v<2@Ku7i>4ZOQK2x%z3#7?Ae$(4(> zs#1@<90p?&Nlmu?62{q?M2K`*^7B+0G3WUHF@Kd0+y|rc=qUYCgO4+G`?~YHLY_H3 z+{X(~R=v6iT5cP38R;@PWAkD~LB}MPBoVSePnB)86^5*&wj8V38G}gA4{BpPX+OZY)Fe^~=*vj4V05lT&;~N#1Oh$x| zfB)=669}#vw+KYGVr}6}*F zB=0=oVhH`VSYG!J%b^-4KFuB&32`+ZV3~ClMQ92lE32S3G9;15Mbkb{!F0onyY2y< z716Fq8WD<9VC#X4AdvdUJtK&%~xfud^%b7ypcmd&&q7D=>Y z(*zrK;anY3s`-+A^lp{}?sUOw^GZkIb$|@8<8f$?el!(mwh6FLFXhLsr6qlkAWEk7 zu2B=Rv?q+t>oxkkRR-*cIqMSIC1If%~6V={6jQ4HH56t*mY|GJ66Gg&PQlL&U5 z(0d5y3>dx;M;^&b@Rm)v!rJLayqB_D6WMq2H+`*y?g zKfzP-7UD~Q>u7Z>{2j+>&G0OzN$KMGmW6?S9aln%+7s$_gNR{g@6_T@g{y^K&Y-_+4~wY-j_5~ua&_^L&0V2K;&RuI)3ZM z%!IVP4NPl)Cj8EwQ$SCY&iM6VMB_9di8~?DlT2IxvPGC!4`!xk?c_4I9CWyeY!XFZ z&rc&9Dh$>_V^t}@m~lmm0o6mmNxFPr>?}JEMLOFIRqlP@QFOo_V=1|RF?2b zt8U+~c-JJSlZwRm$^;#O9fu7*KNs{h;6y5}hUphQ!;<-p__QZOsV0Lyba#!)dgzdC zhQHq*d9qj25McAZ_*yHCq@%s9dAy(GOTd z8qg!xodoi#gpxwL`e?+6txC#?X&S~KSut#!W28S^Nw`ikxw!1%SORfRIm6be6qm{X zYV#v}p`=gBMUa`SCmW{+d+uH*(kwS?y{4fFhBfH(<8%~FD7^mPL<>f1CKvl$u$6;H zT%;-S8zf5<{t-j-n2T~)q%KAUOf*b;i^LsSCqUw~aFb|5))Umdin!_J!e#b7lER-D zECD})T$&)t5747Klmixla|N(*pmoYN~lxH@_{ zQ>3!Po(&5??9D%L>8Q@*JywZo-P};D+Ib&@z7s>JXXiWh*)Gu2VrcG$V*=e7(fxW^ z#BGj9C-d1Rl2Q~0&FZAbw9?|Y8Xa}VLy^^FHMT*SWDa8`4xk>_(Zr`*W5)6oE8nwd zC|0u5o%?sQ2vOs9y#>w-=#eW?OgCDkMEafhSQK0RWVb2B$wPaJkkIIInKpxdKwq+C z%($CC@&vPpupB@|pi2jMAFTT=Uj4#|J%r#kdNLlmKKxi2KA&HDo3&@jZb4UbE-(BP z)2LRIj*M_hd~CwduQa*S6Z)suMm_WUz!m#=YFoCo&6-Gy{Z*(=*Y*qeG*D0C%9YAe z9FSYT#*L@qz^UsoJ^2N$PI}07mUt!=3v~4MNLUH^wv^o5=7H`Ig5e zgoWX>az5d`ARpTsS)!#QQ~c$Rix>@1;V-59w|$z;Mt4undUyQE0(pjx-GIjh(BX^? z$Z!SyI_ZBZLuPG-n+sA5)hIyr)r=A($toGD4b3~V$r0s(FC;Mki7dAC#jM1~BGSSr z2dG0OX>{cYBZbag4GnLw;L9ohWMX^?`pL)HOx#BdI?XxP2{Sou;?4#&-Q7)d0FKvr z5Dm;*iHO@Oq62BE&i=XSx!^mj4`R@JZANOqfDkp%G~YX`j%RqiwG>e`uBQYWmZsb( z!^XF6E7KP+2lXjLK!w=VZxLbw=udl8V=evaJfmgf6PsIsu^iuuj{Tk zu=!sYI>1^T0hT4czp;l)hr$I^?fH$K#v@XZF(4-i8siPNwMLdfC;g^R=v{pIA-vNR z+|^2#dGT8f2JL4=b9X(iAm=3Gy6bPEGxi%<-Y(Yl%HkyNG7o7W^X!?ZkAzEt@?^4_ zvjVrTdx^jsQ7il<4-~|0jZoWF3LX8tv3eb1=wpx@(4 zY@Dw2a|SoKP{?>35(cARf_j)vpeBJI75DUc=Dww^h zo--BzzE@Q@A>5e4?M9I+c}R`B!mH$0_YoTXL+mUSi_8Oks9CHOG^1e${Da3Gh=Gw* zHt{}jC_G^ErV%Mi{T&2x%pqhE0->6WmZLlGSQ2 zzz;DKmRYAx2nq>zKu74Kui&mrMTVT8$mIyJmSsX>!*jDwm2}!gw{E8*0?-e=kCiII zX^csz$3N1yuhejX7f&q2qhk*JeFG$Bp>uEjY9^kWQOvUJei7Ow2{+L5aVa_FXl6v6 z@{{H?|AXCIllSNs0T!}JNCupDp6JHzBxGp6DpH;nn?5Snz*+sLFu=)@MhYRk5CJ}T z*iBpVEJ{MnXGEQ4&)WurNRxRC6lmv27+b(Z&_Kud%6dNYYjyGUjC%F&3BNbntKlV zS3U96l;+c!Duv^I*_Kew{a{H(@cqWb^k=c$KeqqZ)CMCpoj@#9cM;t3{I^b0SHOF( zl;G>}wGmcAR3pa*)GT4W=jD|6t_Lv19Zi>R40_0%eKGo{r*QADE%6tt7t`gh0b@k~ zgZX+ce<#8T$8V>r@y6cfNbqs$Vg)La>nu*-EzmNwh-52?Kv5`Vxp=0N*Z@17J6>+g zWhjP&RUCAq#|U$Xy_3n;<^Nxz-R%oaH2kYc#t4};Yf*&ZsFL+66Nn*5%#G5`nUCBQ zkAKOc!oZMl!GqkgQLRp8S9HeMrKqsKj6|*dQ;mFxKr@Uo==xlt4&4oj@uJLd&Mba+ z>qH`Q5(8t|cvafR;&}qJTGI23(p*ldJA@s^6wIFm0W=|iJFZ~F+;&&l#(+OwH5xYq zU$+S*{3EAv=}@j4@=YA*vqia;^4Fx&SLy^XsG1MeoTuH&v?}TjSt$ktZ%RT(J^tz$ zc!i_R=`2%)MhMDeC1BDflKVqgzL+D=_p8YZr5t`WIjQB6RS{0}?>^~y&|%|X2zMU( zvKVK%%qME*PzB(Pb78E+_UQhLgVwF4JIuqb<;Y%E_?lEvA8cc_Y_YP@YJ zGFnJ3r|vPjXnA66Nt6UcD~=);JXLez;VPGDsixBNa{?eRR~B2=@ty{EOx`txweq195yx_ql`O)Rq5`q8ES)wT3!1hFx&)&ZV{8{d)u zfQ8A)V66^UHIJ~F$rGg=zDojc#Ft%CK7|t57$v+09bl^;yXyCw>5eSJx;ufq`Qa;} zAt`z_TF>Ed{j=M`@WM2e^IIH|qYt#a?T-!T?hT;p{Sr5cy`yi2jJA9(xbFQFLFo$b zrOiKK>sUa^7xck(#iLo^7WDmW4gA+=p90>7QEIOY^Zq(IHj}STO^b)*Yu=ioaHbdH zTH(_ITY=<$K}LJLbs5AtBLg$wk+ciE zT9f`ZNOowtX05an!+Q}jzS>+e29E@H40J?kW2Q*YP8ni;14lT9IgpkigEYrrw|=aG z8beDvw3*i;1!vk}>9`4$` zNmmu;T+t5U2{%RcR>ZI~7<&)7`;*Pysb(TAk&OI+A8<_>xd?dpoq{1=7*A^k))leo z?`8HO?8)Ss44F=43i=cGc(!msTOZ7_FPky5=3zEf7S{01tuC5omwE8D4Ha^tDP8&} zgH62r3=SrVFNFrop=!NER$6LRwFFPsD3DPyBQk>ZFT95LMI68TQV@a81Ht?{!!k)g zn!>pLPG3JX=Dp_b*7bD9c#5bop8F@+qFs}x(`-Yuue@hu8YT|L9VkIDnin$vwj(o$ zZCe2O+rJ5R-oWLjtLRArw}J}<=uaGdFgbe_xa&L^hur<|f}?vlvS_urO+0*~lp=AWByNDubV3M9kCZ~~?k9dl-9#26spNb|HCA~lB z_qY(|2yfFmc~wKs_nC1fwM<1letKF{1Lre-4cxp87jgt8p{PgHY>ANg3zF6s2HWti6Lc@HD}2`;jZHB42o74$!AC_9lO}gKF+pafQQ5I5{ahZixt@ zd&1FZQy)I9kpv8_(IHR9cPpZQCYZg0qsFcR7@`evuY2v7daoK>u+L~WQIGr%`D)O8 z+oi3!ZXqwAuK`PtWPT3kRa3>!e$2jNlhyxWIX9&w^_yw@E)mzU)am<&J>lwJI_|GJ z6AL|d$TQGgg*-+RCZ$F+5fT#gHOZf>t|3PP^+xdN<_|R|D(DqRs(c}Oj9{8wT<(%c zx|9KYSoC>PZl9^pfI$rR7x6LHt{Mj;Jekx(yS?^^_)RxwAb1{p;+L&`)xdoqFL@|m zF&eHS zI}Ub|OA}$+rM#8I5j_A5@4;C~%(_EI{?3=2keNpq;?B#0D9vIbJRjD(23>HsM$<0! zt$}1G&4{oxh(lNyr_H9Ss^>a~yppMcF=QmyOGLv0e=kU%Q~zgDT8G>gaPg||fQ%23 z$Y#@@9j@#8X&{46#RPAWK)$Jw732xJ_fHB|b~ofv%joovjlUR(ee=n|Ubq}93X_FVF?FX9*v-yZ#-Z?Ik4SeS*m+YTkD z0We!<_7fb>^;7aHtLE<(=40&A^hJiunT@Q)%E%31pg*w%TUn(5qvjNyUc|$jy6U|> zbDzAknBDq ziaLGlhw#m12I8rHxQjIWvGqn+PcgO2*>Q!(>gSHVBj zCT23|Uc2xGg_F;%$r+((+Lt}Y&zB9|I8L93DYx~nZTyuuk6{Ir{BRDS@#mmMm9kpP zf#O&oN&uRKSr?5-dDZ{L8FY?7APhCzJyKPH_Im}oIKj^z+6>m(enB}y;RyLs@t`)o zG;c4%AMO7R4R9STjB*qi0HM+G2!^wm2nPq4VQXzjd2(}$Jvwp=^_`=&J`Mo%LZDG& z?Q`D8O^E%9qKG z6yPXRFxsiX!L>E62$PEqm7`;!HoH?jh5+VHwQHCY^kOgSxS&1rhyjZ#7lJxi!pRtC zl0e$xWn^V?tqH-Ao-K&EOnowlyfRxYx^5q}sU$vsNTFM^tB}OnZID7JbvmWwpR)|3w2LZRscaw|ERJ$O@Hl*9S zQWTZge?}=qia;rg^?c*eO~s|0Slz_a-E^S+z*4;lD^<(5_m>9gTSO zF$VXCsJYSv_6y1TiC4nD_&Q{#%jvuIQa=ueZZwKaVhPuezkh z}1FDA`F?WH)V$^W`HdM6})?Ez>Plc5FeSN1PzMp_Xe0x$5aDPM&Gz6=pi%w zJ|oSGYvs57$e4uy)L&zOcLYk@+Z<6_^mHufZ=>%d1k;v~uBt0P5}D3BX=f;atHS#u z;|0w35$-+QQjy@WEvILD_Rr(eSpN-9b^+*ytt}DXLd`!HFV zu!_urNKv$~KjdpQ&N;J=*{AJAjp;+Yi~+=&=T?JUT5(b7{tabD%bD(04f9Cqfi}Jj ziQA2O(3vmwv~TAMBPoAc=U+`G*gAE&_Ji-~gY^<#MWWySN7*%K=hb$>6WeNRr?J(r zv2EKn8{2Hq*tTsnMq{Tj8sq;j;r%Wk>sjYLC(qt{X7&vA_F8s%!C=6@kVOhRb*J7Z zNef~ihJKFNPXF5GZ08qVIBy{r^q0}^t#iMN5AA+~J|DC6NLj~L&|cG4pc*xA zO{h~2L4f%mQIl-{qQH}kQ?k=kt&`o|XljgZ8H&#%EC4G0ZXGei^oa!qI(W!(V!hCY zharI}{2Y|Ko#Vv%54=--jy2bJZ30BC)!^ZZ6-Pwz*I3%A<;3nX%f-DGTs3pTT9Jo3 z%bmJQ?lPyqUBWfsRNA%YpYP!9In#5Ll95XzcdXk#uxgd7LJxP64=d2~B#JAT@&!xX zwd=n66diwOXnv3VZ0JFiOhDco)*t=MJ=oi#uG>pJ^bk<`BPK(4?gEsVL$Y?-5|MZ; zU$b$;XG(X@-OUc8{3#xGZ_j_VZ3i7-Q~Y~bO*jF8fMK0;ErK-150`HxA!=ZlppMHr z@*Opb+Rh#W)=n0;5UiAmDjOUP_-g6WSqxYcBWFpCl3vI?UD(etwtViAi|0$z%Dzc$g>GxTMn~!x^^l^IU4~86b$$ zb-{q3<1??Xx`eUeFd^M-Ra(Vmnp?PaUAuZ+x|CDbY@kjFq}}|4N%=Dq!{Z)F@DgEt zZ5c+zzx)7w(JG4B zGomI^>>JGwsv5Oefw(>xmt#xz!AN+;Q-=>{p3Vb??|5xDy;;mTs!k+G(m)i8ZF3|e zF;83rNgxs!895gGO5}N^eTz;?PXQzo=r~t#rHJmZn$F}e8Z?GJI#(U*80ovz#A5f> zO#OAtx~pcfp!;B#6zL}mwWQz{DUD{}x{Wm`YG?BL&WQ8=HG{tNM3rP2FH&OB z|F<@YuKLuh^K^F8tRzMo^8ieZFH4z4;O{bS;pwnHphxfot(wHcX32Yea^)d^{@4TO z(hO0=Xia&A@tq`hiLCD`N4y|bKv!J4Ltijy`gw`~I2y6!WEW!p;6dPdMQI?)HG38A zn4y3b3Y8i$lMDL~eYJ6DiyL0?z+#mueR-!_5Q zvdFb!^KX*Sqf)m14nx|N$`z=i@JQe5mCy7bw9H}hFPez}Lw;_^qXGBfqvHJWKT`ijx;tIq}WptxbjXkVCBhiulxxv{W0s6l$ z+HXw^MUia}51Cb1i(C4|Z#8XgqRhX;mQz{|Kvx@2Gg#$bEfBIc_`jtT^xA}0B?N{i ztp_A3W0+3BjMPg`^s|%HlE}tQ`-nEsAb$W&mKWzo{Yt(Sgzw2St82-r-~jzan1|(P z9h`DaqBQ93E#X&^GPIPtEL4*WJnw=XfQa9e=)690j{d=>@3?3I-S!VD!2|1Gy5Gg_ zp~hq@KnFvME{SD?sIZQAeV0-%S?Nq<=g1AY;}E&yucS)Q_m6*USha1LJljkAI$w;b zk%LP-HGXT6!0N&+eEDF47bb3=a;OyH7%^(taz12>h}Z;{1c!a@B7_J$x9OH~lL^P@dx+b39Osp*Bu84`w)+1B=ES)(1ONTj2AGEUe@;;x86o<7qj>YM2us7PYgRA78?1 z=Va4VD>A2_4<1kblN@s83nOcyh?6SlH&_0S#|vRK&xZbN!fJCk9WRX7es*KHxT0yG z6W2G$aP<9zI2ag7b_7U+EqA&@Tfoji5>-XRDX|l|7Hp~;zcQwIbI7}I2odLVhN_b2 zKg1ro$S(Zc6xfMeuQoA}ldrN7)3wIn-#%ZKIn8A3Jr>6QU?4y@5$;0pnBK2<9)$z4 zBMe*E-O>L^YZ*OsM(oU1bDfS5VgrPO_^0|7UpheNkFULv$W}XOA+%T-mTUxzlc*7& zeK7pRv&aVCG6k$S>(kr5HQ{(E%)M)V_(+6400w3*4GizM-`kj3hY5d)77*{noaGL_ zj>dL}EIHi3gM4rVKf;;3kJi1@Tw;Nd?7SPCKEAfT1w5^a8&L;t-O*!tLHs|d+ydjc z`C)x_IrdFpLI!WbfLa5~hf~+7jwO^|rIPF3cA^Uw4^bDpg-#iC!t30LTR5jM0RuKB z=zI0%pW|v)EUIW`T;0}keDy%MLz2Qzle4!_!J&Yv?)+lLRA7s4>ePF$LV-`JVnoCm z%x1(s1m%!h0k^Uy;9_nBbnBIx@8;qwqDFAqwIztdEAn(3BwH#E-|@uu_Q6AQCDlqv zexjmrHnk-fp3Pr2mKpy6W_NBE*Z%FF9lhD1_h7~qv_HgCugA^3)VKBiN2J+J{gBwAs0y0(aPD|+?|~W2>>%*eujI40EQ}3unoo;OC=5u|uBpMF zKz(hCI~fu{Cw2X^+OEdWzQ9E+l#Rel@*kXjYlpfl`73hw%f5pQGM97DV4xP-~z9^2=V5RE2u(a!1@@&1=DJe%Y9bbbLYlDgG^X zL2GUe^oIVf$jDA7z2V1)R7J2YxgBJWtDO_eH@U1Tk4s#aNyh93$C|+r-{ZS`}a zU-``<$SYQ7Uu`q~;!B*7L8IK!f-N^8z+Jo6UE;2<1MrJVbgk$K=|c@rKkgqPW2vBK z@1__!bU1=OuM2kzL4V?NiJoVPG^0O@<96-MVE6&~q)e+T3_E$n07E40lQ@b&a-1eV z>=(iEA`_5h6MAHGNQZ>t6Qw;tm%tV{QgUV*qNXkk^Bpkv)Yo_=GY1NHl~oW#Ku`68 zg>2&MX5OA&BaDp1Q?~7O6?_1#?yvD8=fS1RdzPJ2e>fR&)c=ZY(KW7jL-y5GMS#w< zwdAqIGBaAx{d|-$%r+uaBS0u4&sLth)3Lighg653&+9z&^c-|7d;Y3&48#TG zDqPd<(cL?IlGHkVQ5XAL-0qwOraCY9FTr6NbaV7teDnN9M%%X8;LSB?$@}AId*0DWL|^wbZ8Q-xt1F6&vA$k z;JQ${O8*Rv_js#U6;6$=OQBW|6I=dDI^lB!2hl{1h zWi|PZL5j(hIgR_bwMnc<=hWvfAN?Wdk?{@JDYV4&1`^RD9B+kh7f@s3r8PlKVlGE# zVv8M|pD^)se^Y1YwNDm)HhK_2nn(b6-QHzq3hP{-7t(pO^h_j*1vebtqNyEi3jd6a z?}b2b=w-llg`#l;PEeg0!+v)Dg>P#?eazc5VYFc>YR;93iKl>}^2VS2{5Y||jU`C; z2h7KdIL;M^vE4`_6TkjcSzr88unH+=AW#8!2v@eO33@%|E)lhN;~8jZX&ntuFh0eP zrTLv~q2T{R`2=|eE2N9j>B1Um?rg{JL%-td&6itXn1B+Wjh7lfMs%iS!`>F_CDqlV zbUe{@(3961mmPF!Aaqggd+lgG+4O~qHk}_*`oJ06S(&8#{fpKOf5m&V{KGc!SbI{@ zzXs9QTVdlQJ^-l^CDpSI@qC2nG`Ds$Z8&bZFM*%NBjqQG%p{91=-y2U5-!YTk*t0Y zTHaRC-d)F;d<+sh$lJcgwKN|w392!1&Yu4NAN7|jP!pF}e%NmSqbP@Uw&*%C|AM|` z;~YoqX5$T(>chZ%4>`Xp*Qf$LMYQs!d=u|p)O$g=I-LE5MJxSihhTeX)6#>bI?M3y z+yU}$GWMFq7;0vkPglbNyL4dx@q{2c38FV@-{k)L>1N>-=-hfpzPs@YiU6 z$ghxCdsFRQ75{ieT{i}Tfpe1F9CErbFSr;$B<-Hp1@uimD-_Vr@K6Fn1)mZklN(a2 zdvv0wWI&&t$`5lzI~Hez)|w3Az}AStN39ke-OkG~%k-mLsn!0$?c{JUwG1;g+W1W3 zJ_%%>0^&c3iOZv!PZ_Gn3^Km#bm+>b?c|}jt5dRrI~5M{fetC|>8LK0@SAO2bRZ>S zwkR12_1fGD8(avJN^q@kKcj8&Gc@KQSAHmvcy?A^t1$tQ@O2M{7I3Qu)Xxi07X_;k z{Nm;xNVsKR!379V7C>(VT0f(*5M*`px~z=IV)LS^N`5?XKaw3)V`%V^w2@uq!$YMF zFiA#tkJMr9lD@Q$}!y7a5{K}UTIm`=!P za>m zlY5eNn+;HlVO0t&Oy8ObXaG7+3ph*0k``hB~KO zEXqW655qXqn`A>gSoXT45p)nWHO9B_Ee7M}mk{55{1I`~JY3j!zEouQx-8Qw;iASc zUV=*t!SeZ!e-4&VJZJ5O08+ZhEuD`#btoR*6pdA;C=n@HMs4dWjVsd3dqOnm?vdfp z8BX$5X#I}DYGqh=Db9=nj*1cBGfL6NWj`Hcd4Fz%JUQaz07*c$zcs%WNWln*tMZ=! z2z5%RQ^{N3QqPcV?T$U6OO5NGzH5yrW3xk7-hKx?MYPylB~_RG_Y$v0YNDGst5nAd zf=SWS)S!F5s2j60a;XvOx{tu*naZD8x0DS7{yzXz0h!@#A_R;;pmVS831+(cTP@_? z4ezmXZAB5XGUz#N!Q?bh3o{z+HY@QdHSGXpGl%V?H$F&4qzKC>0f&gPZ4C<=vg|E&hB#D>Jd#LdLuA~HT% zI8#@T-L*S2-r)*xt3}XwJ%av@Sfa*z5a+pw$HI)7gM z8L&Neu^)2b%%kyl$JQid0RA1z-FWwaL&LcEmO}{vPkvGw7yKjrT^9F1Tvmka%!>r;Zo|78@%WtHhu4 z85`~m+b_R(5swwX+PQFgFaM^%j>Aj^0lnvuI4mwFXL(^WZUa^YG0^)AwSTRHVLt0a zRo@47K<~LaB~zxp>J^>Vg#Me#Z-FiU8h@9bd>aGxqa?sHtPs99ak!qc53Q&sXp`7} zK&TA3TPIo{7=77~P2_6g+BFf?lkDk1s!g}Lf4R-hl|b;j6RdZ_Ws!~9GG)oMVCVsX$qaTabm8vvy%5` z*`OhrTyRx`u!0?s->snz8;|({$zRTs(|C1($!sJXTr_veMSe6TQ46}+OsS)+;Sn_g zAr}nTw)HUg116@Eoc&sT3KybT;8n4f5=tAPJ?f!%T=iSin+ z0B2oHg$T3V@5W|DFiP6rZ#_!0pwmCWqTDRo9zF&uBBsdhHMp)ML$Ft{8T8#Ag&1Hv z^U#~mO9)J*7_(Y~6jF#}hsdfxWd+q=>1MU`t%ZPygpsHBZ6__)k0Wd%&Q9DK@?<^G z-!W!CMejWa^A%=?oul>s?vyWo7eP;&6(k25EOk}YH@A~oe9!l>e@8b`gbwm*#=!cx zOx4LZEw|$bTt~}KBPRaY4R;cV&rKZHe;-xCpeJaQIb7#TDJrJ_2sy$gw^)ayCpE}T z^dAOlM48Vl{Z{A?@z#owLdg>{suYRs%+qTDsT^&(^`R9gzB86}9MmQaUBr zKP#HaIwzo~h!&oet>$T9a=KC+7C+JS>(L1y#5GJj>R|J3EK<`Js>=i39UL+>p70P0 zToOo$0)S>!K85~TEHl3T-eXHp9i^2N)>Hndfp5MCHSfJU=uy-8J`Ni=HjL_Cw#`>2 zT~;gXpX~z&8z$Q5n|QIU^$km05r6oJtX)uTWb^;|*JDNk{N0cV97ewE`Mt)*49v{7 zxMSACGAt%PzV-%9l=_3-`eZz_E!$h74D*O-r@z7n&gleN-m>oS9RQ2${&uUw2=vupRk}s{c_@x3m&J~C}sd_JFTjlA^y_hW`(K%r>_xy#v(Li4U zdWe_-y16Mc$$IbTkyubwp&(wsE(*YlyqpR6`mY0m4N|Y)o_sd*LyTy~PCKp$o4)** z&KC6QgvaC=Z4_Q~*QCB`be}O=?~1r8ySbt{tmhqE+d@ZU1{4L~|JcWw_)Iy#pVmnS ztoLc-@sdfKSpP7^l6M`5I=z}cEvrYqI06(>HDv0b7l}nFmmSyQ>4HmtsX=Igbwe(? zdSP)pT^u0&ULC!pK?Zqev+a8YUDe+DMMF7z5yM4X`6WiT=rtz=TiTb zKz0f1x@3E{Y$0-S*P&scac-ZIYYU!HU8C}D*JCyxxC}*(0yW-ZX*1WeoqvO-RHex^ z!n6B%jx-|Xe*17>75%gYeQzI{@4u2u;`SDzgBiq^VGGoovZ1_TE zrcLWYBYofLHm57}L1Otke1n!({+b^IYz%)yp&(D&@AzUAW*DwrS9XAX&}&mbiBUfl z)g6IO)ffLUtfi3OkcUw2LTKt3@v*SRGx@O&-Mz731~$#fmMnaewec$=v)m#kGnt=P zJ`D&VopGG9o`qw9^;!?Pwx)nVRx_!H28uO1MuX$|`9#IOV8YsNo)|B$aK%}j*r zm7T&+ARs946rm_LiC=;S_vGaD`j1cpO%r+?yymYR}UbMHGExQs&2qH^?4{8W- z$qn(rSMxK#UhhL_u6fD#)TvjRp>X2eE9e#UpL$x-UnASVFxv*c!WH|PFt_tJqjWUv zOO~@~l@#Agz*fi)c6a%MlN-`r(I7*)rDPvnr-uZnkB=9W7eifgpS~1*BMD#Ix9hdd;KvDot^=Yy|w>aH~@u#!}Bs=TxkUVJ^1yThkwk9FpIy za01rd(JF84qVQKJGzelRoQE^GK!8d4ix00!Xin4-HRi4yHdQ~`fb;v!LlEx+eUv5W zejs7kxG*Q>QsX>xT`92o*O5Uk^2XJC&X?2{}7kBfTvuZcUqLn;=rJ8#eGa2Em#5gCBK6Q zRs^m(oA?7{&_|eildb;nvVgh3X;0GAO&=Bf{@>PMaDbj6wWu}Bo_}&w0RQ)U-&u@+f4Z=|x=)8b z9ou_jlHT1kd#rD&2}A%7=w%T)O}NU6=x%c<3|K4W?nc~-c0|h(tl1_hSX8dsd-%lm ziis8fVWQqBG8v2Izzx9e=FayVcFZRI^?>C)0D6&&zYOZJKYG7S4Zi7vgTBRAd~7&Z ze9b|*{cXyl60X-aHn}k{STDZ*LmDkQX;|&0BKaJlywlK11+FEloPSFJ2>zsH582zP zr{E_dLKQF>6t0Nm__1Ek-;x}2E6#D(j&Vv z5$JVLR_X~80zHNp11DKkD4#p|4_4s@2SI}Y2@M@ zfZq)Zq{kDG%3YJRt`C)5D9~U!U|nE0Xu5lNx-j>Mpf6~swDJe%A(L|EN6b>2n!pTp z;c?v36+)+xtkh?aF-PX3$;K>?Q@s%N4Cf6TZoUJA+ivV0XE+b~1$D?l-RK4733P+6 zmL3FQOKmy0+?U_@}AmD>+HC5Jmf_%sxy^hdQO!4{ThmREDCv+_z}a*DsDomc0li5{h0%>TU=eLlbRE-_xegI z)_j3%WsiT1!`Z8=Hml-je z1e3_~J>?KluC!?^iA*sn1IP}qdG4eU84KU|2vZPJ%9O0H@@GwAn?YQ+))?_V16>{| z?Sk0inWDas_iyARgCrDjsiJ$a+_0rdLR^i1i3I5l>cH0aHOO_9*uS95mstQ%4NgPo z2bv|Hu=*qS7uw`g zFAdEu(BE-iW^oYN9-hnfc|GISkGeg$SRIdB>U&x|K?_>bW5xcwrz<8wGy3lq)6~?! zS`A<_ezdkJ!&DEC6RPMmbJ&{C#>)pMAQ+xd&2*G24f+~zD#C-#*05EL(cuFWa0%!!&}xuo}z0*X)?tK zZsWk{i9zC0?@} zHOwzeFID9iR;cwCy&Ih-R5Ym~+hpLq#FgN8Ia#*L{dDt&ur7*lfIHRVHS~*F2A5Gw z3^5IqsVcshgbQh7m`5L66{f%2pnqKZzlAeCRpLUHogYM)&YqQpc|#;V>S@d?Ho;4z zqV{C7w$RHh=9j~*1|O*Y2G0VyIb}IPSFo^@RM5Oa4e$0HO*o;9+nr;L{8F!n51_9d zRinZu=@F#o!Ji)Eic#I)wjEz!-=#-WV~fz;-r1*Bs;-W0Ii1fFr%ND5=ix2i0+~xY zhQ_w(`Ku=ncNNZA?SSQZ?AU>Et*RoIWWrG zw!+Fq^IARdv9R=3t~Ib`K#}x=H8Dc%=b{2KFkH*KZ(|h#8113CZ;~yT@%Bnof{g}} z^w)#8D4?$o*0g=f(M^cO<)F9vNC!fpo>7G?N?0S! zeu1xK1ZbK{Lb!f&;64UzH+AT77YNwAVZO=U?8-`$9uVk(zJybC^=g*y_QCdhXzgBN z5qY^J;up(tn27Kd%|D%$XL(fwDJMe`aQJM3ST9YPX(l?r&O~$!dlFE_L3%o|&B%g= z%_zy8oUD9^#~Qs2W&_He9!ff@ThrsG1&~)Iyqsqd|cvAZ@8g)GXcw-Gl8{%N=QgXLx(vGpKT<2fc@Hc^Y*_cZiSI64|&#Zx~Voz@ud z=Mb(7Q}jAK!c~fp9MyQ*C!%^}HaqBhi?MSR4bl112CQnGGusR3KVMa$tSG`|wc4)n zN7T3Y5}pLPb`z==v-oH$Rc~3$O96CeNE3_E5X@- z)8G9|7Q>`UM+{#Un?v>(q|J!9(?$no-P$U(`O$_zzq$5*`YnNt^2KuGQHPf{+r9j= zcb$_cr-^T^4*#9d*+jdD62kWDuJdSz$J|ru+6x%6(avF`X%bCYH!^u*3)pvRdm-1D z52C&+E->9e0iEKjpB2`zR5cE$1UZ8|J_-GT4ykcgg}}wP-VLO z4ZHd4EF$m~7_2G_KyXQv(j*^cA9l)ht!{S_@k;nY7SN)y=@krmf<};oGhao_MB$3D zW@bkwizfFD(LvadCtHtm$Rbkt(bO*+6Uo| zD>TtYn43rK^85Q|LW6$)YAxuTgq?D`T8K3cW0~oXQphhyq`J|Q#-0xq0&4nJLq$Bf zg&)k2H95EzD~mRoz5esMz>`k6Ss&{6M2Kogn#(m&7~BK>@Nug4xi2C%q8@0b@$ zFTv{vI6vZ3)V|QQo6i+bT`_EkL(PXRrY-vNz%#!l5;1uLO(RxP`#2v8U&jEP4bNtJ zWZWR?$h1HEGD&=87v)LRho{ET6EbgT-$9=w+6B9iMS0^BJlM};zP?C9T7{DR8Oh6L zD!Jtik>jQ_tC94K)>lWRw~WiAcVX%=)c#AF+jUK z(-ygk0Qumk#Wjq%e{CT=(-ScRdd?js3SoZ@F0maNO zd-2IRp+O=V>c~x~rp*Ueh`Q(gm!5#r@jyrNA0@m_1*wb9KViF-BmoR8K8ZuM*`b?G zcGwUXgCqI5v;$_|A|%}3Q4M^ipabPUG^i0)K6MgvSJz{Gujg^ssI5P#g_Ps1^I{QM z>0^xlQr{u4(0vb-jwtf2a-{nUc;|@A`vgwbzZks#?1g}neArZP`*m=Bb*Q6=#_3A{ z`d5wImLqY!K+3{;Pa#N%ii{WD^qx-g>(n?)f}4`l8PQSx^4t;yqArYf+xg{np#o6( zy~JWDkWs+=D`^DpgB$7F0BNyO*Z$e!*Hk%jaL_}C0{0#HFj9L{NLDc7oB*uetFrK9 z=>R&m%5J_M=&=V&kNy%QausI8OU*O>)lXt&V0fZu{59mbD6&||A$s2z_~~*=ok)5$ z&)XW2Ue5yh1rlsUF9$hW7f_RgmuMr3Qcr5i#+q9FWd0#1Q9$wVlsx1`n&G*9>XQ7o zW`0unBpUdN*$eM7=ef`$2)+2kd=B;S&A8Dxp*dv1Vp4v(2=qm(UoX^q|FWnGRFu)T z7e!c3fy5aRUc&+g; zPMB(uMSjdTh)Tn^eY$thgQb$K5y6-gl%};#7Vcvr*Z*y+oo>_i{lV|sz>09!xd2}zK6RO_q@*XfgG;)kF_t=%3;45ck`OiU!Q zjn{g~X2C)*_9sg4OOPd)f~`itIl&z^=;DOR+B3=rN=S<< zDg7fyQGskKU|+~DviA18j&F5tf{rO?DvJ{erh(rt->}PT~@D6&)yhC zA9tY-xwn{Y#(9G>?wiyf;!V(<1@q_O^OC7q-CG?}T64M>)kJD)2k&(y$#uw3v~*U@ zddgf8eSmi42fIcyR4z+b4}hVp7=cPurRcV0!}#=f8ODrbyxuZSI~TuvGe7-bUeJp~ z@XTFZy@h5y=hO}wGBh`*4jEEn078XWT1XI*tCzIGLiWzjW&4)Hs`q{xG?YhR1LIVh zY_dink%b2yHVzdBic<5)mIOc*b&;_S-~}D^iSh`xIGa?_Z-x*g{pUult~S4+(y3gA z%~MF!_(>%C*&8;mtZU^vAI5WlfVfo~4RC%nBlRZ8SNFVwjCWcL`4EAePK6i}31&Bzv?`ML6K!uw&p5_tS0U*5&sz`0HL3>%j=o)9%WkO@~ z$M$>sv)RPL{sxknwOy`$3Jp+| zk2M>kVf)Le(+XW0hN<4s6aKbh13hmsN=FxWl{?}q_+h$#5H?3_fE40AQiy0hK}-?`^1NT*01` z2b>AqW!}nBm_{3Gwl_Uqm+bZkW%5SE!>s=st<7yYJ5GESNsAG!q6@`8_NXH2l7es&&br{QU|o@ig#sNmCYh~^WC<{${n7l)B4~%P&|5pIFXBe?W~d1XdjONC}DJmQh23;XVSo#|q5sXsq;ud1e~X7zT6~~nZ_GhM;Q-iVvb6dG={Oe%w)aU1 zpYvAJVnez20wx4KP|*Fnpy#xOBvI2y2o=zle(mm1Yi!%EQ_5cn;=#WrpW69Eo}lFz zE*sI}G++6t`EQOZ`Y{d*0AtOYO84NGwPTFT;cReGPkSQ&RuN=}2&?gH;Rl}-=wJ14 z*>%G8v6v$IU3`yn(66Mf-!Uqg5$~Knc4NbaM*)-X@VJ7_MsYC|q@Vogx5R*hPF;Jt z$&V4SjmWS?r#e<^du^Wjb1`x{H-21Bj!w`euyIT~J>PFu924)$sc*>yQUp~6bY*F5 z)wsRc%syAwyJTjw%xA^%%hQlH3C@Sx0QUK3*45!67a|#xYRSyS`^3(`u+pWVrCYY_ ze^|4ir=&D{3ksFB6T>6G!m*uNbZ;@+%o!OI7%a0McNGs$ryGPvKhQ_HzuEQ%e}}nT zE(8OtpQSk`j5_ylmGdo6|86OUWa$V<@HOb$yC{2AP=lUTUv=UhyC;FKU7D6PkPdxQ z;oLDUL16bHAet7(Bk3l3JYr7sp8(+;Zw=^BMA}POCOArz z%=gS^kCLQhOT4D%N}V?`4YZaRgtw!Ri6_pIh-kyR#gZvf`|wX3MPM7qPTKFICJ+66 zK5iB+c2>rPJie)TiPs7bIS>GV{*DVfv!GmeCZCk8l;vzzni@BfDf*U447D#;6mdRr zg_V8-jxsx9%uP{Wf09~XE_VX^ji#p#Wdp^&uiXYkz6>h(ucTIa`o2(giUGH|b##7(n>4> zeR(zk=pN9k6YO(QQ(%0R6JW}28NN>?EP`Ao?#(~QG|k_U(g7PGob~(-4$nzhE zK#9v8kg*>1ZqyPB=NoVo7_+X)J{pTB7pGEA-|xUmzLEjD*-Sbq=4`iN-np{VmC_f& zqC-46e1&~6&h<&O(Tw<9F}L3+NgOJkWYBy!1vWZGZSL8H&5J0o4e?+;S3L=;q1ui<{Rh7Fc^8DrwC#;{47>WErw3l?-1Ca@T12~#YnKfm(*Z~EvgY`;KA+OoL0Ne++r z0aI|@J>?@JCzWmmH<623>=GE+JOJ0u`rEyXda$xx_Hsc&$QOG0C^UdvSIsaVa{sp| z=-y3{8|(^*uEa-rsA`xWiM9oVb*sEU)FY1>#+VPQy$cUTIG83D*2Cb3c~0)|Ut%FZ z5%1;QL(QncNxGh>6xN9RQyo^srV}&Krn_I!2o-dP(01#7!NFfXD0iu~HJ$b=b5^Ba zTGW%7i-W#}&{HyL%0Z?&u86{}x@sMd=>2fUdjzDHyN*+0x6*_!Vr2yWFq2rJy0cXK zVY=XJ4`29-g3c}0<3%Xy^;&6Gx#fN>Mecc1x;52K{nJA8{gBO}tL3}z-G#BuwFOzB z&GkbMwbLjffGnHm&_aXvb*$OOXT`pcdEcCld zW9z?&8GY~JyLF`E^WoMT^o`J1i8~?MudcM|r{I^06Y69gy8wWdsbnc1!cyD;-2Bh_5E=nR-j3g!Ec_g={1ek!Q2ZQBtapdsdP1J&*LyD<( z%n!wuVOE8a)%ueyXIqkFL{_GlC+Y;o@S1$_%UIy4KnZ_aqfi?+x6LYcYZ}1Z(EJ+o z{I*JvdMN$og@LPZm+0GA8-?Gy{FUas9rVcf$g}*+S0%jfUuqlJseepp9{$iJx$U76 zwO;KUTIV0yYuWs>(*#ev+^NF?SqqmK4w&{_mW45ReT=0($~`x-B#Scc?o-m+#7c%K zT`0M|<2JCB2X4rNe}^Nass=&8U9JiOyKdGL#Qtto7o_*XYz=lWg8*A5^;)!|Dd4RqmTD~O5bj4+H+CbmeYvyk9 zCoUu#&FI%s-7J%RWK5Tg+6i5zT&`)^_GsT=NglK87@z{@*S%!$n$MN#8SM|@AIwf6 zWgLVI!@s)rk#nF0y7PWj_(!>sndjsU)=j4NIz%=K0)ggnHPx;mc!i)LBZ2W_$?gv4 z)vegOdl!`f_A)vkyF~SPBl6s-%m}O>rTvE zgYVebnhswvmE6;(>if3%uYXAan;N*vj7ZopzROT=qy`e|tV^bQdtYe}N>Y0qx>*-M zmpSv)=R9pkpCp7Vkw8>p=XoT|n!fC>V}H52Z#a`%bb?|^8~L^^#jidvsqDbg6A8Ga ztxYB~^W!8Hc{@*`k_Jo>@h_M?w#3s|f(vaY1cN@b#UJ6otpsNPB;6^;jlb*YkGo+P z9rFtun-4@{?@YU+)h%)k)&%ejsQB(<9dHu>wk}Klu>Nr&frPX!!w|JON$J7wN|Y@a z{K`qZIM1NR9#$>CMoN-s)xzdO&ivgSREx+Fxw-sECFt%>^m>Mxor_XOs6ly($40J% z-sWQ|$^eiOnJnXkxWc?jE+h6~6us+hAj>5l_yX&Wr;peOoIt;;E38QJQ@+%Bz#oo0 zYM)BFg@IjbH}=K9tsx)eCh?kDN^l2x%lb*{!N8a?Pkj#s{?ayPHY&@@17k_vwLuIK zC-OMxe<^E2w*NhZMc9DuvzPi0+5ec*HBL18r4?5LAcmYY5nsEqV?u1LE60~oZsnY(Zx z&%NZ)Qi!_@+YOywZ>Jvc<*;*&Fzn8QUKSJIV}rcEKo0CLv3Xs|6IPY&{aSwZ>3yIt zfkNfho#tJivp}Z{B@$jBejA}e=NP49wo_Y~B!Ra`O-i56L zmqE`OC}fSFxexx^$?D6wOM=v3G2Yuoi)yW&Jms zHDIIQgOPXd>B1{9l$olS^U&J2mea|qs{Er+(;&Pj=|4b*OjOjM{L zZ4O4-H7)5C68E<<%tHU<3?}6->$e&#e;#^a|bRT6RN9`?)1J>tImZ2Pi<!{Ktc#6@sLHYOa`LIW=CARvs@^_J*8?LX zrqT=%Wx8*_0XNdCgLNHU#2U24SS*=Lg*#HPBT0^S%Q<|J5Oj*K zhS-Sgv^JEE8NaFHbExW{rit3)he|AXmWdSRq7pl^(P+?-X;#Pt1|JH)r3DJ`YS;Be zsAanQA9ZXLqtr%^F$t5v)0crKz78Y8cXKAtDL$(e>~g2O{gd6kgwsq_@lM*Kq)LzZ zp7nQH_Q&v_Bm|y{b*gXfM>F)TEBY2ENq|(d)2ks&nM~I@?ql0?>^0mmT`-2d9kEc9 z=|-9|=uW?>EzskhNGr5>6DG`vc**!??M=@WS_5rr~gY$O<%tshq@| zYTq0H=K*`s%l1gE22GZjg|W25y*;zR`n= zTCa*gE*yJN55mymAy5~G`66($BzQyncN2)_LU;GzO#-F@5KC6Zp6HLgY)QN85w7Cr zPVulMOouLm(#tCspl^5u8(v-P&Y9?n5({IWwDXYi7A*DFDeL|bBeIvL(3?@tOq9>7 zGvNNi%{pHTUgKm82-~9qrY(67{lx~*(`R^Ha_IZqw-$MiiHs)2Ym%U+55~G-)A^3d z9v%<`)bLP!lw3E597N3q07>pt7o_k*YuB=!5HxKT!fMN4O?7u9`oJ;il8cuqLBe=X z!$>I@R^<)~offo1pu#{|a6No0=od)wgMpSC-re=~&b4*kUu0{z*ZpA`M*2wMrYs7a zo9K%v7-3H5)xCat6&LtNXa-s!^`vaJXc|i^YTnGeEeePwrO2GZVdO@X+O34pznt-y4V zc$dhu7n?=(na9fC-3X(s4UYVltU@8A45Ez>&?T^G;nGMNnuS!-B>eLKDDPjpglW$* z>=^{;JjAlkW6otW#`8)2?+7TX*u&n2=wQcWMiF$>}{W5;HU8hUn`9aot+b9MCSF+o1K?T<|rRa0~dc@ZUg z7RPcA5=06WqplnM*YLV8V5;|BA6)ghDm0RdH*Gf@N94QeK=CZfb{56YgEdkw+>#Aq zBhofBShR9x_lbPQ9pgjLf$}O$$Df{gsF$8>73SJ7_7C4AOnrr%vV<%H<*t*Gw|vQK zpHfL`VTh$omxrhOykvp7aSL{t6;!ak?_1wp3$#aK zv`KM-&*OE0S_`7fjLa}&Xy!QJKEwTvjbgI?fS@<_*t>qQLoiA!X1ZY`v;Ao( zfDO8LQ_W9WrreLUJhsNmLJ!%zmV>{?B%C(5VW#vmk)9;D<+j zO8eLTz%HXQ9oCMmoS7gOu)n$`Bv9=4?2X}2`vsA}(fKARV=}>+%qa$QKrpORk?qIS z`K1-^nu5|tzJ^TV#7U^KJdnb|XaV5fa zWysToESM54EJAZC>+1+H85;ooiIqOUv*8F(zkIESBQ#Q$`7s^oY#^Z6O5^Pj&pTSD z_G$H=ziB0b+THZ0ulS+X4ybKQb~E8IhZ#k(iEh+9G$-X1W~fe_Ax)9s-oW_{I`33- z&@dy1o#knmO)SAH;ecbXWwLZP({tcVbQr1dbsoQw5a*|&1-+Sj9I`Nyo9qt21Vbg% zZwA}r5`w+zsY(tJW|vOrqj}*F*!hhy3k-B>Aky^T`geh-Qcv#F*O?)wmSA}W17<|F zVLNX^XpilnZ#v&E)Lb}e-U_~&N`U#b6a(F2TW&ud6WWrLqzq*d!315P?Y}oIm7>Gc zjCDkG`~v*~VH^q&KToM3@pC6=Ynd4_g>~L9>bdxGh&o1ycl_iTYm|ZZadAQjV5(lTx z<;zD9^EZ~W&V1CR;wsQP5N7HY4D>A(EJe>AR7@PKdJDZ8DK+3n0kq4|>K@}>?n#SQ z!&ckI9$5RCViJD=z&mA}Cp?!L@A$^@813YzHyfF=F1xYOe@I*;z8MaBSxnrmb(`n- zwsxr-A6ESRp!@HYQrYXnkFtKt3T6|j8Gf%eGn&RolQwxl{B{2$Zvb!@ zHBoNOS&HqDD65xpJdO|fT4c-#2YSzymiK1nAkuesVFE+C=Ka(8D~W*6IN*$@52fk+ zJukPt^$azqm}f`7upGQz0j~ZEIEpUx(DiUH23&sTx32XBx0!|WZ`srL+g>3K+e3q% zjhhyf?YVL#jXa9}uT$F-Tb{({(q7WUb(D}z$rS!LJ4fy(e@sZ0XO#mruM^&0%pM?W zrMGQ%UuYAjyZzIYVx{hKNw(c5HB2z&R$7WU3iRF7W_Hde*?&bpo?F!|dbMh++|mT> zGF~uL9{+z?*+=`}TQ>)Y{`RW%`E>Y`Q^G-Z3ry6b4)3PM@0j#t;aI}$q8)~+4>8h- zgrefNVHFI59*LJ}=?)g#ygG-Ug(NPM88kUzyclY}l+Z*0OB($HGukxcEK@=Bb zAbNl(_)Rhw&6l2vLoxtB8Qqc(z=E1O*hE*hv4r*{;Uc?o!0!+u#KTl6T8aZ*BM^#{ z;cMw^6Xy2QzD0h@nb*lvoN~X|V&Cfr{TIS#d03=RO9N5MnoBVH4C*6CW`N6Xw!RSl zhV5ZbC29q~lek&j-3)Es^%S$;Lad)1^l35nKKAB^s9T;CtTpMt97WQ|-4>b_@%&-ASwsXC*(592V((gyOW(8DH_1!iy^q^}Yv; z4S~K)S1<1irV(e>>t4{`eL9hewh4ys@I`J|2Op*(-#(p)7#!+oh?s^GE{M~QvsV5d z4$!y7g8kRxvr_ZtzO_I$yIs+gA>nhBsIYDBgC*S&bQ|f`G?-+nu+<>hsFftU(!Q6G zt$`MZa;UP$$r&20kU(jf{d};(4Od<&`HDW1`Oho>S^02;2Mazx4&rCaOeqU_piujh zE#GoOzz}B~fvykeWwFs+(PR2?8vhi!mDtSUm8Ih_n=aw!bi;1P_ncN@!$4-sm#1kp zLAsDw(X(UNeBenT&UpXY@F1L$%-3G$<|F;Bjd0^o=8M%Qq5+jT=r&oYTvu81h5i&@ zUpYmd>QN-zkY3gYZ6Nn0-0l{ zw8429myvWoQE-Fj{s_A5CX051d~kw4l)JPOQombbG@FZj7F7kh;pAML!MYy7#5j8R zYfpX(4y^B?4ss?x6C*!ni7zlv(k^0ruV1goQ_L=V*^VJxZXL_sWw3Y9alIvFeFHio z;K%P#7I8fzr(oe(#Ad#5aVIhAb&HkuVN!LWt?mIM%xw<`v(<>7b%Jv#!q3J8&^e>u z(GGIyc9+;PG_Dq)Df_99*i}{d6yF}ycn_z6d~gYrLkkuibU{BHv@Abe4$r!I?6%5@ zBureJp_wV_tu8(!xybA6EB|L6OSzWOsT7jeW)!zJVB~%u+ zCGCACA3raQ@59T zsGpoRfLK6#8ZS;9OfBlHx&wtO&OgaUkG}ysmO8y3&DABKYxa^9_0k1xnTz`TWT{3t zzAVj&WGVjG{q^qdLqXp_n$omL-v)KO_UgKxNm6nMiRu9K9{3Cz_J)2Hm!Rlsmi}-= z6Nk@R$y~M-c7?V>n=J*s9`oO@`8UQ>s1lH`G5@rw=35^#KPN58~9o5D0 zsesGRJ0D8y{;lTC0|W*q{9JVt%jZn6;>Izcv`Va6|9nM#du81@*e`YleRitl@v!gM zv{LI3$<}T~&@||{JRwc+jt$rPjE)TFHbhn9_^WWc5l^-#3dg5cR`m*eA=^f%%uwS9 zl*RKnpHPHh3~6pBnY;9=mH%p&`0Et(3nWK%{Iyi*n6ZIbnl;T?rWMW~ZJ}-f`{po6 z+}Q=+CggXS5w^wPVdr9;ju^zRG2n)6{zsOwLsl@ULs-aR{|57Xdy@>VmTFOt8Z>!P zD#!;nby2?&6B=b@C0mm_Y9EYa6*8%5iI4aG`A78eg<;u&u9aGsqlOi1)aE|MTN7Us zz&CKJ;mr_C@W$yVNze|qJ)#JXAbl;_JuHYfdtAu@olUJB;>-~=1vjmAU=0()n9cQ! z9M1E38`ryOx8k942-l zIO#>d<@izw=pBu3s{BQBKG_6g1xG9pogTscBJ~e(jeH0OXAy0nXAJ~; zmnq=ALfDl9CgSZAB?fudo`EN{A9N|b3X7`m=PgSR1I0*|jrYJb8YdN^QW|VG@uNH4oK%04z1iW#;C5`}cSMRxQ^9Ju%TLG=I(sMZK zBaG<3p!d~`2`2`SthG}u`lDSyhgGyq4=%iB3Nq()1AK`AGUT z)YJhW<_)(QS$pAEgVG1T$}8^@T)m>zD_8T3-#_9rN3nvgD6guHPh6Gl%)rG!nUmC)4*981)UlQGYn~UqDFv3LiL-rWpJ=CiMnl(jl5N}^SvmCNBDjF!{I#C z%%4a|-&H$c!1EFKC_wz(z=UZrXoh5K7E~Tq;T}geJx@a$QYXoXtp&Q|CW?5I|14Ox zXHO5dB~}P*y5~z{C_J{qcWY4vb`iv{{6yGhWBqlZ&PqAa#=nwDcL44=Yru}PsElGI z!vqKBHpocy?Tlh-d(Z$>K&!t5S^9|l0d$+J8X?nH6GHJ2qG{qz*L41@%-~le*|2br z$_r>i=+~G{OnJCvqDn?FZ#uNC@h9j0seJ=Rk>-QEGx!A_L{(s~I&ww;ua@XA~J7(v=_pEXHMwCP=5Yy7PiX}jX`vo91 zM?J{+dbo6Sb(#bC8?UM>h3YMw=9fEZvO`j@py}8l8D1u%gKcT}v4Xyh`va|i69vy7 z`9?qfI>1o(H|n3(#a}vgEkph?J`OVJrdCL{s;g(fwuK~%Y_XpGPQe7T>3W&J%iV517U!7xbl)AI=Qaj? zDYng9kT|9NEoZ(}bLu0R{g%P(l{Pwrn_%bdYgz71meiHqbchSMpUsca#=&qfbfB46 z##n<&#PItUy2&J0kFS)^?%z^Yp_7g{=VFf$SwNTEEYE%Ea$-OE+oR!hkDRz=E$oiy zuAdK4b3Z*ayNu508%J|rffV-*%jx^a;GLBgP_>TEhjP90{daS1K0`{v8A*%NJB04A zDB%+$)mS^|sbz&k5gaCbxg9R5ir2xH&EXPYTX)=DLY7;FL9ZEHV9u-3-+J+Q4=;@d zcb4%#v-knAK`gA?(TuZ(zp-DA27*i@tNk`Gv1Z*tsOz z_}+dA(yISnGtWN7txcSi5FUIfY8t4=F3M9YC4GvHLWvbY4;Y%3erSu;KTb8ip9QJ8 zfoIcr(a+^VU)m9S+~*vF9yQ&_Hi+j#7>X!#BG|Z^B3`2mQIcFMBf7eu2YF151%*%N zVfeN!273$UXH)$bFYh<7sGMFwh7@1t0xO_Myl2yk`MZj?bRB`mL`giASPS%e94(xv zYr~$&mzEpZO|G>eIk4+B|2eZa=J6BdY@aWG3Xu!k zNd!InCt`;3-Tz+(594mjicGqevyY{!F7tzflPT8 z5kNi1riC~b)C~z~8JJa>__rV12v*(M&VVV8@nSN$G z)qvGdPXl((e78f;QJ)nY>zB}!^<|xl#7j%@QDJ_(+4_5o4dbQ1yMFF7Jly_~^fi$$ z82*2%XKW1)5&>6?m=f`XcZ*Ng1cUZs~IY>k8dV3$HSiS!Wh<9juLDQP5FpEnS zt*pinAuAcHm(6JcwP~Ix{;mSd6!nbaj3Hl?SzMg2d?|N- zk-f?G2y&DknvXk?0^+F!Geu}+V1;w^bQ$$lk7 zO(weq5U?QKuk>BqR{tV+l#V3Y+GS;cA>v_T(v}e#qn2d``v0*uoki4HO#Cl$*JCxT z2fb56-8C`fjZ}HmSbP)b=swz?n>V;K2*g)&lh#AzPD;RVoy|iVuG4cAeUSYrdf+hm ztJ{)oXJ>;Dt$LV!2IvTVK9hRj>KhsToi@~gR1PYQzWDJIYnW&}Q~Pv!8hjR)DXwZ~ z;WIX@SjUw|56Z{@fW_J-Ly*~&+dnBUN1h~vx1P4Nu)Z~iAYGKfY=XxQIuy}~tNw0K zAnX|zyI_qwyr*RqWn&tWOkfoD{B;Nu&$X670Nix2w}=F8hB1f#moY#N4U@B6y29V4 z5-ut4wG`X})+Z6f`o+$ml<4c%(Rk3`vFuaUjpw6&CA#hs#DzqAkNe=c2$o0bPO4H8 zxMHu_kmH}F?@{m@a###!jWeK6B;QZ;2#@F>=5zCVnine!p;uX7G2Z9FFY5K53A)fr%HWJ`R zucyQd{dXOjFErQIyafV#ksiXA?m%%70V-@vk0R(j7pI4AAKADP=k+<-GM>b^Y(gLb zu>-4zrOzTIOPTm0*4V6kT>V42j)9r*l36NRvZy(mZ8 zocax&%YybFVOKo|Q{Tvcz_|`yy1!mtcj$cPjSf*(DqyB%Jur&~HDDMKh_EC>BAjj! zuk0efs1h!X7UFbZ`vLG<^J>?e6q;HjkPBr34(BM<=1!_eKkolEV8n+?f!^%ZD^w?* z6@g!J>U*v*uc>MeWzXf*rhhHvz-4KYJELp&3xfVUd0?pR}|h#Z(FRa~=W^b^XhyeYI0zVjTE9fR?an!q~8=KUK~ z3;J?3pye=Cc~_6F#onUAdU6 z2L8qe*chk!KEE9ddJL5rfDx7tbP_F2FQyYB+{glBky9CN8gICB@{*WlVp0qQ{V>Bz zS{@>&O`Fn`_Mj8jKg_jTlkha#-h%%XQMC>)n&efExXh8~ZKpY33wgC|jW13-^OrvV z`)2=hY4?lk51^ruU4Z)j9rn7D& zZ?0xBGTp8}JH(JfJW^;>e54~mJ~*cB=n9Ta@`0!Q=hgS?2+z<2&E)uFsRTbFhpA-Z z=JZgAjI9}#he@)uf82su&EkMs6CA$rB#apurmy49Gjc)Dyt-@C!PB{Z33SXC*J#jH zimn6DOkOPFgQu@S@woQZ08yQUrj!;SQ7q=l2+WXXy!^Mw& zJPjkyEfjyf+lNb=#T7ur^IosA(l;6s)H47mrQ@tGThSk3dJyN-wiBv*WDPvu*AZ!7 zMtD!k(G)epmd}~KVe=8UqEmLOw0l7`ja^JGsa3oc{#B7eInAT z)ZdSi7md+1#Z7C?o%29%eX5fW6zV6>C8H`0zsk6xzzjwC3O#Nxo%R$?!odD9wLD!v zcov<_t&cJLILWfc1kn8UcpO{gr*9j9Ut5%FzpYdR>=~`D&EU=VAT7%iKu2%k(KU!t zpfWHjx?`%cHq6Y34p}T!vN)8K6e1PIp|CT`E&&KBcd%NGDZ^+|xw|*DqW(JA>4x84VK+^bWNwXyhUPL}-WtU~ zZ*S|HqUbswG*XIW7r9E&5KL(4yihJ`lKb^=<2Y>PytF>1Bar_#%+D1&GlMq`;oD18dqktm5Bk* zSsEc4wwm*apbN=#iB*^kOy_7w@Gt0ts7a?$eZ=uPJ~(Z|<7XJ>HHz+)lA!N{6@^p} z;i;~@lC6N-SSdfA=>4fHa+C5esdO^J8!psv#c=)l*_Yg3z(Lo6RG)-ltlVWb2b(yj zA?8zKe<`e+(6Ca*)S6|aB{p`5qNZx5t1A34?8$=5}-a)4gUuR?~7 zzeGE3D2NdDr(Y%KCm>GB{FSug`#?T81S}InUCP3H=@!2aYy>K+Z_zaq`a++w z%(*;?Q=G?%cH9zIkQ-AgC|tD_P#ZY{goChtf1hl#b#m}*i|jhHHxUsz)Ny%0p=*lF z{knM!`s}0!O{f>NW*+@r6`v@x1k6`nkNa$&JjKpXja{)|`t&knnc-2#cG>M@O|(V@ zrxe&D?h9Ux_jcKdL9kzC+nIwGIcw642re~5n(@XXs{y_B$%Go_)7q+8_*?YP&1ep4 zbs=^`-p^!Pmk1Yy!SCV*$iFN=7NsCOF}~j8j;eG6PN{!%UPvcU$>;wDm&5rUY^^VL z12>c2s%QU^1;bvxD-y#pVN+}U-`L3hZu|pHa0G91dJa1QmgQx9rxQSw+RF4 z*zxuSA1ND@8SsJS2KQgjRU9M+&STYA;8c4mq619C@eaOt+K2>6C!nVt{aP$)&Jj2s zYySsN>p18r$eKjPRXsCXs%RKUeOtj`N1*S_!LmIz6xKL|d~J(82uz0;y|t;>*n)}u zYTV+I{7&=(_7_5(bM!*R#^0$q(8-YYAVSy{$jDK1NkPSKeCd+8x3yWogksu{f%2)D zA7{!QB{-2gv3Mh|FI%_Awe|#XDm+Ii-4od56c{BR$Sb<&p1#ld`n?s`%(YQtoy;Ee zo{J4dJM!yp|2@R2(6EOE9E~MAiuERP8Ya^X)UA=?aSl&rrb31B<5I5duUEl=5g=il zW;LJbf%X3AF2?oF{DAo5R(Yne4XH8F9pP2j5_JA}g#MNmmL|DC`ZYP3!F-Aq z2^%=CcCP#hV`uP(Afg@gZQNEwMJCj)@=oS?%F^>z#^K{LZYci}T359v<`}Myb*X5J z=UB0csf9CBwAw-XwLE|(!m!TCgR0T71d8Q?z38{HMnBj?bl8gWR)}I9BiDDC znc;v#YjXv8iy=1EzYCfG1&z1ShY5h2pP26Idj139=>=z(;+xmviCX18qRVHdhvk#7 zfDGu!9^q=i#O?2=)J>O1t8IRL7*TENyi6PXV$(L(dYvw>Js8ESZfK14nT`W-o8u}G z;FVSEfY6LhejACy1zopn$2ZT8cn?1%b)RuqHnSXb@Fg&#R=8G9wS|1SYF~^EEAJAF zHP@dCJE@BZJUpe7r967i6_vSQM7G~TdW zxE;`+;c+#$0=gAiwP}~iD+~ohD7YJageoUm6PdxH69IS&=dTJ^39@wK+vcR6I`*hp zaEI5`TGl_Oz}!*?Ok~mhq$2bW($MV7c_KT{ww9z${#~#^?f$(h&<|GnuJ=PgQ{>QD zB~`sB7#CwHW1grM&ctNbb`4`vH*vZmpL?(#jdlIKOb_0y{0%6CDJFJQa*p+445C=+ zwSK7~8_meG%;SS`9My{sumN4AC?q`?o;$(ba${UZMnpZA9_iPmi1W)c2K#Xy1x{&%cH_i65yALauC~kS;4S8}gf2K@*q?GBRHVU3!b_^Bq1rn^6ITO_8K6K;w-b6 zd_bFGVCj(Khuqxm+L;$)?Of$QTiln=4*G&dQJek_C0I%YcYm@E|7)dr*ca^nvOoem zXAd_R5%0;X@Y&BUj_OAJ;iLg^HZnOAz$IJf;Ux6~qL)}!(`J6^ZB4+@-&&9|XZF{h zg1$=7w{fe|JG^b?x_7IEe?3am8>rGD?b+f53t%R(RmbfmJ_+oW!}f!bvOznF$lg)M z*<%A2&>59DNu`L>A%YPs6JIw2#eRo4{4u_dTeN>6SOQ&_85V|OqomWSrZ?edW=|CR zQ!JlvI!YtIsziIjA#7WZ%Y4hqHPTc{?OQ5DFHV=}6(A-PB=s*3O{M*iZ)}k(6ZU+a zC>}9wm)T=eYHk_@(3du zk6lTAxz|`e-?eMNav*GJfi)6xSo+DF>Rbv!CG0Oh2=PTLqt8TMm*n{$OW=g{2oc%OA~9xB!t3_qfSkP9|`` zu>%&n@7O@vw}LN|Ki|}{wkN`TK&J*O$Dp57`CZcn-#5M=jBHQF6xlesTi7abBINN0GXg?j5N=K7SK) z)OEk%?YDBdYfmMb$8(6&)Zo&cDg%Y%zSVb2zy;A|%U1Lkez&-nGULODyo?DgROhjW zHxW@z*l987dlF%E9F}lLbQHOZE7`qEmT?PM_y>E}*8*(I-SO{tBaha*3Yy*V>JTX@ zi2ITl%18hqNl5v@f^T76*;9dH>@L=onJ5zls-3D1#lo_T!8z#FsjzT}{uzB(Dhd@> zA~V6lY4uHhygpt>ld5Dd!@KLCF-__|Qk-w0y{hY@!YVZncyELo(tnbtwq>Pt zPD}EVYf}3L_EN*sZ3S3x9QZFgrK6vhfU~##|4(2jJFW6K1`f8A%>-71KsWdcV)1xz zK__OCHWZh|Gho|9+u23pzGVBR-bZd#rfKOt=d2v##$xC^cM)G1*sRJA>=Ynwcfgs! z;@(5mo#f(+e_;32R-C7=y644Y)mMSOaovEW`#0=&WZ$X-*x#@U)!5}Ju>6ndIB5-y zVjYF^7lx)Iq7%Q1->0K$@=tY|ls`;-`Uaw;Bqc|M0@ zARvF=MBN#(E? zL)#nrqQXC97wDjmsS|^`mwaS6V*&>j;LdVnvosOalW1JUKjn)VcKfUBPqq26pm4cE6^G%i`ZO>K?7NopfA&nbW$i;F>7|2 zg_ljt?c$&jQW#qkjc_^de)hNaFGq{K?jxY(mgemdC>(ZjctQc+cKvk}L+rNPzdAy2 z;74p~7C)&Lg^B*a=t93b-vm9itnj%>=Y!)1+_xl}G}oxFo{RbxeNE2IvjF zix{tZN_0USWmrS!XV5G4?lUyeke-++v+hf-6|isR7nL16pj@e!L?`isbU0Qpgd{Uz&85KNYHp(HUV-ZuF~<7K8dbwD52+v1N9Dxp#6m_*aV=pYd=&A;_dQO^WX z40wYAptCS-hpX8)nzc!(X!m6*SjJo%M%(Ohs5m#o2l$2l(?U6ZoZl<+xm|)2FTsa& z$^74d&%Zt@SZ}3UXV(NZ684(GBq@pkWgH#=))M^07Ch*Ci_PVxEGb9ro0qW+LIp;I zmNaJ(RCSp4p{sFK!f^?_sr_baU=ixdZNjrny|;u)-vD~)GS|jWqA!r(3cFFa1vclH z_Tfycc5TT*>^DATpo@Of?>&!muiMdEAR(MqSx1XFk!-x$hKCnyF{n31&0{tV%LkWJYiw>l@9IZaY7y#qq)zIL;9yL`Q z2|H}ioa@7&34hml%3Ve9)X0pI1otaVPl47i9ZqZDtpc3QHyDWGFY1fBjVd*6Xlu7aGyb-=!$q}YSA%12G| z6*T?-5Gu*fxs&8|ea~L(j(vJBk^+l{&W`W`^#5sg8+eB0z$?0n#D-%0<5jUb6eGbp zPu1K@zuWQ!bP4S7ES?Pc(r6Iw!GaK$KPl4I2H(mvCvJ|-q~V~Ua0so?H#bJ-`kqte zzTYDEvJ}9Ra6`0H0K)L6sAcyl&W)~Fb3^^GX=U_6*Q;Dhr8(&PPAW`TRaIarD1;kr zd7&H>_(v89Tg;bZhS!I2^1Wc1U*WPJI34{z3YNR1>lbcgfJu*rnZG`Wi`ktbKKEEg zx=c4zy(gRWT4F}^65HjbpjRiYNpN`p$+QQ#2)@hYFKx?dw(4XzR-!qT7;@F;5wqtQ z8+o(aX`>3|Ok=F3-!S0!9Sx<-SS2A(l~eFzL(MI&VX?W>VFB{2d`F{!19bYQ4H2Js z`lIEMHJ2~brA)L}(Eg`I7?td(C6x&=3ll?4Rn>dyb;QDgHgM!E zJ&(eky{sviv7TA^8)Mvaf+lt&;#E}86&qB5KmVTdwGX!~*;=iJj?2S*u@|H@YX zl^=t8?s$-6v&_kD6TpgKQ^URAs*wda@ruw^Nk|BTnu1L?k4)pwmgEj+@FnUFSSp}n z0zqF%Nt%UKL&0=0d8x59TjJ-2c({j_yKs_NL7(k*Q4ryT_To?=l8%Y?PNl?v48X2~ z1E_Y@rl%9uU##v8Z3I0febMFG*L}e8FLg*AnC(+RPakYOVCKXRtR0dXo_pA5N>Mjg z^vt=@&(oDaIt#+TX*TYr3l2%r2LuQk2HLJIh1RZ}DM=(Gnb1?4 zE;Htx@qaDO7zbSyQJ^aln>JOH{s54t~Ocf^ zDj`Wbf@z+7s$^w=Mk{04Q2rL0Uji(u2ylMnauBl946q&b?0izk5`qM;bI6-1x>e)U zmXxXhJx?M`gP?WbF;7iqle}btJlI$tfl|ZimR>+7$I#EeZ~4FBjQuueAMrr{xH8lT$P=!xJE5D)I?IAQ z)4_@o*w-xRX`c>~^pD;rQ8mii&PO0J@n4qB3M#Rp;Q*4q{wiQxOu-}^zVHq!4;oik zatYQ&NqI>tR-v-Wp!*24B^uZh^%-k+p{MK2JZG7lkIR8c?0TckR^LjzO)oG1fS4bp zN1{Tlf@unpqL*tbrB{=~P%Gb{o_ zI+l(2IFD$TwpEXtn$mqE(V~>*eYt>2C~O&`9@!`1bfrL=7%$dp6Hsk2#P;$*^&FH_ zLzYR$X_s@m46xiC^>{>dI^ds!-q5EGnXYvZ?j@Qz(j6dP7gvj_KX__J0i4M;m%NwA_v(uMQQvg<_+X<+0UR>R zsR1~tk2?PdRHDIr_WOTO$eLf6_1Os8`}~|i-;+o!be3>gge$lRZ_((|8OTox;$3>Z zov<$1yzXs2SpQ0I<=kX`{_*3qN>5n0zl;}vGUS%W`0HJBU%-2lP+H#)PBI z)n}#6X>@1^G~H&|AsNT1O^1aJl26gHu;PElv`Z#vy57scZd^g&UGVH@tCindwKbuW z6`xD!LZ_7qfd!(dSnUev)kzeq#K0SQOyJC|flGl#%r8zMfO~F$BI@VhXPRDj$f@x^ zJ2+=Q8DMw+W%86O9>~QWB0iDN4>^lq?rICb;WOFcSIcvSO@9q5qxQ9)1s&%aZWO-z zF%vxY*&!4)WUSELSI9UV8b55k`F2BL($>}Y6($4bQDP@$LLlR{hj9q7^^Ja5uDfOD zG3KiMN*w8}`TfYE?_@(Yk>@v-5IN|fL&0&+*qT0v&Nx}}LPaU~-}m_`>vBIWN5rQu zQt=V!-sx!Amh<~(Gd2wRvw4zR<^U>OJB%M;`D1e_Y$u6E@n$7TMME3X9$g$>RUMr zbZsC0Y$LZ#7Zoo5n+Sm)YRREd&SEgv-_95N6-E|xH|GW$S{-@RH@oKh&jvPvPSu@6 zwHmt%RtTNoy!5=;#wQqkDoa5BOU}cV=y-eNy&{z3ZyVvi9w>$O z!gt|s=uB`5q52>nT!-K2{3AevtVHEAIR5x5{CIkR;g=FxK`?9WH^7NT;Il4W+W>9QlV@5kUr3$Ifn6fFRYYIN7mmHD9Q2#3-Mn3V#la&n zzs6lbDv+LcFU+II+Q_)hW?hJ?F}uoWj%Az(FY$BB>g+onUHmVgB<8DN$Bh1qfuID7M8ycK57ri0$uKAFs zr>LUiF(uvJ0R7ycb%_8Gro`J7G*a-KLLeHiPBOjhNghwNj+EtcLFo46R{=Cpn%fXX z1qPQd=`#7KaBKYcSkQwOBUb-wcS#o=E@&V@v!WZsp zbk@K8Qxf49$D?srt(2lt#Ou6ASOwl;Lr~(MEJiCi_CUqi%49r`^+QOvhQ<0Fb9$#G z*Vu%!XYHs2Q9wqq2k0{An>6KBR~lu%21@N)_E%#voWufT`BPTb7vg)x*h;TvbMrgC z)5_&gLPbATv_N%$=zVLPM$nIyEay@4V0TKgpGgs|`DEyUH?gX&)fRNvxRQ96sV}qs zHX&~plIT#BYzR_+T;o2$B3T)Wgb{@-Z;+eEq2x}e!P25Cohg417GQrF>09ClMm6#y zOEc;cS3K%$c2*PwrNGF<<(51^_bAU8J^K@wm~s#T9OW96&~~fwz>$%Ytg-vp7|{;w zQ$2H4=8~5E855_gIJ97Mz|ID;geGFgO&Tu+7r5$ha2#D}QdrWws(*SE^?T)(ZY_d7 zAOC-JfZF`v#gn2?ZR@2Z^h70jbgX{!m`B+nu zA&2&7SRfr5mSqgDfRuHbfKma>-%x*z!mb8zaAP}T(n3llUx0%2b&Hl<%b68BdU!$m zal}v7HVnGiOl)IyG|8ng;%s!$hK@8x{3bj=@~ze%IXC)W7dW#aqGjN`;b{wa1hrD9A( zPb=lATR}F+ax_(P0yc8fr6hQK$(9BF=9`JKf-zxgkRg5Q_cv<_`w5VMF2{%l_prdm zY(fl(UzX)6b<2dFN~cIA3w#bpeAmb>)VX-LyPVxcqmuD8*(OA{jmrjNTv41CppfTy zglm0M#_#_r#8^l#*H>w^y8FrDEf^9wExy3j7;jT zC{rzTq_ta(MqRHs*j=a;F&i^r7(3SrP+k?70M4+#+_|!hvf)r7O}R>7ZPL(m3(SA_ z@&>@rln3-d&;BX5jDre?2Pb=Zj)Z##?@y|!!wN~s7F>NC{4(mrz@Se#M|~Y;J>@y< z8t@2>A@u=JM?y{|h`poX>CNJZ%Wv~>o4n{#DilrI{fK_`LjYaf6hdR980ynItA@>c zqTLiSoDp>P{@s|q9uB7G)X(o+C2+b@^Yr%#@<*X#RQLqr96%xRgV&Fw8;x1Ud$UPj z(y+chc4UkSfivU^tJohFbf7$XN{N@Vyn*4udZ+rr8@8=+lcM4-HX@;KH3oCzxSu(( zQxpwB#ZXr3%>ljxI1>geMrLX$n21XAn-8YJ_1Q1!OkjDfuB=Zhkq#DO_&h z4#dQ*56>zd-bpUszt@Oyzble(O*Kt{-FAf#dP$u?N}J!}e8~Ydfptq57EE z$uW7vUhW5!V*^F28H}k7!xPo{DW)&q_3k$F4e6kL#$0TjsE3Sgw?O}?ZzIU++dXPS z|JUAKL{;^L3jjYf2uO!?cQ?}AAe|D564FQ`-Q6OHbVx`e-Q6H4-6frhy2C0- zfZASnr20BA$sN-FjaYafz0YK|#EicE)pfXmpfB+AlITc8@5I0HV?x;1>Jz(&>I4fC zx!VHW@*cbf)yayHKj`S{m_wMpg< z(FVV}b@(_j0*&W&rG>Q5tCC4*f~0nwSWZ3r-^JIl!t9Zp9emPUhHWn5!dl_CR&cOq zlz&}wWO!vaap=w`_*a%ITthG}{jb(AX_8@))7d+f_B`&R!!B%(MMfds`xj`AVW*H9 zf4s0@4tL|_^VSNxC5qt;D$ID|!QWL_r+@zX2*O?zo1=#l^gE#4*8IUHXXMsG^9{{U z)`Tf-HUt+g)8CU%|lNvR*}6GMDmqNx_8cBPrMXs^fH!O;H8 z#8h?jTb+oZU?l4e zmCM`cVAC3PFNvL3ClsIYF!Un^J4tlop7PHbj77HU#@UI zkA3P`06m%B4tItl(Cxr1GhrG@tyeM{aDLg5oEnggmE(5+d)K)beYihQl%G*=GPufG zFEvvJ#%atGzIue?qAM18hfWuE^R}nn_FA~&sMl2GmvKH0g6wypLFI+o%24^E7!cHYizu{yu#X7U-@%#V_*1I8XGa`XM@pwOQ7z*YKYR~*1TCJ zinZ3i%$Mq`7w0ch{<^QrCw+tXrD4@guut_4sCyi7I<!u}wMEK7G#53--NJS?=kGAm(lu)ok5BXkOPu)pnf;)rOhNX8MrwcI+MfrC};+ z*A>@#Mb9lVziR(5R6(nNFQ%t{uYk82*8e@$@naUt2eo-b4i|WesH!KFu;=XEHvZr= ztF~OFNw#?wlfD#jf{<8rq}aDEf=^xeFH8SLXLfkxP`&9FgNx~W-GDu4!%O-_(7^=F z7sv1JF&z<=51yw6S2Mmxrm9X;%bl=q+N!24m9FDtVkr!24qL5nTKNbRl}0^E(CDVL zXxF)?%_U5fu^e%BTEBwTMp#5hA@et)rKj zU@v_BDjw|Co;ScP`)cYHzfD3x+?#0BNH4#dFOf@6^j0=X8v)S_no&Quk{|9>Rbz9KM|;*{>Fqj7U`ZV7fXoRppfUG zg=p%p!6MEhfUQJt6BkGF`hu%(8QMRLbH$S>L>__K#`;ls`6#$mDoLB;zSImOU@aZ) z@)T~h1P?u(afZEBcwVn;eh^*A5=@58Ln6Ngu*YT1d{!n$7eFiRT`Ei&_(o5bZe@$8unnXtdq0KJCOQR z*11s;HTH~~`C6b(yj?lsVf7b2ycflq_q4JM?`~U%DD~CLuA>;}dXU{Q+Gv&sP3#>H z`{vs`riVg~vR;=a4!sXeaH6o^mg1t*&emvlyBm#ag;<t!h?^0U-+tufmOk5G@jb9UoTNnz)o@BFcULEAOh2z%jk&WjVZ?2n%H!kKVFg?}oiNn7hGeRw>t*l388oDBDF zRjciMH?`SoN;M6q8Y?MVpiL(EYBkJfbf^(3#LCnN4*Ewu#g>!pn>uvVS3#+;Cw8Z< zwYuq1X5n2~9bXQ@pD`p0^vbm*6o-%Har`KYpw$+@)e+R9D*H8ySc)jSE%^@;ng8Op z;;ZF~Se0X@rPJns{Pi*(k8Z6vo<9?S%;5KzAE<|L6K$Pg?+_X=-}{v(R@hu}d(Bt; ze0SoA|KHWEq0V_W>(`guRw3O5qPYov+QuJ#hmC8^xawR&&l{qMZL;`?c5;aBTUnT& z(N>+I)a4R4V`1<3l%2sI>;=LTHqCO$oeV48Qznt_;tw1CmTJuP+D3B5xiop?K0#{u zQBB0p+pVScyg)I5lNB-=k^F%6lZNu!7N-HFGS>A%pqpBnsxnqUQj*OpH`wbW!buwZ zM={^Mv!q6>f;x^1Ju#nrWUuB-%XFTX7k|g}TD4!tVs+Ca2ULP$85D!tmA*F>Nn5*ktgd+u#h#L&Uez1o=L7(881gZDbyPuN&naqdd z31@OLT}sZ*jYxqV=)5H<-eP&Xr8}~C1K}kZg)!Mw^jK)aKR+1v!D{wz zgI*gOKcVn(?05MAdjt|?sH@gua*Z(1Yj^FPHqyqkGxJ46VtRf2$8^bLLPjt*qMoV_ zXF8IL(#I)Q_0d<5yhbe^--(2MjU6TJ4{MXJ*b-Kw4J_QM#wc($0=uy1`ouoXNN!8Y zwv49Z%HraUMj-Jozk!l@)zHgp0wWuU zO{n9Z>oAa}qf?IrlcD0R?n&5W!(Ij)u7-1K5+eB2-)QW&p{^=q*fWx*ts&VfHqckr zEoB!;50}fysydW@^^hS!C# z*O*t59@p$$5H+EtRKGx3yMLL*Jlm#tZG%~?lFF~MYe=|LTypaK{wdM^E?if5b%6ks z(wl~VO!%T18#%z7*$X|_HJUtGSKpz6&+Ozp8V&aD7&&B&Ul~qV0;wP2eB~?FSE9$6 z_Ti$=u3Y#6Z}z!w-Pk7a)ThleHxSW8cidzD>23H9j765GigE(_c=GuZp%6t|koMlHzCeZhN^V zeDtns=77h89!elt#SICYQ-!hvpQ_Je5}~dBZY>fQ zTYzyPcn0_4w@PjK+oLsm14=tMgR>75Gof??$iJiPi5UV8LXW3VHx4tf)@cx_pk&YS z6X!`g8MJ$vL_FfT<_Z`y#s7ws6iG z`bg#NePwSPOweSW#LUdh?3kIEnVFf{Ylvg!nAvM)X5N?~W@cu_bxi9w@7=FB>1L#9 zX*8M-BaKw*?y9mS0bQ*BI`^`{8F*kk+}w#(O{K{9X8OP%F7fB46(B~jlAW^%% zeH1t^wT570SFL4h1udbNdojjH8ad8%89);&;l9`FSq$WR=6yKXoq*}Xi0J*-CPw|@ zT9DB5GQ1XaxTq6H74sGt^uiueN?rFa`B+Cl|pWhr+ ztB}SQV09(gt%NNacx)-QP?-}A^R^+gQ$snvi>5%_7BNk7DieV>=tabNHVx>Bt(azLBUnFb3`H%bZ5L*No9Otc? zk7Rk`?{-+tS8eo(RV@&c##b9FQ0*zb^T{tpb92lgcg4hyCt($ziuZ-}8W#Q+*?zW0 z{xv)5YUTD^x9WM44j7D4p{hazHc!$s7xn18|9P?O3HuTh4A%2RqWf7$mtBE!AD9~P z*1?1EhfX;C?`dB6m}GeXjJq|YduPk+vtHUUqv3gwmz();##T7ktY8u=gY6~glC0@@ z&$P>0*ch`lwzMe!yIZ@KpU8@77xs_U{$6~^F&C<@Qu0^j1>c&NHssElS4+wc3T zTiDA|E8|-WBx8}i#J3a1aVmYyUdZPAGJP9lY@pSTZ<$|FD3`)m%5i%(XJ387CHB8s z(IhYHXM?RPdGrzdILeW;w~n^9VV6JBdrV*7l^X1n%|HZr>4vy0E;^4&WmMJ7>8=!f zR{rVi;$Q>)zA?>SaQ8IxCoChz0MJ+gAuYA7v8 zLr|fss<)zT65Zcd>b`|r^qCBenLT~-UJQR*Y8e;eKVArEIMXgc0SkXsYSCr4u8?#P znZ|gSZBPw1tbVj3xBp$s!?DlVBsZtdUP>Yr+gFIGN`o@^nLhx*Oy;wR2}|@953|7D zxj%b#NK$(!kM!Br&1mm7sq@%11JbH3@{c4OPyKRy8kzzlWW*jv6YCpWKTtNW3DG=d zU=3)?0USZla``&@g+II1mFSjL$8vJ1|7(5zuUBP@o}K@mN?PIFZae5CXPdP$rDNFg z$A`V?B(y_#U1(a>p?%|37P5qildT~x}2BOs{)LP~s!i`rFBKW&x-#EXRaq6&-pZqFeG9|9dW`Jw(S zkQkaG67NR1g0X|2D^vVC#|aPt4H=^PR!(c*y%#SpR9REZ(v>iy=b$Ly=THvrXPwVJ=!p(n`}4?>I=(bz3;iU%+Xg zxYn<~?i-*%Cw@SS>Lcwmss5)e`RErR@d3!`LEWv|CKQ4k3P$B35Uj%VzB;4&qPl=N zvCTSqDxs)pHlLwNAV!gBjE4Az@R}Cj^z#7kLNw_7t?AWiRj1CLfa|4Ft_WAiQ7Tbn z+{%}d^)@hWxeB4tpiBeZ(EbbwXptT77i;B=5OiWadzBp8v7o{rmHw*>fomdm=m;7* z(JjM3LpBQdhR?op<_f z0ll~|{e%aYZZWl=e<9uz;7DXVz8y85P`J7oxL|#YcWS#eXh z`1U2cSpa3+KZ3MHu6_GH&ipRxy(0Gbni`R?^Odn8`5_(`#*u(!wa9}}q&G3YqA?pCn9!s9Wol+(B5kF! z!6?SUZ;7JhAEOg(-KXgV_ZpoGx&d;@yKK#hP+8RUa6HX%pNKJ^3DGYOtV%L&iHQ86 zOjiEFi(%>)R+ucts~MB&?Fq5CXfM0C+q^bIi#%PVrPR!>5<HB3VRZ;OA7N(nA=FqR5O?aid{jw?{GYA-UMuzPLwFS2JMj_RY7sYDR6+; z7&*5OA$RFCq4^1u(N#id2N3$e#PHBE9st^y!p(;JhI@#IvMxjf{Q0#LkjM)q2B2!ZlvDzbsgFmsIf zr<_Ij*wTL!aY%Xhd`}llZ{SDS)7dlD`_Whh_;aW6)i`5t__T^zi2TN_3p#JDjJ<;y zstaRAM^7V+Y4Z~4?J(%zvlK@sLW@9`$11121yy!sb-nxSa`98d>xgE zK!xijrkbyX!cF2IWNw25-j66)kfuDTZU3rlYIV9XiqEG9pi{#NX~s(IK{A+5F^u~~ z{f3~A)Km@RPs#i9Y^yR8&rGT0_pTK72?y`JL?v477oe}c2$Z{LNgqky9>Y1`$d1&~Na8S&#T>486a&v4xWOwmDa-|1Q}g9tKh&M^{fmNUm0L zm55SiCOE>b?;c4|DKGo9MdzHs#1B2W&)iln$9tDa15h@ekJgQ#$nSyJyDu<}pOHU= z4^Y?e&*)>n(x9?cgN}dMG#KITPmsrA#yG%^h^t_5RBl>DjyosK0LbZ`w#sJ{N2|8z zsCFtPW#kd3YiMQKlfs@|cPyi6D9gXs-$u?gNGoF8KmNtEl9zKe_ z^brpWeaWaZ{xIy>64Ql)c%Nxu*gCJS9X%i5l{^xQ#NVq3Gm*baEQh&?n99#094_c- zXvS4B7INLJu|1#o&E$r$`QkRF{=%L~`xl@kPSU5R5AE^@Vefu~bSsK+;ulb`L_wDn zm(M&X+4GGNWgKRDDOw23bIFf2fo!CB^A@mWSZ$F@95RXBLdVL$2_btdCzI>_eS~ zR}y^UKtR~bxJ?57DLTsvFt{JM2W?<9c>0Z|B=$6Woi|S%ci_}gM-TapELK!lG5Z|o zDU>pIhSB#kCY)ShUy|Yy3om9E`c4Z&;YX z5gGiIm|}{uX5Ksq%C(B<<=y+D`P}#0qgyetT*D4?P;(`Au0-lvckXq=c4eNbD(Jh9Li*iW$(iW4)QDf^OwiAGLveYdk)aJ<&7o6S~o zxn?DjZK4wPZFTTe4Ld)AyO0#@>nv{AwHL9^V>5G9l(b!+j#bRn7X8Vx@gtWazTQya z&T?yMNbRP;9-^sFSv+zWPdRGod~RRnSzCgU@i2OkD6yOa_0-Vb9sB+f))nTnUgDr@ z1anrg9U^pf^40S5eqSL#WSSR7xPnAKb%f zjf~Nj$KrA*5EEbLY*t|d4R#NAajdj5a5by{B=6!QO(!kuYi~F%9-_lo`QTD;N$ff0 z=YqT{D0r<>Jg@F?Yz&lY+eT20My<}YihJKE2Ny@R z$bnMn5X>T3S7Pi=vpeRLO>Bdkp_^!N32|!c8ZhhRpZr>u0L*nF z5?w@Gg!bR(zTaxonKLeD-qKh$5qD*&BLCV`ss-C;!2RCRTx?V3^1aH+c(5`X2h|k4 z=P~XtjFPCCLZ6>N-kc0w*Z873xx+m6QF499A+@E&ob$HgAVkQRWdsAF5$u(`W`{1p zpLN~I|00ck%?Z{$jl*?Iny^1H_E^xA6q31l&^n=7Kw=D&!qq@4q58W)4ypem==Z}j zE-68WsVA+UmGL}(jbc@1k%p#v*9e-~E4s472yZE8K&+|aG1ex3-^Gf!-aDKL_bdo;iq%25^)tu52?G**W%Vi$QCdd#kJJ!l}lOGdU-1Y4&ZCBL;MuD z-ReAWcDn0~VgWKcw~M?RBOH5+xMN<3$luOU0K~? z8&FU9MP1Bswj;kg{*3l#CuU9wL80L6Jm<~1NHOgBU}JvVFeocqx~-RbsjrfZUYguy zxEM5U&rDP*3wWkXqaS|YMBGRz2o8I6u2_~Re)0YB^(3l|jq0kXk2wBpSWO7ju^48a z`K^U$XWIDe2CvA>xrI~SM~x2SUCGc2IxE74>t?qZ_Y$7YOJzxd7F)@fe}_)aN96;K z>9W}44+(`P@K5}9;BQ_2^7tj@S1XV#BLjq;?1(A}uj)H}8!n=4fdL@&gQZU)z_IG& zpHy_<1&2>Sw8IPUB_>VEna1NgQzZMfp0Kmo%+xyJ^6uh1I=gQp9np!e;*S~YtnB72UPqpp z3|hn|Q%QC;#>YYOC}SNE6rrVns)@by^ZAB@sftLNNEHj)Jd?&U19`O_`1 zH*NwdqqHB4J%;^X;bo>~Vw&iT2pe=hA5X@T$LGh)I~?)j4Z9hu#w-s^|AHD6CxJ%e z6q0su1@9>nvIB|W#_u6CRmD$Vnt1n+{E*x8e;>R4a)lb*o;6azBU5=-GT8oJD0uYk z5?!{pe;-BR*@h?WI+`KPI=Yv*S9{xgL7;`nqdQ!gm9uAVdLp2`nHCCt(zy9R$PhBC zrQcM*oM?#alThR;dGYLH&LWo0{|SLNn*Ku|$v7xnUduZYW~F@dq;Xu1Ws{&c^pF<8 z8U{-`aDR8?Qw1AvI_@R)co}2zA$MywW`^UB^#RKVjc(2uM_BLy8P>J2OENtvWZ(MT zOxOb~UKW`o`ue6%Ja>1(B}nb3Qu4Kgv5w9lqa#c9al&-QR^EqQ@z9CO$y@)E6j#Ee zU$u7Mr;N~XQ&r|`x;(Y^)VZ}sp>xJ{)9;kAA=XoSR1pTm+h56oW+Kip$Kx8M5Mh?c z*3>L6>`C+afcYo-4c>Y(d$vDMAFiE0jtZ{yO+cJiE>fkEAjufJsA+bD?|wrTn>^#iixC9vb6H zgkf<19)K9F#Dlo(gr@^N+^(9zV&k#~vS}Gq);?bRX!XdcQ#tx27gYYjBxKjo9rjW1 zUfm;1ZgltUK10_bV&%}v9A1y5hN#WfJ(kX*efu07i%l0@IWMoFz&CH{x%145QXm(g zR5A@CLa;ujS6ihw-F%9h5@seA=hD(Bw}QZ8dIQ*K`79H6-$4*dFs9_;;2pKykkou- zyVqy!@lGHa{Nb}At{&wl{5!9p@L4p=q`LxDf9W#?mv9B^Y}nL*5t7tL{0N8@#8 z1cIHm=JLhDwETSBsiO_vL*F>LMIDrgJ={sxul$+UR+NtGi-HZ$+zGbA?cD-q1XimL z9tfW=!U4JohkNZcb{Gk+yR`^G^FGA~UxqXMNMPs(CyIjR6eFzWM8CONzb|-RzQR?mD->T2l(hp-K-NUXWuq)^0r?J#kgZ2|p zX4$zCk{*}JV8mL?dex93ez9TVx8)BT_+4fa>DhOWWzW2;WoZ+*rq(M4DskkPsk|Z! zAu6Pfll&ExRiJK@6Hm~s5>qulADYT}tv{;JV5_NO#AWrIo_1w^V_{@YWDrDQ2x4iH z@xFhDrw!hIEXDCJ*1YJchKpgO~^ zNwi9U$hDdN$zYiYOj03R=^VnR@`1_Y5$wkDqgq4mo6QJP7s1nu!}NUA5?!%aCj}K( z!-S4ho~wf!>u;@?i5bJjtMU?UD?;{61b$o^L#d&Y*r9^GC-IgVJSH(t4o*P?=&7XI z$SgH6qK;#}ow7H72lmx(`*O{PzyqrZPxyq%A!$tY6v#R(O!@#=aI%2`(#3+ ztop10%?bBk`r?N&7fUn9(|s>Y8R_F51(jh0cJ6_*XG~yYW~I*Ss}ir86;XsB$E%#5 zPd9t%ZrFwvZ-Mk_DPJ%3(8Es_CX8nym{O8^I`S9h3jZ)WUCajPwO($`oXlhyo{~JY zyc@^$rgu2+D3vB`h#=5I48-}-9UFa6Xz6E(^waM0-KIHQUzuOB^yu2Ze+AcToN|a@ zfKC<&_fvE9RiGU0HP6oGxmG05glb;$={-8u2uf-yk1ywrAK-Vp%gu2OM9aw=-`R`I z7kp)rKV>zxxntybFccM^u~W>tv+E*)B0m5Ty|Wh8uUcU-nnJ;H1kE9=4F6P!ab0~e-9gSruxlIE zSG;CGF0>$fY5R=&p9usdv`mdV;Wc8*{SXgX7u}e|_bj_|rehwQM?@y+45QlcI9qlZ z2Bj!-J74kEC=bbm0v4$3vq}otVExIB5K0G+tS9=xFW`X_)r3x(CKZm@&rKpKtGhdH zi|Y3bP7|nHy(J4B#U;PM=dc@W7sR;5~WQ1Gr55?)4ZN#E%Q)R?AtTTLC zN-`&gwQTf{h%tWfiu9qP9`!$RDwM4z$R)99e9+L^C-BVZI=CFi)ItOFwea3Zg^iz} za3b7ys9Q;xiCOwsUa&r%P89s7L}r+LZ;Um5Z;)T0Cwg)vi|@GOc9ACs2FhDU+6bR3 zUg1JcDZoZOgMVyGRwmJ*E{~>H%o}Kv$=5a$re%fh6w``nu}!FyO(xhTbjT?12%Hfi zSklrjVWgnkMN!}NCo!R#J;`hmhTnR*NBpsCsCp}D%nELamDOCMxsK;fK3vM%{sPbd zW9ucg|F%M7_?)|Xo9aoMVX_2AdX(Q*1u9emue-7!o>?S5il{SbZiL2nVUdF08PK~F z3Cu_C7pie+z`5FhXrE*1N9UhO;GA>q)S0|rUoK^0fcm$4n-@LnaP>QP!Nx{%YI8#v z{=NjtI~<#g(oHW zeomu*S>O5y0c_cyAi^SDuPmZ=S=OuFUE=QKyqen^q2WecoBFU@qy1ouP_^62e=vM_ zx_9%|296}4=v*onaClDw6JNt77Wz2BqMk48NuBK{4LenST`^u&f!gOl2!-4?2ipXY z_(XcnajYLLyf`Thjo6^lZXUvq4ufzPsf&d`yJbzCvU@Bx0#=1zCi=oOZh#v_{rMUnhW>U_ry;KY*_S zuKO~P=f0lw`DIoL@hq!g?~BeE@LSNA6v-hxSc4V;5j8)$CE$};J$^}k<*jH`?-K9m zxBl&|*i;SPx4EY@Ggr7Swy=8!( z8n2Rczh&oKZ(gW!)E`$a$w>?xJnM&5=m5 z_XAKF>1;pNmp#xydeawJ+u@cwtTJll)*hB7{@xR?%)PcukY*)|_O za+;R?8EDE1Qnn zk2s~(653|#y90^l~_3kI5yG^83LJW5|DeZRI?@`H3;eUNT6Z;=DK6_$Ca$A;}GG z*32A#Lxl0^PqhSN;=~gq+~=T!$gaH?6b>VRzA0#bkiQZEXb^Lh);YU9He44B829`^6;lg5 zcd6r}qh&qz?qA5q_WsqYRps&m&NU^mmkcuJGDI&5R2fiwLX1=-f<}ILSjHtFts7DB zarR$LjDLWPK`+CXk;3;&5;B*8b;yUru-@gy9kxW|&8}Az*pJx*8rK1Uw)==u=_Gt+WEcG~mra`X5=mY1< zf!k&v9ZSSwM`NVc7$rP!7vvjukI!fc4 zOOX~lZqus$_-iisd}nd4Z4L*&0Mp<+k~5jD@HP^0i_(gQskf5wnN#-Z1QX6kz-t*g zhOb(I;PB`qGtOva64!q|k{7vS03;U=sg?*~%prJyyZF}h+6z|jfr?U9*j5;Hk%T}O z>R*`RB!ygnlV{Cqlan;5Yl~x_oHcpL!RTlOM^Ffnw9~A0n9V2OO?JjUuOK99-;<+~ zKWbe?dzrm502PoRDxcA}ki$M>O;|M^^)|2K3|EeEdTtyfG2mzv6d^<4Pw_=A(|GhC{S()!Y1xR| zx5N%#rV=0h^OtNlTs}OV3%96u4GDkbjEmpvIzZvJGBcpZhJdw_v0;1f>)7{q&R|@KRjUKYY^rC0bRPQ)ZT%pZ*`Gj{7c$ z+D)fOlqI-thSDDtSoa3BCulor&qFab*3xVE4T&DbFCm$e(hM>o0d&n|1a4R(woDmn zBcqlCnSbZ3<%}sml?Ky^nz8cWY%qLZ*h0LrP#vQgS*dW?C*b_~^wL(*C=xM@AKz2zesFTzrNv24(^ihVHcewp}iwt z?*IsO-S*F5+7{2rP*SU>aI+rS56v@_EBDg%SG4SlNK2Gjwu;HtL4)?5E;Y zETfB(!4Ot?d7c}u<>rA$ejwVv;yYV-#oeHI0eY}~2i98MD@Q0Fz4GDR9xlxiHIgF5 zjlT8K=ol7Q%ipLI2=~p7bT+`Rl zyTT1HXRop`*f^7)d$SHWzcy_PZ?ntI5h!T_j1(kIMu(#W|9+86lXr_uLjp*?#b5+< z^wMMsD!zNpuWt(}S?faTo4H=dwK=UCs3Dws z#=%0WSt8|G%39l*>3OR%=v@&5E$^S6LC+moJfN{1a^rR##E@^r6e?5W+*-ozwqlRZ4FWJA#~ z9=!M9m2}dyfxjh&sdZ%)B@MssG3!u+MgG`03Bt)bq~B>aWcZikFq8>Vw!KWG3eP{V zjdux}L`-vC zc<&cr^o@xl6V$_ypsi~lm!`*syXG&kT`mj2=jS40hFhC8IFZyYyusxv>fu1QH+;a@wD?p^2Z0!FG>3UQa%Wk za>|jpr6EpP)|diHJTwwi`&-DWpx&#Lp&BORydL1*j>Y-H=Wbi zB^InKpIF)ONfSM$vob$Y{@mph+dUeDgV;2ZfdUK4k1Qe{7FwfDN0@YYm>JIhR2}VC zD&^>E7o5|KT2DSox+AT*Q3Fb-1Yj>mm5OPXv=uir@tT9j zE~RV-ePi*;9F{S;W`kmwz0nHrhGrvwRGH@(r^a0Wdw#>>n?p2=x#a z*$sCTFtn#G2zD(j1>xvPivy|x1x5p!lcPSeFOV<4Egr;A$SpF|Y|!u2Y!MDga%3vS zGbAilK~1;y_N_FI2?)ie|6))q_4`eR+$$)SK^%gWUZH^ij$){)`8sm?B51AsR&o}q zg0b_NA7Ec|>IUM>vMas2x0iw(rb!GHM|5^^{;B4 z+(9SVw=l%bL07Ge2x=%z?s`80Ya~_=`haky*FhKiI5?<+HsGIC$>6ye!In(*q=^5J z&c8MJV3f35Hd&?$a~-_T*wc_9@kpNF&zweqvh}Q8T zfOQ2swBy(O!+;P}Jj!XFCZiu7C+|zAe(@EEf$cXz@3%NlzsqqsRN6bPZ#%+A=7k@O zVL_Mto|jdG$FL{<2c=BkYdz6bty^v{ZeM~pQKQ%JEgn=*&`*fRYZ&<`v&d4gyWCF9 zM@uVPsC>d$1cMI4?*6(I6eIWujk?uw7^dJ>Oboq={;OKOrxSpG2v6edh|dUvx^9Ui zaFCVx%~mAyuA*=MW9WZGVQ>rfiS22TT@v0$ukY+Gj>jeT_Am zrU0Y`X>$7^k!3AGxghR&-)|qT9sAuO-i)XhS7GB1TW#pKrW+D{V!6Fr2r^nw@t ziJfwM_uW$zb!YwdLWii}0zqCnWFkbt%CLW};yT%)U=l#VSs72y{aunfHQTwD1!Ql( zx2VG?x_Vv&f&E+YE}5FqJt%ndks6x^x=>V0f2Z_BNMHH3-etKbmK$YX0)oARI2EJb zm2KV^9%!hKrr<^0+dq9H$MBV-Nu+ygY<-RUsWMZw0d0b-R9RGB(h*b2d;S_mKq76n zbnY**W{cT&=aOK;RE^)Rk;SINkN=4KtidadApj+G0YwA=&q)O~w2d1_I_;G{9J?X0 zJ`v9d4Da#KUoKGN&g~jHvU!gn5~*N@X>FNHEj1rIJZI=o>vJO$Tvaqyy)f1|jCGGK zdm7&ZdA0z2yKmgWD-3`_&)&lF7c|MAOM!%}7+bo0iXFypDFf0q2NBBQ~HWq5lJpuLGX z9y^7;cS_Poj@v#Qx1v^*L7N9gL5&D?h zsn{~JaI!>r5C6$l>|IhQtSM%9azO9;4d8HOWlr2JJD>1G(;VgdEp=%}Ta~CNHM9Bs z7wlU=IXlop9_5vVSGO=AH4QA|2GRDw#P9C+Q%8F>s`dwSPDZ7%mfY*P>1nWqg^(eKLg>qc6T zcW(+hoEm6mv&(FFmW&T#N(%+BPNv3Zp4^70ht3=Ef$th-*c~r8TcY{~zPrbC-p9Ji zBms|`((ZCa?l3s-&z31?g{`;qBpuEMd$sLShE_JL1+RQeD#ORZJ56uYNFoNu61Go3 ze8rmVz^%^2GM2#LTk2nqVwa@{>DI{t^n*N2@B^>)9hb2Z6S-D|H{`&Y@Ez=_B6#~d zqB3bdLV%00@!aTfdHiNCm-q{&0?Zpkm;b!8xX)vWqtjoqYyl+=hm@wB)$+dC#OEhN zl|*8v`Av`$X6ZNyNb_w6BI_7JuDbcLKQ2j7p@#Op)ZQI8s}N;O=|@ zdc4ogay0oArJuzq>TLa~P=;mJ=|`7oqswVKjB2M0Id%`ygHX1q>XTBgvY5H`Q*U(o zn%SR+AMEqMt|D@tw=k|AcQN=trz3V(n-B0NS|wZUsO9?iy~Cpu9}G=)I`aE1+(SpV zs>r>@GYmM0d$3gFRGAgZ8hGZ{TN%Pf*-lHOZ>9GkxlHkDeK`LkFp#T z-L{asWz;AWSaLm2tQgS}iEPcmm4ic#TF*XDvjqB0M^R!u*`R~lHQ=GbM%`C)q~3#Q8wc%8so`F}BknV3e>NVS`1{bfl|2I#*O@_^@=VrVN3Xv`3BbaD zv$L1kfy)SwfsCH3*a#aDYDxMP2!zWz$bH1CDr>0Y3#evm2WL;vqAu8Bb-;ES)@~@( zqqh*H3-yV`8}SY>p&9|0v#!t?)adAH&e_pJ1l$V;bKtli!{9oZ$WPm47DAwSeE2?- zbmZ!zTphEycLZD}fv`kXanBLM$BGi-Vs9 zTo?`{alt*5DSggvJpY{gOdU#``R&CkqrI0w*5w6I>Tg*3jEwRB1#8_%VcsNqJ3l^d zao{_jC8?CMaQO>>aEHV&93YzXnhrnNST9bo_VRQZ{j%~2{A%fgoV>(w#u7t?CIWb< zXN+(sq-H!T(ZWeTe_}+Fx}*y3=`EXN2NwaO1{zxX65o=|4q`PJwd)@2Uc__&+2&1Q zdqSjmoBj}zSJm*1ZM1;f;CCBOdcjqfF94FU^5{FdDIXWfz-kfP6NP7}LqE4!gnf#C z@|^};cK33n1`pk~;6Rn6`DFdo-qB6(5MQidIb`O=7=pqPnKr}Sz4xLg3Eh*#M zw{o7?KH|ZsqQt#fx@rJF@bkX@+<7txvxqf#q51=oRG_p&NMJzcZtl+n@#i zI^fN)5}08}fDgWV87lvIq7zU){Kh^&*?;TOtFHDdjXSnro{3h0DgsZq3v-C;6SoGN zXw}T$q(>;#v$`}{8O!W*XzyzsD~_xb_FU<&U?+6{V?5tqG_zyfWXl46rSjyj!*&yA z4I30qn00(xWA-2e-UvaIz;?FuZb4(z$`!#9)(H|5s1mM^UcV^Av zSOl?q#KJGtQK)9|DmsSgCWIU(Wvn-_dAo43CqYTcghYITY~m8F!8WA~|G_&>HZxBb zw`3|jW@|jfHS7dxt_M-qP8DWm_X^#y5P`+3>G|WWF>#jnj5|dBD@pIK1FAJ7ZpGeF z3kb{SlYH<$O62wJ{PK$}A1?gDCq3mY*30WItrr-Kg_}$2tic4QqOL#5KOx&9GWG5W zpn6AnD_O1g@DF2~Q9DCQ^oW}nX>77&{^m`LoHJWV{Ith}Qv|^nb?daXiPPUr{UKnUo7bF}YY1ZL^ z|7E=LRTGb!(!kT8+3g}<;rqqc)TM6F(l!r+4v(!|ehpU+5RbDXg&47rmJgNjdWIRl z=r}S=c%+18;~Ap6j;1~5Bl(;AFDjc(sYfJ`aa{)$x*v=iWVI7*0(q;dqqQDw&vuNB z(CAz?lyDWccjbECK4uW|s#L#4e9ZcXhz*Wag~{-o6*a_Y)Yp*zAO7Eag4@sD&u^*<|9vI-hV|vk7q~CCa`tK$ z_mc&4^;ln$#N@spe!=^<|9?kG$p1zgD`zVYI}a8Q4}UF9=r7;GK$Rw5zKCD`gF5~8 a<;(wBR286M{`csA|EAi%h|}=Dm;Vn8!K5+( diff --git a/common/eth2_network_config/src/lib.rs b/common/eth2_network_config/src/lib.rs index 18fd7ef960..4f38905931 100644 --- a/common/eth2_network_config/src/lib.rs +++ b/common/eth2_network_config/src/lib.rs @@ -1,23 +1,21 @@ use eth2_config::{predefined_networks_dir, *}; use enr::{CombinedKey, Enr}; -use ssz::Decode; use std::fs::{create_dir_all, File}; use std::io::{Read, Write}; use std::path::PathBuf; -use types::{BeaconState, EthSpec, EthSpecId, YamlConfig}; +use types::{BeaconState, ChainSpec, Config, EthSpec, EthSpecId}; -pub const ADDRESS_FILE: &str = "deposit_contract.txt"; pub const DEPLOY_BLOCK_FILE: &str = "deploy_block.txt"; pub const BOOT_ENR_FILE: &str = "boot_enr.yaml"; pub const GENESIS_STATE_FILE: &str = "genesis.ssz"; -pub const YAML_CONFIG_FILE: &str = "config.yaml"; +pub const BASE_CONFIG_FILE: &str = "config.yaml"; #[derive(Copy, Clone, Debug, PartialEq)] pub struct HardcodedNet { pub name: &'static str, pub genesis_is_known: bool, - pub yaml_config: &'static [u8], + pub config: &'static [u8], pub deploy_block: &'static [u8], pub boot_enr: &'static [u8], pub genesis_state_bytes: &'static [u8], @@ -30,7 +28,7 @@ macro_rules! define_net { HardcodedNet { name: ETH2_NET_DIR.name, genesis_is_known: ETH2_NET_DIR.genesis_is_known, - yaml_config: $include_file!("../", "config.yaml"), + config: $include_file!("../", "config.yaml"), deploy_block: $include_file!("../", "deploy_block.txt"), boot_enr: $include_file!("../", "boot_enr.yaml"), genesis_state_bytes: $include_file!("../", "genesis.ssz"), @@ -38,16 +36,11 @@ macro_rules! define_net { }}; } -const ALTONA: HardcodedNet = define_net!(altona, include_altona_file); -const MEDALLA: HardcodedNet = define_net!(medalla, include_medalla_file); -const SPADINA: HardcodedNet = define_net!(spadina, include_spadina_file); const PYRMONT: HardcodedNet = define_net!(pyrmont, include_pyrmont_file); const MAINNET: HardcodedNet = define_net!(mainnet, include_mainnet_file); -const TOLEDO: HardcodedNet = define_net!(toledo, include_toledo_file); const PRATER: HardcodedNet = define_net!(prater, include_prater_file); -const HARDCODED_NETS: &[HardcodedNet] = - &[ALTONA, MEDALLA, SPADINA, PYRMONT, MAINNET, TOLEDO, PRATER]; +const HARDCODED_NETS: &[HardcodedNet] = &[PYRMONT, MAINNET, PRATER]; pub const DEFAULT_HARDCODED_NETWORK: &str = "mainnet"; /// Specifies an Eth2 network. @@ -60,7 +53,7 @@ pub struct Eth2NetworkConfig { pub deposit_contract_deploy_block: u64, pub boot_enr: Option>>, pub genesis_state_bytes: Option>, - pub yaml_config: Option, + pub config: Config, } impl Eth2NetworkConfig { @@ -85,24 +78,17 @@ impl Eth2NetworkConfig { ), genesis_state_bytes: Some(net.genesis_state_bytes.to_vec()) .filter(|bytes| !bytes.is_empty()), - yaml_config: Some( - serde_yaml::from_reader(net.yaml_config) - .map_err(|e| format!("Unable to parse yaml config: {:?}", e))?, - ), + config: serde_yaml::from_reader(net.config) + .map_err(|e| format!("Unable to parse yaml config: {:?}", e))?, }) } /// Returns an identifier that should be used for selecting an `EthSpec` instance for this /// network configuration. pub fn eth_spec_id(&self) -> Result { - self.yaml_config - .as_ref() - .ok_or_else(|| "YAML specification file missing".to_string()) - .and_then(|config| { - config - .eth_spec_id() - .ok_or_else(|| format!("Unknown CONFIG_NAME: {}", config.config_name)) - }) + self.config + .eth_spec_id() + .ok_or_else(|| "Config does not match any known preset".to_string()) } /// Returns `true` if this configuration contains a `BeaconState`. @@ -110,14 +96,25 @@ impl Eth2NetworkConfig { self.genesis_state_bytes.is_some() } + /// Construct a consolidated `ChainSpec` from the YAML config. + pub fn chain_spec(&self) -> Result { + ChainSpec::from_config::(&self.config).ok_or_else(|| { + format!( + "YAML configuration incompatible with spec constants for {}", + E::spec_name() + ) + }) + } + /// Attempts to deserialize `self.beacon_state`, returning an error if it's missing or invalid. pub fn beacon_state(&self) -> Result, String> { + let spec = self.chain_spec::()?; let genesis_state_bytes = self .genesis_state_bytes .as_ref() .ok_or("Genesis state is unknown")?; - BeaconState::from_ssz_bytes(genesis_state_bytes) + BeaconState::from_ssz_bytes(genesis_state_bytes, &spec) .map_err(|e| format!("Genesis state SSZ bytes are invalid: {:?}", e)) } @@ -167,9 +164,7 @@ impl Eth2NetworkConfig { write_to_yaml_file!(BOOT_ENR_FILE, boot_enr); } - if let Some(yaml_config) = &self.yaml_config { - write_to_yaml_file!(YAML_CONFIG_FILE, yaml_config); - } + write_to_yaml_file!(BASE_CONFIG_FILE, &self.config); // The genesis state is a special case because it uses SSZ, not YAML. if let Some(genesis_state_bytes) = &self.genesis_state_bytes { @@ -210,7 +205,7 @@ impl Eth2NetworkConfig { let deposit_contract_deploy_block = load_from_file!(DEPLOY_BLOCK_FILE); let boot_enr = optional_load_from_file!(BOOT_ENR_FILE); - let yaml_config = optional_load_from_file!(YAML_CONFIG_FILE); + let config = load_from_file!(BASE_CONFIG_FILE); // The genesis state is a special case because it uses SSZ, not YAML. let genesis_file_path = base_dir.join(GENESIS_STATE_FILE); @@ -232,7 +227,7 @@ impl Eth2NetworkConfig { deposit_contract_deploy_block, boot_enr, genesis_state_bytes, - yaml_config, + config, }) } } @@ -242,9 +237,16 @@ mod tests { use super::*; use ssz::Encode; use tempfile::Builder as TempBuilder; - use types::{Eth1Data, Hash256, MainnetEthSpec, V012LegacyEthSpec, YamlConfig}; + use types::{Config, Eth1Data, Hash256, MainnetEthSpec}; - type E = V012LegacyEthSpec; + type E = MainnetEthSpec; + + #[test] + fn mainnet_config_eq_chain_spec() { + let config = Eth2NetworkConfig::from_hardcoded_net(&MAINNET).unwrap(); + let spec = ChainSpec::mainnet(); + assert_eq!(spec, config.chain_spec::().unwrap()); + } #[test] fn hard_coded_nets_work() { @@ -252,27 +254,8 @@ mod tests { let config = Eth2NetworkConfig::from_hardcoded_net(net) .unwrap_or_else(|_| panic!("{:?}", net.name)); - if net.name == "mainnet" - || net.name == "toledo" - || net.name == "pyrmont" - || net.name == "prater" - { - // Ensure we can parse the YAML config to a chain spec. - config - .yaml_config - .as_ref() - .unwrap() - .apply_to_chain_spec::(&E::default_spec()) - .unwrap(); - } else { - // Ensure we can parse the YAML config to a chain spec. - config - .yaml_config - .as_ref() - .unwrap() - .apply_to_chain_spec::(&E::default_spec()) - .unwrap(); - } + // Ensure we can parse the YAML config to a chain spec. + config.chain_spec::().unwrap(); assert_eq!( config.genesis_state_bytes.is_some(), @@ -296,16 +279,16 @@ mod tests { // TODO: figure out how to generate ENR and add some here. let boot_enr = None; let genesis_state = Some(BeaconState::new(42, eth1_data, spec)); - let yaml_config = Some(YamlConfig::from_spec::(spec)); + let config = Config::from_chain_spec::(spec); - do_test::(boot_enr, genesis_state, yaml_config); - do_test::(None, None, None); + do_test::(boot_enr, genesis_state, config.clone()); + do_test::(None, None, config); } fn do_test( boot_enr: Option>>, genesis_state: Option>, - yaml_config: Option, + config: Config, ) { let temp_dir = TempBuilder::new() .prefix("eth2_testnet_test") @@ -318,7 +301,7 @@ mod tests { deposit_contract_deploy_block, boot_enr, genesis_state_bytes: genesis_state.as_ref().map(Encode::as_ssz_bytes), - yaml_config, + config, }; testnet diff --git a/common/fallback/Cargo.toml b/common/fallback/Cargo.toml index 04b2c5ea28..31a701d16e 100644 --- a/common/fallback/Cargo.toml +++ b/common/fallback/Cargo.toml @@ -7,4 +7,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -itertools = "0.9.0" +itertools = "0.10.0" diff --git a/consensus/fork_choice/src/fork_choice.rs b/consensus/fork_choice/src/fork_choice.rs index 8acc55b055..2c672d870c 100644 --- a/consensus/fork_choice/src/fork_choice.rs +++ b/consensus/fork_choice/src/fork_choice.rs @@ -244,8 +244,8 @@ where genesis_block: &BeaconBlock, genesis_state: &BeaconState, ) -> Result> { - let finalized_block_slot = genesis_block.slot; - let finalized_block_state_root = genesis_block.state_root; + let finalized_block_slot = genesis_block.slot(); + let finalized_block_state_root = genesis_block.state_root(); let current_epoch_shuffling_id = AttestationShufflingId::new(genesis_block_root, genesis_state, RelativeEpoch::Current) .map_err(Error::BeaconStateError)?; @@ -370,7 +370,7 @@ where ) -> Result> { self.update_time(current_slot)?; - let new_justified_checkpoint = &state.current_justified_checkpoint; + let new_justified_checkpoint = &state.current_justified_checkpoint(); if compute_slots_since_epoch_start::(self.fc_store.get_current_slot()) < SAFE_SLOTS_TO_UPDATE_JUSTIFIED @@ -382,10 +382,10 @@ where compute_start_slot_at_epoch::(self.fc_store.justified_checkpoint().epoch); // This sanity check is not in the spec, but the invariant is implied. - if justified_slot >= state.slot { + if justified_slot >= state.slot() { return Err(Error::AttemptToRevertJustification { store: justified_slot, - state: state.slot, + state: state.slot(), }); } @@ -434,9 +434,9 @@ where let current_slot = self.update_time(current_slot)?; // Parent block must be known. - if !self.proto_array.contains_block(&block.parent_root) { + if !self.proto_array.contains_block(&block.parent_root()) { return Err(Error::InvalidBlock(InvalidBlock::UnknownParent( - block.parent_root, + block.parent_root(), ))); } @@ -444,10 +444,10 @@ where // the are in the past. // // Note: presently, we do not delay consideration. We just drop the block. - if block.slot > current_slot { + if block.slot() > current_slot { return Err(Error::InvalidBlock(InvalidBlock::FutureSlot { current_slot, - block_slot: block.slot, + block_slot: block.slot(), })); } @@ -455,10 +455,10 @@ where // get_ancestor). let finalized_slot = compute_start_slot_at_epoch::(self.fc_store.finalized_checkpoint().epoch); - if block.slot <= finalized_slot { + if block.slot() <= finalized_slot { return Err(Error::InvalidBlock(InvalidBlock::FinalizedSlot { finalized_slot, - block_slot: block.slot, + block_slot: block.slot(), })); } @@ -471,7 +471,7 @@ where // `self.proto_array` to do this search. See: // // https://github.com/ethereum/eth2.0-specs/pull/1884 - let block_ancestor = self.get_ancestor(block.parent_root, finalized_slot)?; + let block_ancestor = self.get_ancestor(block.parent_root(), finalized_slot)?; let finalized_root = self.fc_store.finalized_checkpoint().root; if block_ancestor != Some(finalized_root) { return Err(Error::InvalidBlock(InvalidBlock::NotFinalizedDescendant { @@ -481,24 +481,24 @@ where } // Update justified checkpoint. - if state.current_justified_checkpoint.epoch > self.fc_store.justified_checkpoint().epoch { - if state.current_justified_checkpoint.epoch + if state.current_justified_checkpoint().epoch > self.fc_store.justified_checkpoint().epoch { + if state.current_justified_checkpoint().epoch > self.fc_store.best_justified_checkpoint().epoch { self.fc_store - .set_best_justified_checkpoint(state.current_justified_checkpoint); + .set_best_justified_checkpoint(state.current_justified_checkpoint()); } if self.should_update_justified_checkpoint(current_slot, state)? { self.fc_store - .set_justified_checkpoint(state.current_justified_checkpoint) + .set_justified_checkpoint(state.current_justified_checkpoint()) .map_err(Error::UnableToSetJustifiedCheckpoint)?; } } // Update finalized checkpoint. - if state.finalized_checkpoint.epoch > self.fc_store.finalized_checkpoint().epoch { + if state.finalized_checkpoint().epoch > self.fc_store.finalized_checkpoint().epoch { self.fc_store - .set_finalized_checkpoint(state.finalized_checkpoint); + .set_finalized_checkpoint(state.finalized_checkpoint()); let finalized_slot = compute_start_slot_at_epoch::(self.fc_store.finalized_checkpoint().epoch); @@ -507,24 +507,24 @@ where // information: // // https://github.com/ethereum/eth2.0-specs/pull/1880 - if *self.fc_store.justified_checkpoint() != state.current_justified_checkpoint - && (state.current_justified_checkpoint.epoch + if *self.fc_store.justified_checkpoint() != state.current_justified_checkpoint() + && (state.current_justified_checkpoint().epoch > self.fc_store.justified_checkpoint().epoch || self .get_ancestor(self.fc_store.justified_checkpoint().root, finalized_slot)? != Some(self.fc_store.finalized_checkpoint().root)) { self.fc_store - .set_justified_checkpoint(state.current_justified_checkpoint) + .set_justified_checkpoint(state.current_justified_checkpoint()) .map_err(Error::UnableToSetJustifiedCheckpoint)?; } } let target_slot = block - .slot + .slot() .epoch(E::slots_per_epoch()) .start_slot(E::slots_per_epoch()); - let target_root = if block.slot == target_slot { + let target_root = if block.slot() == target_slot { block_root } else { *state @@ -539,9 +539,9 @@ where // This does not apply a vote to the block, it just makes fork choice aware of the block so // it can still be identified as the head even if it doesn't have any votes. self.proto_array.process_block(ProtoBlock { - slot: block.slot, + slot: block.slot(), root: block_root, - parent_root: Some(block.parent_root), + parent_root: Some(block.parent_root()), target_root, current_epoch_shuffling_id: AttestationShufflingId::new( block_root, @@ -555,9 +555,9 @@ where RelativeEpoch::Next, ) .map_err(Error::BeaconStateError)?, - state_root: block.state_root, - justified_epoch: state.current_justified_checkpoint.epoch, - finalized_epoch: state.finalized_checkpoint.epoch, + state_root: block.state_root(), + justified_epoch: state.current_justified_checkpoint().epoch, + finalized_epoch: state.finalized_checkpoint().epoch, })?; Ok(()) diff --git a/consensus/fork_choice/tests/tests.rs b/consensus/fork_choice/tests/tests.rs index ec0b127743..21bb634183 100644 --- a/consensus/fork_choice/tests/tests.rs +++ b/consensus/fork_choice/tests/tests.rs @@ -1,7 +1,12 @@ #![cfg(not(debug_assertions))] +use std::fmt; +use std::sync::Mutex; + +use beacon_chain::test_utils::{ + AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType, +}; use beacon_chain::{ - test_utils::{AttestationStrategy, BeaconChainHarness, BlockStrategy, EphemeralHarnessType}, BeaconChain, BeaconChainError, BeaconForkChoiceStore, ChainConfig, ForkChoiceError, StateSkipConfig, WhenSlotSkipped, }; @@ -9,14 +14,12 @@ use fork_choice::{ ForkChoiceStore, InvalidAttestation, InvalidBlock, QueuedAttestation, SAFE_SLOTS_TO_UPDATE_JUSTIFIED, }; -use std::fmt; -use std::sync::Mutex; use store::{MemoryStore, StoreConfig}; use types::{ test_utils::{generate_deterministic_keypair, generate_deterministic_keypairs}, - Checkpoint, Epoch, EthSpec, IndexedAttestation, MainnetEthSpec, Slot, SubnetId, + BeaconBlock, BeaconBlockRef, BeaconState, Checkpoint, Epoch, EthSpec, Hash256, + IndexedAttestation, MainnetEthSpec, Slot, SubnetId, }; -use types::{BeaconBlock, BeaconState, Hash256, SignedBeaconBlock}; pub type E = MainnetEthSpec; @@ -47,6 +50,7 @@ impl ForkChoiceTest { pub fn new() -> Self { let harness = BeaconChainHarness::new_with_target_aggregators( MainnetEthSpec, + None, generate_deterministic_keypairs(VALIDATOR_COUNT), // Ensure we always have an aggregator for each slot. u64::max_value(), @@ -60,6 +64,7 @@ impl ForkChoiceTest { pub fn new_with_chain_config(chain_config: ChainConfig) -> Self { let harness = BeaconChainHarness::new_with_chain_config( MainnetEthSpec, + None, generate_deterministic_keypairs(VALIDATOR_COUNT), // Ensure we always have an aggregator for each slot. u64::max_value(), @@ -170,7 +175,7 @@ impl ForkChoiceTest { /// Build the chain whilst `predicate` returns `true` and `process_block_result` does not error. pub fn apply_blocks_while(self, mut predicate: F) -> Result where - F: FnMut(&BeaconBlock, &BeaconState) -> bool, + F: FnMut(BeaconBlockRef<'_, E>, &BeaconState) -> bool, { self.harness.advance_slot(); let mut state = self.harness.get_current_state(); @@ -179,7 +184,7 @@ impl ForkChoiceTest { let slot = self.harness.get_current_slot(); let (block, state_) = self.harness.make_block(state, slot); state = state_; - if !predicate(&block.message, &state) { + if !predicate(block.message(), &state) { break; } if let Ok(block_hash) = self.harness.process_block_result(block.clone()) { @@ -264,14 +269,15 @@ impl ForkChoiceTest { ) .unwrap(); let slot = self.harness.get_current_slot(); - let (mut block, mut state) = self.harness.make_block(state, slot); - func(&mut block.message, &mut state); + let (signed_block, mut state) = self.harness.make_block(state, slot); + let (mut block, _) = signed_block.deconstruct(); + func(&mut block, &mut state); let current_slot = self.harness.get_current_slot(); self.harness .chain .fork_choice .write() - .on_block(current_slot, &block.message, block.canonical_root(), &state) + .on_block(current_slot, &block, block.canonical_root(), &state) .unwrap(); self } @@ -297,15 +303,16 @@ impl ForkChoiceTest { ) .unwrap(); let slot = self.harness.get_current_slot(); - let (mut block, mut state) = self.harness.make_block(state, slot); - mutation_func(&mut block.message, &mut state); + let (signed_block, mut state) = self.harness.make_block(state, slot); + let (mut block, _) = signed_block.deconstruct(); + mutation_func(&mut block, &mut state); let current_slot = self.harness.get_current_slot(); let err = self .harness .chain .fork_choice .write() - .on_block(current_slot, &block.message, block.canonical_root(), &state) + .on_block(current_slot, &block, block.canonical_root(), &state) .err() .expect("on_block did not return an error"); comparison_func(err); @@ -321,11 +328,11 @@ impl ForkChoiceTest { let state_root = harness .chain .store - .get_item::>(&fc.fc_store().justified_checkpoint().root) + .get_block(&fc.fc_store().justified_checkpoint().root) .unwrap() .unwrap() - .message - .state_root; + .message() + .state_root(); let state = harness .chain .store @@ -333,7 +340,7 @@ impl ForkChoiceTest { .unwrap() .unwrap(); let balances = state - .validators + .validators() .into_iter() .map(|v| { if v.is_active_at(state.current_epoch()) { @@ -401,7 +408,7 @@ impl ForkChoiceTest { .sign( &validator_sk, validator_committee_index, - &head.beacon_state.fork, + &head.beacon_state.fork(), self.harness.chain.genesis_validators_root, &self.harness.chain.spec, ) @@ -467,7 +474,7 @@ fn is_safe_to_update(slot: Slot) -> bool { #[test] fn justified_checkpoint_updates_with_descendent_inside_safe_slots() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .move_inside_safe_to_update() .assert_justified_epoch(0) @@ -481,7 +488,7 @@ fn justified_checkpoint_updates_with_descendent_inside_safe_slots() { #[test] fn justified_checkpoint_updates_with_descendent_outside_safe_slots() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch <= 2) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch <= 2) .unwrap() .move_outside_safe_to_update() .assert_justified_epoch(2) @@ -496,7 +503,7 @@ fn justified_checkpoint_updates_with_descendent_outside_safe_slots() { #[test] fn justified_checkpoint_updates_first_justification_outside_safe_to_update() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .move_to_next_unsafe_period() .assert_justified_epoch(0) @@ -512,19 +519,19 @@ fn justified_checkpoint_updates_first_justification_outside_safe_to_update() { #[test] fn justified_checkpoint_updates_with_non_descendent_inside_safe_slots_without_finality() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .move_inside_safe_to_update() .assert_justified_epoch(2) .apply_block_directly_to_fork_choice(|_, state| { // The finalized checkpoint should not change. - state.finalized_checkpoint.epoch = Epoch::new(0); + state.finalized_checkpoint().epoch = Epoch::new(0); // The justified checkpoint has changed. - state.current_justified_checkpoint.epoch = Epoch::new(3); + state.current_justified_checkpoint_mut().epoch = Epoch::new(3); // The new block should **not** include the current justified block as an ancestor. - state.current_justified_checkpoint.root = *state + state.current_justified_checkpoint_mut().root = *state .get_block_root(Epoch::new(1).start_slot(E::slots_per_epoch())) .unwrap(); }) @@ -538,19 +545,19 @@ fn justified_checkpoint_updates_with_non_descendent_inside_safe_slots_without_fi #[test] fn justified_checkpoint_updates_with_non_descendent_outside_safe_slots_without_finality() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .move_to_next_unsafe_period() .assert_justified_epoch(2) .apply_block_directly_to_fork_choice(|_, state| { // The finalized checkpoint should not change. - state.finalized_checkpoint.epoch = Epoch::new(0); + state.finalized_checkpoint().epoch = Epoch::new(0); // The justified checkpoint has changed. - state.current_justified_checkpoint.epoch = Epoch::new(3); + state.current_justified_checkpoint_mut().epoch = Epoch::new(3); // The new block should **not** include the current justified block as an ancestor. - state.current_justified_checkpoint.root = *state + state.current_justified_checkpoint_mut().root = *state .get_block_root(Epoch::new(1).start_slot(E::slots_per_epoch())) .unwrap(); }) @@ -564,19 +571,19 @@ fn justified_checkpoint_updates_with_non_descendent_outside_safe_slots_without_f #[test] fn justified_checkpoint_updates_with_non_descendent_outside_safe_slots_with_finality() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .move_to_next_unsafe_period() .assert_justified_epoch(2) .apply_block_directly_to_fork_choice(|_, state| { // The finalized checkpoint should change. - state.finalized_checkpoint.epoch = Epoch::new(1); + state.finalized_checkpoint_mut().epoch = Epoch::new(1); // The justified checkpoint has changed. - state.current_justified_checkpoint.epoch = Epoch::new(3); + state.current_justified_checkpoint_mut().epoch = Epoch::new(3); // The new block should **not** include the current justified block as an ancestor. - state.current_justified_checkpoint.root = *state + state.current_justified_checkpoint_mut().root = *state .get_block_root(Epoch::new(1).start_slot(E::slots_per_epoch())) .unwrap(); }) @@ -588,7 +595,7 @@ fn justified_checkpoint_updates_with_non_descendent_outside_safe_slots_with_fina #[test] fn justified_balances() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.current_justified_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.current_justified_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_justified_epoch(2) @@ -617,7 +624,7 @@ fn invalid_block_unknown_parent() { .apply_blocks(2) .apply_invalid_block_directly_to_fork_choice( |block, _| { - block.parent_root = junk; + *block.parent_root_mut() = junk; }, |err| { assert_invalid_block!( @@ -638,7 +645,7 @@ fn invalid_block_future_slot() { .apply_blocks(2) .apply_invalid_block_directly_to_fork_choice( |block, _| { - block.slot = block.slot + 1; + *block.slot_mut() += 1; }, |err| assert_invalid_block!(err, InvalidBlock::FutureSlot { .. }), ); @@ -650,12 +657,12 @@ fn invalid_block_future_slot() { #[test] fn invalid_block_finalized_slot() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .apply_invalid_block_directly_to_fork_choice( |block, _| { - block.slot = Epoch::new(2).start_slot(E::slots_per_epoch()) - 1; + *block.slot_mut() = Epoch::new(2).start_slot(E::slots_per_epoch()) - 1; }, |err| { assert_invalid_block!( @@ -670,7 +677,7 @@ fn invalid_block_finalized_slot() { /// Specification v0.12.1 /// /// assert get_ancestor(store, hash_tree_root(block), finalized_slot) == -/// store.finalized_checkpoint.root +/// store.finalized_checkpoint().root /// /// Note: we technically don't do this exact check, but an equivalent check. Reference: /// @@ -680,16 +687,16 @@ fn invalid_block_finalized_descendant() { let invalid_ancestor = Mutex::new(Hash256::zero()); ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2) .apply_invalid_block_directly_to_fork_choice( |block, state| { - block.parent_root = *state + *block.parent_root_mut() = *state .get_block_root(Epoch::new(1).start_slot(E::slots_per_epoch())) .unwrap(); - *invalid_ancestor.lock().unwrap() = block.parent_root; + *invalid_ancestor.lock().unwrap() = block.parent_root(); }, |err| { assert_invalid_block!( @@ -966,7 +973,7 @@ fn valid_attestation_skip_across_epoch() { #[test] fn can_read_finalized_block() { ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .check_finalized_block_is_accessible(); @@ -1004,7 +1011,7 @@ fn weak_subjectivity_pass_on_startup() { #[test] fn weak_subjectivity_check_passes() { let setup_harness = ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2); @@ -1022,7 +1029,7 @@ fn weak_subjectivity_check_passes() { }; ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2) @@ -1032,7 +1039,7 @@ fn weak_subjectivity_check_passes() { #[test] fn weak_subjectivity_check_fails_early_epoch() { let setup_harness = ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2); @@ -1052,7 +1059,7 @@ fn weak_subjectivity_check_fails_early_epoch() { }; ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 3) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 3) .unwrap_err() .assert_finalized_epoch_is_less_than(checkpoint.epoch) .assert_shutdown_signal_sent(); @@ -1061,7 +1068,7 @@ fn weak_subjectivity_check_fails_early_epoch() { #[test] fn weak_subjectivity_check_fails_late_epoch() { let setup_harness = ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2); @@ -1081,7 +1088,7 @@ fn weak_subjectivity_check_fails_late_epoch() { }; ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 4) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 4) .unwrap_err() .assert_finalized_epoch_is_less_than(checkpoint.epoch) .assert_shutdown_signal_sent(); @@ -1090,7 +1097,7 @@ fn weak_subjectivity_check_fails_late_epoch() { #[test] fn weak_subjectivity_check_fails_incorrect_root() { let setup_harness = ForkChoiceTest::new() - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .apply_blocks(1) .assert_finalized_epoch(2); @@ -1110,7 +1117,7 @@ fn weak_subjectivity_check_fails_incorrect_root() { }; ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 3) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 3) .unwrap_err() .assert_finalized_epoch_is_less_than(checkpoint.epoch) .assert_shutdown_signal_sent(); @@ -1120,7 +1127,7 @@ fn weak_subjectivity_check_fails_incorrect_root() { fn weak_subjectivity_check_epoch_boundary_is_skip_slot() { let setup_harness = ForkChoiceTest::new() // first two epochs - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap(); // get the head, it will become the finalized root of epoch 4 @@ -1129,7 +1136,7 @@ fn weak_subjectivity_check_epoch_boundary_is_skip_slot() { setup_harness // epoch 3 will be entirely skip slots .skip_slots(E::slots_per_epoch() as usize) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 5) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 5) .unwrap() .apply_blocks(1) .assert_finalized_epoch(5); @@ -1147,10 +1154,10 @@ fn weak_subjectivity_check_epoch_boundary_is_skip_slot() { // recreate the chain exactly ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .skip_slots(E::slots_per_epoch() as usize) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 5) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 5) .unwrap() .apply_blocks(1) .assert_finalized_epoch(5) @@ -1161,7 +1168,7 @@ fn weak_subjectivity_check_epoch_boundary_is_skip_slot() { fn weak_subjectivity_check_epoch_boundary_is_skip_slot_failure() { let setup_harness = ForkChoiceTest::new() // first two epochs - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap(); // get the head, it will become the finalized root of epoch 4 @@ -1170,7 +1177,7 @@ fn weak_subjectivity_check_epoch_boundary_is_skip_slot_failure() { setup_harness // epoch 3 will be entirely skip slots .skip_slots(E::slots_per_epoch() as usize) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 5) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 5) .unwrap() .apply_blocks(1) .assert_finalized_epoch(5); @@ -1188,10 +1195,10 @@ fn weak_subjectivity_check_epoch_boundary_is_skip_slot_failure() { // recreate the chain exactly ForkChoiceTest::new_with_chain_config(chain_config.clone()) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch == 0) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch == 0) .unwrap() .skip_slots(E::slots_per_epoch() as usize) - .apply_blocks_while(|_, state| state.finalized_checkpoint.epoch < 6) + .apply_blocks_while(|_, state| state.finalized_checkpoint().epoch < 6) .unwrap_err() .assert_finalized_epoch_is_less_than(checkpoint.epoch) .assert_shutdown_signal_sent(); diff --git a/consensus/serde_utils/src/quoted_int.rs b/consensus/serde_utils/src/quoted_int.rs index 24edf1ebee..5c3fa0f0aa 100644 --- a/consensus/serde_utils/src/quoted_int.rs +++ b/consensus/serde_utils/src/quoted_int.rs @@ -70,6 +70,17 @@ macro_rules! define_mod { pub value: T, } + /// Compositional wrapper type that allows quotes or no quotes. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize)] + #[serde(transparent)] + pub struct MaybeQuoted + where + T: From<$int> + Into<$int> + Copy + TryFrom, + { + #[serde(with = "self")] + pub value: T, + } + /// Serialize with quotes. pub fn serialize(value: &T, serializer: S) -> Result where diff --git a/consensus/ssz/src/decode.rs b/consensus/ssz/src/decode.rs index 38cd7c5fdc..52ff6d35cb 100644 --- a/consensus/ssz/src/decode.rs +++ b/consensus/ssz/src/decode.rs @@ -145,6 +145,31 @@ impl<'a> SszDecoderBuilder<'a> { } } + /// Registers a variable-length object as the next item in `bytes`, without specifying the + /// actual type. + /// + /// ## Notes + /// + /// Use of this function is generally discouraged since it cannot detect if some type changes + /// from variable to fixed length. + /// + /// Use `Self::register_type` wherever possible. + pub fn register_anonymous_variable_length_item(&mut self) -> Result<(), DecodeError> { + struct Anonymous; + + impl Decode for Anonymous { + fn is_ssz_fixed_len() -> bool { + false + } + + fn from_ssz_bytes(_bytes: &[u8]) -> Result { + unreachable!("Anonymous should never be decoded") + } + } + + self.register_type::() + } + /// Declares that some type `T` is the next item in `bytes`. pub fn register_type(&mut self) -> Result<(), DecodeError> { if T::is_ssz_fixed_len() { @@ -277,6 +302,14 @@ impl<'a> SszDecoder<'a> { pub fn decode_next(&mut self) -> Result { T::from_ssz_bytes(self.items.remove(0)) } + + /// Decodes the next item using the provided function. + pub fn decode_next_with(&mut self, f: F) -> Result + where + F: FnOnce(&'a [u8]) -> Result, + { + f(self.items.remove(0)) + } } /// Reads a `BYTES_PER_LENGTH_OFFSET`-byte union index from `bytes`, where `bytes.len() >= diff --git a/consensus/ssz_derive/src/lib.rs b/consensus/ssz_derive/src/lib.rs index 2170251aee..86327d94ff 100644 --- a/consensus/ssz_derive/src/lib.rs +++ b/consensus/ssz_derive/src/lib.rs @@ -3,11 +3,9 @@ //! //! Supports field attributes, see each derive macro for more information. -extern crate proc_macro; - use proc_macro::TokenStream; use quote::quote; -use syn::{parse_macro_input, DeriveInput}; +use syn::{parse_macro_input, DataEnum, DataStruct, DeriveInput}; /// Returns a Vec of `syn::Ident` for each named field in the struct, whilst filtering out fields /// that should not be serialized. @@ -57,7 +55,7 @@ fn should_skip_serializing(field: &syn::Field) -> bool { }) } -/// Implements `ssz::Encode` for some `struct`. +/// Implements `ssz::Encode` for some `struct` or `enum`. /// /// Fields are encoded in the order they are defined. /// @@ -68,17 +66,20 @@ fn should_skip_serializing(field: &syn::Field) -> bool { pub fn ssz_encode_derive(input: TokenStream) -> TokenStream { let item = parse_macro_input!(input as DeriveInput); - let name = &item.ident; - let (impl_generics, ty_generics, where_clause) = &item.generics.split_for_impl(); + match &item.data { + syn::Data::Struct(s) => ssz_encode_derive_struct(&item, s), + syn::Data::Enum(s) => ssz_encode_derive_enum(&item, s), + _ => panic!("ssz_derive only supports structs and enums"), + } +} - let struct_data = match &item.data { - syn::Data::Struct(s) => s, - _ => panic!("ssz_derive only supports structs."), - }; +fn ssz_encode_derive_struct(derive_input: &DeriveInput, struct_data: &DataStruct) -> TokenStream { + let name = &derive_input.ident; + let (impl_generics, ty_generics, where_clause) = &derive_input.generics.split_for_impl(); - let field_idents = get_serializable_named_field_idents(&struct_data); - let field_idents_a = get_serializable_named_field_idents(&struct_data); - let field_types_a = get_serializable_field_types(&struct_data); + let field_idents = get_serializable_named_field_idents(struct_data); + let field_idents_a = get_serializable_named_field_idents(struct_data); + let field_types_a = get_serializable_field_types(struct_data); let field_types_b = field_types_a.clone(); let field_types_d = field_types_a.clone(); let field_types_e = field_types_a.clone(); @@ -152,6 +153,72 @@ pub fn ssz_encode_derive(input: TokenStream) -> TokenStream { output.into() } +/// Derive `Encode` for a restricted subset of all possible enum types. +/// +/// Only supports: +/// - Enums with a single field per variant, where +/// - All fields are variably sized from an SSZ-perspective (not fixed size). +/// +/// Will panic at compile-time if the single field requirement isn't met, but will panic *at run +/// time* if the variable-size requirement isn't met. +fn ssz_encode_derive_enum(derive_input: &DeriveInput, enum_data: &DataEnum) -> TokenStream { + let name = &derive_input.ident; + let (impl_generics, ty_generics, where_clause) = &derive_input.generics.split_for_impl(); + + let (patterns, assert_exprs): (Vec<_>, Vec<_>) = enum_data + .variants + .iter() + .map(|variant| { + let variant_name = &variant.ident; + + if variant.fields.len() != 1 { + panic!("ssz::Encode can only be derived for enums with 1 field per variant"); + } + + let pattern = quote! { + #name::#variant_name(ref inner) + }; + + let ty = &(&variant.fields).into_iter().next().unwrap().ty; + let type_assert = quote! { + !<#ty as ssz::Encode>::is_ssz_fixed_len() + }; + (pattern, type_assert) + }) + .unzip(); + + let output = quote! { + impl #impl_generics ssz::Encode for #name #ty_generics #where_clause { + fn is_ssz_fixed_len() -> bool { + assert!( + #( + #assert_exprs && + )* true, + "not all enum variants are variably-sized" + ); + false + } + + fn ssz_bytes_len(&self) -> usize { + match self { + #( + #patterns => inner.ssz_bytes_len(), + )* + } + } + + fn ssz_append(&self, buf: &mut Vec) { + match self { + #( + #patterns => inner.ssz_append(buf), + )* + } + } + } + }; + output.into() +} + /// Returns true if some field has an attribute declaring it should not be deserialized. /// /// The field attribute is: `#[ssz(skip_deserializing)]` diff --git a/consensus/ssz_types/src/fixed_vector.rs b/consensus/ssz_types/src/fixed_vector.rs index 0d7664c1dc..a60102aa88 100644 --- a/consensus/ssz_types/src/fixed_vector.rs +++ b/consensus/ssz_types/src/fixed_vector.rs @@ -2,7 +2,7 @@ use crate::tree_hash::vec_tree_hash_root; use crate::Error; use serde_derive::{Deserialize, Serialize}; use std::marker::PhantomData; -use std::ops::{Deref, Index, IndexMut}; +use std::ops::{Deref, DerefMut, Index, IndexMut}; use std::slice::SliceIndex; use tree_hash::Hash256; use typenum::Unsigned; @@ -147,6 +147,16 @@ impl Deref for FixedVector { } } +// This implementation is required to use `get_mut` to access elements. +// +// It's safe because none of the methods on mutable slices allow changing the length +// of the backing vec. +impl DerefMut for FixedVector { + fn deref_mut(&mut self) -> &mut [T] { + &mut self.vec[..] + } +} + impl tree_hash::TreeHash for FixedVector where T: tree_hash::TreeHash, @@ -210,7 +220,7 @@ where impl ssz::Decode for FixedVector where - T: ssz::Decode + Default, + T: ssz::Decode, { fn is_ssz_fixed_len() -> bool { T::is_ssz_fixed_len() @@ -250,18 +260,21 @@ where .map(|chunk| T::from_ssz_bytes(chunk)) .collect::, _>>() .and_then(|vec| { - if vec.len() == fixed_len { - Ok(vec.into()) - } else { - Err(ssz::DecodeError::BytesInvalid(format!( - "Wrong number of FixedVector elements, got: {}, expected: {}", - vec.len(), - N::to_usize() - ))) - } + Self::new(vec).map_err(|e| { + ssz::DecodeError::BytesInvalid(format!( + "Wrong number of FixedVector elements: {:?}", + e + )) + }) }) } else { - ssz::decode_list_of_variable_length_items(bytes, Some(fixed_len)).map(|vec| vec.into()) + let vec = ssz::decode_list_of_variable_length_items(bytes, Some(fixed_len))?; + Self::new(vec).map_err(|e| { + ssz::DecodeError::BytesInvalid(format!( + "Wrong number of FixedVector elements: {:?}", + e + )) + }) } } } diff --git a/consensus/state_processing/Cargo.toml b/consensus/state_processing/Cargo.toml index 166e3ab5bd..63f8b44868 100644 --- a/consensus/state_processing/Cargo.toml +++ b/consensus/state_processing/Cargo.toml @@ -4,22 +4,18 @@ version = "0.2.0" authors = ["Paul Hauner ", "Michael Sproul "] edition = "2018" -[[bench]] -name = "benches" -harness = false - [dev-dependencies] -criterion = "0.3.3" env_logger = "0.8.2" serde = "1.0.116" serde_derive = "1.0.116" lazy_static = "1.4.0" serde_yaml = "0.8.13" +beacon_chain = { path = "../../beacon_node/beacon_chain" } [dependencies] bls = { path = "../../crypto/bls" } integer-sqrt = "0.1.5" -itertools = "0.9.0" +itertools = "0.10.0" eth2_ssz = "0.1.2" eth2_ssz_types = { path = "../ssz_types" } merkle_proof = { path = "../merkle_proof" } @@ -31,6 +27,7 @@ types = { path = "../types", default-features = false } rayon = "1.4.1" eth2_hashing = "0.1.0" int_to_bytes = { path = "../int_to_bytes" } +smallvec = "1.6.1" arbitrary = { version = "0.4.6", features = ["derive"], optional = true } [features] diff --git a/consensus/state_processing/benches/benches.rs b/consensus/state_processing/benches/benches.rs deleted file mode 100644 index 771b47099a..0000000000 --- a/consensus/state_processing/benches/benches.rs +++ /dev/null @@ -1,431 +0,0 @@ -#![allow(deprecated)] - -extern crate env_logger; - -use criterion::Criterion; -use criterion::{black_box, criterion_group, criterion_main, Benchmark}; -use ssz::Encode; -use state_processing::{test_utils::BlockBuilder, BlockSignatureStrategy, VerifySignatures}; -use types::{ - BeaconState, ChainSpec, EthSpec, MainnetEthSpec, MinimalEthSpec, SignedBeaconBlock, Slot, -}; - -pub const VALIDATORS_LOW: usize = 32_768; -pub const VALIDATORS_HIGH: usize = 300_032; - -fn all_benches(c: &mut Criterion) { - env_logger::init(); - - average_bench::(c, "minimal", VALIDATORS_LOW); - average_bench::(c, "mainnet", VALIDATORS_LOW); - average_bench::(c, "mainnet", VALIDATORS_HIGH); - - worst_bench::(c, "minimal", VALIDATORS_LOW); - worst_bench::(c, "mainnet", VALIDATORS_LOW); - worst_bench::(c, "mainnet", VALIDATORS_HIGH); -} - -/// Run a bench with a average complexity block. -fn average_bench(c: &mut Criterion, spec_desc: &str, validator_count: usize) { - let spec = &T::default_spec(); - - let (block, state) = get_average_block(validator_count, spec); - bench_block::(c, block, state, spec, spec_desc, "average_complexity_block"); -} - -/// Run a bench with a highly complex block. -fn worst_bench(c: &mut Criterion, spec_desc: &str, validator_count: usize) { - let mut spec = &mut T::default_spec(); - - // Allows the exits to be processed sucessfully. - spec.shard_committee_period = 0; - - let (block, state) = get_worst_block(validator_count, spec); - bench_block::(c, block, state, spec, spec_desc, "high_complexity_block"); -} - -/// Return a block and state where the block has "average" complexity. I.e., the number of -/// operations we'd generally expect to see. -fn get_average_block( - validator_count: usize, - spec: &ChainSpec, -) -> (SignedBeaconBlock, BeaconState) { - let mut builder: BlockBuilder = BlockBuilder::new(validator_count, &spec); - // builder.num_attestations = T::MaxAttestations::to_usize(); - builder.num_attestations = 16; - builder.set_slot(Slot::from(T::slots_per_epoch() * 3 - 2)); - builder.build_caches(&spec); - builder.build(&spec) -} - -/// Return a block and state where the block has the "worst" complexity. The block is not -/// _guaranteed_ to be the worst possible complexity, it just has the max possible operations. -fn get_worst_block( - validator_count: usize, - spec: &ChainSpec, -) -> (SignedBeaconBlock, BeaconState) { - let mut builder: BlockBuilder = BlockBuilder::new(validator_count, &spec); - builder.maximize_block_operations(); - - // FIXME: enable deposits once we can generate them with valid proofs. - builder.num_deposits = 0; - - builder.set_slot(Slot::from(T::slots_per_epoch() * 3 - 2)); - builder.build_caches(&spec); - builder.build(&spec) -} - -#[allow(clippy::unit_arg)] -fn bench_block( - c: &mut Criterion, - block: SignedBeaconBlock, - state: BeaconState, - spec: &ChainSpec, - spec_desc: &str, - block_desc: &str, -) { - let validator_count = state.validators.len(); - - let title = &format!( - "{}/{}_validators/{}", - spec_desc, validator_count, block_desc - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new( - "per_block_processing/individual_signature_verification", - move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::( - state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ) - .expect("block processing should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }, - ) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new( - "per_block_processing/bulk_signature_verification", - move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::( - state, - &block, - None, - BlockSignatureStrategy::VerifyBulk, - &spec, - ) - .expect("block processing should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }, - ) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("per_block_processing/no_signature_verification", move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::( - state, - &block, - None, - BlockSignatureStrategy::NoVerification, - &spec, - ) - .expect("block processing should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("process_block_header", move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::process_block_header::( - state, - &block.message, - &spec, - ) - .expect("process_block_header should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("verify_block_signature", move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::verify_block_signature::( - state, &block, None, &spec, - ) - .expect("verify_block_signature should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("process_attestations", move |b| { - b.iter_batched_ref( - || (local_spec.clone(), local_state.clone(), local_block.clone()), - |(spec, ref mut state, block)| { - black_box( - state_processing::per_block_processing::process_attestations::( - state, - &block.message.body.attestations, - VerifySignatures::True, - &spec, - ) - .expect("attestation processing should succeed"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("verify_attestation", move |b| { - b.iter_batched_ref( - || { - let attestation = &local_block.message.body.attestations[0]; - - (local_spec.clone(), local_state.clone(), attestation.clone()) - }, - |(spec, ref mut state, attestation)| { - black_box( - state_processing::per_block_processing::verify_attestation_for_block_inclusion( - state, - &attestation, - VerifySignatures::True, - spec, - ) - .expect("should verify attestation"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - c.bench( - &title, - Benchmark::new("get_indexed_attestation", move |b| { - b.iter_batched_ref( - || { - let attestation = &local_block.message.body.attestations[0]; - let committee = local_state - .get_beacon_committee(attestation.data.slot, attestation.data.index) - .unwrap(); - (committee.committee, attestation.clone()) - }, - |(committee, attestation)| { - black_box( - state_processing::common::get_indexed_attestation(committee, &attestation) - .expect("should get indexed attestation"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("is_valid_indexed_attestation_with_signature", move |b| { - b.iter_batched_ref( - || { - let attestation = &local_block.message.body.attestations[0]; - let committee = local_state - .get_beacon_committee(attestation.data.slot, attestation.data.index) - .unwrap(); - let indexed_attestation = state_processing::common::get_indexed_attestation( - &committee.committee, - &attestation, - ) - .expect("should get indexed attestation"); - - (local_spec.clone(), local_state.clone(), indexed_attestation) - }, - |(spec, ref mut state, indexed_attestation)| { - black_box( - state_processing::per_block_processing::is_valid_indexed_attestation( - state, - &indexed_attestation, - VerifySignatures::True, - spec, - ) - .expect("should run is_valid_indexed_attestation"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state.clone(); - let local_spec = spec.clone(); - c.bench( - &title, - Benchmark::new("is_valid_indexed_attestation_without_signature", move |b| { - b.iter_batched_ref( - || { - let attestation = &local_block.message.body.attestations[0]; - let committee = local_state - .get_beacon_committee(attestation.data.slot, attestation.data.index) - .unwrap(); - let indexed_attestation = state_processing::common::get_indexed_attestation( - &committee.committee, - &attestation, - ) - .expect("should get indexed attestation"); - - (local_spec.clone(), local_state.clone(), indexed_attestation) - }, - |(spec, ref mut state, indexed_attestation)| { - black_box( - state_processing::per_block_processing::is_valid_indexed_attestation( - state, - &indexed_attestation, - VerifySignatures::False, - spec, - ) - .expect("should run is_valid_indexed_attestation_without_signature"), - ) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - let local_state = state; - c.bench( - &title, - Benchmark::new("get_attesting_indices", move |b| { - b.iter_batched_ref( - || { - let attestation = &local_block.message.body.attestations[0]; - let committee = local_state - .get_beacon_committee(attestation.data.slot, attestation.data.index) - .unwrap(); - - (committee.committee, attestation.clone()) - }, - |(committee, attestation)| { - black_box(state_processing::common::get_attesting_indices::( - committee, - &attestation.aggregation_bits, - )) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block.clone(); - c.bench( - &title, - Benchmark::new("ssz_serialize_block", move |b| { - b.iter_batched_ref( - || (), - |_| black_box(local_block.as_ssz_bytes()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - let local_block = block; - c.bench( - &title, - Benchmark::new("ssz_block_len", move |b| { - b.iter_batched_ref( - || (), - |_| black_box(local_block.ssz_bytes_len()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); -} - -criterion_group!(benches, all_benches,); -criterion_main!(benches); diff --git a/consensus/state_processing/src/common/altair.rs b/consensus/state_processing/src/common/altair.rs new file mode 100644 index 0000000000..6cf80bdd9e --- /dev/null +++ b/consensus/state_processing/src/common/altair.rs @@ -0,0 +1,32 @@ +use integer_sqrt::IntegerSquareRoot; +use safe_arith::{ArithError, SafeArith}; +use types::*; + +/// Returns the base reward for some validator. +/// +/// Spec v1.1.0 +pub fn get_base_reward( + state: &BeaconState, + index: usize, + // Should be == get_total_active_balance(state, spec) + total_active_balance: u64, + spec: &ChainSpec, +) -> Result { + state + .get_effective_balance(index)? + .safe_div(spec.effective_balance_increment)? + .safe_mul(get_base_reward_per_increment(total_active_balance, spec)?) + .map_err(Into::into) +} + +/// Returns the base reward for some validator. +/// +/// Spec v1.1.0 +pub fn get_base_reward_per_increment( + total_active_balance: u64, + spec: &ChainSpec, +) -> Result { + spec.effective_balance_increment + .safe_mul(spec.base_reward_factor)? + .safe_div(total_active_balance.integer_sqrt()) +} diff --git a/consensus/state_processing/src/common/get_base_reward.rs b/consensus/state_processing/src/common/base.rs similarity index 53% rename from consensus/state_processing/src/common/get_base_reward.rs rename to consensus/state_processing/src/common/base.rs index 2586c2c69e..b5cb382721 100644 --- a/consensus/state_processing/src/common/get_base_reward.rs +++ b/consensus/state_processing/src/common/base.rs @@ -3,8 +3,6 @@ use safe_arith::SafeArith; use types::*; /// Returns the base reward for some validator. -/// -/// Spec v0.12.1 pub fn get_base_reward( state: &BeaconState, index: usize, @@ -12,13 +10,10 @@ pub fn get_base_reward( total_active_balance: u64, spec: &ChainSpec, ) -> Result { - if total_active_balance == 0 { - Ok(0) - } else { - Ok(state - .get_effective_balance(index, spec)? - .safe_mul(spec.base_reward_factor)? - .safe_div(total_active_balance.integer_sqrt())? - .safe_div(spec.base_rewards_per_epoch)?) - } + state + .get_effective_balance(index)? + .safe_mul(spec.base_reward_factor)? + .safe_div(total_active_balance.integer_sqrt())? + .safe_div(spec.base_rewards_per_epoch) + .map_err(Into::into) } diff --git a/consensus/state_processing/src/common/get_attestation_participation.rs b/consensus/state_processing/src/common/get_attestation_participation.rs new file mode 100644 index 0000000000..499d8fa8f8 --- /dev/null +++ b/consensus/state_processing/src/common/get_attestation_participation.rs @@ -0,0 +1,54 @@ +use integer_sqrt::IntegerSquareRoot; +use smallvec::SmallVec; +use types::{ + consts::altair::{ + NUM_FLAG_INDICES, TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, + TIMELY_TARGET_FLAG_INDEX, + }, + BeaconStateError as Error, +}; +use types::{AttestationData, BeaconState, ChainSpec, EthSpec}; + +/// Get the participation flags for a valid attestation. +/// +/// You should have called `verify_attestation_for_block_inclusion` or similar before +/// calling this function, in order to ensure that the attestation's source is correct. +/// +/// This function will return an error if the source of the attestation doesn't match the +/// state's relevant justified checkpoint. +pub fn get_attestation_participation_flag_indices( + state: &BeaconState, + data: &AttestationData, + inclusion_delay: u64, + spec: &ChainSpec, +) -> Result, Error> { + let justified_checkpoint = if data.target.epoch == state.current_epoch() { + state.current_justified_checkpoint() + } else { + state.previous_justified_checkpoint() + }; + + // Matching roots. + let is_matching_source = data.source == justified_checkpoint; + let is_matching_target = is_matching_source + && data.target.root == *state.get_block_root_at_epoch(data.target.epoch)?; + let is_matching_head = + is_matching_target && data.beacon_block_root == *state.get_block_root(data.slot)?; + + if !is_matching_source { + return Err(Error::IncorrectAttestationSource); + } + + // Participation flag indices + let mut participation_flag_indices = SmallVec::new(); + if is_matching_source && inclusion_delay <= T::slots_per_epoch().integer_sqrt() { + participation_flag_indices.push(TIMELY_SOURCE_FLAG_INDEX); + } + if is_matching_target && inclusion_delay <= T::slots_per_epoch() { + participation_flag_indices.push(TIMELY_TARGET_FLAG_INDEX); + } + if is_matching_head && inclusion_delay == spec.min_attestation_inclusion_delay { + participation_flag_indices.push(TIMELY_HEAD_FLAG_INDEX); + } + Ok(participation_flag_indices) +} diff --git a/consensus/state_processing/src/common/initiate_validator_exit.rs b/consensus/state_processing/src/common/initiate_validator_exit.rs index 3d2638a35a..85e5e1df1d 100644 --- a/consensus/state_processing/src/common/initiate_validator_exit.rs +++ b/consensus/state_processing/src/common/initiate_validator_exit.rs @@ -3,40 +3,36 @@ use std::cmp::max; use types::{BeaconStateError as Error, *}; /// Initiate the exit of the validator of the given `index`. -/// -/// Spec v0.12.1 pub fn initiate_validator_exit( state: &mut BeaconState, index: usize, spec: &ChainSpec, ) -> Result<(), Error> { - if index >= state.validators.len() { - return Err(Error::UnknownValidator(index as u64)); - } - // Return if the validator already initiated exit - if state.validators[index].exit_epoch != spec.far_future_epoch { + if state.get_validator(index)?.exit_epoch != spec.far_future_epoch { return Ok(()); } // Ensure the exit cache is built. - state.exit_cache.build(&state.validators, spec)?; + state.build_exit_cache(spec)?; // Compute exit queue epoch let delayed_epoch = state.compute_activation_exit_epoch(state.current_epoch(), spec)?; let mut exit_queue_epoch = state - .exit_cache + .exit_cache() .max_epoch()? .map_or(delayed_epoch, |epoch| max(epoch, delayed_epoch)); - let exit_queue_churn = state.exit_cache.get_churn_at(exit_queue_epoch)?; + let exit_queue_churn = state.exit_cache().get_churn_at(exit_queue_epoch)?; if exit_queue_churn >= state.get_churn_limit(spec)? { exit_queue_epoch.safe_add_assign(1)?; } - state.exit_cache.record_validator_exit(exit_queue_epoch)?; - state.validators[index].exit_epoch = exit_queue_epoch; - state.validators[index].withdrawable_epoch = + state + .exit_cache_mut() + .record_validator_exit(exit_queue_epoch)?; + state.get_validator_mut(index)?.exit_epoch = exit_queue_epoch; + state.get_validator_mut(index)?.withdrawable_epoch = exit_queue_epoch.safe_add(spec.min_validator_withdrawability_delay)?; Ok(()) diff --git a/consensus/state_processing/src/common/mod.rs b/consensus/state_processing/src/common/mod.rs index cdcab4c48d..334a293ed5 100644 --- a/consensus/state_processing/src/common/mod.rs +++ b/consensus/state_processing/src/common/mod.rs @@ -1,34 +1,40 @@ mod deposit_data_tree; +mod get_attestation_participation; mod get_attesting_indices; -mod get_base_reward; mod get_indexed_attestation; mod initiate_validator_exit; mod slash_validator; +pub mod altair; +pub mod base; + pub use deposit_data_tree::DepositDataTree; +pub use get_attestation_participation::get_attestation_participation_flag_indices; pub use get_attesting_indices::get_attesting_indices; -pub use get_base_reward::get_base_reward; pub use get_indexed_attestation::get_indexed_attestation; pub use initiate_validator_exit::initiate_validator_exit; pub use slash_validator::slash_validator; -use safe_arith::{ArithError, SafeArith}; -use types::{BeaconState, EthSpec}; +use safe_arith::SafeArith; +use types::{BeaconState, BeaconStateError, EthSpec}; /// Increase the balance of a validator, erroring upon overflow, as per the spec. -/// -/// Spec v0.12.1 pub fn increase_balance( state: &mut BeaconState, index: usize, delta: u64, -) -> Result<(), ArithError> { - state.balances[index].safe_add_assign(delta) +) -> Result<(), BeaconStateError> { + state.get_balance_mut(index)?.safe_add_assign(delta)?; + Ok(()) } /// Decrease the balance of a validator, saturating upon overflow, as per the spec. -/// -/// Spec v0.12.1 -pub fn decrease_balance(state: &mut BeaconState, index: usize, delta: u64) { - state.balances[index] = state.balances[index].saturating_sub(delta); +pub fn decrease_balance( + state: &mut BeaconState, + index: usize, + delta: u64, +) -> Result<(), BeaconStateError> { + let balance = state.get_balance_mut(index)?; + *balance = balance.saturating_sub(delta); + Ok(()) } diff --git a/consensus/state_processing/src/common/slash_validator.rs b/consensus/state_processing/src/common/slash_validator.rs index a5e5604e8f..7643043bab 100644 --- a/consensus/state_processing/src/common/slash_validator.rs +++ b/consensus/state_processing/src/common/slash_validator.rs @@ -1,55 +1,61 @@ use crate::common::{decrease_balance, increase_balance, initiate_validator_exit}; use safe_arith::SafeArith; use std::cmp; -use types::{BeaconStateError as Error, *}; +use types::{ + consts::altair::{PROPOSER_WEIGHT, WEIGHT_DENOMINATOR}, + BeaconStateError as Error, *, +}; -/// Slash the validator with index ``index``. -/// -/// Spec v0.12.1 +/// Slash the validator with index `slashed_index`. pub fn slash_validator( state: &mut BeaconState, slashed_index: usize, opt_whistleblower_index: Option, spec: &ChainSpec, ) -> Result<(), Error> { - if slashed_index >= state.validators.len() || slashed_index >= state.balances.len() { - return Err(BeaconStateError::UnknownValidator(slashed_index as u64)); - } - let epoch = state.current_epoch(); initiate_validator_exit(state, slashed_index, spec)?; - state.validators[slashed_index].slashed = true; - state.validators[slashed_index].withdrawable_epoch = cmp::max( - state.validators[slashed_index].withdrawable_epoch, + let validator = state.get_validator_mut(slashed_index)?; + validator.slashed = true; + validator.withdrawable_epoch = cmp::max( + validator.withdrawable_epoch, epoch.safe_add(T::EpochsPerSlashingsVector::to_u64())?, ); - let validator_effective_balance = state.get_effective_balance(slashed_index, spec)?; + let validator_effective_balance = validator.effective_balance; state.set_slashings( epoch, state .get_slashings(epoch)? .safe_add(validator_effective_balance)?, )?; + + let min_slashing_penalty_quotient = match state { + BeaconState::Base(_) => spec.min_slashing_penalty_quotient, + BeaconState::Altair(_) => spec.min_slashing_penalty_quotient_altair, + }; decrease_balance( state, slashed_index, - validator_effective_balance.safe_div(spec.min_slashing_penalty_quotient)?, - ); + validator_effective_balance.safe_div(min_slashing_penalty_quotient)?, + )?; // Apply proposer and whistleblower rewards - let proposer_index = state.get_beacon_proposer_index(state.slot, spec)?; + let proposer_index = state.get_beacon_proposer_index(state.slot(), spec)?; let whistleblower_index = opt_whistleblower_index.unwrap_or(proposer_index); let whistleblower_reward = validator_effective_balance.safe_div(spec.whistleblower_reward_quotient)?; - let proposer_reward = whistleblower_reward.safe_div(spec.proposer_reward_quotient)?; + let proposer_reward = match state { + BeaconState::Base(_) => whistleblower_reward.safe_div(spec.proposer_reward_quotient)?, + BeaconState::Altair(_) => whistleblower_reward + .safe_mul(PROPOSER_WEIGHT)? + .safe_div(WEIGHT_DENOMINATOR)?, + }; // Ensure the whistleblower index is in the validator registry. - if state.validators.get(whistleblower_index).is_none() { - return Err(BeaconStateError::UnknownValidator( - whistleblower_index as u64, - )); + if state.validators().get(whistleblower_index).is_none() { + return Err(BeaconStateError::UnknownValidator(whistleblower_index)); } increase_balance(state, proposer_index, proposer_reward)?; diff --git a/consensus/state_processing/src/genesis.rs b/consensus/state_processing/src/genesis.rs index 0f4369a86f..bbc2453408 100644 --- a/consensus/state_processing/src/genesis.rs +++ b/consensus/state_processing/src/genesis.rs @@ -1,14 +1,14 @@ -use super::per_block_processing::{errors::BlockProcessingError, process_deposit}; +use super::per_block_processing::{ + errors::BlockProcessingError, process_operations::process_deposit, +}; use crate::common::DepositDataTree; +use crate::upgrade::upgrade_to_altair; use safe_arith::{ArithError, SafeArith}; use tree_hash::TreeHash; use types::DEPOSIT_TREE_DEPTH; use types::*; /// Initialize a `BeaconState` from genesis data. -/// -/// Spec v0.12.1 -// TODO: this is quite inefficient and we probably want to rethink how we do this pub fn initialize_beacon_state_from_eth1( eth1_block_hash: Hash256, eth1_timestamp: u64, @@ -33,42 +33,53 @@ pub fn initialize_beacon_state_from_eth1( deposit_tree .push_leaf(deposit.data.tree_hash_root()) .map_err(BlockProcessingError::MerkleTreeError)?; - state.eth1_data.deposit_root = deposit_tree.root(); + state.eth1_data_mut().deposit_root = deposit_tree.root(); process_deposit(&mut state, &deposit, spec, true)?; } process_activations(&mut state, spec)?; + // To support testnets with Altair enabled from genesis, perform a possible state upgrade here. + // This must happen *after* deposits and activations are processed or the calculation of sync + // committees during the upgrade will fail. It's a bit cheeky to do this instead of having + // separate Altair genesis initialization logic, but it turns out that our + // use of `BeaconBlock::empty` in `BeaconState::new` is sufficient to correctly initialise + // the `latest_block_header` as per: + // https://github.com/ethereum/eth2.0-specs/pull/2323 + if spec.fork_name_at_epoch(state.current_epoch()) == ForkName::Altair { + upgrade_to_altair(&mut state, spec)?; + } + // Now that we have our validators, initialize the caches (including the committees) state.build_all_caches(spec)?; // Set genesis validators root for domain separation and chain versioning - state.genesis_validators_root = state.update_validators_tree_hash_cache()?; + *state.genesis_validators_root_mut() = state.update_validators_tree_hash_cache()?; Ok(state) } /// Determine whether a candidate genesis state is suitable for starting the chain. -/// -/// Spec v0.12.1 pub fn is_valid_genesis_state(state: &BeaconState, spec: &ChainSpec) -> bool { state .get_active_validator_indices(T::genesis_epoch(), spec) .map_or(false, |active_validators| { - state.genesis_time >= spec.min_genesis_time + state.genesis_time() >= spec.min_genesis_time && active_validators.len() as u64 >= spec.min_genesis_active_validator_count }) } /// Activate genesis validators, if their balance is acceptable. -/// -/// Spec v0.12.1 pub fn process_activations( state: &mut BeaconState, spec: &ChainSpec, ) -> Result<(), Error> { - for (index, validator) in state.validators.iter_mut().enumerate() { - let balance = state.balances[index]; + let (validators, balances) = state.validators_and_balances_mut(); + for (index, validator) in validators.iter_mut().enumerate() { + let balance = balances + .get(index) + .copied() + .ok_or(Error::BalancesOutOfBounds(index))?; validator.effective_balance = std::cmp::min( balance.safe_sub(balance.safe_rem(spec.effective_balance_increment)?)?, spec.max_effective_balance, diff --git a/consensus/state_processing/src/lib.rs b/consensus/state_processing/src/lib.rs index b0a7552811..91959cd866 100644 --- a/consensus/state_processing/src/lib.rs +++ b/consensus/state_processing/src/lib.rs @@ -1,5 +1,16 @@ -#![deny(clippy::integer_arithmetic)] -#![deny(clippy::disallowed_method)] +// Clippy lint set-up (disabled in tests) +#![cfg_attr( + not(test), + deny( + clippy::integer_arithmetic, + clippy::disallowed_method, + clippy::indexing_slicing, + clippy::unwrap_used, + clippy::expect_used, + clippy::panic, + clippy::let_underscore_must_use + ) +)] #[macro_use] mod macros; @@ -10,7 +21,7 @@ pub mod per_block_processing; pub mod per_epoch_processing; pub mod per_slot_processing; pub mod state_advance; -pub mod test_utils; +pub mod upgrade; pub mod verify_operation; pub use genesis::{ @@ -21,6 +32,8 @@ pub use per_block_processing::{ block_signature_verifier, errors::BlockProcessingError, per_block_processing, signature_sets, BlockSignatureStrategy, BlockSignatureVerifier, VerifySignatures, }; -pub use per_epoch_processing::{errors::EpochProcessingError, per_epoch_processing}; +pub use per_epoch_processing::{ + errors::EpochProcessingError, process_epoch as per_epoch_processing, +}; pub use per_slot_processing::{per_slot_processing, Error as SlotProcessingError}; pub use verify_operation::{SigVerifiedOp, VerifyOperation}; diff --git a/consensus/state_processing/src/per_block_processing.rs b/consensus/state_processing/src/per_block_processing.rs index d1db65d26f..41f85a8895 100644 --- a/consensus/state_processing/src/per_block_processing.rs +++ b/consensus/state_processing/src/per_block_processing.rs @@ -1,5 +1,4 @@ -use crate::common::{increase_balance, initiate_validator_exit, slash_validator}; -use errors::{BlockOperationError, BlockProcessingError, HeaderInvalid, IntoWithIndex}; +use errors::{BlockOperationError, BlockProcessingError, HeaderInvalid}; use rayon::prelude::*; use safe_arith::{ArithError, SafeArith}; use signature_sets::{block_proposal_signature_set, get_pubkey_from_state, randao_signature_set}; @@ -10,8 +9,10 @@ pub use self::verify_attester_slashing::{ get_slashable_indices, get_slashable_indices_modular, verify_attester_slashing, }; pub use self::verify_proposer_slashing::verify_proposer_slashing; +pub use altair::sync_committee::process_sync_aggregate; pub use block_signature_verifier::BlockSignatureVerifier; pub use is_valid_indexed_attestation::is_valid_indexed_attestation; +pub use process_operations::process_operations; pub use verify_attestation::{ verify_attestation_for_block_inclusion, verify_attestation_for_state, }; @@ -20,10 +21,11 @@ pub use verify_deposit::{ }; pub use verify_exit::{verify_exit, verify_exit_time_independent_only}; -pub mod block_processing_builder; +pub mod altair; pub mod block_signature_verifier; pub mod errors; mod is_valid_indexed_attestation; +pub mod process_operations; pub mod signature_sets; pub mod tests; mod verify_attestation; @@ -74,16 +76,25 @@ impl VerifySignatures { /// re-calculating the root when it is already known. Note `block_root` should be equal to the /// tree hash root of the block, NOT the signing root of the block. This function takes /// care of mixing in the domain. -/// -/// Spec v0.12.1 pub fn per_block_processing( - mut state: &mut BeaconState, + state: &mut BeaconState, signed_block: &SignedBeaconBlock, block_root: Option, block_signature_strategy: BlockSignatureStrategy, spec: &ChainSpec, ) -> Result<(), BlockProcessingError> { - let block = &signed_block.message; + let block = signed_block.message(); + + // Verify that the `SignedBeaconBlock` instantiation matches the fork at `signed_block.slot()`. + signed_block + .fork_name(spec) + .map_err(BlockProcessingError::InconsistentBlockFork)?; + + // Verify that the `BeaconState` instantiation matches the fork at `state.slot()`. + state + .fork_name(spec) + .map_err(BlockProcessingError::InconsistentStateFork)?; + let verify_signatures = match block_signature_strategy { BlockSignatureStrategy::VerifyBulk => { // Verify all signatures in the block at once. @@ -104,70 +115,51 @@ pub fn per_block_processing( BlockSignatureStrategy::NoVerification => VerifySignatures::False, }; - process_block_header(state, block, spec)?; + let proposer_index = process_block_header(state, block, spec)?; if verify_signatures.is_true() { - verify_block_signature(&state, signed_block, block_root, &spec)?; + verify_block_signature(state, signed_block, block_root, spec)?; } // Ensure the current and previous epoch caches are built. state.build_committee_cache(RelativeEpoch::Previous, spec)?; state.build_committee_cache(RelativeEpoch::Current, spec)?; - process_randao(&mut state, &block, verify_signatures, &spec)?; - process_eth1_data(&mut state, &block.body.eth1_data)?; - process_proposer_slashings( - &mut state, - &block.body.proposer_slashings, - verify_signatures, - spec, - )?; - process_attester_slashings( - &mut state, - &block.body.attester_slashings, - verify_signatures, - spec, - )?; - process_attestations( - &mut state, - &block.body.attestations, - verify_signatures, - spec, - )?; - process_deposits(&mut state, &block.body.deposits, spec)?; - process_exits( - &mut state, - &block.body.voluntary_exits, - verify_signatures, - spec, - )?; + process_randao(state, block, verify_signatures, spec)?; + process_eth1_data(state, block.body().eth1_data())?; + process_operations(state, block.body(), verify_signatures, spec)?; + + if let BeaconBlockRef::Altair(inner) = block { + process_sync_aggregate(state, &inner.body.sync_aggregate, proposer_index, spec)?; + } Ok(()) } -/// Processes the block header. -/// -/// Spec v0.12.1 +/// Processes the block header, returning the proposer index. pub fn process_block_header( state: &mut BeaconState, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, spec: &ChainSpec, -) -> Result<(), BlockOperationError> { +) -> Result> { // Verify that the slots match - verify!(block.slot == state.slot, HeaderInvalid::StateSlotMismatch); + verify!( + block.slot() == state.slot(), + HeaderInvalid::StateSlotMismatch + ); // Verify that the block is newer than the latest block header verify!( - block.slot > state.latest_block_header.slot, + block.slot() > state.latest_block_header().slot, HeaderInvalid::OlderThanLatestBlockHeader { - block_slot: block.slot, - latest_block_header_slot: state.latest_block_header.slot, + block_slot: block.slot(), + latest_block_header_slot: state.latest_block_header().slot, } ); // Verify that proposer index is the correct index - let proposer_index = block.proposer_index as usize; - let state_proposer_index = state.get_beacon_proposer_index(block.slot, spec)?; + let proposer_index = block.proposer_index() as usize; + let state_proposer_index = state.get_beacon_proposer_index(block.slot(), spec)?; verify!( proposer_index == state_proposer_index, HeaderInvalid::ProposerIndexMismatch { @@ -176,25 +168,24 @@ pub fn process_block_header( } ); - let expected_previous_block_root = state.latest_block_header.tree_hash_root(); + let expected_previous_block_root = state.latest_block_header().tree_hash_root(); verify!( - block.parent_root == expected_previous_block_root, + block.parent_root() == expected_previous_block_root, HeaderInvalid::ParentBlockRootMismatch { state: expected_previous_block_root, - block: block.parent_root, + block: block.parent_root(), } ); - state.latest_block_header = block.temporary_block_header(); + *state.latest_block_header_mut() = block.temporary_block_header(); // Verify proposer is not slashed - let proposer = &state.validators[proposer_index]; verify!( - !proposer.slashed, + !state.get_validator(proposer_index)?.slashed, HeaderInvalid::ProposerSlashed(proposer_index) ); - Ok(()) + Ok(block.proposer_index()) } /// Verifies the signature of a block. @@ -223,11 +214,9 @@ pub fn verify_block_signature( /// Verifies the `randao_reveal` against the block's proposer pubkey and updates /// `state.latest_randao_mixes`. -/// -/// Spec v0.12.1 pub fn process_randao( state: &mut BeaconState, - block: &BeaconBlock, + block: BeaconBlockRef<'_, T>, verify_signatures: VerifySignatures, spec: &ChainSpec, ) -> Result<(), BlockProcessingError> { @@ -240,37 +229,33 @@ pub fn process_randao( } // Update the current epoch RANDAO mix. - state.update_randao_mix(state.current_epoch(), &block.body.randao_reveal)?; + state.update_randao_mix(state.current_epoch(), block.body().randao_reveal())?; Ok(()) } /// Update the `state.eth1_data_votes` based upon the `eth1_data` provided. -/// -/// Spec v0.12.1 pub fn process_eth1_data( state: &mut BeaconState, eth1_data: &Eth1Data, ) -> Result<(), Error> { if let Some(new_eth1_data) = get_new_eth1_data(state, eth1_data)? { - state.eth1_data = new_eth1_data; + *state.eth1_data_mut() = new_eth1_data; } - state.eth1_data_votes.push(eth1_data.clone())?; + state.eth1_data_votes_mut().push(eth1_data.clone())?; Ok(()) } /// Returns `Ok(Some(eth1_data))` if adding the given `eth1_data` to `state.eth1_data_votes` would /// result in a change to `state.eth1_data`. -/// -/// Spec v0.12.1 pub fn get_new_eth1_data( state: &BeaconState, eth1_data: &Eth1Data, ) -> Result, ArithError> { let num_votes = state - .eth1_data_votes + .eth1_data_votes() .iter() .filter(|vote| *vote == eth1_data) .count(); @@ -282,226 +267,3 @@ pub fn get_new_eth1_data( Ok(None) } } - -/// Validates each `ProposerSlashing` and updates the state, short-circuiting on an invalid object. -/// -/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns -/// an `Err` describing the invalid object or cause of failure. -/// -/// Spec v0.12.1 -pub fn process_proposer_slashings( - state: &mut BeaconState, - proposer_slashings: &[ProposerSlashing], - verify_signatures: VerifySignatures, - spec: &ChainSpec, -) -> Result<(), BlockProcessingError> { - // Verify and apply proposer slashings in series. - // We have to verify in series because an invalid block may contain multiple slashings - // for the same validator, and we need to correctly detect and reject that. - proposer_slashings - .iter() - .enumerate() - .try_for_each(|(i, proposer_slashing)| { - verify_proposer_slashing(proposer_slashing, &state, verify_signatures, spec) - .map_err(|e| e.into_with_index(i))?; - - slash_validator( - state, - proposer_slashing.signed_header_1.message.proposer_index as usize, - None, - spec, - )?; - - Ok(()) - }) -} - -/// Validates each `AttesterSlashing` and updates the state, short-circuiting on an invalid object. -/// -/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns -/// an `Err` describing the invalid object or cause of failure. -/// -/// Spec v0.12.1 -pub fn process_attester_slashings( - state: &mut BeaconState, - attester_slashings: &[AttesterSlashing], - verify_signatures: VerifySignatures, - spec: &ChainSpec, -) -> Result<(), BlockProcessingError> { - for (i, attester_slashing) in attester_slashings.iter().enumerate() { - verify_attester_slashing(&state, &attester_slashing, verify_signatures, spec) - .map_err(|e| e.into_with_index(i))?; - - let slashable_indices = - get_slashable_indices(&state, &attester_slashing).map_err(|e| e.into_with_index(i))?; - - for i in slashable_indices { - slash_validator(state, i as usize, None, spec)?; - } - } - - Ok(()) -} - -/// Validates each `Attestation` and updates the state, short-circuiting on an invalid object. -/// -/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns -/// an `Err` describing the invalid object or cause of failure. -/// -/// Spec v0.12.1 -pub fn process_attestations( - state: &mut BeaconState, - attestations: &[Attestation], - verify_signatures: VerifySignatures, - spec: &ChainSpec, -) -> Result<(), BlockProcessingError> { - // Ensure the previous epoch cache exists. - state.build_committee_cache(RelativeEpoch::Previous, spec)?; - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec)? as u64; - - // Verify and apply each attestation. - for (i, attestation) in attestations.iter().enumerate() { - verify_attestation_for_block_inclusion(state, attestation, verify_signatures, spec) - .map_err(|e| e.into_with_index(i))?; - - let pending_attestation = PendingAttestation { - aggregation_bits: attestation.aggregation_bits.clone(), - data: attestation.data.clone(), - inclusion_delay: state.slot.safe_sub(attestation.data.slot)?.as_u64(), - proposer_index, - }; - - if attestation.data.target.epoch == state.current_epoch() { - state.current_epoch_attestations.push(pending_attestation)?; - } else { - state - .previous_epoch_attestations - .push(pending_attestation)?; - } - } - - Ok(()) -} - -/// Validates each `Deposit` and updates the state, short-circuiting on an invalid object. -/// -/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns -/// an `Err` describing the invalid object or cause of failure. -/// -/// Spec v0.12.1 -pub fn process_deposits( - state: &mut BeaconState, - deposits: &[Deposit], - spec: &ChainSpec, -) -> Result<(), BlockProcessingError> { - let expected_deposit_len = std::cmp::min( - T::MaxDeposits::to_u64(), - state.get_outstanding_deposit_len()?, - ); - block_verify!( - deposits.len() as u64 == expected_deposit_len, - BlockProcessingError::DepositCountInvalid { - expected: expected_deposit_len as usize, - found: deposits.len(), - } - ); - - // Verify merkle proofs in parallel. - deposits - .par_iter() - .enumerate() - .try_for_each(|(i, deposit)| { - verify_deposit_merkle_proof( - state, - deposit, - state.eth1_deposit_index.safe_add(i as u64)?, - spec, - ) - .map_err(|e| e.into_with_index(i)) - })?; - - // Update the state in series. - for deposit in deposits { - process_deposit(state, deposit, spec, false)?; - } - - Ok(()) -} - -/// Process a single deposit, optionally verifying its merkle proof. -/// -/// Spec v0.12.1 -pub fn process_deposit( - state: &mut BeaconState, - deposit: &Deposit, - spec: &ChainSpec, - verify_merkle_proof: bool, -) -> Result<(), BlockProcessingError> { - let deposit_index = state.eth1_deposit_index as usize; - if verify_merkle_proof { - verify_deposit_merkle_proof(state, deposit, state.eth1_deposit_index, spec) - .map_err(|e| e.into_with_index(deposit_index))?; - } - - state.eth1_deposit_index.safe_add_assign(1)?; - - // Get an `Option` where `u64` is the validator index if this deposit public key - // already exists in the beacon_state. - let validator_index = get_existing_validator_index(state, &deposit.data.pubkey) - .map_err(|e| e.into_with_index(deposit_index))?; - - let amount = deposit.data.amount; - - if let Some(index) = validator_index { - // Update the existing validator balance. - increase_balance(state, index as usize, amount)?; - } else { - // The signature should be checked for new validators. Return early for a bad - // signature. - if verify_deposit_signature(&deposit.data, spec).is_err() { - return Ok(()); - } - - // Create a new validator. - let validator = Validator { - pubkey: deposit.data.pubkey, - withdrawal_credentials: deposit.data.withdrawal_credentials, - activation_eligibility_epoch: spec.far_future_epoch, - activation_epoch: spec.far_future_epoch, - exit_epoch: spec.far_future_epoch, - withdrawable_epoch: spec.far_future_epoch, - effective_balance: std::cmp::min( - amount.safe_sub(amount.safe_rem(spec.effective_balance_increment)?)?, - spec.max_effective_balance, - ), - slashed: false, - }; - state.validators.push(validator)?; - state.balances.push(deposit.data.amount)?; - } - - Ok(()) -} - -/// Validates each `Exit` and updates the state, short-circuiting on an invalid object. -/// -/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns -/// an `Err` describing the invalid object or cause of failure. -/// -/// Spec v0.12.1 -pub fn process_exits( - state: &mut BeaconState, - voluntary_exits: &[SignedVoluntaryExit], - verify_signatures: VerifySignatures, - spec: &ChainSpec, -) -> Result<(), BlockProcessingError> { - // Verify and apply each exit in series. We iterate in series because higher-index exits may - // become invalid due to the application of lower-index ones. - for (i, exit) in voluntary_exits.iter().enumerate() { - verify_exit(&state, exit, verify_signatures, spec).map_err(|e| e.into_with_index(i))?; - - initiate_validator_exit(state, exit.message.validator_index as usize, spec)?; - } - Ok(()) -} diff --git a/consensus/state_processing/src/per_block_processing/altair.rs b/consensus/state_processing/src/per_block_processing/altair.rs new file mode 100644 index 0000000000..1f649b7164 --- /dev/null +++ b/consensus/state_processing/src/per_block_processing/altair.rs @@ -0,0 +1 @@ +pub mod sync_committee; diff --git a/consensus/state_processing/src/per_block_processing/altair/sync_committee.rs b/consensus/state_processing/src/per_block_processing/altair/sync_committee.rs new file mode 100644 index 0000000000..7c8714386c --- /dev/null +++ b/consensus/state_processing/src/per_block_processing/altair/sync_committee.rs @@ -0,0 +1,86 @@ +use crate::common::{altair::get_base_reward_per_increment, decrease_balance, increase_balance}; +use crate::per_block_processing::errors::{BlockProcessingError, SyncAggregateInvalid}; +use safe_arith::SafeArith; +use tree_hash::TreeHash; +use types::consts::altair::{PROPOSER_WEIGHT, SYNC_REWARD_WEIGHT, WEIGHT_DENOMINATOR}; +use types::{BeaconState, ChainSpec, Domain, EthSpec, SigningData, SyncAggregate, Unsigned}; + +pub fn process_sync_aggregate( + state: &mut BeaconState, + aggregate: &SyncAggregate, + proposer_index: u64, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + // Verify sync committee aggregate signature signing over the previous slot block root + let previous_slot = state.slot().saturating_sub(1u64); + + let current_sync_committee = state.current_sync_committee()?.clone(); + let committee_pubkeys = ¤t_sync_committee.pubkeys; + + let participant_pubkeys = committee_pubkeys + .iter() + .zip(aggregate.sync_committee_bits.iter()) + .flat_map(|(pubkey, bit)| { + if bit { + // FIXME(altair): accelerate pubkey decompression with a cache + Some(pubkey.decompress()) + } else { + None + } + }) + .collect::, _>>() + .map_err(|_| SyncAggregateInvalid::PubkeyInvalid)?; + + let domain = spec.get_domain( + previous_slot.epoch(T::slots_per_epoch()), + Domain::SyncCommittee, + &state.fork(), + state.genesis_validators_root(), + ); + + let signing_root = SigningData { + object_root: *state.get_block_root(previous_slot)?, + domain, + } + .tree_hash_root(); + + let pubkey_refs = participant_pubkeys.iter().collect::>(); + if !aggregate + .sync_committee_signature + .eth2_fast_aggregate_verify(signing_root, &pubkey_refs) + { + return Err(SyncAggregateInvalid::SignatureInvalid.into()); + } + + // Compute participant and proposer rewards + let total_active_balance = state.get_total_active_balance(spec)?; + let total_active_increments = + total_active_balance.safe_div(spec.effective_balance_increment)?; + let total_base_rewards = get_base_reward_per_increment(total_active_balance, spec)? + .safe_mul(total_active_increments)?; + let max_participant_rewards = total_base_rewards + .safe_mul(SYNC_REWARD_WEIGHT)? + .safe_div(WEIGHT_DENOMINATOR)? + .safe_div(T::slots_per_epoch())?; + let participant_reward = max_participant_rewards.safe_div(T::SyncCommitteeSize::to_u64())?; + let proposer_reward = participant_reward + .safe_mul(PROPOSER_WEIGHT)? + .safe_div(WEIGHT_DENOMINATOR.safe_sub(PROPOSER_WEIGHT)?)?; + + // Apply participant and proposer rewards + let committee_indices = state.get_sync_committee_indices(¤t_sync_committee)?; + + for (participant_index, participation_bit) in committee_indices + .into_iter() + .zip(aggregate.sync_committee_bits.iter()) + { + if participation_bit { + increase_balance(state, participant_index as usize, participant_reward)?; + increase_balance(state, proposer_index as usize, proposer_reward)?; + } else { + decrease_balance(state, participant_index as usize, participant_reward)?; + } + } + + Ok(()) +} diff --git a/consensus/state_processing/src/per_block_processing/block_processing_builder.rs b/consensus/state_processing/src/per_block_processing/block_processing_builder.rs deleted file mode 100644 index 8ef2a18d22..0000000000 --- a/consensus/state_processing/src/per_block_processing/block_processing_builder.rs +++ /dev/null @@ -1,380 +0,0 @@ -use tree_hash::TreeHash; -use types::test_utils::{ - AttestationTestTask, AttesterSlashingTestTask, DepositTestTask, ProposerSlashingTestTask, - TestingAttestationDataBuilder, TestingBeaconBlockBuilder, TestingBeaconStateBuilder, -}; -use types::*; - -pub struct BlockProcessingBuilder<'a, T: EthSpec> { - pub state: BeaconState, - pub keypairs: Vec, - pub block_builder: TestingBeaconBlockBuilder, - pub spec: &'a ChainSpec, -} - -impl<'a, T: EthSpec> BlockProcessingBuilder<'a, T> { - pub fn new(num_validators: usize, state_slot: Slot, spec: &'a ChainSpec) -> Self { - let mut state_builder = - TestingBeaconStateBuilder::from_deterministic_keypairs(num_validators, &spec); - state_builder.teleport_to_slot(state_slot); - let (state, keypairs) = state_builder.build(); - let block_builder = TestingBeaconBlockBuilder::new(spec); - - Self { - state, - keypairs, - block_builder, - spec, - } - } - - pub fn build_caches(mut self) -> Self { - self.state - .build_all_caches(self.spec) - .expect("caches build OK"); - self - } - - pub fn build_with_n_deposits( - mut self, - num_deposits: u64, - test_task: DepositTestTask, - randao_sk: Option, - previous_block_root: Option, - spec: &ChainSpec, - ) -> (SignedBeaconBlock, BeaconState) { - let (mut state, keypairs) = (self.state, self.keypairs); - - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - match previous_block_root { - Some(root) => builder.set_parent_root(root), - None => builder.set_parent_root(state.latest_block_header.tree_hash_root()), - } - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - let keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - match randao_sk { - Some(sk) => { - builder.set_randao_reveal(&sk, &state.fork, state.genesis_validators_root, spec) - } - None => builder.set_randao_reveal( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ), - } - - self.block_builder.insert_deposits( - spec.max_effective_balance, - test_task, - 1, - num_deposits, - &mut state, - spec, - ); - - let block = self.block_builder.build( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } - - /// Insert a signed `VoluntaryIndex` for the given validator at the given `exit_epoch`. - pub fn insert_exit(mut self, validator_index: u64, exit_epoch: Epoch) -> Self { - self.block_builder.insert_exit( - validator_index, - exit_epoch, - &self.keypairs[validator_index as usize].sk, - &self.state, - self.spec, - ); - self - } - - /// Insert an attestation for the given slot and index. - /// - /// It will be signed by all validators for which `should_sign` returns `true` - /// when called with `(committee_position, validator_index)`. - // TODO: consider using this pattern to replace the TestingAttestationBuilder - pub fn insert_attestation( - mut self, - slot: Slot, - index: u64, - mut should_sign: impl FnMut(usize, usize) -> bool, - ) -> Self { - let committee = self.state.get_beacon_committee(slot, index).unwrap(); - let data = TestingAttestationDataBuilder::new( - AttestationTestTask::Valid, - &self.state, - index, - slot, - self.spec, - ) - .build(); - - let mut attestation = Attestation { - aggregation_bits: BitList::with_capacity(committee.committee.len()).unwrap(), - data, - signature: AggregateSignature::empty(), - }; - - for (i, &validator_index) in committee.committee.iter().enumerate() { - if should_sign(i, validator_index) { - attestation - .sign( - &self.keypairs[validator_index].sk, - i, - &self.state.fork, - self.state.genesis_validators_root, - self.spec, - ) - .unwrap(); - } - } - - self.block_builder - .block - .body - .attestations - .push(attestation) - .unwrap(); - - self - } - - /// Apply a mutation to the `BeaconBlock` before signing. - pub fn modify(mut self, f: impl FnOnce(&mut BeaconBlock)) -> Self { - self.block_builder.modify(f); - self - } - - pub fn build_with_n_attestations( - mut self, - test_task: AttestationTestTask, - num_attestations: u64, - randao_sk: Option, - previous_block_root: Option, - spec: &ChainSpec, - ) -> (SignedBeaconBlock, BeaconState) { - let (state, keypairs) = (self.state, self.keypairs); - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - match previous_block_root { - Some(root) => builder.set_parent_root(root), - None => builder.set_parent_root(state.latest_block_header.tree_hash_root()), - } - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - let keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - match randao_sk { - Some(sk) => { - builder.set_randao_reveal(&sk, &state.fork, state.genesis_validators_root, spec) - } - None => builder.set_randao_reveal( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ), - } - - let all_secret_keys: Vec<&SecretKey> = keypairs.iter().map(|keypair| &keypair.sk).collect(); - self.block_builder - .insert_attestations( - test_task, - &state, - &all_secret_keys, - num_attestations as usize, - spec, - ) - .unwrap(); - let block = self.block_builder.build( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } - - pub fn build_with_attester_slashing( - mut self, - test_task: AttesterSlashingTestTask, - num_attester_slashings: u64, - randao_sk: Option, - previous_block_root: Option, - spec: &ChainSpec, - ) -> (SignedBeaconBlock, BeaconState) { - let (state, keypairs) = (self.state, self.keypairs); - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - match previous_block_root { - Some(root) => builder.set_parent_root(root), - None => builder.set_parent_root(state.latest_block_header.tree_hash_root()), - } - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - let keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - match randao_sk { - Some(sk) => { - builder.set_randao_reveal(&sk, &state.fork, state.genesis_validators_root, spec) - } - None => builder.set_randao_reveal( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ), - } - - let mut validator_indices = vec![]; - let mut secret_keys = vec![]; - for i in 0..num_attester_slashings { - validator_indices.push(i); - secret_keys.push(&keypairs[i as usize].sk); - } - - for _ in 0..num_attester_slashings { - self.block_builder.insert_attester_slashing( - test_task, - &validator_indices, - &secret_keys, - &state.fork, - state.genesis_validators_root, - spec, - ); - } - let block = self.block_builder.build( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } - - pub fn build_with_proposer_slashing( - mut self, - test_task: ProposerSlashingTestTask, - num_proposer_slashings: u64, - randao_sk: Option, - previous_block_root: Option, - spec: &ChainSpec, - ) -> (SignedBeaconBlock, BeaconState) { - let (state, keypairs) = (self.state, self.keypairs); - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - match previous_block_root { - Some(root) => builder.set_parent_root(root), - None => builder.set_parent_root(state.latest_block_header.tree_hash_root()), - } - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - let keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - match randao_sk { - Some(sk) => { - builder.set_randao_reveal(&sk, &state.fork, state.genesis_validators_root, spec) - } - None => builder.set_randao_reveal( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ), - } - - for i in 0..num_proposer_slashings { - let validator_indices = i; - let secret_keys = &keypairs[i as usize].sk; - self.block_builder.insert_proposer_slashing( - test_task, - validator_indices, - &secret_keys, - &state.fork, - state.genesis_validators_root, - spec, - ); - } - let block = self.block_builder.build( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } - - // NOTE: could remove optional args - // NOTE: could return keypairs as well - pub fn build( - mut self, - randao_sk: Option, - previous_block_root: Option, - ) -> (SignedBeaconBlock, BeaconState) { - let (state, keypairs) = (self.state, self.keypairs); - let spec = self.spec; - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - match previous_block_root { - Some(root) => builder.set_parent_root(root), - None => builder.set_parent_root(state.latest_block_header.tree_hash_root()), - } - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - let keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - match randao_sk { - Some(sk) => { - builder.set_randao_reveal(&sk, &state.fork, state.genesis_validators_root, spec) - } - None => builder.set_randao_reveal( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ), - } - - let block = self.block_builder.build( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } -} diff --git a/consensus/state_processing/src/per_block_processing/block_signature_verifier.rs b/consensus/state_processing/src/per_block_processing/block_signature_verifier.rs index 63c4fb7f4c..3a1f6002c3 100644 --- a/consensus/state_processing/src/per_block_processing/block_signature_verifier.rs +++ b/consensus/state_processing/src/per_block_processing/block_signature_verifier.rs @@ -194,7 +194,7 @@ where let set = randao_signature_set( self.state, self.get_pubkey.clone(), - &block.message, + block.message(), self.spec, )?; self.sets.push(set); @@ -204,12 +204,12 @@ where /// Includes all signatures in `self.block.body.proposer_slashings` for verification. pub fn include_proposer_slashings(&mut self, block: &'a SignedBeaconBlock) -> Result<()> { self.sets - .reserve(block.message.body.proposer_slashings.len() * 2); + .reserve(block.message().body().proposer_slashings().len() * 2); block - .message - .body - .proposer_slashings + .message() + .body() + .proposer_slashings() .iter() .try_for_each(|proposer_slashing| { let (set_1, set_2) = proposer_slashing_signature_set( @@ -229,12 +229,12 @@ where /// Includes all signatures in `self.block.body.attester_slashings` for verification. pub fn include_attester_slashings(&mut self, block: &'a SignedBeaconBlock) -> Result<()> { self.sets - .reserve(block.message.body.attester_slashings.len() * 2); + .reserve(block.message().body().attester_slashings().len() * 2); block - .message - .body - .attester_slashings + .message() + .body() + .attester_slashings() .iter() .try_for_each(|attester_slashing| { let (set_1, set_2) = attester_slashing_signature_sets( @@ -256,15 +256,16 @@ where &mut self, block: &'a SignedBeaconBlock, ) -> Result>> { - self.sets.reserve(block.message.body.attestations.len()); + self.sets + .reserve(block.message().body().attestations().len()); block - .message - .body - .attestations + .message() + .body() + .attestations() .iter() .try_fold( - Vec::with_capacity(block.message.body.attestations.len()), + Vec::with_capacity(block.message().body().attestations().len()), |mut vec, attestation| { let committee = self .state @@ -290,12 +291,13 @@ where /// Includes all signatures in `self.block.body.voluntary_exits` for verification. pub fn include_exits(&mut self, block: &'a SignedBeaconBlock) -> Result<()> { - self.sets.reserve(block.message.body.voluntary_exits.len()); + self.sets + .reserve(block.message().body().voluntary_exits().len()); block - .message - .body - .voluntary_exits + .message() + .body() + .voluntary_exits() .iter() .try_for_each(|exit| { let exit = diff --git a/consensus/state_processing/src/per_block_processing/errors.rs b/consensus/state_processing/src/per_block_processing/errors.rs index 81f06a5262..4ebf2a644a 100644 --- a/consensus/state_processing/src/per_block_processing/errors.rs +++ b/consensus/state_processing/src/per_block_processing/errors.rs @@ -11,6 +11,8 @@ use types::*; /// (e.g., when processing attestations instead of when processing deposits). #[derive(Debug, PartialEq, Clone)] pub enum BlockProcessingError { + /// Logic error indicating that the wrong state type was provided. + IncorrectStateType, RandaoSignatureInvalid, BulkSignatureVerificationFailed, StateRootMismatch, @@ -45,11 +47,16 @@ pub enum BlockProcessingError { index: usize, reason: ExitInvalid, }, + SyncAggregateInvalid { + reason: SyncAggregateInvalid, + }, BeaconStateError(BeaconStateError), SignatureSetError(SignatureSetError), SszTypesError(ssz_types::Error), MerkleTreeError(MerkleTreeError), ArithError(ArithError), + InconsistentBlockFork(InconsistentFork), + InconsistentStateFork(InconsistentFork), } impl From for BlockProcessingError { @@ -76,6 +83,12 @@ impl From for BlockProcessingError { } } +impl From for BlockProcessingError { + fn from(reason: SyncAggregateInvalid) -> Self { + BlockProcessingError::SyncAggregateInvalid { reason } + } +} + impl From> for BlockProcessingError { fn from(e: BlockOperationError) -> BlockProcessingError { match e { @@ -339,3 +352,11 @@ pub enum ExitInvalid { /// been invalid or an internal error occurred. SignatureSetError(SignatureSetError), } + +#[derive(Debug, PartialEq, Clone)] +pub enum SyncAggregateInvalid { + /// One or more of the aggregate public keys is invalid. + PubkeyInvalid, + /// The signature is invalid. + SignatureInvalid, +} diff --git a/consensus/state_processing/src/per_block_processing/is_valid_indexed_attestation.rs b/consensus/state_processing/src/per_block_processing/is_valid_indexed_attestation.rs index 66e364723b..c52abf3119 100644 --- a/consensus/state_processing/src/per_block_processing/is_valid_indexed_attestation.rs +++ b/consensus/state_processing/src/per_block_processing/is_valid_indexed_attestation.rs @@ -1,6 +1,7 @@ use super::errors::{BlockOperationError, IndexedAttestationInvalid as Invalid}; use super::signature_sets::{get_pubkey_from_state, indexed_attestation_signature_set}; use crate::VerifySignatures; +use itertools::Itertools; use types::*; type Result = std::result::Result>; @@ -10,8 +11,6 @@ fn error(reason: Invalid) -> BlockOperationError { } /// Verify an `IndexedAttestation`. -/// -/// Spec v0.12.1 pub fn is_valid_indexed_attestation( state: &BeaconState, indexed_attestation: &IndexedAttestation, @@ -25,13 +24,16 @@ pub fn is_valid_indexed_attestation( // Check that indices are sorted and unique let check_sorted = |list: &[u64]| -> Result<()> { - list.windows(2).enumerate().try_for_each(|(i, pair)| { - if pair[0] < pair[1] { - Ok(()) - } else { - Err(error(Invalid::BadValidatorIndicesOrdering(i))) - } - })?; + list.iter() + .tuple_windows() + .enumerate() + .try_for_each(|(i, (x, y))| { + if x < y { + Ok(()) + } else { + Err(error(Invalid::BadValidatorIndicesOrdering(i))) + } + })?; Ok(()) }; check_sorted(indices)?; diff --git a/consensus/state_processing/src/per_block_processing/process_operations.rs b/consensus/state_processing/src/per_block_processing/process_operations.rs new file mode 100644 index 0000000000..d576396fb8 --- /dev/null +++ b/consensus/state_processing/src/per_block_processing/process_operations.rs @@ -0,0 +1,359 @@ +use super::*; +use crate::common::{ + altair::get_base_reward, get_attestation_participation_flag_indices, increase_balance, + initiate_validator_exit, slash_validator, +}; +use crate::per_block_processing::errors::{BlockProcessingError, IntoWithIndex}; +use crate::VerifySignatures; +use safe_arith::SafeArith; +use types::consts::altair::{PARTICIPATION_FLAG_WEIGHTS, PROPOSER_WEIGHT, WEIGHT_DENOMINATOR}; + +pub fn process_operations<'a, T: EthSpec>( + state: &mut BeaconState, + block_body: BeaconBlockBodyRef<'a, T>, + verify_signatures: VerifySignatures, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + process_proposer_slashings( + state, + block_body.proposer_slashings(), + verify_signatures, + spec, + )?; + process_attester_slashings( + state, + block_body.attester_slashings(), + verify_signatures, + spec, + )?; + process_attestations(state, block_body, verify_signatures, spec)?; + process_deposits(state, block_body.deposits(), spec)?; + process_exits(state, block_body.voluntary_exits(), verify_signatures, spec)?; + Ok(()) +} + +pub mod base { + use super::*; + + /// Validates each `Attestation` and updates the state, short-circuiting on an invalid object. + /// + /// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns + /// an `Err` describing the invalid object or cause of failure. + pub fn process_attestations( + state: &mut BeaconState, + attestations: &[Attestation], + verify_signatures: VerifySignatures, + spec: &ChainSpec, + ) -> Result<(), BlockProcessingError> { + // Ensure the previous epoch cache exists. + state.build_committee_cache(RelativeEpoch::Previous, spec)?; + + let proposer_index = state.get_beacon_proposer_index(state.slot(), spec)? as u64; + + // Verify and apply each attestation. + for (i, attestation) in attestations.iter().enumerate() { + verify_attestation_for_block_inclusion(state, attestation, verify_signatures, spec) + .map_err(|e| e.into_with_index(i))?; + + let pending_attestation = PendingAttestation { + aggregation_bits: attestation.aggregation_bits.clone(), + data: attestation.data.clone(), + inclusion_delay: state.slot().safe_sub(attestation.data.slot)?.as_u64(), + proposer_index, + }; + + if attestation.data.target.epoch == state.current_epoch() { + state + .as_base_mut()? + .current_epoch_attestations + .push(pending_attestation)?; + } else { + state + .as_base_mut()? + .previous_epoch_attestations + .push(pending_attestation)?; + } + } + + Ok(()) + } +} + +pub mod altair { + use super::*; + + pub fn process_attestations( + state: &mut BeaconState, + attestations: &[Attestation], + verify_signatures: VerifySignatures, + spec: &ChainSpec, + ) -> Result<(), BlockProcessingError> { + attestations + .iter() + .enumerate() + .try_for_each(|(i, attestation)| { + process_attestation(state, attestation, i, verify_signatures, spec) + }) + } + + pub fn process_attestation( + state: &mut BeaconState, + attestation: &Attestation, + att_index: usize, + verify_signatures: VerifySignatures, + spec: &ChainSpec, + ) -> Result<(), BlockProcessingError> { + state.build_committee_cache(RelativeEpoch::Previous, spec)?; + state.build_committee_cache(RelativeEpoch::Current, spec)?; + + let indexed_attestation = + verify_attestation_for_block_inclusion(state, attestation, verify_signatures, spec) + .map_err(|e| e.into_with_index(att_index))?; + + // Matching roots, participation flag indices + let data = &attestation.data; + let inclusion_delay = state.slot().safe_sub(data.slot)?.as_u64(); + let participation_flag_indices = + get_attestation_participation_flag_indices(state, data, inclusion_delay, spec)?; + + // Update epoch participation flags. + let total_active_balance = state.get_total_active_balance(spec)?; + let mut proposer_reward_numerator = 0; + for index in &indexed_attestation.attesting_indices { + let index = *index as usize; + + for (flag_index, &weight) in PARTICIPATION_FLAG_WEIGHTS.iter().enumerate() { + let epoch_participation = state.get_epoch_participation_mut(data.target.epoch)?; + let validator_participation = epoch_participation + .get_mut(index) + .ok_or(BeaconStateError::ParticipationOutOfBounds(index))?; + + if participation_flag_indices.contains(&flag_index) + && !validator_participation.has_flag(flag_index)? + { + validator_participation.add_flag(flag_index)?; + proposer_reward_numerator.safe_add_assign( + get_base_reward(state, index, total_active_balance, spec)? + .safe_mul(weight)?, + )?; + } + } + } + + let proposer_reward_denominator = WEIGHT_DENOMINATOR + .safe_sub(PROPOSER_WEIGHT)? + .safe_mul(WEIGHT_DENOMINATOR)? + .safe_div(PROPOSER_WEIGHT)?; + let proposer_reward = proposer_reward_numerator.safe_div(proposer_reward_denominator)?; + // FIXME(altair): optimise by passing in proposer_index + let proposer_index = state.get_beacon_proposer_index(state.slot(), spec)?; + increase_balance(state, proposer_index, proposer_reward)?; + Ok(()) + } +} + +/// Validates each `ProposerSlashing` and updates the state, short-circuiting on an invalid object. +/// +/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns +/// an `Err` describing the invalid object or cause of failure. +pub fn process_proposer_slashings( + state: &mut BeaconState, + proposer_slashings: &[ProposerSlashing], + verify_signatures: VerifySignatures, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + // Verify and apply proposer slashings in series. + // We have to verify in series because an invalid block may contain multiple slashings + // for the same validator, and we need to correctly detect and reject that. + proposer_slashings + .iter() + .enumerate() + .try_for_each(|(i, proposer_slashing)| { + verify_proposer_slashing(proposer_slashing, &state, verify_signatures, spec) + .map_err(|e| e.into_with_index(i))?; + + slash_validator( + state, + proposer_slashing.signed_header_1.message.proposer_index as usize, + None, + spec, + )?; + + Ok(()) + }) +} + +/// Validates each `AttesterSlashing` and updates the state, short-circuiting on an invalid object. +/// +/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns +/// an `Err` describing the invalid object or cause of failure. +pub fn process_attester_slashings( + state: &mut BeaconState, + attester_slashings: &[AttesterSlashing], + verify_signatures: VerifySignatures, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + for (i, attester_slashing) in attester_slashings.iter().enumerate() { + verify_attester_slashing(&state, &attester_slashing, verify_signatures, spec) + .map_err(|e| e.into_with_index(i))?; + + let slashable_indices = + get_slashable_indices(&state, &attester_slashing).map_err(|e| e.into_with_index(i))?; + + for i in slashable_indices { + slash_validator(state, i as usize, None, spec)?; + } + } + + Ok(()) +} +/// Wrapper function to handle calling the correct version of `process_attestations` based on +/// the fork. +pub fn process_attestations<'a, T: EthSpec>( + state: &mut BeaconState, + block_body: BeaconBlockBodyRef<'a, T>, + verify_signatures: VerifySignatures, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + match block_body { + BeaconBlockBodyRef::Base(_) => { + base::process_attestations(state, block_body.attestations(), verify_signatures, spec)?; + } + BeaconBlockBodyRef::Altair(_) => { + altair::process_attestations( + state, + block_body.attestations(), + verify_signatures, + spec, + )?; + } + } + Ok(()) +} + +/// Validates each `Exit` and updates the state, short-circuiting on an invalid object. +/// +/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns +/// an `Err` describing the invalid object or cause of failure. +pub fn process_exits( + state: &mut BeaconState, + voluntary_exits: &[SignedVoluntaryExit], + verify_signatures: VerifySignatures, + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + // Verify and apply each exit in series. We iterate in series because higher-index exits may + // become invalid due to the application of lower-index ones. + for (i, exit) in voluntary_exits.iter().enumerate() { + verify_exit(&state, exit, verify_signatures, spec).map_err(|e| e.into_with_index(i))?; + + initiate_validator_exit(state, exit.message.validator_index as usize, spec)?; + } + Ok(()) +} + +/// Validates each `Deposit` and updates the state, short-circuiting on an invalid object. +/// +/// Returns `Ok(())` if the validation and state updates completed successfully, otherwise returns +/// an `Err` describing the invalid object or cause of failure. +pub fn process_deposits( + state: &mut BeaconState, + deposits: &[Deposit], + spec: &ChainSpec, +) -> Result<(), BlockProcessingError> { + let expected_deposit_len = std::cmp::min( + T::MaxDeposits::to_u64(), + state.get_outstanding_deposit_len()?, + ); + block_verify!( + deposits.len() as u64 == expected_deposit_len, + BlockProcessingError::DepositCountInvalid { + expected: expected_deposit_len as usize, + found: deposits.len(), + } + ); + + // Verify merkle proofs in parallel. + deposits + .par_iter() + .enumerate() + .try_for_each(|(i, deposit)| { + verify_deposit_merkle_proof( + state, + deposit, + state.eth1_deposit_index().safe_add(i as u64)?, + spec, + ) + .map_err(|e| e.into_with_index(i)) + })?; + + // Update the state in series. + for deposit in deposits { + process_deposit(state, deposit, spec, false)?; + } + + Ok(()) +} + +/// Process a single deposit, optionally verifying its merkle proof. +pub fn process_deposit( + state: &mut BeaconState, + deposit: &Deposit, + spec: &ChainSpec, + verify_merkle_proof: bool, +) -> Result<(), BlockProcessingError> { + let deposit_index = state.eth1_deposit_index() as usize; + if verify_merkle_proof { + verify_deposit_merkle_proof(state, deposit, state.eth1_deposit_index(), spec) + .map_err(|e| e.into_with_index(deposit_index))?; + } + + state.eth1_deposit_index_mut().safe_add_assign(1)?; + + // Get an `Option` where `u64` is the validator index if this deposit public key + // already exists in the beacon_state. + let validator_index = get_existing_validator_index(state, &deposit.data.pubkey) + .map_err(|e| e.into_with_index(deposit_index))?; + + let amount = deposit.data.amount; + + if let Some(index) = validator_index { + // Update the existing validator balance. + increase_balance(state, index as usize, amount)?; + } else { + // The signature should be checked for new validators. Return early for a bad + // signature. + if verify_deposit_signature(&deposit.data, spec).is_err() { + return Ok(()); + } + + // Create a new validator. + let validator = Validator { + pubkey: deposit.data.pubkey, + withdrawal_credentials: deposit.data.withdrawal_credentials, + activation_eligibility_epoch: spec.far_future_epoch, + activation_epoch: spec.far_future_epoch, + exit_epoch: spec.far_future_epoch, + withdrawable_epoch: spec.far_future_epoch, + effective_balance: std::cmp::min( + amount.safe_sub(amount.safe_rem(spec.effective_balance_increment)?)?, + spec.max_effective_balance, + ), + slashed: false, + }; + state.validators_mut().push(validator)?; + state.balances_mut().push(deposit.data.amount)?; + + // Altair-specific initializations. + if let BeaconState::Altair(altair_state) = state { + altair_state + .previous_epoch_participation + .push(ParticipationFlags::default())?; + altair_state + .current_epoch_participation + .push(ParticipationFlags::default())?; + altair_state.inactivity_scores.push(0)?; + } + } + + Ok(()) +} diff --git a/consensus/state_processing/src/per_block_processing/signature_sets.rs b/consensus/state_processing/src/per_block_processing/signature_sets.rs index 6dd0c660bc..df8513e0ed 100644 --- a/consensus/state_processing/src/per_block_processing/signature_sets.rs +++ b/consensus/state_processing/src/per_block_processing/signature_sets.rs @@ -7,10 +7,10 @@ use ssz::DecodeError; use std::borrow::Cow; use tree_hash::TreeHash; use types::{ - AggregateSignature, AttesterSlashing, BeaconBlock, BeaconState, BeaconStateError, ChainSpec, - DepositData, Domain, EthSpec, Fork, Hash256, IndexedAttestation, ProposerSlashing, PublicKey, - Signature, SignedAggregateAndProof, SignedBeaconBlock, SignedBeaconBlockHeader, SignedRoot, - SignedVoluntaryExit, SigningData, + AggregateSignature, AttesterSlashing, BeaconBlockRef, BeaconState, BeaconStateError, ChainSpec, + DepositData, Domain, EthSpec, Fork, Hash256, InconsistentFork, IndexedAttestation, + ProposerSlashing, PublicKey, Signature, SignedAggregateAndProof, SignedBeaconBlock, + SignedBeaconBlockHeader, SignedRoot, SignedVoluntaryExit, SigningData, }; pub type Result = std::result::Result; @@ -35,6 +35,8 @@ pub enum Error { /// The public key bytes stored in the `BeaconState` were not valid. This is a serious internal /// error. BadBlsBytes { validator_index: u64 }, + /// The block structure is not appropriate for the fork at `block.slot()`. + InconsistentBlockFork(InconsistentFork), } impl From for Error { @@ -52,7 +54,7 @@ where T: EthSpec, { state - .validators + .validators() .get(validator_index) .and_then(|v| { let pk: Option = v.pubkey.decompress().ok(); @@ -73,21 +75,26 @@ where T: EthSpec, F: Fn(usize) -> Option>, { - let block = &signed_block.message; - let proposer_index = state.get_beacon_proposer_index(block.slot, spec)?; + // Verify that the `SignedBeaconBlock` instantiation matches the fork at `signed_block.slot()`. + signed_block + .fork_name(spec) + .map_err(Error::InconsistentBlockFork)?; - if proposer_index as u64 != block.proposer_index { + let block = signed_block.message(); + let proposer_index = state.get_beacon_proposer_index(block.slot(), spec)?; + + if proposer_index as u64 != block.proposer_index() { return Err(Error::IncorrectBlockProposer { - block: block.proposer_index, + block: block.proposer_index(), local_shuffling: proposer_index as u64, }); } let domain = spec.get_domain( - block.slot.epoch(T::slots_per_epoch()), + block.slot().epoch(T::slots_per_epoch()), Domain::BeaconProposer, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = if let Some(root) = block_root { @@ -101,7 +108,7 @@ where }; Ok(SignatureSet::single_pubkey( - &signed_block.signature, + signed_block.signature(), get_pubkey(proposer_index).ok_or_else(|| Error::ValidatorUnknown(proposer_index as u64))?, message, )) @@ -111,26 +118,29 @@ where pub fn randao_signature_set<'a, T, F>( state: &'a BeaconState, get_pubkey: F, - block: &'a BeaconBlock, + block: BeaconBlockRef<'a, T>, spec: &'a ChainSpec, ) -> Result> where T: EthSpec, F: Fn(usize) -> Option>, { - let proposer_index = state.get_beacon_proposer_index(block.slot, spec)?; + let proposer_index = state.get_beacon_proposer_index(block.slot(), spec)?; let domain = spec.get_domain( - block.slot.epoch(T::slots_per_epoch()), + block.slot().epoch(T::slots_per_epoch()), Domain::Randao, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); - let message = block.slot.epoch(T::slots_per_epoch()).signing_root(domain); + let message = block + .slot() + .epoch(T::slots_per_epoch()) + .signing_root(domain); Ok(SignatureSet::single_pubkey( - &block.body.randao_reveal, + block.body().randao_reveal(), get_pubkey(proposer_index).ok_or_else(|| Error::ValidatorUnknown(proposer_index as u64))?, message, )) @@ -177,8 +187,8 @@ fn block_header_signature_set<'a, T: EthSpec>( let domain = spec.get_domain( signed_header.message.slot.epoch(T::slots_per_epoch()), Domain::BeaconProposer, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = signed_header.message.signing_root(domain); @@ -208,8 +218,8 @@ where let domain = spec.get_domain( indexed_attestation.data.target.epoch, Domain::BeaconAttester, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = indexed_attestation.data.signing_root(domain); @@ -309,8 +319,8 @@ where let domain = spec.get_domain( exit.epoch, Domain::VoluntaryExit, - &state.fork, - state.genesis_validators_root, + &state.fork(), + state.genesis_validators_root(), ); let message = exit.signing_root(domain); diff --git a/consensus/state_processing/src/per_block_processing/tests.rs b/consensus/state_processing/src/per_block_processing/tests.rs index 471ca011dd..63e57bddc6 100644 --- a/consensus/state_processing/src/per_block_processing/tests.rs +++ b/consensus/state_processing/src/per_block_processing/tests.rs @@ -1,25 +1,66 @@ #![cfg(all(test, not(feature = "fake_crypto")))] -use super::block_processing_builder::BlockProcessingBuilder; -use super::errors::*; -use crate::{per_block_processing, BlockSignatureStrategy}; -use types::test_utils::{ - AttestationTestTask, AttesterSlashingTestTask, DepositTestTask, ProposerSlashingTestTask, +use crate::per_block_processing; +use crate::per_block_processing::errors::{ + AttestationInvalid, AttesterSlashingInvalid, BlockOperationError, BlockProcessingError, + DepositInvalid, HeaderInvalid, IndexedAttestationInvalid, IntoWithIndex, + ProposerSlashingInvalid, }; +use crate::{per_block_processing::process_operations, BlockSignatureStrategy, VerifySignatures}; +use beacon_chain::store::StoreConfig; +use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; +use lazy_static::lazy_static; +use ssz_types::Bitfield; +use test_utils::generate_deterministic_keypairs; use types::*; +pub const MAX_VALIDATOR_COUNT: usize = 97; pub const NUM_DEPOSITS: u64 = 1; pub const VALIDATOR_COUNT: usize = 64; pub const EPOCH_OFFSET: u64 = 4; pub const NUM_ATTESTATIONS: u64 = 1; -type E = MainnetEthSpec; +lazy_static! { + /// A cached set of keys. + static ref KEYPAIRS: Vec = generate_deterministic_keypairs(MAX_VALIDATOR_COUNT); +} + +fn get_harness( + epoch_offset: u64, + num_validators: usize, +) -> BeaconChainHarness> { + // Set the state and block to be in the last slot of the `epoch_offset`th epoch. + let last_slot_of_epoch = + (MainnetEthSpec::genesis_epoch() + epoch_offset).end_slot(E::slots_per_epoch()); + let harness = BeaconChainHarness::new_with_store_config( + E::default(), + None, + KEYPAIRS[0..num_validators].to_vec(), + StoreConfig::default(), + ); + let state = harness.get_current_state(); + if last_slot_of_epoch > Slot::new(0) { + harness.add_attested_blocks_at_slots( + state, + Hash256::zero(), + (1..last_slot_of_epoch.as_u64()) + .map(Slot::new) + .collect::>() + .as_slice(), + (0..num_validators).collect::>().as_slice(), + ); + } + harness +} #[test] fn valid_block_ok() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let (block, mut state) = builder.build(None, None); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let state = harness.get_current_state(); + + let slot = state.slot(); + let (block, mut state) = harness.make_block_return_pre_state(state, slot + Slot::new(1)); let result = per_block_processing( &mut state, @@ -29,21 +70,24 @@ fn valid_block_ok() { &spec, ); - assert_eq!(result, Ok(())); + assert!(result.is_ok()); } #[test] fn invalid_block_header_state_slot() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let (mut block, mut state) = builder.build(None, None); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - state.slot = Slot::new(133_713); - block.message.slot = Slot::new(424_242); + let state = harness.get_current_state(); + let slot = state.slot() + Slot::new(1); + + let (signed_block, mut state) = harness.make_block_return_pre_state(state, slot); + let (mut block, signature) = signed_block.deconstruct(); + *block.slot_mut() = slot + Slot::new(1); let result = per_block_processing( &mut state, - &block, + &SignedBeaconBlock::from_block(block, signature), None, BlockSignatureStrategy::VerifyIndividual, &spec, @@ -60,13 +104,18 @@ fn invalid_block_header_state_slot() { #[test] fn invalid_parent_block_root() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let invalid_parent_root = Hash256::from([0xAA; 32]); - let (block, mut state) = builder.build(None, Some(invalid_parent_root)); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + + let state = harness.get_current_state(); + let slot = state.slot(); + + let (signed_block, mut state) = harness.make_block_return_pre_state(state, slot + Slot::new(1)); + let (mut block, signature) = signed_block.deconstruct(); + *block.parent_root_mut() = Hash256::from([0xAA; 32]); let result = per_block_processing( &mut state, - &block, + &SignedBeaconBlock::from_block(block, signature), None, BlockSignatureStrategy::VerifyIndividual, &spec, @@ -76,8 +125,8 @@ fn invalid_parent_block_root() { result, Err(BlockProcessingError::HeaderInvalid { reason: HeaderInvalid::ParentBlockRootMismatch { - state: state.latest_block_header.canonical_root(), - block: block.parent_root() + state: state.latest_block_header().canonical_root(), + block: Hash256::from([0xAA; 32]) } }) ); @@ -86,22 +135,16 @@ fn invalid_parent_block_root() { #[test] fn invalid_block_signature() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let (block, mut state) = builder.build(None, None); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - // sign the block with a keypair that is not the expected proposer - let keypair = Keypair::random(); - let block = block.message.sign( - &keypair.sk, - &state.fork, - state.genesis_validators_root, - &spec, - ); + let state = harness.get_current_state(); + let slot = state.slot(); + let (signed_block, mut state) = harness.make_block_return_pre_state(state, slot + Slot::new(1)); + let (block, _) = signed_block.deconstruct(); - // process block with invalid block signature let result = per_block_processing( &mut state, - &block, + &SignedBeaconBlock::from_block(block, Signature::empty()), None, BlockSignatureStrategy::VerifyIndividual, &spec, @@ -119,15 +162,18 @@ fn invalid_block_signature() { #[test] fn invalid_randao_reveal_signature() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - // sign randao reveal with random keypair - let keypair = Keypair::random(); - let (block, mut state) = builder.build(Some(keypair.sk), None); + let state = harness.get_current_state(); + let slot = state.slot(); + + let (signed_block, mut state) = harness.make_block_with_modifier(state, slot + 1, |block| { + *block.body_mut().randao_reveal_mut() = Signature::empty(); + }); let result = per_block_processing( &mut state, - &block, + &signed_block, None, BlockSignatureStrategy::VerifyIndividual, &spec, @@ -140,18 +186,17 @@ fn invalid_randao_reveal_signature() { #[test] fn valid_4_deposits() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::Valid; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = builder.build_with_n_deposits(4, test_task, None, None, &spec); + let (deposits, mut state) = harness.make_deposits(&mut state, 4, None, None); + let deposits = VariableList::from(deposits); - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; + + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting Ok because these are valid deposits. assert_eq!(result, Ok(())); @@ -160,22 +205,19 @@ fn valid_4_deposits() { #[test] fn invalid_deposit_deposit_count_too_big() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::Valid; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); + let (deposits, mut state) = harness.make_deposits(&mut state, 1, None, None); + let deposits = VariableList::from(deposits); + + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; let big_deposit_count = NUM_DEPOSITS + 1; - state.eth1_data.deposit_count = big_deposit_count; - - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + state.eth1_data_mut().deposit_count = big_deposit_count; + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting DepositCountInvalid because we incremented the deposit_count assert_eq!( @@ -190,22 +232,19 @@ fn invalid_deposit_deposit_count_too_big() { #[test] fn invalid_deposit_count_too_small() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::Valid; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); + let (deposits, mut state) = harness.make_deposits(&mut state, 1, None, None); + let deposits = VariableList::from(deposits); + + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; let small_deposit_count = NUM_DEPOSITS - 1; - state.eth1_data.deposit_count = small_deposit_count; - - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + state.eth1_data_mut().deposit_count = small_deposit_count; + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting DepositCountInvalid because we decremented the deposit_count assert_eq!( @@ -220,24 +259,21 @@ fn invalid_deposit_count_too_small() { #[test] fn invalid_deposit_bad_merkle_proof() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::Valid; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); + let (deposits, mut state) = harness.make_deposits(&mut state, 1, None, None); + let deposits = VariableList::from(deposits); - let bad_index = state.eth1_deposit_index as usize; + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; + let bad_index = state.eth1_deposit_index() as usize; // Manually offsetting deposit count and index to trigger bad merkle proof - state.eth1_data.deposit_count += 1; - state.eth1_deposit_index += 1; - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + state.eth1_data_mut().deposit_count += 1; + *state.eth1_deposit_index_mut() += 1; + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting BadMerkleProof because the proofs were created with different indices assert_eq!( @@ -249,44 +285,21 @@ fn invalid_deposit_bad_merkle_proof() { ); } -#[test] -fn invalid_deposit_wrong_pubkey() { - let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::BadPubKey; - - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); - - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); - - // Expecting Ok(()) even though the public key provided does not correspond to the correct public key - assert_eq!(result, Ok(())); -} - #[test] fn invalid_deposit_wrong_sig() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::BadSig; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); + let (deposits, mut state) = + harness.make_deposits(&mut state, 1, None, Some(SignatureBytes::empty())); + let deposits = VariableList::from(deposits); - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting Ok(()) even though the block signature does not correspond to the correct public key assert_eq!(result, Ok(())); } @@ -294,62 +307,37 @@ fn invalid_deposit_wrong_sig() { #[test] fn invalid_deposit_invalid_pub_key() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = DepositTestTask::InvalidPubKey; + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut state = harness.get_current_state(); - let (block, mut state) = - builder.build_with_n_deposits(NUM_DEPOSITS, test_task, None, None, &spec); + let (deposits, mut state) = + harness.make_deposits(&mut state, 1, Some(PublicKeyBytes::empty()), None); + let deposits = VariableList::from(deposits); - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + *head_block.to_mut().body_mut().deposits_mut() = deposits; + + let result = + process_operations::process_deposits(&mut state, head_block.body().deposits(), &spec); // Expecting Ok(()) even though we passed in invalid publickeybytes in the public key field of the deposit data. assert_eq!(result, Ok(())); } -#[test] -fn valid_attestations() { - let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::Valid; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); - - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); - - // Expecting Ok(()) because these are valid attestations - assert_eq!(result, Ok(())); -} - #[test] fn invalid_attestation_no_committee_for_index() { let spec = MainnetEthSpec::default_spec(); - let slot = Epoch::new(EPOCH_OFFSET).start_slot(E::slots_per_epoch()); - let builder = - get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT).insert_attestation(slot, 0, |_, _| true); - let committee_index = builder.state.get_committee_count_at_slot(slot).unwrap(); - let (block, mut state) = builder - .modify(|block| { - block.body.attestations[0].data.index = committee_index; - }) - .build(None, None); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + head_block.to_mut().body_mut().attestations_mut()[0] + .data + .index += 1; + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); @@ -366,16 +354,21 @@ fn invalid_attestation_no_committee_for_index() { #[test] fn invalid_attestation_wrong_justified_checkpoint() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::WrongJustifiedCheckpoint; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + let old_justified_checkpoint = head_block.body().attestations()[0].data.source; + let mut new_justified_checkpoint = old_justified_checkpoint; + new_justified_checkpoint.epoch += Epoch::new(1); + head_block.to_mut().body_mut().attestations_mut()[0] + .data + .source = new_justified_checkpoint; + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); @@ -386,61 +379,28 @@ fn invalid_attestation_wrong_justified_checkpoint() { Err(BlockProcessingError::AttestationInvalid { index: 0, reason: AttestationInvalid::WrongJustifiedCheckpoint { - state: Checkpoint { - epoch: Epoch::from(2_u64), - root: Hash256::zero(), - }, - attestation: Checkpoint { - epoch: Epoch::from(0_u64), - root: Hash256::zero(), - }, + state: old_justified_checkpoint, + attestation: new_justified_checkpoint, is_current: true, } }) ); } -#[test] -fn invalid_attestation_bad_indexed_attestation_bad_signature() { - let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::BadIndexedAttestationBadSignature; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); - - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); - - // Expecting BadIndexedAttestation(BadSignature) because we ommitted the aggregation bits in the attestation - assert_eq!( - result, - Err(BlockProcessingError::AttestationInvalid { - index: 0, - reason: AttestationInvalid::BadIndexedAttestation( - IndexedAttestationInvalid::BadSignature - ) - }) - ); -} - #[test] fn invalid_attestation_bad_aggregation_bitfield_len() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::BadAggregationBitfieldLen; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + head_block.to_mut().body_mut().attestations_mut()[0].aggregation_bits = + Bitfield::with_capacity(spec.target_committee_size).unwrap(); + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); @@ -456,18 +416,18 @@ fn invalid_attestation_bad_aggregation_bitfield_len() { #[test] fn invalid_attestation_bad_signature() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, 97); // minimal number of required validators for this test - let test_task = AttestationTestTask::BadSignature; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, 97); // minimal number of required validators for this test + + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + head_block.to_mut().body_mut().attestations_mut()[0].signature = AggregateSignature::empty(); + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); - // Expecting BadSignature because we're signing with invalid secret_keys assert_eq!( result, @@ -483,16 +443,20 @@ fn invalid_attestation_bad_signature() { #[test] fn invalid_attestation_included_too_early() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::IncludedTooEarly; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + let new_attesation_slot = head_block.body().attestations()[0].data.slot + + Slot::new(MainnetEthSpec::slots_per_epoch()); + head_block.to_mut().body_mut().attestations_mut()[0] + .data + .slot = new_attesation_slot; + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); @@ -502,9 +466,9 @@ fn invalid_attestation_included_too_early() { Err(BlockProcessingError::AttestationInvalid { index: 0, reason: AttestationInvalid::IncludedTooEarly { - state: state.slot, + state: state.slot(), delay: spec.min_attestation_inclusion_delay, - attestation: block.message.body.attestations[0].data.slot, + attestation: new_attesation_slot, } }) ); @@ -514,26 +478,29 @@ fn invalid_attestation_included_too_early() { fn invalid_attestation_included_too_late() { let spec = MainnetEthSpec::default_spec(); // note to maintainer: might need to increase validator count if we get NoCommittee - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::IncludedTooLate; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + let new_attesation_slot = head_block.body().attestations()[0].data.slot + - Slot::new(MainnetEthSpec::slots_per_epoch()); + head_block.to_mut().body_mut().attestations_mut()[0] + .data + .slot = new_attesation_slot; + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); - assert_eq!( result, Err(BlockProcessingError::AttestationInvalid { index: 0, reason: AttestationInvalid::IncludedTooLate { - state: state.slot, - attestation: block.message.body.attestations[0].data.slot, + state: state.slot(), + attestation: new_attesation_slot, } }) ); @@ -543,27 +510,28 @@ fn invalid_attestation_included_too_late() { fn invalid_attestation_target_epoch_slot_mismatch() { let spec = MainnetEthSpec::default_spec(); // note to maintainer: might need to increase validator count if we get NoCommittee - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttestationTestTask::TargetEpochSlotMismatch; - let (block, mut state) = - builder.build_with_n_attestations(test_task, NUM_ATTESTATIONS, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut state = harness.get_current_state(); + let mut head_block = harness.chain.head_beacon_block().unwrap().deconstruct().0; + head_block.to_mut().body_mut().attestations_mut()[0] + .data + .target + .epoch += Epoch::new(1); + + let result = process_operations::process_attestations( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + head_block.body(), + VerifySignatures::True, &spec, ); - - let attestation = &block.message.body.attestations[0].data; assert_eq!( result, Err(BlockProcessingError::AttestationInvalid { index: 0, reason: AttestationInvalid::TargetEpochSlotMismatch { - target_epoch: attestation.target.epoch, - slot_epoch: attestation.slot.epoch(E::slots_per_epoch()), + target_epoch: Epoch::new(EPOCH_OFFSET + 1), + slot_epoch: Epoch::new(EPOCH_OFFSET), } }) ); @@ -572,17 +540,15 @@ fn invalid_attestation_target_epoch_slot_mismatch() { #[test] fn valid_insert_attester_slashing() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttesterSlashingTestTask::Valid; - let num_attester_slashings = 1; - let (block, mut state) = - builder.build_with_attester_slashing(test_task, num_attester_slashings, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let attester_slashing = harness.make_attester_slashing(vec![1, 2]); + + let mut state = harness.get_current_state(); + let result = process_operations::process_attester_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[attester_slashing], + VerifySignatures::True, &spec, ); @@ -593,16 +559,16 @@ fn valid_insert_attester_slashing() { #[test] fn invalid_attester_slashing_not_slashable() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttesterSlashingTestTask::NotSlashable; - let num_attester_slashings = 1; - let (block, mut state) = - builder.build_with_attester_slashing(test_task, num_attester_slashings, None, None, &spec); - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + + let mut attester_slashing = harness.make_attester_slashing(vec![1, 2]); + attester_slashing.attestation_1 = attester_slashing.attestation_2.clone(); + + let mut state = harness.get_current_state(); + let result = process_operations::process_attester_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[attester_slashing], + VerifySignatures::True, &spec, ); @@ -619,17 +585,16 @@ fn invalid_attester_slashing_not_slashable() { #[test] fn invalid_attester_slashing_1_invalid() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttesterSlashingTestTask::IndexedAttestation1Invalid; - let num_attester_slashings = 1; - let (block, mut state) = - builder.build_with_attester_slashing(test_task, num_attester_slashings, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut attester_slashing = harness.make_attester_slashing(vec![1, 2]); + attester_slashing.attestation_1.attesting_indices = VariableList::from(vec![2, 1]); + + let mut state = harness.get_current_state(); + let result = process_operations::process_attester_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[attester_slashing], + VerifySignatures::True, &spec, ); @@ -649,17 +614,16 @@ fn invalid_attester_slashing_1_invalid() { #[test] fn invalid_attester_slashing_2_invalid() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = AttesterSlashingTestTask::IndexedAttestation2Invalid; - let num_attester_slashings = 1; - let (block, mut state) = - builder.build_with_attester_slashing(test_task, num_attester_slashings, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut attester_slashing = harness.make_attester_slashing(vec![1, 2]); + attester_slashing.attestation_2.attesting_indices = VariableList::from(vec![2, 1]); + + let mut state = harness.get_current_state(); + let result = process_operations::process_attester_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[attester_slashing], + VerifySignatures::True, &spec, ); @@ -679,36 +643,35 @@ fn invalid_attester_slashing_2_invalid() { #[test] fn valid_insert_proposer_slashing() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::Valid; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); - - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let proposer_slashing = harness.make_proposer_slashing(1); + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::True, &spec, ); - - // Expecting Ok(()) because we inserted a valid proposer slashing - assert_eq!(result, Ok(())); + // Expecting Ok(_) because we inserted a valid proposer slashing + assert!(result.is_ok()); } #[test] fn invalid_proposer_slashing_proposals_identical() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::ProposalsIdentical; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut proposer_slashing = harness.make_proposer_slashing(1); + proposer_slashing.signed_header_1.message = proposer_slashing.signed_header_2.message.clone(); + + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::True, &spec, ); + // Expecting ProposalsIdentical because we the two headers are identical assert_eq!( result, @@ -722,15 +685,17 @@ fn invalid_proposer_slashing_proposals_identical() { #[test] fn invalid_proposer_slashing_proposer_unknown() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::ProposerUnknown; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let result = per_block_processing( + let mut proposer_slashing = harness.make_proposer_slashing(1); + proposer_slashing.signed_header_1.message.proposer_index = 3_141_592; + proposer_slashing.signed_header_2.message.proposer_index = 3_141_592; + + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::True, &spec, ); @@ -744,64 +709,33 @@ fn invalid_proposer_slashing_proposer_unknown() { ); } -#[test] -fn invalid_proposer_slashing_not_slashable() { - let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::ProposerNotSlashable; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); - - state.validators[0].slashed = true; - let result = per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - &spec, - ); - - // Expecting ProposerNotSlashable because we've already slashed the validator - assert_eq!( - result, - Err(BlockProcessingError::ProposerSlashingInvalid { - index: 0, - reason: ProposerSlashingInvalid::ProposerNotSlashable(0) - }) - ); -} - #[test] fn invalid_proposer_slashing_duplicate_slashing() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::Valid; - let (mut block, mut state) = - builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); - let slashing = block.message.body.proposer_slashings[0].clone(); - let slashed_proposer = slashing.signed_header_1.message.proposer_index; - block - .message - .body - .proposer_slashings - .push(slashing) - .expect("should push slashing"); - - let result = per_block_processing( + let proposer_slashing = harness.make_proposer_slashing(1); + let mut state = harness.get_current_state(); + let result_1 = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::NoVerification, + &[proposer_slashing.clone()], + VerifySignatures::False, &spec, ); + assert!(result_1.is_ok()); - // Expecting ProposerNotSlashable for the 2nd slashing because the validator has been - // slashed by the 1st slashing. + let result_2 = process_operations::process_proposer_slashings( + &mut state, + &[proposer_slashing], + VerifySignatures::False, + &spec, + ); + // Expecting ProposerNotSlashable because we've already slashed the validator assert_eq!( - result, + result_2, Err(BlockProcessingError::ProposerSlashingInvalid { - index: 1, - reason: ProposerSlashingInvalid::ProposerNotSlashable(slashed_proposer) + index: 0, + reason: ProposerSlashingInvalid::ProposerNotSlashable(1) }) ); } @@ -809,15 +743,14 @@ fn invalid_proposer_slashing_duplicate_slashing() { #[test] fn invalid_bad_proposal_1_signature() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::BadProposal1Signature; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); - - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut proposer_slashing = harness.make_proposer_slashing(1); + proposer_slashing.signed_header_1.signature = Signature::empty(); + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::True, &spec, ); @@ -834,15 +767,14 @@ fn invalid_bad_proposal_1_signature() { #[test] fn invalid_bad_proposal_2_signature() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::BadProposal2Signature; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); - - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut proposer_slashing = harness.make_proposer_slashing(1); + proposer_slashing.signed_header_2.signature = Signature::empty(); + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::True, &spec, ); @@ -859,15 +791,15 @@ fn invalid_bad_proposal_2_signature() { #[test] fn invalid_proposer_slashing_proposal_epoch_mismatch() { let spec = MainnetEthSpec::default_spec(); - let builder = get_builder(&spec, EPOCH_OFFSET, VALIDATOR_COUNT); - let test_task = ProposerSlashingTestTask::ProposalEpochMismatch; - let (block, mut state) = builder.build_with_proposer_slashing(test_task, 1, None, None, &spec); - - let result = per_block_processing( + let harness = get_harness::(EPOCH_OFFSET, VALIDATOR_COUNT); + let mut proposer_slashing = harness.make_proposer_slashing(1); + proposer_slashing.signed_header_1.message.slot = Slot::new(0); + proposer_slashing.signed_header_2.message.slot = Slot::new(128); + let mut state = harness.get_current_state(); + let result = process_operations::process_proposer_slashings( &mut state, - &block, - None, - BlockSignatureStrategy::VerifyIndividual, + &[proposer_slashing], + VerifySignatures::False, &spec, ); @@ -883,14 +815,3 @@ fn invalid_proposer_slashing_proposal_epoch_mismatch() { }) ); } - -fn get_builder( - spec: &ChainSpec, - epoch_offset: u64, - num_validators: usize, -) -> BlockProcessingBuilder { - // Set the state and block to be in the last slot of the `epoch_offset`th epoch. - let last_slot_of_epoch = (MainnetEthSpec::genesis_epoch() + epoch_offset) - .end_slot(MainnetEthSpec::slots_per_epoch()); - BlockProcessingBuilder::new(num_validators, last_slot_of_epoch, &spec).build_caches() -} diff --git a/consensus/state_processing/src/per_block_processing/verify_attestation.rs b/consensus/state_processing/src/per_block_processing/verify_attestation.rs index 678ba28e16..5d8113af4f 100644 --- a/consensus/state_processing/src/per_block_processing/verify_attestation.rs +++ b/consensus/state_processing/src/per_block_processing/verify_attestation.rs @@ -15,28 +15,26 @@ fn error(reason: Invalid) -> BlockOperationError { /// to `state`. Otherwise, returns a descriptive `Err`. /// /// Optionally verifies the aggregate signature, depending on `verify_signatures`. -/// -/// Spec v0.12.1 pub fn verify_attestation_for_block_inclusion( state: &BeaconState, attestation: &Attestation, verify_signatures: VerifySignatures, spec: &ChainSpec, -) -> Result<()> { +) -> Result> { let data = &attestation.data; verify!( - data.slot.safe_add(spec.min_attestation_inclusion_delay)? <= state.slot, + data.slot.safe_add(spec.min_attestation_inclusion_delay)? <= state.slot(), Invalid::IncludedTooEarly { - state: state.slot, + state: state.slot(), delay: spec.min_attestation_inclusion_delay, attestation: data.slot, } ); verify!( - state.slot <= data.slot.safe_add(T::slots_per_epoch())?, + state.slot() <= data.slot.safe_add(T::slots_per_epoch())?, Invalid::IncludedTooLate { - state: state.slot, + state: state.slot(), attestation: data.slot, } ); @@ -56,7 +54,7 @@ pub fn verify_attestation_for_state( attestation: &Attestation, verify_signatures: VerifySignatures, spec: &ChainSpec, -) -> Result<()> { +) -> Result> { let data = &attestation.data; verify!( @@ -72,7 +70,7 @@ pub fn verify_attestation_for_state( let indexed_attestation = get_indexed_attestation(committee.committee, attestation)?; is_valid_indexed_attestation(state, &indexed_attestation, verify_signatures, spec)?; - Ok(()) + Ok(indexed_attestation) } /// Check target epoch and source checkpoint. @@ -92,9 +90,9 @@ fn verify_casper_ffg_vote( ); if data.target.epoch == state.current_epoch() { verify!( - data.source == state.current_justified_checkpoint, + data.source == state.current_justified_checkpoint(), Invalid::WrongJustifiedCheckpoint { - state: state.current_justified_checkpoint, + state: state.current_justified_checkpoint(), attestation: data.source, is_current: true, } @@ -102,9 +100,9 @@ fn verify_casper_ffg_vote( Ok(()) } else if data.target.epoch == state.previous_epoch() { verify!( - data.source == state.previous_justified_checkpoint, + data.source == state.previous_justified_checkpoint(), Invalid::WrongJustifiedCheckpoint { - state: state.previous_justified_checkpoint, + state: state.previous_justified_checkpoint(), attestation: data.source, is_current: false, } diff --git a/consensus/state_processing/src/per_block_processing/verify_attester_slashing.rs b/consensus/state_processing/src/per_block_processing/verify_attester_slashing.rs index e28007429e..e4a46c9805 100644 --- a/consensus/state_processing/src/per_block_processing/verify_attester_slashing.rs +++ b/consensus/state_processing/src/per_block_processing/verify_attester_slashing.rs @@ -83,7 +83,7 @@ where for index in &attesting_indices_1 & &attesting_indices_2 { let validator = state - .validators + .validators() .get(index as usize) .ok_or_else(|| error(Invalid::UnknownValidator(index)))?; diff --git a/consensus/state_processing/src/per_block_processing/verify_deposit.rs b/consensus/state_processing/src/per_block_processing/verify_deposit.rs index 7290df1a09..0cedc564b2 100644 --- a/consensus/state_processing/src/per_block_processing/verify_deposit.rs +++ b/consensus/state_processing/src/per_block_processing/verify_deposit.rs @@ -60,7 +60,7 @@ pub fn verify_deposit_merkle_proof( &deposit.proof[..], spec.deposit_contract_tree_depth.safe_add(1)? as usize, deposit_index as usize, - state.eth1_data.deposit_root, + state.eth1_data().deposit_root, ), DepositInvalid::BadMerkleProof ); diff --git a/consensus/state_processing/src/per_block_processing/verify_exit.rs b/consensus/state_processing/src/per_block_processing/verify_exit.rs index 16c4db221d..efaf57f6d9 100644 --- a/consensus/state_processing/src/per_block_processing/verify_exit.rs +++ b/consensus/state_processing/src/per_block_processing/verify_exit.rs @@ -52,7 +52,7 @@ fn verify_exit_parametric( let exit = &signed_exit.message; let validator = state - .validators + .validators() .get(exit.validator_index as usize) .ok_or_else(|| error(ExitInvalid::ValidatorUnknown(exit.validator_index)))?; diff --git a/consensus/state_processing/src/per_block_processing/verify_proposer_slashing.rs b/consensus/state_processing/src/per_block_processing/verify_proposer_slashing.rs index ffc9ccbd8e..9b290a47e1 100644 --- a/consensus/state_processing/src/per_block_processing/verify_proposer_slashing.rs +++ b/consensus/state_processing/src/per_block_processing/verify_proposer_slashing.rs @@ -41,7 +41,7 @@ pub fn verify_proposer_slashing( // Check proposer is slashable let proposer = state - .validators + .validators() .get(header_1.proposer_index as usize) .ok_or_else(|| error(Invalid::ProposerUnknown(header_1.proposer_index)))?; diff --git a/consensus/state_processing/src/per_epoch_processing.rs b/consensus/state_processing/src/per_epoch_processing.rs index cc1464eef9..4c659cfff8 100644 --- a/consensus/state_processing/src/per_epoch_processing.rs +++ b/consensus/state_processing/src/per_epoch_processing.rs @@ -1,21 +1,28 @@ -use errors::EpochProcessingError as Error; -use safe_arith::SafeArith; -use tree_hash::TreeHash; -use types::*; +#![deny(clippy::wildcard_imports)] -pub mod apply_rewards; +// FIXME(altair): refactor to remove phase0/base structs, including `EpochProcessingSummary` +pub use base::{TotalBalances, ValidatorStatus, ValidatorStatuses}; +use errors::EpochProcessingError as Error; +pub use registry_updates::process_registry_updates; +use safe_arith::SafeArith; +pub use slashings::process_slashings; +use types::{BeaconState, ChainSpec, EthSpec}; +pub use weigh_justification_and_finalization::weigh_justification_and_finalization; + +pub mod altair; +pub mod base; +pub mod effective_balance_updates; pub mod errors; -pub mod process_slashings; +pub mod historical_roots_update; pub mod registry_updates; +pub mod resets; +pub mod slashings; pub mod tests; pub mod validator_statuses; - -pub use apply_rewards::process_rewards_and_penalties; -pub use process_slashings::process_slashings; -pub use registry_updates::process_registry_updates; -pub use validator_statuses::{TotalBalances, ValidatorStatus, ValidatorStatuses}; +pub mod weigh_justification_and_finalization; /// Provides a summary of validator participation during the epoch. +#[derive(PartialEq, Debug)] pub struct EpochProcessingSummary { pub total_balances: TotalBalances, pub statuses: Vec, @@ -25,195 +32,44 @@ pub struct EpochProcessingSummary { /// /// Mutates the given `BeaconState`, returning early if an error is encountered. If an error is /// returned, a state might be "half-processed" and therefore in an invalid state. -/// -/// Spec v0.12.1 -pub fn per_epoch_processing( +pub fn process_epoch( state: &mut BeaconState, spec: &ChainSpec, ) -> Result { - // Ensure the committee caches are built. - state.build_committee_cache(RelativeEpoch::Previous, spec)?; - state.build_committee_cache(RelativeEpoch::Current, spec)?; - state.build_committee_cache(RelativeEpoch::Next, spec)?; + // Verify that the `BeaconState` instantiation matches the fork at `state.slot()`. + state + .fork_name(spec) + .map_err(Error::InconsistentStateFork)?; - // Load the struct we use to assign validators into sets based on their participation. - // - // E.g., attestation in the previous epoch, attested to the head, etc. - let mut validator_statuses = ValidatorStatuses::new(state, spec)?; - validator_statuses.process_attestations(&state, spec)?; - - // Justification and finalization. - process_justification_and_finalization(state, &validator_statuses.total_balances)?; - - // Rewards and Penalties. - process_rewards_and_penalties(state, &mut validator_statuses, spec)?; - - // Registry Updates. - process_registry_updates(state, spec)?; - - // Slashings. - process_slashings( - state, - validator_statuses.total_balances.current_epoch(), - spec, - )?; - - // Final updates. - process_final_updates(state, spec)?; - - // Rotate the epoch caches to suit the epoch transition. - state.advance_caches(); - - Ok(EpochProcessingSummary { - total_balances: validator_statuses.total_balances, - statuses: validator_statuses.statuses, - }) + match state { + BeaconState::Base(_) => base::process_epoch(state, spec), + BeaconState::Altair(_) => altair::process_epoch(state, spec), + } } -/// Update the following fields on the `BeaconState`: -/// -/// - `justification_bitfield`. -/// - `previous_justified_epoch` -/// - `previous_justified_root` -/// - `current_justified_epoch` -/// - `current_justified_root` -/// - `finalized_epoch` -/// - `finalized_root` -/// -/// Spec v0.12.1 -#[allow(clippy::if_same_then_else)] // For readability and consistency with spec. -pub fn process_justification_and_finalization( - state: &mut BeaconState, - total_balances: &TotalBalances, -) -> Result<(), Error> { - if state.current_epoch() <= T::genesis_epoch().safe_add(1)? { - return Ok(()); - } - - let previous_epoch = state.previous_epoch(); - let current_epoch = state.current_epoch(); - - let old_previous_justified_checkpoint = state.previous_justified_checkpoint; - let old_current_justified_checkpoint = state.current_justified_checkpoint; - - // Process justifications - state.previous_justified_checkpoint = state.current_justified_checkpoint; - state.justification_bits.shift_up(1)?; - - if total_balances - .previous_epoch_target_attesters() - .safe_mul(3)? - >= total_balances.current_epoch().safe_mul(2)? - { - state.current_justified_checkpoint = Checkpoint { - epoch: previous_epoch, - root: *state.get_block_root_at_epoch(previous_epoch)?, - }; - state.justification_bits.set(1, true)?; - } - // If the current epoch gets justified, fill the last bit. - if total_balances - .current_epoch_target_attesters() - .safe_mul(3)? - >= total_balances.current_epoch().safe_mul(2)? - { - state.current_justified_checkpoint = Checkpoint { - epoch: current_epoch, - root: *state.get_block_root_at_epoch(current_epoch)?, - }; - state.justification_bits.set(0, true)?; - } - - let bits = &state.justification_bits; - - // The 2nd/3rd/4th most recent epochs are all justified, the 2nd using the 4th as source. - if (1..4).all(|i| bits.get(i).unwrap_or(false)) - && old_previous_justified_checkpoint.epoch.safe_add(3)? == current_epoch - { - state.finalized_checkpoint = old_previous_justified_checkpoint; - } - // The 2nd/3rd most recent epochs are both justified, the 2nd using the 3rd as source. - else if (1..3).all(|i| bits.get(i).unwrap_or(false)) - && old_previous_justified_checkpoint.epoch.safe_add(2)? == current_epoch - { - state.finalized_checkpoint = old_previous_justified_checkpoint; - } - // The 1st/2nd/3rd most recent epochs are all justified, the 1st using the 3nd as source. - if (0..3).all(|i| bits.get(i).unwrap_or(false)) - && old_current_justified_checkpoint.epoch.safe_add(2)? == current_epoch - { - state.finalized_checkpoint = old_current_justified_checkpoint; - } - // The 1st/2nd most recent epochs are both justified, the 1st using the 2nd as source. - else if (0..2).all(|i| bits.get(i).unwrap_or(false)) - && old_current_justified_checkpoint.epoch.safe_add(1)? == current_epoch - { - state.finalized_checkpoint = old_current_justified_checkpoint; - } - - Ok(()) +/// Used to track the changes to a validator's balance. +#[derive(Default, Clone)] +pub struct Delta { + pub rewards: u64, + pub penalties: u64, } -/// Finish up an epoch update. -/// -/// Spec v0.12.1 -pub fn process_final_updates( - state: &mut BeaconState, - spec: &ChainSpec, -) -> Result<(), Error> { - let current_epoch = state.current_epoch(); - let next_epoch = state.next_epoch()?; - - // Reset eth1 data votes. - if state - .slot - .safe_add(1)? - .safe_rem(T::SlotsPerEth1VotingPeriod::to_u64())? - == 0 - { - state.eth1_data_votes = VariableList::empty(); +impl Delta { + /// Reward the validator with the `reward`. + pub fn reward(&mut self, reward: u64) -> Result<(), Error> { + self.rewards = self.rewards.safe_add(reward)?; + Ok(()) } - // Update effective balances with hysteresis (lag). - let hysteresis_increment = spec - .effective_balance_increment - .safe_div(spec.hysteresis_quotient)?; - let downward_threshold = hysteresis_increment.safe_mul(spec.hysteresis_downward_multiplier)?; - let upward_threshold = hysteresis_increment.safe_mul(spec.hysteresis_upward_multiplier)?; - for (index, validator) in state.validators.iter_mut().enumerate() { - let balance = state.balances[index]; - - if balance.safe_add(downward_threshold)? < validator.effective_balance - || validator.effective_balance.safe_add(upward_threshold)? < balance - { - validator.effective_balance = std::cmp::min( - balance.safe_sub(balance.safe_rem(spec.effective_balance_increment)?)?, - spec.max_effective_balance, - ); - } + /// Penalize the validator with the `penalty`. + pub fn penalize(&mut self, penalty: u64) -> Result<(), Error> { + self.penalties = self.penalties.safe_add(penalty)?; + Ok(()) } - // Reset slashings - state.set_slashings(next_epoch, 0)?; - - // Set randao mix - state.set_randao_mix(next_epoch, *state.get_randao_mix(current_epoch)?)?; - - // Set historical root accumulator - if next_epoch - .as_u64() - .safe_rem(T::SlotsPerHistoricalRoot::to_u64().safe_div(T::slots_per_epoch())?)? - == 0 - { - let historical_batch = state.historical_batch(); - state - .historical_roots - .push(historical_batch.tree_hash_root())?; + /// Combine two deltas. + fn combine(&mut self, other: Delta) -> Result<(), Error> { + self.reward(other.rewards)?; + self.penalize(other.penalties) } - - // Rotate current/previous epoch attestations - state.previous_epoch_attestations = - std::mem::replace(&mut state.current_epoch_attestations, VariableList::empty()); - - Ok(()) } diff --git a/consensus/state_processing/src/per_epoch_processing/altair.rs b/consensus/state_processing/src/per_epoch_processing/altair.rs new file mode 100644 index 0000000000..79a72118cb --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair.rs @@ -0,0 +1,82 @@ +use super::{process_registry_updates, process_slashings, EpochProcessingSummary, Error}; +use crate::per_epoch_processing::{ + effective_balance_updates::process_effective_balance_updates, + historical_roots_update::process_historical_roots_update, + resets::{process_eth1_data_reset, process_randao_mixes_reset, process_slashings_reset}, + validator_statuses::ValidatorStatuses, +}; +pub use inactivity_updates::process_inactivity_updates; +pub use justification_and_finalization::process_justification_and_finalization; +pub use participation_flag_updates::process_participation_flag_updates; +pub use rewards_and_penalties::process_rewards_and_penalties; +pub use sync_committee_updates::process_sync_committee_updates; +use types::{BeaconState, ChainSpec, EthSpec, RelativeEpoch}; + +pub mod inactivity_updates; +pub mod justification_and_finalization; +pub mod participation_flag_updates; +pub mod rewards_and_penalties; +pub mod sync_committee_updates; + +pub fn process_epoch( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result { + // Ensure the committee caches are built. + state.build_committee_cache(RelativeEpoch::Previous, spec)?; + state.build_committee_cache(RelativeEpoch::Current, spec)?; + state.build_committee_cache(RelativeEpoch::Next, spec)?; + + // Justification and finalization. + process_justification_and_finalization(state, spec)?; + + process_inactivity_updates(state, spec)?; + + // Rewards and Penalties. + process_rewards_and_penalties(state, spec)?; + + // Registry Updates. + process_registry_updates(state, spec)?; + + // Slashings. + process_slashings( + state, + state.get_total_active_balance(spec)?, + spec.proportional_slashing_multiplier_altair, + spec, + )?; + + // Reset eth1 data votes. + process_eth1_data_reset(state)?; + + // Update effective balances with hysteresis (lag). + process_effective_balance_updates(state, spec)?; + + // Reset slashings + process_slashings_reset(state)?; + + // Set randao mix + process_randao_mixes_reset(state)?; + + // Set historical root accumulator + process_historical_roots_update(state)?; + + // Rotate current/previous epoch participation + process_participation_flag_updates(state)?; + + process_sync_committee_updates(state, spec)?; + + // Rotate the epoch caches to suit the epoch transition. + state.advance_caches()?; + + // FIXME(altair): this is an incorrect dummy value, we should think harder + // about how we want to unify validator statuses between phase0 & altair. + // We should benchmark the new state transition and work out whether Altair could + // be accelerated by some similar cache. + let validator_statuses = ValidatorStatuses::new(state, spec)?; + + Ok(EpochProcessingSummary { + total_balances: validator_statuses.total_balances, + statuses: validator_statuses.statuses, + }) +} diff --git a/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs b/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs new file mode 100644 index 0000000000..cc629c1ef0 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair/inactivity_updates.rs @@ -0,0 +1,44 @@ +use crate::EpochProcessingError; +use core::result::Result; +use core::result::Result::Ok; +use safe_arith::SafeArith; +use std::cmp::min; +use types::beacon_state::BeaconState; +use types::chain_spec::ChainSpec; +use types::consts::altair::TIMELY_TARGET_FLAG_INDEX; +use types::eth_spec::EthSpec; + +pub fn process_inactivity_updates( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), EpochProcessingError> { + // Score updates based on previous epoch participation, skip genesis epoch + if state.current_epoch() == T::genesis_epoch() { + return Ok(()); + } + + let unslashed_indices = state.get_unslashed_participating_indices( + TIMELY_TARGET_FLAG_INDEX, + state.previous_epoch(), + spec, + )?; + + for index in state.get_eligible_validator_indices()? { + // Increase inactivity score of inactive validators + if unslashed_indices.contains(&index) { + let inactivity_score = state.get_inactivity_score_mut(index)?; + inactivity_score.safe_sub_assign(min(1, *inactivity_score))?; + } else { + state + .get_inactivity_score_mut(index)? + .safe_add_assign(spec.inactivity_score_bias)?; + } + // Decrease the score of all validators for forgiveness when not during a leak + if !state.is_in_inactivity_leak(spec) { + let inactivity_score = state.get_inactivity_score_mut(index)?; + inactivity_score + .safe_sub_assign(min(spec.inactivity_score_recovery_rate, *inactivity_score))?; + } + } + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/altair/justification_and_finalization.rs b/consensus/state_processing/src/per_epoch_processing/altair/justification_and_finalization.rs new file mode 100644 index 0000000000..13e14d4d8c --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair/justification_and_finalization.rs @@ -0,0 +1,39 @@ +use crate::per_epoch_processing::weigh_justification_and_finalization; +use crate::per_epoch_processing::Error; +use safe_arith::SafeArith; +use types::consts::altair::TIMELY_TARGET_FLAG_INDEX; +use types::{BeaconState, ChainSpec, EthSpec}; + +/// Update the justified and finalized checkpoints for matching target attestations. +pub fn process_justification_and_finalization( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), Error> { + if state.current_epoch() <= T::genesis_epoch().safe_add(1)? { + return Ok(()); + } + + let previous_epoch = state.previous_epoch(); + let current_epoch = state.current_epoch(); + let previous_indices = state.get_unslashed_participating_indices( + TIMELY_TARGET_FLAG_INDEX, + previous_epoch, + spec, + )?; + let current_indices = + state.get_unslashed_participating_indices(TIMELY_TARGET_FLAG_INDEX, current_epoch, spec)?; + let total_active_balance = state.get_total_balance( + state + .get_active_validator_indices(current_epoch, spec)? + .as_slice(), + spec, + )?; + let previous_target_balance = state.get_total_balance(&previous_indices, spec)?; + let current_target_balance = state.get_total_balance(¤t_indices, spec)?; + weigh_justification_and_finalization( + state, + total_active_balance, + previous_target_balance, + current_target_balance, + ) +} diff --git a/consensus/state_processing/src/per_epoch_processing/altair/participation_flag_updates.rs b/consensus/state_processing/src/per_epoch_processing/altair/participation_flag_updates.rs new file mode 100644 index 0000000000..7162fa7f4a --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair/participation_flag_updates.rs @@ -0,0 +1,20 @@ +use crate::EpochProcessingError; +use core::result::Result; +use core::result::Result::Ok; +use types::beacon_state::BeaconState; +use types::eth_spec::EthSpec; +use types::participation_flags::ParticipationFlags; +use types::VariableList; + +pub fn process_participation_flag_updates( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + *state.previous_epoch_participation_mut()? = + std::mem::take(state.current_epoch_participation_mut()?); + *state.current_epoch_participation_mut()? = VariableList::new(vec![ + ParticipationFlags::default( + ); + state.validators().len() + ])?; + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/altair/rewards_and_penalties.rs b/consensus/state_processing/src/per_epoch_processing/altair/rewards_and_penalties.rs new file mode 100644 index 0000000000..6e1475d06d --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair/rewards_and_penalties.rs @@ -0,0 +1,124 @@ +use safe_arith::SafeArith; +use types::consts::altair::{ + PARTICIPATION_FLAG_WEIGHTS, TIMELY_HEAD_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX, + WEIGHT_DENOMINATOR, +}; +use types::{BeaconState, ChainSpec, EthSpec}; + +use crate::common::{altair::get_base_reward, decrease_balance, increase_balance}; +use crate::per_epoch_processing::{Delta, Error}; + +/// Apply attester and proposer rewards. +/// +/// Spec v1.1.0 +pub fn process_rewards_and_penalties( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), Error> { + if state.current_epoch() == T::genesis_epoch() { + return Ok(()); + } + + let mut deltas = vec![Delta::default(); state.validators().len()]; + + let total_active_balance = state.get_total_active_balance(spec)?; + + for flag_index in 0..PARTICIPATION_FLAG_WEIGHTS.len() { + get_flag_index_deltas(&mut deltas, state, flag_index, total_active_balance, spec)?; + } + + get_inactivity_penalty_deltas(&mut deltas, state, spec)?; + + // Apply the deltas, erroring on overflow above but not on overflow below (saturating at 0 + // instead). + for (i, delta) in deltas.into_iter().enumerate() { + increase_balance(state, i, delta.rewards)?; + decrease_balance(state, i, delta.penalties)?; + } + + Ok(()) +} + +/// Return the deltas for a given flag index by scanning through the participation flags. +/// +/// Spec v1.1.0 +pub fn get_flag_index_deltas( + deltas: &mut Vec, + state: &BeaconState, + flag_index: usize, + total_active_balance: u64, + spec: &ChainSpec, +) -> Result<(), Error> { + let previous_epoch = state.previous_epoch(); + let unslashed_participating_indices = + state.get_unslashed_participating_indices(flag_index, previous_epoch, spec)?; + let weight = get_flag_weight(flag_index)?; + let unslashed_participating_balance = + state.get_total_balance(&unslashed_participating_indices, spec)?; + let unslashed_participating_increments = + unslashed_participating_balance.safe_div(spec.effective_balance_increment)?; + let active_increments = total_active_balance.safe_div(spec.effective_balance_increment)?; + + for index in state.get_eligible_validator_indices()? { + let base_reward = get_base_reward(state, index, total_active_balance, spec)?; + let mut delta = Delta::default(); + + if unslashed_participating_indices.contains(&(index as usize)) { + if !state.is_in_inactivity_leak(spec) { + let reward_numerator = base_reward + .safe_mul(weight)? + .safe_mul(unslashed_participating_increments)?; + delta.reward( + reward_numerator.safe_div(active_increments.safe_mul(WEIGHT_DENOMINATOR)?)?, + )?; + } + } else if flag_index != TIMELY_HEAD_FLAG_INDEX { + delta.penalize(base_reward.safe_mul(weight)?.safe_div(WEIGHT_DENOMINATOR)?)?; + } + deltas + .get_mut(index as usize) + .ok_or(Error::DeltaOutOfBounds(index as usize))? + .combine(delta)?; + } + Ok(()) +} + +/// Get the weight for a `flag_index` from the constant list of all weights. +pub fn get_flag_weight(flag_index: usize) -> Result { + PARTICIPATION_FLAG_WEIGHTS + .get(flag_index) + .copied() + .ok_or(Error::InvalidFlagIndex(flag_index)) +} + +pub fn get_inactivity_penalty_deltas( + deltas: &mut Vec, + state: &BeaconState, + spec: &ChainSpec, +) -> Result<(), Error> { + let previous_epoch = state.previous_epoch(); + let matching_target_indices = state.get_unslashed_participating_indices( + TIMELY_TARGET_FLAG_INDEX, + previous_epoch, + spec, + )?; + for index in state.get_eligible_validator_indices()? { + let mut delta = Delta::default(); + + if !matching_target_indices.contains(&index) { + let penalty_numerator = state + .get_validator(index)? + .effective_balance + .safe_mul(state.get_inactivity_score(index)?)?; + let penalty_denominator = spec + .inactivity_score_bias + .safe_mul(spec.inactivity_penalty_quotient_altair)?; + delta.penalize(penalty_numerator.safe_div(penalty_denominator)?)?; + } + deltas + .get_mut(index) + .ok_or(Error::DeltaOutOfBounds(index))? + .combine(delta)?; + } + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/altair/sync_committee_updates.rs b/consensus/state_processing/src/per_epoch_processing/altair/sync_committee_updates.rs new file mode 100644 index 0000000000..1edc845cb4 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/altair/sync_committee_updates.rs @@ -0,0 +1,18 @@ +use crate::EpochProcessingError; +use safe_arith::SafeArith; +use types::beacon_state::BeaconState; +use types::chain_spec::ChainSpec; +use types::eth_spec::EthSpec; + +pub fn process_sync_committee_updates( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), EpochProcessingError> { + let next_epoch = state.next_epoch()?; + if next_epoch.safe_rem(spec.epochs_per_sync_committee_period)? == 0 { + *state.current_sync_committee_mut()? = state.next_sync_committee()?.clone(); + + *state.next_sync_committee_mut()? = state.get_next_sync_committee(spec)?; + } + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/base.rs b/consensus/state_processing/src/per_epoch_processing/base.rs new file mode 100644 index 0000000000..c28d4b1780 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/base.rs @@ -0,0 +1,76 @@ +use super::{process_registry_updates, process_slashings, EpochProcessingSummary, Error}; +pub use crate::per_epoch_processing::validator_statuses::{ + TotalBalances, ValidatorStatus, ValidatorStatuses, +}; +use crate::per_epoch_processing::{ + effective_balance_updates::process_effective_balance_updates, + historical_roots_update::process_historical_roots_update, + resets::{process_eth1_data_reset, process_randao_mixes_reset, process_slashings_reset}, +}; +pub use justification_and_finalization::process_justification_and_finalization; +pub use participation_record_updates::process_participation_record_updates; +pub use rewards_and_penalties::process_rewards_and_penalties; +use types::{BeaconState, ChainSpec, EthSpec, RelativeEpoch}; + +pub mod justification_and_finalization; +pub mod participation_record_updates; +pub mod rewards_and_penalties; + +pub fn process_epoch( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result { + // Ensure the committee caches are built. + state.build_committee_cache(RelativeEpoch::Previous, spec)?; + state.build_committee_cache(RelativeEpoch::Current, spec)?; + state.build_committee_cache(RelativeEpoch::Next, spec)?; + + // Load the struct we use to assign validators into sets based on their participation. + // + // E.g., attestation in the previous epoch, attested to the head, etc. + let mut validator_statuses = ValidatorStatuses::new(state, spec)?; + validator_statuses.process_attestations(&state)?; + + // Justification and finalization. + process_justification_and_finalization(state, &validator_statuses.total_balances, spec)?; + + // Rewards and Penalties. + process_rewards_and_penalties(state, &mut validator_statuses, spec)?; + + // Registry Updates. + process_registry_updates(state, spec)?; + + // Slashings. + process_slashings( + state, + validator_statuses.total_balances.current_epoch(), + spec.proportional_slashing_multiplier, + spec, + )?; + + // Reset eth1 data votes. + process_eth1_data_reset(state)?; + + // Update effective balances with hysteresis (lag). + process_effective_balance_updates(state, spec)?; + + // Reset slashings + process_slashings_reset(state)?; + + // Set randao mix + process_randao_mixes_reset(state)?; + + // Set historical root accumulator + process_historical_roots_update(state)?; + + // Rotate current/previous epoch attestations + process_participation_record_updates(state)?; + + // Rotate the epoch caches to suit the epoch transition. + state.advance_caches()?; + + Ok(EpochProcessingSummary { + total_balances: validator_statuses.total_balances, + statuses: validator_statuses.statuses, + }) +} diff --git a/consensus/state_processing/src/per_epoch_processing/base/justification_and_finalization.rs b/consensus/state_processing/src/per_epoch_processing/base/justification_and_finalization.rs new file mode 100644 index 0000000000..89fb506eec --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/base/justification_and_finalization.rs @@ -0,0 +1,23 @@ +use crate::per_epoch_processing::base::TotalBalances; +use crate::per_epoch_processing::weigh_justification_and_finalization; +use crate::per_epoch_processing::Error; +use safe_arith::SafeArith; +use types::{BeaconState, ChainSpec, EthSpec}; + +/// Update the justified and finalized checkpoints for matching target attestations. +pub fn process_justification_and_finalization( + state: &mut BeaconState, + total_balances: &TotalBalances, + _spec: &ChainSpec, +) -> Result<(), Error> { + if state.current_epoch() <= T::genesis_epoch().safe_add(1)? { + return Ok(()); + } + + weigh_justification_and_finalization( + state, + total_balances.current_epoch(), + total_balances.previous_epoch_target_attesters(), + total_balances.current_epoch_target_attesters(), + ) +} diff --git a/consensus/state_processing/src/per_epoch_processing/base/participation_record_updates.rs b/consensus/state_processing/src/per_epoch_processing/base/participation_record_updates.rs new file mode 100644 index 0000000000..2cb82d187d --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/base/participation_record_updates.rs @@ -0,0 +1,12 @@ +use crate::EpochProcessingError; +use types::beacon_state::BeaconState; +use types::eth_spec::EthSpec; + +pub fn process_participation_record_updates( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + let base_state = state.as_base_mut()?; + base_state.previous_epoch_attestations = + std::mem::take(&mut base_state.current_epoch_attestations); + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/apply_rewards.rs b/consensus/state_processing/src/per_epoch_processing/base/rewards_and_penalties.rs similarity index 75% rename from consensus/state_processing/src/per_epoch_processing/apply_rewards.rs rename to consensus/state_processing/src/per_epoch_processing/base/rewards_and_penalties.rs index 4115bfef3b..d0983a20fb 100644 --- a/consensus/state_processing/src/per_epoch_processing/apply_rewards.rs +++ b/consensus/state_processing/src/per_epoch_processing/base/rewards_and_penalties.rs @@ -1,40 +1,49 @@ -use super::super::common::get_base_reward; -use super::validator_statuses::{TotalBalances, ValidatorStatus, ValidatorStatuses}; -use super::Error; +use crate::common::{base::get_base_reward, decrease_balance, increase_balance}; +use crate::per_epoch_processing::validator_statuses::{ + TotalBalances, ValidatorStatus, ValidatorStatuses, +}; +use crate::per_epoch_processing::{Delta, Error}; use safe_arith::SafeArith; +use std::array::IntoIter as ArrayIter; +use types::{BeaconState, ChainSpec, EthSpec}; -use types::*; - -/// Use to track the changes to a validators balance. +/// Combination of several deltas for different components of an attestation reward. +/// +/// Exists only for compatibility with EF rewards tests. #[derive(Default, Clone)] -pub struct Delta { - rewards: u64, - penalties: u64, +pub struct AttestationDelta { + pub source_delta: Delta, + pub target_delta: Delta, + pub head_delta: Delta, + pub inclusion_delay_delta: Delta, + pub inactivity_penalty_delta: Delta, } -impl Delta { - /// Reward the validator with the `reward`. - pub fn reward(&mut self, reward: u64) -> Result<(), Error> { - self.rewards = self.rewards.safe_add(reward)?; - Ok(()) - } - - /// Penalize the validator with the `penalty`. - pub fn penalize(&mut self, penalty: u64) -> Result<(), Error> { - self.penalties = self.penalties.safe_add(penalty)?; - Ok(()) - } - - /// Combine two deltas. - fn combine(&mut self, other: Delta) -> Result<(), Error> { - self.reward(other.rewards)?; - self.penalize(other.penalties) +impl AttestationDelta { + /// Flatten into a single delta. + pub fn flatten(self) -> Result { + let AttestationDelta { + source_delta, + target_delta, + head_delta, + inclusion_delay_delta, + inactivity_penalty_delta, + } = self; + let mut result = Delta::default(); + for delta in ArrayIter::new([ + source_delta, + target_delta, + head_delta, + inclusion_delay_delta, + inactivity_penalty_delta, + ]) { + result.combine(delta)?; + } + Ok(result) } } /// Apply attester and proposer rewards. -/// -/// Spec v0.12.1 pub fn process_rewards_and_penalties( state: &mut BeaconState, validator_statuses: &mut ValidatorStatuses, @@ -45,8 +54,8 @@ pub fn process_rewards_and_penalties( } // Guard against an out-of-bounds during the validator balance update. - if validator_statuses.statuses.len() != state.balances.len() - || validator_statuses.statuses.len() != state.validators.len() + if validator_statuses.statuses.len() != state.balances().len() + || validator_statuses.statuses.len() != state.validators().len() { return Err(Error::ValidatorStatusesInconsistent); } @@ -55,28 +64,27 @@ pub fn process_rewards_and_penalties( // Apply the deltas, erroring on overflow above but not on overflow below (saturating at 0 // instead). - for (i, delta) in deltas.iter().enumerate() { - state.balances[i] = state.balances[i].safe_add(delta.rewards)?; - state.balances[i] = state.balances[i].saturating_sub(delta.penalties); + for (i, delta) in deltas.into_iter().enumerate() { + let combined_delta = delta.flatten()?; + increase_balance(state, i, combined_delta.rewards)?; + decrease_balance(state, i, combined_delta.penalties)?; } Ok(()) } /// Apply rewards for participation in attestations during the previous epoch. -/// -/// Spec v0.12.1 -fn get_attestation_deltas( +pub fn get_attestation_deltas( state: &BeaconState, validator_statuses: &ValidatorStatuses, spec: &ChainSpec, -) -> Result, Error> { +) -> Result, Error> { let finality_delay = state .previous_epoch() - .safe_sub(state.finalized_checkpoint.epoch)? + .safe_sub(state.finalized_checkpoint().epoch)? .as_u64(); - let mut deltas = vec![Delta::default(); state.validators.len()]; + let mut deltas = vec![AttestationDelta::default(); state.validators().len()]; let total_balances = &validator_statuses.total_balances; @@ -102,18 +110,23 @@ fn get_attestation_deltas( let inactivity_penalty_delta = get_inactivity_penalty_delta(validator, base_reward, finality_delay, spec)?; - deltas[index].combine(source_delta)?; - deltas[index].combine(target_delta)?; - deltas[index].combine(head_delta)?; - deltas[index].combine(inclusion_delay_delta)?; - deltas[index].combine(inactivity_penalty_delta)?; + let delta = deltas + .get_mut(index) + .ok_or(Error::DeltaOutOfBounds(index))?; + delta.source_delta.combine(source_delta)?; + delta.target_delta.combine(target_delta)?; + delta.head_delta.combine(head_delta)?; + delta.inclusion_delay_delta.combine(inclusion_delay_delta)?; + delta + .inactivity_penalty_delta + .combine(inactivity_penalty_delta)?; if let Some((proposer_index, proposer_delta)) = proposer_delta { - if proposer_index >= deltas.len() { - return Err(Error::ValidatorStatusesInconsistent); - } - - deltas[proposer_index].combine(proposer_delta)?; + deltas + .get_mut(proposer_index) + .ok_or(Error::ValidatorStatusesInconsistent)? + .inclusion_delay_delta + .combine(proposer_delta)?; } } @@ -219,7 +232,6 @@ fn get_inclusion_delay_delta( let proposer_reward = get_proposer_reward(base_reward, spec)?; proposer_delta.reward(proposer_reward)?; - let max_attester_reward = base_reward.safe_sub(proposer_reward)?; delta.reward(max_attester_reward.safe_div(inclusion_info.delay)?)?; diff --git a/consensus/state_processing/src/per_epoch_processing/effective_balance_updates.rs b/consensus/state_processing/src/per_epoch_processing/effective_balance_updates.rs new file mode 100644 index 0000000000..c166667b5a --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/effective_balance_updates.rs @@ -0,0 +1,33 @@ +use super::errors::EpochProcessingError; +use safe_arith::SafeArith; +use types::beacon_state::BeaconState; +use types::chain_spec::ChainSpec; +use types::{BeaconStateError, EthSpec}; + +pub fn process_effective_balance_updates( + state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), EpochProcessingError> { + let hysteresis_increment = spec + .effective_balance_increment + .safe_div(spec.hysteresis_quotient)?; + let downward_threshold = hysteresis_increment.safe_mul(spec.hysteresis_downward_multiplier)?; + let upward_threshold = hysteresis_increment.safe_mul(spec.hysteresis_upward_multiplier)?; + let (validators, balances) = state.validators_and_balances_mut(); + for (index, validator) in validators.iter_mut().enumerate() { + let balance = balances + .get(index) + .copied() + .ok_or(BeaconStateError::BalancesOutOfBounds(index))?; + + if balance.safe_add(downward_threshold)? < validator.effective_balance + || validator.effective_balance.safe_add(upward_threshold)? < balance + { + validator.effective_balance = std::cmp::min( + balance.safe_sub(balance.safe_rem(spec.effective_balance_increment)?)?, + spec.max_effective_balance, + ); + } + } + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/errors.rs b/consensus/state_processing/src/per_epoch_processing/errors.rs index 245935c1d7..651bf41ca2 100644 --- a/consensus/state_processing/src/per_epoch_processing/errors.rs +++ b/consensus/state_processing/src/per_epoch_processing/errors.rs @@ -1,4 +1,4 @@ -use types::*; +use types::{BeaconStateError, InconsistentFork}; #[derive(Debug, PartialEq)] pub enum EpochProcessingError { @@ -10,6 +10,7 @@ pub enum EpochProcessingError { InclusionDistanceZero, ValidatorStatusesInconsistent, DeltasInconsistent, + DeltaOutOfBounds(usize), /// Unable to get the inclusion distance for a validator that should have an inclusion /// distance. This indicates an internal inconsistency. /// @@ -19,6 +20,9 @@ pub enum EpochProcessingError { InclusionError(InclusionError), SszTypesError(ssz_types::Error), ArithError(safe_arith::ArithError), + InconsistentStateFork(InconsistentFork), + InvalidJustificationBit(ssz_types::Error), + InvalidFlagIndex(usize), } impl From for EpochProcessingError { diff --git a/consensus/state_processing/src/per_epoch_processing/historical_roots_update.rs b/consensus/state_processing/src/per_epoch_processing/historical_roots_update.rs new file mode 100644 index 0000000000..8466104aa5 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/historical_roots_update.rs @@ -0,0 +1,25 @@ +use super::errors::EpochProcessingError; +use core::result::Result; +use core::result::Result::Ok; +use safe_arith::SafeArith; +use tree_hash::TreeHash; +use types::beacon_state::BeaconState; +use types::eth_spec::EthSpec; +use types::Unsigned; + +pub fn process_historical_roots_update( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + let next_epoch = state.next_epoch()?; + if next_epoch + .as_u64() + .safe_rem(T::SlotsPerHistoricalRoot::to_u64().safe_div(T::slots_per_epoch())?)? + == 0 + { + let historical_batch = state.historical_batch(); + state + .historical_roots_mut() + .push(historical_batch.tree_hash_root())?; + } + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/registry_updates.rs b/consensus/state_processing/src/per_epoch_processing/registry_updates.rs index 26f055ba4f..4fd2d68586 100644 --- a/consensus/state_processing/src/per_epoch_processing/registry_updates.rs +++ b/consensus/state_processing/src/per_epoch_processing/registry_updates.rs @@ -1,11 +1,11 @@ use crate::{common::initiate_validator_exit, per_epoch_processing::Error}; use itertools::Itertools; use safe_arith::SafeArith; -use types::*; +use types::{BeaconState, ChainSpec, EthSpec, Validator}; /// Performs a validator registry update, if required. /// -/// Spec v0.12.1 +/// NOTE: unchanged in Altair pub fn process_registry_updates( state: &mut BeaconState, spec: &ChainSpec, @@ -20,7 +20,7 @@ pub fn process_registry_updates( && validator.effective_balance <= spec.ejection_balance }; let indices_to_update: Vec<_> = state - .validators + .validators() .iter() .enumerate() .filter(|(_, validator)| { @@ -30,17 +30,18 @@ pub fn process_registry_updates( .collect(); for index in indices_to_update { - if state.validators[index].is_eligible_for_activation_queue(spec) { - state.validators[index].activation_eligibility_epoch = current_epoch.safe_add(1)?; + let validator = state.get_validator_mut(index)?; + if validator.is_eligible_for_activation_queue(spec) { + validator.activation_eligibility_epoch = current_epoch.safe_add(1)?; } - if is_ejectable(&state.validators[index]) { + if is_ejectable(validator) { initiate_validator_exit(state, index, spec)?; } } // Queue validators eligible for activation and not dequeued for activation prior to finalized epoch let activation_queue = state - .validators + .validators() .iter() .enumerate() .filter(|(_, validator)| validator.is_eligible_for_activation(state, spec)) @@ -52,8 +53,7 @@ pub fn process_registry_updates( let churn_limit = state.get_churn_limit(spec)? as usize; let delayed_activation_epoch = state.compute_activation_exit_epoch(current_epoch, spec)?; for index in activation_queue.into_iter().take(churn_limit) { - let validator = &mut state.validators[index]; - validator.activation_epoch = delayed_activation_epoch; + state.get_validator_mut(index)?.activation_epoch = delayed_activation_epoch; } Ok(()) diff --git a/consensus/state_processing/src/per_epoch_processing/resets.rs b/consensus/state_processing/src/per_epoch_processing/resets.rs new file mode 100644 index 0000000000..dc3c9f07c0 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/resets.rs @@ -0,0 +1,38 @@ +use super::errors::EpochProcessingError; +use core::result::Result; +use core::result::Result::Ok; +use safe_arith::SafeArith; +use types::beacon_state::BeaconState; +use types::eth_spec::EthSpec; +use types::{Unsigned, VariableList}; + +pub fn process_eth1_data_reset( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + if state + .slot() + .safe_add(1)? + .safe_rem(T::SlotsPerEth1VotingPeriod::to_u64())? + == 0 + { + *state.eth1_data_votes_mut() = VariableList::empty(); + } + Ok(()) +} + +pub fn process_slashings_reset( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + let next_epoch = state.next_epoch()?; + state.set_slashings(next_epoch, 0)?; + Ok(()) +} + +pub fn process_randao_mixes_reset( + state: &mut BeaconState, +) -> Result<(), EpochProcessingError> { + let current_epoch = state.current_epoch(); + let next_epoch = state.next_epoch()?; + state.set_randao_mix(next_epoch, *state.get_randao_mix(current_epoch)?)?; + Ok(()) +} diff --git a/consensus/state_processing/src/per_epoch_processing/process_slashings.rs b/consensus/state_processing/src/per_epoch_processing/slashings.rs similarity index 62% rename from consensus/state_processing/src/per_epoch_processing/process_slashings.rs rename to consensus/state_processing/src/per_epoch_processing/slashings.rs index 40d96f30cc..ed77018e2d 100644 --- a/consensus/state_processing/src/per_epoch_processing/process_slashings.rs +++ b/consensus/state_processing/src/per_epoch_processing/slashings.rs @@ -1,22 +1,22 @@ +use crate::per_epoch_processing::Error; use safe_arith::{SafeArith, SafeArithIter}; -use types::{BeaconStateError as Error, *}; +use types::{BeaconState, BeaconStateError, ChainSpec, EthSpec, Unsigned}; /// Process slashings. -/// -/// Spec v0.12.1 pub fn process_slashings( state: &mut BeaconState, total_balance: u64, + slashing_multiplier: u64, spec: &ChainSpec, ) -> Result<(), Error> { let epoch = state.current_epoch(); let sum_slashings = state.get_all_slashings().iter().copied().safe_sum()?; - let adjusted_total_slashing_balance = std::cmp::min( - sum_slashings.safe_mul(spec.proportional_slashing_multiplier)?, - total_balance, - ); - for (index, validator) in state.validators.iter().enumerate() { + let adjusted_total_slashing_balance = + std::cmp::min(sum_slashings.safe_mul(slashing_multiplier)?, total_balance); + + let (validators, balances) = state.validators_and_balances_mut(); + for (index, validator) in validators.iter().enumerate() { if validator.slashed && epoch.safe_add(T::EpochsPerSlashingsVector::to_u64().safe_div(2)?)? == validator.withdrawable_epoch @@ -31,7 +31,10 @@ pub fn process_slashings( .safe_mul(increment)?; // Equivalent to `decrease_balance(state, index, penalty)`, but avoids borrowing `state`. - state.balances[index] = state.balances[index].saturating_sub(penalty); + let balance = balances + .get_mut(index) + .ok_or(BeaconStateError::BalancesOutOfBounds(index))?; + *balance = balance.saturating_sub(penalty); } } diff --git a/consensus/state_processing/src/per_epoch_processing/tests.rs b/consensus/state_processing/src/per_epoch_processing/tests.rs index 9fdc82c6f3..ac1ce6b019 100644 --- a/consensus/state_processing/src/per_epoch_processing/tests.rs +++ b/consensus/state_processing/src/per_epoch_processing/tests.rs @@ -1,23 +1,165 @@ #![cfg(test)] -use crate::per_epoch_processing::per_epoch_processing; +use crate::per_epoch_processing::process_epoch; +use beacon_chain::store::StoreConfig; +use beacon_chain::test_utils::BeaconChainHarness; +use beacon_chain::types::{EthSpec, MinimalEthSpec}; +use bls::Hash256; use env_logger::{Builder, Env}; -use types::test_utils::TestingBeaconStateBuilder; -use types::*; +use types::Slot; #[test] fn runs_without_error() { Builder::from_env(Env::default().default_filter_or("error")).init(); + let harness = BeaconChainHarness::new_with_store_config( + MinimalEthSpec, + None, + types::test_utils::generate_deterministic_keypairs(8), + StoreConfig::default(), + ); + harness.advance_slot(); + let spec = MinimalEthSpec::default_spec(); - - let mut builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(8, &spec); - let target_slot = (MinimalEthSpec::genesis_epoch() + 4).end_slot(MinimalEthSpec::slots_per_epoch()); - builder.teleport_to_slot(target_slot); - let (mut state, _keypairs) = builder.build(); + let state = harness.get_current_state(); + harness.add_attested_blocks_at_slots( + state, + Hash256::zero(), + (1..target_slot.as_u64()) + .map(Slot::new) + .collect::>() + .as_slice(), + (0..8).collect::>().as_slice(), + ); + let mut new_head_state = harness.get_current_state(); - per_epoch_processing(&mut state, &spec).unwrap(); + process_epoch(&mut new_head_state, &spec).unwrap(); +} + +#[cfg(not(debug_assertions))] +mod release_tests { + use super::*; + use crate::{ + per_slot_processing::per_slot_processing, EpochProcessingError, SlotProcessingError, + }; + use beacon_chain::test_utils::{AttestationStrategy, BlockStrategy}; + use types::{Epoch, ForkName, InconsistentFork, MainnetEthSpec}; + + #[test] + fn altair_state_on_base_fork() { + let mut spec = MainnetEthSpec::default_spec(); + let slots_per_epoch = MainnetEthSpec::slots_per_epoch(); + // The Altair fork happens at epoch 1. + spec.altair_fork_epoch = Some(Epoch::new(1)); + + let altair_state = { + let harness = BeaconChainHarness::new( + MainnetEthSpec, + Some(spec.clone()), + types::test_utils::generate_deterministic_keypairs(8), + ); + + harness.advance_slot(); + + harness.extend_chain( + // Build out enough blocks so we get an Altair block at the very end of an epoch. + (slots_per_epoch * 2 - 1) as usize, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + harness.get_current_state() + }; + + // Pre-conditions for a valid test. + assert_eq!(altair_state.fork_name(&spec).unwrap(), ForkName::Altair); + assert_eq!( + altair_state.slot(), + altair_state.current_epoch().end_slot(slots_per_epoch) + ); + + // Check the state is valid before starting this test. + process_epoch(&mut altair_state.clone(), &spec) + .expect("state passes intial epoch processing"); + per_slot_processing(&mut altair_state.clone(), None, &spec) + .expect("state passes intial slot processing"); + + // Modify the spec so altair never happens. + spec.altair_fork_epoch = None; + + let expected_err = InconsistentFork { + fork_at_slot: ForkName::Base, + object_fork: ForkName::Altair, + }; + + assert_eq!(altair_state.fork_name(&spec), Err(expected_err)); + assert_eq!( + process_epoch(&mut altair_state.clone(), &spec), + Err(EpochProcessingError::InconsistentStateFork(expected_err)) + ); + assert_eq!( + per_slot_processing(&mut altair_state.clone(), None, &spec), + Err(SlotProcessingError::InconsistentStateFork(expected_err)) + ); + } + + #[test] + fn base_state_on_altair_fork() { + let mut spec = MainnetEthSpec::default_spec(); + let slots_per_epoch = MainnetEthSpec::slots_per_epoch(); + // The Altair fork never happens. + spec.altair_fork_epoch = None; + + let base_state = { + let harness = BeaconChainHarness::new( + MainnetEthSpec, + Some(spec.clone()), + types::test_utils::generate_deterministic_keypairs(8), + ); + + harness.advance_slot(); + + harness.extend_chain( + // Build out enough blocks so we get a block at the very end of an epoch. + (slots_per_epoch * 2 - 1) as usize, + BlockStrategy::OnCanonicalHead, + AttestationStrategy::AllValidators, + ); + + harness.get_current_state() + }; + + // Pre-conditions for a valid test. + assert_eq!(base_state.fork_name(&spec).unwrap(), ForkName::Base); + assert_eq!( + base_state.slot(), + base_state.current_epoch().end_slot(slots_per_epoch) + ); + + // Check the state is valid before starting this test. + process_epoch(&mut base_state.clone(), &spec) + .expect("state passes intial epoch processing"); + per_slot_processing(&mut base_state.clone(), None, &spec) + .expect("state passes intial slot processing"); + + // Modify the spec so Altair happens at the first epoch. + spec.altair_fork_epoch = Some(Epoch::new(1)); + + let expected_err = InconsistentFork { + fork_at_slot: ForkName::Altair, + object_fork: ForkName::Base, + }; + + assert_eq!(base_state.fork_name(&spec), Err(expected_err)); + assert_eq!( + process_epoch(&mut base_state.clone(), &spec), + Err(EpochProcessingError::InconsistentStateFork(expected_err)) + ); + assert_eq!( + per_slot_processing(&mut base_state.clone(), None, &spec), + Err(SlotProcessingError::InconsistentStateFork(expected_err)) + ); + } } diff --git a/consensus/state_processing/src/per_epoch_processing/validator_statuses.rs b/consensus/state_processing/src/per_epoch_processing/validator_statuses.rs index 6c62c2cd4c..b40f91ce5a 100644 --- a/consensus/state_processing/src/per_epoch_processing/validator_statuses.rs +++ b/consensus/state_processing/src/per_epoch_processing/validator_statuses.rs @@ -1,6 +1,6 @@ use crate::common::get_attesting_indices; use safe_arith::SafeArith; -use types::*; +use types::{BeaconState, BeaconStateError, ChainSpec, Epoch, EthSpec, PendingAttestation}; #[cfg(feature = "arbitrary-fuzz")] use arbitrary::Arbitrary; @@ -17,7 +17,7 @@ macro_rules! set_self_if_other_is_true { /// The information required to reward a block producer for including an attestation in a block. #[cfg_attr(feature = "arbitrary-fuzz", derive(Arbitrary))] -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq)] pub struct InclusionInfo { /// The distance between the attestation slot and the slot that attestation was included in a /// block. @@ -49,7 +49,7 @@ impl InclusionInfo { /// Information required to reward some validator during the current and previous epoch. #[cfg_attr(feature = "arbitrary-fuzz", derive(Arbitrary))] -#[derive(Debug, Default, Clone)] +#[derive(Debug, Default, Clone, PartialEq)] pub struct ValidatorStatus { /// True if the validator has been slashed, ever. pub is_slashed: bool, @@ -114,7 +114,7 @@ impl ValidatorStatus { /// The total effective balances for different sets of validators during the previous and current /// epochs. -#[derive(Clone, Debug)] +#[derive(Clone, Debug, PartialEq)] #[cfg_attr(feature = "arbitrary-fuzz", derive(Arbitrary))] pub struct TotalBalances { /// The effective balance increment from the spec. @@ -192,11 +192,11 @@ impl ValidatorStatuses { state: &BeaconState, spec: &ChainSpec, ) -> Result { - let mut statuses = Vec::with_capacity(state.validators.len()); + let mut statuses = Vec::with_capacity(state.validators().len()); let mut total_balances = TotalBalances::new(spec); - for (i, validator) in state.validators.iter().enumerate() { - let effective_balance = state.get_effective_balance(i, spec)?; + for (i, validator) in state.validators().iter().enumerate() { + let effective_balance = state.get_effective_balance(i)?; let mut status = ValidatorStatus { is_slashed: validator.slashed, is_withdrawable_in_current_epoch: validator @@ -235,12 +235,12 @@ impl ValidatorStatuses { pub fn process_attestations( &mut self, state: &BeaconState, - spec: &ChainSpec, ) -> Result<(), BeaconStateError> { - for a in state + let base_state = state.as_base()?; + for a in base_state .previous_epoch_attestations .iter() - .chain(state.current_epoch_attestations.iter()) + .chain(base_state.current_epoch_attestations.iter()) { let committee = state.get_beacon_committee(a.data.slot, a.data.index)?; let attesting_indices = @@ -277,7 +277,10 @@ impl ValidatorStatuses { // Loop through the participating validator indices and update the status vec. for validator_index in attesting_indices { - self.statuses[validator_index].update(&status); + self.statuses + .get_mut(validator_index) + .ok_or(BeaconStateError::UnknownValidator(validator_index))? + .update(&status); } } @@ -285,7 +288,7 @@ impl ValidatorStatuses { for (index, v) in self.statuses.iter().enumerate() { // According to the spec, we only count unslashed validators towards the totals. if !v.is_slashed { - let validator_balance = state.get_effective_balance(index, spec)?; + let validator_balance = state.get_effective_balance(index)?; if v.is_current_epoch_attester { self.total_balances diff --git a/consensus/state_processing/src/per_epoch_processing/weigh_justification_and_finalization.rs b/consensus/state_processing/src/per_epoch_processing/weigh_justification_and_finalization.rs new file mode 100644 index 0000000000..6e90ee8f37 --- /dev/null +++ b/consensus/state_processing/src/per_epoch_processing/weigh_justification_and_finalization.rs @@ -0,0 +1,70 @@ +use crate::per_epoch_processing::Error; +use safe_arith::SafeArith; +use std::ops::Range; +use types::{BeaconState, Checkpoint, EthSpec}; + +/// Update the justified and finalized checkpoints for matching target attestations. +#[allow(clippy::if_same_then_else)] // For readability and consistency with spec. +pub fn weigh_justification_and_finalization( + state: &mut BeaconState, + total_active_balance: u64, + previous_target_balance: u64, + current_target_balance: u64, +) -> Result<(), Error> { + let previous_epoch = state.previous_epoch(); + let current_epoch = state.current_epoch(); + + let old_previous_justified_checkpoint = state.previous_justified_checkpoint(); + let old_current_justified_checkpoint = state.current_justified_checkpoint(); + + // Process justifications + *state.previous_justified_checkpoint_mut() = state.current_justified_checkpoint(); + state.justification_bits_mut().shift_up(1)?; + + if previous_target_balance.safe_mul(3)? >= total_active_balance.safe_mul(2)? { + *state.current_justified_checkpoint_mut() = Checkpoint { + epoch: previous_epoch, + root: *state.get_block_root_at_epoch(previous_epoch)?, + }; + state.justification_bits_mut().set(1, true)?; + } + // If the current epoch gets justified, fill the last bit. + if current_target_balance.safe_mul(3)? >= total_active_balance.safe_mul(2)? { + *state.current_justified_checkpoint_mut() = Checkpoint { + epoch: current_epoch, + root: *state.get_block_root_at_epoch(current_epoch)?, + }; + state.justification_bits_mut().set(0, true)?; + } + + let bits = state.justification_bits().clone(); + let all_bits_set = |range: Range| -> Result { + for i in range { + if !bits.get(i).map_err(Error::InvalidJustificationBit)? { + return Ok(false); + } + } + Ok(true) + }; + + // The 2nd/3rd/4th most recent epochs are all justified, the 2nd using the 4th as source. + if all_bits_set(1..4)? && old_previous_justified_checkpoint.epoch.safe_add(3)? == current_epoch + { + *state.finalized_checkpoint_mut() = old_previous_justified_checkpoint; + } + // The 2nd/3rd most recent epochs are both justified, the 2nd using the 3rd as source. + if all_bits_set(1..3)? && old_previous_justified_checkpoint.epoch.safe_add(2)? == current_epoch + { + *state.finalized_checkpoint_mut() = old_previous_justified_checkpoint; + } + // The 1st/2nd/3rd most recent epochs are all justified, the 1st using the 3nd as source. + if all_bits_set(0..3)? && old_current_justified_checkpoint.epoch.safe_add(2)? == current_epoch { + *state.finalized_checkpoint_mut() = old_current_justified_checkpoint; + } + // The 1st/2nd most recent epochs are both justified, the 1st using the 2nd as source. + if all_bits_set(0..2)? && old_current_justified_checkpoint.epoch.safe_add(1)? == current_epoch { + *state.finalized_checkpoint_mut() = old_current_justified_checkpoint; + } + + Ok(()) +} diff --git a/consensus/state_processing/src/per_slot_processing.rs b/consensus/state_processing/src/per_slot_processing.rs index 82cf5abfe1..6bb38fa393 100644 --- a/consensus/state_processing/src/per_slot_processing.rs +++ b/consensus/state_processing/src/per_slot_processing.rs @@ -1,3 +1,4 @@ +use crate::upgrade::upgrade_to_altair; use crate::{per_epoch_processing::EpochProcessingSummary, *}; use safe_arith::{ArithError, SafeArith}; use types::*; @@ -7,6 +8,7 @@ pub enum Error { BeaconStateError(BeaconStateError), EpochProcessingError(EpochProcessingError), ArithError(ArithError), + InconsistentStateFork(InconsistentFork), } impl From for Error { @@ -20,24 +22,34 @@ impl From for Error { /// If the root of the supplied `state` is known, then it can be passed as `state_root`. If /// `state_root` is `None`, the root of `state` will be computed using a cached tree hash. /// Providing the `state_root` makes this function several orders of magniude faster. -/// -/// Spec v0.12.1 pub fn per_slot_processing( state: &mut BeaconState, state_root: Option, spec: &ChainSpec, ) -> Result, Error> { + // Verify that the `BeaconState` instantiation matches the fork at `state.slot()`. + state + .fork_name(spec) + .map_err(Error::InconsistentStateFork)?; + cache_state(state, state_root)?; - let summary = if state.slot > spec.genesis_slot - && state.slot.safe_add(1)?.safe_rem(T::slots_per_epoch())? == 0 + let summary = if state.slot() > spec.genesis_slot + && state.slot().safe_add(1)?.safe_rem(T::slots_per_epoch())? == 0 { Some(per_epoch_processing(state, spec)?) } else { None }; - state.slot.safe_add_assign(1)?; + state.slot_mut().safe_add_assign(1)?; + + // If the Altair fork epoch is reached, perform an irregular state upgrade. + if state.slot().safe_rem(T::slots_per_epoch())? == 0 + && spec.altair_fork_epoch == Some(state.current_epoch()) + { + upgrade_to_altair(state, spec)?; + } Ok(summary) } @@ -56,23 +68,23 @@ fn cache_state( // getter/setter functions. // // This is a bit hacky, however it gets the job done safely without lots of code. - let previous_slot = state.slot; - state.slot.safe_add_assign(1)?; + let previous_slot = state.slot(); + state.slot_mut().safe_add_assign(1)?; // Store the previous slot's post state transition root. state.set_state_root(previous_slot, previous_state_root)?; // Cache latest block header state root - if state.latest_block_header.state_root == Hash256::zero() { - state.latest_block_header.state_root = previous_state_root; + if state.latest_block_header().state_root == Hash256::zero() { + state.latest_block_header_mut().state_root = previous_state_root; } // Cache block root - let latest_block_root = state.latest_block_header.canonical_root(); + let latest_block_root = state.latest_block_header().canonical_root(); state.set_block_root(previous_slot, latest_block_root)?; // Set the state slot back to what it should be. - state.slot.safe_sub_assign(1)?; + state.slot_mut().safe_sub_assign(1)?; Ok(()) } diff --git a/consensus/state_processing/src/state_advance.rs b/consensus/state_processing/src/state_advance.rs index 24cf990196..c3911be214 100644 --- a/consensus/state_processing/src/state_advance.rs +++ b/consensus/state_processing/src/state_advance.rs @@ -31,9 +31,9 @@ pub fn complete_state_advance( target_slot: Slot, spec: &ChainSpec, ) -> Result<(), Error> { - check_target_slot(state.slot, target_slot)?; + check_target_slot(state.slot(), target_slot)?; - while state.slot < target_slot { + while state.slot() < target_slot { // Use the initial state root on the first iteration of the loop, then use `None` for any // future iterations. let state_root_opt = state_root_opt.take(); @@ -64,7 +64,7 @@ pub fn partial_state_advance( target_slot: Slot, spec: &ChainSpec, ) -> Result<(), Error> { - check_target_slot(state.slot, target_slot)?; + check_target_slot(state.slot(), target_slot)?; // The only time that a state root is mandatory is if a block has been applied to the state // without it yet being advanced another slot. @@ -72,13 +72,13 @@ pub fn partial_state_advance( // Failing to provide a state root in this scenario would result in corrupting the // `state.block_roots` array, since the `state.latest_block_header` would contain an invalid // (all-zeros) state root. - let mut initial_state_root = Some(if state.slot > state.latest_block_header.slot { + let mut initial_state_root = Some(if state.slot() > state.latest_block_header().slot { state_root_opt.unwrap_or_else(Hash256::zero) } else { state_root_opt.ok_or(Error::StateRootNotProvided)? }); - while state.slot < target_slot { + while state.slot() < target_slot { // Use the initial state root on the first iteration of the loop, then use `[0; 32]` for any // later iterations. // diff --git a/consensus/state_processing/src/test_utils.rs b/consensus/state_processing/src/test_utils.rs deleted file mode 100644 index e54a936ed9..0000000000 --- a/consensus/state_processing/src/test_utils.rs +++ /dev/null @@ -1,184 +0,0 @@ -use log::info; -use types::test_utils::{ - AttestationTestTask, AttesterSlashingTestTask, DepositTestTask, ProposerSlashingTestTask, - TestingBeaconBlockBuilder, TestingBeaconStateBuilder, -}; -use types::{EthSpec, *}; - -pub use crate::per_block_processing::block_processing_builder::BlockProcessingBuilder; - -pub struct BlockBuilder { - pub state_builder: TestingBeaconStateBuilder, - pub block_builder: TestingBeaconBlockBuilder, - - pub num_validators: usize, - pub num_proposer_slashings: usize, - pub num_attester_slashings: usize, - pub num_attestations: usize, - pub num_deposits: usize, - pub num_exits: usize, -} - -impl BlockBuilder { - pub fn new(num_validators: usize, spec: &ChainSpec) -> Self { - let state_builder = - TestingBeaconStateBuilder::from_deterministic_keypairs(num_validators, &spec); - let block_builder = TestingBeaconBlockBuilder::new(spec); - - Self { - state_builder, - block_builder, - num_validators: 0, - num_proposer_slashings: 0, - num_attester_slashings: 0, - num_attestations: 0, - num_deposits: 0, - num_exits: 0, - } - } - - pub fn maximize_block_operations(&mut self) { - self.num_proposer_slashings = T::MaxProposerSlashings::to_usize(); - self.num_attester_slashings = T::MaxAttesterSlashings::to_usize(); - self.num_attestations = T::MaxAttestations::to_usize(); - self.num_deposits = T::MaxDeposits::to_usize(); - self.num_exits = T::MaxVoluntaryExits::to_usize(); - } - - pub fn set_slot(&mut self, slot: Slot) { - self.state_builder.teleport_to_slot(slot); - } - - pub fn build_caches(&mut self, spec: &ChainSpec) { - // Builds all caches; benches will not contain shuffling/committee building times. - self.state_builder.build_caches(&spec).unwrap(); - } - - pub fn build(mut self, spec: &ChainSpec) -> (SignedBeaconBlock, BeaconState) { - let (mut state, keypairs) = self.state_builder.build(); - let builder = &mut self.block_builder; - - builder.set_slot(state.slot); - - let proposer_index = state.get_beacon_proposer_index(state.slot, spec).unwrap(); - - let proposer_keypair = &keypairs[proposer_index]; - - builder.set_proposer_index(proposer_index as u64); - - builder.set_randao_reveal( - &proposer_keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - let parent_root = state.latest_block_header.canonical_root(); - builder.set_parent_root(parent_root); - - // Used as a stream of validator indices for use in slashings, exits, etc. - let mut validators_iter = 0..keypairs.len() as u64; - - // Insert `ProposerSlashing` objects. - for _ in 0..self.num_proposer_slashings { - let validator_index = validators_iter.next().expect("Insufficient validators."); - - builder.insert_proposer_slashing( - ProposerSlashingTestTask::Valid, - validator_index, - &keypairs[validator_index as usize].sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - } - info!( - "Inserted {} proposer slashings.", - builder.block.body.proposer_slashings.len() - ); - - // Insert `AttesterSlashing` objects - for _ in 0..self.num_attester_slashings { - let mut attesters: Vec = vec![]; - let mut secret_keys: Vec<&SecretKey> = vec![]; - - const NUM_SLASHED_INDICES: usize = 12; - - for _ in 0..NUM_SLASHED_INDICES { - let validator_index = validators_iter.next().expect("Insufficient validators."); - - attesters.push(validator_index); - secret_keys.push(&keypairs[validator_index as usize].sk); - } - - builder.insert_attester_slashing( - AttesterSlashingTestTask::Valid, - &attesters, - &secret_keys, - &state.fork, - state.genesis_validators_root, - spec, - ); - } - info!( - "Inserted {} attester slashings.", - builder.block.body.attester_slashings.len() - ); - - // Insert `Attestation` objects. - let all_secret_keys: Vec<&SecretKey> = keypairs.iter().map(|keypair| &keypair.sk).collect(); - builder - .insert_attestations( - AttestationTestTask::Valid, - &state, - &all_secret_keys, - self.num_attestations as usize, - spec, - ) - .unwrap(); - info!( - "Inserted {} attestations.", - builder.block.body.attestations.len() - ); - - // Insert `Deposit` objects. - builder.insert_deposits( - 32_000_000_000, - DepositTestTask::NoReset, - state.eth1_data.deposit_count, - self.num_deposits as u64, - &mut state, - spec, - ); - info!("Inserted {} deposits.", builder.block.body.deposits.len()); - - // Insert the maximum possible number of `Exit` objects. - for _ in 0..self.num_exits { - let validator_index = validators_iter.next().expect("Insufficient validators."); - - builder.insert_exit( - validator_index, - state.current_epoch(), - &keypairs[validator_index as usize].sk, - &state, - spec, - ); - } - info!( - "Inserted {} exits.", - builder.block.body.voluntary_exits.len() - ); - - // Set the eth1 data to be different from the state. - self.block_builder.block.body.eth1_data.block_hash = Hash256::from_slice(&[42; 32]); - - let block = self.block_builder.build( - &proposer_keypair.sk, - &state.fork, - state.genesis_validators_root, - spec, - ); - - (block, state) - } -} diff --git a/consensus/state_processing/src/upgrade.rs b/consensus/state_processing/src/upgrade.rs new file mode 100644 index 0000000000..ca8e515967 --- /dev/null +++ b/consensus/state_processing/src/upgrade.rs @@ -0,0 +1,3 @@ +pub mod altair; + +pub use altair::upgrade_to_altair; diff --git a/consensus/state_processing/src/upgrade/altair.rs b/consensus/state_processing/src/upgrade/altair.rs new file mode 100644 index 0000000000..34ccc9e0b0 --- /dev/null +++ b/consensus/state_processing/src/upgrade/altair.rs @@ -0,0 +1,119 @@ +use crate::common::{get_attestation_participation_flag_indices, get_attesting_indices}; +use std::mem; +use types::{ + BeaconState, BeaconStateAltair, BeaconStateError as Error, ChainSpec, EthSpec, Fork, + ParticipationFlags, PendingAttestation, RelativeEpoch, SyncCommittee, VariableList, +}; + +/// Translate the participation information from the epoch prior to the fork into Altair's format. +pub fn translate_participation( + state: &mut BeaconState, + pending_attestations: &VariableList, E::MaxPendingAttestations>, + spec: &ChainSpec, +) -> Result<(), Error> { + // Previous epoch committee cache is required for `get_attesting_indices`. + state.build_committee_cache(RelativeEpoch::Previous, spec)?; + + for attestation in pending_attestations { + let data = &attestation.data; + let inclusion_delay = attestation.inclusion_delay; + + // Translate attestation inclusion info to flag indices. + let participation_flag_indices = + get_attestation_participation_flag_indices(state, data, inclusion_delay, spec)?; + + // Apply flags to all attesting validators. + let committee = state.get_beacon_committee(data.slot, data.index)?; + let attesting_indices = + get_attesting_indices::(&committee.committee, &attestation.aggregation_bits)?; + let epoch_participation = state.previous_epoch_participation_mut()?; + + for index in attesting_indices { + for flag_index in &participation_flag_indices { + epoch_participation + .get_mut(index) + .ok_or(Error::UnknownValidator(index))? + .add_flag(*flag_index)?; + } + } + } + Ok(()) +} + +/// Transform a `Base` state into an `Altair` state. +pub fn upgrade_to_altair( + pre_state: &mut BeaconState, + spec: &ChainSpec, +) -> Result<(), Error> { + let epoch = pre_state.current_epoch(); + let pre = pre_state.as_base_mut()?; + + let default_epoch_participation = + VariableList::new(vec![ParticipationFlags::default(); pre.validators.len()])?; + let inactivity_scores = VariableList::new(vec![0; pre.validators.len()])?; + + // Where possible, use something like `mem::take` to move fields from behind the &mut + // reference. For other fields that don't have a good default value, use `clone`. + // + // Fixed size vectors get cloned because replacing them would require the same size + // allocation as cloning. + let mut post = BeaconState::Altair(BeaconStateAltair { + // Versioning + genesis_time: pre.genesis_time, + genesis_validators_root: pre.genesis_validators_root, + slot: pre.slot, + fork: Fork { + previous_version: pre.fork.current_version, + current_version: spec.altair_fork_version, + epoch, + }, + // History + latest_block_header: pre.latest_block_header.clone(), + block_roots: pre.block_roots.clone(), + state_roots: pre.state_roots.clone(), + historical_roots: mem::take(&mut pre.historical_roots), + // Eth1 + eth1_data: pre.eth1_data.clone(), + eth1_data_votes: mem::take(&mut pre.eth1_data_votes), + eth1_deposit_index: pre.eth1_deposit_index, + // Registry + validators: mem::take(&mut pre.validators), + balances: mem::take(&mut pre.balances), + // Randomness + randao_mixes: pre.randao_mixes.clone(), + // Slashings + slashings: pre.slashings.clone(), + // `Participation + previous_epoch_participation: default_epoch_participation.clone(), + current_epoch_participation: default_epoch_participation, + // Finality + justification_bits: pre.justification_bits.clone(), + previous_justified_checkpoint: pre.previous_justified_checkpoint, + current_justified_checkpoint: pre.current_justified_checkpoint, + finalized_checkpoint: pre.finalized_checkpoint, + // Inactivity + inactivity_scores, + // Sync committees + current_sync_committee: SyncCommittee::temporary()?, // not read + next_sync_committee: SyncCommittee::temporary()?, // not read + // Caches + committee_caches: mem::take(&mut pre.committee_caches), + pubkey_cache: mem::take(&mut pre.pubkey_cache), + exit_cache: mem::take(&mut pre.exit_cache), + tree_hash_cache: mem::take(&mut pre.tree_hash_cache), + }); + + // Fill in previous epoch participation from the pre state's pending attestations. + translate_participation(&mut post, &pre.previous_epoch_attestations, spec)?; + + // Fill in sync committees + // Note: A duplicate committee is assigned for the current and next committee at the fork + // boundary + let sync_committee = post.get_next_sync_committee(spec)?; + post.as_altair_mut()?.current_sync_committee = sync_committee.clone(); + post.as_altair_mut()?.next_sync_committee = sync_committee; + + *pre_state = post; + + Ok(()) +} diff --git a/consensus/state_processing/tests/tests.rs b/consensus/state_processing/tests/tests.rs deleted file mode 100644 index cc136850e0..0000000000 --- a/consensus/state_processing/tests/tests.rs +++ /dev/null @@ -1,228 +0,0 @@ -// #![cfg(not(feature = "fake_crypto"))] - -use state_processing::{ - per_block_processing, test_utils::BlockBuilder, BlockProcessingError, BlockSignatureStrategy, -}; -use types::{ - AggregateSignature, BeaconState, ChainSpec, EthSpec, Hash256, Keypair, MinimalEthSpec, - Signature, SignedBeaconBlock, Slot, -}; - -const VALIDATOR_COUNT: usize = 64; - -fn get_block(mut mutate_builder: F) -> (SignedBeaconBlock, BeaconState) -where - T: EthSpec, - F: FnMut(&mut BlockBuilder), -{ - let spec = T::default_spec(); - let mut builder: BlockBuilder = BlockBuilder::new(VALIDATOR_COUNT, &spec); - builder.set_slot(Slot::from(T::slots_per_epoch() * 3 - 2)); - builder.build_caches(&spec); - mutate_builder(&mut builder); - builder.build(&spec) -} - -fn test_scenario(mutate_builder: F, mut invalidate_block: G, spec: &ChainSpec) -where - T: EthSpec, - F: FnMut(&mut BlockBuilder), - G: FnMut(&mut SignedBeaconBlock), -{ - let (mut block, mut state) = get_block::(mutate_builder); - - /* - * Control check to ensure the valid block should pass verification. - */ - - assert_eq!( - per_block_processing( - &mut state.clone(), - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - spec - ), - Ok(()), - "valid block should pass with verify individual" - ); - - assert_eq!( - per_block_processing( - &mut state.clone(), - &block, - None, - BlockSignatureStrategy::VerifyBulk, - spec - ), - Ok(()), - "valid block should pass with verify bulk" - ); - - invalidate_block(&mut block); - - /* - * Check to ensure the invalid block fails. - */ - - assert!( - per_block_processing( - &mut state.clone(), - &block, - None, - BlockSignatureStrategy::VerifyIndividual, - spec - ) - .is_err(), - "invalid block should fail with verify individual" - ); - - assert_eq!( - per_block_processing( - &mut state, - &block, - None, - BlockSignatureStrategy::VerifyBulk, - spec - ), - Err(BlockProcessingError::BulkSignatureVerificationFailed), - "invalid block should fail with verify bulk" - ); -} - -// TODO: use lazy static -fn agg_sig() -> AggregateSignature { - let mut agg_sig = AggregateSignature::infinity(); - agg_sig.add_assign(&sig()); - agg_sig -} - -// TODO: use lazy static -fn sig() -> Signature { - let keypair = Keypair::random(); - keypair.sk.sign(Hash256::from_low_u64_be(42)) -} - -type TestEthSpec = MinimalEthSpec; - -mod signatures_minimal { - use super::*; - - #[test] - fn block_proposal() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::(|_| {}, |block| block.signature = sig(), spec); - } - - #[test] - fn randao() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::( - |_| {}, - |block| block.message.body.randao_reveal = sig(), - spec, - ); - } - - #[test] - fn proposer_slashing() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::( - |mut builder| { - builder.num_proposer_slashings = 1; - }, - |block| { - block.message.body.proposer_slashings[0] - .signed_header_1 - .signature = sig() - }, - spec, - ); - test_scenario::( - |mut builder| { - builder.num_proposer_slashings = 1; - }, - |block| { - block.message.body.proposer_slashings[0] - .signed_header_2 - .signature = sig() - }, - spec, - ); - } - - #[test] - fn attester_slashing() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::( - |mut builder| { - builder.num_attester_slashings = 1; - }, - |block| { - block.message.body.attester_slashings[0] - .attestation_1 - .signature = agg_sig() - }, - spec, - ); - test_scenario::( - |mut builder| { - builder.num_attester_slashings = 1; - }, - |block| { - block.message.body.attester_slashings[0] - .attestation_2 - .signature = agg_sig() - }, - spec, - ); - } - - #[test] - fn attestation() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::( - |mut builder| { - builder.num_attestations = 1; - }, - |block| block.message.body.attestations[0].signature = agg_sig(), - spec, - ); - } - - #[test] - // TODO: fix fail by making valid merkle proofs. - #[should_panic] - fn deposit() { - let spec = &TestEthSpec::default_spec(); - - test_scenario::( - |mut builder| { - builder.num_deposits = 1; - }, - |block| block.message.body.deposits[0].data.signature = sig().into(), - spec, - ); - } - - #[test] - fn exit() { - let mut spec = &mut TestEthSpec::default_spec(); - - // Allows the test to pass. - spec.shard_committee_period = 0; - - test_scenario::( - |mut builder| { - builder.num_exits = 1; - }, - |block| block.message.body.voluntary_exits[0].signature = sig(), - spec, - ); - } -} diff --git a/consensus/tree_hash/Cargo.toml b/consensus/tree_hash/Cargo.toml index d968ff172b..8251fe795d 100644 --- a/consensus/tree_hash/Cargo.toml +++ b/consensus/tree_hash/Cargo.toml @@ -6,16 +6,12 @@ edition = "2018" license = "Apache-2.0" description = "Efficient Merkle-hashing as used in Ethereum 2.0" -[[bench]] -name = "benches" -harness = false - [dev-dependencies] -criterion = "0.3.3" rand = "0.7.3" tree_hash_derive = "0.2.0" types = { path = "../types" } lazy_static = "1.4.0" +beacon_chain = { path = "../../beacon_node/beacon_chain" } [dependencies] ethereum-types = "0.9.2" diff --git a/consensus/tree_hash/benches/benches.rs b/consensus/tree_hash/benches/benches.rs deleted file mode 100644 index 4728dc4791..0000000000 --- a/consensus/tree_hash/benches/benches.rs +++ /dev/null @@ -1,96 +0,0 @@ -#![allow(deprecated)] - -use criterion::Criterion; -use criterion::{black_box, criterion_group, criterion_main, Benchmark}; -use lazy_static::lazy_static; -use types::test_utils::{generate_deterministic_keypairs, TestingBeaconStateBuilder}; -use types::{BeaconState, EthSpec, Keypair, MainnetEthSpec, MinimalEthSpec}; - -lazy_static! { - static ref KEYPAIRS: Vec = generate_deterministic_keypairs(300_000); -} - -fn build_state(validator_count: usize) -> BeaconState { - let (state, _keypairs) = TestingBeaconStateBuilder::from_keypairs( - KEYPAIRS[0..validator_count].to_vec(), - &T::default_spec(), - ) - .build(); - - assert_eq!(state.validators.len(), validator_count); - assert_eq!(state.balances.len(), validator_count); - assert!(state.previous_epoch_attestations.is_empty()); - assert!(state.current_epoch_attestations.is_empty()); - assert!(state.eth1_data_votes.is_empty()); - assert!(state.historical_roots.is_empty()); - - state -} - -// Note: `state.canonical_root()` uses whatever `tree_hash` that the `types` crate -// uses, which is not necessarily this crate. If you want to ensure that types is -// using this local version of `tree_hash`, ensure you add a workspace-level -// [dependency -// patch](https://doc.rust-lang.org/cargo/reference/manifest.html#the-patch-section). -fn bench_suite(c: &mut Criterion, spec_desc: &str, validator_count: usize) { - let state1 = build_state::(validator_count); - let state2 = state1.clone(); - let mut state3 = state1.clone(); - state3.update_tree_hash_cache().unwrap(); - - c.bench( - &format!("{}/{}_validators/no_cache", spec_desc, validator_count), - Benchmark::new("genesis_state", move |b| { - b.iter_batched_ref( - || state1.clone(), - |state| black_box(state.canonical_root()), - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - c.bench( - &format!("{}/{}_validators/empty_cache", spec_desc, validator_count), - Benchmark::new("genesis_state", move |b| { - b.iter_batched_ref( - || state2.clone(), - |state| { - assert!(state.tree_hash_cache.is_none()); - black_box(state.update_tree_hash_cache().unwrap()) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); - - c.bench( - &format!( - "{}/{}_validators/up_to_date_cache", - spec_desc, validator_count - ), - Benchmark::new("genesis_state", move |b| { - b.iter_batched_ref( - || state3.clone(), - |state| { - assert!(state.tree_hash_cache.is_some()); - black_box(state.update_tree_hash_cache().unwrap()) - }, - criterion::BatchSize::SmallInput, - ) - }) - .sample_size(10), - ); -} - -fn all_benches(c: &mut Criterion) { - bench_suite::(c, "minimal", 100_000); - bench_suite::(c, "minimal", 300_000); - - bench_suite::(c, "mainnet", 100_000); - bench_suite::(c, "mainnet", 300_000); -} - -criterion_group!(benches, all_benches,); -criterion_main!(benches); diff --git a/consensus/tree_hash/examples/flamegraph_beacon_state.rs b/consensus/tree_hash/examples/flamegraph_beacon_state.rs index f4934ec83c..309c2a2cc1 100644 --- a/consensus/tree_hash/examples/flamegraph_beacon_state.rs +++ b/consensus/tree_hash/examples/flamegraph_beacon_state.rs @@ -1,26 +1,46 @@ -use types::test_utils::TestingBeaconStateBuilder; +use beacon_chain::store::StoreConfig; +use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; use types::{BeaconState, EthSpec, MainnetEthSpec}; const TREE_HASH_LOOPS: usize = 1_000; const VALIDATOR_COUNT: usize = 1_000; -fn build_state(validator_count: usize) -> BeaconState { - let (state, _keypairs) = - TestingBeaconStateBuilder::from_deterministic_keypairs(validator_count, &T::default_spec()) - .build(); +fn get_harness() -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + T::default(), + None, + types::test_utils::generate_deterministic_keypairs(VALIDATOR_COUNT), + StoreConfig::default(), + ); - assert_eq!(state.validators.len(), validator_count); - assert_eq!(state.balances.len(), validator_count); - assert!(state.previous_epoch_attestations.is_empty()); - assert!(state.current_epoch_attestations.is_empty()); - assert!(state.eth1_data_votes.is_empty()); - assert!(state.historical_roots.is_empty()); + harness.advance_slot(); + + harness +} + +fn build_state() -> BeaconState { + let state = get_harness::().chain.head_beacon_state().unwrap(); + + assert_eq!(state.as_base().unwrap().validators.len(), VALIDATOR_COUNT); + assert_eq!(state.as_base().unwrap().balances.len(), VALIDATOR_COUNT); + assert!(state + .as_base() + .unwrap() + .previous_epoch_attestations + .is_empty()); + assert!(state + .as_base() + .unwrap() + .current_epoch_attestations + .is_empty()); + assert!(state.as_base().unwrap().eth1_data_votes.is_empty()); + assert!(state.as_base().unwrap().historical_roots.is_empty()); state } fn main() { - let state = build_state::(VALIDATOR_COUNT); + let state = build_state::(); // This vec is an attempt to ensure the compiler doesn't optimize-out the hashing. let mut vec = Vec::with_capacity(TREE_HASH_LOOPS); diff --git a/consensus/tree_hash/src/lib.rs b/consensus/tree_hash/src/lib.rs index 7008e0068d..f44208564d 100644 --- a/consensus/tree_hash/src/lib.rs +++ b/consensus/tree_hash/src/lib.rs @@ -95,6 +95,28 @@ pub trait TreeHash { fn tree_hash_root(&self) -> Hash256; } +/// Punch through references. +impl<'a, T> TreeHash for &'a T +where + T: TreeHash, +{ + fn tree_hash_type() -> TreeHashType { + T::tree_hash_type() + } + + fn tree_hash_packed_encoding(&self) -> Vec { + T::tree_hash_packed_encoding(*self) + } + + fn tree_hash_packing_factor() -> usize { + T::tree_hash_packing_factor() + } + + fn tree_hash_root(&self) -> Hash256 { + T::tree_hash_root(*self) + } +} + #[macro_export] macro_rules! tree_hash_ssz_encoding_as_vector { ($type: ident) => { diff --git a/consensus/tree_hash_derive/src/lib.rs b/consensus/tree_hash_derive/src/lib.rs index 97a3323943..1317e56e86 100644 --- a/consensus/tree_hash_derive/src/lib.rs +++ b/consensus/tree_hash_derive/src/lib.rs @@ -1,9 +1,7 @@ #![recursion_limit = "256"] -extern crate proc_macro; - use proc_macro::TokenStream; use quote::quote; -use syn::{parse_macro_input, Attribute, DeriveInput, Meta}; +use syn::{parse_macro_input, Attribute, DataEnum, DataStruct, DeriveInput, Meta}; /// Return a Vec of `syn::Ident` for each named field in the struct, whilst filtering out fields /// that should not be hashed. @@ -85,14 +83,17 @@ fn should_skip_hashing(field: &syn::Field) -> bool { pub fn tree_hash_derive(input: TokenStream) -> TokenStream { let item = parse_macro_input!(input as DeriveInput); + match &item.data { + syn::Data::Struct(s) => tree_hash_derive_struct(&item, s), + syn::Data::Enum(e) => tree_hash_derive_enum(&item, e), + _ => panic!("tree_hash_derive only supports structs."), + } +} + +fn tree_hash_derive_struct(item: &DeriveInput, struct_data: &DataStruct) -> TokenStream { let name = &item.ident; let (impl_generics, ty_generics, where_clause) = &item.generics.split_for_impl(); - let struct_data = match &item.data { - syn::Data::Struct(s) => s, - _ => panic!("tree_hash_derive only supports structs."), - }; - let idents = get_hashable_fields(&struct_data); let num_leaves = idents.len(); @@ -124,3 +125,70 @@ pub fn tree_hash_derive(input: TokenStream) -> TokenStream { }; output.into() } + +/// Derive `TreeHash` for a restricted subset of all possible enum types. +/// +/// Only supports: +/// - Enums with a single field per variant, where +/// - All fields are "container" types. +/// +/// Will panic at compile-time if the single field requirement isn't met, but will panic *at run +/// time* if the container type requirement isn't met. +fn tree_hash_derive_enum(derive_input: &DeriveInput, enum_data: &DataEnum) -> TokenStream { + let name = &derive_input.ident; + let (impl_generics, ty_generics, where_clause) = &derive_input.generics.split_for_impl(); + + let (patterns, type_exprs): (Vec<_>, Vec<_>) = enum_data + .variants + .iter() + .map(|variant| { + let variant_name = &variant.ident; + + if variant.fields.len() != 1 { + panic!("TreeHash can only be derived for enums with 1 field per variant"); + } + + let pattern = quote! { + #name::#variant_name(ref inner) + }; + + let ty = &(&variant.fields).into_iter().next().unwrap().ty; + let type_expr = quote! { + <#ty as tree_hash::TreeHash>::tree_hash_type() + }; + (pattern, type_expr) + }) + .unzip(); + + let output = quote! { + impl #impl_generics tree_hash::TreeHash for #name #ty_generics #where_clause { + fn tree_hash_type() -> tree_hash::TreeHashType { + #( + assert_eq!( + #type_exprs, + tree_hash::TreeHashType::Container, + "all variants must be of container type" + ); + )* + tree_hash::TreeHashType::Container + } + + fn tree_hash_packed_encoding(&self) -> Vec { + unreachable!("Enum should never be packed") + } + + fn tree_hash_packing_factor() -> usize { + unreachable!("Enum should never be packed") + } + + fn tree_hash_root(&self) -> Hash256 { + match self { + #( + #patterns => inner.tree_hash_root(), + )* + } + } + } + }; + output.into() +} diff --git a/consensus/types/Cargo.toml b/consensus/types/Cargo.toml index 397ee7e169..bf79d37869 100644 --- a/consensus/types/Cargo.toml +++ b/consensus/types/Cargo.toml @@ -42,10 +42,14 @@ arbitrary = { version = "0.4.6", features = ["derive"], optional = true } serde_utils = { path = "../serde_utils" } regex = "1.3.9" lazy_static = "1.4.0" +parking_lot = "0.11.1" +itertools = "0.10.0" +superstruct = "0.2.0" [dev-dependencies] serde_json = "1.0.58" criterion = "0.3.3" +beacon_chain = { path = "../../beacon_node/beacon_chain" } [features] default = ["sqlite", "legacy-arith"] diff --git a/consensus/types/benches/benches.rs b/consensus/types/benches/benches.rs index aa3b191c81..28f57e7080 100644 --- a/consensus/types/benches/benches.rs +++ b/consensus/types/benches/benches.rs @@ -3,7 +3,8 @@ use criterion::Criterion; use criterion::{black_box, criterion_group, criterion_main, Benchmark}; use rayon::prelude::*; -use ssz::{Decode, Encode}; +use ssz::Encode; +use std::sync::Arc; use types::{ test_utils::generate_deterministic_keypair, BeaconState, Epoch, Eth1Data, EthSpec, Hash256, MainnetEthSpec, Validator, @@ -20,10 +21,13 @@ fn get_state(validator_count: usize) -> BeaconState { let mut state = BeaconState::new(0, eth1_data, spec); for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); + state + .balances_mut() + .push(i as u64) + .expect("should add balance"); } - state.validators = (0..validator_count) + *state.validators_mut() = (0..validator_count) .collect::>() .par_iter() .map(|&i| Validator { @@ -44,10 +48,10 @@ fn get_state(validator_count: usize) -> BeaconState { fn all_benches(c: &mut Criterion) { let validator_count = 16_384; - let spec = &MainnetEthSpec::default_spec(); + let spec = Arc::new(MainnetEthSpec::default_spec()); let mut state = get_state::(validator_count); - state.build_all_caches(spec).expect("should build caches"); + state.build_all_caches(&spec).expect("should build caches"); let state_bytes = state.as_ssz_bytes(); let inner_state = state.clone(); @@ -67,10 +71,10 @@ fn all_benches(c: &mut Criterion) { &format!("{}_validators", validator_count), Benchmark::new("decode/beacon_state", move |b| { b.iter_batched_ref( - || state_bytes.clone(), - |bytes| { + || (state_bytes.clone(), spec.clone()), + |(bytes, spec)| { let state: BeaconState = - BeaconState::from_ssz_bytes(&bytes).expect("should decode"); + BeaconState::from_ssz_bytes(&bytes, &spec).expect("should decode"); black_box(state) }, criterion::BatchSize::SmallInput, @@ -98,7 +102,7 @@ fn all_benches(c: &mut Criterion) { Benchmark::new("clone/tree_hash_cache", move |b| { b.iter_batched_ref( || inner_state.clone(), - |state| black_box(state.tree_hash_cache.clone()), + |state| black_box(state.tree_hash_cache().clone()), criterion::BatchSize::SmallInput, ) }) @@ -122,7 +126,7 @@ fn all_benches(c: &mut Criterion) { ); let mut inner_state = state.clone(); - inner_state.drop_all_caches(); + inner_state.drop_all_caches().unwrap(); c.bench( &format!("{}_validators", validator_count), Benchmark::new("non_initialized_cached_tree_hash/beacon_state", move |b| { @@ -152,11 +156,11 @@ fn all_benches(c: &mut Criterion) { let mut state = inner_state.clone(); for _ in 0..16 { state - .validators + .validators_mut() .push(Validator::default()) .expect("should push validatorj"); state - .balances + .balances_mut() .push(32_000_000_000) .expect("should push balance"); } diff --git a/consensus/types/examples/clone_state.rs b/consensus/types/examples/clone_state.rs index 73f601bce0..a7e80cf407 100644 --- a/consensus/types/examples/clone_state.rs +++ b/consensus/types/examples/clone_state.rs @@ -19,9 +19,12 @@ fn get_state(validator_count: usize) -> BeaconState { let mut state = BeaconState::new(0, eth1_data, spec); for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); state - .validators + .balances_mut() + .push(i as u64) + .expect("should add balance"); + state + .validators_mut() .push(Validator { pubkey: generate_deterministic_keypair(i).pk.into(), withdrawal_credentials: Hash256::from_low_u64_le(i as u64), diff --git a/consensus/types/examples/ssz_encode_state.rs b/consensus/types/examples/ssz_encode_state.rs index 826835306e..5d0a2db17c 100644 --- a/consensus/types/examples/ssz_encode_state.rs +++ b/consensus/types/examples/ssz_encode_state.rs @@ -1,7 +1,7 @@ //! These examples only really exist so we can use them for flamegraph. If they get annoying to //! maintain, feel free to delete. -use ssz::{Decode, Encode}; +use ssz::Encode; use types::{ test_utils::generate_deterministic_keypair, BeaconState, Eth1Data, EthSpec, Hash256, MinimalEthSpec, Validator, @@ -20,9 +20,12 @@ fn get_state(validator_count: usize) -> BeaconState { let mut state = BeaconState::new(0, eth1_data, spec); for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); state - .validators + .balances_mut() + .push(i as u64) + .expect("should add balance"); + state + .validators_mut() .push(Validator { pubkey: generate_deterministic_keypair(i).pk.into(), withdrawal_credentials: Hash256::from_low_u64_le(i as u64), @@ -45,6 +48,7 @@ fn main() { for _ in 0..1_024 { let state_bytes = state.as_ssz_bytes(); - let _: BeaconState = BeaconState::from_ssz_bytes(&state_bytes).expect("should decode"); + let _: BeaconState = + BeaconState::from_ssz_bytes(&state_bytes, &E::default_spec()).expect("should decode"); } } diff --git a/consensus/types/examples/tree_hash_state.rs b/consensus/types/examples/tree_hash_state.rs index 03811c3083..a421a23ad5 100644 --- a/consensus/types/examples/tree_hash_state.rs +++ b/consensus/types/examples/tree_hash_state.rs @@ -19,9 +19,12 @@ fn get_state(validator_count: usize) -> BeaconState { let mut state = BeaconState::new(0, eth1_data, spec); for i in 0..validator_count { - state.balances.push(i as u64).expect("should add balance"); state - .validators + .balances_mut() + .push(i as u64) + .expect("should add balance"); + state + .validators_mut() .push(Validator { pubkey: generate_deterministic_keypair(i).pk.into(), withdrawal_credentials: Hash256::from_low_u64_le(i as u64), diff --git a/consensus/types/presets/mainnet/altair.yaml b/consensus/types/presets/mainnet/altair.yaml new file mode 100644 index 0000000000..9a17b78032 --- /dev/null +++ b/consensus/types/presets/mainnet/altair.yaml @@ -0,0 +1,24 @@ +# Mainnet preset - Altair + +# Updated penalty values +# --------------------------------------------------------------- +# 3 * 2**24 (= 50,331,648) +INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648 +# 2**6 (= 64) +MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64 +# 2 +PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2 + + +# Sync committee +# --------------------------------------------------------------- +# 2**9 (= 512) +SYNC_COMMITTEE_SIZE: 512 +# 2**8 (= 256) +EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 256 + + +# Sync protocol +# --------------------------------------------------------------- +# 1 +MIN_SYNC_COMMITTEE_PARTICIPANTS: 1 diff --git a/common/eth2_network_config/built_in_network_configs/toledo/config.yaml b/consensus/types/presets/mainnet/phase0.yaml similarity index 58% rename from common/eth2_network_config/built_in_network_configs/toledo/config.yaml rename to consensus/types/presets/mainnet/phase0.yaml index 99a9012d73..89bb97d6a8 100644 --- a/common/eth2_network_config/built_in_network_configs/toledo/config.yaml +++ b/consensus/types/presets/mainnet/phase0.yaml @@ -1,6 +1,4 @@ -# Toledo preset, variant of mainnet - -CONFIG_NAME: "toledo" +# Mainnet preset - Phase0 # Misc # --------------------------------------------------------------- @@ -10,16 +8,8 @@ MAX_COMMITTEES_PER_SLOT: 64 TARGET_COMMITTEE_SIZE: 128 # 2**11 (= 2,048) MAX_VALIDATORS_PER_COMMITTEE: 2048 -# 2**2 (= 4) -MIN_PER_EPOCH_CHURN_LIMIT: 4 -# 2**16 (= 65,536) -CHURN_LIMIT_QUOTIENT: 65536 # See issue 563 SHUFFLE_ROUND_COUNT: 90 -# `2**14` (= 16,384) -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384 -# Nov 10, 2020, 12pm UTC -MIN_GENESIS_TIME: 1605009600 # 4 HYSTERESIS_QUOTIENT: 4 # 1 (minus 0.25) @@ -34,53 +24,18 @@ HYSTERESIS_UPWARD_MULTIPLIER: 5 SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8 -# Validator -# --------------------------------------------------------------- -# 2**11 (= 2,048) -ETH1_FOLLOW_DISTANCE: 2048 -# 2**4 (= 16) -TARGET_AGGREGATORS_PER_COMMITTEE: 16 -# 2**0 (= 1) -RANDOM_SUBNETS_PER_VALIDATOR: 1 -# 2**8 (= 256) -EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 -# 14 (estimate from Eth1 mainnet) -SECONDS_PER_ETH1_BLOCK: 14 - - -# Deposit contract -# --------------------------------------------------------------- -# Ethereum Goerli testnet -DEPOSIT_CHAIN_ID: 5 -DEPOSIT_NETWORK_ID: 5 -# Toledo permissioned test deposit contract on Goerli -DEPOSIT_CONTRACT_ADDRESS: 0x47709dC7a8c18688a1f051761fc34ac253970bC0 - - # Gwei values # --------------------------------------------------------------- # 2**0 * 10**9 (= 1,000,000,000) Gwei MIN_DEPOSIT_AMOUNT: 1000000000 # 2**5 * 10**9 (= 32,000,000,000) Gwei MAX_EFFECTIVE_BALANCE: 32000000000 -# 2**4 * 10**9 (= 16,000,000,000) Gwei -EJECTION_BALANCE: 16000000000 # 2**0 * 10**9 (= 1,000,000,000) Gwei EFFECTIVE_BALANCE_INCREMENT: 1000000000 -# Initial values -# --------------------------------------------------------------- -GENESIS_FORK_VERSION: 0x00701ED0 -BLS_WITHDRAWAL_PREFIX: 0x00 - - # Time parameters # --------------------------------------------------------------- -# 86400 seconds (1 day) -GENESIS_DELAY: 86400 -# 12 seconds -SECONDS_PER_SLOT: 12 # 2**0 (= 1) slots 12 seconds MIN_ATTESTATION_INCLUSION_DELAY: 1 # 2**5 (= 32) slots 6.4 minutes @@ -91,17 +46,13 @@ MIN_SEED_LOOKAHEAD: 1 MAX_SEED_LOOKAHEAD: 4 # 2**6 (= 64) epochs ~6.8 hours EPOCHS_PER_ETH1_VOTING_PERIOD: 64 -# 2**13 (= 8,192) slots ~13 hours +# 2**13 (= 8,192) slots ~27 hours SLOTS_PER_HISTORICAL_ROOT: 8192 -# 2**8 (= 256) epochs ~27 hours -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -# 2**8 (= 256) epochs ~27 hours -SHARD_COMMITTEE_PERIOD: 256 # 2**2 (= 4) epochs 25.6 minutes MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 -# State vector lengths +# State list lengths # --------------------------------------------------------------- # 2**16 (= 65,536) epochs ~0.8 years EPOCHS_PER_HISTORICAL_VECTOR: 65536 @@ -141,14 +92,3 @@ MAX_ATTESTATIONS: 128 MAX_DEPOSITS: 16 # 2**4 (= 16) MAX_VOLUNTARY_EXITS: 16 - - -# Signature domains -# --------------------------------------------------------------- -DOMAIN_BEACON_PROPOSER: 0x00000000 -DOMAIN_BEACON_ATTESTER: 0x01000000 -DOMAIN_RANDAO: 0x02000000 -DOMAIN_DEPOSIT: 0x03000000 -DOMAIN_VOLUNTARY_EXIT: 0x04000000 -DOMAIN_SELECTION_PROOF: 0x05000000 -DOMAIN_AGGREGATE_AND_PROOF: 0x06000000 diff --git a/consensus/types/presets/minimal/altair.yaml b/consensus/types/presets/minimal/altair.yaml new file mode 100644 index 0000000000..88d78bea36 --- /dev/null +++ b/consensus/types/presets/minimal/altair.yaml @@ -0,0 +1,24 @@ +# Minimal preset - Altair + +# Updated penalty values +# --------------------------------------------------------------- +# 3 * 2**24 (= 50,331,648) +INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648 +# 2**6 (= 64) +MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64 +# 2 +PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2 + + +# Sync committee +# --------------------------------------------------------------- +# [customized] +SYNC_COMMITTEE_SIZE: 32 +# [customized] +EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 8 + + +# Sync protocol +# --------------------------------------------------------------- +# 1 +MIN_SYNC_COMMITTEE_PARTICIPANTS: 1 diff --git a/consensus/types/presets/minimal/phase0.yaml b/consensus/types/presets/minimal/phase0.yaml new file mode 100644 index 0000000000..c9c81325f1 --- /dev/null +++ b/consensus/types/presets/minimal/phase0.yaml @@ -0,0 +1,94 @@ +# Minimal preset - Phase0 + +# Misc +# --------------------------------------------------------------- +# [customized] Just 4 committees for slot for testing purposes +MAX_COMMITTEES_PER_SLOT: 4 +# [customized] unsecure, but fast +TARGET_COMMITTEE_SIZE: 4 +# 2**11 (= 2,048) +MAX_VALIDATORS_PER_COMMITTEE: 2048 +# [customized] Faster, but unsecure. +SHUFFLE_ROUND_COUNT: 10 +# 4 +HYSTERESIS_QUOTIENT: 4 +# 1 (minus 0.25) +HYSTERESIS_DOWNWARD_MULTIPLIER: 1 +# 5 (plus 1.25) +HYSTERESIS_UPWARD_MULTIPLIER: 5 + + +# Fork Choice +# --------------------------------------------------------------- +# 2**1 (= 1) +SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 2 + + +# Gwei values +# --------------------------------------------------------------- +# 2**0 * 10**9 (= 1,000,000,000) Gwei +MIN_DEPOSIT_AMOUNT: 1000000000 +# 2**5 * 10**9 (= 32,000,000,000) Gwei +MAX_EFFECTIVE_BALANCE: 32000000000 +# 2**0 * 10**9 (= 1,000,000,000) Gwei +EFFECTIVE_BALANCE_INCREMENT: 1000000000 + + +# Time parameters +# --------------------------------------------------------------- +# 2**0 (= 1) slots 6 seconds +MIN_ATTESTATION_INCLUSION_DELAY: 1 +# [customized] fast epochs +SLOTS_PER_EPOCH: 8 +# 2**0 (= 1) epochs +MIN_SEED_LOOKAHEAD: 1 +# 2**2 (= 4) epochs +MAX_SEED_LOOKAHEAD: 4 +# [customized] higher frequency new deposits from eth1 for testing +EPOCHS_PER_ETH1_VOTING_PERIOD: 4 +# [customized] smaller state +SLOTS_PER_HISTORICAL_ROOT: 64 +# 2**2 (= 4) epochs +MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 + + +# State list lengths +# --------------------------------------------------------------- +# [customized] smaller state +EPOCHS_PER_HISTORICAL_VECTOR: 64 +# [customized] smaller state +EPOCHS_PER_SLASHINGS_VECTOR: 64 +# 2**24 (= 16,777,216) historical roots +HISTORICAL_ROOTS_LIMIT: 16777216 +# 2**40 (= 1,099,511,627,776) validator spots +VALIDATOR_REGISTRY_LIMIT: 1099511627776 + + +# Reward and penalty quotients +# --------------------------------------------------------------- +# 2**6 (= 64) +BASE_REWARD_FACTOR: 64 +# 2**9 (= 512) +WHISTLEBLOWER_REWARD_QUOTIENT: 512 +# 2**3 (= 8) +PROPOSER_REWARD_QUOTIENT: 8 +# [customized] 2**25 (= 33,554,432) +INACTIVITY_PENALTY_QUOTIENT: 33554432 +# [customized] 2**6 (= 64) +MIN_SLASHING_PENALTY_QUOTIENT: 64 +# [customized] 2 (lower safety margin than Phase 0 genesis but different than mainnet config for testing) +PROPORTIONAL_SLASHING_MULTIPLIER: 2 + + +# Max operations per block +# --------------------------------------------------------------- +# 2**4 (= 16) +MAX_PROPOSER_SLASHINGS: 16 +# 2**1 (= 2) +MAX_ATTESTER_SLASHINGS: 2 +# 2**7 (= 128) +MAX_ATTESTATIONS: 128 +# 2**4 (= 16) +MAX_DEPOSITS: 16 +# 2**4 (= 16) +MAX_VOLUNTARY_EXITS: 16 diff --git a/consensus/types/src/beacon_block.rs b/consensus/types/src/beacon_block.rs index 71b0f9545f..67caabd570 100644 --- a/consensus/types/src/beacon_block.rs +++ b/consensus/types/src/beacon_block.rs @@ -1,58 +1,71 @@ +use crate::beacon_block_body::{ + BeaconBlockBodyAltair, BeaconBlockBodyBase, BeaconBlockBodyRef, BeaconBlockBodyRefMut, +}; use crate::test_utils::TestRandom; use crate::*; use bls::Signature; - use serde_derive::{Deserialize, Serialize}; +use ssz::{Decode, DecodeError}; use ssz_derive::{Decode, Encode}; +use superstruct::superstruct; use test_random_derive::TestRandom; use tree_hash::TreeHash; use tree_hash_derive::TreeHash; /// A block of the `BeaconChain`. -/// -/// Spec v0.12.1 -#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom)] +#[superstruct( + variants(Base, Altair), + variant_attributes( + derive( + Debug, + PartialEq, + Clone, + Serialize, + Deserialize, + Encode, + Decode, + TreeHash, + TestRandom + ), + serde(bound = "T: EthSpec", deny_unknown_fields), + cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary)) + ), + ref_attributes(derive(Debug, PartialEq, TreeHash)) +)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, TreeHash)] +#[serde(untagged)] #[serde(bound = "T: EthSpec")] +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] pub struct BeaconBlock { + #[superstruct(getter(copy))] pub slot: Slot, + #[superstruct(getter(copy))] #[serde(with = "serde_utils::quoted_u64")] pub proposer_index: u64, + #[superstruct(getter(copy))] pub parent_root: Hash256, + #[superstruct(getter(copy))] pub state_root: Hash256, - pub body: BeaconBlockBody, + #[superstruct(only(Base), partial_getter(rename = "body_base"))] + pub body: BeaconBlockBodyBase, + #[superstruct(only(Altair), partial_getter(rename = "body_altair"))] + pub body: BeaconBlockBodyAltair, } impl SignedRoot for BeaconBlock {} +impl<'a, T: EthSpec> SignedRoot for BeaconBlockRef<'a, T> {} impl BeaconBlock { /// Returns an empty block to be used during genesis. - /// - /// Spec v0.12.1 pub fn empty(spec: &ChainSpec) -> Self { - BeaconBlock { - slot: spec.genesis_slot, - proposer_index: 0, - parent_root: Hash256::zero(), - state_root: Hash256::zero(), - body: BeaconBlockBody { - randao_reveal: Signature::empty(), - eth1_data: Eth1Data { - deposit_root: Hash256::zero(), - block_hash: Hash256::zero(), - deposit_count: 0, - }, - graffiti: Graffiti::default(), - proposer_slashings: VariableList::empty(), - attester_slashings: VariableList::empty(), - attestations: VariableList::empty(), - deposits: VariableList::empty(), - voluntary_exits: VariableList::empty(), - }, + if spec.altair_fork_epoch == Some(T::genesis_epoch()) { + Self::Altair(BeaconBlockAltair::empty(spec)) + } else { + Self::Base(BeaconBlockBase::empty(spec)) } } - /// Return a block where the block has the max possible operations. + /// Return a block where the block has maximum size. pub fn full(spec: &ChainSpec) -> BeaconBlock { let header = BeaconBlockHeader { slot: Slot::new(1), @@ -114,7 +127,8 @@ impl BeaconBlock { signature: Signature::empty(), }; - let mut block: BeaconBlock = BeaconBlock::empty(spec); + // FIXME(altair): use an Altair block (they're bigger) + let mut block = BeaconBlockBase::::empty(spec); for _ in 0..T::MaxProposerSlashings::to_usize() { block .body @@ -143,19 +157,50 @@ impl BeaconBlock { for _ in 0..T::MaxAttestations::to_usize() { block.body.attestations.push(attestation.clone()).unwrap(); } - block + BeaconBlock::Base(block) } - /// Returns the epoch corresponding to `self.slot`. + /// Custom SSZ decoder that takes a `ChainSpec` as context. + pub fn from_ssz_bytes(bytes: &[u8], spec: &ChainSpec) -> Result { + let slot_len = ::ssz_fixed_len(); + let slot_bytes = bytes + .get(0..slot_len) + .ok_or(DecodeError::InvalidByteLength { + len: bytes.len(), + expected: slot_len, + })?; + + let slot = Slot::from_ssz_bytes(slot_bytes)?; + let epoch = slot.epoch(T::slots_per_epoch()); + + if spec + .altair_fork_epoch + .map_or(true, |altair_epoch| epoch < altair_epoch) + { + BeaconBlockBase::from_ssz_bytes(bytes).map(Self::Base) + } else { + BeaconBlockAltair::from_ssz_bytes(bytes).map(Self::Altair) + } + } + + /// Convenience accessor for the `body` as a `BeaconBlockBodyRef`. + pub fn body(&self) -> BeaconBlockBodyRef<'_, T> { + self.to_ref().body() + } + + /// Convenience accessor for the `body` as a `BeaconBlockBodyRefMut`. + pub fn body_mut(&mut self) -> BeaconBlockBodyRefMut<'_, T> { + self.to_mut().body_mut() + } + + /// Returns the epoch corresponding to `self.slot()`. pub fn epoch(&self) -> Epoch { - self.slot.epoch(T::slots_per_epoch()) + self.slot().epoch(T::slots_per_epoch()) } /// Returns the `tree_hash_root` of the block. - /// - /// Spec v0.12.1 pub fn canonical_root(&self) -> Hash256 { - Hash256::from_slice(&self.tree_hash_root()[..]) + self.tree_hash_root() } /// Returns a full `BeaconBlockHeader` of this block. @@ -164,26 +209,18 @@ impl BeaconBlock { /// when you want to have the block _and_ the header. /// /// Note: performs a full tree-hash of `self.body`. - /// - /// Spec v0.12.1 pub fn block_header(&self) -> BeaconBlockHeader { - BeaconBlockHeader { - slot: self.slot, - proposer_index: self.proposer_index, - parent_root: self.parent_root, - state_root: self.state_root, - body_root: Hash256::from_slice(&self.body.tree_hash_root()[..]), - } + self.to_ref().block_header() } /// Returns a "temporary" header, where the `state_root` is `Hash256::zero()`. - /// - /// Spec v0.12.1 pub fn temporary_block_header(&self) -> BeaconBlockHeader { - BeaconBlockHeader { - state_root: Hash256::zero(), - ..self.block_header() - } + self.to_ref().temporary_block_header() + } + + /// Return the tree hash root of the block's body. + pub fn body_root(&self) -> Hash256 { + self.to_ref().body_root() } /// Signs `self`, producing a `SignedBeaconBlock`. @@ -202,9 +239,106 @@ impl BeaconBlock { ); let message = self.signing_root(domain); let signature = secret_key.sign(message); - SignedBeaconBlock { - message: self, - signature, + SignedBeaconBlock::from_block(self, signature) + } +} + +impl<'a, T: EthSpec> BeaconBlockRef<'a, T> { + /// Convenience accessor for the `body` as a `BeaconBlockBodyRef`. + pub fn body(&self) -> BeaconBlockBodyRef<'a, T> { + match self { + BeaconBlockRef::Base(block) => BeaconBlockBodyRef::Base(&block.body), + BeaconBlockRef::Altair(block) => BeaconBlockBodyRef::Altair(&block.body), + } + } + + /// Return the tree hash root of the block's body. + pub fn body_root(&self) -> Hash256 { + match self { + BeaconBlockRef::Base(block) => block.body.tree_hash_root(), + BeaconBlockRef::Altair(block) => block.body.tree_hash_root(), + } + } + + /// Returns a full `BeaconBlockHeader` of this block. + pub fn block_header(&self) -> BeaconBlockHeader { + BeaconBlockHeader { + slot: self.slot(), + proposer_index: self.proposer_index(), + parent_root: self.parent_root(), + state_root: self.state_root(), + body_root: self.body_root(), + } + } + + /// Returns a "temporary" header, where the `state_root` is `Hash256::zero()`. + pub fn temporary_block_header(self) -> BeaconBlockHeader { + BeaconBlockHeader { + state_root: Hash256::zero(), + ..self.block_header() + } + } +} + +impl<'a, T: EthSpec> BeaconBlockRefMut<'a, T> { + /// Convert a mutable reference to a beacon block to a mutable ref to its body. + pub fn body_mut(self) -> BeaconBlockBodyRefMut<'a, T> { + match self { + BeaconBlockRefMut::Base(block) => BeaconBlockBodyRefMut::Base(&mut block.body), + BeaconBlockRefMut::Altair(block) => BeaconBlockBodyRefMut::Altair(&mut block.body), + } + } +} + +impl BeaconBlockBase { + /// Returns an empty block to be used during genesis. + pub fn empty(spec: &ChainSpec) -> Self { + BeaconBlockBase { + slot: spec.genesis_slot, + proposer_index: 0, + parent_root: Hash256::zero(), + state_root: Hash256::zero(), + body: BeaconBlockBodyBase { + randao_reveal: Signature::empty(), + eth1_data: Eth1Data { + deposit_root: Hash256::zero(), + block_hash: Hash256::zero(), + deposit_count: 0, + }, + graffiti: Graffiti::default(), + proposer_slashings: VariableList::empty(), + attester_slashings: VariableList::empty(), + attestations: VariableList::empty(), + deposits: VariableList::empty(), + voluntary_exits: VariableList::empty(), + }, + } + } +} + +impl BeaconBlockAltair { + /// Returns an empty block to be used during genesis. + pub fn empty(spec: &ChainSpec) -> Self { + BeaconBlockAltair { + slot: spec.genesis_slot, + proposer_index: 0, + parent_root: Hash256::zero(), + state_root: Hash256::zero(), + body: BeaconBlockBodyAltair { + randao_reveal: Signature::empty(), + eth1_data: Eth1Data { + deposit_root: Hash256::zero(), + block_hash: Hash256::zero(), + deposit_count: 0, + }, + graffiti: Graffiti::default(), + proposer_slashings: VariableList::empty(), + attester_slashings: VariableList::empty(), + attestations: VariableList::empty(), + deposits: VariableList::empty(), + voluntary_exits: VariableList::empty(), + sync_aggregate: SyncAggregate::empty(), + }, } } } @@ -212,6 +346,110 @@ impl BeaconBlock { #[cfg(test)] mod tests { use super::*; + use crate::test_utils::{test_ssz_tree_hash_pair_with, SeedableRng, TestRandom, XorShiftRng}; + use crate::{ForkName, MainnetEthSpec}; + use ssz::Encode; - ssz_and_tree_hash_tests!(BeaconBlock); + type BeaconBlock = super::BeaconBlock; + type BeaconBlockBase = super::BeaconBlockBase; + type BeaconBlockAltair = super::BeaconBlockAltair; + + #[test] + fn roundtrip_base_block() { + let rng = &mut XorShiftRng::from_seed([42; 16]); + let spec = &ForkName::Base.make_genesis_spec(MainnetEthSpec::default_spec()); + + let inner_block = BeaconBlockBase { + slot: Slot::random_for_test(rng), + proposer_index: u64::random_for_test(rng), + parent_root: Hash256::random_for_test(rng), + state_root: Hash256::random_for_test(rng), + body: BeaconBlockBodyBase::random_for_test(rng), + }; + let block = BeaconBlock::Base(inner_block.clone()); + + test_ssz_tree_hash_pair_with(&block, &inner_block, |bytes| { + BeaconBlock::from_ssz_bytes(bytes, spec) + }); + } + + #[test] + fn roundtrip_altair_block() { + let rng = &mut XorShiftRng::from_seed([42; 16]); + let spec = &ForkName::Altair.make_genesis_spec(MainnetEthSpec::default_spec()); + + let inner_block = BeaconBlockAltair { + slot: Slot::random_for_test(rng), + proposer_index: u64::random_for_test(rng), + parent_root: Hash256::random_for_test(rng), + state_root: Hash256::random_for_test(rng), + body: BeaconBlockBodyAltair::random_for_test(rng), + }; + let block = BeaconBlock::Altair(inner_block.clone()); + + test_ssz_tree_hash_pair_with(&block, &inner_block, |bytes| { + BeaconBlock::from_ssz_bytes(bytes, spec) + }); + } + + #[test] + fn decode_base_and_altair() { + type E = MainnetEthSpec; + + let rng = &mut XorShiftRng::from_seed([42; 16]); + + let fork_epoch = Epoch::from_ssz_bytes(&[7, 6, 5, 4, 3, 2, 1, 0]).unwrap(); + + let base_epoch = fork_epoch.saturating_sub(1_u64); + let base_slot = base_epoch.end_slot(E::slots_per_epoch()); + let altair_epoch = fork_epoch; + let altair_slot = altair_epoch.start_slot(E::slots_per_epoch()); + + let mut spec = E::default_spec(); + spec.altair_fork_epoch = Some(fork_epoch); + + // BeaconBlockBase + { + let good_base_block = BeaconBlock::Base(BeaconBlockBase { + slot: base_slot, + ..<_>::random_for_test(rng) + }); + // It's invalid to have a base block with a slot higher than the fork epoch. + let bad_base_block = { + let mut bad = good_base_block.clone(); + *bad.slot_mut() = altair_slot; + bad + }; + + assert_eq!( + BeaconBlock::from_ssz_bytes(&good_base_block.as_ssz_bytes(), &spec) + .expect("good base block can be decoded"), + good_base_block + ); + BeaconBlock::from_ssz_bytes(&bad_base_block.as_ssz_bytes(), &spec) + .expect_err("bad base block cannot be decoded"); + } + + // BeaconBlockAltair + { + let good_altair_block = BeaconBlock::Altair(BeaconBlockAltair { + slot: altair_slot, + ..<_>::random_for_test(rng) + }); + // It's invalid to have an Altair block with a epoch lower than the fork epoch. + let bad_altair_block = { + let mut bad = good_altair_block.clone(); + *bad.slot_mut() = base_slot; + bad + }; + + assert_eq!( + BeaconBlock::from_ssz_bytes(&good_altair_block.as_ssz_bytes(), &spec) + .expect("good altair block can be decoded"), + good_altair_block + ); + BeaconBlock::from_ssz_bytes(&bad_altair_block.as_ssz_bytes(), &spec) + .expect_err("bad altair block cannot be decoded"); + } + } } diff --git a/consensus/types/src/beacon_block_body.rs b/consensus/types/src/beacon_block_body.rs index ef28307edc..1924ca14f4 100644 --- a/consensus/types/src/beacon_block_body.rs +++ b/consensus/types/src/beacon_block_body.rs @@ -1,18 +1,37 @@ use crate::test_utils::TestRandom; use crate::*; - use serde_derive::{Deserialize, Serialize}; use ssz_derive::{Decode, Encode}; use ssz_types::VariableList; +use superstruct::superstruct; use test_random_derive::TestRandom; use tree_hash_derive::TreeHash; /// The body of a `BeaconChain` block, containing operations. /// -/// Spec v0.12.1 -#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom)] +/// This *superstruct* abstracts over the hard-fork. +#[superstruct( + variants(Base, Altair), + variant_attributes( + derive( + Debug, + PartialEq, + Clone, + Serialize, + Deserialize, + Encode, + Decode, + TreeHash, + TestRandom + ), + serde(bound = "T: EthSpec", deny_unknown_fields), + cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary)) + ) +)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(untagged)] #[serde(bound = "T: EthSpec")] +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] pub struct BeaconBlockBody { pub randao_reveal: Signature, pub eth1_data: Eth1Data, @@ -22,11 +41,18 @@ pub struct BeaconBlockBody { pub attestations: VariableList, T::MaxAttestations>, pub deposits: VariableList, pub voluntary_exits: VariableList, + #[superstruct(only(Altair))] + pub sync_aggregate: SyncAggregate, } #[cfg(test)] mod tests { - use super::*; - - ssz_and_tree_hash_tests!(BeaconBlockBody); + mod base { + use super::super::*; + ssz_and_tree_hash_tests!(BeaconBlockBodyBase); + } + mod altair { + use super::super::*; + ssz_and_tree_hash_tests!(BeaconBlockBodyAltair); + } } diff --git a/consensus/types/src/beacon_block_header.rs b/consensus/types/src/beacon_block_header.rs index 82222b0358..64fbaef865 100644 --- a/consensus/types/src/beacon_block_header.rs +++ b/consensus/types/src/beacon_block_header.rs @@ -33,19 +33,6 @@ impl BeaconBlockHeader { Hash256::from_slice(&self.tree_hash_root()[..]) } - /// Given a `body`, consumes `self` and returns a complete `BeaconBlock`. - /// - /// Spec v0.12.1 - pub fn into_block(self, body: BeaconBlockBody) -> BeaconBlock { - BeaconBlock { - slot: self.slot, - proposer_index: self.proposer_index, - parent_root: self.parent_root, - state_root: self.state_root, - body, - } - } - /// Signs `self`, producing a `SignedBeaconBlockHeader`. pub fn sign( self, diff --git a/consensus/types/src/beacon_state.rs b/consensus/types/src/beacon_state.rs index fd1dba881b..dcdaf059c3 100644 --- a/consensus/types/src/beacon_state.rs +++ b/consensus/types/src/beacon_state.rs @@ -2,19 +2,21 @@ use self::committee_cache::get_active_validator_indices; use self::exit_cache::ExitCache; use crate::test_utils::TestRandom; use crate::*; - -use cached_tree_hash::{CacheArena, CachedTreeHash}; +use compare_fields::CompareFields; use compare_fields_derive::CompareFields; +use derivative::Derivative; use eth2_hashing::hash; use int_to_bytes::{int_to_bytes4, int_to_bytes8}; use pubkey_cache::PubkeyCache; use safe_arith::{ArithError, SafeArith}; use serde_derive::{Deserialize, Serialize}; -use ssz::{ssz_encode, Encode}; +use ssz::{ssz_encode, Decode, DecodeError, Encode}; use ssz_derive::{Decode, Encode}; use ssz_types::{typenum::Unsigned, BitVector, FixedVector}; +use std::collections::HashSet; use std::convert::TryInto; -use std::fmt; +use std::{fmt, mem}; +use superstruct::superstruct; use swap_or_not_shuffle::compute_shuffled_index; use test_random_derive::TestRandom; use tree_hash::TreeHash; @@ -40,13 +42,25 @@ const MAX_RANDOM_BYTE: u64 = (1 << 8) - 1; #[derive(Debug, PartialEq, Clone)] pub enum Error { + /// A state for a different hard-fork was required -- a severe logic error. + IncorrectStateVariant, EpochOutOfBounds, SlotOutOfBounds, - UnknownValidator(u64), + UnknownValidator(usize), UnableToDetermineProducer, InvalidBitfield, ValidatorIsWithdrawable, UnableToShuffle, + ShuffleIndexOutOfBounds(usize), + IsAggregatorOutOfBounds, + BlockRootsOutOfBounds(usize), + StateRootsOutOfBounds(usize), + SlashingsOutOfBounds(usize), + BalancesOutOfBounds(usize), + RandaoMixesOutOfBounds(usize), + CommitteeCachesOutOfBounds(usize), + ParticipationOutOfBounds(usize), + InactivityScoresOutOfBounds(usize), TooManyValidators, InsufficientValidators, InsufficientRandaoMixes, @@ -70,6 +84,8 @@ pub enum Error { RelativeEpochError(RelativeEpochError), ExitCacheUninitialized, CommitteeCacheUninitialized(Option), + SyncCommitteeCacheUninitialized, + BlsError(bls::Error), SszTypesError(ssz_types::Error), TreeHashCacheNotInitialized, NonLinearTreeHashCacheHistory, @@ -86,6 +102,8 @@ pub enum Error { deposit_count: u64, deposit_index: u64, }, + /// Attestation slipped through block processing with a non-matching source. + IncorrectAttestationSource, /// An arithmetic operation occurred which would have overflowed or divided by 0. /// /// This represents a serious bug in either the spec or Lighthouse! @@ -139,30 +157,45 @@ impl From for Hash256 { } /// The state of the `BeaconChain` at some slot. -/// -/// Spec v0.12.1 -#[derive( - Debug, - PartialEq, - Clone, - Serialize, - Deserialize, - TestRandom, - Encode, - Decode, - TreeHash, - CompareFields, +#[superstruct( + variants(Base, Altair), + variant_attributes( + derive( + Derivative, + Debug, + PartialEq, + Serialize, + Deserialize, + Encode, + Decode, + TreeHash, + TestRandom, + CompareFields, + ), + serde(bound = "T: EthSpec", deny_unknown_fields), + derivative(Clone), + cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary)) + ), + cast_error(ty = "Error", expr = "Error::IncorrectStateVariant"), + partial_getter_error(ty = "Error", expr = "Error::IncorrectStateVariant") )] +#[derive(Debug, PartialEq, Serialize, Deserialize, Encode, TreeHash)] +#[serde(untagged)] #[serde(bound = "T: EthSpec")] +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] pub struct BeaconState where T: EthSpec, { // Versioning + #[superstruct(getter(copy))] #[serde(with = "serde_utils::quoted_u64")] pub genesis_time: u64, + #[superstruct(getter(copy))] pub genesis_validators_root: Hash256, + #[superstruct(getter(copy))] pub slot: Slot, + #[superstruct(getter(copy))] pub fork: Fork, // History @@ -176,6 +209,7 @@ where // Ethereum 1.0 chain data pub eth1_data: Eth1Data, pub eth1_data_votes: VariableList, + #[superstruct(getter(copy))] #[serde(with = "serde_utils::quoted_u64")] pub eth1_deposit_index: u64, @@ -193,52 +227,81 @@ where #[serde(with = "ssz_types::serde_utils::quoted_u64_fixed_vec")] pub slashings: FixedVector, - // Attestations + // Attestations (genesis fork only) + #[superstruct(only(Base))] pub previous_epoch_attestations: VariableList, T::MaxPendingAttestations>, + #[superstruct(only(Base))] pub current_epoch_attestations: VariableList, T::MaxPendingAttestations>, + // Participation (Altair and later) + #[superstruct(only(Altair))] + pub previous_epoch_participation: VariableList, + #[superstruct(only(Altair))] + pub current_epoch_participation: VariableList, + // Finality #[test_random(default)] pub justification_bits: BitVector, + #[superstruct(getter(copy))] pub previous_justified_checkpoint: Checkpoint, + #[superstruct(getter(copy))] pub current_justified_checkpoint: Checkpoint, + #[superstruct(getter(copy))] pub finalized_checkpoint: Checkpoint, + // Inactivity + #[superstruct(only(Altair))] + pub inactivity_scores: VariableList, + + // Light-client sync committees + #[superstruct(only(Altair))] + pub current_sync_committee: SyncCommittee, + #[superstruct(only(Altair))] + pub next_sync_committee: SyncCommittee, + // Caching (not in the spec) #[serde(skip_serializing, skip_deserializing)] #[ssz(skip_serializing)] #[ssz(skip_deserializing)] #[tree_hash(skip_hashing)] #[test_random(default)] + #[derivative(Clone(clone_with = "clone_default"))] pub committee_caches: [CommitteeCache; CACHED_EPOCHS], #[serde(skip_serializing, skip_deserializing)] #[ssz(skip_serializing)] #[ssz(skip_deserializing)] #[tree_hash(skip_hashing)] #[test_random(default)] + #[derivative(Clone(clone_with = "clone_default"))] pub pubkey_cache: PubkeyCache, #[serde(skip_serializing, skip_deserializing)] #[ssz(skip_serializing)] #[ssz(skip_deserializing)] #[tree_hash(skip_hashing)] #[test_random(default)] + #[derivative(Clone(clone_with = "clone_default"))] pub exit_cache: ExitCache, #[serde(skip_serializing, skip_deserializing)] #[ssz(skip_serializing)] #[ssz(skip_deserializing)] #[tree_hash(skip_hashing)] #[test_random(default)] - pub tree_hash_cache: Option>, + #[derivative(Clone(clone_with = "clone_default"))] + pub tree_hash_cache: BeaconTreeHashCache, +} + +impl Clone for BeaconState { + fn clone(&self) -> Self { + self.clone_with(CloneConfig::all()) + } } impl BeaconState { /// Create a new BeaconState suitable for genesis. /// /// Not a complete genesis state, see `initialize_beacon_state_from_eth1`. - /// - /// Spec v0.12.1 pub fn new(genesis_time: u64, eth1_data: Eth1Data, spec: &ChainSpec) -> Self { - BeaconState { + BeaconState::Base(BeaconStateBase { // Versioning genesis_time, genesis_validators_root: Hash256::zero(), // Set later. @@ -288,7 +351,55 @@ impl BeaconState { ], pubkey_cache: PubkeyCache::default(), exit_cache: ExitCache::default(), - tree_hash_cache: None, + tree_hash_cache: <_>::default(), + }) + } + + /// Returns the name of the fork pertaining to `self`. + /// + /// Will return an `Err` if `self` has been instantiated to a variant conflicting with the fork + /// dictated by `self.slot()`. + pub fn fork_name(&self, spec: &ChainSpec) -> Result { + let fork_at_slot = spec.fork_name_at_epoch(self.current_epoch()); + let object_fork = match self { + BeaconState::Base { .. } => ForkName::Base, + BeaconState::Altair { .. } => ForkName::Altair, + }; + + if fork_at_slot == object_fork { + Ok(object_fork) + } else { + Err(InconsistentFork { + fork_at_slot, + object_fork, + }) + } + } + + /// Specialised deserialisation method that uses the `ChainSpec` as context. + #[allow(clippy::integer_arithmetic)] + pub fn from_ssz_bytes(bytes: &[u8], spec: &ChainSpec) -> Result { + // Slot is after genesis_time (u64) and genesis_validators_root (Hash256). + let slot_start = ::ssz_fixed_len() + ::ssz_fixed_len(); + let slot_end = slot_start + ::ssz_fixed_len(); + + let slot_bytes = bytes + .get(slot_start..slot_end) + .ok_or(DecodeError::InvalidByteLength { + len: bytes.len(), + expected: slot_end, + })?; + + let slot = Slot::from_ssz_bytes(slot_bytes)?; + let epoch = slot.epoch(T::slots_per_epoch()); + + if spec + .altair_fork_epoch + .map_or(true, |altair_epoch| epoch < altair_epoch) + { + BeaconStateBase::from_ssz_bytes(bytes).map(Self::Base) + } else { + BeaconStateAltair::from_ssz_bytes(bytes).map(Self::Altair) } } @@ -301,8 +412,8 @@ impl BeaconState { pub fn historical_batch(&self) -> HistoricalBatch { HistoricalBatch { - block_roots: self.block_roots.clone(), - state_roots: self.state_roots.clone(), + block_roots: self.block_roots().clone(), + state_roots: self.state_roots().clone(), } } @@ -311,21 +422,17 @@ impl BeaconState { /// otherwise returns `None`. pub fn get_validator_index(&mut self, pubkey: &PublicKeyBytes) -> Result, Error> { self.update_pubkey_cache()?; - Ok(self.pubkey_cache.get(pubkey)) + Ok(self.pubkey_cache().get(pubkey)) } - /// The epoch corresponding to `self.slot`. - /// - /// Spec v0.12.1 + /// The epoch corresponding to `self.slot()`. pub fn current_epoch(&self) -> Epoch { - self.slot.epoch(T::slots_per_epoch()) + self.slot().epoch(T::slots_per_epoch()) } /// The epoch prior to `self.current_epoch()`. /// /// If the current epoch is the genesis epoch, the genesis_epoch is returned. - /// - /// Spec v0.12.1 pub fn previous_epoch(&self) -> Epoch { let current_epoch = self.current_epoch(); if current_epoch > T::genesis_epoch() { @@ -379,8 +486,6 @@ impl BeaconState { /// Returns the active validator indices for the given epoch. /// /// Does not utilize the cache, performs a full iteration over the validator registry. - /// - /// Spec v0.12.1 pub fn get_active_validator_indices( &self, epoch: Epoch, @@ -389,7 +494,7 @@ impl BeaconState { if epoch >= self.compute_activation_exit_epoch(self.current_epoch(), spec)? { Err(BeaconStateError::EpochOutOfBounds) } else { - Ok(get_active_validator_indices(&self.validators, epoch)) + Ok(get_active_validator_indices(self.validators(), epoch)) } } @@ -455,7 +560,7 @@ impl BeaconState { /// shuffling. It should be set to the latest block applied to `self` or the genesis block root. pub fn proposer_shuffling_decision_root(&self, block_root: Hash256) -> Result { let decision_slot = self.proposer_shuffling_decision_slot(); - if self.slot == decision_slot { + if self.slot() == decision_slot { Ok(block_root) } else { self.get_block_root(decision_slot).map(|root| *root) @@ -483,7 +588,7 @@ impl BeaconState { relative_epoch: RelativeEpoch, ) -> Result { let decision_slot = self.attester_shuffling_decision_slot(relative_epoch); - if self.slot == decision_slot { + if self.slot() == decision_slot { Ok(block_root) } else { self.get_block_root(decision_slot).map(|root| *root) @@ -503,9 +608,6 @@ impl BeaconState { } /// Compute the proposer (not necessarily for the Beacon chain) from a list of indices. - /// - /// Spec v0.12.1 - // NOTE: be sure to test this bad boy. pub fn compute_proposer_index( &self, indices: &[usize], @@ -518,20 +620,18 @@ impl BeaconState { let mut i = 0; loop { - let candidate_index = indices[compute_shuffled_index( + let shuffled_index = compute_shuffled_index( i.safe_rem(indices.len())?, indices.len(), seed, spec.shuffle_round_count, ) - .ok_or(Error::UnableToShuffle)?]; - let random_byte = { - let mut preimage = seed.to_vec(); - preimage.append(&mut int_to_bytes8(i.safe_div(32)? as u64)); - let hash = hash(&preimage); - hash[i.safe_rem(32)?] - }; - let effective_balance = self.validators[candidate_index].effective_balance; + .ok_or(Error::UnableToShuffle)?; + let candidate_index = *indices + .get(shuffled_index) + .ok_or(Error::ShuffleIndexOutOfBounds(shuffled_index))?; + let random_byte = Self::shuffling_random_byte(i, seed)?; + let effective_balance = self.get_effective_balance(candidate_index)?; if effective_balance.safe_mul(MAX_RANDOM_BYTE)? >= spec .max_effective_balance @@ -543,6 +643,19 @@ impl BeaconState { } } + /// Get a random byte from the given `seed`. + /// + /// Used by the proposer & sync committee selection functions. + fn shuffling_random_byte(i: usize, seed: &[u8]) -> Result { + let mut preimage = seed.to_vec(); + preimage.append(&mut int_to_bytes8(i.safe_div(32)? as u64)); + let index = i.safe_rem(32)?; + hash(&preimage) + .get(index) + .copied() + .ok_or(Error::ShuffleIndexOutOfBounds(index)) + } + /// Return `true` if the validator who produced `slot_signature` is eligible to aggregate. /// /// Spec v0.12.1 @@ -560,9 +673,10 @@ impl BeaconState { ); let signature_hash = hash(&slot_signature.as_ssz_bytes()); let signature_hash_int = u64::from_le_bytes( - signature_hash[0..8] - .try_into() - .expect("first 8 bytes of signature should always convert to fixed array"), + signature_hash + .get(0..8) + .and_then(|bytes| bytes.try_into().ok()) + .ok_or(Error::IsAggregatorOutOfBounds)?, ); Ok(signature_hash_int.safe_rem(modulo)? == 0) @@ -606,7 +720,7 @@ impl BeaconState { /// Compute the seed to use for the beacon proposer selection at the given `slot`. /// /// Spec v0.12.1 - fn get_beacon_proposer_seed(&self, slot: Slot, spec: &ChainSpec) -> Result, Error> { + pub fn get_beacon_proposer_seed(&self, slot: Slot, spec: &ChainSpec) -> Result, Error> { let epoch = slot.epoch(T::slots_per_epoch()); let mut preimage = self .get_seed(epoch, Domain::BeaconProposer, spec)? @@ -616,18 +730,94 @@ impl BeaconState { Ok(hash(&preimage)) } + /// Get the validator indices of all validators from `sync_committee`. + pub fn get_sync_committee_indices( + &mut self, + sync_committee: &SyncCommittee, + ) -> Result, Error> { + sync_committee + .pubkeys + .iter() + .map(|pubkey| { + self.get_validator_index(&pubkey)? + .ok_or(Error::PubkeyCacheInconsistent) + }) + .collect() + } + + /// Compute the sync committee indices for the next sync committee. + fn get_next_sync_committee_indices(&self, spec: &ChainSpec) -> Result, Error> { + let epoch = self.current_epoch().safe_add(1)?; + + let active_validator_indices = self.get_active_validator_indices(epoch, spec)?; + let active_validator_count = active_validator_indices.len(); + + let seed = self.get_seed(epoch, Domain::SyncCommittee, spec)?; + + let mut i = 0; + let mut sync_committee_indices = Vec::with_capacity(T::SyncCommitteeSize::to_usize()); + while sync_committee_indices.len() < T::SyncCommitteeSize::to_usize() { + let shuffled_index = compute_shuffled_index( + i.safe_rem(active_validator_count)?, + active_validator_count, + seed.as_bytes(), + spec.shuffle_round_count, + ) + .ok_or(Error::UnableToShuffle)?; + let candidate_index = *active_validator_indices + .get(shuffled_index) + .ok_or(Error::ShuffleIndexOutOfBounds(shuffled_index))?; + let random_byte = Self::shuffling_random_byte(i, seed.as_bytes())?; + let effective_balance = self.get_validator(candidate_index)?.effective_balance; + if effective_balance.safe_mul(MAX_RANDOM_BYTE)? + >= spec + .max_effective_balance + .safe_mul(u64::from(random_byte))? + { + sync_committee_indices.push(candidate_index); + } + i.safe_add_assign(1)?; + } + Ok(sync_committee_indices) + } + + /// Compute the next sync committee. + pub fn get_next_sync_committee(&self, spec: &ChainSpec) -> Result, Error> { + let sync_committee_indices = self.get_next_sync_committee_indices(spec)?; + + let pubkeys = sync_committee_indices + .iter() + .map(|&index| { + self.validators() + .get(index) + .map(|v| v.pubkey) + .ok_or(Error::UnknownValidator(index)) + }) + .collect::, _>>()?; + let decompressed_pubkeys = pubkeys + .iter() + .map(|pk| pk.decompress()) + .collect::, _>>()?; + let aggregate_pubkey = AggregatePublicKey::aggregate(&decompressed_pubkeys)?; + + Ok(SyncCommittee { + pubkeys: FixedVector::new(pubkeys)?, + aggregate_pubkey: aggregate_pubkey.to_public_key().compress(), + }) + } + /// Get the canonical root of the `latest_block_header`, filling in its state root if necessary. /// /// It needs filling in on all slots where there isn't a skip. /// /// Spec v0.12.1 pub fn get_latest_block_root(&self, current_state_root: Hash256) -> Hash256 { - if self.latest_block_header.state_root.is_zero() { - let mut latest_block_header = self.latest_block_header.clone(); + if self.latest_block_header().state_root.is_zero() { + let mut latest_block_header = self.latest_block_header().clone(); latest_block_header.state_root = current_state_root; latest_block_header.canonical_root() } else { - self.latest_block_header.canonical_root() + self.latest_block_header().canonical_root() } } @@ -635,8 +825,8 @@ impl BeaconState { /// /// Spec v0.12.1 fn get_latest_block_roots_index(&self, slot: Slot) -> Result { - if slot < self.slot && self.slot <= slot.safe_add(self.block_roots.len() as u64)? { - Ok(slot.as_usize().safe_rem(self.block_roots.len())?) + if slot < self.slot() && self.slot() <= slot.safe_add(self.block_roots().len() as u64)? { + Ok(slot.as_usize().safe_rem(self.block_roots().len())?) } else { Err(BeaconStateError::SlotOutOfBounds) } @@ -650,37 +840,37 @@ impl BeaconState { } /// Return the block root at a recent `slot`. - /// - /// Spec v0.12.1 pub fn get_block_root(&self, slot: Slot) -> Result<&Hash256, BeaconStateError> { let i = self.get_latest_block_roots_index(slot)?; - Ok(&self.block_roots[i]) + self.block_roots() + .get(i) + .ok_or(Error::BlockRootsOutOfBounds(i)) } /// Return the block root at a recent `epoch`. /// - /// Spec v0.12.1 - // NOTE: the spec calls this get_block_root + /// Note that the spec calls this `get_block_root`. pub fn get_block_root_at_epoch(&self, epoch: Epoch) -> Result<&Hash256, BeaconStateError> { self.get_block_root(epoch.start_slot(T::slots_per_epoch())) } /// Sets the block root for some given slot. - /// - /// Spec v0.12.1 pub fn set_block_root( &mut self, slot: Slot, block_root: Hash256, ) -> Result<(), BeaconStateError> { let i = self.get_latest_block_roots_index(slot)?; - self.block_roots[i] = block_root; + *self + .block_roots_mut() + .get_mut(i) + .ok_or(Error::BlockRootsOutOfBounds(i))? = block_root; Ok(()) } /// Fill `randao_mixes` with pub fn fill_randao_mixes_with(&mut self, index_root: Hash256) { - self.randao_mixes = FixedVector::from_elem(index_root); + *self.randao_mixes_mut() = FixedVector::from_elem(index_root); } /// Safely obtains the index for `randao_mixes` @@ -708,8 +898,6 @@ impl BeaconState { /// # Errors: /// /// See `Self::get_randao_mix`. - /// - /// Spec v0.12.1 pub fn update_randao_mix(&mut self, epoch: Epoch, signature: &Signature) -> Result<(), Error> { let i = epoch .as_usize() @@ -717,17 +905,21 @@ impl BeaconState { let signature_hash = Hash256::from_slice(&hash(&ssz_encode(signature))); - self.randao_mixes[i] = *self.get_randao_mix(epoch)? ^ signature_hash; + *self + .randao_mixes_mut() + .get_mut(i) + .ok_or(Error::RandaoMixesOutOfBounds(i))? = + *self.get_randao_mix(epoch)? ^ signature_hash; Ok(()) } /// Return the randao mix at a recent ``epoch``. - /// - /// Spec v0.12.1 pub fn get_randao_mix(&self, epoch: Epoch) -> Result<&Hash256, Error> { let i = self.get_randao_mix_index(epoch, AllowNextEpoch::False)?; - Ok(&self.randao_mixes[i]) + self.randao_mixes() + .get(i) + .ok_or(Error::RandaoMixesOutOfBounds(i)) } /// Set the randao mix at a recent ``epoch``. @@ -735,7 +927,10 @@ impl BeaconState { /// Spec v0.12.1 pub fn set_randao_mix(&mut self, epoch: Epoch, mix: Hash256) -> Result<(), Error> { let i = self.get_randao_mix_index(epoch, AllowNextEpoch::True)?; - self.randao_mixes[i] = mix; + *self + .randao_mixes_mut() + .get_mut(i) + .ok_or(Error::RandaoMixesOutOfBounds(i))? = mix; Ok(()) } @@ -743,60 +938,44 @@ impl BeaconState { /// /// Spec v0.12.1 fn get_latest_state_roots_index(&self, slot: Slot) -> Result { - if slot < self.slot && self.slot <= slot.safe_add(self.state_roots.len() as u64)? { - Ok(slot.as_usize().safe_rem(self.state_roots.len())?) + if slot < self.slot() && self.slot() <= slot.safe_add(self.state_roots().len() as u64)? { + Ok(slot.as_usize().safe_rem(self.state_roots().len())?) } else { Err(BeaconStateError::SlotOutOfBounds) } } /// Gets the state root for some slot. - /// - /// Spec v0.12.1 pub fn get_state_root(&self, slot: Slot) -> Result<&Hash256, Error> { let i = self.get_latest_state_roots_index(slot)?; - Ok(&self.state_roots[i]) + self.state_roots() + .get(i) + .ok_or(Error::StateRootsOutOfBounds(i)) } /// Gets the oldest (earliest slot) state root. - /// - /// Spec v0.12.1 pub fn get_oldest_state_root(&self) -> Result<&Hash256, Error> { - let i = - self.get_latest_state_roots_index(self.slot.saturating_sub(self.state_roots.len()))?; - Ok(&self.state_roots[i]) + let oldest_slot = self.slot().saturating_sub(self.state_roots().len()); + self.get_state_root(oldest_slot) } /// Gets the oldest (earliest slot) block root. - /// - /// Spec v0.12.1 pub fn get_oldest_block_root(&self) -> Result<&Hash256, Error> { - let i = self.get_latest_block_roots_index( - self.slot.saturating_sub(self.block_roots.len() as u64), - )?; - Ok(&self.block_roots[i]) - } - - pub fn get_block_state_roots( - &self, - slot: Slot, - ) -> Result<(SignedBeaconBlockHash, BeaconStateHash), Error> { - let i = self.get_latest_block_roots_index(slot)?; - Ok((self.block_roots[i].into(), self.state_roots[i].into())) + let oldest_slot = self.slot().saturating_sub(self.block_roots().len()); + self.get_block_root(oldest_slot) } /// Sets the latest state root for slot. - /// - /// Spec v0.12.1 pub fn set_state_root(&mut self, slot: Slot, state_root: Hash256) -> Result<(), Error> { let i = self.get_latest_state_roots_index(slot)?; - self.state_roots[i] = state_root; + *self + .state_roots_mut() + .get_mut(i) + .ok_or(Error::StateRootsOutOfBounds(i))? = state_root; Ok(()) } /// Safely obtain the index for `slashings`, given some `epoch`. - /// - /// Spec v0.12.1 fn get_slashings_index( &self, epoch: Epoch, @@ -817,48 +996,38 @@ impl BeaconState { } /// Get a reference to the entire `slashings` vector. - /// - /// Spec v0.12.1 pub fn get_all_slashings(&self) -> &[u64] { - &self.slashings + self.slashings() } /// Get the total slashed balances for some epoch. - /// - /// Spec v0.12.1 pub fn get_slashings(&self, epoch: Epoch) -> Result { let i = self.get_slashings_index(epoch, AllowNextEpoch::False)?; - Ok(self.slashings[i]) + self.slashings() + .get(i) + .copied() + .ok_or(Error::SlashingsOutOfBounds(i)) } /// Set the total slashed balances for some epoch. - /// - /// Spec v0.12.1 pub fn set_slashings(&mut self, epoch: Epoch, value: u64) -> Result<(), Error> { let i = self.get_slashings_index(epoch, AllowNextEpoch::True)?; - self.slashings[i] = value; + *self + .slashings_mut() + .get_mut(i) + .ok_or(Error::SlashingsOutOfBounds(i))? = value; Ok(()) } - /// Get the attestations from the current or previous epoch. - /// - /// Spec v0.12.1 - pub fn get_matching_source_attestations( - &self, - epoch: Epoch, - ) -> Result<&[PendingAttestation], Error> { - if epoch == self.current_epoch() { - Ok(&self.current_epoch_attestations) - } else if epoch == self.previous_epoch() { - Ok(&self.previous_epoch_attestations) - } else { - Err(Error::EpochOutOfBounds) + /// Convenience accessor for validators and balances simultaneously. + pub fn validators_and_balances_mut(&mut self) -> (&mut [Validator], &mut [u64]) { + match self { + BeaconState::Base(state) => (&mut state.validators, &mut state.balances), + BeaconState::Altair(state) => (&mut state.validators, &mut state.balances), } } /// Generate a seed for the given `epoch`. - /// - /// Spec v0.12.1 pub fn get_seed( &self, epoch: Epoch, @@ -872,7 +1041,10 @@ impl BeaconState { .safe_add(T::EpochsPerHistoricalVector::to_u64())? .safe_sub(spec.min_seed_lookahead)? .safe_sub(1)?; - self.randao_mixes[i.as_usize().safe_rem(self.randao_mixes.len())?] + let i_mod = i.as_usize().safe_rem(self.randao_mixes().len())?; + self.randao_mixes() + .get(i_mod) + .ok_or(Error::RandaoMixesOutOfBounds(i_mod))? }; let domain_bytes = int_to_bytes4(spec.get_domain_constant(domain_type)); let epoch_bytes = int_to_bytes8(epoch.as_u64()); @@ -890,18 +1062,50 @@ impl BeaconState { Ok(Hash256::from_slice(&hash(&preimage))) } - /// Return the effective balance (also known as "balance at stake") for a validator with the given ``index``. - /// - /// Spec v0.12.1 - pub fn get_effective_balance( - &self, - validator_index: usize, - _spec: &ChainSpec, - ) -> Result { - self.validators + /// Safe indexer for the `validators` list. + pub fn get_validator(&self, validator_index: usize) -> Result<&Validator, Error> { + self.validators() .get(validator_index) + .ok_or(Error::UnknownValidator(validator_index)) + } + + /// Safe mutator for the `validators` list. + pub fn get_validator_mut(&mut self, validator_index: usize) -> Result<&mut Validator, Error> { + self.validators_mut() + .get_mut(validator_index) + .ok_or(Error::UnknownValidator(validator_index)) + } + + /// Return the effective balance for a validator with the given `validator_index`. + pub fn get_effective_balance(&self, validator_index: usize) -> Result { + self.get_validator(validator_index) .map(|v| v.effective_balance) - .ok_or_else(|| Error::UnknownValidator(validator_index as u64)) + } + + /// Get the inactivity score for a single validator. + /// + /// Will error if the state lacks an `inactivity_scores` field. + pub fn get_inactivity_score(&self, validator_index: usize) -> Result { + self.inactivity_scores()? + .get(validator_index) + .copied() + .ok_or(Error::InactivityScoresOutOfBounds(validator_index)) + } + + /// Get a mutable reference to the inactivity score for a single validator. + /// + /// Will error if the state lacks an `inactivity_scores` field. + pub fn get_inactivity_score_mut(&mut self, validator_index: usize) -> Result<&mut u64, Error> { + self.inactivity_scores_mut()? + .get_mut(validator_index) + .ok_or(Error::InactivityScoresOutOfBounds(validator_index)) + } + + /// Get a mutable reference to the balance of a single validator. + pub fn get_balance_mut(&mut self, validator_index: usize) -> Result<&mut u64, Error> { + self.balances_mut() + .get_mut(validator_index) + .ok_or(Error::BalancesOutOfBounds(validator_index)) } /// Return the epoch at which an activation or exit triggered in ``epoch`` takes effect. @@ -946,38 +1150,71 @@ impl BeaconState { Ok(cache.get_attestation_duties(validator_index)) } - /// Return the combined effective balance of an array of validators. + /// Implementation of `get_total_balance`, matching the spec. /// - /// Spec v0.12.1 - pub fn get_total_balance( - &self, - validator_indices: &[usize], + /// Returns minimum `EFFECTIVE_BALANCE_INCREMENT`, to avoid div by 0. + pub fn get_total_balance<'a, I: IntoIterator>( + &'a self, + validator_indices: I, spec: &ChainSpec, ) -> Result { - validator_indices.iter().try_fold(0_u64, |acc, i| { - self.get_effective_balance(*i, spec) + let total_balance = validator_indices.into_iter().try_fold(0_u64, |acc, i| { + self.get_effective_balance(*i) .and_then(|bal| Ok(acc.safe_add(bal)?)) - }) + })?; + Ok(std::cmp::max( + total_balance, + spec.effective_balance_increment, + )) + } + + /// Implementation of `get_total_active_balance`, matching the spec. + pub fn get_total_active_balance(&self, spec: &ChainSpec) -> Result { + // Order is irrelevant, so use the cached indices. + self.get_total_balance( + self.get_cached_active_validator_indices(RelativeEpoch::Current)?, + spec, + ) + } + + /// Get a mutable reference to the epoch participation flags for `epoch`. + pub fn get_epoch_participation_mut( + &mut self, + epoch: Epoch, + ) -> Result<&mut VariableList, Error> { + if epoch == self.current_epoch() { + match self { + BeaconState::Base(_) => Err(BeaconStateError::IncorrectStateVariant), + BeaconState::Altair(state) => Ok(&mut state.current_epoch_participation), + } + } else if epoch == self.previous_epoch() { + match self { + BeaconState::Base(_) => Err(BeaconStateError::IncorrectStateVariant), + BeaconState::Altair(state) => Ok(&mut state.previous_epoch_participation), + } + } else { + Err(BeaconStateError::EpochOutOfBounds) + } } /// Get the number of outstanding deposits. /// /// Returns `Err` if the state is invalid. pub fn get_outstanding_deposit_len(&self) -> Result { - self.eth1_data + self.eth1_data() .deposit_count - .checked_sub(self.eth1_deposit_index) + .checked_sub(self.eth1_deposit_index()) .ok_or(Error::InvalidDepositState { - deposit_count: self.eth1_data.deposit_count, - deposit_index: self.eth1_deposit_index, + deposit_count: self.eth1_data().deposit_count, + deposit_index: self.eth1_deposit_index(), }) } - /// Build all the caches, if they need to be built. + /// Build all caches (except the tree hash cache), if they need to be built. pub fn build_all_caches(&mut self, spec: &ChainSpec) -> Result<(), Error> { self.build_all_committee_caches(spec)?; self.update_pubkey_cache()?; - self.exit_cache.build(&self.validators, spec)?; + self.build_exit_cache(spec)?; Ok(()) } @@ -990,21 +1227,32 @@ impl BeaconState { Ok(()) } + /// Build the exit cache, if it needs to be built. + pub fn build_exit_cache(&mut self, spec: &ChainSpec) -> Result<(), Error> { + if self.exit_cache().check_initialized().is_err() { + *self.exit_cache_mut() = ExitCache::new(self.validators(), spec)?; + } + Ok(()) + } + /// Drop all caches on the state. - pub fn drop_all_caches(&mut self) { - self.drop_committee_cache(RelativeEpoch::Previous); - self.drop_committee_cache(RelativeEpoch::Current); - self.drop_committee_cache(RelativeEpoch::Next); + pub fn drop_all_caches(&mut self) -> Result<(), Error> { + self.drop_committee_cache(RelativeEpoch::Previous)?; + self.drop_committee_cache(RelativeEpoch::Current)?; + self.drop_committee_cache(RelativeEpoch::Next)?; self.drop_pubkey_cache(); self.drop_tree_hash_cache(); - self.exit_cache = ExitCache::default(); + *self.exit_cache_mut() = ExitCache::default(); + Ok(()) } /// Returns `true` if the committee cache for `relative_epoch` is built and ready to use. pub fn committee_cache_is_initialized(&self, relative_epoch: RelativeEpoch) -> bool { let i = Self::committee_cache_index(relative_epoch); - self.committee_caches[i].is_initialized_at(relative_epoch.into_epoch(self.current_epoch())) + self.committee_cache_at_index(i).map_or(false, |cache| { + cache.is_initialized_at(relative_epoch.into_epoch(self.current_epoch())) + }) } /// Build an epoch cache, unless it is has already been built. @@ -1014,10 +1262,11 @@ impl BeaconState { spec: &ChainSpec, ) -> Result<(), Error> { let i = Self::committee_cache_index(relative_epoch); + let is_initialized = self + .committee_cache_at_index(i)? + .is_initialized_at(relative_epoch.into_epoch(self.current_epoch())); - if self.committee_caches[i] - .is_initialized_at(relative_epoch.into_epoch(self.current_epoch())) - { + if is_initialized { Ok(()) } else { self.force_build_committee_cache(relative_epoch, spec) @@ -1031,9 +1280,9 @@ impl BeaconState { spec: &ChainSpec, ) -> Result<(), Error> { let epoch = relative_epoch.into_epoch(self.current_epoch()); + let i = Self::committee_cache_index(relative_epoch); - self.committee_caches[Self::committee_cache_index(relative_epoch)] = - CommitteeCache::initialized(&self, epoch, spec)?; + *self.committee_cache_at_index_mut(i)? = CommitteeCache::initialized(&self, epoch, spec)?; Ok(()) } @@ -1042,12 +1291,12 @@ impl BeaconState { /// This should be used if the `slot` of this state is advanced beyond an epoch boundary. /// /// Note: whilst this function will preserve already-built caches, it will not build any. - pub fn advance_caches(&mut self) { - let caches = &mut self.committee_caches[..]; - caches.rotate_left(1); + pub fn advance_caches(&mut self) -> Result<(), Error> { + self.committee_caches_mut().rotate_left(1); let next = Self::committee_cache_index(RelativeEpoch::Next); - caches[next] = CommitteeCache::default(); + *self.committee_cache_at_index_mut(next)? = CommitteeCache::default(); + Ok(()) } fn committee_cache_index(relative_epoch: RelativeEpoch) -> usize { @@ -1067,10 +1316,25 @@ impl BeaconState { self.committee_cache(relative_epoch) } + /// Get the committee cache at a given index. + fn committee_cache_at_index(&self, index: usize) -> Result<&CommitteeCache, Error> { + self.committee_caches() + .get(index) + .ok_or(Error::CommitteeCachesOutOfBounds(index)) + } + + /// Get a mutable reference to the committee cache at a given index. + fn committee_cache_at_index_mut(&mut self, index: usize) -> Result<&mut CommitteeCache, Error> { + self.committee_caches_mut() + .get_mut(index) + .ok_or(Error::CommitteeCachesOutOfBounds(index)) + } + /// Returns the cache for some `RelativeEpoch`. Returns an error if the cache has not been /// initialized. pub fn committee_cache(&self, relative_epoch: RelativeEpoch) -> Result<&CommitteeCache, Error> { - let cache = &self.committee_caches[Self::committee_cache_index(relative_epoch)]; + let i = Self::committee_cache_index(relative_epoch); + let cache = self.committee_cache_at_index(i)?; if cache.is_initialized_at(relative_epoch.into_epoch(self.current_epoch())) { Ok(cache) @@ -1080,9 +1344,10 @@ impl BeaconState { } /// Drops the cache, leaving it in an uninitialized state. - fn drop_committee_cache(&mut self, relative_epoch: RelativeEpoch) { - self.committee_caches[Self::committee_cache_index(relative_epoch)] = + pub fn drop_committee_cache(&mut self, relative_epoch: RelativeEpoch) -> Result<(), Error> { + *self.committee_cache_at_index_mut(Self::committee_cache_index(relative_epoch))? = CommitteeCache::default(); + Ok(()) } /// Updates the pubkey cache, if required. @@ -1090,30 +1355,32 @@ impl BeaconState { /// Adds all `pubkeys` from the `validators` which are not already in the cache. Will /// never re-add a pubkey. pub fn update_pubkey_cache(&mut self) -> Result<(), Error> { + let mut pubkey_cache = mem::take(self.pubkey_cache_mut()); for (i, validator) in self - .validators + .validators() .iter() .enumerate() - .skip(self.pubkey_cache.len()) + .skip(pubkey_cache.len()) { - let success = self.pubkey_cache.insert(validator.pubkey, i); + let success = pubkey_cache.insert(validator.pubkey, i); if !success { return Err(Error::PubkeyCacheInconsistent); } } + *self.pubkey_cache_mut() = pubkey_cache; Ok(()) } /// Completely drops the `pubkey_cache`, replacing it with a new, empty cache. pub fn drop_pubkey_cache(&mut self) { - self.pubkey_cache = PubkeyCache::default() + *self.pubkey_cache_mut() = PubkeyCache::default() } /// Initialize but don't fill the tree hash cache, if it isn't already initialized. pub fn initialize_tree_hash_cache(&mut self) { - if self.tree_hash_cache.is_none() { - self.tree_hash_cache = Some(BeaconTreeHashCache::new(self)) + if !self.tree_hash_cache().is_initialized() { + *self.tree_hash_cache_mut() = BeaconTreeHashCache::new(self) } } @@ -1123,13 +1390,13 @@ impl BeaconState { pub fn update_tree_hash_cache(&mut self) -> Result { self.initialize_tree_hash_cache(); - let cache = self.tree_hash_cache.take(); + let cache = self.tree_hash_cache_mut().take(); if let Some(mut cache) = cache { // Note: we return early if the tree hash fails, leaving `self.tree_hash_cache` as // None. There's no need to keep a cache that fails. let root = cache.recalculate_tree_hash_root(&self)?; - self.tree_hash_cache = Some(cache); + self.tree_hash_cache_mut().restore(cache); Ok(root) } else { Err(Error::TreeHashCacheNotInitialized) @@ -1142,13 +1409,13 @@ impl BeaconState { pub fn update_validators_tree_hash_cache(&mut self) -> Result { self.initialize_tree_hash_cache(); - let cache = self.tree_hash_cache.take(); + let cache = self.tree_hash_cache_mut().take(); if let Some(mut cache) = cache { // Note: we return early if the tree hash fails, leaving `self.tree_hash_cache` as // None. There's no need to keep a cache that fails. - let root = cache.recalculate_validators_tree_hash_root(&self.validators)?; - self.tree_hash_cache = Some(cache); + let root = cache.recalculate_validators_tree_hash_root(self.validators())?; + self.tree_hash_cache_mut().restore(cache); Ok(root) } else { Err(Error::TreeHashCacheNotInitialized) @@ -1157,80 +1424,95 @@ impl BeaconState { /// Completely drops the tree hash cache, replacing it with a new, empty cache. pub fn drop_tree_hash_cache(&mut self) { - self.tree_hash_cache = None; + self.tree_hash_cache_mut().uninitialize(); } /// Clone the state whilst preserving only the selected caches. pub fn clone_with(&self, config: CloneConfig) -> Self { - BeaconState { - genesis_time: self.genesis_time, - genesis_validators_root: self.genesis_validators_root, - slot: self.slot, - fork: self.fork, - latest_block_header: self.latest_block_header.clone(), - block_roots: self.block_roots.clone(), - state_roots: self.state_roots.clone(), - historical_roots: self.historical_roots.clone(), - eth1_data: self.eth1_data.clone(), - eth1_data_votes: self.eth1_data_votes.clone(), - eth1_deposit_index: self.eth1_deposit_index, - validators: self.validators.clone(), - balances: self.balances.clone(), - randao_mixes: self.randao_mixes.clone(), - slashings: self.slashings.clone(), - previous_epoch_attestations: self.previous_epoch_attestations.clone(), - current_epoch_attestations: self.current_epoch_attestations.clone(), - justification_bits: self.justification_bits.clone(), - previous_justified_checkpoint: self.previous_justified_checkpoint, - current_justified_checkpoint: self.current_justified_checkpoint, - finalized_checkpoint: self.finalized_checkpoint, - committee_caches: if config.committee_caches { - self.committee_caches.clone() - } else { - [ - CommitteeCache::default(), - CommitteeCache::default(), - CommitteeCache::default(), - ] - }, - pubkey_cache: if config.pubkey_cache { - self.pubkey_cache.clone() - } else { - PubkeyCache::default() - }, - exit_cache: if config.exit_cache { - self.exit_cache.clone() - } else { - ExitCache::default() - }, - tree_hash_cache: if config.tree_hash_cache { - self.tree_hash_cache.clone() - } else { - None - }, + let mut res = match self { + BeaconState::Base(inner) => BeaconState::Base(inner.clone()), + BeaconState::Altair(inner) => BeaconState::Altair(inner.clone()), + }; + if config.committee_caches { + *res.committee_caches_mut() = self.committee_caches().clone(); } + if config.pubkey_cache { + *res.pubkey_cache_mut() = self.pubkey_cache().clone(); + } + if config.exit_cache { + *res.exit_cache_mut() = self.exit_cache().clone(); + } + if config.tree_hash_cache { + *res.tree_hash_cache_mut() = self.tree_hash_cache().clone(); + } + res } pub fn clone_with_only_committee_caches(&self) -> Self { self.clone_with(CloneConfig::committee_caches_only()) } -} -/// This implementation primarily exists to satisfy some testing requirements (ef_tests). It is -/// recommended to use the methods directly on the beacon state instead. -impl CachedTreeHash> for BeaconState { - fn new_tree_hash_cache(&self, _arena: &mut CacheArena) -> BeaconTreeHashCache { - BeaconTreeHashCache::new(self) + /// Get the unslashed participating indices for a given `flag_index`. + /// + /// The `self` state must be Altair or later. + pub fn get_unslashed_participating_indices( + &self, + flag_index: usize, + epoch: Epoch, + spec: &ChainSpec, + ) -> Result, Error> { + let epoch_participation = if epoch == self.current_epoch() { + self.current_epoch_participation()? + } else if epoch == self.previous_epoch() { + self.previous_epoch_participation()? + } else { + return Err(Error::EpochOutOfBounds); + }; + let active_validator_indices = self.get_active_validator_indices(epoch, spec)?; + itertools::process_results( + active_validator_indices.into_iter().map(|val_index| { + let has_flag = epoch_participation + .get(val_index) + .ok_or(Error::ParticipationOutOfBounds(val_index))? + .has_flag(flag_index)?; + let not_slashed = !self.get_validator(val_index)?.slashed; + Ok((val_index, has_flag && not_slashed)) + }), + |iter| { + iter.filter(|(_, eligible)| *eligible) + .map(|(validator_index, _)| validator_index) + .collect() + }, + ) } - fn recalculate_tree_hash_root( - &self, - _arena: &mut CacheArena, - cache: &mut BeaconTreeHashCache, - ) -> Result { - cache - .recalculate_tree_hash_root(self) - .map_err(|_| cached_tree_hash::Error::CacheInconsistent) + pub fn get_eligible_validator_indices(&self) -> Result, Error> { + match self { + BeaconState::Base(_) => Err(Error::IncorrectStateVariant), + BeaconState::Altair(_) => { + let previous_epoch = self.previous_epoch(); + Ok(self + .validators() + .iter() + .enumerate() + .filter_map(|(i, val)| { + if val.is_active_at(previous_epoch) + || (val.slashed + && previous_epoch + Epoch::new(1) < val.withdrawable_epoch) + { + Some(i) + } else { + None + } + }) + .collect()) + } + } + } + + pub fn is_in_inactivity_leak(&self, spec: &ChainSpec) -> bool { + (self.previous_epoch() - self.finalized_checkpoint().epoch) + > spec.min_epochs_to_inactivity_penalty } } @@ -1246,6 +1528,12 @@ impl From for Error { } } +impl From for Error { + fn from(e: bls::Error) -> Error { + Error::BlsError(e) + } +} + impl From for Error { fn from(e: cached_tree_hash::Error) -> Error { Error::CachedTreeHashError(e) @@ -1264,45 +1552,17 @@ impl From for Error { } } -#[cfg(feature = "arbitrary-fuzz")] -impl arbitrary::Arbitrary for BeaconState { - fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - Ok(Self { - genesis_time: u64::arbitrary(u)?, - genesis_validators_root: Hash256::arbitrary(u)?, - slot: Slot::arbitrary(u)?, - fork: Fork::arbitrary(u)?, - latest_block_header: BeaconBlockHeader::arbitrary(u)?, - block_roots: >::arbitrary(u)?, - state_roots: >::arbitrary(u)?, - historical_roots: >::arbitrary(u)?, - eth1_data: Eth1Data::arbitrary(u)?, - eth1_data_votes: >::arbitrary(u)?, - eth1_deposit_index: u64::arbitrary(u)?, - validators: >::arbitrary(u)?, - balances: >::arbitrary(u)?, - randao_mixes: >::arbitrary(u)?, - slashings: >::arbitrary(u)?, - previous_epoch_attestations: , - T::MaxPendingAttestations, - >>::arbitrary(u)?, - current_epoch_attestations: , - T::MaxPendingAttestations, - >>::arbitrary(u)?, - justification_bits: >::arbitrary(u)?, - previous_justified_checkpoint: Checkpoint::arbitrary(u)?, - current_justified_checkpoint: Checkpoint::arbitrary(u)?, - finalized_checkpoint: Checkpoint::arbitrary(u)?, - committee_caches: [ - CommitteeCache::arbitrary(u)?, - CommitteeCache::arbitrary(u)?, - CommitteeCache::arbitrary(u)?, - ], - pubkey_cache: PubkeyCache::arbitrary(u)?, - exit_cache: ExitCache::arbitrary(u)?, - tree_hash_cache: None, - }) +/// Helper function for "cloning" a field by using its default value. +fn clone_default(_value: &T) -> T { + T::default() +} + +impl CompareFields for BeaconState { + fn compare_fields(&self, other: &Self) -> Vec { + match (self, other) { + (BeaconState::Base(x), BeaconState::Base(y)) => x.compare_fields(y), + (BeaconState::Altair(x), BeaconState::Altair(y)) => x.compare_fields(y), + _ => panic!("compare_fields: mismatched state variants"), + } } } diff --git a/consensus/types/src/beacon_state/committee_cache.rs b/consensus/types/src/beacon_state/committee_cache.rs index 0d435f1683..9c8f428d83 100644 --- a/consensus/types/src/beacon_state/committee_cache.rs +++ b/consensus/types/src/beacon_state/committee_cache.rs @@ -39,7 +39,7 @@ impl CommitteeCache { return Err(Error::ZeroSlotsPerEpoch); } - let active_validator_indices = get_active_validator_indices(&state.validators, epoch); + let active_validator_indices = get_active_validator_indices(state.validators(), epoch); if active_validator_indices.is_empty() { return Err(Error::InsufficientValidators); @@ -59,13 +59,15 @@ impl CommitteeCache { .ok_or(Error::UnableToShuffle)?; // The use of `NonZeroUsize` reduces the maximum number of possible validators by one. - if state.validators.len() == usize::max_value() { + if state.validators().len() == usize::max_value() { return Err(Error::TooManyValidators); } - let mut shuffling_positions = vec![None; state.validators.len()]; - for (i, v) in shuffling.iter().enumerate() { - shuffling_positions[*v] = NonZeroUsize::new(i + 1); + let mut shuffling_positions = vec![None; state.validators().len()]; + for (i, &v) in shuffling.iter().enumerate() { + *shuffling_positions + .get_mut(v) + .ok_or(Error::ShuffleIndexOutOfBounds(v))? = NonZeroUsize::new(i + 1); } Ok(CommitteeCache { @@ -229,7 +231,7 @@ impl CommitteeCache { /// /// Spec v0.12.1 fn compute_committee(&self, index: usize) -> Option<&[usize]> { - Some(&self.shuffling[self.compute_committee_range(index)?]) + self.shuffling.get(self.compute_committee_range(index)?) } /// Returns a range of `self.shuffling` that represents the `index`'th committee in the epoch. @@ -255,7 +257,7 @@ impl CommitteeCache { /// Returns the index of some validator in `self.shuffling`. /// /// Always returns `None` for a non-initialized epoch. - fn shuffled_position(&self, validator_index: usize) -> Option { + pub fn shuffled_position(&self, validator_index: usize) -> Option { self.shuffling_positions .get(validator_index)? .and_then(|p| Some(p.get() - 1)) diff --git a/consensus/types/src/beacon_state/committee_cache/tests.rs b/consensus/types/src/beacon_state/committee_cache/tests.rs index 94e6c2c849..e4a7ccf461 100644 --- a/consensus/types/src/beacon_state/committee_cache/tests.rs +++ b/consensus/types/src/beacon_state/committee_cache/tests.rs @@ -1,6 +1,27 @@ #![cfg(test)] -use super::*; -use crate::{test_utils::*, *}; +use crate::test_utils::*; +use beacon_chain::store::StoreConfig; +use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; +use beacon_chain::types::*; +use swap_or_not_shuffle::shuffle_list; + +pub const VALIDATOR_COUNT: usize = 16; + +lazy_static! { + /// A cached set of keys. + static ref KEYPAIRS: Vec = generate_deterministic_keypairs(VALIDATOR_COUNT); +} + +fn get_harness(validator_count: usize) -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + E::default(), + None, + KEYPAIRS[0..validator_count].to_vec(), + StoreConfig::default(), + ); + harness.advance_slot(); + harness +} #[test] fn default_values() { @@ -16,27 +37,26 @@ fn default_values() { } fn new_state(validator_count: usize, slot: Slot) -> BeaconState { - let spec = &T::default_spec(); - - let mut builder = - TestingBeaconStateBuilder::from_single_keypair(validator_count, &Keypair::random(), spec); - - builder.teleport_to_slot(slot); - - let (state, _keypairs) = builder.build(); - - state + let harness = get_harness(validator_count); + let head_state = harness.get_current_state(); + if slot > Slot::new(0) { + harness.add_attested_blocks_at_slots( + head_state, + Hash256::zero(), + (1..slot.as_u64()) + .map(Slot::new) + .collect::>() + .as_slice(), + (0..validator_count).collect::>().as_slice(), + ); + } + harness.get_current_state() } #[test] +#[should_panic] fn fails_without_validators() { - let state = new_state::(0, Slot::new(0)); - let spec = &MinimalEthSpec::default_spec(); - - assert_eq!( - CommitteeCache::initialized(&state, state.current_epoch(), &spec), - Err(BeaconStateError::InsufficientValidators) - ); + new_state::(0, Slot::new(0)); } #[test] @@ -45,24 +65,22 @@ fn initializes_with_the_right_epoch() { let spec = &MinimalEthSpec::default_spec(); let cache = CommitteeCache::default(); - assert_eq!(cache.initialized_epoch, None); + assert!(!cache.is_initialized_at(state.current_epoch())); let cache = CommitteeCache::initialized(&state, state.current_epoch(), &spec).unwrap(); - assert_eq!(cache.initialized_epoch, Some(state.current_epoch())); + assert!(cache.is_initialized_at(state.current_epoch())); let cache = CommitteeCache::initialized(&state, state.previous_epoch(), &spec).unwrap(); - assert_eq!(cache.initialized_epoch, Some(state.previous_epoch())); + assert!(cache.is_initialized_at(state.previous_epoch())); let cache = CommitteeCache::initialized(&state, state.next_epoch().unwrap(), &spec).unwrap(); - assert_eq!(cache.initialized_epoch, Some(state.next_epoch().unwrap())); + assert!(cache.is_initialized_at(state.next_epoch().unwrap())); } #[test] fn shuffles_for_the_right_epoch() { - use crate::EthSpec; - let num_validators = MinimalEthSpec::minimum_validator_count() * 2; - let epoch = Epoch::new(100_000_000); + let epoch = Epoch::new(6); let slot = epoch.start_slot(MinimalEthSpec::slots_per_epoch()); let mut state = new_state::(num_validators, slot); @@ -72,7 +90,7 @@ fn shuffles_for_the_right_epoch() { .map(|i| Hash256::from_low_u64_be(i as u64)) .collect(); - state.randao_mixes = FixedVector::from(distinct_hashes); + *state.randao_mixes_mut() = FixedVector::from(distinct_hashes); let previous_seed = state .get_seed(state.previous_epoch(), Domain::BeaconAttester, spec) @@ -97,9 +115,9 @@ fn shuffles_for_the_right_epoch() { }; let assert_shuffling_positions_accurate = |cache: &CommitteeCache| { - for (i, v) in cache.shuffling.iter().enumerate() { + for (i, v) in cache.shuffling().iter().enumerate() { assert_eq!( - cache.shuffling_positions[*v].unwrap().get() - 1, + cache.shuffled_position(*v).unwrap(), i, "Shuffling position inaccurate" ); @@ -107,14 +125,14 @@ fn shuffles_for_the_right_epoch() { }; let cache = CommitteeCache::initialized(&state, state.current_epoch(), spec).unwrap(); - assert_eq!(cache.shuffling, shuffling_with_seed(current_seed)); + assert_eq!(cache.shuffling(), shuffling_with_seed(current_seed)); assert_shuffling_positions_accurate(&cache); let cache = CommitteeCache::initialized(&state, state.previous_epoch(), spec).unwrap(); - assert_eq!(cache.shuffling, shuffling_with_seed(previous_seed)); + assert_eq!(cache.shuffling(), shuffling_with_seed(previous_seed)); assert_shuffling_positions_accurate(&cache); let cache = CommitteeCache::initialized(&state, state.next_epoch().unwrap(), spec).unwrap(); - assert_eq!(cache.shuffling, shuffling_with_seed(next_seed)); + assert_eq!(cache.shuffling(), shuffling_with_seed(next_seed)); assert_shuffling_positions_accurate(&cache); } diff --git a/consensus/types/src/beacon_state/exit_cache.rs b/consensus/types/src/beacon_state/exit_cache.rs index 364c1daf0d..f1d1b498b7 100644 --- a/consensus/types/src/beacon_state/exit_cache.rs +++ b/consensus/types/src/beacon_state/exit_cache.rs @@ -11,22 +11,18 @@ pub struct ExitCache { } impl ExitCache { - /// Build the cache if not initialized. - pub fn build( - &mut self, - validators: &[Validator], - spec: &ChainSpec, - ) -> Result<(), BeaconStateError> { - if self.initialized { - return Ok(()); - } - - self.initialized = true; + /// Initialize a new cache for the given list of validators. + pub fn new(validators: &[Validator], spec: &ChainSpec) -> Result { + let mut exit_cache = ExitCache { + initialized: true, + ..ExitCache::default() + }; // Add all validators with a non-default exit epoch to the cache. validators .iter() .filter(|validator| validator.exit_epoch != spec.far_future_epoch) - .try_for_each(|validator| self.record_validator_exit(validator.exit_epoch)) + .try_for_each(|validator| exit_cache.record_validator_exit(validator.exit_epoch))?; + Ok(exit_cache) } /// Check that the cache is initialized and return an error if it is not. diff --git a/consensus/types/src/beacon_state/iter.rs b/consensus/types/src/beacon_state/iter.rs index 5f858dd8af..2c00913ce9 100644 --- a/consensus/types/src/beacon_state/iter.rs +++ b/consensus/types/src/beacon_state/iter.rs @@ -4,7 +4,7 @@ use crate::*; /// /// The iterator has the following characteristics: /// -/// - Will only return *at most* `state.block_roots.len()` entries. +/// - Will only return *at most* `state.block_roots().len()` entries. /// - Will not return slots prior to the genesis_slot. /// - Each call to next will result in a slot one less than the prior one (or `None`). /// - Skipped slots will contain the block root from the prior non-skipped slot. @@ -22,7 +22,7 @@ impl<'a, T: EthSpec> BlockRootsIter<'a, T> { Self { state, genesis_slot, - prev: state.slot, + prev: state.slot(), } } } @@ -35,8 +35,8 @@ impl<'a, T: EthSpec> Iterator for BlockRootsIter<'a, T> { && self.prev > self .state - .slot - .saturating_sub(self.state.block_roots.len() as u64) + .slot() + .saturating_sub(self.state.block_roots().len() as u64) { self.prev = self.prev.saturating_sub(1_u64); Some( @@ -73,12 +73,13 @@ mod test { let mut state: BeaconState = BeaconState::new(0, <_>::default(), &spec); - for i in 0..state.block_roots.len() { - state.block_roots[i] = root_slot(i).1; + for i in 0..state.block_roots().len() { + state.block_roots_mut()[i] = root_slot(i).1; } assert_eq!( - state.slot, spec.genesis_slot, + state.slot(), + spec.genesis_slot, "test assume a genesis slot state" ); assert_eq!( @@ -87,22 +88,22 @@ mod test { "state at genesis slot has no history" ); - state.slot = Slot::new(1); + *state.slot_mut() = Slot::new(1); assert_eq!( all_roots(&state, &spec), vec![root_slot(0)], "first slot after genesis has one slot history" ); - state.slot = Slot::new(2); + *state.slot_mut() = Slot::new(2); assert_eq!( all_roots(&state, &spec), vec![root_slot(1), root_slot(0)], "second slot after genesis has two slot history" ); - state.slot = Slot::from(state.block_roots.len() + 2); - let expected = (2..state.block_roots.len() + 2) + *state.slot_mut() = Slot::from(state.block_roots().len() + 2); + let expected = (2..state.block_roots().len() + 2) .rev() .map(|i| (Slot::from(i), *state.get_block_root(Slot::from(i)).unwrap())) .collect::>(); @@ -120,12 +121,13 @@ mod test { let mut state: BeaconState = BeaconState::new(0, <_>::default(), &spec); - for i in 0..state.block_roots.len() { - state.block_roots[i] = root_slot(i).1; + for i in 0..state.block_roots().len() { + state.block_roots_mut()[i] = root_slot(i).1; } assert_eq!( - state.slot, spec.genesis_slot, + state.slot(), + spec.genesis_slot, "test assume a genesis slot state" ); assert_eq!( @@ -134,14 +136,14 @@ mod test { "state at genesis slot has no history" ); - state.slot = Slot::new(5); + *state.slot_mut() = Slot::new(5); assert_eq!( all_roots(&state, &spec), vec![root_slot(4)], "first slot after genesis has one slot history" ); - state.slot = Slot::new(6); + *state.slot_mut() = Slot::new(6); assert_eq!( all_roots(&state, &spec), vec![root_slot(5), root_slot(4)], diff --git a/consensus/types/src/beacon_state/tests.rs b/consensus/types/src/beacon_state/tests.rs index c14bd94fcd..ff7c503f24 100644 --- a/consensus/types/src/beacon_state/tests.rs +++ b/consensus/types/src/beacon_state/tests.rs @@ -1,23 +1,60 @@ #![cfg(test)] -use super::*; use crate::test_utils::*; +use beacon_chain::store::config::StoreConfig; +use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; +use beacon_chain::types::{ + test_utils::TestRandom, BeaconState, BeaconStateAltair, BeaconStateBase, BeaconStateError, + ChainSpec, CloneConfig, Domain, Epoch, EthSpec, FixedVector, Hash256, Keypair, MainnetEthSpec, + MinimalEthSpec, RelativeEpoch, Slot, +}; +use ssz::{Decode, Encode}; use std::ops::Mul; +use swap_or_not_shuffle::compute_shuffled_index; -ssz_and_tree_hash_tests!(FoundationBeaconState); +pub const MAX_VALIDATOR_COUNT: usize = 129; +pub const SLOT_OFFSET: Slot = Slot::new(1); + +lazy_static! { + /// A cached set of keys. + static ref KEYPAIRS: Vec = generate_deterministic_keypairs(MAX_VALIDATOR_COUNT); +} + +fn get_harness( + validator_count: usize, + slot: Slot, +) -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + E::default(), + None, + KEYPAIRS[0..validator_count].to_vec(), + StoreConfig::default(), + ); + + let skip_to_slot = slot - SLOT_OFFSET; + if skip_to_slot > Slot::new(0) { + let slots = (skip_to_slot.as_u64()..=slot.as_u64()) + .map(Slot::new) + .collect::>(); + let state = harness.get_current_state(); + harness.add_attested_blocks_at_slots( + state, + Hash256::zero(), + slots.as_slice(), + (0..validator_count).collect::>().as_slice(), + ); + } + harness +} + +fn build_state(validator_count: usize) -> BeaconState { + get_harness(validator_count, Slot::new(0)) + .chain + .head_beacon_state() + .unwrap() +} fn test_beacon_proposer_index() { let spec = T::default_spec(); - let relative_epoch = RelativeEpoch::Current; - - // Build a state for testing. - let build_state = |validator_count: usize| -> BeaconState { - let builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(validator_count, &spec); - let (mut state, _keypairs) = builder.build(); - state.build_committee_cache(relative_epoch, &spec).unwrap(); - - state - }; // Get the i'th candidate proposer for the given state and slot let ith_candidate = |state: &BeaconState, slot: Slot, i: usize, spec: &ChainSpec| { @@ -56,9 +93,9 @@ fn test_beacon_proposer_index() { } // Test with two validators per slot, first validator has zero balance. - let mut state = build_state((T::slots_per_epoch() as usize).mul(2)); + let mut state = build_state::((T::slots_per_epoch() as usize).mul(2)); let slot0_candidate0 = ith_candidate(&state, Slot::new(0), 0, &spec); - state.validators[slot0_candidate0].effective_balance = 0; + state.validators_mut()[slot0_candidate0].effective_balance = 0; test(&state, Slot::new(0), 1); for i in 1..T::slots_per_epoch() { test(&state, Slot::from(i), 0); @@ -81,17 +118,9 @@ fn test_cache_initialization( spec: &ChainSpec, ) { let slot = relative_epoch - .into_epoch(state.slot.epoch(T::slots_per_epoch())) + .into_epoch(state.slot().epoch(T::slots_per_epoch())) .start_slot(T::slots_per_epoch()); - // Assuming the cache isn't already built, assert that a call to a cache-using function fails. - assert_eq!( - state.get_attestation_duties(0, relative_epoch), - Err(BeaconStateError::CommitteeCacheUninitialized(Some( - relative_epoch - ))) - ); - // Build the cache. state.build_committee_cache(relative_epoch, spec).unwrap(); @@ -99,7 +128,7 @@ fn test_cache_initialization( state.get_beacon_committee(slot, 0).unwrap(); // Drop the cache. - state.drop_committee_cache(relative_epoch); + state.drop_committee_cache(relative_epoch).unwrap(); // Assert a call to a cache-using function fail. assert_eq!( @@ -114,11 +143,9 @@ fn test_cache_initialization( fn cache_initialization() { let spec = MinimalEthSpec::default_spec(); - let builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(16, &spec); - let (mut state, _keypairs) = builder.build(); + let mut state = build_state::(16); - state.slot = + *state.slot_mut() = (MinimalEthSpec::genesis_epoch() + 1).start_slot(MinimalEthSpec::slots_per_epoch()); test_cache_initialization(&mut state, RelativeEpoch::Previous, &spec); @@ -150,25 +177,29 @@ fn test_clone_config(base_state: &BeaconState, clone_config: Clon .expect_err("shouldn't exist"); } if clone_config.pubkey_cache { - assert_ne!(state.pubkey_cache.len(), 0); + assert_ne!(state.pubkey_cache().len(), 0); } else { - assert_eq!(state.pubkey_cache.len(), 0); + assert_eq!(state.pubkey_cache().len(), 0); } if clone_config.exit_cache { state - .exit_cache + .exit_cache() .check_initialized() .expect("exit cache exists"); } else { state - .exit_cache + .exit_cache() .check_initialized() .expect_err("exit cache doesn't exist"); } if clone_config.tree_hash_cache { - assert!(state.tree_hash_cache.is_some()); + assert!(state.tree_hash_cache().is_initialized()); } else { - assert!(state.tree_hash_cache.is_none(), "{:?}", clone_config); + assert!( + !state.tree_hash_cache().is_initialized(), + "{:?}", + clone_config + ); } } @@ -176,9 +207,7 @@ fn test_clone_config(base_state: &BeaconState, clone_config: Clon fn clone_config() { let spec = MinimalEthSpec::default_spec(); - let builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(16, &spec); - let (mut state, _keypairs) = builder.build(); + let mut state = build_state::(16); state.build_all_caches(&spec).unwrap(); state @@ -198,69 +227,10 @@ fn clone_config() { } } -#[test] -fn tree_hash_cache() { - use crate::test_utils::{SeedableRng, TestRandom, XorShiftRng}; - use tree_hash::TreeHash; - - let mut rng = XorShiftRng::from_seed([42; 16]); - - let mut state: FoundationBeaconState = BeaconState::random_for_test(&mut rng); - - let root = state.update_tree_hash_cache().unwrap(); - - assert_eq!(root.as_bytes(), &state.tree_hash_root()[..]); - - /* - * A cache should hash twice without updating the slot. - */ - - assert_eq!( - state.update_tree_hash_cache().unwrap(), - root, - "tree hash result should be identical on the same slot" - ); - - /* - * A cache should not hash after updating the slot but not updating the state roots. - */ - - // The tree hash cache needs to be rebuilt since it was dropped when it failed. - state - .update_tree_hash_cache() - .expect("should rebuild cache"); - - state.slot += 1; - - assert_eq!( - state.update_tree_hash_cache(), - Err(BeaconStateError::NonLinearTreeHashCacheHistory), - "should not build hash without updating the state root" - ); - - /* - * The cache should update if the slot and state root are updated. - */ - - // The tree hash cache needs to be rebuilt since it was dropped when it failed. - let root = state - .update_tree_hash_cache() - .expect("should rebuild cache"); - - state.slot += 1; - state - .set_state_root(state.slot - 1, root) - .expect("should set state root"); - - let root = state.update_tree_hash_cache().unwrap(); - assert_eq!(root.as_bytes(), &state.tree_hash_root()[..]); -} - /// Tests committee-specific components #[cfg(test)] mod committees { use super::*; - use crate::beacon_state::MinimalEthSpec; use std::ops::{Add, Div}; use swap_or_not_shuffle::shuffle_list; @@ -343,35 +313,33 @@ mod committees { ) { let spec = &T::default_spec(); - let mut builder = TestingBeaconStateBuilder::from_single_keypair( - validator_count, - &Keypair::random(), - spec, - ); - let slot = state_epoch.start_slot(T::slots_per_epoch()); - builder.teleport_to_slot(slot); - - let (mut state, _keypairs): (BeaconState, _) = builder.build(); + let harness = get_harness::(validator_count, slot); + let mut new_head_state = harness.get_current_state(); let distinct_hashes: Vec = (0..T::epochs_per_historical_vector()) .map(|i| Hash256::from_low_u64_be(i as u64)) .collect(); - state.randao_mixes = FixedVector::from(distinct_hashes); + *new_head_state.randao_mixes_mut() = FixedVector::from(distinct_hashes); - state - .build_committee_cache(RelativeEpoch::Previous, spec) + new_head_state + .force_build_committee_cache(RelativeEpoch::Previous, spec) .unwrap(); - state - .build_committee_cache(RelativeEpoch::Current, spec) + new_head_state + .force_build_committee_cache(RelativeEpoch::Current, spec) .unwrap(); - state - .build_committee_cache(RelativeEpoch::Next, spec) + new_head_state + .force_build_committee_cache(RelativeEpoch::Next, spec) .unwrap(); let cache_epoch = cache_epoch.into_epoch(state_epoch); - execute_committee_consistency_test(state, cache_epoch, validator_count as usize, &spec); + execute_committee_consistency_test( + new_head_state, + cache_epoch, + validator_count as usize, + &spec, + ); } fn committee_consistency_test_suite(cached_epoch: RelativeEpoch) { @@ -419,16 +387,12 @@ mod committees { mod get_outstanding_deposit_len { use super::*; - use crate::test_utils::TestingBeaconStateBuilder; - use crate::MinimalEthSpec; fn state() -> BeaconState { - let spec = MinimalEthSpec::default_spec(); - let builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(16, &spec); - let (state, _keypairs) = builder.build(); - - state + get_harness(16, Slot::new(0)) + .chain + .head_beacon_state() + .unwrap() } #[test] @@ -436,8 +400,8 @@ mod get_outstanding_deposit_len { let mut state = state(); assert_eq!(state.get_outstanding_deposit_len(), Ok(0)); - state.eth1_data.deposit_count = 17; - state.eth1_deposit_index = 16; + state.eth1_data_mut().deposit_count = 17; + *state.eth1_deposit_index_mut() = 16; assert_eq!(state.get_outstanding_deposit_len(), Ok(1)); } @@ -445,8 +409,8 @@ mod get_outstanding_deposit_len { fn returns_err_if_the_state_is_invalid() { let mut state = state(); // The state is invalid, deposit count is lower than deposit index. - state.eth1_data.deposit_count = 16; - state.eth1_deposit_index = 17; + state.eth1_data_mut().deposit_count = 16; + *state.eth1_deposit_index_mut() = 17; assert_eq!( state.get_outstanding_deposit_len(), @@ -457,3 +421,124 @@ mod get_outstanding_deposit_len { ); } } + +#[test] +fn decode_base_and_altair() { + type E = MainnetEthSpec; + + let rng = &mut XorShiftRng::from_seed([42; 16]); + + let fork_epoch = Epoch::from_ssz_bytes(&[7, 6, 5, 4, 3, 2, 1, 0]).unwrap(); + + let base_epoch = fork_epoch.saturating_sub(1_u64); + let base_slot = base_epoch.end_slot(E::slots_per_epoch()); + let altair_epoch = fork_epoch; + let altair_slot = altair_epoch.start_slot(E::slots_per_epoch()); + + let mut spec = E::default_spec(); + spec.altair_fork_epoch = Some(altair_epoch); + + // BeaconStateBase + { + let good_base_block: BeaconState = BeaconState::Base(BeaconStateBase { + slot: base_slot, + ..<_>::random_for_test(rng) + }); + // It's invalid to have a base block with a slot higher than the fork slot. + let bad_base_block = { + let mut bad = good_base_block.clone(); + *bad.slot_mut() = altair_slot; + bad + }; + + assert_eq!( + BeaconState::from_ssz_bytes(&good_base_block.as_ssz_bytes(), &spec) + .expect("good base block can be decoded"), + good_base_block + ); + >::from_ssz_bytes(&bad_base_block.as_ssz_bytes(), &spec) + .expect_err("bad base block cannot be decoded"); + } + + // BeaconStateAltair + { + let good_altair_block: BeaconState = + BeaconState::Altair(BeaconStateAltair { + slot: altair_slot, + ..<_>::random_for_test(rng) + }); + // It's invalid to have an Altair block with a slot lower than the fork slot. + let bad_altair_block = { + let mut bad = good_altair_block.clone(); + *bad.slot_mut() = base_slot; + bad + }; + + assert_eq!( + BeaconState::from_ssz_bytes(&good_altair_block.as_ssz_bytes(), &spec) + .expect("good altair block can be decoded"), + good_altair_block + ); + >::from_ssz_bytes(&bad_altair_block.as_ssz_bytes(), &spec) + .expect_err("bad altair block cannot be decoded"); + } +} + +#[test] +fn tree_hash_cache_linear_history() { + use crate::test_utils::{SeedableRng, XorShiftRng}; + use tree_hash::TreeHash; + + let mut rng = XorShiftRng::from_seed([42; 16]); + + let mut state: BeaconState = + BeaconState::Base(BeaconStateBase::random_for_test(&mut rng)); + + let root = state.update_tree_hash_cache().unwrap(); + + assert_eq!(root.as_bytes(), &state.tree_hash_root()[..]); + + /* + * A cache should hash twice without updating the slot. + */ + + assert_eq!( + state.update_tree_hash_cache().unwrap(), + root, + "tree hash result should be identical on the same slot" + ); + + /* + * A cache should not hash after updating the slot but not updating the state roots. + */ + + // The tree hash cache needs to be rebuilt since it was dropped when it failed. + state + .update_tree_hash_cache() + .expect("should rebuild cache"); + + *state.slot_mut() += 1; + + assert_eq!( + state.update_tree_hash_cache(), + Err(BeaconStateError::NonLinearTreeHashCacheHistory), + "should not build hash without updating the state root" + ); + + /* + * The cache should update if the slot and state root are updated. + */ + + // The tree hash cache needs to be rebuilt since it was dropped when it failed. + let root = state + .update_tree_hash_cache() + .expect("should rebuild cache"); + + *state.slot_mut() += 1; + state + .set_state_root(state.slot() - 1, root) + .expect("should set state root"); + + let root = state.update_tree_hash_cache().unwrap(); + assert_eq!(root.as_bytes(), &state.tree_hash_root()[..]); +} diff --git a/consensus/types/src/beacon_state/tree_hash_cache.rs b/consensus/types/src/beacon_state/tree_hash_cache.rs index ee8cfb2dd5..22b6ace21e 100644 --- a/consensus/types/src/beacon_state/tree_hash_cache.rs +++ b/consensus/types/src/beacon_state/tree_hash_cache.rs @@ -1,5 +1,6 @@ #![allow(clippy::integer_arithmetic)] #![allow(clippy::disallowed_method)] +#![allow(clippy::indexing_slicing)] use super::Error; use crate::{BeaconState, EthSpec, Hash256, Slot, Unsigned, Validator}; @@ -11,8 +12,13 @@ use std::cmp::Ordering; use std::iter::ExactSizeIterator; use tree_hash::{mix_in_length, MerkleHasher, TreeHash}; -/// The number of fields on a beacon state. -const NUM_BEACON_STATE_HASHING_FIELDS: usize = 20; +/// The number of leaves (including padding) on the `BeaconState` Merkle tree. +/// +/// ## Note +/// +/// This constant is set with the assumption that there are `> 16` and `<= 32` fields on the +/// `BeaconState`. **Tree hashing will fail if this value is set incorrectly.** +const NUM_BEACON_STATE_HASH_TREE_ROOT_LEAVES: usize = 32; /// The number of nodes in the Merkle tree of a validator record. const NODES_PER_VALIDATOR: usize = 15; @@ -41,7 +47,7 @@ impl Eth1DataVotesTreeHashCache { pub fn new(state: &BeaconState) -> Self { let mut arena = CacheArena::default(); let roots: VariableList<_, _> = state - .eth1_data_votes + .eth1_data_votes() .iter() .map(|eth1_data| eth1_data.tree_hash_root()) .collect::>() @@ -51,7 +57,7 @@ impl Eth1DataVotesTreeHashCache { Self { arena, tree_hash_cache, - voting_period: Self::voting_period(state.slot), + voting_period: Self::voting_period(state.slot()), roots, } } @@ -61,14 +67,14 @@ impl Eth1DataVotesTreeHashCache { } pub fn recalculate_tree_hash_root(&mut self, state: &BeaconState) -> Result { - if state.eth1_data_votes.len() < self.roots.len() - || Self::voting_period(state.slot) != self.voting_period + if state.eth1_data_votes().len() < self.roots.len() + || Self::voting_period(state.slot()) != self.voting_period { *self = Self::new(state); } state - .eth1_data_votes + .eth1_data_votes() .iter() .skip(self.roots.len()) .try_for_each(|eth1_data| self.roots.push(eth1_data.tree_hash_root()))?; @@ -80,8 +86,42 @@ impl Eth1DataVotesTreeHashCache { } /// A cache that performs a caching tree hash of the entire `BeaconState` struct. -#[derive(Debug, PartialEq, Clone, Encode, Decode)] +/// +/// This type is a wrapper around the inner cache, which does all the work. +#[derive(Debug, Default, PartialEq, Clone)] pub struct BeaconTreeHashCache { + inner: Option>, +} + +impl BeaconTreeHashCache { + pub fn new(state: &BeaconState) -> Self { + Self { + inner: Some(BeaconTreeHashCacheInner::new(state)), + } + } + + pub fn is_initialized(&self) -> bool { + self.inner.is_some() + } + + /// Move the inner cache out so that the containing `BeaconState` can be borrowed. + pub fn take(&mut self) -> Option> { + self.inner.take() + } + + /// Restore the inner cache after using `take`. + pub fn restore(&mut self, inner: BeaconTreeHashCacheInner) { + self.inner = Some(inner); + } + + /// Make the cache empty. + pub fn uninitialize(&mut self) { + self.inner = None; + } +} + +#[derive(Debug, PartialEq, Clone)] +pub struct BeaconTreeHashCacheInner { /// Tracks the previously generated state root to ensure the next state root provided descends /// directly from this state. previous_state: Option<(Hash256, Slot)>, @@ -101,25 +141,27 @@ pub struct BeaconTreeHashCache { eth1_data_votes: Eth1DataVotesTreeHashCache, } -impl BeaconTreeHashCache { +impl BeaconTreeHashCacheInner { /// Instantiates a new cache. /// /// Allocates the necessary memory to store all of the cached Merkle trees. Only the leaves are /// hashed, leaving the internal nodes as all-zeros. pub fn new(state: &BeaconState) -> Self { let mut fixed_arena = CacheArena::default(); - let block_roots = state.block_roots.new_tree_hash_cache(&mut fixed_arena); - let state_roots = state.state_roots.new_tree_hash_cache(&mut fixed_arena); - let historical_roots = state.historical_roots.new_tree_hash_cache(&mut fixed_arena); - let randao_mixes = state.randao_mixes.new_tree_hash_cache(&mut fixed_arena); + let block_roots = state.block_roots().new_tree_hash_cache(&mut fixed_arena); + let state_roots = state.state_roots().new_tree_hash_cache(&mut fixed_arena); + let historical_roots = state + .historical_roots() + .new_tree_hash_cache(&mut fixed_arena); + let randao_mixes = state.randao_mixes().new_tree_hash_cache(&mut fixed_arena); - let validators = ValidatorsListTreeHashCache::new::(&state.validators[..]); + let validators = ValidatorsListTreeHashCache::new::(state.validators()); let mut balances_arena = CacheArena::default(); - let balances = state.balances.new_tree_hash_cache(&mut balances_arena); + let balances = state.balances().new_tree_hash_cache(&mut balances_arena); let mut slashings_arena = CacheArena::default(); - let slashings = state.slashings.new_tree_hash_cache(&mut slashings_arena); + let slashings = state.slashings().new_tree_hash_cache(&mut slashings_arena); Self { previous_state: None, @@ -150,100 +192,132 @@ impl BeaconTreeHashCache { // efficient algorithm. if let Some((previous_root, previous_slot)) = self.previous_state { // The previously-hashed state must not be newer than `state`. - if previous_slot > state.slot { + if previous_slot > state.slot() { return Err(Error::TreeHashCacheSkippedSlot { cache: previous_slot, - state: state.slot, + state: state.slot(), }); } // If the state is newer, the previous root must be in the history of the given state. - if previous_slot < state.slot && *state.get_state_root(previous_slot)? != previous_root + if previous_slot < state.slot() + && *state.get_state_root(previous_slot)? != previous_root { return Err(Error::NonLinearTreeHashCacheHistory); } } - let mut hasher = MerkleHasher::with_leaves(NUM_BEACON_STATE_HASHING_FIELDS); + let mut hasher = MerkleHasher::with_leaves(NUM_BEACON_STATE_HASH_TREE_ROOT_LEAVES); - hasher.write(state.genesis_time.tree_hash_root().as_bytes())?; - hasher.write(state.genesis_validators_root.tree_hash_root().as_bytes())?; - hasher.write(state.slot.tree_hash_root().as_bytes())?; - hasher.write(state.fork.tree_hash_root().as_bytes())?; - hasher.write(state.latest_block_header.tree_hash_root().as_bytes())?; + hasher.write(state.genesis_time().tree_hash_root().as_bytes())?; + hasher.write(state.genesis_validators_root().tree_hash_root().as_bytes())?; + hasher.write(state.slot().tree_hash_root().as_bytes())?; + hasher.write(state.fork().tree_hash_root().as_bytes())?; + hasher.write(state.latest_block_header().tree_hash_root().as_bytes())?; hasher.write( state - .block_roots + .block_roots() .recalculate_tree_hash_root(&mut self.fixed_arena, &mut self.block_roots)? .as_bytes(), )?; hasher.write( state - .state_roots + .state_roots() .recalculate_tree_hash_root(&mut self.fixed_arena, &mut self.state_roots)? .as_bytes(), )?; hasher.write( state - .historical_roots + .historical_roots() .recalculate_tree_hash_root(&mut self.fixed_arena, &mut self.historical_roots)? .as_bytes(), )?; - hasher.write(state.eth1_data.tree_hash_root().as_bytes())?; + hasher.write(state.eth1_data().tree_hash_root().as_bytes())?; hasher.write( self.eth1_data_votes .recalculate_tree_hash_root(&state)? .as_bytes(), )?; - hasher.write(state.eth1_deposit_index.tree_hash_root().as_bytes())?; + hasher.write(state.eth1_deposit_index().tree_hash_root().as_bytes())?; hasher.write( self.validators - .recalculate_tree_hash_root(&state.validators[..])? + .recalculate_tree_hash_root(state.validators())? .as_bytes(), )?; hasher.write( state - .balances + .balances() .recalculate_tree_hash_root(&mut self.balances_arena, &mut self.balances)? .as_bytes(), )?; hasher.write( state - .randao_mixes + .randao_mixes() .recalculate_tree_hash_root(&mut self.fixed_arena, &mut self.randao_mixes)? .as_bytes(), )?; hasher.write( state - .slashings + .slashings() .recalculate_tree_hash_root(&mut self.slashings_arena, &mut self.slashings)? .as_bytes(), )?; + + // Participation + match state { + BeaconState::Base(state) => { + hasher.write( + state + .previous_epoch_attestations + .tree_hash_root() + .as_bytes(), + )?; + hasher.write(state.current_epoch_attestations.tree_hash_root().as_bytes())?; + } + // FIXME(altair): add a cache to accelerate hashing of these fields + BeaconState::Altair(state) => { + hasher.write( + state + .previous_epoch_participation + .tree_hash_root() + .as_bytes(), + )?; + hasher.write( + state + .current_epoch_participation + .tree_hash_root() + .as_bytes(), + )?; + } + } + + hasher.write(state.justification_bits().tree_hash_root().as_bytes())?; hasher.write( state - .previous_epoch_attestations - .tree_hash_root() - .as_bytes(), - )?; - hasher.write(state.current_epoch_attestations.tree_hash_root().as_bytes())?; - hasher.write(state.justification_bits.tree_hash_root().as_bytes())?; - hasher.write( - state - .previous_justified_checkpoint + .previous_justified_checkpoint() .tree_hash_root() .as_bytes(), )?; hasher.write( state - .current_justified_checkpoint + .current_justified_checkpoint() .tree_hash_root() .as_bytes(), )?; - hasher.write(state.finalized_checkpoint.tree_hash_root().as_bytes())?; + hasher.write(state.finalized_checkpoint().tree_hash_root().as_bytes())?; + + // Inactivity & light-client sync committees + if let BeaconState::Altair(ref state) = state { + // FIXME(altair): add cache for this field + hasher.write(state.inactivity_scores.tree_hash_root().as_bytes())?; + + hasher.write(state.current_sync_committee.tree_hash_root().as_bytes())?; + hasher.write(state.next_sync_committee.tree_hash_root().as_bytes())?; + } let root = hasher.finish()?; - self.previous_state = Some((root, state.slot)); + self.previous_state = Some((root, state.slot())); Ok(root) } @@ -432,6 +506,13 @@ impl ParallelValidatorTreeHash { } } +#[cfg(feature = "arbitrary-fuzz")] +impl arbitrary::Arbitrary for BeaconTreeHashCache { + fn arbitrary(_u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { + Ok(Self::default()) + } +} + #[cfg(test)] mod test { use super::*; diff --git a/consensus/types/src/chain_spec.rs b/consensus/types/src/chain_spec.rs index b6cb5142f4..4ce57f3ad7 100644 --- a/consensus/types/src/chain_spec.rs +++ b/consensus/types/src/chain_spec.rs @@ -1,14 +1,12 @@ use crate::*; use int_to_bytes::int_to_bytes4; use serde_derive::{Deserialize, Serialize}; -use std::collections::HashMap; +use serde_utils::quoted_u64::MaybeQuoted; use std::fs::File; use std::path::Path; use tree_hash::TreeHash; /// Each of the BLS signature domains. -/// -/// Spec v0.12.1 #[derive(Debug, PartialEq, Clone, Copy)] pub enum Domain { BeaconProposer, @@ -18,11 +16,12 @@ pub enum Domain { VoluntaryExit, SelectionProof, AggregateAndProof, + SyncCommittee, } -/// Holds all the "constants" for a BeaconChain. +/// Lighthouse's internal configuration struct. /// -/// Spec v0.12.1 +/// Contains a mixture of "preset" and "config" values w.r.t to the EF definitions. #[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] #[derive(PartialEq, Debug, Clone)] pub struct ChainSpec { @@ -87,13 +86,13 @@ pub struct ChainSpec { /* * Signature domains */ - domain_beacon_proposer: u32, - domain_beacon_attester: u32, - domain_randao: u32, - domain_deposit: u32, - domain_voluntary_exit: u32, - domain_selection_proof: u32, - domain_aggregate_and_proof: u32, + pub(crate) domain_beacon_proposer: u32, + pub(crate) domain_beacon_attester: u32, + pub(crate) domain_randao: u32, + pub(crate) domain_deposit: u32, + pub(crate) domain_voluntary_exit: u32, + pub(crate) domain_selection_proof: u32, + pub(crate) domain_aggregate_and_proof: u32, /* * Fork choice @@ -109,6 +108,23 @@ pub struct ChainSpec { pub deposit_network_id: u64, pub deposit_contract_address: Address, + /* + * Altair hard fork params + */ + pub inactivity_penalty_quotient_altair: u64, + pub min_slashing_penalty_quotient_altair: u64, + pub proportional_slashing_multiplier_altair: u64, + pub epochs_per_sync_committee_period: Epoch, + pub inactivity_score_bias: u64, + pub inactivity_score_recovery_rate: u64, + pub min_sync_committee_participants: u64, + pub(crate) domain_sync_committee: u32, + pub(crate) domain_sync_committee_selection_proof: u32, + pub(crate) domain_contribution_and_proof: u32, + pub altair_fork_version: [u8; 4], + /// The Altair fork epoch is optional, with `None` representing "Altair never happens". + pub altair_fork_epoch: Option, + /* * Networking */ @@ -123,6 +139,12 @@ pub struct ChainSpec { } impl ChainSpec { + /// Construct a `ChainSpec` from a standard config. + pub fn from_config(config: &Config) -> Option { + let spec = T::default_spec(); + config.apply_to_chain_spec::(&spec) + } + /// Returns an `EnrForkId` for the given `slot`. /// /// Presently, we don't have any forks so we just ignore the slot. In the future this function @@ -146,6 +168,19 @@ impl ChainSpec { None } + /// Returns the name of the fork which is active at `slot`. + pub fn fork_name_at_slot(&self, slot: Slot) -> ForkName { + self.fork_name_at_epoch(slot.epoch(E::slots_per_epoch())) + } + + /// Returns the name of the fork which is active at `epoch`. + pub fn fork_name_at_epoch(&self, epoch: Epoch) -> ForkName { + match self.altair_fork_epoch { + Some(fork_epoch) if epoch >= fork_epoch => ForkName::Altair, + _ => ForkName::Base, + } + } + /// Get the domain number, unmodified by the fork. /// /// Spec v0.12.1 @@ -158,6 +193,7 @@ impl ChainSpec { Domain::VoluntaryExit => self.domain_voluntary_exit, Domain::SelectionProof => self.domain_selection_proof, Domain::AggregateAndProof => self.domain_aggregate_and_proof, + Domain::SyncCommittee => self.domain_sync_committee, } } @@ -211,13 +247,15 @@ impl ChainSpec { ) -> [u8; 4] { let mut result = [0; 4]; let root = Self::compute_fork_data_root(current_version, genesis_validators_root); - result.copy_from_slice(&root.as_bytes()[0..4]); + result.copy_from_slice( + root.as_bytes() + .get(0..4) + .expect("root hash is at least 4 bytes"), + ); result } /// Compute a domain by applying the given `fork_version`. - /// - /// Spec v0.12.1 pub fn compute_domain( &self, domain: Domain, @@ -229,7 +267,10 @@ impl ChainSpec { let mut domain = [0; 32]; domain[0..4].copy_from_slice(&int_to_bytes4(domain_constant)); domain[4..].copy_from_slice( - &Self::compute_fork_data_root(fork_version, genesis_validators_root)[..28], + Self::compute_fork_data_root(fork_version, genesis_validators_root) + .as_bytes() + .get(..28) + .expect("fork has is 32 bytes so first 28 bytes should exist"), ); Hash256::from(domain) @@ -265,10 +306,22 @@ impl ChainSpec { /* * Gwei values */ - min_deposit_amount: u64::pow(2, 0).saturating_mul(u64::pow(10, 9)), - max_effective_balance: u64::pow(2, 5).saturating_mul(u64::pow(10, 9)), - ejection_balance: u64::pow(2, 4).saturating_mul(u64::pow(10, 9)), - effective_balance_increment: u64::pow(2, 0).saturating_mul(u64::pow(10, 9)), + min_deposit_amount: option_wrapper(|| { + u64::checked_pow(2, 0)?.checked_mul(u64::checked_pow(10, 9)?) + }) + .expect("calculation does not overflow"), + max_effective_balance: option_wrapper(|| { + u64::checked_pow(2, 5)?.checked_mul(u64::checked_pow(10, 9)?) + }) + .expect("calculation does not overflow"), + ejection_balance: option_wrapper(|| { + u64::checked_pow(2, 4)?.checked_mul(u64::checked_pow(10, 9)?) + }) + .expect("calculation does not overflow"), + effective_balance_increment: option_wrapper(|| { + u64::checked_pow(2, 0)?.checked_mul(u64::checked_pow(10, 9)?) + }) + .expect("calculation does not overflow"), /* * Initial Values @@ -294,7 +347,7 @@ impl ChainSpec { base_reward_factor: 64, whistleblower_reward_quotient: 512, proposer_reward_quotient: 8, - inactivity_penalty_quotient: u64::pow(2, 26), + inactivity_penalty_quotient: u64::checked_pow(2, 26).expect("pow does not overflow"), min_slashing_penalty_quotient: 128, proportional_slashing_multiplier: 1, @@ -325,6 +378,26 @@ impl ChainSpec { .parse() .expect("chain spec deposit contract address"), + /* + * Altair hard fork params + */ + inactivity_penalty_quotient_altair: option_wrapper(|| { + u64::checked_pow(2, 24)?.checked_mul(3) + }) + .expect("calculation does not overflow"), + min_slashing_penalty_quotient_altair: u64::checked_pow(2, 6) + .expect("pow does not overflow"), + proportional_slashing_multiplier_altair: 2, + inactivity_score_bias: 4, + inactivity_score_recovery_rate: 16, + min_sync_committee_participants: 1, + epochs_per_sync_committee_period: Epoch::new(256), + domain_sync_committee: 7, + domain_sync_committee_selection_proof: 8, + domain_contribution_and_proof: 9, + altair_fork_version: [0x01, 0x00, 0x00, 0x00], + altair_fork_epoch: Some(Epoch::new(u64::MAX)), + /* * Network specific */ @@ -340,8 +413,6 @@ impl ChainSpec { } /// Ethereum Foundation minimal spec, as defined in the eth2.0-specs repo. - /// - /// Spec v0.12.1 pub fn minimal() -> Self { // Note: bootnodes to be updated when static nodes exist. let boot_nodes = vec![]; @@ -357,10 +428,15 @@ impl ChainSpec { shard_committee_period: 64, genesis_delay: 300, seconds_per_slot: 6, - inactivity_penalty_quotient: u64::pow(2, 25), + inactivity_penalty_quotient: u64::checked_pow(2, 25).expect("pow does not overflow"), min_slashing_penalty_quotient: 64, proportional_slashing_multiplier: 2, safe_slots_to_update_justified: 2, + // Altair + epochs_per_sync_committee_period: Epoch::new(8), + altair_fork_version: [0x01, 0x00, 0x00, 0x01], + altair_fork_epoch: Some(Epoch::new(u64::MAX)), + // Other network_id: 2, // lighthouse testnet network id deposit_chain_id: 5, deposit_network_id: 5, @@ -371,24 +447,6 @@ impl ChainSpec { ..ChainSpec::mainnet() } } - - /// Suits the `v0.12.3` version of the eth2 spec: - /// https://github.com/ethereum/eth2.0-specs/blob/v0.12.3/configs/mainnet/phase0.yaml - /// - /// This method only needs to exist whilst we provide support for "legacy" testnets prior to v1.0.0 - /// (e.g., Medalla, Pyrmont, Spadina, Altona, etc.). - pub fn v012_legacy() -> Self { - let boot_nodes = vec![]; - - Self { - genesis_delay: 172_800, // 2 days - inactivity_penalty_quotient: u64::pow(2, 24), - min_slashing_penalty_quotient: 32, - eth1_follow_distance: 1024, - boot_nodes, - ..ChainSpec::mainnet() - } - } } impl Default for ChainSpec { @@ -397,6 +455,175 @@ impl Default for ChainSpec { } } +/// Exact implementation of the *config* object from the Ethereum spec (YAML/JSON). +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +#[serde(rename_all = "UPPERCASE")] +pub struct Config { + #[serde(default)] + pub preset_base: String, + + #[serde(with = "serde_utils::quoted_u64")] + min_genesis_active_validator_count: u64, + #[serde(with = "serde_utils::quoted_u64")] + min_genesis_time: u64, + #[serde(with = "serde_utils::bytes_4_hex")] + genesis_fork_version: [u8; 4], + #[serde(with = "serde_utils::quoted_u64")] + genesis_delay: u64, + + #[serde(with = "serde_utils::bytes_4_hex")] + altair_fork_version: [u8; 4], + altair_fork_epoch: Option>, + + #[serde(with = "serde_utils::quoted_u64")] + seconds_per_slot: u64, + #[serde(with = "serde_utils::quoted_u64")] + seconds_per_eth1_block: u64, + #[serde(with = "serde_utils::quoted_u64")] + min_validator_withdrawability_delay: Epoch, + #[serde(with = "serde_utils::quoted_u64")] + shard_committee_period: u64, + #[serde(with = "serde_utils::quoted_u64")] + eth1_follow_distance: u64, + + #[serde(with = "serde_utils::quoted_u64")] + inactivity_score_bias: u64, + #[serde(with = "serde_utils::quoted_u64")] + inactivity_score_recovery_rate: u64, + #[serde(with = "serde_utils::quoted_u64")] + ejection_balance: u64, + #[serde(with = "serde_utils::quoted_u64")] + min_per_epoch_churn_limit: u64, + #[serde(with = "serde_utils::quoted_u64")] + churn_limit_quotient: u64, + + #[serde(with = "serde_utils::quoted_u64")] + deposit_chain_id: u64, + #[serde(with = "serde_utils::quoted_u64")] + deposit_network_id: u64, + deposit_contract_address: Address, +} + +impl Default for Config { + fn default() -> Self { + let chain_spec = MainnetEthSpec::default_spec(); + Config::from_chain_spec::(&chain_spec) + } +} + +impl Config { + /// Maps `self` to an identifier for an `EthSpec` instance. + /// + /// Returns `None` if there is no match. + pub fn eth_spec_id(&self) -> Option { + match self.preset_base.as_str() { + "minimal" => Some(EthSpecId::Minimal), + "mainnet" => Some(EthSpecId::Mainnet), + _ => None, + } + } + + pub fn from_chain_spec(spec: &ChainSpec) -> Self { + Self { + preset_base: T::spec_name().to_string(), + + min_genesis_active_validator_count: spec.min_genesis_active_validator_count, + min_genesis_time: spec.min_genesis_time, + genesis_fork_version: spec.genesis_fork_version, + genesis_delay: spec.genesis_delay, + + altair_fork_version: spec.altair_fork_version, + altair_fork_epoch: spec + .altair_fork_epoch + .map(|slot| MaybeQuoted { value: slot }), + + seconds_per_slot: spec.seconds_per_slot, + seconds_per_eth1_block: spec.seconds_per_eth1_block, + min_validator_withdrawability_delay: spec.min_validator_withdrawability_delay, + shard_committee_period: spec.shard_committee_period, + eth1_follow_distance: spec.eth1_follow_distance, + + inactivity_score_bias: spec.inactivity_score_bias, + inactivity_score_recovery_rate: spec.inactivity_score_recovery_rate, + ejection_balance: spec.ejection_balance, + churn_limit_quotient: spec.churn_limit_quotient, + min_per_epoch_churn_limit: spec.min_per_epoch_churn_limit, + + deposit_chain_id: spec.deposit_chain_id, + deposit_network_id: spec.deposit_network_id, + deposit_contract_address: spec.deposit_contract_address, + } + } + + pub fn from_file(filename: &Path) -> Result { + let f = File::open(filename) + .map_err(|e| format!("Error opening spec at {}: {:?}", filename.display(), e))?; + serde_yaml::from_reader(f) + .map_err(|e| format!("Error parsing spec at {}: {:?}", filename.display(), e)) + } + + pub fn apply_to_chain_spec(&self, chain_spec: &ChainSpec) -> Option { + // Pattern match here to avoid missing any fields. + let &Config { + ref preset_base, + min_genesis_active_validator_count, + min_genesis_time, + genesis_fork_version, + genesis_delay, + altair_fork_version, + altair_fork_epoch, + seconds_per_slot, + seconds_per_eth1_block, + min_validator_withdrawability_delay, + shard_committee_period, + eth1_follow_distance, + inactivity_score_bias, + inactivity_score_recovery_rate, + ejection_balance, + min_per_epoch_churn_limit, + churn_limit_quotient, + deposit_chain_id, + deposit_network_id, + deposit_contract_address, + } = self; + + if preset_base != T::spec_name().to_string().as_str() { + return None; + } + + Some(ChainSpec { + min_genesis_active_validator_count, + min_genesis_time, + genesis_fork_version, + genesis_delay, + altair_fork_version, + altair_fork_epoch: altair_fork_epoch.map(|q| q.value), + seconds_per_slot, + seconds_per_eth1_block, + min_validator_withdrawability_delay, + shard_committee_period, + eth1_follow_distance, + inactivity_score_bias, + inactivity_score_recovery_rate, + ejection_balance, + min_per_epoch_churn_limit, + churn_limit_quotient, + deposit_chain_id, + deposit_network_id, + deposit_contract_address, + ..chain_spec.clone() + }) + } +} + +/// A simple wrapper to permit the in-line use of `?`. +fn option_wrapper(f: F) -> Option +where + F: Fn() -> Option, +{ + f() +} + #[cfg(test)] mod tests { use super::*; @@ -446,359 +673,7 @@ mod tests { spec.domain_aggregate_and_proof, &spec, ); - } -} - -/// YAML config file as defined by the spec. -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] -#[serde(rename_all = "UPPERCASE")] -pub struct YamlConfig { - pub config_name: String, - // ChainSpec - #[serde(with = "serde_utils::quoted_u64")] - max_committees_per_slot: u64, - #[serde(with = "serde_utils::quoted_u64")] - target_committee_size: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_per_epoch_churn_limit: u64, - #[serde(with = "serde_utils::quoted_u64")] - churn_limit_quotient: u64, - #[serde(with = "serde_utils::quoted_u8")] - shuffle_round_count: u8, - #[serde(with = "serde_utils::quoted_u64")] - min_genesis_active_validator_count: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_genesis_time: u64, - #[serde(with = "serde_utils::quoted_u64")] - genesis_delay: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_deposit_amount: u64, - #[serde(with = "serde_utils::quoted_u64")] - max_effective_balance: u64, - #[serde(with = "serde_utils::quoted_u64")] - ejection_balance: u64, - #[serde(with = "serde_utils::quoted_u64")] - effective_balance_increment: u64, - #[serde(with = "serde_utils::quoted_u64")] - hysteresis_quotient: u64, - #[serde(with = "serde_utils::quoted_u64")] - hysteresis_downward_multiplier: u64, - #[serde(with = "serde_utils::quoted_u64")] - hysteresis_upward_multiplier: u64, - #[serde(with = "serde_utils::bytes_4_hex")] - genesis_fork_version: [u8; 4], - #[serde(with = "serde_utils::u8_hex")] - bls_withdrawal_prefix: u8, - #[serde(with = "serde_utils::quoted_u64")] - seconds_per_slot: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_attestation_inclusion_delay: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_seed_lookahead: u64, - #[serde(with = "serde_utils::quoted_u64")] - max_seed_lookahead: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_epochs_to_inactivity_penalty: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_validator_withdrawability_delay: u64, - #[serde(with = "serde_utils::quoted_u64")] - shard_committee_period: u64, - #[serde(with = "serde_utils::quoted_u64")] - base_reward_factor: u64, - #[serde(with = "serde_utils::quoted_u64")] - whistleblower_reward_quotient: u64, - #[serde(with = "serde_utils::quoted_u64")] - proposer_reward_quotient: u64, - #[serde(with = "serde_utils::quoted_u64")] - inactivity_penalty_quotient: u64, - #[serde(with = "serde_utils::quoted_u64")] - min_slashing_penalty_quotient: u64, - #[serde(with = "serde_utils::quoted_u64")] - proportional_slashing_multiplier: u64, - #[serde(with = "serde_utils::quoted_u64")] - safe_slots_to_update_justified: u64, - - #[serde(with = "serde_utils::u32_hex")] - domain_beacon_proposer: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_beacon_attester: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_randao: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_deposit: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_voluntary_exit: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_selection_proof: u32, - #[serde(with = "serde_utils::u32_hex")] - domain_aggregate_and_proof: u32, - // EthSpec - #[serde(with = "serde_utils::quoted_u32")] - max_validators_per_committee: u32, - #[serde(with = "serde_utils::quoted_u64")] - slots_per_epoch: u64, - #[serde(with = "serde_utils::quoted_u64")] - epochs_per_eth1_voting_period: u64, - #[serde(with = "serde_utils::quoted_u64")] - slots_per_historical_root: u64, - #[serde(with = "serde_utils::quoted_u64")] - epochs_per_historical_vector: u64, - #[serde(with = "serde_utils::quoted_u64")] - epochs_per_slashings_vector: u64, - #[serde(with = "serde_utils::quoted_u64")] - historical_roots_limit: u64, - #[serde(with = "serde_utils::quoted_u64")] - validator_registry_limit: u64, - #[serde(with = "serde_utils::quoted_u32")] - max_proposer_slashings: u32, - #[serde(with = "serde_utils::quoted_u32")] - max_attester_slashings: u32, - #[serde(with = "serde_utils::quoted_u32")] - max_attestations: u32, - #[serde(with = "serde_utils::quoted_u32")] - max_deposits: u32, - #[serde(with = "serde_utils::quoted_u32")] - max_voluntary_exits: u32, - // Validator - #[serde(with = "serde_utils::quoted_u64")] - eth1_follow_distance: u64, - #[serde(with = "serde_utils::quoted_u64")] - target_aggregators_per_committee: u64, - #[serde(with = "serde_utils::quoted_u64")] - random_subnets_per_validator: u64, - #[serde(with = "serde_utils::quoted_u64")] - epochs_per_random_subnet_subscription: u64, - #[serde(with = "serde_utils::quoted_u64")] - seconds_per_eth1_block: u64, - #[serde(with = "serde_utils::quoted_u64")] - deposit_chain_id: u64, - #[serde(with = "serde_utils::quoted_u64")] - deposit_network_id: u64, - deposit_contract_address: Address, - - // Extra fields (could be from a future hard-fork that we don't yet know). - #[serde(flatten)] - pub extra_fields: HashMap, -} - -impl Default for YamlConfig { - fn default() -> Self { - let chain_spec = MainnetEthSpec::default_spec(); - YamlConfig::from_spec::(&chain_spec) - } -} - -/// Spec v0.12.1 -impl YamlConfig { - /// Maps `self.config_name` to an identifier for an `EthSpec` instance. - /// - /// Returns `None` if there is no match. - pub fn eth_spec_id(&self) -> Option { - Some(match self.config_name.as_str() { - "mainnet" => EthSpecId::Mainnet, - "minimal" => EthSpecId::Minimal, - "toledo" => EthSpecId::Mainnet, - "prater" => EthSpecId::Mainnet, - "pyrmont" => EthSpecId::Mainnet, - "spadina" => EthSpecId::V012Legacy, - "medalla" => EthSpecId::V012Legacy, - "altona" => EthSpecId::V012Legacy, - _ => return None, - }) - } - - pub fn from_spec(spec: &ChainSpec) -> Self { - Self { - config_name: T::spec_name().to_string(), - // ChainSpec - max_committees_per_slot: spec.max_committees_per_slot as u64, - target_committee_size: spec.target_committee_size as u64, - min_per_epoch_churn_limit: spec.min_per_epoch_churn_limit, - churn_limit_quotient: spec.churn_limit_quotient, - shuffle_round_count: spec.shuffle_round_count, - min_genesis_active_validator_count: spec.min_genesis_active_validator_count, - min_genesis_time: spec.min_genesis_time, - genesis_delay: spec.genesis_delay, - min_deposit_amount: spec.min_deposit_amount, - max_effective_balance: spec.max_effective_balance, - ejection_balance: spec.ejection_balance, - effective_balance_increment: spec.effective_balance_increment, - hysteresis_quotient: spec.hysteresis_quotient, - hysteresis_downward_multiplier: spec.hysteresis_downward_multiplier, - hysteresis_upward_multiplier: spec.hysteresis_upward_multiplier, - proportional_slashing_multiplier: spec.proportional_slashing_multiplier, - bls_withdrawal_prefix: spec.bls_withdrawal_prefix_byte, - seconds_per_slot: spec.seconds_per_slot, - min_attestation_inclusion_delay: spec.min_attestation_inclusion_delay, - min_seed_lookahead: spec.min_seed_lookahead.into(), - max_seed_lookahead: spec.max_seed_lookahead.into(), - min_validator_withdrawability_delay: spec.min_validator_withdrawability_delay.into(), - shard_committee_period: spec.shard_committee_period, - min_epochs_to_inactivity_penalty: spec.min_epochs_to_inactivity_penalty, - base_reward_factor: spec.base_reward_factor, - whistleblower_reward_quotient: spec.whistleblower_reward_quotient, - proposer_reward_quotient: spec.proposer_reward_quotient, - inactivity_penalty_quotient: spec.inactivity_penalty_quotient, - min_slashing_penalty_quotient: spec.min_slashing_penalty_quotient, - genesis_fork_version: spec.genesis_fork_version, - safe_slots_to_update_justified: spec.safe_slots_to_update_justified, - domain_beacon_proposer: spec.domain_beacon_proposer, - domain_beacon_attester: spec.domain_beacon_attester, - domain_randao: spec.domain_randao, - domain_deposit: spec.domain_deposit, - domain_voluntary_exit: spec.domain_voluntary_exit, - domain_selection_proof: spec.domain_selection_proof, - domain_aggregate_and_proof: spec.domain_aggregate_and_proof, - - // EthSpec - max_validators_per_committee: T::MaxValidatorsPerCommittee::to_u32(), - slots_per_epoch: T::slots_per_epoch(), - epochs_per_eth1_voting_period: T::EpochsPerEth1VotingPeriod::to_u64(), - slots_per_historical_root: T::slots_per_historical_root() as u64, - epochs_per_historical_vector: T::epochs_per_historical_vector() as u64, - epochs_per_slashings_vector: T::EpochsPerSlashingsVector::to_u64(), - historical_roots_limit: T::HistoricalRootsLimit::to_u64(), - validator_registry_limit: T::ValidatorRegistryLimit::to_u64(), - max_proposer_slashings: T::MaxProposerSlashings::to_u32(), - max_attester_slashings: T::MaxAttesterSlashings::to_u32(), - max_attestations: T::MaxAttestations::to_u32(), - max_deposits: T::MaxDeposits::to_u32(), - max_voluntary_exits: T::MaxVoluntaryExits::to_u32(), - - // Validator - eth1_follow_distance: spec.eth1_follow_distance, - target_aggregators_per_committee: spec.target_aggregators_per_committee, - random_subnets_per_validator: spec.random_subnets_per_validator, - epochs_per_random_subnet_subscription: spec.epochs_per_random_subnet_subscription, - seconds_per_eth1_block: spec.seconds_per_eth1_block, - deposit_chain_id: spec.deposit_chain_id, - deposit_network_id: spec.deposit_network_id, - deposit_contract_address: spec.deposit_contract_address, - - extra_fields: HashMap::new(), - } - } - - pub fn from_file(filename: &Path) -> Result { - let f = File::open(filename) - .map_err(|e| format!("Error opening spec at {}: {:?}", filename.display(), e))?; - serde_yaml::from_reader(f) - .map_err(|e| format!("Error parsing spec at {}: {:?}", filename.display(), e)) - } - - pub fn apply_to_chain_spec(&self, chain_spec: &ChainSpec) -> Option { - // Check that YAML values match type-level EthSpec constants - if self.max_validators_per_committee != T::MaxValidatorsPerCommittee::to_u32() - || self.slots_per_epoch != T::slots_per_epoch() - || self.epochs_per_eth1_voting_period != T::EpochsPerEth1VotingPeriod::to_u64() - || self.slots_per_historical_root != T::slots_per_historical_root() as u64 - || self.epochs_per_historical_vector != T::epochs_per_historical_vector() as u64 - || self.epochs_per_slashings_vector != T::EpochsPerSlashingsVector::to_u64() - || self.historical_roots_limit != T::HistoricalRootsLimit::to_u64() - || self.validator_registry_limit != T::ValidatorRegistryLimit::to_u64() - || self.max_proposer_slashings != T::MaxProposerSlashings::to_u32() - || self.max_attester_slashings != T::MaxAttesterSlashings::to_u32() - || self.max_attestations != T::MaxAttestations::to_u32() - || self.max_deposits != T::MaxDeposits::to_u32() - || self.max_voluntary_exits != T::MaxVoluntaryExits::to_u32() - { - return None; - } - - // Create a ChainSpec from the yaml config - Some(ChainSpec { - /* - * Misc - */ - max_committees_per_slot: self.max_committees_per_slot as usize, - target_committee_size: self.target_committee_size as usize, - min_per_epoch_churn_limit: self.min_per_epoch_churn_limit, - churn_limit_quotient: self.churn_limit_quotient, - shuffle_round_count: self.shuffle_round_count, - min_genesis_active_validator_count: self.min_genesis_active_validator_count, - min_genesis_time: self.min_genesis_time, - hysteresis_quotient: self.hysteresis_quotient, - hysteresis_downward_multiplier: self.hysteresis_downward_multiplier, - hysteresis_upward_multiplier: self.hysteresis_upward_multiplier, - proportional_slashing_multiplier: self.proportional_slashing_multiplier, - /* - * Fork Choice - */ - safe_slots_to_update_justified: self.safe_slots_to_update_justified, - /* - * Validator - */ - eth1_follow_distance: self.eth1_follow_distance, - target_aggregators_per_committee: self.target_aggregators_per_committee, - random_subnets_per_validator: self.random_subnets_per_validator, - epochs_per_random_subnet_subscription: self.epochs_per_random_subnet_subscription, - seconds_per_eth1_block: self.seconds_per_eth1_block, - deposit_chain_id: self.deposit_chain_id, - deposit_network_id: self.deposit_network_id, - deposit_contract_address: self.deposit_contract_address, - /* - * Gwei values - */ - min_deposit_amount: self.min_deposit_amount, - max_effective_balance: self.max_effective_balance, - ejection_balance: self.ejection_balance, - effective_balance_increment: self.effective_balance_increment, - /* - * Initial values - */ - genesis_fork_version: self.genesis_fork_version, - bls_withdrawal_prefix_byte: self.bls_withdrawal_prefix, - /* - * Time parameters - */ - genesis_delay: self.genesis_delay, - seconds_per_slot: self.seconds_per_slot, - min_attestation_inclusion_delay: self.min_attestation_inclusion_delay, - min_seed_lookahead: Epoch::from(self.min_seed_lookahead), - max_seed_lookahead: Epoch::from(self.max_seed_lookahead), - min_validator_withdrawability_delay: Epoch::from( - self.min_validator_withdrawability_delay, - ), - shard_committee_period: self.shard_committee_period, - min_epochs_to_inactivity_penalty: self.min_epochs_to_inactivity_penalty, - /* - * Reward and penalty quotients - */ - base_reward_factor: self.base_reward_factor, - whistleblower_reward_quotient: self.whistleblower_reward_quotient, - proposer_reward_quotient: self.proposer_reward_quotient, - inactivity_penalty_quotient: self.inactivity_penalty_quotient, - min_slashing_penalty_quotient: self.min_slashing_penalty_quotient, - /* - * Signature domains - */ - domain_beacon_proposer: self.domain_beacon_proposer, - domain_beacon_attester: self.domain_beacon_attester, - domain_randao: self.domain_randao, - domain_deposit: self.domain_deposit, - domain_voluntary_exit: self.domain_voluntary_exit, - domain_selection_proof: self.domain_selection_proof, - domain_aggregate_and_proof: self.domain_aggregate_and_proof, - /* - * Lighthouse-specific parameters - * - * These are paramaters that are present in the chain spec but aren't part of the YAML - * config. We avoid using `..chain_spec` so that changes to the set of fields don't - * accidentally get forgotten (explicit better than implicit, yada yada). - */ - boot_nodes: chain_spec.boot_nodes.clone(), - network_id: chain_spec.network_id, - attestation_propagation_slot_range: chain_spec.attestation_propagation_slot_range, - maximum_gossip_clock_disparity_millis: chain_spec.maximum_gossip_clock_disparity_millis, - attestation_subnet_count: chain_spec.attestation_subnet_count, - /* - * Constants, not configurable. - */ - genesis_slot: chain_spec.genesis_slot, - far_future_epoch: chain_spec.far_future_epoch, - base_rewards_per_epoch: chain_spec.base_rewards_per_epoch, - deposit_contract_tree_depth: chain_spec.deposit_contract_tree_depth, - }) + test_domain(Domain::SyncCommittee, spec.domain_sync_committee, &spec); } } @@ -819,7 +694,7 @@ mod yaml_tests { .expect("error opening file"); let minimal_spec = ChainSpec::minimal(); - let yamlconfig = YamlConfig::from_spec::(&minimal_spec); + let yamlconfig = Config::from_chain_spec::(&minimal_spec); // write fresh minimal config to file serde_yaml::to_writer(writer, &yamlconfig).expect("failed to write or serialize"); @@ -829,7 +704,7 @@ mod yaml_tests { .open(tmp_file.as_ref()) .expect("error while opening the file"); // deserialize minimal config from file - let from: YamlConfig = serde_yaml::from_reader(reader).expect("error while deserializing"); + let from: Config = serde_yaml::from_reader(reader).expect("error while deserializing"); assert_eq!(from, yamlconfig); } @@ -842,7 +717,7 @@ mod yaml_tests { .open(tmp_file.as_ref()) .expect("error opening file"); let mainnet_spec = ChainSpec::mainnet(); - let yamlconfig = YamlConfig::from_spec::(&mainnet_spec); + let yamlconfig = Config::from_chain_spec::(&mainnet_spec); serde_yaml::to_writer(writer, &yamlconfig).expect("failed to write or serialize"); let reader = OpenOptions::new() @@ -850,42 +725,17 @@ mod yaml_tests { .write(false) .open(tmp_file.as_ref()) .expect("error while opening the file"); - let from: YamlConfig = serde_yaml::from_reader(reader).expect("error while deserializing"); - assert_eq!(from, yamlconfig); - } - - #[test] - fn extra_fields_round_trip() { - let tmp_file = NamedTempFile::new().expect("failed to create temp file"); - let writer = OpenOptions::new() - .read(false) - .write(true) - .open(tmp_file.as_ref()) - .expect("error opening file"); - let mainnet_spec = ChainSpec::mainnet(); - let mut yamlconfig = YamlConfig::from_spec::(&mainnet_spec); - let (k1, v1) = ("SAMPLE_HARDFORK_KEY1", "123456789"); - let (k2, v2) = ("SAMPLE_HARDFORK_KEY2", "987654321"); - yamlconfig.extra_fields.insert(k1.into(), v1.into()); - yamlconfig.extra_fields.insert(k2.into(), v2.into()); - serde_yaml::to_writer(writer, &yamlconfig).expect("failed to write or serialize"); - - let reader = OpenOptions::new() - .read(true) - .write(false) - .open(tmp_file.as_ref()) - .expect("error while opening the file"); - let from: YamlConfig = serde_yaml::from_reader(reader).expect("error while deserializing"); + let from: Config = serde_yaml::from_reader(reader).expect("error while deserializing"); assert_eq!(from, yamlconfig); } #[test] fn apply_to_spec() { let mut spec = ChainSpec::minimal(); - let yamlconfig = YamlConfig::from_spec::(&spec); + let yamlconfig = Config::from_chain_spec::(&spec); // modifying the original spec - spec.max_committees_per_slot += 1; + spec.min_genesis_active_validator_count += 1; spec.deposit_chain_id += 1; spec.deposit_network_id += 1; // Applying a yaml config with incorrect EthSpec should fail diff --git a/consensus/types/src/config_and_preset.rs b/consensus/types/src/config_and_preset.rs new file mode 100644 index 0000000000..16d36c850c --- /dev/null +++ b/consensus/types/src/config_and_preset.rs @@ -0,0 +1,119 @@ +use crate::{AltairPreset, BasePreset, ChainSpec, Config, EthSpec}; +use serde_derive::{Deserialize, Serialize}; +use std::collections::HashMap; + +/// Fusion of a runtime-config with the compile-time preset values. +/// +/// Mostly useful for the API. +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +pub struct ConfigAndPreset { + #[serde(flatten)] + pub config: Config, + + #[serde(flatten)] + pub base_preset: BasePreset, + #[serde(flatten)] + pub altair_preset: AltairPreset, + + /// The `extra_fields` map allows us to gracefully decode fields intended for future hard forks. + #[serde(flatten)] + pub extra_fields: HashMap, +} + +impl ConfigAndPreset { + pub fn from_chain_spec(spec: &ChainSpec) -> Self { + let config = Config::from_chain_spec::(spec); + let base_preset = BasePreset::from_chain_spec::(spec); + let altair_preset = AltairPreset::from_chain_spec::(spec); + let extra_fields = HashMap::new(); + + Self { + config, + base_preset, + altair_preset, + extra_fields, + } + } + + /// Add fields that were previously part of the config but are now constants. + pub fn make_backwards_compat(&mut self, spec: &ChainSpec) { + let hex_string = |value: &[u8]| format!("0x{}", hex::encode(&value)); + let u32_hex = |v: u32| hex_string(&v.to_le_bytes()); + let u8_hex = |v: u8| hex_string(&v.to_le_bytes()); + let fields = vec![ + ("config_name", self.config.preset_base.clone()), + ( + "bls_withdrawal_prefix", + u8_hex(spec.bls_withdrawal_prefix_byte), + ), + ( + "domain_beacon_proposer", + u32_hex(spec.domain_beacon_proposer), + ), + ( + "domain_beacon_attester", + u32_hex(spec.domain_beacon_attester), + ), + ("domain_randao", u32_hex(spec.domain_randao)), + ("domain_deposit", u32_hex(spec.domain_deposit)), + ("domain_voluntary_exit", u32_hex(spec.domain_voluntary_exit)), + ( + "domain_selection_proof", + u32_hex(spec.domain_selection_proof), + ), + ( + "domain_aggregate_and_proof", + u32_hex(spec.domain_aggregate_and_proof), + ), + ( + "target_aggregators_per_committee", + spec.target_aggregators_per_committee.to_string(), + ), + ( + "random_subnets_per_validator", + spec.random_subnets_per_validator.to_string(), + ), + ( + "epochs_per_random_subnet_subscription", + spec.epochs_per_random_subnet_subscription.to_string(), + ), + ]; + for (key, value) in fields { + self.extra_fields.insert(key.to_uppercase(), value); + } + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::MainnetEthSpec; + use std::fs::OpenOptions; + use tempfile::NamedTempFile; + + #[test] + fn extra_fields_round_trip() { + let tmp_file = NamedTempFile::new().expect("failed to create temp file"); + let writer = OpenOptions::new() + .read(false) + .write(true) + .open(tmp_file.as_ref()) + .expect("error opening file"); + let mainnet_spec = ChainSpec::mainnet(); + let mut yamlconfig = ConfigAndPreset::from_chain_spec::(&mainnet_spec); + let (k1, v1) = ("SAMPLE_HARDFORK_KEY1", "123456789"); + let (k2, v2) = ("SAMPLE_HARDFORK_KEY2", "987654321"); + yamlconfig.extra_fields.insert(k1.into(), v1.into()); + yamlconfig.extra_fields.insert(k2.into(), v2.into()); + serde_yaml::to_writer(writer, &yamlconfig).expect("failed to write or serialize"); + + let reader = OpenOptions::new() + .read(true) + .write(false) + .open(tmp_file.as_ref()) + .expect("error while opening the file"); + let from: ConfigAndPreset = + serde_yaml::from_reader(reader).expect("error while deserializing"); + assert_eq!(from, yamlconfig); + } +} diff --git a/consensus/types/src/consts.rs b/consensus/types/src/consts.rs new file mode 100644 index 0000000000..1001d702a7 --- /dev/null +++ b/consensus/types/src/consts.rs @@ -0,0 +1,19 @@ +pub mod altair { + pub const TIMELY_SOURCE_FLAG_INDEX: usize = 0; + pub const TIMELY_TARGET_FLAG_INDEX: usize = 1; + pub const TIMELY_HEAD_FLAG_INDEX: usize = 2; + pub const TIMELY_SOURCE_WEIGHT: u64 = 14; + pub const TIMELY_TARGET_WEIGHT: u64 = 26; + pub const TIMELY_HEAD_WEIGHT: u64 = 14; + pub const SYNC_REWARD_WEIGHT: u64 = 2; + pub const PROPOSER_WEIGHT: u64 = 8; + pub const WEIGHT_DENOMINATOR: u64 = 64; + + pub const PARTICIPATION_FLAG_WEIGHTS: [u64; NUM_FLAG_INDICES] = [ + TIMELY_SOURCE_WEIGHT, + TIMELY_TARGET_WEIGHT, + TIMELY_HEAD_WEIGHT, + ]; + + pub const NUM_FLAG_INDICES: usize = 3; +} diff --git a/consensus/types/src/eth_spec.rs b/consensus/types/src/eth_spec.rs index 3cd5555a2c..dbf70f78e3 100644 --- a/consensus/types/src/eth_spec.rs +++ b/consensus/types/src/eth_spec.rs @@ -3,15 +3,14 @@ use crate::*; use safe_arith::SafeArith; use serde_derive::{Deserialize, Serialize}; use ssz_types::typenum::{ - Unsigned, U0, U1024, U1099511627776, U128, U16, U16777216, U2, U2048, U32, U4, U4096, U64, - U65536, U8, U8192, + Unsigned, U0, U1024, U1099511627776, U128, U16, U16777216, U2, U2048, U32, U4, U4096, U512, + U64, U65536, U8, U8192, }; use std::fmt::{self, Debug}; use std::str::FromStr; const MAINNET: &str = "mainnet"; const MINIMAL: &str = "minimal"; -const LEGACY: &str = "v0.12-legacy"; /// Used to identify one of the `EthSpec` instances defined here. #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -19,7 +18,6 @@ const LEGACY: &str = "v0.12-legacy"; pub enum EthSpecId { Mainnet, Minimal, - V012Legacy, } impl FromStr for EthSpecId { @@ -29,7 +27,6 @@ impl FromStr for EthSpecId { match s { MAINNET => Ok(EthSpecId::Mainnet), MINIMAL => Ok(EthSpecId::Minimal), - LEGACY => Ok(EthSpecId::V012Legacy), _ => Err(format!("Unknown eth spec: {}", s)), } } @@ -40,7 +37,6 @@ impl fmt::Display for EthSpecId { let s = match self { EthSpecId::Mainnet => MAINNET, EthSpecId::Minimal => MINIMAL, - EthSpecId::V012Legacy => LEGACY, }; write!(f, "{}", s) } @@ -78,6 +74,10 @@ pub trait EthSpec: 'static + Default + Sync + Send + Clone + Debug + PartialEq + type MaxAttestations: Unsigned + Clone + Sync + Send + Debug + PartialEq; type MaxDeposits: Unsigned + Clone + Sync + Send + Debug + PartialEq; type MaxVoluntaryExits: Unsigned + Clone + Sync + Send + Debug + PartialEq; + /* + * New in Altair + */ + type SyncCommitteeSize: Unsigned + Clone + Sync + Send + Debug + PartialEq; /* * Derived values (set these CAREFULLY) */ @@ -182,8 +182,6 @@ macro_rules! params_from_eth_spec { } /// Ethereum Foundation specifications. -/// -/// Spec v0.12.1 #[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] #[derive(Clone, PartialEq, Eq, Debug, Default, Serialize, Deserialize)] pub struct MainnetEthSpec; @@ -205,6 +203,7 @@ impl EthSpec for MainnetEthSpec { type MaxAttestations = U128; type MaxDeposits = U16; type MaxVoluntaryExits = U16; + type SyncCommitteeSize = U512; type MaxPendingAttestations = U4096; // 128 max attestations * 32 slots per epoch type SlotsPerEth1VotingPeriod = U2048; // 64 epochs * 32 slots per epoch @@ -217,11 +216,7 @@ impl EthSpec for MainnetEthSpec { } } -pub type FoundationBeaconState = BeaconState; - /// Ethereum Foundation minimal spec, as defined in the eth2.0-specs repo. -/// -/// Spec v0.12.1 #[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] #[derive(Clone, PartialEq, Eq, Debug, Default, Serialize, Deserialize)] pub struct MinimalEthSpec; @@ -232,6 +227,7 @@ impl EthSpec for MinimalEthSpec { type SlotsPerHistoricalRoot = U64; type EpochsPerHistoricalVector = U64; type EpochsPerSlashingsVector = U64; + type SyncCommitteeSize = U32; type MaxPendingAttestations = U1024; // 128 max attestations * 8 slots per epoch type SlotsPerEth1VotingPeriod = U32; // 4 epochs * 8 slots per epoch @@ -257,46 +253,3 @@ impl EthSpec for MinimalEthSpec { EthSpecId::Minimal } } - -pub type MinimalBeaconState = BeaconState; - -/// Suits the `v0.12.3` version of the eth2 spec: -/// https://github.com/ethereum/eth2.0-specs/blob/v0.12.3/configs/mainnet/phase0.yaml -/// -/// This struct only needs to exist whilst we provide support for "legacy" testnets prior to v1.0.0 -/// (e.g., Medalla, Pyrmont, Spadina, Altona, etc.). -#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] -#[derive(Clone, PartialEq, Eq, Debug, Default, Serialize, Deserialize)] -pub struct V012LegacyEthSpec; - -impl EthSpec for V012LegacyEthSpec { - type EpochsPerEth1VotingPeriod = U32; - type SlotsPerEth1VotingPeriod = U1024; // 32 epochs * 32 slots per epoch - - params_from_eth_spec!(MainnetEthSpec { - SlotsPerEpoch, - SlotsPerHistoricalRoot, - EpochsPerHistoricalVector, - EpochsPerSlashingsVector, - MaxPendingAttestations, - JustificationBitsLength, - SubnetBitfieldLength, - MaxValidatorsPerCommittee, - GenesisEpoch, - HistoricalRootsLimit, - ValidatorRegistryLimit, - MaxProposerSlashings, - MaxAttesterSlashings, - MaxAttestations, - MaxDeposits, - MaxVoluntaryExits - }); - - fn default_spec() -> ChainSpec { - ChainSpec::v012_legacy() - } - - fn spec_name() -> EthSpecId { - EthSpecId::V012Legacy - } -} diff --git a/consensus/types/src/fork_name.rs b/consensus/types/src/fork_name.rs new file mode 100644 index 0000000000..b6c939709a --- /dev/null +++ b/consensus/types/src/fork_name.rs @@ -0,0 +1,47 @@ +use crate::{ChainSpec, Epoch}; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum ForkName { + Base, + Altair, +} + +impl ForkName { + pub fn list_all() -> Vec { + vec![ForkName::Base, ForkName::Altair] + } + + /// Set the activation slots in the given `ChainSpec` so that the fork named by `self` + /// is the only fork in effect from genesis. + pub fn make_genesis_spec(&self, mut spec: ChainSpec) -> ChainSpec { + // Assumes GENESIS_EPOCH = 0, which is safe because it's a constant. + match self { + ForkName::Base => { + spec.altair_fork_epoch = None; + spec + } + ForkName::Altair => { + spec.altair_fork_epoch = Some(Epoch::new(0)); + spec + } + } + } +} + +impl std::str::FromStr for ForkName { + type Err = (); + + fn from_str(fork_name: &str) -> Result { + Ok(match fork_name { + "phase0" | "base" => ForkName::Base, + "altair" => ForkName::Altair, + _ => return Err(()), + }) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct InconsistentFork { + pub fork_at_slot: ForkName, + pub object_fork: ForkName, +} diff --git a/consensus/types/src/graffiti.rs b/consensus/types/src/graffiti.rs index c30ec647be..86e45699b0 100644 --- a/consensus/types/src/graffiti.rs +++ b/consensus/types/src/graffiti.rs @@ -74,14 +74,17 @@ impl<'de> Deserialize<'de> for GraffitiString { impl Into for GraffitiString { fn into(self) -> Graffiti { let graffiti_bytes = self.0.as_bytes(); - let mut graffiti = [0; 32]; + let mut graffiti = [0; GRAFFITI_BYTES_LEN]; - let graffiti_len = std::cmp::min(graffiti_bytes.len(), 32); + let graffiti_len = std::cmp::min(graffiti_bytes.len(), GRAFFITI_BYTES_LEN); // Copy the provided bytes over. // // Panic-free because `graffiti_bytes.len()` <= `GRAFFITI_BYTES_LEN`. - graffiti[..graffiti_len].copy_from_slice(&graffiti_bytes); + graffiti + .get_mut(..graffiti_len) + .expect("graffiti_len <= GRAFFITI_BYTES_LEN") + .copy_from_slice(&graffiti_bytes); graffiti.into() } } diff --git a/consensus/types/src/lib.rs b/consensus/types/src/lib.rs index 5016b6f130..b30ca63d8a 100644 --- a/consensus/types/src/lib.rs +++ b/consensus/types/src/lib.rs @@ -3,8 +3,14 @@ // Required for big type-level numbers #![recursion_limit = "128"] // Clippy lint set up -#![deny(clippy::integer_arithmetic)] -#![deny(clippy::disallowed_method)] +#![cfg_attr( + not(test), + deny( + clippy::integer_arithmetic, + clippy::disallowed_method, + clippy::indexing_slicing + ) +)] #[macro_use] extern crate lazy_static; @@ -23,6 +29,7 @@ pub mod beacon_committee; pub mod beacon_state; pub mod chain_spec; pub mod checkpoint; +pub mod consts; pub mod deposit; pub mod deposit_data; pub mod deposit_message; @@ -31,6 +38,7 @@ pub mod eth1_data; pub mod eth_spec; pub mod fork; pub mod fork_data; +pub mod fork_name; pub mod free_attestation; pub mod graffiti; pub mod historical_batch; @@ -50,8 +58,13 @@ pub mod validator_subscription; pub mod voluntary_exit; #[macro_use] pub mod slot_epoch_macros; +pub mod config_and_preset; +pub mod participation_flags; +pub mod preset; pub mod slot_epoch; pub mod subnet_id; +pub mod sync_aggregate; +pub mod sync_committee; mod tree_hash_impls; #[cfg(feature = "sqlite")] @@ -64,13 +77,19 @@ pub use crate::attestation::{Attestation, Error as AttestationError}; pub use crate::attestation_data::AttestationData; pub use crate::attestation_duty::AttestationDuty; pub use crate::attester_slashing::AttesterSlashing; -pub use crate::beacon_block::BeaconBlock; -pub use crate::beacon_block_body::BeaconBlockBody; +pub use crate::beacon_block::{ + BeaconBlock, BeaconBlockAltair, BeaconBlockBase, BeaconBlockRef, BeaconBlockRefMut, +}; +pub use crate::beacon_block_body::{ + BeaconBlockBody, BeaconBlockBodyAltair, BeaconBlockBodyBase, BeaconBlockBodyRef, + BeaconBlockBodyRefMut, +}; pub use crate::beacon_block_header::BeaconBlockHeader; pub use crate::beacon_committee::{BeaconCommittee, OwnedBeaconCommittee}; pub use crate::beacon_state::{BeaconTreeHashCache, Error as BeaconStateError, *}; -pub use crate::chain_spec::{ChainSpec, Domain, YamlConfig}; +pub use crate::chain_spec::{ChainSpec, Config, Domain}; pub use crate::checkpoint::Checkpoint; +pub use crate::config_and_preset::ConfigAndPreset; pub use crate::deposit::{Deposit, DEPOSIT_TREE_DEPTH}; pub use crate::deposit_data::DepositData; pub use crate::deposit_message::DepositMessage; @@ -79,22 +98,29 @@ pub use crate::eth1_data::Eth1Data; pub use crate::eth_spec::EthSpecId; pub use crate::fork::Fork; pub use crate::fork_data::ForkData; +pub use crate::fork_name::{ForkName, InconsistentFork}; pub use crate::free_attestation::FreeAttestation; pub use crate::graffiti::{Graffiti, GRAFFITI_BYTES_LEN}; pub use crate::historical_batch::HistoricalBatch; pub use crate::indexed_attestation::IndexedAttestation; +pub use crate::participation_flags::ParticipationFlags; pub use crate::pending_attestation::PendingAttestation; +pub use crate::preset::{AltairPreset, BasePreset}; pub use crate::proposer_slashing::ProposerSlashing; pub use crate::relative_epoch::{Error as RelativeEpochError, RelativeEpoch}; pub use crate::selection_proof::SelectionProof; pub use crate::shuffling_id::AttestationShufflingId; pub use crate::signed_aggregate_and_proof::SignedAggregateAndProof; -pub use crate::signed_beacon_block::{SignedBeaconBlock, SignedBeaconBlockHash}; +pub use crate::signed_beacon_block::{ + SignedBeaconBlock, SignedBeaconBlockAltair, SignedBeaconBlockBase, SignedBeaconBlockHash, +}; pub use crate::signed_beacon_block_header::SignedBeaconBlockHeader; pub use crate::signed_voluntary_exit::SignedVoluntaryExit; pub use crate::signing_data::{SignedRoot, SigningData}; pub use crate::slot_epoch::{Epoch, Slot}; pub use crate::subnet_id::SubnetId; +pub use crate::sync_aggregate::SyncAggregate; +pub use crate::sync_committee::SyncCommittee; pub use crate::validator::Validator; pub use crate::validator_subscription::ValidatorSubscription; pub use crate::voluntary_exit::VoluntaryExit; @@ -105,6 +131,8 @@ pub type Address = H160; pub type ForkVersion = [u8; 4]; pub use bls::{ - AggregateSignature, Keypair, PublicKey, PublicKeyBytes, SecretKey, Signature, SignatureBytes, + AggregatePublicKey, AggregateSignature, Keypair, PublicKey, PublicKeyBytes, SecretKey, + Signature, SignatureBytes, }; pub use ssz_types::{typenum, typenum::Unsigned, BitList, BitVector, FixedVector, VariableList}; +pub use superstruct::superstruct; diff --git a/consensus/types/src/participation_flags.rs b/consensus/types/src/participation_flags.rs new file mode 100644 index 0000000000..c0ccb6db2c --- /dev/null +++ b/consensus/types/src/participation_flags.rs @@ -0,0 +1,87 @@ +use crate::{consts::altair::NUM_FLAG_INDICES, test_utils::TestRandom, Hash256}; +use safe_arith::{ArithError, SafeArith}; +use serde_derive::{Deserialize, Serialize}; +use ssz::{Decode, DecodeError, Encode}; +use test_random_derive::TestRandom; +use tree_hash::{TreeHash, TreeHashType}; + +#[derive(Debug, Default, Clone, Copy, PartialEq, Deserialize, Serialize, TestRandom)] +#[serde(transparent)] +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] +pub struct ParticipationFlags { + bits: u8, +} + +impl ParticipationFlags { + pub fn add_flag(&mut self, flag_index: usize) -> Result<(), ArithError> { + if flag_index >= NUM_FLAG_INDICES { + return Err(ArithError::Overflow); + } + self.bits |= 1u8.safe_shl(flag_index as u32)?; + Ok(()) + } + + pub fn has_flag(&self, flag_index: usize) -> Result { + if flag_index >= NUM_FLAG_INDICES { + return Err(ArithError::Overflow); + } + let mask = 1u8.safe_shl(flag_index as u32)?; + Ok(self.bits & mask == mask) + } +} + +/// Decode implementation that transparently behaves like the inner `u8`. +impl Decode for ParticipationFlags { + fn is_ssz_fixed_len() -> bool { + ::is_ssz_fixed_len() + } + + fn ssz_fixed_len() -> usize { + ::ssz_fixed_len() + } + + fn from_ssz_bytes(bytes: &[u8]) -> Result { + u8::from_ssz_bytes(bytes).map(|bits| Self { bits }) + } +} + +/// Encode implementation that transparently behaves like the inner `u8`. +impl Encode for ParticipationFlags { + fn is_ssz_fixed_len() -> bool { + ::is_ssz_fixed_len() + } + + fn ssz_append(&self, buf: &mut Vec) { + self.bits.ssz_append(buf); + } + + fn ssz_fixed_len() -> usize { + ::ssz_fixed_len() + } + + fn ssz_bytes_len(&self) -> usize { + self.bits.ssz_bytes_len() + } + + fn as_ssz_bytes(&self) -> Vec { + self.bits.as_ssz_bytes() + } +} + +impl TreeHash for ParticipationFlags { + fn tree_hash_type() -> TreeHashType { + u8::tree_hash_type() + } + + fn tree_hash_packed_encoding(&self) -> Vec { + self.bits.tree_hash_packed_encoding() + } + + fn tree_hash_packing_factor() -> usize { + u8::tree_hash_packing_factor() + } + + fn tree_hash_root(&self) -> Hash256 { + self.bits.tree_hash_root() + } +} diff --git a/consensus/types/src/preset.rs b/consensus/types/src/preset.rs new file mode 100644 index 0000000000..fcb550b81c --- /dev/null +++ b/consensus/types/src/preset.rs @@ -0,0 +1,196 @@ +use crate::{ChainSpec, Epoch, EthSpec, Unsigned}; +use serde_derive::{Deserialize, Serialize}; + +/// Value-level representation of an Ethereum consensus "preset". +/// +/// This should only be used to check consistency of the compile-time constants +/// with a preset YAML file, or to make preset values available to the API. Prefer +/// the constants on `EthSpec` or the fields on `ChainSpec` to constructing and using +/// one of these structs. +/// +/// https://github.com/ethereum/eth2.0-specs/blob/dev/presets/mainnet/phase0.yaml +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "UPPERCASE")] +pub struct BasePreset { + #[serde(with = "serde_utils::quoted_u64")] + pub max_committees_per_slot: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub target_committee_size: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_validators_per_committee: u64, + #[serde(with = "serde_utils::quoted_u8")] + pub shuffle_round_count: u8, + #[serde(with = "serde_utils::quoted_u64")] + pub hysteresis_quotient: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub hysteresis_downward_multiplier: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub hysteresis_upward_multiplier: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub safe_slots_to_update_justified: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_deposit_amount: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_effective_balance: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub effective_balance_increment: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_attestation_inclusion_delay: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub slots_per_epoch: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_seed_lookahead: Epoch, + #[serde(with = "serde_utils::quoted_u64")] + pub max_seed_lookahead: Epoch, + #[serde(with = "serde_utils::quoted_u64")] + pub epochs_per_eth1_voting_period: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub slots_per_historical_root: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_epochs_to_inactivity_penalty: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub epochs_per_historical_vector: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub epochs_per_slashings_vector: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub historical_roots_limit: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub validator_registry_limit: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub base_reward_factor: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub whistleblower_reward_quotient: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub proposer_reward_quotient: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub inactivity_penalty_quotient: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_slashing_penalty_quotient: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub proportional_slashing_multiplier: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_proposer_slashings: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_attester_slashings: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_attestations: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_deposits: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub max_voluntary_exits: u64, +} + +impl BasePreset { + pub fn from_chain_spec(spec: &ChainSpec) -> Self { + Self { + max_committees_per_slot: spec.max_committees_per_slot as u64, + target_committee_size: spec.target_committee_size as u64, + max_validators_per_committee: T::MaxValidatorsPerCommittee::to_u64(), + shuffle_round_count: spec.shuffle_round_count, + hysteresis_quotient: spec.hysteresis_quotient, + hysteresis_downward_multiplier: spec.hysteresis_downward_multiplier, + hysteresis_upward_multiplier: spec.hysteresis_upward_multiplier, + safe_slots_to_update_justified: spec.safe_slots_to_update_justified, + min_deposit_amount: spec.min_deposit_amount, + max_effective_balance: spec.max_effective_balance, + effective_balance_increment: spec.effective_balance_increment, + min_attestation_inclusion_delay: spec.min_attestation_inclusion_delay, + slots_per_epoch: T::SlotsPerEpoch::to_u64(), + min_seed_lookahead: spec.min_seed_lookahead, + max_seed_lookahead: spec.max_seed_lookahead, + epochs_per_eth1_voting_period: T::EpochsPerEth1VotingPeriod::to_u64(), + slots_per_historical_root: T::SlotsPerHistoricalRoot::to_u64(), + min_epochs_to_inactivity_penalty: spec.min_epochs_to_inactivity_penalty, + epochs_per_historical_vector: T::EpochsPerHistoricalVector::to_u64(), + epochs_per_slashings_vector: T::EpochsPerSlashingsVector::to_u64(), + historical_roots_limit: T::HistoricalRootsLimit::to_u64(), + validator_registry_limit: T::ValidatorRegistryLimit::to_u64(), + base_reward_factor: spec.base_reward_factor, + whistleblower_reward_quotient: spec.whistleblower_reward_quotient, + proposer_reward_quotient: spec.proposer_reward_quotient, + inactivity_penalty_quotient: spec.inactivity_penalty_quotient, + min_slashing_penalty_quotient: spec.min_slashing_penalty_quotient, + proportional_slashing_multiplier: spec.proportional_slashing_multiplier, + max_proposer_slashings: T::MaxProposerSlashings::to_u64(), + max_attester_slashings: T::MaxAttesterSlashings::to_u64(), + max_attestations: T::MaxAttestations::to_u64(), + max_deposits: T::MaxDeposits::to_u64(), + max_voluntary_exits: T::MaxVoluntaryExits::to_u64(), + } + } +} + +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "UPPERCASE")] +pub struct AltairPreset { + #[serde(with = "serde_utils::quoted_u64")] + pub inactivity_penalty_quotient_altair: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub min_slashing_penalty_quotient_altair: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub proportional_slashing_multiplier_altair: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub sync_committee_size: u64, + #[serde(with = "serde_utils::quoted_u64")] + pub epochs_per_sync_committee_period: Epoch, + #[serde(with = "serde_utils::quoted_u64")] + pub min_sync_committee_participants: u64, +} + +impl AltairPreset { + pub fn from_chain_spec(spec: &ChainSpec) -> Self { + Self { + inactivity_penalty_quotient_altair: spec.inactivity_penalty_quotient_altair, + min_slashing_penalty_quotient_altair: spec.min_slashing_penalty_quotient_altair, + proportional_slashing_multiplier_altair: spec.proportional_slashing_multiplier_altair, + sync_committee_size: T::SyncCommitteeSize::to_u64(), + epochs_per_sync_committee_period: spec.epochs_per_sync_committee_period, + min_sync_committee_participants: spec.min_sync_committee_participants, + } + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{MainnetEthSpec, MinimalEthSpec}; + use serde::de::DeserializeOwned; + use std::env; + use std::fs::File; + use std::path::PathBuf; + + fn presets_base_path() -> PathBuf { + env::var("CARGO_MANIFEST_DIR") + .expect("should know manifest dir") + .parse::() + .expect("should parse manifest dir as path") + .join("presets") + } + + fn preset_from_file(preset_name: &str, filename: &str) -> T { + let f = File::open(&presets_base_path().join(preset_name).join(filename)) + .expect("preset file exists"); + serde_yaml::from_reader(f).unwrap() + } + + fn preset_test() { + let preset_name = E::spec_name().to_string(); + let spec = E::default_spec(); + + let phase0: BasePreset = preset_from_file(&preset_name, "phase0.yaml"); + assert_eq!(phase0, BasePreset::from_chain_spec::(&spec)); + + let altair: AltairPreset = preset_from_file(&preset_name, "altair.yaml"); + assert_eq!(altair, AltairPreset::from_chain_spec::(&spec)); + } + + #[test] + fn mainnet_presets_consistent() { + preset_test::(); + } + + #[test] + fn minimal_presets_consistent() { + preset_test::(); + } +} diff --git a/consensus/types/src/selection_proof.rs b/consensus/types/src/selection_proof.rs index 508b261de8..0a360b0155 100644 --- a/consensus/types/src/selection_proof.rs +++ b/consensus/types/src/selection_proof.rs @@ -49,8 +49,9 @@ impl SelectionProof { pub fn is_aggregator_from_modulo(&self, modulo: u64) -> Result { let signature_hash = hash(&self.0.as_ssz_bytes()); let signature_hash_int = u64::from_le_bytes( - signature_hash[0..8] - .as_ref() + signature_hash + .get(0..8) + .expect("hash is 32 bytes") .try_into() .expect("first 8 bytes of signature should always convert to fixed array"), ); diff --git a/consensus/types/src/signed_beacon_block.rs b/consensus/types/src/signed_beacon_block.rs index cd2e850722..1a9e93b8e2 100644 --- a/consensus/types/src/signed_beacon_block.rs +++ b/consensus/types/src/signed_beacon_block.rs @@ -1,12 +1,9 @@ -use crate::{ - test_utils::TestRandom, BeaconBlock, ChainSpec, Domain, EthSpec, Fork, Hash256, PublicKey, - SignedBeaconBlockHeader, SignedRoot, SigningData, Slot, -}; +use crate::*; use bls::Signature; use serde_derive::{Deserialize, Serialize}; use ssz_derive::{Decode, Encode}; use std::fmt; -use test_random_derive::TestRandom; +use superstruct::superstruct; use tree_hash::TreeHash; use tree_hash_derive::TreeHash; @@ -39,17 +36,116 @@ impl From for Hash256 { } /// A `BeaconBlock` and a signature from its proposer. -/// -/// Spec v0.12.1 -#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom)] +#[superstruct( + variants(Base, Altair), + variant_attributes( + derive( + Debug, + PartialEq, + Clone, + Serialize, + Deserialize, + Encode, + Decode, + TreeHash + ), + cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary)), + serde(bound = "E: EthSpec") + ) +)] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, TreeHash)] +#[serde(untagged)] #[serde(bound = "E: EthSpec")] +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] pub struct SignedBeaconBlock { - pub message: BeaconBlock, + #[superstruct(only(Base), partial_getter(rename = "message_base"))] + pub message: BeaconBlockBase, + #[superstruct(only(Altair), partial_getter(rename = "message_altair"))] + pub message: BeaconBlockAltair, pub signature: Signature, } impl SignedBeaconBlock { + /// Returns the name of the fork pertaining to `self`. + /// + /// Will return an `Err` if `self` has been instantiated to a variant conflicting with the fork + /// dictated by `self.slot()`. + pub fn fork_name(&self, spec: &ChainSpec) -> Result { + let fork_at_slot = spec.fork_name_at_slot::(self.slot()); + let object_fork = match self { + SignedBeaconBlock::Base { .. } => ForkName::Base, + SignedBeaconBlock::Altair { .. } => ForkName::Altair, + }; + + if fork_at_slot == object_fork { + Ok(object_fork) + } else { + Err(InconsistentFork { + fork_at_slot, + object_fork, + }) + } + } + + /// SSZ decode. + pub fn from_ssz_bytes(bytes: &[u8], spec: &ChainSpec) -> Result { + // We need to use the slot-switching `from_ssz_bytes` of `BeaconBlock`, which doesn't + // compose with the other SSZ utils, so we duplicate some parts of `ssz_derive` here. + let mut builder = ssz::SszDecoderBuilder::new(bytes); + + builder.register_anonymous_variable_length_item()?; + builder.register_type::()?; + + let mut decoder = builder.build()?; + + // Read the first item as a `BeaconBlock`. + let message = decoder.decode_next_with(|bytes| BeaconBlock::from_ssz_bytes(bytes, spec))?; + let signature = decoder.decode_next()?; + + Ok(Self::from_block(message, signature)) + } + + /// Create a new `SignedBeaconBlock` from a `BeaconBlock` and `Signature`. + pub fn from_block(block: BeaconBlock, signature: Signature) -> Self { + match block { + BeaconBlock::Base(message) => { + SignedBeaconBlock::Base(SignedBeaconBlockBase { message, signature }) + } + BeaconBlock::Altair(message) => { + SignedBeaconBlock::Altair(SignedBeaconBlockAltair { message, signature }) + } + } + } + + /// Deconstruct the `SignedBeaconBlock` into a `BeaconBlock` and `Signature`. + /// + /// This is necessary to get a `&BeaconBlock` from a `SignedBeaconBlock` because + /// `SignedBeaconBlock` only contains a `BeaconBlock` _variant_. + pub fn deconstruct(self) -> (BeaconBlock, Signature) { + match self { + SignedBeaconBlock::Base(block) => (BeaconBlock::Base(block.message), block.signature), + SignedBeaconBlock::Altair(block) => { + (BeaconBlock::Altair(block.message), block.signature) + } + } + } + + /// Accessor for the block's `message` field as a ref. + pub fn message(&self) -> BeaconBlockRef<'_, E> { + match self { + SignedBeaconBlock::Base(inner) => BeaconBlockRef::Base(&inner.message), + SignedBeaconBlock::Altair(inner) => BeaconBlockRef::Altair(&inner.message), + } + } + + /// Accessor for the block's `message` as a mutable reference (for testing only). + pub fn message_mut(&mut self) -> BeaconBlockRefMut<'_, E> { + match self { + SignedBeaconBlock::Base(inner) => BeaconBlockRefMut::Base(&mut inner.message), + SignedBeaconBlock::Altair(inner) => BeaconBlockRefMut::Altair(&mut inner.message), + } + } + /// Verify `self.signature`. /// /// If the root of `block.message` is already known it can be passed in via `object_root_opt`. @@ -62,8 +158,14 @@ impl SignedBeaconBlock { genesis_validators_root: Hash256, spec: &ChainSpec, ) -> bool { + // Refuse to verify the signature of a block if its structure does not match the fork at + // `self.slot()`. + if self.fork_name(spec).is_err() { + return false; + } + let domain = spec.get_domain( - self.message.slot.epoch(E::slots_per_epoch()), + self.slot().epoch(E::slots_per_epoch()), Domain::BeaconProposer, fork, genesis_validators_root, @@ -76,47 +178,37 @@ impl SignedBeaconBlock { } .tree_hash_root() } else { - self.message.signing_root(domain) + self.message().signing_root(domain) }; - self.signature.verify(pubkey, message) + self.signature().verify(pubkey, message) } /// Produce a signed beacon block header corresponding to this block. pub fn signed_block_header(&self) -> SignedBeaconBlockHeader { SignedBeaconBlockHeader { - message: self.message.block_header(), - signature: self.signature.clone(), + message: self.message().block_header(), + signature: self.signature().clone(), } } /// Convenience accessor for the block's slot. pub fn slot(&self) -> Slot { - self.message.slot + self.message().slot() } /// Convenience accessor for the block's parent root. pub fn parent_root(&self) -> Hash256 { - self.message.parent_root + self.message().parent_root() } /// Convenience accessor for the block's state root. pub fn state_root(&self) -> Hash256 { - self.message.state_root + self.message().state_root() } /// Returns the `tree_hash_root` of the block. - /// - /// Spec v0.12.1 pub fn canonical_root(&self) -> Hash256 { - Hash256::from_slice(&self.message.tree_hash_root()[..]) + self.message().tree_hash_root() } } - -#[cfg(test)] -mod tests { - use super::*; - use crate::MainnetEthSpec; - - ssz_tests!(SignedBeaconBlock); -} diff --git a/consensus/types/src/sync_aggregate.rs b/consensus/types/src/sync_aggregate.rs new file mode 100644 index 0000000000..85547e1b0e --- /dev/null +++ b/consensus/types/src/sync_aggregate.rs @@ -0,0 +1,36 @@ +use crate::test_utils::TestRandom; +use crate::{AggregateSignature, BitVector, EthSpec}; +use serde_derive::{Deserialize, Serialize}; +use ssz_derive::{Decode, Encode}; +use test_random_derive::TestRandom; +use tree_hash_derive::TreeHash; + +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom)] +#[serde(bound = "T: EthSpec")] +pub struct SyncAggregate { + pub sync_committee_bits: BitVector, + pub sync_committee_signature: AggregateSignature, +} + +impl SyncAggregate { + /// New aggregate to be used as the seed for aggregating other signatures. + #[allow(clippy::new_without_default)] + pub fn new() -> Self { + Self { + sync_committee_bits: BitVector::default(), + sync_committee_signature: AggregateSignature::infinity(), + } + } + + /// Empty aggregate to be used at genesis. + /// + /// Contains an empty signature and should *not* be used as the starting point for aggregation, + /// use `new` instead. + pub fn empty() -> Self { + Self { + sync_committee_bits: BitVector::default(), + sync_committee_signature: AggregateSignature::empty(), + } + } +} diff --git a/consensus/types/src/sync_committee.rs b/consensus/types/src/sync_committee.rs new file mode 100644 index 0000000000..085f0bc04f --- /dev/null +++ b/consensus/types/src/sync_committee.rs @@ -0,0 +1,29 @@ +use crate::test_utils::TestRandom; +use crate::typenum::Unsigned; +use crate::{EthSpec, FixedVector}; +use bls::PublicKeyBytes; +use serde_derive::{Deserialize, Serialize}; +use ssz_derive::{Decode, Encode}; +use test_random_derive::TestRandom; +use tree_hash_derive::TreeHash; + +#[cfg_attr(feature = "arbitrary-fuzz", derive(arbitrary::Arbitrary))] +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Encode, Decode, TreeHash, TestRandom)] +#[serde(bound = "T: EthSpec")] +pub struct SyncCommittee { + pub pubkeys: FixedVector, + pub aggregate_pubkey: PublicKeyBytes, +} + +impl SyncCommittee { + /// Create a temporary sync committee that should *never* be included in a legitimate consensus object. + pub fn temporary() -> Result { + Ok(Self { + pubkeys: FixedVector::new(vec![ + PublicKeyBytes::empty(); + T::SyncCommitteeSize::to_usize() + ])?, + aggregate_pubkey: PublicKeyBytes::empty(), + }) + } +} diff --git a/consensus/types/src/test_utils/builders.rs b/consensus/types/src/test_utils/builders.rs deleted file mode 100644 index 5bbe7b7694..0000000000 --- a/consensus/types/src/test_utils/builders.rs +++ /dev/null @@ -1,19 +0,0 @@ -mod testing_attestation_builder; -mod testing_attestation_data_builder; -mod testing_attester_slashing_builder; -mod testing_beacon_block_builder; -mod testing_beacon_state_builder; -mod testing_deposit_builder; -mod testing_pending_attestation_builder; -mod testing_proposer_slashing_builder; -mod testing_voluntary_exit_builder; - -pub use testing_attestation_builder::*; -pub use testing_attestation_data_builder::*; -pub use testing_attester_slashing_builder::*; -pub use testing_beacon_block_builder::*; -pub use testing_beacon_state_builder::*; -pub use testing_deposit_builder::*; -pub use testing_pending_attestation_builder::*; -pub use testing_proposer_slashing_builder::*; -pub use testing_voluntary_exit_builder::*; diff --git a/consensus/types/src/test_utils/builders/testing_attestation_builder.rs b/consensus/types/src/test_utils/builders/testing_attestation_builder.rs deleted file mode 100644 index a2e5f5f536..0000000000 --- a/consensus/types/src/test_utils/builders/testing_attestation_builder.rs +++ /dev/null @@ -1,112 +0,0 @@ -use crate::test_utils::{AttestationTestTask, TestingAttestationDataBuilder}; -use crate::*; - -/// Builds an attestation to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingAttestationBuilder { - committee: Vec, - attestation: Attestation, -} - -impl TestingAttestationBuilder { - /// Create a new attestation builder. - pub fn new( - test_task: AttestationTestTask, - state: &BeaconState, - committee: &[usize], - slot: Slot, - index: u64, - spec: &ChainSpec, - ) -> Self { - let data_builder = TestingAttestationDataBuilder::new(test_task, state, index, slot, spec); - - let mut aggregation_bits_len = committee.len(); - - if test_task == AttestationTestTask::BadAggregationBitfieldLen { - aggregation_bits_len += 1 - } - - let mut aggregation_bits = BitList::with_capacity(aggregation_bits_len).unwrap(); - - for i in 0..committee.len() { - aggregation_bits.set(i, false).unwrap(); - } - - let attestation = Attestation { - aggregation_bits, - data: data_builder.build(), - signature: AggregateSignature::empty(), - }; - - Self { - attestation, - committee: committee.to_vec(), - } - } - - /// Signs the attestation with a subset (or all) committee members. - /// - /// `secret_keys` must be supplied in the same order as `signing_validators`. I.e., the first - /// keypair must be that of the first signing validator. - pub fn sign( - &mut self, - test_task: AttestationTestTask, - signing_validators: &[usize], - secret_keys: &[&SecretKey], - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> &mut Self { - assert_eq!( - signing_validators.len(), - secret_keys.len(), - "Must be a key for each validator" - ); - - for (key_index, validator_index) in signing_validators.iter().enumerate() { - let committee_index = self - .committee - .iter() - .position(|v| *v == *validator_index) - .expect("Signing validator not in attestation committee"); - - let index = if test_task == AttestationTestTask::BadSignature { - 0 - } else { - key_index - }; - - self.attestation - .sign( - secret_keys[index], - committee_index, - fork, - genesis_validators_root, - spec, - ) - .expect("can sign attestation"); - - self.attestation - .aggregation_bits - .set(committee_index, true) - .unwrap(); - } - - if test_task == AttestationTestTask::BadIndexedAttestationBadSignature { - // Flip an aggregation bit, to make the aggregate invalid - // (We also want to avoid making it completely empty) - self.attestation - .aggregation_bits - .set(0, !self.attestation.aggregation_bits.get(0).unwrap()) - .unwrap(); - } - - self - } - - /// Consume the builder and return the attestation. - pub fn build(self) -> Attestation { - self.attestation - } -} diff --git a/consensus/types/src/test_utils/builders/testing_attestation_data_builder.rs b/consensus/types/src/test_utils/builders/testing_attestation_data_builder.rs deleted file mode 100644 index a704374eee..0000000000 --- a/consensus/types/src/test_utils/builders/testing_attestation_data_builder.rs +++ /dev/null @@ -1,98 +0,0 @@ -use crate::test_utils::AttestationTestTask; -use crate::*; -use safe_arith::SafeArith; - -/// Builds an `AttestationData` to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingAttestationDataBuilder { - data: AttestationData, -} - -impl TestingAttestationDataBuilder { - /// Configures a new `AttestationData` which attests to all of the same parameters as the - /// state. - pub fn new( - test_task: AttestationTestTask, - state: &BeaconState, - index: u64, - mut slot: Slot, - spec: &ChainSpec, - ) -> Self { - let current_epoch = state.current_epoch(); - let previous_epoch = state.previous_epoch(); - - let is_previous_epoch = slot.epoch(T::slots_per_epoch()) != current_epoch; - - let mut source = if is_previous_epoch { - state.previous_justified_checkpoint - } else { - state.current_justified_checkpoint - }; - - let mut target = if is_previous_epoch { - Checkpoint { - epoch: previous_epoch, - root: *state - .get_block_root(previous_epoch.start_slot(T::slots_per_epoch())) - .unwrap(), - } - } else { - Checkpoint { - epoch: current_epoch, - root: *state - .get_block_root(current_epoch.start_slot(T::slots_per_epoch())) - .unwrap(), - } - }; - - let beacon_block_root = *state.get_block_root(slot).unwrap(); - - match test_task { - AttestationTestTask::IncludedTooEarly => { - slot = state - .slot - .safe_sub(spec.min_attestation_inclusion_delay) - .unwrap() - .safe_add(1u64) - .unwrap(); - } - AttestationTestTask::IncludedTooLate => slot - .safe_sub_assign(Slot::new(T::SlotsPerEpoch::to_u64())) - .unwrap(), - AttestationTestTask::TargetEpochSlotMismatch => { - target = Checkpoint { - epoch: current_epoch.safe_add(1u64).unwrap(), - root: Hash256::zero(), - }; - assert_ne!(target.epoch, slot.epoch(T::slots_per_epoch())); - } - AttestationTestTask::WrongJustifiedCheckpoint => { - source = Checkpoint { - epoch: Epoch::from(0_u64), - root: Hash256::zero(), - } - } - _ => (), - } - - let data = AttestationData { - slot, - index, - - // LMD GHOST vote - beacon_block_root, - - // FFG Vote - source, - target, - }; - - Self { data } - } - - /// Returns the `AttestationData`, consuming the builder. - pub fn build(self) -> AttestationData { - self.data - } -} diff --git a/consensus/types/src/test_utils/builders/testing_attester_slashing_builder.rs b/consensus/types/src/test_utils/builders/testing_attester_slashing_builder.rs deleted file mode 100644 index c9c358998c..0000000000 --- a/consensus/types/src/test_utils/builders/testing_attester_slashing_builder.rs +++ /dev/null @@ -1,134 +0,0 @@ -use crate::test_utils::AttesterSlashingTestTask; -use crate::*; - -/// Builds an `AttesterSlashing`. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingAttesterSlashingBuilder(); - -impl TestingAttesterSlashingBuilder { - /// Builds an `AttesterSlashing` that is a double vote. - /// - /// The `signer` function is used to sign the double-vote and accepts: - /// - /// - `validator_index: u64` - /// - `message: &[u8]` - pub fn double_vote( - test_task: AttesterSlashingTestTask, - validator_indices: &[u64], - signer: F, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> AttesterSlashing - where - F: Fn(u64, &[u8]) -> Signature, - { - TestingAttesterSlashingBuilder::double_vote_with_additional_indices( - test_task, - validator_indices, - None, - signer, - fork, - genesis_validators_root, - spec, - ) - } - - pub fn double_vote_with_additional_indices( - test_task: AttesterSlashingTestTask, - validator_indices: &[u64], - additional_validator_indices: Option<&[u64]>, - signer: F, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> AttesterSlashing - where - F: Fn(u64, &[u8]) -> Signature, - { - let slot = Slot::new(1); - let index = 0; - let epoch_1 = Epoch::new(1); - let hash_1 = Hash256::from_low_u64_le(1); - let hash_2 = Hash256::from_low_u64_le(2); - let checkpoint_1 = Checkpoint { - epoch: epoch_1, - root: hash_1, - }; - let checkpoint_2 = Checkpoint { - epoch: epoch_1, - root: hash_2, - }; - - let data_1 = AttestationData { - slot, - index, - beacon_block_root: hash_1, - source: checkpoint_1, - target: checkpoint_1, - }; - - let data_2 = if test_task == AttesterSlashingTestTask::NotSlashable { - data_1.clone() - } else { - AttestationData { - target: checkpoint_2, - ..data_1 - } - }; - - let mut attestation_1 = IndexedAttestation { - attesting_indices: if test_task == AttesterSlashingTestTask::IndexedAttestation1Invalid - { - // Trigger bad validator indices ordering error. - vec![1, 0].into() - } else { - validator_indices.to_vec().into() - }, - data: data_1, - signature: AggregateSignature::empty(), - }; - - let mut attestation_2 = IndexedAttestation { - attesting_indices: if test_task == AttesterSlashingTestTask::IndexedAttestation2Invalid - { - // Trigger bad validator indices ordering error. - vec![1, 0].into() - } else { - match additional_validator_indices { - Some(x) => x.to_vec().into(), - None => validator_indices.to_vec().into(), - } - }, - data: data_2, - signature: AggregateSignature::empty(), - }; - - let add_signatures = |attestation: &mut IndexedAttestation, indices_to_sign: &[u64]| { - let domain = spec.get_domain( - attestation.data.target.epoch, - Domain::BeaconAttester, - fork, - genesis_validators_root, - ); - let message = attestation.data.signing_root(domain); - - for validator_index in indices_to_sign { - let signature = signer(*validator_index, message.as_bytes()); - attestation.signature.add_assign(&signature); - } - }; - - add_signatures(&mut attestation_1, validator_indices); - add_signatures( - &mut attestation_2, - additional_validator_indices.unwrap_or(validator_indices), - ); - - AttesterSlashing { - attestation_1, - attestation_2, - } - } -} diff --git a/consensus/types/src/test_utils/builders/testing_beacon_block_builder.rs b/consensus/types/src/test_utils/builders/testing_beacon_block_builder.rs deleted file mode 100644 index 97fe62780d..0000000000 --- a/consensus/types/src/test_utils/builders/testing_beacon_block_builder.rs +++ /dev/null @@ -1,428 +0,0 @@ -use crate::{ - test_utils::{ - TestingAttestationBuilder, TestingAttesterSlashingBuilder, TestingDepositBuilder, - TestingProposerSlashingBuilder, TestingVoluntaryExitBuilder, - }, - typenum::U4294967296, - *, -}; -use int_to_bytes::int_to_bytes32; -use merkle_proof::MerkleTree; -use rayon::prelude::*; -use safe_arith::SafeArith; -use tree_hash::TreeHash; - -/// Builds a beacon block to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingBeaconBlockBuilder { - pub block: BeaconBlock, -} - -/// Enum used for passing test options to builder -#[derive(PartialEq, Clone, Copy)] -pub enum DepositTestTask { - Valid, - BadPubKey, - BadSig, - InvalidPubKey, - NoReset, -} - -/// Enum used for passing test options to builder -#[derive(PartialEq, Clone, Copy)] -pub enum AttestationTestTask { - Valid, - WrongJustifiedCheckpoint, - BadIndexedAttestationBadSignature, - BadAggregationBitfieldLen, - BadSignature, - ValidatorUnknown, - IncludedTooEarly, - IncludedTooLate, - TargetEpochSlotMismatch, - // Note: BadTargetEpoch is unreachable in block processing due to valid inclusion window and - // slot check -} - -/// Enum used for passing test options to builder -#[derive(PartialEq, Clone, Copy)] -pub enum AttesterSlashingTestTask { - Valid, - NotSlashable, - IndexedAttestation1Invalid, - IndexedAttestation2Invalid, -} - -/// Enum used for passing test options to builder -#[derive(PartialEq, Clone, Copy)] -pub enum ProposerSlashingTestTask { - Valid, - ProposerUnknown, - ProposalEpochMismatch, - ProposalsIdentical, - ProposerNotSlashable, - BadProposal1Signature, - BadProposal2Signature, -} - -impl TestingBeaconBlockBuilder { - /// Create a new builder from genesis. - pub fn new(spec: &ChainSpec) -> Self { - Self { - block: BeaconBlock::empty(spec), - } - } - - /// Set the previous block root - pub fn set_parent_root(&mut self, root: Hash256) { - self.block.parent_root = root; - } - - /// Set the slot of the block. - pub fn set_slot(&mut self, slot: Slot) { - self.block.slot = slot; - } - - /// Set the proposer index of the block. - pub fn set_proposer_index(&mut self, proposer_index: u64) { - self.block.proposer_index = proposer_index; - } - - /// Sets the randao to be a signature across the blocks epoch. - /// - /// Modifying the block's slot after signing may invalidate the signature. - pub fn set_randao_reveal( - &mut self, - sk: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) { - let epoch = self.block.slot.epoch(T::slots_per_epoch()); - let domain = spec.get_domain(epoch, Domain::Randao, fork, genesis_validators_root); - let message = epoch.signing_root(domain); - self.block.body.randao_reveal = sk.sign(message); - } - - /// Has the randao reveal been set? - pub fn randao_reveal_not_set(&mut self) -> bool { - self.block.body.randao_reveal.is_empty() - } - - /// Inserts a signed, valid `ProposerSlashing` for the validator. - pub fn insert_proposer_slashing( - &mut self, - test_task: ProposerSlashingTestTask, - validator_index: u64, - secret_key: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) { - let proposer_slashing = build_proposer_slashing::( - test_task, - validator_index, - secret_key, - fork, - genesis_validators_root, - spec, - ); - self.block - .body - .proposer_slashings - .push(proposer_slashing) - .unwrap(); - } - - /// Inserts a signed, valid `AttesterSlashing` for each validator index in `validator_indices`. - pub fn insert_attester_slashing( - &mut self, - test_task: AttesterSlashingTestTask, - validator_indices: &[u64], - secret_keys: &[&SecretKey], - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) { - let attester_slashing = build_double_vote_attester_slashing( - test_task, - validator_indices, - secret_keys, - fork, - genesis_validators_root, - spec, - ); - let _ = self.block.body.attester_slashings.push(attester_slashing); - } - - /// Fills the block with `num_attestations` attestations. - /// - /// It will first go and get each committee that is able to include an attestation in this - /// block. If there _are_ enough committees, it will produce an attestation for each. If there - /// _are not_ enough committees, it will start splitting the committees in half until it - /// achieves the target. It will then produce separate attestations for each split committee. - /// - /// Note: the signed messages of the split committees will be identical -- it would be possible - /// to aggregate these split attestations. - pub fn insert_attestations( - &mut self, - test_task: AttestationTestTask, - state: &BeaconState, - secret_keys: &[&SecretKey], - num_attestations: usize, - spec: &ChainSpec, - ) -> Result<(), BeaconStateError> { - let mut slot = self - .block - .slot - .safe_sub(spec.min_attestation_inclusion_delay)?; - let mut attestations_added = 0; - - // Stores the following (in order): - // - // - The slot of the committee. - // - A list of all validators in the committee. - // - A list of all validators in the committee that should sign the attestation. - // - The index of the committee. - let mut committees: Vec<(Slot, Vec, Vec, u64)> = vec![]; - - if slot < T::slots_per_epoch() { - panic!("slot is too low, will get stuck in loop") - } - - // Loop backwards through slots gathering each committee, until: - // - // - The slot is too old to be included in a block at this slot. - // - The `MAX_ATTESTATIONS`. - loop { - if state.slot >= slot.safe_add(T::slots_per_epoch())? { - break; - } - - for beacon_committee in state.get_beacon_committees_at_slot(slot)? { - if attestations_added >= num_attestations { - break; - } - - committees.push(( - slot, - beacon_committee.committee.to_vec(), - beacon_committee.committee.to_vec(), - beacon_committee.index, - )); - - attestations_added += 1; - } - - slot.safe_sub_assign(1u64)?; - } - - // Loop through all the committees, splitting each one in half until we have - // `MAX_ATTESTATIONS` committees. - loop { - if committees.len() >= num_attestations as usize { - break; - } - - for i in 0..committees.len() { - if committees.len() >= num_attestations as usize { - break; - } - - let (slot, committee, mut signing_validators, index) = committees[i].clone(); - - let new_signing_validators = - signing_validators.split_off(signing_validators.len() / 2); - - committees[i] = (slot, committee.clone(), signing_validators, index); - committees.push((slot, committee, new_signing_validators, index)); - } - } - - let attestations: Vec<_> = committees - .par_iter() - .map(|(slot, committee, signing_validators, index)| { - let mut builder = TestingAttestationBuilder::new( - test_task, state, committee, *slot, *index, spec, - ); - - let signing_secret_keys: Vec<&SecretKey> = signing_validators - .iter() - .map(|validator_index| secret_keys[*validator_index]) - .collect(); - builder.sign( - test_task, - signing_validators, - &signing_secret_keys, - &state.fork, - state.genesis_validators_root, - spec, - ); - - builder.build() - }) - .collect(); - - for attestation in attestations { - self.block.body.attestations.push(attestation).unwrap(); - } - - Ok(()) - } - - /// Insert a `Valid` deposit into the state. - pub fn insert_deposits( - &mut self, - amount: u64, - test_task: DepositTestTask, - // TODO: deal with the fact deposits no longer have explicit indices - _index: u64, - num_deposits: u64, - state: &mut BeaconState, - spec: &ChainSpec, - ) { - // Vector containing deposits' data - let mut datas = vec![]; - for _ in 0..num_deposits { - let keypair = Keypair::random(); - - let mut builder = TestingDepositBuilder::new(keypair.pk.clone(), amount); - builder.sign(test_task, &keypair, spec); - datas.push(builder.build().data); - } - - // Vector containing all leaves - let leaves = datas - .iter() - .map(|data| data.tree_hash_root()) - .collect::>(); - - // Building a VarList from leaves - let deposit_data_list = VariableList::<_, U4294967296>::from(leaves.clone()); - - // Setting the deposit_root to be the tree_hash_root of the VarList - state.eth1_data.deposit_root = deposit_data_list.tree_hash_root(); - - // Building the merkle tree used for generating proofs - let tree = MerkleTree::create(&leaves[..], spec.deposit_contract_tree_depth as usize); - - // Building proofs - let mut proofs = vec![]; - for i in 0..leaves.len() { - let (_, mut proof) = tree.generate_proof(i, spec.deposit_contract_tree_depth as usize); - proof.push(Hash256::from_slice(&int_to_bytes32(leaves.len() as u64))); - proofs.push(proof); - } - - // Building deposits - let deposits = datas - .into_par_iter() - .zip(proofs.into_par_iter()) - .map(|(data, proof)| (data, proof.into())) - .map(|(data, proof)| Deposit { proof, data }) - .collect::>(); - - // Pushing deposits to block body - for deposit in deposits { - let _ = self.block.body.deposits.push(deposit); - } - - // Manually setting the deposit_count to process deposits - // This is for test purposes only - if test_task == DepositTestTask::NoReset { - state.eth1_data.deposit_count += num_deposits; - } else { - state.eth1_deposit_index = 0; - state.eth1_data.deposit_count = num_deposits; - } - } - - /// Insert an exit for the given validator at the given epoch into the block. - pub fn insert_exit( - &mut self, - validator_index: u64, - exit_epoch: Epoch, - secret_key: &SecretKey, - state: &BeaconState, - spec: &ChainSpec, - ) { - let builder = TestingVoluntaryExitBuilder::new(exit_epoch, validator_index); - let exit = builder.build(secret_key, &state.fork, state.genesis_validators_root, spec); - self.block.body.voluntary_exits.push(exit).unwrap(); - } - - /// Mutate the block before signing. - pub fn modify(&mut self, f: impl FnOnce(&mut BeaconBlock)) { - f(&mut self.block) - } - - /// Signs and returns the block, consuming the builder. - pub fn build( - self, - sk: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> SignedBeaconBlock { - self.block.sign(sk, fork, genesis_validators_root, spec) - } - - /// Returns the block, consuming the builder. - pub fn build_without_signing(self) -> SignedBeaconBlock { - SignedBeaconBlock { - message: self.block, - signature: Signature::empty(), - } - } -} - -/// Builds an `ProposerSlashing` for some `validator_index`. -/// -/// Signs the message using a `BeaconChainHarness`. -pub fn build_proposer_slashing( - test_task: ProposerSlashingTestTask, - validator_index: u64, - secret_key: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, -) -> ProposerSlashing { - TestingProposerSlashingBuilder::double_vote::( - test_task, - validator_index, - secret_key, - fork, - genesis_validators_root, - spec, - ) -} - -/// Builds an `AttesterSlashing` for some `validator_indices`. -/// -/// Signs the message using a `BeaconChainHarness`. -pub fn build_double_vote_attester_slashing( - test_task: AttesterSlashingTestTask, - validator_indices: &[u64], - secret_keys: &[&SecretKey], - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, -) -> AttesterSlashing { - let signer = |validator_index: u64, message: &[u8]| { - let key_index = validator_indices - .iter() - .position(|&i| i == validator_index) - .expect("Unable to find attester slashing key"); - secret_keys[key_index].sign(Hash256::from_slice(message)) - }; - - TestingAttesterSlashingBuilder::double_vote( - test_task, - validator_indices, - signer, - fork, - genesis_validators_root, - spec, - ) -} diff --git a/consensus/types/src/test_utils/builders/testing_beacon_state_builder.rs b/consensus/types/src/test_utils/builders/testing_beacon_state_builder.rs deleted file mode 100644 index 922d4017fe..0000000000 --- a/consensus/types/src/test_utils/builders/testing_beacon_state_builder.rs +++ /dev/null @@ -1,194 +0,0 @@ -use super::super::generate_deterministic_keypairs; -use crate::test_utils::{AttestationTestTask, TestingPendingAttestationBuilder}; -use crate::*; -use bls::get_withdrawal_credentials; -use log::debug; -use rayon::prelude::*; - -pub const KEYPAIRS_FILE: &str = "keypairs.raw_keypairs"; - -/// Builds a beacon state to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -#[derive(Clone)] -pub struct TestingBeaconStateBuilder { - state: BeaconState, - keypairs: Vec, -} - -impl TestingBeaconStateBuilder { - /// Generates the validator keypairs deterministically. - pub fn from_deterministic_keypairs(validator_count: usize, spec: &ChainSpec) -> Self { - debug!("Generating {} deterministic keypairs...", validator_count); - let keypairs = generate_deterministic_keypairs(validator_count); - TestingBeaconStateBuilder::from_keypairs(keypairs, spec) - } - - /// Uses the given keypair for all validators. - pub fn from_single_keypair( - validator_count: usize, - keypair: &Keypair, - spec: &ChainSpec, - ) -> Self { - debug!("Generating {} cloned keypairs...", validator_count); - - let mut keypairs = Vec::with_capacity(validator_count); - for _ in 0..validator_count { - keypairs.push(keypair.clone()) - } - - TestingBeaconStateBuilder::from_keypairs(keypairs, spec) - } - - /// Creates the builder from an existing set of keypairs. - pub fn from_keypairs(keypairs: Vec, spec: &ChainSpec) -> Self { - let validator_count = keypairs.len(); - let starting_balance = spec.max_effective_balance; - - debug!( - "Building {} Validator objects from keypairs...", - validator_count - ); - let validators = keypairs - .par_iter() - .map(|keypair| { - let withdrawal_credentials = Hash256::from_slice(&get_withdrawal_credentials( - &keypair.pk, - spec.bls_withdrawal_prefix_byte, - )); - - Validator { - pubkey: keypair.pk.clone().into(), - withdrawal_credentials, - // All validators start active. - activation_eligibility_epoch: T::genesis_epoch(), - activation_epoch: T::genesis_epoch(), - exit_epoch: spec.far_future_epoch, - withdrawable_epoch: spec.far_future_epoch, - slashed: false, - effective_balance: starting_balance, - } - }) - .collect::>() - .into(); - - let genesis_time = 1_567_052_589; // 29 August, 2019; - - let mut state = BeaconState::new( - genesis_time, - Eth1Data { - deposit_root: Hash256::zero(), - deposit_count: 0, - block_hash: Hash256::zero(), - }, - spec, - ); - - state.eth1_data.deposit_count = validator_count as u64; - state.eth1_deposit_index = validator_count as u64; - - let balances = vec![starting_balance; validator_count].into(); - - debug!("Importing {} existing validators...", validator_count); - state.validators = validators; - state.balances = balances; - - debug!("BeaconState initialized."); - - Self { state, keypairs } - } - - /// Consume the builder and return the `BeaconState` and the keypairs for each validator. - pub fn build(self) -> (BeaconState, Vec) { - (self.state, self.keypairs) - } - - /// Ensures that the state returned from `Self::build(..)` has all caches pre-built. - /// - /// Note: this performs the build when called. Ensure that no changes are made that would - /// invalidate this cache. - pub fn build_caches(&mut self, spec: &ChainSpec) -> Result<(), BeaconStateError> { - self.state.build_all_caches(spec).unwrap(); - - Ok(()) - } - - /// Sets the `BeaconState` to be in a slot, calling `teleport_to_epoch` to update the epoch. - pub fn teleport_to_slot(&mut self, slot: Slot) -> &mut Self { - self.teleport_to_epoch(slot.epoch(T::slots_per_epoch())); - self.state.slot = slot; - self - } - - /// Sets the `BeaconState` to be in the first slot of the given epoch. - /// - /// Sets all justification/finalization parameters to be be as "perfect" as possible (i.e., - /// highest justified and finalized slots, full justification bitfield, etc). - fn teleport_to_epoch(&mut self, epoch: Epoch) { - let state = &mut self.state; - - let slot = epoch.start_slot(T::slots_per_epoch()); - - state.slot = slot; - - state.previous_justified_checkpoint.epoch = epoch.saturating_sub(3u64); - state.current_justified_checkpoint.epoch = epoch.saturating_sub(2u64); - state.justification_bits = BitVector::from_bytes(vec![0b0000_1111]).unwrap(); - - state.finalized_checkpoint.epoch = state.previous_justified_checkpoint.epoch; - } - - /// Creates a full set of attestations for the `BeaconState`. Each attestation has full - /// participation from its committee and references the expected beacon_block hashes. - /// - /// These attestations should be fully conducive to justification and finalization. - pub fn insert_attestations(&mut self, spec: &ChainSpec) { - let state = &mut self.state; - - state - .build_committee_cache(RelativeEpoch::Previous, spec) - .unwrap(); - state - .build_committee_cache(RelativeEpoch::Current, spec) - .unwrap(); - - let current_epoch = state.current_epoch(); - let previous_epoch = state.previous_epoch(); - - let first_slot = previous_epoch.start_slot(T::slots_per_epoch()).as_u64(); - let last_slot = current_epoch.end_slot(T::slots_per_epoch()).as_u64() - - spec.min_attestation_inclusion_delay; - let last_slot = std::cmp::min(state.slot.as_u64(), last_slot); - - for slot in first_slot..=last_slot { - let slot = Slot::from(slot); - - let committees: Vec = state - .get_beacon_committees_at_slot(slot) - .unwrap() - .into_iter() - .map(|c| c.clone().into_owned()) - .collect(); - - for beacon_committee in committees { - let mut builder = TestingPendingAttestationBuilder::new( - AttestationTestTask::Valid, - state, - beacon_committee.index, - slot, - spec, - ); - // The entire committee should have signed the pending attestation. - let signers = vec![true; beacon_committee.committee.len()]; - builder.add_committee_participation(signers); - let attestation = builder.build(); - - if attestation.data.target.epoch < state.current_epoch() { - state.previous_epoch_attestations.push(attestation).unwrap() - } else { - state.current_epoch_attestations.push(attestation).unwrap() - } - } - } - } -} diff --git a/consensus/types/src/test_utils/builders/testing_deposit_builder.rs b/consensus/types/src/test_utils/builders/testing_deposit_builder.rs deleted file mode 100644 index 2ece83f7f9..0000000000 --- a/consensus/types/src/test_utils/builders/testing_deposit_builder.rs +++ /dev/null @@ -1,64 +0,0 @@ -use crate::test_utils::DepositTestTask; -use crate::*; -use bls::{get_withdrawal_credentials, PublicKeyBytes, SignatureBytes}; - -/// Builds an deposit to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingDepositBuilder { - deposit: Deposit, -} - -impl TestingDepositBuilder { - /// Instantiates a new builder. - pub fn new(pubkey: PublicKey, amount: u64) -> Self { - let deposit = Deposit { - proof: vec![].into(), - data: DepositData { - pubkey: PublicKeyBytes::from(pubkey), - withdrawal_credentials: Hash256::zero(), - amount, - signature: SignatureBytes::empty(), - }, - }; - - Self { deposit } - } - - /// Signs the deposit, also setting the following values: - /// - /// - `pubkey` to the signing pubkey. - /// - `withdrawal_credentials` to the signing pubkey. - /// - `proof_of_possession` - pub fn sign(&mut self, test_task: DepositTestTask, keypair: &Keypair, spec: &ChainSpec) { - let new_key = Keypair::random(); - let mut pubkeybytes = PublicKeyBytes::from(keypair.pk.clone()); - let mut secret_key = keypair.sk.clone(); - - match test_task { - DepositTestTask::BadPubKey => pubkeybytes = PublicKeyBytes::from(new_key.pk), - DepositTestTask::InvalidPubKey => { - // Creating invalid public key bytes - let mut public_key_bytes: Vec = vec![0; 48]; - public_key_bytes[0] = 255; - pubkeybytes = PublicKeyBytes::deserialize(&public_key_bytes).unwrap(); - } - DepositTestTask::BadSig => secret_key = new_key.sk, - _ => (), - } - - let withdrawal_credentials = Hash256::from_slice( - &get_withdrawal_credentials(&keypair.pk, spec.bls_withdrawal_prefix_byte)[..], - ); - - // Building the data and signing it - self.deposit.data.pubkey = pubkeybytes; - self.deposit.data.withdrawal_credentials = withdrawal_credentials; - self.deposit.data.signature = self.deposit.data.create_signature(&secret_key, spec); - } - - /// Builds the deposit, consuming the builder. - pub fn build(self) -> Deposit { - self.deposit - } -} diff --git a/consensus/types/src/test_utils/builders/testing_pending_attestation_builder.rs b/consensus/types/src/test_utils/builders/testing_pending_attestation_builder.rs deleted file mode 100644 index c56deb647d..0000000000 --- a/consensus/types/src/test_utils/builders/testing_pending_attestation_builder.rs +++ /dev/null @@ -1,60 +0,0 @@ -use crate::test_utils::{AttestationTestTask, TestingAttestationDataBuilder}; -use crate::*; - -/// Builds an `AttesterSlashing` to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingPendingAttestationBuilder { - pending_attestation: PendingAttestation, -} - -impl TestingPendingAttestationBuilder { - /// Create a new valid* `PendingAttestation` for the given parameters. - /// - /// The `inclusion_delay` will be set to `MIN_ATTESTATION_INCLUSION_DELAY`. - /// - /// * The aggregation bitfield will be empty, it needs to be set with - /// `Self::add_committee_participation`. - pub fn new( - test_task: AttestationTestTask, - state: &BeaconState, - index: u64, - slot: Slot, - spec: &ChainSpec, - ) -> Self { - let data_builder = TestingAttestationDataBuilder::new(test_task, state, index, slot, spec); - - let proposer_index = state.get_beacon_proposer_index(slot, spec).unwrap() as u64; - - let pending_attestation = PendingAttestation { - aggregation_bits: BitList::with_capacity(T::MaxValidatorsPerCommittee::to_usize()) - .unwrap(), - data: data_builder.build(), - inclusion_delay: spec.min_attestation_inclusion_delay, - proposer_index, - }; - - Self { - pending_attestation, - } - } - - /// Sets the committee participation in the `PendingAttestation`. - /// - /// The `PendingAttestation` will appear to be signed by each committee member who's value in - /// `signers` is true. - pub fn add_committee_participation(&mut self, signers: Vec) { - let mut aggregation_bits = BitList::with_capacity(signers.len()).unwrap(); - - for (i, signed) in signers.iter().enumerate() { - aggregation_bits.set(i, *signed).unwrap(); - } - - self.pending_attestation.aggregation_bits = aggregation_bits; - } - - /// Returns the `PendingAttestation`, consuming the builder. - pub fn build(self) -> PendingAttestation { - self.pending_attestation - } -} diff --git a/consensus/types/src/test_utils/builders/testing_proposer_slashing_builder.rs b/consensus/types/src/test_utils/builders/testing_proposer_slashing_builder.rs deleted file mode 100644 index 51c2aeaf49..0000000000 --- a/consensus/types/src/test_utils/builders/testing_proposer_slashing_builder.rs +++ /dev/null @@ -1,82 +0,0 @@ -use crate::test_utils::ProposerSlashingTestTask; -use crate::*; - -/// Builds a `ProposerSlashing`. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingProposerSlashingBuilder; - -impl TestingProposerSlashingBuilder { - /// Builds a `ProposerSlashing` that is a double vote. - /// - /// Where domain is a domain "constant" (e.g., `spec.domain_attestation`). - pub fn double_vote( - test_task: ProposerSlashingTestTask, - proposer_index: u64, - secret_key: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> ProposerSlashing - where - T: EthSpec, - { - let slot = Slot::new(0); - let hash_1 = Hash256::from([1; 32]); - let hash_2 = if test_task == ProposerSlashingTestTask::ProposalsIdentical { - hash_1 - } else { - Hash256::from([2; 32]) - }; - - let mut signed_header_1 = SignedBeaconBlockHeader { - message: BeaconBlockHeader { - slot, - proposer_index, - parent_root: hash_1, - state_root: hash_1, - body_root: hash_1, - }, - signature: Signature::empty(), - }; - - let slot_2 = if test_task == ProposerSlashingTestTask::ProposalEpochMismatch { - Slot::new(128) - } else { - Slot::new(0) - }; - - let mut signed_header_2 = SignedBeaconBlockHeader { - message: BeaconBlockHeader { - parent_root: hash_2, - slot: slot_2, - ..signed_header_1.message - }, - signature: Signature::empty(), - }; - - if test_task != ProposerSlashingTestTask::BadProposal1Signature { - signed_header_1 = - signed_header_1 - .message - .sign::(secret_key, fork, genesis_validators_root, spec); - } - - if test_task != ProposerSlashingTestTask::BadProposal2Signature { - signed_header_2 = - signed_header_2 - .message - .sign::(secret_key, fork, genesis_validators_root, spec); - } - - if test_task == ProposerSlashingTestTask::ProposerUnknown { - signed_header_1.message.proposer_index = 3_141_592; - signed_header_2.message.proposer_index = 3_141_592; - } - - ProposerSlashing { - signed_header_1, - signed_header_2, - } - } -} diff --git a/consensus/types/src/test_utils/builders/testing_voluntary_exit_builder.rs b/consensus/types/src/test_utils/builders/testing_voluntary_exit_builder.rs deleted file mode 100644 index 330b48ad5f..0000000000 --- a/consensus/types/src/test_utils/builders/testing_voluntary_exit_builder.rs +++ /dev/null @@ -1,34 +0,0 @@ -use crate::*; - -/// Builds an exit to be used for testing purposes. -/// -/// This struct should **never be used for production purposes.** -pub struct TestingVoluntaryExitBuilder { - exit: VoluntaryExit, -} - -impl TestingVoluntaryExitBuilder { - /// Instantiates a new builder. - pub fn new(epoch: Epoch, validator_index: u64) -> Self { - let exit = VoluntaryExit { - epoch, - validator_index, - }; - - Self { exit } - } - - /// Build and sign the exit. - /// - /// The signing secret key must match that of the exiting validator. - pub fn build( - self, - secret_key: &SecretKey, - fork: &Fork, - genesis_validators_root: Hash256, - spec: &ChainSpec, - ) -> SignedVoluntaryExit { - self.exit - .sign(secret_key, fork, genesis_validators_root, spec) - } -} diff --git a/consensus/types/src/test_utils/mod.rs b/consensus/types/src/test_utils/mod.rs index 63d90a83f4..c0333bcfd6 100644 --- a/consensus/types/src/test_utils/mod.rs +++ b/consensus/types/src/test_utils/mod.rs @@ -1,15 +1,50 @@ #![allow(clippy::integer_arithmetic)] -#[macro_use] -mod macros; -mod builders; -mod generate_deterministic_keypairs; -mod test_random; +use std::fmt::Debug; + +pub use rand::{RngCore, SeedableRng}; +pub use rand_xorshift::XorShiftRng; -pub use builders::*; pub use generate_deterministic_keypairs::generate_deterministic_keypair; pub use generate_deterministic_keypairs::generate_deterministic_keypairs; pub use generate_deterministic_keypairs::load_keypairs_from_yaml; -pub use rand::{RngCore, SeedableRng}; -pub use rand_xorshift::XorShiftRng; +use ssz::{ssz_encode, Decode, Encode}; pub use test_random::{test_random_instance, TestRandom}; +use tree_hash::TreeHash; + +#[macro_use] +mod macros; +mod generate_deterministic_keypairs; +mod test_random; + +pub fn test_ssz_tree_hash_pair(v1: &T, v2: &U) +where + T: TreeHash + Encode + Decode + Debug + PartialEq, + U: TreeHash + Encode + Decode + Debug + PartialEq, +{ + test_ssz_tree_hash_pair_with(v1, v2, T::from_ssz_bytes) +} + +pub fn test_ssz_tree_hash_pair_with( + v1: &T, + v2: &U, + t_decoder: impl FnOnce(&[u8]) -> Result, +) where + T: TreeHash + Encode + Debug + PartialEq, + U: TreeHash + Encode + Decode + Debug + PartialEq, +{ + // SSZ encoding should agree between the two types. + let encoding1 = ssz_encode(v1); + let encoding2 = ssz_encode(v2); + assert_eq!(encoding1, encoding2); + + // Decoding the encoding should yield either value. + let decoded1 = t_decoder(&encoding1).unwrap(); + assert_eq!(&decoded1, v1); + + let decoded2 = U::from_ssz_bytes(&encoding1).unwrap(); + assert_eq!(&decoded2, v2); + + // Tree hashing should agree. + assert_eq!(v1.tree_hash_root(), v2.tree_hash_root()); +} diff --git a/consensus/types/src/test_utils/test_random.rs b/consensus/types/src/test_utils/test_random.rs index f92d267178..5a88c16630 100644 --- a/consensus/types/src/test_utils/test_random.rs +++ b/consensus/types/src/test_utils/test_random.rs @@ -41,6 +41,12 @@ impl TestRandom for u32 { } } +impl TestRandom for u8 { + fn random_for_test(rng: &mut impl RngCore) -> Self { + rng.next_u32().to_be_bytes()[0] + } +} + impl TestRandom for usize { fn random_for_test(rng: &mut impl RngCore) -> Self { rng.next_u32() as usize @@ -64,16 +70,15 @@ where impl TestRandom for FixedVector where - T: TestRandom + Default, + T: TestRandom, { fn random_for_test(rng: &mut impl RngCore) -> Self { - let mut output = vec![]; - - for _ in 0..(usize::random_for_test(rng) % std::cmp::min(4, N::to_usize())) { - output.push(::random_for_test(rng)); - } - - output.into() + Self::new( + (0..N::to_usize()) + .map(|_| T::random_for_test(rng)) + .collect(), + ) + .expect("N items provided") } } diff --git a/consensus/types/src/validator.rs b/consensus/types/src/validator.rs index 87ffa8ada9..b27bc90e3a 100644 --- a/consensus/types/src/validator.rs +++ b/consensus/types/src/validator.rs @@ -61,7 +61,7 @@ impl Validator { spec: &ChainSpec, ) -> bool { // Placement in queue is finalized - self.activation_eligibility_epoch <= state.finalized_checkpoint.epoch + self.activation_eligibility_epoch <= state.finalized_checkpoint().epoch // Has not yet been activated && self.activation_epoch == spec.far_future_epoch } diff --git a/crypto/bls/src/generic_aggregate_public_key.rs b/crypto/bls/src/generic_aggregate_public_key.rs index ad25a59e8f..5d998f4bb1 100644 --- a/crypto/bls/src/generic_aggregate_public_key.rs +++ b/crypto/bls/src/generic_aggregate_public_key.rs @@ -1,6 +1,37 @@ -/// Implemented on some struct from a BLS library so it may be used internally in this crate. -pub trait TAggregatePublicKey: Sized + Clone {} +use crate::{generic_public_key::GenericPublicKey, Error}; +use std::marker::PhantomData; -/* - * Note: there is no immediate need for a `GenericAggregatePublicKey` struct. - */ +/// Implemented on some struct from a BLS library so it may be used internally in this crate. +pub trait TAggregatePublicKey: Sized + Clone { + fn to_public_key(&self) -> GenericPublicKey; + + // NOTE: this API *could* take a `&[&Pub]` as that's what the underlying library needs, + // but it seems that this type would rarely occur due to our use of wrapper structs + fn aggregate(pubkeys: &[GenericPublicKey]) -> Result; +} + +/// A BLS aggregate public key that is generic across some BLS point (`AggPub`). +/// +/// Provides generic functionality whilst deferring all serious cryptographic operations to `AggPub`. +#[derive(Clone)] +pub struct GenericAggregatePublicKey { + /// The underlying point which performs *actual* cryptographic operations. + point: AggPub, + _phantom: PhantomData, +} + +impl GenericAggregatePublicKey +where + AggPub: TAggregatePublicKey, +{ + pub fn to_public_key(&self) -> GenericPublicKey { + self.point.to_public_key() + } + + pub fn aggregate(pubkeys: &[GenericPublicKey]) -> Result { + Ok(Self { + point: AggPub::aggregate(pubkeys)?, + _phantom: PhantomData, + }) + } +} diff --git a/crypto/bls/src/generic_aggregate_signature.rs b/crypto/bls/src/generic_aggregate_signature.rs index d0cfac848f..7569c2f793 100644 --- a/crypto/bls/src/generic_aggregate_signature.rs +++ b/crypto/bls/src/generic_aggregate_signature.rs @@ -173,7 +173,7 @@ where impl GenericAggregateSignature where Pub: TPublicKey + Clone, - AggPub: TAggregatePublicKey + Clone, + AggPub: TAggregatePublicKey + Clone, Sig: TSignature, AggSig: TAggregateSignature, { @@ -189,6 +189,18 @@ where } } + /// Wrapper to `fast_aggregate_verify` accepting the infinity signature when `pubkeys` is empty. + pub fn eth2_fast_aggregate_verify( + &self, + msg: Hash256, + pubkeys: &[&GenericPublicKey], + ) -> bool { + if pubkeys.is_empty() && self.is_infinity { + return true; + } + self.fast_aggregate_verify(msg, pubkeys) + } + /// Verify that `self` represents an aggregate signature where all `pubkeys` have signed their /// corresponding message in `msgs`. /// diff --git a/crypto/bls/src/generic_public_key.rs b/crypto/bls/src/generic_public_key.rs index face79a4bf..0976f5c82b 100644 --- a/crypto/bls/src/generic_public_key.rs +++ b/crypto/bls/src/generic_public_key.rs @@ -27,7 +27,7 @@ pub trait TPublicKey: Sized + Clone { fn deserialize(bytes: &[u8]) -> Result; } -/// A BLS aggregate public key that is generic across some BLS point (`Pub`). +/// A BLS public key that is generic across some BLS point (`Pub`). /// /// Provides generic functionality whilst deferring all serious cryptographic operations to `Pub`. #[derive(Clone)] diff --git a/crypto/bls/src/generic_signature_set.rs b/crypto/bls/src/generic_signature_set.rs index 16f845fc4f..a64db7adef 100644 --- a/crypto/bls/src/generic_signature_set.rs +++ b/crypto/bls/src/generic_signature_set.rs @@ -74,7 +74,7 @@ where impl<'a, Pub, AggPub, Sig, AggSig> GenericSignatureSet<'a, Pub, AggPub, Sig, AggSig> where Pub: TPublicKey + Clone, - AggPub: TAggregatePublicKey + Clone, + AggPub: TAggregatePublicKey + Clone, Sig: TSignature + Clone, AggSig: TAggregateSignature + Clone, { diff --git a/crypto/bls/src/impls/blst.rs b/crypto/bls/src/impls/blst.rs index 70b7c90edf..e94f5a9abd 100644 --- a/crypto/bls/src/impls/blst.rs +++ b/crypto/bls/src/impls/blst.rs @@ -153,7 +153,19 @@ impl PartialEq for BlstAggregatePublicKey { } } -impl TAggregatePublicKey for BlstAggregatePublicKey {} +impl TAggregatePublicKey for BlstAggregatePublicKey { + fn to_public_key(&self) -> GenericPublicKey { + GenericPublicKey::from_point(self.0.to_public_key()) + } + + fn aggregate(pubkeys: &[GenericPublicKey]) -> Result { + let pubkey_refs = pubkeys.iter().map(|pk| pk.point()).collect::>(); + + // Public keys have already been checked for subgroup and infinity + let agg_pub = blst_core::AggregatePublicKey::aggregate(&pubkey_refs, false)?; + Ok(BlstAggregatePublicKey(agg_pub)) + } +} impl TSignature for blst_core::Signature { fn serialize(&self) -> [u8; SIGNATURE_BYTES_LEN] { diff --git a/crypto/bls/src/impls/fake_crypto.rs b/crypto/bls/src/impls/fake_crypto.rs index 72cc641aa1..1004dc2003 100644 --- a/crypto/bls/src/impls/fake_crypto.rs +++ b/crypto/bls/src/impls/fake_crypto.rs @@ -6,6 +6,7 @@ use crate::{ generic_signature::{TSignature, SIGNATURE_BYTES_LEN}, Error, Hash256, ZeroizeHash, INFINITY_PUBLIC_KEY, INFINITY_SIGNATURE, }; + /// Provides the externally-facing, core BLS types. pub mod types { pub use super::verify_signature_sets; @@ -63,7 +64,15 @@ impl PartialEq for PublicKey { #[derive(Clone)] pub struct AggregatePublicKey([u8; PUBLIC_KEY_BYTES_LEN]); -impl TAggregatePublicKey for AggregatePublicKey {} +impl TAggregatePublicKey for AggregatePublicKey { + fn to_public_key(&self) -> GenericPublicKey { + GenericPublicKey::from_point(PublicKey(self.0)) + } + + fn aggregate(_pubkeys: &[GenericPublicKey]) -> Result { + Ok(Self(INFINITY_PUBLIC_KEY)) + } +} impl Eq for AggregatePublicKey {} diff --git a/crypto/bls/src/impls/milagro.rs b/crypto/bls/src/impls/milagro.rs index 829c5aa3d8..7eaa9ad105 100644 --- a/crypto/bls/src/impls/milagro.rs +++ b/crypto/bls/src/impls/milagro.rs @@ -86,7 +86,18 @@ impl TPublicKey for milagro::PublicKey { } } -impl TAggregatePublicKey for milagro::AggregatePublicKey {} +impl TAggregatePublicKey for milagro::AggregatePublicKey { + fn to_public_key(&self) -> GenericPublicKey { + GenericPublicKey::from_point(milagro::PublicKey { + point: self.point.clone(), + }) + } + + fn aggregate(pubkeys: &[GenericPublicKey]) -> Result { + let pubkey_refs = pubkeys.iter().map(|pk| pk.point()).collect::>(); + Ok(milagro::AggregatePublicKey::aggregate(&pubkey_refs)?) + } +} impl TSignature for milagro::Signature { fn serialize(&self) -> [u8; SIGNATURE_BYTES_LEN] { diff --git a/crypto/bls/src/lib.rs b/crypto/bls/src/lib.rs index 5aaa4f8c81..8a31a90a14 100644 --- a/crypto/bls/src/lib.rs +++ b/crypto/bls/src/lib.rs @@ -79,6 +79,7 @@ impl From for Error { /// Generic implementations which are only generally useful for docs. pub mod generics { + pub use crate::generic_aggregate_public_key::GenericAggregatePublicKey; pub use crate::generic_aggregate_signature::GenericAggregateSignature; pub use crate::generic_keypair::GenericKeypair; pub use crate::generic_public_key::GenericPublicKey; @@ -102,6 +103,8 @@ macro_rules! define_mod { pub type PublicKey = GenericPublicKey; pub type PublicKeyBytes = GenericPublicKeyBytes; + pub type AggregatePublicKey = + GenericAggregatePublicKey; pub type Signature = GenericSignature; pub type AggregateSignature = GenericAggregateSignature< bls_variant::PublicKey, diff --git a/lcli/src/change_genesis_time.rs b/lcli/src/change_genesis_time.rs index 94ee6b2cf3..6b7b812e87 100644 --- a/lcli/src/change_genesis_time.rs +++ b/lcli/src/change_genesis_time.rs @@ -1,11 +1,12 @@ use clap::ArgMatches; -use ssz::{Decode, Encode}; +use eth2_network_config::Eth2NetworkConfig; +use ssz::Encode; use std::fs::File; use std::io::{Read, Write}; use std::path::PathBuf; use types::{BeaconState, EthSpec}; -pub fn run(matches: &ArgMatches) -> Result<(), String> { +pub fn run(testnet_dir: PathBuf, matches: &ArgMatches) -> Result<(), String> { let path = matches .value_of("ssz-state") .ok_or("ssz-state not specified")? @@ -18,6 +19,9 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { .parse::() .map_err(|e| format!("Unable to parse genesis-time: {}", e))?; + let eth2_network_config = Eth2NetworkConfig::load(testnet_dir)?; + let spec = ð2_network_config.chain_spec::()?; + let mut state: BeaconState = { let mut file = File::open(&path).map_err(|e| format!("Unable to open file: {}", e))?; @@ -26,10 +30,11 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { file.read_to_end(&mut ssz) .map_err(|e| format!("Unable to read file: {}", e))?; - BeaconState::from_ssz_bytes(&ssz).map_err(|e| format!("Unable to decode SSZ: {:?}", e))? + BeaconState::from_ssz_bytes(&ssz, spec) + .map_err(|e| format!("Unable to decode SSZ: {:?}", e))? }; - state.genesis_time = genesis_time; + *state.genesis_time_mut() = genesis_time; let mut file = File::create(path).map_err(|e| format!("Unable to create file: {}", e))?; diff --git a/lcli/src/eth1_genesis.rs b/lcli/src/eth1_genesis.rs index d929b1784c..689107228e 100644 --- a/lcli/src/eth1_genesis.rs +++ b/lcli/src/eth1_genesis.rs @@ -12,7 +12,11 @@ use types::EthSpec; /// Interval between polling the eth1 node for genesis information. pub const ETH1_GENESIS_UPDATE_INTERVAL: Duration = Duration::from_millis(7_000); -pub fn run(mut env: Environment, matches: &ArgMatches<'_>) -> Result<(), String> { +pub fn run( + mut env: Environment, + testnet_dir: PathBuf, + matches: &ArgMatches<'_>, +) -> Result<(), String> { let endpoints = matches .value_of("eth1-endpoint") .map(|e| { @@ -25,29 +29,9 @@ pub fn run(mut env: Environment, matches: &ArgMatches<'_>) -> Res .map(|s| s.split(',').map(String::from).collect()) }); - let testnet_dir = matches - .value_of("testnet-dir") - .ok_or(()) - .and_then(|dir| dir.parse::().map_err(|_| ())) - .unwrap_or_else(|_| { - dirs::home_dir() - .map(|home| home.join(directory::DEFAULT_ROOT_DIR).join("testnet")) - .expect("should locate home directory") - }); - let mut eth2_network_config = Eth2NetworkConfig::load(testnet_dir.clone())?; - let spec = eth2_network_config - .yaml_config - .as_ref() - .ok_or("The testnet directory must contain a spec config")? - .apply_to_chain_spec::(&env.core_context().eth2_config.spec) - .ok_or_else(|| { - format!( - "The loaded config is not compatible with the {} spec", - &env.core_context().eth2_config.eth_spec_id - ) - })?; + let spec = eth2_network_config.chain_spec::()?; let mut config = Eth1Config::default(); if let Some(v) = endpoints.clone() { diff --git a/lcli/src/helpers.rs b/lcli/src/helpers.rs deleted file mode 100644 index 441059cd19..0000000000 --- a/lcli/src/helpers.rs +++ /dev/null @@ -1,106 +0,0 @@ -use clap::ArgMatches; -use hex; -use std::path::PathBuf; -use std::time::{SystemTime, UNIX_EPOCH}; -use types::Address; - -pub fn time_now() -> Result { - SystemTime::now() - .duration_since(UNIX_EPOCH) - .map(|duration| duration.as_secs()) - .map_err(|e| format!("Unable to get time: {:?}", e)) -} - -pub fn parse_path_with_default_in_home_dir( - matches: &ArgMatches, - name: &'static str, - default: PathBuf, -) -> Result { - matches - .value_of(name) - .map(|dir| { - dir.parse::() - .map_err(|e| format!("Unable to parse {}: {}", name, e)) - }) - .unwrap_or_else(|| { - dirs::home_dir() - .map(|home| home.join(default)) - .ok_or_else(|| format!("Unable to locate home directory. Try specifying {}", name)) - }) -} - -pub fn parse_path(matches: &ArgMatches, name: &'static str) -> Result { - matches - .value_of(name) - .ok_or_else(|| format!("{} not specified", name))? - .parse::() - .map_err(|e| format!("Unable to parse {}: {}", name, e)) -} - -pub fn parse_u64(matches: &ArgMatches, name: &'static str) -> Result { - matches - .value_of(name) - .ok_or_else(|| format!("{} not specified", name))? - .parse::() - .map_err(|e| format!("Unable to parse {}: {}", name, e)) -} - -pub fn parse_u64_opt(matches: &ArgMatches, name: &'static str) -> Result, String> { - matches - .value_of(name) - .map(|val| { - val.parse::() - .map_err(|e| format!("Unable to parse {}: {}", name, e)) - }) - .transpose() -} - -pub fn parse_address(matches: &ArgMatches, name: &'static str) -> Result { - matches - .value_of(name) - .ok_or_else(|| format!("{} not specified", name)) - .and_then(|val| { - if val.starts_with("0x") { - val[2..] - .parse() - .map_err(|e| format!("Unable to parse {}: {:?}", name, e)) - } else { - Err(format!("Unable to parse {}, must have 0x prefix", name)) - } - }) -} - -pub fn parse_fork_opt(matches: &ArgMatches, name: &'static str) -> Result, String> { - matches - .value_of(name) - .map(|val| { - if val.starts_with("0x") { - let vec = hex::decode(&val[2..]) - .map_err(|e| format!("Unable to parse {} as hex: {:?}", name, e))?; - - if vec.len() != 4 { - Err(format!("{} must be exactly 4 bytes", name)) - } else { - let mut arr = [0; 4]; - arr.copy_from_slice(&vec); - Ok(arr) - } - } else { - Err(format!("Unable to parse {}, must have 0x prefix", name)) - } - }) - .transpose() -} - -pub fn parse_hex_bytes(matches: &ArgMatches, name: &'static str) -> Result, String> { - matches - .value_of(name) - .ok_or_else(|| format!("{} not specified", name)) - .and_then(|val| { - if val.starts_with("0x") { - hex::decode(&val[2..]).map_err(|e| format!("Unable to parse {}: {:?}", name, e)) - } else { - Err(format!("Unable to parse {}, must have 0x prefix", name)) - } - }) -} diff --git a/lcli/src/interop_genesis.rs b/lcli/src/interop_genesis.rs index 744dd44471..6f35699fca 100644 --- a/lcli/src/interop_genesis.rs +++ b/lcli/src/interop_genesis.rs @@ -1,6 +1,5 @@ use clap::ArgMatches; use clap_utils::parse_ssz_optional; -use environment::Environment; use eth2_network_config::Eth2NetworkConfig; use genesis::interop_genesis_state; use ssz::Encode; @@ -8,7 +7,7 @@ use std::path::PathBuf; use std::time::{SystemTime, UNIX_EPOCH}; use types::{test_utils::generate_deterministic_keypairs, EthSpec}; -pub fn run(mut env: Environment, matches: &ArgMatches) -> Result<(), String> { +pub fn run(testnet_dir: PathBuf, matches: &ArgMatches) -> Result<(), String> { let validator_count = matches .value_of("validator-count") .ok_or("validator-count not specified")? @@ -26,29 +25,9 @@ pub fn run(mut env: Environment, matches: &ArgMatches) -> Result< .as_secs() }; - let testnet_dir = matches - .value_of("testnet-dir") - .ok_or(()) - .and_then(|dir| dir.parse::().map_err(|_| ())) - .unwrap_or_else(|_| { - dirs::home_dir() - .map(|home| home.join(directory::DEFAULT_ROOT_DIR).join("testnet")) - .expect("should locate home directory") - }); - let mut eth2_network_config = Eth2NetworkConfig::load(testnet_dir.clone())?; - let mut spec = eth2_network_config - .yaml_config - .as_ref() - .ok_or("The testnet directory must contain a spec config")? - .apply_to_chain_spec::(&env.core_context().eth2_config.spec) - .ok_or_else(|| { - format!( - "The loaded config is not compatible with the {} spec", - &env.core_context().eth2_config.eth_spec_id - ) - })?; + let mut spec = eth2_network_config.chain_spec::()?; if let Some(v) = parse_ssz_optional(matches, "genesis-fork-version")? { spec.genesis_fork_version = v; diff --git a/lcli/src/main.rs b/lcli/src/main.rs index 0444efa5dd..48ca0338dd 100644 --- a/lcli/src/main.rs +++ b/lcli/src/main.rs @@ -8,24 +8,21 @@ mod generate_bootnode_enr; mod insecure_validators; mod interop_genesis; mod new_testnet; -mod parse_hex; +mod parse_ssz; mod replace_state_pubkeys; mod skip_slots; mod transition_blocks; use clap::{App, Arg, ArgMatches, SubCommand}; +use clap_utils::parse_path_with_default_in_home_dir; use environment::EnvironmentBuilder; use log::LevelFilter; -use parse_hex::run_parse_hex; -use std::fs::File; +use parse_ssz::run_parse_ssz; use std::path::PathBuf; use std::process; use std::str::FromStr; -use std::time::{SystemTime, UNIX_EPOCH}; use transition_blocks::run_transition_blocks; -use types::{ - test_utils::TestingBeaconStateBuilder, EthSpec, EthSpecId, MainnetEthSpec, MinimalEthSpec, -}; +use types::{EthSpec, EthSpecId}; fn main() { simple_logger::SimpleLogger::new() @@ -55,34 +52,6 @@ fn main() { .global(true) .help("The testnet dir. Defaults to ~/.lighthouse/testnet"), ) - .subcommand( - SubCommand::with_name("genesis_yaml") - .about("Generates a genesis YAML file") - .arg( - Arg::with_name("num_validators") - .short("n") - .value_name("INTEGER") - .takes_value(true) - .required(true) - .help("Number of initial validators."), - ) - .arg( - Arg::with_name("genesis_time") - .short("g") - .value_name("INTEGER") - .takes_value(true) - .required(false) - .help("Eth2 genesis time (seconds since UNIX epoch)."), - ) - .arg( - Arg::with_name("output_file") - .short("f") - .value_name("PATH") - .takes_value(true) - .default_value("./genesis_state.yaml") - .help("Output file for generated state."), - ), - ) .subcommand( SubCommand::with_name("skip-slots") .about( @@ -138,22 +107,21 @@ fn main() { ), ) .subcommand( - SubCommand::with_name("pretty-hex") - .about("Parses SSZ encoded as ASCII 0x-prefixed hex") + SubCommand::with_name("pretty-ssz") + .about("Parses SSZ-encoded data from a file") .arg( Arg::with_name("type") .value_name("TYPE") .takes_value(true) .required(true) - .possible_values(&["block"]) - .help("The schema of the supplied SSZ."), + .help("Type to decode"), ) .arg( - Arg::with_name("hex_ssz") - .value_name("HEX") + Arg::with_name("ssz-file") + .value_name("FILE") .takes_value(true) .required(true) - .help("SSZ encoded as 0x-prefixed hex"), + .help("Path to SSZ bytes"), ), ) .subcommand( @@ -408,7 +376,16 @@ fn main() { "The block the deposit contract was deployed. Setting this is a huge optimization for nodes, please do it.", ), - ), + ) + .arg( + Arg::with_name("altair-fork-epoch") + .long("altair-fork-epoch") + .value_name("EPOCH") + .takes_value(true) + .help( + "The epoch at which to enable the Altair hard fork", + ), + ) ) .subcommand( SubCommand::with_name("check-deposit-data") @@ -516,7 +493,6 @@ fn main() { .and_then(|eth_spec_id| match eth_spec_id { EthSpecId::Minimal => run(EnvironmentBuilder::minimal(), &matches), EthSpecId::Mainnet => run(EnvironmentBuilder::mainnet(), &matches), - EthSpecId::V012Legacy => run(EnvironmentBuilder::v012_legacy(), &matches), }); match result { @@ -540,66 +516,37 @@ fn run( .build() .map_err(|e| format!("should build env: {:?}", e))?; + let testnet_dir = parse_path_with_default_in_home_dir( + matches, + "testnet-dir", + PathBuf::from(directory::DEFAULT_ROOT_DIR).join("testnet"), + )?; + match matches.subcommand() { - ("genesis_yaml", Some(matches)) => { - let num_validators = matches - .value_of("num_validators") - .expect("slog requires num_validators") - .parse::() - .expect("num_validators must be a valid integer"); - - let genesis_time = if let Some(string) = matches.value_of("genesis_time") { - string - .parse::() - .expect("genesis_time must be a valid integer") - } else { - warn!("No genesis time supplied via CLI, using the current time."); - SystemTime::now() - .duration_since(UNIX_EPOCH) - .expect("should obtain time since unix epoch") - .as_secs() - }; - - let file = matches - .value_of("output_file") - .expect("slog requires output file") - .parse::() - .expect("output_file must be a valid path"); - - info!( - "Creating genesis state with {} validators and genesis time {}.", - num_validators, genesis_time - ); - - match matches.value_of("spec").expect("spec is required by slog") { - "minimal" => genesis_yaml::(num_validators, genesis_time, file), - "mainnet" => genesis_yaml::(num_validators, genesis_time, file), - _ => unreachable!("guarded by slog possible_values"), - }; - info!("Genesis state YAML file created. Exiting successfully."); - Ok(()) - } - ("transition-blocks", Some(matches)) => run_transition_blocks::(matches) + ("transition-blocks", Some(matches)) => run_transition_blocks::(testnet_dir, matches) .map_err(|e| format!("Failed to transition blocks: {}", e)), - ("skip-slots", Some(matches)) => { - skip_slots::run::(matches).map_err(|e| format!("Failed to skip slots: {}", e)) - } - ("pretty-hex", Some(matches)) => { - run_parse_hex::(matches).map_err(|e| format!("Failed to pretty print hex: {}", e)) + ("skip-slots", Some(matches)) => skip_slots::run::(testnet_dir, matches) + .map_err(|e| format!("Failed to skip slots: {}", e)), + ("pretty-ssz", Some(matches)) => { + run_parse_ssz::(matches).map_err(|e| format!("Failed to pretty print hex: {}", e)) } ("deploy-deposit-contract", Some(matches)) => { deploy_deposit_contract::run::(env, matches) .map_err(|e| format!("Failed to run deploy-deposit-contract command: {}", e)) } - ("eth1-genesis", Some(matches)) => eth1_genesis::run::(env, matches) + ("eth1-genesis", Some(matches)) => eth1_genesis::run::(env, testnet_dir, matches) .map_err(|e| format!("Failed to run eth1-genesis command: {}", e)), - ("interop-genesis", Some(matches)) => interop_genesis::run::(env, matches) + ("interop-genesis", Some(matches)) => interop_genesis::run::(testnet_dir, matches) .map_err(|e| format!("Failed to run interop-genesis command: {}", e)), - ("change-genesis-time", Some(matches)) => change_genesis_time::run::(matches) - .map_err(|e| format!("Failed to run change-genesis-time command: {}", e)), - ("replace-state-pubkeys", Some(matches)) => replace_state_pubkeys::run::(matches) - .map_err(|e| format!("Failed to run replace-state-pubkeys command: {}", e)), - ("new-testnet", Some(matches)) => new_testnet::run::(matches) + ("change-genesis-time", Some(matches)) => { + change_genesis_time::run::(testnet_dir, matches) + .map_err(|e| format!("Failed to run change-genesis-time command: {}", e)) + } + ("replace-state-pubkeys", Some(matches)) => { + replace_state_pubkeys::run::(testnet_dir, matches) + .map_err(|e| format!("Failed to run replace-state-pubkeys command: {}", e)) + } + ("new-testnet", Some(matches)) => new_testnet::run::(testnet_dir, matches) .map_err(|e| format!("Failed to run new_testnet command: {}", e)), ("check-deposit-data", Some(matches)) => check_deposit_data::run::(matches) .map_err(|e| format!("Failed to run check-deposit-data command: {}", e)), @@ -610,22 +557,3 @@ fn run( (other, _) => Err(format!("Unknown subcommand {}. See --help.", other)), } } - -/// Creates a genesis state and writes it to a YAML file. -fn genesis_yaml(validator_count: usize, genesis_time: u64, output: PathBuf) { - let spec = &T::default_spec(); - - let builder: TestingBeaconStateBuilder = - TestingBeaconStateBuilder::from_deterministic_keypairs(validator_count, spec); - - let (mut state, _keypairs) = builder.build(); - state.genesis_time = genesis_time; - - info!("Generated state root: {:?}", state.canonical_root()); - - info!("Writing genesis state to {:?}", output); - - let file = File::create(output.clone()) - .unwrap_or_else(|e| panic!("unable to create file: {:?}. Error: {:?}", output, e)); - serde_yaml::to_writer(file, &state).expect("should be able to serialize BeaconState"); -} diff --git a/lcli/src/new_testnet.rs b/lcli/src/new_testnet.rs index af086102d7..777633ca82 100644 --- a/lcli/src/new_testnet.rs +++ b/lcli/src/new_testnet.rs @@ -1,17 +1,10 @@ use clap::ArgMatches; -use clap_utils::{ - parse_optional, parse_path_with_default_in_home_dir, parse_required, parse_ssz_optional, -}; +use clap_utils::{parse_optional, parse_required, parse_ssz_optional}; use eth2_network_config::Eth2NetworkConfig; use std::path::PathBuf; -use types::{Address, EthSpec, YamlConfig}; +use types::{Address, Config, EthSpec}; -pub fn run(matches: &ArgMatches) -> Result<(), String> { - let testnet_dir_path = parse_path_with_default_in_home_dir( - matches, - "testnet-dir", - PathBuf::from(directory::DEFAULT_ROOT_DIR).join("testnet"), - )?; +pub fn run(testnet_dir_path: PathBuf, matches: &ArgMatches) -> Result<(), String> { let deposit_contract_address: Address = parse_required(matches, "deposit-contract-address")?; let deposit_contract_deploy_block = parse_required(matches, "deposit-contract-deploy-block")?; @@ -56,11 +49,15 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { spec.genesis_fork_version = v; } + if let Some(fork_epoch) = parse_optional(matches, "altair-fork-epoch")? { + spec.altair_fork_epoch = Some(fork_epoch); + } + let testnet = Eth2NetworkConfig { deposit_contract_deploy_block, boot_enr: Some(vec![]), genesis_state_bytes: None, - yaml_config: Some(YamlConfig::from_spec::(&spec)), + config: Config::from_chain_spec::(&spec), }; testnet.write_to_file(testnet_dir_path, overwrite_files) diff --git a/lcli/src/parse_hex.rs b/lcli/src/parse_hex.rs deleted file mode 100644 index 992cbf91d2..0000000000 --- a/lcli/src/parse_hex.rs +++ /dev/null @@ -1,41 +0,0 @@ -use clap::ArgMatches; -use serde::Serialize; -use ssz::Decode; -use types::{BeaconBlock, BeaconState, EthSpec}; - -pub fn run_parse_hex(matches: &ArgMatches) -> Result<(), String> { - let type_str = matches.value_of("type").ok_or("No type supplied")?; - let mut hex: String = matches - .value_of("hex_ssz") - .ok_or("No hex ssz supplied")? - .to_string(); - - if hex.starts_with("0x") { - hex = hex[2..].to_string(); - } - - let hex = hex::decode(&hex).map_err(|e| format!("Failed to parse hex: {:?}", e))?; - - info!("Using {} spec", T::spec_name()); - info!("Type: {:?}", type_str); - - match type_str { - "block" => decode_and_print::>(&hex)?, - "state" => decode_and_print::>(&hex)?, - other => return Err(format!("Unknown type: {}", other)), - }; - - Ok(()) -} - -fn decode_and_print(bytes: &[u8]) -> Result<(), String> { - let item = T::from_ssz_bytes(&bytes).map_err(|e| format!("Ssz decode failed: {:?}", e))?; - - println!( - "{}", - serde_yaml::to_string(&item) - .map_err(|e| format!("Unable to write object to YAML: {:?}", e))? - ); - - Ok(()) -} diff --git a/lcli/src/parse_ssz.rs b/lcli/src/parse_ssz.rs index aba94beb0d..676eb6294a 100644 --- a/lcli/src/parse_ssz.rs +++ b/lcli/src/parse_ssz.rs @@ -1,26 +1,28 @@ -use crate::helpers::parse_path; use clap::ArgMatches; use serde::Serialize; use ssz::Decode; use std::fs::File; use std::io::Read; -use types::{EthSpec, SignedBeaconBlock}; +use types::*; -pub fn run(matches: &ArgMatches) -> Result<(), String> { - let type_str = matches - .value_of("type") - .ok_or("No type supplied")?; - let path = parse_path(matches, "path")?; - - info!("Type: {:?}", type_str); +pub fn run_parse_ssz(matches: &ArgMatches) -> Result<(), String> { + let type_str = matches.value_of("type").ok_or("No type supplied")?; + let filename = matches.value_of("ssz-file").ok_or("No file supplied")?; let mut bytes = vec![]; - let mut file = File::open(&path).map_err(|e| format!("Unable to open {:?}: {}", path, e))?; + let mut file = + File::open(filename).map_err(|e| format!("Unable to open {}: {}", filename, e))?; file.read_to_end(&mut bytes) - .map_err(|e| format!("Unable to read {:?}: {}", path, e))?; + .map_err(|e| format!("Unable to read {}: {}", filename, e))?; + + info!("Using {} spec", T::spec_name()); + info!("Type: {:?}", type_str); match type_str { - "SignedBeaconBlock" => decode_and_print::>(&bytes)?, + "block_base" => decode_and_print::>(&bytes)?, + "block_altair" => decode_and_print::>(&bytes)?, + "state_base" => decode_and_print::>(&bytes)?, + "state_altair" => decode_and_print::>(&bytes)?, other => return Err(format!("Unknown type: {}", other)), }; @@ -28,7 +30,7 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { } fn decode_and_print(bytes: &[u8]) -> Result<(), String> { - let item = T::from_ssz_bytes(&bytes).map_err(|e| format!("Ssz decode failed: {:?}", e))?; + let item = T::from_ssz_bytes(&bytes).map_err(|e| format!("SSZ decode failed: {:?}", e))?; println!( "{}", diff --git a/lcli/src/replace_state_pubkeys.rs b/lcli/src/replace_state_pubkeys.rs index e1513b4c2e..8e85f76aed 100644 --- a/lcli/src/replace_state_pubkeys.rs +++ b/lcli/src/replace_state_pubkeys.rs @@ -1,14 +1,15 @@ use account_utils::{eth2_keystore::keypair_from_secret, mnemonic_from_phrase}; use clap::ArgMatches; +use eth2_network_config::Eth2NetworkConfig; use eth2_wallet::bip39::Seed; use eth2_wallet::{recover_validator_secret_from_mnemonic, KeyType}; -use ssz::{Decode, Encode}; +use ssz::Encode; use std::fs::File; use std::io::{Read, Write}; use std::path::PathBuf; use types::{BeaconState, EthSpec}; -pub fn run(matches: &ArgMatches) -> Result<(), String> { +pub fn run(testnet_dir: PathBuf, matches: &ArgMatches) -> Result<(), String> { let path = matches .value_of("ssz-state") .ok_or("ssz-state not specified")? @@ -19,6 +20,9 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { .value_of("mnemonic") .ok_or("mnemonic not specified")?; + let eth2_network_config = Eth2NetworkConfig::load(testnet_dir)?; + let spec = ð2_network_config.chain_spec::()?; + let mut state: BeaconState = { let mut file = File::open(&path).map_err(|e| format!("Unable to open file: {}", e))?; @@ -27,13 +31,14 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { file.read_to_end(&mut ssz) .map_err(|e| format!("Unable to read file: {}", e))?; - BeaconState::from_ssz_bytes(&ssz).map_err(|e| format!("Unable to decode SSZ: {:?}", e))? + BeaconState::from_ssz_bytes(&ssz, spec) + .map_err(|e| format!("Unable to decode SSZ: {:?}", e))? }; let mnemonic = mnemonic_from_phrase(mnemonic_phrase)?; let seed = Seed::new(&mnemonic, ""); - for (index, validator) in state.validators.iter_mut().enumerate() { + for (index, validator) in state.validators_mut().iter_mut().enumerate() { let (secret, _) = recover_validator_secret_from_mnemonic(seed.as_bytes(), index as u32, KeyType::Voting) .map_err(|e| format!("Unable to generate validator key: {:?}", e))?; diff --git a/lcli/src/skip_slots.rs b/lcli/src/skip_slots.rs index 7ca0891dc1..cb502d37ae 100644 --- a/lcli/src/skip_slots.rs +++ b/lcli/src/skip_slots.rs @@ -1,5 +1,6 @@ -use crate::transition_blocks::load_from_ssz; +use crate::transition_blocks::load_from_ssz_with; use clap::ArgMatches; +use eth2_network_config::Eth2NetworkConfig; use ssz::Encode; use state_processing::per_slot_processing; use std::fs::File; @@ -7,7 +8,7 @@ use std::io::prelude::*; use std::path::PathBuf; use types::{BeaconState, EthSpec}; -pub fn run(matches: &ArgMatches) -> Result<(), String> { +pub fn run(testnet_dir: PathBuf, matches: &ArgMatches) -> Result<(), String> { let pre_state_path = matches .value_of("pre-state") .ok_or("No pre-state file supplied")? @@ -30,9 +31,11 @@ pub fn run(matches: &ArgMatches) -> Result<(), String> { info!("Pre-state path: {:?}", pre_state_path); info!("Slots: {:?}", slots); - let mut state: BeaconState = load_from_ssz(pre_state_path)?; + let eth2_network_config = Eth2NetworkConfig::load(testnet_dir)?; + let spec = ð2_network_config.chain_spec::()?; - let spec = &T::default_spec(); + let mut state: BeaconState = + load_from_ssz_with(&pre_state_path, spec, BeaconState::from_ssz_bytes)?; state .build_all_caches(spec) diff --git a/lcli/src/transition_blocks.rs b/lcli/src/transition_blocks.rs index e6845cb08b..04d15f5a11 100644 --- a/lcli/src/transition_blocks.rs +++ b/lcli/src/transition_blocks.rs @@ -1,12 +1,16 @@ use clap::ArgMatches; -use ssz::{Decode, Encode}; +use eth2_network_config::Eth2NetworkConfig; +use ssz::Encode; use state_processing::{per_block_processing, per_slot_processing, BlockSignatureStrategy}; use std::fs::File; use std::io::prelude::*; -use std::path::PathBuf; -use types::{BeaconState, EthSpec, SignedBeaconBlock}; +use std::path::{Path, PathBuf}; +use types::{BeaconState, ChainSpec, EthSpec, SignedBeaconBlock}; -pub fn run_transition_blocks(matches: &ArgMatches) -> Result<(), String> { +pub fn run_transition_blocks( + testnet_dir: PathBuf, + matches: &ArgMatches, +) -> Result<(), String> { let pre_state_path = matches .value_of("pre-state") .ok_or("No pre-state file supplied")? @@ -29,10 +33,15 @@ pub fn run_transition_blocks(matches: &ArgMatches) -> Result<(), Str info!("Pre-state path: {:?}", pre_state_path); info!("Block path: {:?}", block_path); - let pre_state: BeaconState = load_from_ssz(pre_state_path)?; - let block: SignedBeaconBlock = load_from_ssz(block_path)?; + let eth2_network_config = Eth2NetworkConfig::load(testnet_dir)?; + let spec = ð2_network_config.chain_spec::()?; - let post_state = do_transition(pre_state, block)?; + let pre_state: BeaconState = + load_from_ssz_with(&pre_state_path, spec, BeaconState::from_ssz_bytes)?; + let block: SignedBeaconBlock = + load_from_ssz_with(&block_path, spec, SignedBeaconBlock::from_ssz_bytes)?; + + let post_state = do_transition(pre_state, block, spec)?; let mut output_file = File::create(output_path).map_err(|e| format!("Unable to create output file: {:?}", e))?; @@ -47,15 +56,14 @@ pub fn run_transition_blocks(matches: &ArgMatches) -> Result<(), Str fn do_transition( mut pre_state: BeaconState, block: SignedBeaconBlock, + spec: &ChainSpec, ) -> Result, String> { - let spec = &T::default_spec(); - pre_state .build_all_caches(spec) .map_err(|e| format!("Unable to build caches: {:?}", e))?; // Transition the parent state to the block slot. - for i in pre_state.slot.as_u64()..block.slot().as_u64() { + for i in pre_state.slot().as_u64()..block.slot().as_u64() { per_slot_processing(&mut pre_state, None, spec) .map_err(|e| format!("Failed to advance slot on iteration {}: {:?}", i, e))?; } @@ -76,11 +84,15 @@ fn do_transition( Ok(pre_state) } -pub fn load_from_ssz(path: PathBuf) -> Result { +pub fn load_from_ssz_with( + path: &Path, + spec: &ChainSpec, + decoder: impl FnOnce(&[u8], &ChainSpec) -> Result, +) -> Result { let mut file = - File::open(path.clone()).map_err(|e| format!("Unable to open file {:?}: {:?}", path, e))?; + File::open(path).map_err(|e| format!("Unable to open file {:?}: {:?}", path, e))?; let mut bytes = vec![]; file.read_to_end(&mut bytes) .map_err(|e| format!("Unable to read from file {:?}: {:?}", path, e))?; - T::from_ssz_bytes(&bytes).map_err(|e| format!("Ssz decode failed: {:?}", e)) + decoder(&bytes, spec).map_err(|e| format!("Ssz decode failed: {:?}", e)) } diff --git a/lighthouse/environment/src/lib.rs b/lighthouse/environment/src/lib.rs index 7cde85991d..4e00785540 100644 --- a/lighthouse/environment/src/lib.rs +++ b/lighthouse/environment/src/lib.rs @@ -25,9 +25,8 @@ use std::sync::Arc; use std::time::{SystemTime, UNIX_EPOCH}; use task_executor::{ShutdownReason, TaskExecutor}; use tokio::runtime::{Builder as RuntimeBuilder, Runtime}; -use types::{EthSpec, MainnetEthSpec, MinimalEthSpec, V012LegacyEthSpec}; +use types::{EthSpec, MainnetEthSpec, MinimalEthSpec}; -pub const ETH2_CONFIG_FILENAME: &str = "eth2-spec.toml"; const LOG_CHANNEL_SIZE: usize = 2048; /// The maximum time in seconds the client will wait for all internal tasks to shutdown. const MAXIMUM_SHUTDOWN_TIME: u64 = 15; @@ -67,19 +66,6 @@ impl EnvironmentBuilder { } } -impl EnvironmentBuilder { - /// Creates a new builder using the v0.12.x eth2 specification. - pub fn v012_legacy() -> Self { - Self { - runtime: None, - log: None, - eth_spec_instance: V012LegacyEthSpec, - eth2_config: Eth2Config::v012_legacy(), - testnet: None, - } - } -} - impl EnvironmentBuilder { /// Specifies that a multi-threaded tokio runtime should be used. Ideal for production uses. /// @@ -226,18 +212,7 @@ impl EnvironmentBuilder { eth2_network_config: Eth2NetworkConfig, ) -> Result { // Create a new chain spec from the default configuration. - self.eth2_config.spec = eth2_network_config - .yaml_config - .as_ref() - .ok_or("The testnet directory must contain a spec config")? - .apply_to_chain_spec::(&self.eth2_config.spec) - .ok_or_else(|| { - format!( - "The loaded config is not compatible with the {} spec", - &self.eth2_config.eth_spec_id - ) - })?; - + self.eth2_config.spec = eth2_network_config.chain_spec::()?; self.testnet = Some(eth2_network_config); Ok(self) diff --git a/lighthouse/environment/tests/environment_builder.rs b/lighthouse/environment/tests/environment_builder.rs index ce03e686cf..ad775c99f5 100644 --- a/lighthouse/environment/tests/environment_builder.rs +++ b/lighthouse/environment/tests/environment_builder.rs @@ -3,10 +3,10 @@ use environment::EnvironmentBuilder; use eth2_network_config::{Eth2NetworkConfig, DEFAULT_HARDCODED_NETWORK}; use std::path::PathBuf; -use types::{V012LegacyEthSpec, YamlConfig}; +use types::{Config, MainnetEthSpec}; -fn builder() -> EnvironmentBuilder { - EnvironmentBuilder::v012_legacy() +fn builder() -> EnvironmentBuilder { + EnvironmentBuilder::mainnet() .multi_threaded_tokio_runtime() .expect("should set runtime") .null_logger() @@ -23,11 +23,11 @@ mod setup_eth2_config { #[test] fn update_spec_with_yaml_config() { if let Some(mut eth2_network_config) = eth2_network_config() { - let config_yaml = PathBuf::from("./tests/testnet_dir/config.yaml"); + let testnet_dir = PathBuf::from("./tests/testnet_dir"); + let config = testnet_dir.join("config.yaml"); - eth2_network_config.yaml_config = Some( - YamlConfig::from_file(config_yaml.as_path()).expect("should load yaml config"), - ); + eth2_network_config.config = + Config::from_file(config.as_path()).expect("should load yaml config"); let environment = builder() .eth2_network_config(eth2_network_config) @@ -36,8 +36,15 @@ mod setup_eth2_config { .expect("should build environment"); assert_eq!( - environment.eth2_config.spec.max_committees_per_slot, - 128 // see testnet_dir/config.yaml + environment + .eth2_config + .spec + .min_genesis_active_validator_count, + 100000 // see testnet_dir/config.yaml + ); + assert_eq!( + environment.eth2_config.spec.inactivity_score_bias, + 2 // see testnet_dir/config.yaml ); } } diff --git a/lighthouse/environment/tests/testnet_dir/config.yaml b/lighthouse/environment/tests/testnet_dir/config.yaml index 493827f298..7d0105cca8 100644 --- a/lighthouse/environment/tests/testnet_dir/config.yaml +++ b/lighthouse/environment/tests/testnet_dir/config.yaml @@ -1,54 +1,66 @@ -# Mainnet preset -# Note: the intention of this file (for now) is to illustrate what a mainnet configuration could look like. -# Some of these constants may still change before the launch of Phase 0. +# Mainnet config -CONFIG_NAME: "mainnet" +# Extends the mainnet preset +PRESET_BASE: 'mainnet' -# Misc +# Genesis # --------------------------------------------------------------- -MAX_COMMITTEES_PER_SLOT: 128 # MODIFIED FOR TESTING -# 2**7 (= 128) -TARGET_COMMITTEE_SIZE: 128 -# 2**11 (= 2,048) -MAX_VALIDATORS_PER_COMMITTEE: 2048 +# CUSTOMISED FOR TEST +MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 100000 +# Dec 1, 2020, 12pm UTC +MIN_GENESIS_TIME: 1606824000 +# Mainnet initial fork version, recommend altering for testnets +GENESIS_FORK_VERSION: 0x00000000 +# 604800 seconds (7 days) +GENESIS_DELAY: 604800 + + +# Forking +# --------------------------------------------------------------- +# Some forks are disabled for now: +# - These may be re-assigned to another fork-version later +# - Temporarily set to max uint64 value: 2**64 - 1 + +# Altair +ALTAIR_FORK_VERSION: 0x01000000 +ALTAIR_FORK_EPOCH: 18446744073709551615 +# Merge +MERGE_FORK_VERSION: 0x02000000 +MERGE_FORK_EPOCH: 18446744073709551615 +# Sharding +SHARDING_FORK_VERSION: 0x03000000 +SHARDING_FORK_EPOCH: 18446744073709551615 + +# TBD, 2**32 is a placeholder. Merge transition approach is in active R&D. +TRANSITION_TOTAL_DIFFICULTY: 4294967296 + + +# Time parameters +# --------------------------------------------------------------- +# 12 seconds +SECONDS_PER_SLOT: 12 +# 14 (estimate from Eth1 mainnet) +SECONDS_PER_ETH1_BLOCK: 14 +# 2**8 (= 256) epochs ~27 hours +MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 +# 2**8 (= 256) epochs ~27 hours +SHARD_COMMITTEE_PERIOD: 256 +# 2**11 (= 2,048) Eth1 blocks ~8 hours +ETH1_FOLLOW_DISTANCE: 2048 + + +# Validator cycle +# --------------------------------------------------------------- +# CUSTOMISED FOR TEST +INACTIVITY_SCORE_BIAS: 2 +# 2**4 (= 16) +INACTIVITY_SCORE_RECOVERY_RATE: 16 +# 2**4 * 10**9 (= 16,000,000,000) Gwei +EJECTION_BALANCE: 16000000000 # 2**2 (= 4) MIN_PER_EPOCH_CHURN_LIMIT: 4 # 2**16 (= 65,536) CHURN_LIMIT_QUOTIENT: 65536 -# See issue 563 -SHUFFLE_ROUND_COUNT: 90 -# `2**14` (= 16,384) -MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 16384 -# Jan 3, 2020 -MIN_GENESIS_TIME: 1578009600 -# 4 -HYSTERESIS_QUOTIENT: 4 -# 1 (minus 0.25) -HYSTERESIS_DOWNWARD_MULTIPLIER: 1 -# 5 (plus 1.25) -HYSTERESIS_UPWARD_MULTIPLIER: 5 -# 3 -PROPORTIONAL_SLASHING_MULTIPLIER: 3 - - -# Fork Choice -# --------------------------------------------------------------- -# 2**3 (= 8) -SAFE_SLOTS_TO_UPDATE_JUSTIFIED: 8 - - -# Validator -# --------------------------------------------------------------- -# 2**10 (= 1,024) -ETH1_FOLLOW_DISTANCE: 1024 -# 2**4 (= 16) -TARGET_AGGREGATORS_PER_COMMITTEE: 16 -# 2**0 (= 1) -RANDOM_SUBNETS_PER_VALIDATOR: 1 -# 2**8 (= 256) -EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: 256 -# 14 (estimate from Eth1 mainnet) -SECONDS_PER_ETH1_BLOCK: 14 # Deposit contract @@ -56,101 +68,4 @@ SECONDS_PER_ETH1_BLOCK: 14 # Ethereum PoW Mainnet DEPOSIT_CHAIN_ID: 1 DEPOSIT_NETWORK_ID: 1 -# **TBD** -DEPOSIT_CONTRACT_ADDRESS: 0x1234567890123456789012345678901234567890 - - -# Gwei values -# --------------------------------------------------------------- -# 2**0 * 10**9 (= 1,000,000,000) Gwei -MIN_DEPOSIT_AMOUNT: 1000000000 -# 2**5 * 10**9 (= 32,000,000,000) Gwei -MAX_EFFECTIVE_BALANCE: 32000000000 -# 2**4 * 10**9 (= 16,000,000,000) Gwei -EJECTION_BALANCE: 16000000000 -# 2**0 * 10**9 (= 1,000,000,000) Gwei -EFFECTIVE_BALANCE_INCREMENT: 1000000000 - - -# Initial values -# --------------------------------------------------------------- -# Mainnet initial fork version, recommend altering for testnets -GENESIS_FORK_VERSION: 0x00000000 -BLS_WITHDRAWAL_PREFIX: 0x00 - - -# Time parameters -# --------------------------------------------------------------- -# 172800 seconds (2 days) -GENESIS_DELAY: 172800 -# 12 seconds -SECONDS_PER_SLOT: 12 -# 2**0 (= 1) slots 12 seconds -MIN_ATTESTATION_INCLUSION_DELAY: 1 -# 2**5 (= 32) slots 6.4 minutes -SLOTS_PER_EPOCH: 32 -# 2**0 (= 1) epochs 6.4 minutes -MIN_SEED_LOOKAHEAD: 1 -# 2**2 (= 4) epochs 25.6 minutes -MAX_SEED_LOOKAHEAD: 4 -# 2**5 (= 32) epochs ~3.4 hours -EPOCHS_PER_ETH1_VOTING_PERIOD: 32 -# 2**13 (= 8,192) slots ~13 hours -SLOTS_PER_HISTORICAL_ROOT: 8192 -# 2**8 (= 256) epochs ~27 hours -MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256 -# 2**8 (= 256) epochs ~27 hours -SHARD_COMMITTEE_PERIOD: 256 -# 2**2 (= 4) epochs 25.6 minutes -MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4 - - -# State vector lengths -# --------------------------------------------------------------- -# 2**16 (= 65,536) epochs ~0.8 years -EPOCHS_PER_HISTORICAL_VECTOR: 65536 -# 2**13 (= 8,192) epochs ~36 days -EPOCHS_PER_SLASHINGS_VECTOR: 8192 -# 2**24 (= 16,777,216) historical roots, ~26,131 years -HISTORICAL_ROOTS_LIMIT: 16777216 -# 2**40 (= 1,099,511,627,776) validator spots -VALIDATOR_REGISTRY_LIMIT: 1099511627776 - - -# Reward and penalty quotients -# --------------------------------------------------------------- -# 2**6 (= 64) -BASE_REWARD_FACTOR: 64 -# 2**9 (= 512) -WHISTLEBLOWER_REWARD_QUOTIENT: 512 -# 2**3 (= 8) -PROPOSER_REWARD_QUOTIENT: 8 -# 2**24 (= 16,777,216) -INACTIVITY_PENALTY_QUOTIENT: 16777216 -# 2**5 (= 32) -MIN_SLASHING_PENALTY_QUOTIENT: 32 - - -# Max operations per block -# --------------------------------------------------------------- -# 2**4 (= 16) -MAX_PROPOSER_SLASHINGS: 16 -# 2**1 (= 2) -MAX_ATTESTER_SLASHINGS: 2 -# 2**7 (= 128) -MAX_ATTESTATIONS: 128 -# 2**4 (= 16) -MAX_DEPOSITS: 16 -# 2**4 (= 16) -MAX_VOLUNTARY_EXITS: 16 - - -# Signature domains -# --------------------------------------------------------------- -DOMAIN_BEACON_PROPOSER: 0x00000000 -DOMAIN_BEACON_ATTESTER: 0x01000000 -DOMAIN_RANDAO: 0x02000000 -DOMAIN_DEPOSIT: 0x03000000 -DOMAIN_VOLUNTARY_EXIT: 0x04000000 -DOMAIN_SELECTION_PROOF: 0x05000000 -DOMAIN_AGGREGATE_AND_PROOF: 0x06000000 +DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa diff --git a/lighthouse/src/main.rs b/lighthouse/src/main.rs index 2282455969..5dccb7ab22 100644 --- a/lighthouse/src/main.rs +++ b/lighthouse/src/main.rs @@ -18,8 +18,6 @@ use task_executor::ShutdownReason; use types::{EthSpec, EthSpecId}; use validator_client::ProductionValidatorClient; -pub const ETH2_CONFIG_FILENAME: &str = "eth2-spec.toml"; - fn bls_library_name() -> &'static str { if cfg!(feature = "portable") { "blst-portable" @@ -125,7 +123,7 @@ fn main() { .long("network") .value_name("network") .help("Name of the Eth2 chain Lighthouse will sync and follow.") - .possible_values(&["medalla", "altona", "spadina", "pyrmont", "mainnet", "toledo", "prater"]) + .possible_values(&["pyrmont", "mainnet", "prater"]) .conflicts_with("testnet-dir") .takes_value(true) .global(true) @@ -207,11 +205,7 @@ fn main() { EthSpecId::Mainnet => run(EnvironmentBuilder::mainnet(), &matches, testnet_config), #[cfg(feature = "spec-minimal")] EthSpecId::Minimal => run(EnvironmentBuilder::minimal(), &matches, testnet_config), - #[cfg(feature = "spec-v12")] - EthSpecId::V012Legacy => { - run(EnvironmentBuilder::v012_legacy(), &matches, testnet_config) - } - #[cfg(any(not(feature = "spec-minimal"), not(feature = "spec-v12")))] + #[cfg(any(not(feature = "spec-minimal")))] other => { eprintln!( "Eth spec `{}` is not supported by this build of Lighthouse", diff --git a/remote_signer/tests/sign_attestation.rs b/remote_signer/tests/sign_attestation.rs index 11968b4bb9..bebefa4427 100644 --- a/remote_signer/tests/sign_attestation.rs +++ b/remote_signer/tests/sign_attestation.rs @@ -30,7 +30,7 @@ mod sign_attestation { testcase( "\"beacon_proposer\"", - "Unable to parse block from JSON: Error(\"missing field `proposer_index`\", line: 0, column: 0)", + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); testcase( "\"randao\"", diff --git a/remote_signer/tests/sign_block.rs b/remote_signer/tests/sign_block.rs index 509557cad9..3ae1327211 100644 --- a/remote_signer/tests/sign_block.rs +++ b/remote_signer/tests/sign_block.rs @@ -57,23 +57,23 @@ mod sign_block { testcase( "\"data\":{\"slot\":\"\",\"proposer_index\":\"0\"", - "Unable to parse block from JSON: Error(\"cannot parse integer from empty string\", line: 0, column: 0)" + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); testcase( "\"data\":{\"slot\":\"-1\",\"proposer_index\":\"0\"", - "Unable to parse block from JSON: Error(\"invalid digit found in string\", line: 0, column: 0)" + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); testcase( "\"data\":{\"proposer_index\":\"0\"", - "Unable to parse block from JSON: Error(\"missing field `slot`\", line: 0, column: 0)", + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); testcase( "\"data\":{\"slot\":\"49463\"", - "Unable to parse block from JSON: Error(\"missing field `proposer_index`\", line: 0, column: 0)" + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); testcase( "\"data\":{\"slot\":\"49463\",\"proposer_index\":\"\"", - "Unable to parse block from JSON: Error(\"cannot parse integer from empty string\", line: 0, column: 0)", + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)" ); test_signer.shutdown(); diff --git a/remote_signer/tests/sign_randao.rs b/remote_signer/tests/sign_randao.rs index 738c382420..030c5b9ca4 100644 --- a/remote_signer/tests/sign_randao.rs +++ b/remote_signer/tests/sign_randao.rs @@ -30,7 +30,7 @@ mod sign_randao { testcase( "\"beacon_proposer\"", - "Unable to parse block from JSON: Error(\"invalid type: string \"49463\", expected struct BeaconBlock\", line: 0, column: 0)" + "Unable to parse block from JSON: Error(\"data did not match any variant of untagged enum BeaconBlock\", line: 0, column: 0)", ); testcase( "\"beacon_attester\"", diff --git a/scripts/local_testnet/setup.sh b/scripts/local_testnet/setup.sh index ad0e053752..4e86ec8806 100755 --- a/scripts/local_testnet/setup.sh +++ b/scripts/local_testnet/setup.sh @@ -5,7 +5,7 @@ # Produces a testnet specification and a genesis state where the genesis time # is now + $GENESIS_DELAY. # -# Generates datadirs for multiple validator keys according to the +# Generates datadirs for multiple validator keys according to the # $VALIDATOR_COUNT and $NODE_COUNT variables. # @@ -30,6 +30,7 @@ lcli \ --min-genesis-time $GENESIS_TIME \ --genesis-delay $GENESIS_DELAY \ --genesis-fork-version $GENESIS_FORK_VERSION \ + --altair-fork-epoch $ALTAIR_FORK_EPOCH \ --eth1-id $NETWORK_ID \ --eth1-follow-distance 1 \ --seconds-per-eth1-block 1 \ diff --git a/scripts/local_testnet/vars.env b/scripts/local_testnet/vars.env index 356ddc9d98..3152dd49f4 100644 --- a/scripts/local_testnet/vars.env +++ b/scripts/local_testnet/vars.env @@ -24,4 +24,7 @@ GENESIS_DELAY=180 BOOTNODE_PORT=4242 # Network ID and Chain ID of local eth1 test network -NETWORK_ID=4242 +NETWORK_ID=4242 + +# Hard fork configuration +ALTAIR_FORK_EPOCH=18446744073709551615 diff --git a/testing/ef_tests/.gitignore b/testing/ef_tests/.gitignore index a83c5aa961..c088fca6b2 100644 --- a/testing/ef_tests/.gitignore +++ b/testing/ef_tests/.gitignore @@ -1 +1,2 @@ /eth2.0-spec-tests +.accessed_file_log.txt diff --git a/testing/ef_tests/Cargo.toml b/testing/ef_tests/Cargo.toml index 0c701b9cd6..76fc735524 100644 --- a/testing/ef_tests/Cargo.toml +++ b/testing/ef_tests/Cargo.toml @@ -13,6 +13,8 @@ fake_crypto = ["bls/fake_crypto"] [dependencies] bls = { path = "../../crypto/bls", default-features = false } compare_fields = { path = "../../common/compare_fields" } +compare_fields_derive = { path = "../../common/compare_fields_derive" } +derivative = "2.1.1" ethereum-types = "0.9.2" hex = "0.4.2" rayon = "1.4.1" @@ -28,3 +30,6 @@ cached_tree_hash = { path = "../../consensus/cached_tree_hash" } state_processing = { path = "../../consensus/state_processing" } swap_or_not_shuffle = { path = "../../consensus/swap_or_not_shuffle" } types = { path = "../../consensus/types" } +snap = "1.0.1" +parking_lot = "0.11.0" +fs2 = "0.4.3" diff --git a/testing/ef_tests/Makefile b/testing/ef_tests/Makefile index d0123def27..b24d4b8686 100644 --- a/testing/ef_tests/Makefile +++ b/testing/ef_tests/Makefile @@ -1,4 +1,4 @@ -TESTS_TAG := v1.0.1 +TESTS_TAG := v1.1.0-alpha.7 TESTS = general minimal mainnet TARBALLS = $(patsubst %,%-$(TESTS_TAG).tar.gz,$(TESTS)) diff --git a/testing/ef_tests/check_all_files_accessed.py b/testing/ef_tests/check_all_files_accessed.py new file mode 100755 index 0000000000..5c3275135b --- /dev/null +++ b/testing/ef_tests/check_all_files_accessed.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 + +# The purpose of this script is to compare a list of file names that were accessed during testing +# against all the file names in the eth2.0-spec-tests repository. It then checks to see which files +# were not accessed and returns an error if any non-intentionally-ignored files are detected. +# +# The ultimate goal is to detect any accidentally-missed spec tests. + +import os +import sys + +# First argument should the path to a file which contains a list of accessed file names. +accessed_files_filename = sys.argv[1] + +# Second argument should be the path to the eth2.0-spec-tests directory. +tests_dir_filename = sys.argv[2] + +# If any of the file names found in the eth2.0-spec-tests directory *starts with* one of the +# following strings, we will assume they are to be ignored (i.e., we are purposefully *not* running +# the spec tests). +excluded_paths = [ + # Configs from future phases + "tests/mainnet/config/custody_game.yaml", + "tests/mainnet/config/sharding.yaml", + "tests/mainnet/config/merge.yaml", + "tests/minimal/config/custody_game.yaml", + "tests/minimal/config/sharding.yaml", + "tests/minimal/config/merge.yaml", + # Merge tests + "tests/minimal/merge", + "tests/mainnet/merge", + # Eth1Block + # + # Intentionally omitted, as per https://github.com/sigp/lighthouse/issues/1835 + "tests/minimal/phase0/ssz_static/Eth1Block/", + "tests/mainnet/phase0/ssz_static/Eth1Block/", + "tests/minimal/altair/ssz_static/Eth1Block/", + "tests/mainnet/altair/ssz_static/Eth1Block/", + # LightClientStore + "tests/minimal/altair/ssz_static/LightClientStore", + "tests/mainnet/altair/ssz_static/LightClientStore", + # LightClientUpdate + "tests/minimal/altair/ssz_static/LightClientUpdate", + "tests/mainnet/altair/ssz_static/LightClientUpdate", + # LightClientSnapshot + "tests/minimal/altair/ssz_static/LightClientSnapshot", + "tests/mainnet/altair/ssz_static/LightClientSnapshot", + # ContributionAndProof + "tests/minimal/altair/ssz_static/ContributionAndProof", + "tests/mainnet/altair/ssz_static/ContributionAndProof", + # SignedContributionAndProof + "tests/minimal/altair/ssz_static/SignedContributionAndProof", + "tests/mainnet/altair/ssz_static/SignedContributionAndProof", + # SyncCommitteeContribution + "tests/minimal/altair/ssz_static/SyncCommitteeContribution", + "tests/mainnet/altair/ssz_static/SyncCommitteeContribution", + # SyncCommitteeMessage + "tests/minimal/altair/ssz_static/SyncCommitteeMessage", + "tests/mainnet/altair/ssz_static/SyncCommitteeMessage", + # SyncCommitteeSigningData + "tests/minimal/altair/ssz_static/SyncCommitteeSigningData", + "tests/mainnet/altair/ssz_static/SyncCommitteeSigningData", + # SyncAggregatorSelectionData + "tests/minimal/altair/ssz_static/SyncAggregatorSelectionData", + "tests/mainnet/altair/ssz_static/SyncAggregatorSelectionData", + # Fork choice + "tests/mainnet/phase0/fork_choice", + "tests/minimal/phase0/fork_choice", + "tests/mainnet/altair/fork_choice", + "tests/minimal/altair/fork_choice", +] + +def normalize_path(path): + return path.split("eth2.0-spec-tests/", )[1] + +# Determine the list of filenames which were accessed during tests. +passed = set() +for line in open(accessed_files_filename, 'r').readlines(): + file = normalize_path(line.strip().strip('"')) + passed.add(file) + +missed = set() +accessed_files = 0 +excluded_files = 0 + +# Iterate all files in the tests directory, ensure that all files were either accessed +# or intentionally missed. +for root, dirs, files in os.walk(tests_dir_filename): + for name in files: + name = normalize_path(os.path.join(root, name)) + if name not in passed: + excluded = False + for excluded_path in excluded_paths: + if name.startswith(excluded_path): + excluded = True + break + if excluded: + excluded_files += 1 + else: + print(name) + missed.add(name) + else: + accessed_files += 1 + +# Exit with an error if there were any files missed. +assert len(missed) == 0, "{} missed files".format(len(missed)) + +print("Accessed {} files ({} intentionally excluded)".format(accessed_files, excluded_files)) diff --git a/testing/ef_tests/src/case_result.rs b/testing/ef_tests/src/case_result.rs index 9df60f402c..f20d14836b 100644 --- a/testing/ef_tests/src/case_result.rs +++ b/testing/ef_tests/src/case_result.rs @@ -37,8 +37,8 @@ pub fn compare_beacon_state_results_without_caches( expected: &mut Option>, ) -> Result<(), Error> { if let (Ok(ref mut result), Some(ref mut expected)) = (result.as_mut(), expected.as_mut()) { - result.drop_all_caches(); - expected.drop_all_caches(); + result.drop_all_caches().unwrap(); + expected.drop_all_caches().unwrap(); } compare_result_detailed(&result, &expected) @@ -94,7 +94,7 @@ where (Err(_), None) => Ok(()), // Fail: The test failed when it should have produced a result (fail). (Err(e), Some(expected)) => Err(Error::NotEqual(format!( - "Got {:?} | Expected {:?}", + "Got {:?} | Expected {}", e, fmt_val(expected) ))), @@ -106,7 +106,7 @@ where Ok(()) } else { Err(Error::NotEqual(format!( - "Got {:?} | Expected {:?}", + "Got {} | Expected {}", fmt_val(result), fmt_val(expected) ))) diff --git a/testing/ef_tests/src/cases.rs b/testing/ef_tests/src/cases.rs index 818af1a6ec..2e52d8c2b5 100644 --- a/testing/ef_tests/src/cases.rs +++ b/testing/ef_tests/src/cases.rs @@ -2,6 +2,7 @@ use super::*; use rayon::prelude::*; use std::fmt::Debug; use std::path::{Path, PathBuf}; +use types::ForkName; mod bls_aggregate_sigs; mod bls_aggregate_verify; @@ -10,14 +11,17 @@ mod bls_sign_msg; mod bls_verify_msg; mod common; mod epoch_processing; +mod fork; mod genesis_initialization; mod genesis_validity; mod operations; +mod rewards; mod sanity_blocks; mod sanity_slots; mod shuffling; mod ssz_generic; mod ssz_static; +mod transition; pub use bls_aggregate_sigs::*; pub use bls_aggregate_verify::*; @@ -26,18 +30,21 @@ pub use bls_sign_msg::*; pub use bls_verify_msg::*; pub use common::SszStaticType; pub use epoch_processing::*; +pub use fork::ForkTest; pub use genesis_initialization::*; pub use genesis_validity::*; pub use operations::*; +pub use rewards::RewardsTest; pub use sanity_blocks::*; pub use sanity_slots::*; pub use shuffling::*; pub use ssz_generic::*; pub use ssz_static::*; +pub use transition::TransitionTest; pub trait LoadCase: Sized { /// Load the test case from a test case directory. - fn load_from_dir(_path: &Path) -> Result; + fn load_from_dir(_path: &Path, _fork_name: ForkName) -> Result; } pub trait Case: Debug + Sync { @@ -48,11 +55,18 @@ pub trait Case: Debug + Sync { "no description".to_string() } + /// Whether or not this test exists for the given `fork_name`. + /// + /// Returns `true` by default. + fn is_enabled_for_fork(_fork_name: ForkName) -> bool { + true + } + /// Execute a test and return the result. /// /// `case_index` reports the index of the case in the set of test cases. It is not strictly /// necessary, but it's useful when troubleshooting specific failing tests. - fn result(&self, case_index: usize) -> Result<(), Error>; + fn result(&self, case_index: usize, fork_name: ForkName) -> Result<(), Error>; } #[derive(Debug)] @@ -61,11 +75,11 @@ pub struct Cases { } impl Cases { - pub fn test_results(&self) -> Vec { + pub fn test_results(&self, fork_name: ForkName) -> Vec { self.test_cases .into_par_iter() .enumerate() - .map(|(i, (ref path, ref tc))| CaseResult::new(i, path, tc, tc.result(i))) + .map(|(i, (ref path, ref tc))| CaseResult::new(i, path, tc, tc.result(i, fork_name))) .collect() } } diff --git a/testing/ef_tests/src/cases/bls_aggregate_sigs.rs b/testing/ef_tests/src/cases/bls_aggregate_sigs.rs index 776e410718..dfe6fe528a 100644 --- a/testing/ef_tests/src/cases/bls_aggregate_sigs.rs +++ b/testing/ef_tests/src/cases/bls_aggregate_sigs.rs @@ -13,7 +13,7 @@ pub struct BlsAggregateSigs { impl BlsCase for BlsAggregateSigs {} impl Case for BlsAggregateSigs { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { let mut aggregate_signature = AggregateSignature::infinity(); for key_str in &self.input { diff --git a/testing/ef_tests/src/cases/bls_aggregate_verify.rs b/testing/ef_tests/src/cases/bls_aggregate_verify.rs index 4f6df9981b..3650e8a0d7 100644 --- a/testing/ef_tests/src/cases/bls_aggregate_verify.rs +++ b/testing/ef_tests/src/cases/bls_aggregate_verify.rs @@ -21,7 +21,7 @@ pub struct BlsAggregateVerify { impl BlsCase for BlsAggregateVerify {} impl Case for BlsAggregateVerify { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { let messages = self .input .messages diff --git a/testing/ef_tests/src/cases/bls_fast_aggregate_verify.rs b/testing/ef_tests/src/cases/bls_fast_aggregate_verify.rs index 7a0d870e04..71743ad99b 100644 --- a/testing/ef_tests/src/cases/bls_fast_aggregate_verify.rs +++ b/testing/ef_tests/src/cases/bls_fast_aggregate_verify.rs @@ -23,7 +23,7 @@ pub struct BlsFastAggregateVerify { impl BlsCase for BlsFastAggregateVerify {} impl Case for BlsFastAggregateVerify { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { let message = Hash256::from_slice( &hex::decode(&self.input.message[2..]) .map_err(|e| Error::FailedToParseTest(format!("{:?}", e)))?, diff --git a/testing/ef_tests/src/cases/bls_sign_msg.rs b/testing/ef_tests/src/cases/bls_sign_msg.rs index 6687dda228..77d30281d1 100644 --- a/testing/ef_tests/src/cases/bls_sign_msg.rs +++ b/testing/ef_tests/src/cases/bls_sign_msg.rs @@ -20,7 +20,7 @@ pub struct BlsSign { impl BlsCase for BlsSign {} impl Case for BlsSign { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { // Convert private_key and message to required types let sk = hex::decode(&self.input.privkey[2..]) .map_err(|e| Error::FailedToParseTest(format!("{:?}", e)))?; diff --git a/testing/ef_tests/src/cases/bls_verify_msg.rs b/testing/ef_tests/src/cases/bls_verify_msg.rs index 0684d76989..83fd949684 100644 --- a/testing/ef_tests/src/cases/bls_verify_msg.rs +++ b/testing/ef_tests/src/cases/bls_verify_msg.rs @@ -22,7 +22,7 @@ pub struct BlsVerify { impl BlsCase for BlsVerify {} impl Case for BlsVerify { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { let message = hex::decode(&self.input.message[2..]) .map_err(|e| Error::FailedToParseTest(format!("{:?}", e)))?; diff --git a/testing/ef_tests/src/cases/common.rs b/testing/ef_tests/src/cases/common.rs index e648ef6ec5..175ad113b6 100644 --- a/testing/ef_tests/src/cases/common.rs +++ b/testing/ef_tests/src/cases/common.rs @@ -2,18 +2,19 @@ use crate::cases::LoadCase; use crate::decode::yaml_decode_file; use crate::error::Error; use serde_derive::Deserialize; -use ssz::{Decode, Encode}; +use ssz::Encode; use ssz_derive::{Decode, Encode}; use std::convert::TryFrom; use std::fmt::Debug; use std::path::Path; use tree_hash::TreeHash; +use types::ForkName; /// Trait for all BLS cases to eliminate some boilerplate. pub trait BlsCase: serde::de::DeserializeOwned {} impl LoadCase for T { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { yaml_decode_file(&path.join("data.yaml")) } } @@ -60,13 +61,21 @@ macro_rules! uint_wrapper { uint_wrapper!(TestU128, ethereum_types::U128); uint_wrapper!(TestU256, ethereum_types::U256); -/// Trait alias for all deez bounds +/// Trait for types that can be used in SSZ static tests. pub trait SszStaticType: - serde::de::DeserializeOwned + Decode + Encode + TreeHash + Clone + PartialEq + Debug + Sync + serde::de::DeserializeOwned + Encode + TreeHash + Clone + PartialEq + Debug + Sync { } impl SszStaticType for T where - T: serde::de::DeserializeOwned + Decode + Encode + TreeHash + Clone + PartialEq + Debug + Sync + T: serde::de::DeserializeOwned + Encode + TreeHash + Clone + PartialEq + Debug + Sync { } + +/// Return the fork immediately prior to a fork. +pub fn previous_fork(fork_name: ForkName) -> ForkName { + match fork_name { + ForkName::Base => ForkName::Base, + ForkName::Altair => ForkName::Base, + } +} diff --git a/testing/ef_tests/src/cases/epoch_processing.rs b/testing/ef_tests/src/cases/epoch_processing.rs index fe19d7bd01..8ca3775f06 100644 --- a/testing/ef_tests/src/cases/epoch_processing.rs +++ b/testing/ef_tests/src/cases/epoch_processing.rs @@ -1,18 +1,22 @@ use super::*; use crate::bls_setting::BlsSetting; use crate::case_result::compare_beacon_state_results_without_caches; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_state, yaml_decode_file}; use crate::type_name; use crate::type_name::TypeName; use serde_derive::Deserialize; +use state_processing::per_epoch_processing::validator_statuses::ValidatorStatuses; use state_processing::per_epoch_processing::{ - errors::EpochProcessingError, process_final_updates, process_justification_and_finalization, - process_registry_updates, process_rewards_and_penalties, process_slashings, - validator_statuses::ValidatorStatuses, + altair, base, + effective_balance_updates::process_effective_balance_updates, + historical_roots_update::process_historical_roots_update, + process_registry_updates, process_slashings, + resets::{process_eth1_data_reset, process_randao_mixes_reset, process_slashings_reset}, }; +use state_processing::EpochProcessingError; use std::marker::PhantomData; use std::path::{Path, PathBuf}; -use types::{BeaconState, ChainSpec, EthSpec}; +use types::{BeaconState, ChainSpec, EthSpec, ForkName}; #[derive(Debug, Clone, Default, Deserialize)] pub struct Metadata { @@ -44,7 +48,23 @@ pub struct RegistryUpdates; #[derive(Debug)] pub struct Slashings; #[derive(Debug)] -pub struct FinalUpdates; +pub struct Eth1DataReset; +#[derive(Debug)] +pub struct EffectiveBalanceUpdates; +#[derive(Debug)] +pub struct SlashingsReset; +#[derive(Debug)] +pub struct RandaoMixesReset; +#[derive(Debug)] +pub struct HistoricalRootsUpdate; +#[derive(Debug)] +pub struct ParticipationRecordUpdates; +#[derive(Debug)] +pub struct SyncCommitteeUpdates; +#[derive(Debug)] +pub struct InactivityUpdates; +#[derive(Debug)] +pub struct ParticipationFlagUpdates; type_name!( JustificationAndFinalization, @@ -53,21 +73,43 @@ type_name!( type_name!(RewardsAndPenalties, "rewards_and_penalties"); type_name!(RegistryUpdates, "registry_updates"); type_name!(Slashings, "slashings"); -type_name!(FinalUpdates, "final_updates"); +type_name!(Eth1DataReset, "eth1_data_reset"); +type_name!(EffectiveBalanceUpdates, "effective_balance_updates"); +type_name!(SlashingsReset, "slashings_reset"); +type_name!(RandaoMixesReset, "randao_mixes_reset"); +type_name!(HistoricalRootsUpdate, "historical_roots_update"); +type_name!(ParticipationRecordUpdates, "participation_record_updates"); +type_name!(SyncCommitteeUpdates, "sync_committee_updates"); +type_name!(InactivityUpdates, "inactivity_updates"); +type_name!(ParticipationFlagUpdates, "participation_flag_updates"); impl EpochTransition for JustificationAndFinalization { fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { - let mut validator_statuses = ValidatorStatuses::new(state, spec)?; - validator_statuses.process_attestations(state, spec)?; - process_justification_and_finalization(state, &validator_statuses.total_balances) + match state { + BeaconState::Base(_) => { + let mut validator_statuses = ValidatorStatuses::new(state, spec)?; + validator_statuses.process_attestations(state)?; + base::process_justification_and_finalization( + state, + &validator_statuses.total_balances, + spec, + ) + } + BeaconState::Altair(_) => altair::process_justification_and_finalization(state, spec), + } } } impl EpochTransition for RewardsAndPenalties { fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { - let mut validator_statuses = ValidatorStatuses::new(state, spec)?; - validator_statuses.process_attestations(state, spec)?; - process_rewards_and_penalties(state, &mut validator_statuses, spec) + match state { + BeaconState::Base(_) => { + let mut validator_statuses = ValidatorStatuses::new(state, spec)?; + validator_statuses.process_attestations(state)?; + base::process_rewards_and_penalties(state, &mut validator_statuses, spec) + } + BeaconState::Altair(_) => altair::process_rewards_and_penalties(state, spec), + } } } @@ -79,35 +121,110 @@ impl EpochTransition for RegistryUpdates { impl EpochTransition for Slashings { fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { - let mut validator_statuses = ValidatorStatuses::new(&state, spec)?; - validator_statuses.process_attestations(&state, spec)?; - process_slashings( - state, - validator_statuses.total_balances.current_epoch(), - spec, - )?; + match state { + BeaconState::Base(_) => { + let mut validator_statuses = ValidatorStatuses::new(&state, spec)?; + validator_statuses.process_attestations(&state)?; + process_slashings( + state, + validator_statuses.total_balances.current_epoch(), + spec.proportional_slashing_multiplier, + spec, + )?; + } + BeaconState::Altair(_) => { + process_slashings( + state, + state.get_total_active_balance(spec)?, + spec.proportional_slashing_multiplier_altair, + spec, + )?; + } + }; Ok(()) } } -impl EpochTransition for FinalUpdates { +impl EpochTransition for Eth1DataReset { + fn run(state: &mut BeaconState, _spec: &ChainSpec) -> Result<(), EpochProcessingError> { + process_eth1_data_reset(state) + } +} + +impl EpochTransition for EffectiveBalanceUpdates { fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { - process_final_updates(state, spec) + process_effective_balance_updates(state, spec) + } +} + +impl EpochTransition for SlashingsReset { + fn run(state: &mut BeaconState, _spec: &ChainSpec) -> Result<(), EpochProcessingError> { + process_slashings_reset(state) + } +} + +impl EpochTransition for RandaoMixesReset { + fn run(state: &mut BeaconState, _spec: &ChainSpec) -> Result<(), EpochProcessingError> { + process_randao_mixes_reset(state) + } +} + +impl EpochTransition for HistoricalRootsUpdate { + fn run(state: &mut BeaconState, _spec: &ChainSpec) -> Result<(), EpochProcessingError> { + process_historical_roots_update(state) + } +} + +impl EpochTransition for ParticipationRecordUpdates { + fn run(state: &mut BeaconState, _spec: &ChainSpec) -> Result<(), EpochProcessingError> { + if let BeaconState::Base(_) = state { + base::process_participation_record_updates(state) + } else { + Ok(()) + } + } +} + +impl EpochTransition for SyncCommitteeUpdates { + fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { + match state { + BeaconState::Base(_) => Ok(()), + BeaconState::Altair(_) => altair::process_sync_committee_updates(state, spec), + } + } +} + +impl EpochTransition for InactivityUpdates { + fn run(state: &mut BeaconState, spec: &ChainSpec) -> Result<(), EpochProcessingError> { + match state { + BeaconState::Base(_) => Ok(()), + BeaconState::Altair(_) => altair::process_inactivity_updates(state, spec), + } + } +} + +impl EpochTransition for ParticipationFlagUpdates { + fn run(state: &mut BeaconState, _: &ChainSpec) -> Result<(), EpochProcessingError> { + match state { + BeaconState::Base(_) => Ok(()), + BeaconState::Altair(_) => altair::process_participation_flag_updates(state), + } } } impl> LoadCase for EpochProcessing { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); let metadata_path = path.join("meta.yaml"); let metadata: Metadata = if metadata_path.is_file() { yaml_decode_file(&metadata_path)? } else { Metadata::default() }; - let pre = ssz_decode_file(&path.join("pre.ssz"))?; - let post_file = path.join("post.ssz"); + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), spec)?; + let post_file = path.join("post.ssz_snappy"); let post = if post_file.is_file() { - Some(ssz_decode_file(&post_file)?) + Some(ssz_decode_state(&post_file, spec)?) } else { None }; @@ -130,11 +247,25 @@ impl> Case for EpochProcessing { .unwrap_or_else(String::new) } - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + match fork_name { + // No Altair tests for genesis fork. + ForkName::Base => { + T::name() != "sync_committee_updates" + && T::name() != "inactivity_updates" + && T::name() != "participation_flag_updates" + } + ForkName::Altair => true, + } + } + + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + self.metadata.bls_setting.unwrap_or_default().check()?; + let mut state = self.pre.clone(); let mut expected = self.post.clone(); - let spec = &E::default_spec(); + let spec = &testing_spec::(fork_name); let mut result = (|| { // Processing requires the committee caches. diff --git a/testing/ef_tests/src/cases/fork.rs b/testing/ef_tests/src/cases/fork.rs new file mode 100644 index 0000000000..f3591bee72 --- /dev/null +++ b/testing/ef_tests/src/cases/fork.rs @@ -0,0 +1,67 @@ +use super::*; +use crate::case_result::compare_beacon_state_results_without_caches; +use crate::cases::common::previous_fork; +use crate::decode::{ssz_decode_state, yaml_decode_file}; +use serde_derive::Deserialize; +use state_processing::upgrade::upgrade_to_altair; +use types::{BeaconState, ForkName}; + +#[derive(Debug, Clone, Default, Deserialize)] +pub struct Metadata { + pub fork: String, +} + +impl Metadata { + fn fork_name(&self) -> ForkName { + self.fork.parse().unwrap() + } +} + +#[derive(Debug)] +pub struct ForkTest { + pub metadata: Metadata, + pub pre: BeaconState, + pub post: BeaconState, +} + +impl LoadCase for ForkTest { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let metadata: Metadata = yaml_decode_file(&path.join("meta.yaml"))?; + assert_eq!(metadata.fork_name(), fork_name); + + // Decode pre-state with previous fork. + let pre_spec = &previous_fork(fork_name).make_genesis_spec(E::default_spec()); + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), pre_spec)?; + + // Decode post-state with target fork. + let post_spec = &fork_name.make_genesis_spec(E::default_spec()); + let post = ssz_decode_state(&path.join("post.ssz_snappy"), post_spec)?; + + Ok(Self { + metadata, + pre, + post, + }) + } +} + +impl Case for ForkTest { + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + // Upgrades exist targeting all forks except phase0/base. + // Fork tests also need BLS. + cfg!(not(feature = "fake_crypto")) && fork_name != ForkName::Base + } + + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let mut result_state = self.pre.clone(); + let mut expected = Some(self.post.clone()); + let spec = &E::default_spec(); + + let mut result = match fork_name { + ForkName::Altair => upgrade_to_altair(&mut result_state, spec).map(|_| result_state), + _ => panic!("unknown fork: {:?}", fork_name), + }; + + compare_beacon_state_results_without_caches(&mut result, &mut expected) + } +} diff --git a/testing/ef_tests/src/cases/genesis_initialization.rs b/testing/ef_tests/src/cases/genesis_initialization.rs index 0fb64ccb37..2a9323c96a 100644 --- a/testing/ef_tests/src/cases/genesis_initialization.rs +++ b/testing/ef_tests/src/cases/genesis_initialization.rs @@ -1,16 +1,22 @@ use super::*; use crate::case_result::compare_beacon_state_results_without_caches; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_file, ssz_decode_state, yaml_decode_file}; use serde_derive::Deserialize; use state_processing::initialize_beacon_state_from_eth1; use std::path::PathBuf; -use types::{BeaconState, Deposit, EthSpec, Hash256}; +use types::{BeaconState, Deposit, EthSpec, ForkName, Hash256}; #[derive(Debug, Clone, Deserialize)] struct Metadata { deposits_count: usize, } +#[derive(Debug, Clone, Deserialize)] +struct Eth1 { + eth1_block_hash: Hash256, + eth1_timestamp: u64, +} + #[derive(Debug, Clone, Deserialize)] #[serde(bound = "E: EthSpec")] pub struct GenesisInitialization { @@ -22,17 +28,20 @@ pub struct GenesisInitialization { } impl LoadCase for GenesisInitialization { - fn load_from_dir(path: &Path) -> Result { - let eth1_block_hash = ssz_decode_file(&path.join("eth1_block_hash.ssz"))?; - let eth1_timestamp = yaml_decode_file(&path.join("eth1_timestamp.yaml"))?; + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let Eth1 { + eth1_block_hash, + eth1_timestamp, + } = yaml_decode_file(&path.join("eth1.yaml"))?; let meta: Metadata = yaml_decode_file(&path.join("meta.yaml"))?; let deposits: Vec = (0..meta.deposits_count) .map(|i| { - let filename = format!("deposits_{}.ssz", i); + let filename = format!("deposits_{}.ssz_snappy", i); ssz_decode_file(&path.join(filename)) }) .collect::>()?; - let state = ssz_decode_file(&path.join("state.ssz"))?; + let spec = &testing_spec::(fork_name); + let state = ssz_decode_state(&path.join("state.ssz_snappy"), spec)?; Ok(Self { path: path.into(), @@ -45,8 +54,13 @@ impl LoadCase for GenesisInitialization { } impl Case for GenesisInitialization { - fn result(&self, _case_index: usize) -> Result<(), Error> { - let spec = &E::default_spec(); + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + // Altair genesis and later requires real crypto. + fork_name == ForkName::Base || cfg!(not(feature = "fake_crypto")) + } + + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); let mut result = initialize_beacon_state_from_eth1( self.eth1_block_hash, diff --git a/testing/ef_tests/src/cases/genesis_validity.rs b/testing/ef_tests/src/cases/genesis_validity.rs index f72ac4c3e6..e645d69adc 100644 --- a/testing/ef_tests/src/cases/genesis_validity.rs +++ b/testing/ef_tests/src/cases/genesis_validity.rs @@ -1,29 +1,46 @@ use super::*; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_state, yaml_decode_file}; use serde_derive::Deserialize; use state_processing::is_valid_genesis_state; use std::path::Path; -use types::{BeaconState, EthSpec}; +use types::{BeaconState, EthSpec, ForkName}; + +#[derive(Debug, Clone, Deserialize)] +pub struct Metadata { + description: String, +} #[derive(Debug, Clone, Deserialize)] #[serde(bound = "E: EthSpec")] pub struct GenesisValidity { + pub metadata: Option, pub genesis: BeaconState, pub is_valid: bool, } impl LoadCase for GenesisValidity { - fn load_from_dir(path: &Path) -> Result { - let genesis = ssz_decode_file(&path.join("genesis.ssz"))?; + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); + let genesis = ssz_decode_state(&path.join("genesis.ssz_snappy"), spec)?; let is_valid = yaml_decode_file(&path.join("is_valid.yaml"))?; + let meta_path = path.join("meta.yaml"); + let metadata = if meta_path.exists() { + Some(yaml_decode_file(&meta_path)?) + } else { + None + }; - Ok(Self { genesis, is_valid }) + Ok(Self { + metadata, + genesis, + is_valid, + }) } } impl Case for GenesisValidity { - fn result(&self, _case_index: usize) -> Result<(), Error> { - let spec = &E::default_spec(); + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); let is_valid = is_valid_genesis_state(&self.genesis, spec); diff --git a/testing/ef_tests/src/cases/operations.rs b/testing/ef_tests/src/cases/operations.rs index 9f39a46c68..0f63d4eb0b 100644 --- a/testing/ef_tests/src/cases/operations.rs +++ b/testing/ef_tests/src/cases/operations.rs @@ -1,20 +1,24 @@ use super::*; use crate::bls_setting::BlsSetting; use crate::case_result::compare_beacon_state_results_without_caches; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_file, ssz_decode_file_with, ssz_decode_state, yaml_decode_file}; +use crate::testing_spec; use crate::type_name::TypeName; use serde_derive::Deserialize; -use ssz::Decode; use state_processing::per_block_processing::{ - errors::BlockProcessingError, process_attestations, process_attester_slashings, - process_block_header, process_deposits, process_exits, process_proposer_slashings, - VerifySignatures, + errors::BlockProcessingError, + process_block_header, + process_operations::{ + altair, base, process_attester_slashings, process_deposits, process_exits, + process_proposer_slashings, + }, + process_sync_aggregate, VerifySignatures, }; use std::fmt::Debug; use std::path::Path; use types::{ - Attestation, AttesterSlashing, BeaconBlock, BeaconState, ChainSpec, Deposit, EthSpec, - ProposerSlashing, SignedVoluntaryExit, + Attestation, AttesterSlashing, BeaconBlock, BeaconState, ChainSpec, Deposit, EthSpec, ForkName, + ProposerSlashing, SignedVoluntaryExit, SyncAggregate, }; #[derive(Debug, Clone, Default, Deserialize)] @@ -31,15 +35,21 @@ pub struct Operations> { pub post: Option>, } -pub trait Operation: Decode + TypeName + Debug + Sync { +pub trait Operation: TypeName + Debug + Sync + Sized { fn handler_name() -> String { Self::name().to_lowercase() } fn filename() -> String { - format!("{}.ssz", Self::handler_name()) + format!("{}.ssz_snappy", Self::handler_name()) } + fn is_enabled_for_fork(_fork_name: ForkName) -> bool { + true + } + + fn decode(path: &Path, spec: &ChainSpec) -> Result; + fn apply_to( &self, state: &mut BeaconState, @@ -48,12 +58,23 @@ pub trait Operation: Decode + TypeName + Debug + Sync { } impl Operation for Attestation { + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + fn apply_to( &self, state: &mut BeaconState, spec: &ChainSpec, ) -> Result<(), BlockProcessingError> { - process_attestations(state, &[self.clone()], VerifySignatures::True, spec) + match state { + BeaconState::Base(_) => { + base::process_attestations(state, &[self.clone()], VerifySignatures::True, spec) + } + BeaconState::Altair(_) => { + altair::process_attestation(state, self, 0, VerifySignatures::True, spec) + } + } } } @@ -62,6 +83,10 @@ impl Operation for AttesterSlashing { "attester_slashing".into() } + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + fn apply_to( &self, state: &mut BeaconState, @@ -72,6 +97,10 @@ impl Operation for AttesterSlashing { } impl Operation for Deposit { + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + fn apply_to( &self, state: &mut BeaconState, @@ -86,6 +115,10 @@ impl Operation for ProposerSlashing { "proposer_slashing".into() } + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + fn apply_to( &self, state: &mut BeaconState, @@ -100,6 +133,10 @@ impl Operation for SignedVoluntaryExit { "voluntary_exit".into() } + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + fn apply_to( &self, state: &mut BeaconState, @@ -115,7 +152,11 @@ impl Operation for BeaconBlock { } fn filename() -> String { - "block.ssz".into() + "block.ssz_snappy".into() + } + + fn decode(path: &Path, spec: &ChainSpec) -> Result { + ssz_decode_file_with(path, |bytes| BeaconBlock::from_ssz_bytes(bytes, spec)) } fn apply_to( @@ -123,12 +164,41 @@ impl Operation for BeaconBlock { state: &mut BeaconState, spec: &ChainSpec, ) -> Result<(), BlockProcessingError> { - Ok(process_block_header(state, self, spec)?) + process_block_header(state, self.to_ref(), spec)?; + Ok(()) + } +} + +impl Operation for SyncAggregate { + fn handler_name() -> String { + "sync_aggregate".into() + } + + fn filename() -> String { + "sync_aggregate.ssz_snappy".into() + } + + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + fork_name != ForkName::Base + } + + fn decode(path: &Path, _spec: &ChainSpec) -> Result { + ssz_decode_file(path) + } + + fn apply_to( + &self, + state: &mut BeaconState, + spec: &ChainSpec, + ) -> Result<(), BlockProcessingError> { + let proposer_index = state.get_beacon_proposer_index(state.slot(), spec)? as u64; + process_sync_aggregate(state, self, proposer_index, spec) } } impl> LoadCase for Operations { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); let metadata_path = path.join("meta.yaml"); let metadata: Metadata = if metadata_path.is_file() { yaml_decode_file(&metadata_path)? @@ -136,12 +206,12 @@ impl> LoadCase for Operations { Metadata::default() }; - let pre = ssz_decode_file(&path.join("pre.ssz"))?; + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), spec)?; // Check BLS setting here before SSZ deserialization, as most types require signatures // to be valid. let (operation, bls_error) = if metadata.bls_setting.unwrap_or_default().check().is_ok() { - match ssz_decode_file(&path.join(O::filename())) { + match O::decode(&path.join(O::filename()), spec) { Ok(op) => (Some(op), None), Err(Error::InvalidBLSInput(error)) => (None, Some(error)), Err(e) => return Err(e), @@ -149,12 +219,12 @@ impl> LoadCase for Operations { } else { (None, None) }; - let post_filename = path.join("post.ssz"); + let post_filename = path.join("post.ssz_snappy"); let post = if post_filename.is_file() { if let Some(bls_error) = bls_error { panic!("input is unexpectedly invalid: {}", bls_error); } - Some(ssz_decode_file(&post_filename)?) + Some(ssz_decode_state(&post_filename, spec)?) } else { None }; @@ -176,8 +246,12 @@ impl> Case for Operations { .unwrap_or_else(String::new) } - fn result(&self, _case_index: usize) -> Result<(), Error> { - let spec = &E::default_spec(); + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + O::is_enabled_for_fork(fork_name) + } + + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); let mut state = self.pre.clone(); let mut expected = self.post.clone(); diff --git a/testing/ef_tests/src/cases/rewards.rs b/testing/ef_tests/src/cases/rewards.rs new file mode 100644 index 0000000000..df9c176619 --- /dev/null +++ b/testing/ef_tests/src/cases/rewards.rs @@ -0,0 +1,206 @@ +use super::*; +use crate::case_result::compare_result_detailed; +use crate::decode::{ssz_decode_file, ssz_decode_state, yaml_decode_file}; +use compare_fields_derive::CompareFields; +use serde_derive::Deserialize; +use ssz_derive::{Decode, Encode}; +use state_processing::per_epoch_processing::validator_statuses::ValidatorStatuses; +use state_processing::{ + per_epoch_processing::{ + altair::{self, rewards_and_penalties::get_flag_index_deltas}, + base::{self, rewards_and_penalties::AttestationDelta}, + Delta, + }, + EpochProcessingError, +}; +use std::path::{Path, PathBuf}; +use types::{ + consts::altair::{TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX}, + BeaconState, EthSpec, ForkName, +}; + +#[derive(Debug, Clone, PartialEq, Decode, Encode, CompareFields)] +pub struct Deltas { + #[compare_fields(as_slice)] + rewards: Vec, + #[compare_fields(as_slice)] + penalties: Vec, +} + +#[derive(Debug, Clone, PartialEq, Decode, Encode, CompareFields)] +pub struct AllDeltas { + source_deltas: Deltas, + target_deltas: Deltas, + head_deltas: Deltas, + inclusion_delay_deltas: Option, + inactivity_penalty_deltas: Deltas, +} + +#[derive(Debug, Clone, Default, Deserialize)] +pub struct Metadata { + pub description: Option, +} + +#[derive(Debug, Clone)] +pub struct RewardsTest { + pub path: PathBuf, + pub metadata: Metadata, + pub pre: BeaconState, + pub deltas: AllDeltas, +} + +/// Function that extracts a delta for a single component from an `AttestationDelta`. +type Accessor = fn(&AttestationDelta) -> Δ + +fn load_optional_deltas_file(path: &Path) -> Result, Error> { + let deltas = if path.is_file() { + Some(ssz_decode_file(&path)?) + } else { + None + }; + Ok(deltas) +} + +impl LoadCase for RewardsTest { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); + let metadata_path = path.join("meta.yaml"); + let metadata: Metadata = if metadata_path.is_file() { + yaml_decode_file(&metadata_path)? + } else { + Metadata::default() + }; + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), spec)?; + let source_deltas = ssz_decode_file(&path.join("source_deltas.ssz_snappy"))?; + let target_deltas = ssz_decode_file(&path.join("target_deltas.ssz_snappy"))?; + let head_deltas = ssz_decode_file(&path.join("head_deltas.ssz_snappy"))?; + let inclusion_delay_deltas = + load_optional_deltas_file(&path.join("inclusion_delay_deltas.ssz_snappy"))?; + let inactivity_penalty_deltas = + ssz_decode_file(&path.join("inactivity_penalty_deltas.ssz_snappy"))?; + + let deltas = AllDeltas { + source_deltas, + target_deltas, + head_deltas, + inclusion_delay_deltas, + inactivity_penalty_deltas, + }; + + Ok(Self { + path: path.into(), + metadata, + pre, + deltas, + }) + } +} + +impl Case for RewardsTest { + fn description(&self) -> String { + self.metadata + .description + .clone() + .unwrap_or_else(String::new) + } + + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let mut state = self.pre.clone(); + let spec = &testing_spec::(fork_name); + + let deltas: Result = (|| { + // Processing requires the committee caches. + state.build_all_committee_caches(spec)?; + + if let BeaconState::Base(_) = state { + let mut validator_statuses = ValidatorStatuses::new(&state, spec)?; + validator_statuses.process_attestations(&state)?; + + let deltas = base::rewards_and_penalties::get_attestation_deltas( + &state, + &validator_statuses, + spec, + )?; + + Ok(convert_all_base_deltas(&deltas)) + } else { + let total_active_balance = state.get_total_active_balance(spec)?; + + let source_deltas = compute_altair_flag_deltas( + &state, + TIMELY_SOURCE_FLAG_INDEX, + total_active_balance, + spec, + )?; + let target_deltas = compute_altair_flag_deltas( + &state, + TIMELY_TARGET_FLAG_INDEX, + total_active_balance, + spec, + )?; + let head_deltas = compute_altair_flag_deltas( + &state, + TIMELY_HEAD_FLAG_INDEX, + total_active_balance, + spec, + )?; + let inactivity_penalty_deltas = compute_altair_inactivity_deltas(&state, spec)?; + Ok(AllDeltas { + source_deltas, + target_deltas, + head_deltas, + inclusion_delay_deltas: None, + inactivity_penalty_deltas, + }) + } + })(); + + compare_result_detailed(&deltas, &Some(self.deltas.clone()))?; + + Ok(()) + } +} + +fn convert_all_base_deltas(ad: &[AttestationDelta]) -> AllDeltas { + AllDeltas { + source_deltas: convert_base_deltas(ad, |d| &d.source_delta), + target_deltas: convert_base_deltas(ad, |d| &d.target_delta), + head_deltas: convert_base_deltas(ad, |d| &d.head_delta), + inclusion_delay_deltas: Some(convert_base_deltas(ad, |d| &d.inclusion_delay_delta)), + inactivity_penalty_deltas: convert_base_deltas(ad, |d| &d.inactivity_penalty_delta), + } +} + +fn convert_base_deltas(attestation_deltas: &[AttestationDelta], accessor: Accessor) -> Deltas { + let (rewards, penalties) = attestation_deltas + .iter() + .map(accessor) + .map(|delta| (delta.rewards, delta.penalties)) + .unzip(); + Deltas { rewards, penalties } +} + +fn compute_altair_flag_deltas( + state: &BeaconState, + flag_index: usize, + total_active_balance: u64, + spec: &ChainSpec, +) -> Result { + let mut deltas = vec![Delta::default(); state.validators().len()]; + get_flag_index_deltas(&mut deltas, state, flag_index, total_active_balance, spec)?; + Ok(convert_altair_deltas(deltas)) +} + +fn compute_altair_inactivity_deltas( + state: &BeaconState, + spec: &ChainSpec, +) -> Result { + let mut deltas = vec![Delta::default(); state.validators().len()]; + altair::rewards_and_penalties::get_inactivity_penalty_deltas(&mut deltas, state, spec)?; + Ok(convert_altair_deltas(deltas)) +} + +fn convert_altair_deltas(deltas: Vec) -> Deltas { + let (rewards, penalties) = deltas.into_iter().map(|d| (d.rewards, d.penalties)).unzip(); + Deltas { rewards, penalties } +} diff --git a/testing/ef_tests/src/cases/sanity_blocks.rs b/testing/ef_tests/src/cases/sanity_blocks.rs index 0cc7a02d63..cb5708b12e 100644 --- a/testing/ef_tests/src/cases/sanity_blocks.rs +++ b/testing/ef_tests/src/cases/sanity_blocks.rs @@ -1,12 +1,12 @@ use super::*; use crate::bls_setting::BlsSetting; use crate::case_result::compare_beacon_state_results_without_caches; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_file_with, ssz_decode_state, yaml_decode_file}; use serde_derive::Deserialize; use state_processing::{ per_block_processing, per_slot_processing, BlockProcessingError, BlockSignatureStrategy, }; -use types::{BeaconState, EthSpec, RelativeEpoch, SignedBeaconBlock}; +use types::{BeaconState, EthSpec, ForkName, RelativeEpoch, SignedBeaconBlock}; #[derive(Debug, Clone, Deserialize)] pub struct Metadata { @@ -25,18 +25,21 @@ pub struct SanityBlocks { } impl LoadCase for SanityBlocks { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); let metadata: Metadata = yaml_decode_file(&path.join("meta.yaml"))?; - let pre = ssz_decode_file(&path.join("pre.ssz"))?; - let blocks: Vec> = (0..metadata.blocks_count) + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), spec)?; + let blocks = (0..metadata.blocks_count) .map(|i| { - let filename = format!("blocks_{}.ssz", i); - ssz_decode_file(&path.join(filename)) + let filename = format!("blocks_{}.ssz_snappy", i); + ssz_decode_file_with(&path.join(filename), |bytes| { + SignedBeaconBlock::from_ssz_bytes(bytes, spec) + }) }) - .collect::>()?; - let post_file = path.join("post.ssz"); + .collect::, _>>()?; + let post_file = path.join("post.ssz_snappy"); let post = if post_file.is_file() { - Some(ssz_decode_file(&post_file)?) + Some(ssz_decode_state(&post_file, spec)?) } else { None }; @@ -58,12 +61,12 @@ impl Case for SanityBlocks { .unwrap_or_else(String::new) } - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { self.metadata.bls_setting.unwrap_or_default().check()?; let mut bulk_state = self.pre.clone(); let mut expected = self.post.clone(); - let spec = &E::default_spec(); + let spec = &testing_spec::(fork_name); // Processing requires the epoch cache. bulk_state.build_all_caches(spec).unwrap(); @@ -76,8 +79,8 @@ impl Case for SanityBlocks { .blocks .iter() .try_for_each(|signed_block| { - let block = &signed_block.message; - while bulk_state.slot < block.slot { + let block = signed_block.message(); + while bulk_state.slot() < block.slot() { per_slot_processing(&mut bulk_state, None, spec).unwrap(); per_slot_processing(&mut indiv_state, None, spec).unwrap(); } @@ -106,8 +109,8 @@ impl Case for SanityBlocks { spec, )?; - if block.state_root == bulk_state.canonical_root() - && block.state_root == indiv_state.canonical_root() + if block.state_root() == bulk_state.canonical_root() + && block.state_root() == indiv_state.canonical_root() { Ok(()) } else { diff --git a/testing/ef_tests/src/cases/sanity_slots.rs b/testing/ef_tests/src/cases/sanity_slots.rs index ead9fb5a82..93a05b3641 100644 --- a/testing/ef_tests/src/cases/sanity_slots.rs +++ b/testing/ef_tests/src/cases/sanity_slots.rs @@ -1,10 +1,10 @@ use super::*; use crate::bls_setting::BlsSetting; use crate::case_result::compare_beacon_state_results_without_caches; -use crate::decode::{ssz_decode_file, yaml_decode_file}; +use crate::decode::{ssz_decode_state, yaml_decode_file}; use serde_derive::Deserialize; use state_processing::per_slot_processing; -use types::{BeaconState, EthSpec}; +use types::{BeaconState, EthSpec, ForkName}; #[derive(Debug, Clone, Default, Deserialize)] pub struct Metadata { @@ -22,18 +22,19 @@ pub struct SanitySlots { } impl LoadCase for SanitySlots { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let spec = &testing_spec::(fork_name); let metadata_path = path.join("meta.yaml"); let metadata: Metadata = if metadata_path.is_file() { yaml_decode_file(&metadata_path)? } else { Metadata::default() }; - let pre = ssz_decode_file(&path.join("pre.ssz"))?; + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), spec)?; let slots: u64 = yaml_decode_file(&path.join("slots.yaml"))?; - let post_file = path.join("post.ssz"); + let post_file = path.join("post.ssz_snappy"); let post = if post_file.is_file() { - Some(ssz_decode_file(&post_file)?) + Some(ssz_decode_state(&post_file, spec)?) } else { None }; @@ -55,12 +56,12 @@ impl Case for SanitySlots { .unwrap_or_else(String::new) } - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { self.metadata.bls_setting.unwrap_or_default().check()?; let mut state = self.pre.clone(); let mut expected = self.post.clone(); - let spec = &E::default_spec(); + let spec = &testing_spec::(fork_name); // Processing requires the epoch cache. state.build_all_caches(spec).unwrap(); diff --git a/testing/ef_tests/src/cases/shuffling.rs b/testing/ef_tests/src/cases/shuffling.rs index 2ed5c0bd46..b5ce019f5c 100644 --- a/testing/ef_tests/src/cases/shuffling.rs +++ b/testing/ef_tests/src/cases/shuffling.rs @@ -4,6 +4,7 @@ use crate::decode::yaml_decode_file; use serde_derive::Deserialize; use std::marker::PhantomData; use swap_or_not_shuffle::{compute_shuffled_index, shuffle_list}; +use types::ForkName; #[derive(Debug, Clone, Deserialize)] pub struct Shuffling { @@ -15,13 +16,13 @@ pub struct Shuffling { } impl LoadCase for Shuffling { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { yaml_decode_file(&path.join("mapping.yaml")) } } impl Case for Shuffling { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { if self.count == 0 { compare_result::<_, Error>(&Ok(vec![]), &Some(self.mapping.clone()))?; } else { diff --git a/testing/ef_tests/src/cases/ssz_generic.rs b/testing/ef_tests/src/cases/ssz_generic.rs index 3a7131bbe0..9b46001f97 100644 --- a/testing/ef_tests/src/cases/ssz_generic.rs +++ b/testing/ef_tests/src/cases/ssz_generic.rs @@ -3,15 +3,14 @@ use super::*; use crate::cases::common::{SszStaticType, TestU128, TestU256}; use crate::cases::ssz_static::{check_serialization, check_tree_hash}; -use crate::decode::yaml_decode_file; +use crate::decode::{snappy_decode_file, yaml_decode_file}; use serde::{de::Error as SerdeError, Deserializer}; use serde_derive::Deserialize; use ssz_derive::{Decode, Encode}; -use std::fs; use std::path::{Path, PathBuf}; use tree_hash_derive::TreeHash; use types::typenum::*; -use types::{BitList, BitVector, FixedVector, VariableList}; +use types::{BitList, BitVector, FixedVector, ForkName, VariableList}; #[derive(Debug, Clone, Deserialize)] struct Metadata { @@ -27,7 +26,7 @@ pub struct SszGeneric { } impl LoadCase for SszGeneric { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { let components = path .components() .map(|c| c.as_os_str().to_string_lossy().into_owned()) @@ -119,7 +118,7 @@ macro_rules! type_dispatch { } impl Case for SszGeneric { - fn result(&self, _case_index: usize) -> Result<(), Error> { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { let parts = self.case_name.split('_').collect::>(); match self.handler_name.as_str() { @@ -195,7 +194,7 @@ impl Case for SszGeneric { } } -fn ssz_generic_test(path: &Path) -> Result<(), Error> { +fn ssz_generic_test(path: &Path) -> Result<(), Error> { let meta_path = path.join("meta.yaml"); let meta: Option = if meta_path.is_file() { Some(yaml_decode_file(&meta_path)?) @@ -203,7 +202,8 @@ fn ssz_generic_test(path: &Path) -> Result<(), Error> { None }; - let serialized = fs::read(&path.join("serialized.ssz")).expect("serialized.ssz exists"); + let serialized = snappy_decode_file(&path.join("serialized.ssz_snappy")) + .expect("serialized.ssz_snappy exists"); let value_path = path.join("value.yaml"); let value: Option = if value_path.is_file() { @@ -215,7 +215,7 @@ fn ssz_generic_test(path: &Path) -> Result<(), Error> { // Valid // TODO: signing root (annoying because of traits) if let Some(value) = value { - check_serialization(&value, &serialized)?; + check_serialization(&value, &serialized, T::from_ssz_bytes)?; if let Some(ref meta) = meta { check_tree_hash(&meta.root, value.tree_hash_root().as_bytes())?; diff --git a/testing/ef_tests/src/cases/ssz_static.rs b/testing/ef_tests/src/cases/ssz_static.rs index 88afea770a..732a7d851f 100644 --- a/testing/ef_tests/src/cases/ssz_static.rs +++ b/testing/ef_tests/src/cases/ssz_static.rs @@ -1,12 +1,11 @@ use super::*; use crate::case_result::compare_result; use crate::cases::common::SszStaticType; -use crate::decode::yaml_decode_file; -use cached_tree_hash::{CacheArena, CachedTreeHash}; +use crate::decode::{snappy_decode_file, yaml_decode_file}; use serde_derive::Deserialize; -use std::fs; -use std::marker::PhantomData; -use types::Hash256; +use ssz::Decode; +use tree_hash::TreeHash; +use types::{BeaconBlock, BeaconState, ForkName, Hash256, SignedBeaconBlock}; #[derive(Debug, Clone, Deserialize)] struct SszStaticRoots { @@ -14,6 +13,7 @@ struct SszStaticRoots { signing_root: Option, } +/// Runner for types that implement `ssz::Decode`. #[derive(Debug, Clone)] pub struct SszStatic { roots: SszStaticRoots, @@ -21,24 +21,33 @@ pub struct SszStatic { value: T, } +/// Runner for `BeaconState` (with tree hash cache). #[derive(Debug, Clone)] -pub struct SszStaticTHC { +pub struct SszStaticTHC { + roots: SszStaticRoots, + serialized: Vec, + value: T, +} + +/// Runner for types that require a `ChainSpec` to be decoded (`BeaconBlock`, etc). +#[derive(Debug, Clone)] +pub struct SszStaticWithSpec { roots: SszStaticRoots, serialized: Vec, value: T, - _phantom: PhantomData, } fn load_from_dir(path: &Path) -> Result<(SszStaticRoots, Vec, T), Error> { let roots = yaml_decode_file(&path.join("roots.yaml"))?; - let serialized = fs::read(&path.join("serialized.ssz")).expect("serialized.ssz exists"); + let serialized = snappy_decode_file(&path.join("serialized.ssz_snappy")) + .expect("serialized.ssz_snappy exists"); let value = yaml_decode_file(&path.join("value.yaml"))?; Ok((roots, serialized, value)) } impl LoadCase for SszStatic { - fn load_from_dir(path: &Path) -> Result { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { load_from_dir(path).map(|(roots, serialized, value)| Self { roots, serialized, @@ -47,25 +56,38 @@ impl LoadCase for SszStatic { } } -impl, C: Debug + Sync> LoadCase for SszStaticTHC { - fn load_from_dir(path: &Path) -> Result { +impl LoadCase for SszStaticTHC { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { load_from_dir(path).map(|(roots, serialized, value)| Self { roots, serialized, value, - _phantom: PhantomData, }) } } -pub fn check_serialization(value: &T, serialized: &[u8]) -> Result<(), Error> { +impl LoadCase for SszStaticWithSpec { + fn load_from_dir(path: &Path, _fork_name: ForkName) -> Result { + load_from_dir(path).map(|(roots, serialized, value)| Self { + roots, + serialized, + value, + }) + } +} + +pub fn check_serialization( + value: &T, + serialized: &[u8], + deserializer: impl FnOnce(&[u8]) -> Result, +) -> Result<(), Error> { // Check serialization let serialized_result = value.as_ssz_bytes(); compare_result::(&Ok(value.ssz_bytes_len()), &Some(serialized.len()))?; compare_result::, Error>(&Ok(serialized_result), &Some(serialized.to_vec()))?; // Check deserialization - let deserialized_result = T::from_ssz_bytes(serialized); + let deserialized_result = deserializer(serialized); compare_result(&deserialized_result, &Some(value.clone()))?; Ok(()) @@ -79,27 +101,49 @@ pub fn check_tree_hash(expected_str: &str, actual_root: &[u8]) -> Result<(), Err compare_result::(&Ok(tree_hash_root), &Some(expected_root)) } -impl Case for SszStatic { - fn result(&self, _case_index: usize) -> Result<(), Error> { - check_serialization(&self.value, &self.serialized)?; +impl Case for SszStatic { + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { + check_serialization(&self.value, &self.serialized, T::from_ssz_bytes)?; check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?; Ok(()) } } -impl, C: Debug + Sync> Case for SszStaticTHC { - fn result(&self, _case_index: usize) -> Result<(), Error> { - check_serialization(&self.value, &self.serialized)?; +impl Case for SszStaticTHC> { + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); + check_serialization(&self.value, &self.serialized, |bytes| { + BeaconState::from_ssz_bytes(bytes, spec) + })?; check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?; - let arena = &mut CacheArena::default(); - let mut cache = self.value.new_tree_hash_cache(arena); - let cached_tree_hash_root = self - .value - .recalculate_tree_hash_root(arena, &mut cache) - .unwrap(); + let mut state = self.value.clone(); + state.initialize_tree_hash_cache(); + let cached_tree_hash_root = state.update_tree_hash_cache().unwrap(); check_tree_hash(&self.roots.root, cached_tree_hash_root.as_bytes())?; Ok(()) } } + +impl Case for SszStaticWithSpec> { + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); + check_serialization(&self.value, &self.serialized, |bytes| { + BeaconBlock::from_ssz_bytes(bytes, spec) + })?; + check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?; + Ok(()) + } +} + +impl Case for SszStaticWithSpec> { + fn result(&self, _case_index: usize, fork_name: ForkName) -> Result<(), Error> { + let spec = &testing_spec::(fork_name); + check_serialization(&self.value, &self.serialized, |bytes| { + SignedBeaconBlock::from_ssz_bytes(bytes, spec) + })?; + check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?; + Ok(()) + } +} diff --git a/testing/ef_tests/src/cases/transition.rs b/testing/ef_tests/src/cases/transition.rs new file mode 100644 index 0000000000..d41a52d52f --- /dev/null +++ b/testing/ef_tests/src/cases/transition.rs @@ -0,0 +1,114 @@ +use super::*; +use crate::case_result::compare_beacon_state_results_without_caches; +use crate::decode::{ssz_decode_file_with, ssz_decode_state, yaml_decode_file}; +use serde_derive::Deserialize; +use state_processing::{ + per_block_processing, state_advance::complete_state_advance, BlockSignatureStrategy, +}; +use std::str::FromStr; +use types::{BeaconState, Epoch, ForkName, SignedBeaconBlock}; + +#[derive(Debug, Clone, Deserialize)] +pub struct Metadata { + pub post_fork: String, + pub fork_epoch: Epoch, + pub fork_block: Option, + pub blocks_count: usize, +} + +#[derive(Debug)] +pub struct TransitionTest { + pub metadata: Metadata, + pub pre: BeaconState, + pub blocks: Vec>, + pub post: BeaconState, + pub spec: ChainSpec, +} + +impl LoadCase for TransitionTest { + fn load_from_dir(path: &Path, fork_name: ForkName) -> Result { + let metadata: Metadata = yaml_decode_file(&path.join("meta.yaml"))?; + assert_eq!(ForkName::from_str(&metadata.post_fork).unwrap(), fork_name); + + // Make spec with appropriate fork block. + let mut spec = E::default_spec(); + match fork_name { + ForkName::Base => panic!("cannot fork to base/phase0"), + ForkName::Altair => { + spec.altair_fork_epoch = Some(metadata.fork_epoch); + } + } + + // Load blocks + let blocks = (0..metadata.blocks_count) + .map(|i| { + let filename = format!("blocks_{}.ssz_snappy", i); + ssz_decode_file_with(&path.join(filename), |bytes| { + SignedBeaconBlock::from_ssz_bytes(bytes, &spec) + }) + }) + .collect::, _>>()?; + + // Decode pre-state. + let pre = ssz_decode_state(&path.join("pre.ssz_snappy"), &spec)?; + + // Decode post-state. + let post = ssz_decode_state(&path.join("post.ssz_snappy"), &spec)?; + + Ok(Self { + metadata, + pre, + blocks, + post, + spec, + }) + } +} + +impl Case for TransitionTest { + fn is_enabled_for_fork(fork_name: ForkName) -> bool { + // Upgrades exist targeting all forks except phase0/base. + // Transition tests also need BLS. + cfg!(not(feature = "fake_crypto")) && fork_name != ForkName::Base + } + + fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> { + let mut state = self.pre.clone(); + let mut expected = Some(self.post.clone()); + let spec = &self.spec; + + let mut result: Result<_, String> = self + .blocks + .iter() + .try_for_each(|block| { + // Advance to block slot. + complete_state_advance(&mut state, None, block.slot(), spec) + .map_err(|e| format!("Failed to advance: {:?}", e))?; + + // Apply block. + per_block_processing( + &mut state, + block, + None, + BlockSignatureStrategy::VerifyBulk, + spec, + ) + .map_err(|e| format!("Block processing failed: {:?}", e))?; + + let state_root = state.update_tree_hash_cache().unwrap(); + if block.state_root() != state_root { + return Err(format!( + "Mismatched state root at slot {}, got: {:?}, expected: {:?}", + block.slot(), + state_root, + block.state_root() + )); + } + + Ok(()) + }) + .map(move |()| state); + + compare_beacon_state_results_without_caches(&mut result, &mut expected) + } +} diff --git a/testing/ef_tests/src/decode.rs b/testing/ef_tests/src/decode.rs index 8d6486bb84..d0c9e0d969 100644 --- a/testing/ef_tests/src/decode.rs +++ b/testing/ef_tests/src/decode.rs @@ -1,12 +1,42 @@ use super::*; -use std::fs; +use fs2::FileExt; +use snap::raw::Decoder; +use std::fs::{self}; +use std::io::Write; use std::path::Path; +use std::path::PathBuf; +use types::{BeaconState, EthSpec}; + +/// See `log_file_access` for details. +const ACCESSED_FILE_LOG_FILENAME: &str = ".accessed_file_log.txt"; + +/// Writes `path` to a file that contains a log of all files accessed during testing. +/// +/// That log file might later be used to ensure that all spec tests were accessed and none were +/// accidentally missed. +pub fn log_file_access>(file_accessed: P) { + let passed_test_list_path = + PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(ACCESSED_FILE_LOG_FILENAME); + + let mut file = fs::OpenOptions::new() + .append(true) + .create(true) + .open(passed_test_list_path) + .expect("should open file"); + + file.lock_exclusive().expect("unable to lock file"); + + writeln!(&mut file, "{:?}", file_accessed.as_ref()).expect("should write to file"); + + file.unlock().expect("unable to unlock file"); +} pub fn yaml_decode(string: &str) -> Result { serde_yaml::from_str(string).map_err(|e| Error::FailedToParseTest(format!("{:?}", e))) } pub fn yaml_decode_file(path: &Path) -> Result { + log_file_access(path); fs::read_to_string(path) .map_err(|e| { Error::FailedToParseTest(format!("Unable to load {}: {:?}", path.display(), e)) @@ -14,26 +44,56 @@ pub fn yaml_decode_file(path: &Path) -> Result(path: &Path) -> Result { - fs::read(path) - .map_err(|e| { - Error::FailedToParseTest(format!("Unable to load {}: {:?}", path.display(), e)) - }) - .and_then(|s| { - T::from_ssz_bytes(&s).map_err(|e| { - match e { - // NOTE: this is a bit hacky, but seemingly better than the alternatives - ssz::DecodeError::BytesInvalid(message) - if message.contains("Blst") || message.contains("Milagro") => - { - Error::InvalidBLSInput(message) - } - e => Error::FailedToParseTest(format!( - "Unable to parse SSZ at {}: {:?}", - path.display(), - e - )), - } - }) - }) +/// Decode a Snappy encoded file. +/// +/// Files in the EF tests are unframed, so we need to use `snap::raw::Decoder`. +pub fn snappy_decode_file(path: &Path) -> Result, Error> { + log_file_access(path); + let bytes = fs::read(path).map_err(|e| { + Error::FailedToParseTest(format!("Unable to load {}: {:?}", path.display(), e)) + })?; + let mut decoder = Decoder::new(); + decoder.decompress_vec(&bytes).map_err(|e| { + Error::FailedToParseTest(format!( + "Error decoding snappy encoding for {}: {:?}", + path.display(), + e + )) + }) +} + +pub fn ssz_decode_file_with(path: &Path, f: F) -> Result +where + F: FnOnce(&[u8]) -> Result, +{ + log_file_access(path); + let bytes = snappy_decode_file(path)?; + f(&bytes).map_err(|e| { + match e { + // NOTE: this is a bit hacky, but seemingly better than the alternatives + ssz::DecodeError::BytesInvalid(message) + if message.contains("Blst") || message.contains("Milagro") => + { + Error::InvalidBLSInput(message) + } + e => Error::FailedToParseTest(format!( + "Unable to parse SSZ at {}: {:?}", + path.display(), + e + )), + } + }) +} + +pub fn ssz_decode_file(path: &Path) -> Result { + log_file_access(path); + ssz_decode_file_with(path, T::from_ssz_bytes) +} + +pub fn ssz_decode_state( + path: &Path, + spec: &ChainSpec, +) -> Result, Error> { + log_file_access(path); + ssz_decode_file_with(path, |bytes| BeaconState::from_ssz_bytes(bytes, spec)) } diff --git a/testing/ef_tests/src/handler.rs b/testing/ef_tests/src/handler.rs index 2613c25b98..6c89f70ad4 100644 --- a/testing/ef_tests/src/handler.rs +++ b/testing/ef_tests/src/handler.rs @@ -1,12 +1,11 @@ use crate::cases::{self, Case, Cases, EpochTransition, LoadCase, Operation}; use crate::type_name; use crate::type_name::TypeName; -use cached_tree_hash::CachedTreeHash; -use std::fmt::Debug; +use derivative::Derivative; use std::fs; use std::marker::PhantomData; use std::path::PathBuf; -use types::EthSpec; +use types::{BeaconState, EthSpec, ForkName}; pub trait Handler { type Case: Case + LoadCase; @@ -15,22 +14,35 @@ pub trait Handler { "general" } - fn fork_name() -> &'static str { - "phase0" - } - fn runner_name() -> &'static str; - fn handler_name() -> String; + fn handler_name(&self) -> String; + + fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool { + Self::Case::is_enabled_for_fork(fork_name) + } + + fn run(&self) { + for fork_name in ForkName::list_all() { + if self.is_enabled_for_fork(fork_name) { + self.run_for_fork(fork_name) + } + } + } + + fn run_for_fork(&self, fork_name: ForkName) { + let fork_name_str = match fork_name { + ForkName::Base => "phase0", + ForkName::Altair => "altair", + }; - fn run() { let handler_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("eth2.0-spec-tests") .join("tests") .join(Self::config_name()) - .join(Self::fork_name()) + .join(fork_name_str) .join(Self::runner_name()) - .join(Self::handler_name()); + .join(self.handler_name()); // Iterate through test suites let test_cases = fs::read_dir(&handler_path) @@ -44,30 +56,41 @@ pub trait Handler { .flat_map(Result::ok) .map(|test_case_dir| { let path = test_case_dir.path(); - let case = Self::Case::load_from_dir(&path).expect("test should load"); + let case = Self::Case::load_from_dir(&path, fork_name).expect("test should load"); (path, case) }) .collect(); - let results = Cases { test_cases }.test_results(); + let results = Cases { test_cases }.test_results(fork_name); - let name = format!("{}/{}", Self::runner_name(), Self::handler_name()); + let name = format!( + "{}/{}/{}", + fork_name_str, + Self::runner_name(), + self.handler_name() + ); crate::results::assert_tests_pass(&name, &handler_path, &results); } } macro_rules! bls_handler { ($runner_name: ident, $case_name:ident, $handler_name:expr) => { + #[derive(Derivative)] + #[derivative(Default(bound = ""))] pub struct $runner_name; impl Handler for $runner_name { type Case = cases::$case_name; + fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool { + fork_name == ForkName::Base + } + fn runner_name() -> &'static str { "bls" } - fn handler_name() -> String { + fn handler_name(&self) -> String { $handler_name.into() } } @@ -89,14 +112,47 @@ bls_handler!( ); /// Handler for SSZ types. -pub struct SszStaticHandler(PhantomData<(T, E)>); +pub struct SszStaticHandler { + supported_forks: Vec, + _phantom: PhantomData<(T, E)>, +} + +impl Default for SszStaticHandler { + fn default() -> Self { + Self::for_forks(ForkName::list_all()) + } +} + +impl SszStaticHandler { + pub fn for_forks(supported_forks: Vec) -> Self { + SszStaticHandler { + supported_forks, + _phantom: PhantomData, + } + } + + pub fn base_only() -> Self { + Self::for_forks(vec![ForkName::Base]) + } + + pub fn altair_only() -> Self { + Self::for_forks(vec![ForkName::Altair]) + } +} /// Handler for SSZ types that implement `CachedTreeHash`. -pub struct SszStaticTHCHandler(PhantomData<(T, C, E)>); +#[derive(Derivative)] +#[derivative(Default(bound = ""))] +pub struct SszStaticTHCHandler(PhantomData<(T, E)>); + +/// Handler for SSZ types that don't implement `ssz::Decode`. +#[derive(Derivative)] +#[derivative(Default(bound = ""))] +pub struct SszStaticWithSpecHandler(PhantomData<(T, E)>); impl Handler for SszStaticHandler where - T: cases::SszStaticType + TypeName, + T: cases::SszStaticType + ssz::Decode + TypeName, E: TypeName, { type Case = cases::SszStatic; @@ -109,18 +165,20 @@ where "ssz_static" } - fn handler_name() -> String { + fn handler_name(&self) -> String { T::name().into() } + + fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool { + self.supported_forks.contains(&fork_name) + } } -impl Handler for SszStaticTHCHandler +impl Handler for SszStaticTHCHandler, E> where - T: cases::SszStaticType + CachedTreeHash + TypeName, - C: Debug + Sync, - E: TypeName, + E: EthSpec + TypeName, { - type Case = cases::SszStaticTHC; + type Case = cases::SszStaticTHC>; fn config_name() -> &'static str { E::name() @@ -130,11 +188,34 @@ where "ssz_static" } - fn handler_name() -> String { + fn handler_name(&self) -> String { + BeaconState::::name().into() + } +} + +impl Handler for SszStaticWithSpecHandler +where + T: TypeName, + E: EthSpec + TypeName, + cases::SszStaticWithSpec: Case + LoadCase, +{ + type Case = cases::SszStaticWithSpec; + + fn config_name() -> &'static str { + E::name() + } + + fn runner_name() -> &'static str { + "ssz_static" + } + + fn handler_name(&self) -> String { T::name().into() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct ShufflingHandler(PhantomData); impl Handler for ShufflingHandler { @@ -148,11 +229,17 @@ impl Handler for ShufflingHandler { "shuffling" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "core".into() } + + fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool { + fork_name == ForkName::Base + } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct SanityBlocksHandler(PhantomData); impl Handler for SanityBlocksHandler { @@ -166,11 +253,19 @@ impl Handler for SanityBlocksHandler { "sanity" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "blocks".into() } + + fn is_enabled_for_fork(&self, _fork_name: ForkName) -> bool { + // FIXME(altair): v1.1.0-alpha.3 doesn't mark the historical blocks test as + // requiring real crypto, so only run these tests with real crypto for now. + cfg!(not(feature = "fake_crypto")) + } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct SanitySlotsHandler(PhantomData); impl Handler for SanitySlotsHandler { @@ -184,11 +279,13 @@ impl Handler for SanitySlotsHandler { "sanity" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "slots".into() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct EpochProcessingHandler(PhantomData<(E, T)>); impl> Handler for EpochProcessingHandler { @@ -202,11 +299,83 @@ impl> Handler for EpochProcessingHa "epoch_processing" } - fn handler_name() -> String { + fn handler_name(&self) -> String { T::name().into() } } +pub struct RewardsHandler { + handler_name: &'static str, + _phantom: PhantomData, +} + +impl RewardsHandler { + pub fn new(handler_name: &'static str) -> Self { + Self { + handler_name, + _phantom: PhantomData, + } + } +} + +impl Handler for RewardsHandler { + type Case = cases::RewardsTest; + + fn config_name() -> &'static str { + E::name() + } + + fn runner_name() -> &'static str { + "rewards" + } + + fn handler_name(&self) -> String { + self.handler_name.to_string() + } +} + +#[derive(Derivative)] +#[derivative(Default(bound = ""))] +pub struct ForkHandler(PhantomData); + +impl Handler for ForkHandler { + type Case = cases::ForkTest; + + fn config_name() -> &'static str { + E::name() + } + + fn runner_name() -> &'static str { + "fork" + } + + fn handler_name(&self) -> String { + "fork".into() + } +} + +#[derive(Derivative)] +#[derivative(Default(bound = ""))] +pub struct TransitionHandler(PhantomData); + +impl Handler for TransitionHandler { + type Case = cases::TransitionTest; + + fn config_name() -> &'static str { + E::name() + } + + fn runner_name() -> &'static str { + "transition" + } + + fn handler_name(&self) -> String { + "core".into() + } +} + +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct FinalityHandler(PhantomData); impl Handler for FinalityHandler { @@ -221,11 +390,13 @@ impl Handler for FinalityHandler { "finality" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "finality".into() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct GenesisValidityHandler(PhantomData); impl Handler for GenesisValidityHandler { @@ -239,11 +410,13 @@ impl Handler for GenesisValidityHandler { "genesis" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "validity".into() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct GenesisInitializationHandler(PhantomData); impl Handler for GenesisInitializationHandler { @@ -257,11 +430,13 @@ impl Handler for GenesisInitializationHandler { "genesis" } - fn handler_name() -> String { + fn handler_name(&self) -> String { "initialization".into() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct OperationsHandler(PhantomData<(E, O)>); impl> Handler for OperationsHandler { @@ -275,11 +450,13 @@ impl> Handler for OperationsHandler "operations" } - fn handler_name() -> String { + fn handler_name(&self) -> String { O::handler_name() } } +#[derive(Derivative)] +#[derivative(Default(bound = ""))] pub struct SszGenericHandler(PhantomData); impl Handler for SszGenericHandler { @@ -293,7 +470,12 @@ impl Handler for SszGenericHandler { "ssz_generic" } - fn handler_name() -> String { + fn is_enabled_for_fork(&self, fork_name: ForkName) -> bool { + // SSZ generic tests are genesis only + fork_name == ForkName::Base + } + + fn handler_name(&self) -> String { H::name().into() } } diff --git a/testing/ef_tests/src/lib.rs b/testing/ef_tests/src/lib.rs index ffc847a9c0..5c2ca3fb55 100644 --- a/testing/ef_tests/src/lib.rs +++ b/testing/ef_tests/src/lib.rs @@ -1,13 +1,16 @@ -use types::EthSpec; - pub use case_result::CaseResult; pub use cases::Case; pub use cases::{ - FinalUpdates, JustificationAndFinalization, RegistryUpdates, RewardsAndPenalties, Slashings, + EffectiveBalanceUpdates, Eth1DataReset, HistoricalRootsUpdate, InactivityUpdates, + JustificationAndFinalization, ParticipationFlagUpdates, ParticipationRecordUpdates, + RandaoMixesReset, RegistryUpdates, RewardsAndPenalties, Slashings, SlashingsReset, + SyncCommitteeUpdates, }; +pub use decode::log_file_access; pub use error::Error; pub use handler::*; pub use type_name::TypeName; +use types::{ChainSpec, EthSpec, ForkName}; mod bls_setting; mod case_result; @@ -17,3 +20,7 @@ mod error; mod handler; mod results; mod type_name; + +pub fn testing_spec(fork_name: ForkName) -> ChainSpec { + fork_name.make_genesis_spec(E::default_spec()) +} diff --git a/testing/ef_tests/src/type_name.rs b/testing/ef_tests/src/type_name.rs index 9cf7fa40b7..ed5ef8d1fd 100644 --- a/testing/ef_tests/src/type_name.rs +++ b/testing/ef_tests/src/type_name.rs @@ -41,9 +41,15 @@ type_name_generic!(Attestation); type_name!(AttestationData); type_name_generic!(AttesterSlashing); type_name_generic!(BeaconBlock); +type_name_generic!(BeaconBlockBase, "BeaconBlock"); +type_name_generic!(BeaconBlockAltair, "BeaconBlock"); type_name_generic!(BeaconBlockBody); +type_name_generic!(BeaconBlockBodyBase, "BeaconBlockBody"); +type_name_generic!(BeaconBlockBodyAltair, "BeaconBlockBody"); type_name!(BeaconBlockHeader); type_name_generic!(BeaconState); +type_name_generic!(BeaconStateBase, "BeaconState"); +type_name_generic!(BeaconStateAltair, "BeaconState"); type_name!(Checkpoint); type_name!(Deposit); type_name!(DepositData); @@ -60,5 +66,7 @@ type_name_generic!(SignedBeaconBlock); type_name!(SignedBeaconBlockHeader); type_name!(SignedVoluntaryExit); type_name!(SigningData); +type_name_generic!(SyncAggregate); +type_name_generic!(SyncCommittee); type_name!(Validator); type_name!(VoluntaryExit); diff --git a/testing/ef_tests/tests/tests.rs b/testing/ef_tests/tests/tests.rs index c1a50ffc43..84168eb5a4 100644 --- a/testing/ef_tests/tests/tests.rs +++ b/testing/ef_tests/tests/tests.rs @@ -1,40 +1,8 @@ #![cfg(feature = "ef_tests")] use ef_tests::*; -use std::collections::HashMap; -use std::path::PathBuf; use types::*; -// Check that the config from the Eth2.0 spec tests matches our minimal/mainnet config. -fn config_test() { - let config_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join("eth2.0-spec-tests") - .join("tests") - .join(E::name()) - .join("config") - .join("phase0.yaml"); - let yaml_config = YamlConfig::from_file(&config_path).expect("config file loads OK"); - let spec = E::default_spec(); - let yaml_from_spec = YamlConfig::from_spec::(&spec); - assert_eq!(yaml_config.apply_to_chain_spec::(&spec), Some(spec)); - assert_eq!(yaml_from_spec, yaml_config); - assert_eq!( - yaml_config.extra_fields, - HashMap::new(), - "not all config fields read" - ); -} - -#[test] -fn mainnet_config_ok() { - config_test::(); -} - -#[test] -fn minimal_config_ok() { - config_test::(); -} - // Check that the hand-computed multiplications on EthSpec are correctly computed. // This test lives here because one is most likely to muck these up during a spec update. fn check_typenum_values() { @@ -56,118 +24,141 @@ fn derived_typenum_values() { #[test] fn shuffling() { - ShufflingHandler::::run(); - ShufflingHandler::::run(); + ShufflingHandler::::default().run(); + ShufflingHandler::::default().run(); } #[test] fn operations_deposit() { - OperationsHandler::::run(); - OperationsHandler::::run(); + OperationsHandler::::default().run(); + OperationsHandler::::default().run(); } #[test] fn operations_exit() { - OperationsHandler::::run(); - OperationsHandler::::run(); + OperationsHandler::::default().run(); + OperationsHandler::::default().run(); } #[test] fn operations_proposer_slashing() { - OperationsHandler::::run(); - OperationsHandler::::run(); + OperationsHandler::::default().run(); + OperationsHandler::::default().run(); } #[test] fn operations_attester_slashing() { - OperationsHandler::>::run(); - OperationsHandler::>::run(); + OperationsHandler::>::default().run(); + OperationsHandler::>::default().run(); } #[test] fn operations_attestation() { - OperationsHandler::>::run(); - OperationsHandler::>::run(); + OperationsHandler::>::default().run(); + OperationsHandler::>::default().run(); } #[test] fn operations_block_header() { - OperationsHandler::>::run(); - OperationsHandler::>::run(); + OperationsHandler::>::default().run(); + OperationsHandler::>::default().run(); +} + +#[test] +fn operations_sync_aggregate() { + OperationsHandler::>::default().run(); + OperationsHandler::>::default().run(); } #[test] fn sanity_blocks() { - SanityBlocksHandler::::run(); - SanityBlocksHandler::::run(); + SanityBlocksHandler::::default().run(); + SanityBlocksHandler::::default().run(); } #[test] fn sanity_slots() { - SanitySlotsHandler::::run(); - SanitySlotsHandler::::run(); + SanitySlotsHandler::::default().run(); + SanitySlotsHandler::::default().run(); } #[test] #[cfg(not(feature = "fake_crypto"))] fn bls_aggregate() { - BlsAggregateSigsHandler::run(); + BlsAggregateSigsHandler::default().run(); } #[test] #[cfg(not(feature = "fake_crypto"))] fn bls_sign() { - BlsSignMsgHandler::run(); + BlsSignMsgHandler::default().run(); } #[test] #[cfg(not(feature = "fake_crypto"))] fn bls_verify() { - BlsVerifyMsgHandler::run(); + BlsVerifyMsgHandler::default().run(); } #[test] #[cfg(not(feature = "fake_crypto"))] fn bls_aggregate_verify() { - BlsAggregateVerifyHandler::run(); + BlsAggregateVerifyHandler::default().run(); } #[test] #[cfg(not(feature = "fake_crypto"))] fn bls_fast_aggregate_verify() { - BlsFastAggregateVerifyHandler::run(); + BlsFastAggregateVerifyHandler::default().run(); } +/// As for `ssz_static_test_no_run` (below), but also executes the function as a test. #[cfg(feature = "fake_crypto")] macro_rules! ssz_static_test { - // Non-tree hash caching - ($test_name:ident, $typ:ident$(<$generics:tt>)?) => { - ssz_static_test!($test_name, SszStaticHandler, $typ$(<$generics>)?); + ($($args:tt)*) => { + ssz_static_test_no_run!(#[test] $($args)*); + }; +} + +/// Generate a function to run the SSZ static tests for a type. +/// +/// Quite complex in order to support an optional #[test] attrib, generics, and the two EthSpecs. +#[cfg(feature = "fake_crypto")] +macro_rules! ssz_static_test_no_run { + // Top-level + ($(#[$test:meta])? $test_name:ident, $typ:ident$(<$generics:tt>)?) => { + ssz_static_test_no_run!($(#[$test])? $test_name, SszStaticHandler, $typ$(<$generics>)?); }; // Generic - ($test_name:ident, $handler:ident, $typ:ident<_>) => { - ssz_static_test!( - $test_name, $handler, { + ($(#[$test:meta])? $test_name:ident, $handler:ident, $typ:ident<_>) => { + ssz_static_test_no_run!( + $(#[$test])? + $test_name, + $handler, + { ($typ, MinimalEthSpec), ($typ, MainnetEthSpec) } ); }; // Non-generic - ($test_name:ident, $handler:ident, $typ:ident) => { - ssz_static_test!( - $test_name, $handler, { + ($(#[$test:meta])? $test_name:ident, $handler:ident, $typ:ident) => { + ssz_static_test_no_run!( + $(#[$test])? + $test_name, + $handler, + { ($typ, MinimalEthSpec), ($typ, MainnetEthSpec) } ); }; // Base case - ($test_name:ident, $handler:ident, { $(($($typ:ty),+)),+ }) => { - #[test] + ($(#[$test:meta])? $test_name:ident, $handler:ident, { $(($($typ:ty),+)),+ }) => { + $(#[$test])? fn $test_name() { $( - $handler::<$($typ),+>::run(); + $handler::<$($typ),+>::default().run(); )+ } }; @@ -175,101 +166,190 @@ macro_rules! ssz_static_test { #[cfg(feature = "fake_crypto")] mod ssz_static { - use ef_tests::{Handler, SszStaticHandler, SszStaticTHCHandler}; + use ef_tests::{Handler, SszStaticHandler, SszStaticTHCHandler, SszStaticWithSpecHandler}; use types::*; ssz_static_test!(aggregate_and_proof, AggregateAndProof<_>); ssz_static_test!(attestation, Attestation<_>); ssz_static_test!(attestation_data, AttestationData); ssz_static_test!(attester_slashing, AttesterSlashing<_>); - ssz_static_test!(beacon_block, BeaconBlock<_>); - ssz_static_test!(beacon_block_body, BeaconBlockBody<_>); + ssz_static_test!(beacon_block, SszStaticWithSpecHandler, BeaconBlock<_>); ssz_static_test!(beacon_block_header, BeaconBlockHeader); - ssz_static_test!( - beacon_state, - SszStaticTHCHandler, { - (BeaconState, BeaconTreeHashCache<_>, MinimalEthSpec), - (BeaconState, BeaconTreeHashCache<_>, MainnetEthSpec) - } - ); + ssz_static_test!(beacon_state, SszStaticTHCHandler, BeaconState<_>); ssz_static_test!(checkpoint, Checkpoint); + // FIXME(altair): add ContributionAndProof ssz_static_test!(deposit, Deposit); ssz_static_test!(deposit_data, DepositData); ssz_static_test!(deposit_message, DepositMessage); - // FIXME(sproul): move Eth1Block to consensus/types - // - // Tracked at: https://github.com/sigp/lighthouse/issues/1835 - // - // ssz_static_test!(eth1_block, Eth1Block); + // NOTE: Eth1Block intentionally omitted, see: https://github.com/sigp/lighthouse/issues/1835 ssz_static_test!(eth1_data, Eth1Data); ssz_static_test!(fork, Fork); ssz_static_test!(fork_data, ForkData); ssz_static_test!(historical_batch, HistoricalBatch<_>); ssz_static_test!(indexed_attestation, IndexedAttestation<_>); + // NOTE: LightClient* intentionally omitted ssz_static_test!(pending_attestation, PendingAttestation<_>); ssz_static_test!(proposer_slashing, ProposerSlashing); ssz_static_test!(signed_aggregate_and_proof, SignedAggregateAndProof<_>); - ssz_static_test!(signed_beacon_block, SignedBeaconBlock<_>); + ssz_static_test!( + signed_beacon_block, + SszStaticWithSpecHandler, + SignedBeaconBlock<_> + ); ssz_static_test!(signed_beacon_block_header, SignedBeaconBlockHeader); + // FIXME(altair): add SignedContributionAndProof ssz_static_test!(signed_voluntary_exit, SignedVoluntaryExit); ssz_static_test!(signing_data, SigningData); + // FIXME(altair): add SyncCommitteeContribution/Signature/SigningData ssz_static_test!(validator, Validator); ssz_static_test!(voluntary_exit, VoluntaryExit); + + // BeaconBlockBody has no internal indicator of which fork it is for, so we test it separately. + #[test] + fn beacon_block_body() { + SszStaticHandler::, MinimalEthSpec>::base_only().run(); + SszStaticHandler::, MainnetEthSpec>::base_only().run(); + SszStaticHandler::, MinimalEthSpec>::altair_only() + .run(); + SszStaticHandler::, MainnetEthSpec>::altair_only() + .run(); + } + + // Altair-only + #[test] + fn sync_aggregate() { + SszStaticHandler::, MinimalEthSpec>::altair_only().run(); + SszStaticHandler::, MainnetEthSpec>::altair_only().run(); + } + + #[test] + fn sync_committee() { + SszStaticHandler::, MinimalEthSpec>::altair_only().run(); + SszStaticHandler::, MainnetEthSpec>::altair_only().run(); + } } #[test] fn ssz_generic() { - SszGenericHandler::::run(); - SszGenericHandler::::run(); - SszGenericHandler::::run(); - SszGenericHandler::::run(); - SszGenericHandler::::run(); - SszGenericHandler::::run(); + SszGenericHandler::::default().run(); + SszGenericHandler::::default().run(); + SszGenericHandler::::default().run(); + SszGenericHandler::::default().run(); + SszGenericHandler::::default().run(); + SszGenericHandler::::default().run(); } #[test] fn epoch_processing_justification_and_finalization() { - EpochProcessingHandler::::run(); - EpochProcessingHandler::::run(); + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); } #[test] fn epoch_processing_rewards_and_penalties() { - EpochProcessingHandler::::run(); - EpochProcessingHandler::::run(); + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); } #[test] fn epoch_processing_registry_updates() { - EpochProcessingHandler::::run(); - EpochProcessingHandler::::run(); + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); } #[test] fn epoch_processing_slashings() { - EpochProcessingHandler::::run(); - EpochProcessingHandler::::run(); + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); } #[test] -fn epoch_processing_final_updates() { - EpochProcessingHandler::::run(); - EpochProcessingHandler::::run(); +fn epoch_processing_eth1_data_reset() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_effective_balance_updates() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_slashings_reset() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_randao_mixes_reset() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_historical_roots_update() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_participation_record_updates() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_sync_committee_updates() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_inactivity_updates() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn epoch_processing_participation_flag_updates() { + EpochProcessingHandler::::default().run(); + EpochProcessingHandler::::default().run(); +} + +#[test] +fn fork_upgrade() { + ForkHandler::::default().run(); + ForkHandler::::default().run(); +} + +#[test] +fn transition() { + TransitionHandler::::default().run(); + TransitionHandler::::default().run(); } #[test] fn finality() { - FinalityHandler::::run(); - FinalityHandler::::run(); + FinalityHandler::::default().run(); + FinalityHandler::::default().run(); } #[test] fn genesis_initialization() { - GenesisInitializationHandler::::run(); + GenesisInitializationHandler::::default().run(); } #[test] fn genesis_validity() { - GenesisValidityHandler::::run(); + GenesisValidityHandler::::default().run(); // Note: there are no genesis validity tests for mainnet } + +#[test] +fn rewards() { + for handler in &["basic", "leak", "random"] { + RewardsHandler::::new(handler).run(); + RewardsHandler::::new(handler).run(); + } +} diff --git a/testing/remote_signer_test/src/local_signer_test_data.rs b/testing/remote_signer_test/src/local_signer_test_data.rs index 60d650a543..69692c6a25 100644 --- a/testing/remote_signer_test/src/local_signer_test_data.rs +++ b/testing/remote_signer_test/src/local_signer_test_data.rs @@ -42,7 +42,7 @@ impl LocalSignerTestData> { &self.spec, ); - signed_block.signature.to_string() + signed_block.signature().to_string() } } diff --git a/testing/remote_signer_test/src/utils.rs b/testing/remote_signer_test/src/utils.rs index e1e04f1100..18bbdc5387 100644 --- a/testing/remote_signer_test/src/utils.rs +++ b/testing/remote_signer_test/src/utils.rs @@ -239,31 +239,39 @@ pub fn get_block(seed: u64) -> BeaconBlock { let mut block: BeaconBlock = BeaconBlock::empty(spec); for _ in 0..E::MaxProposerSlashings::to_usize() { block - .body - .proposer_slashings + .body_mut() + .proposer_slashings_mut() .push(proposer_slashing.clone()) .unwrap(); } for _ in 0..E::MaxDeposits::to_usize() { - block.body.deposits.push(deposit.clone()).unwrap(); + block + .body_mut() + .deposits_mut() + .push(deposit.clone()) + .unwrap(); } for _ in 0..E::MaxVoluntaryExits::to_usize() { block - .body - .voluntary_exits + .body_mut() + .voluntary_exits_mut() .push(signed_voluntary_exit.clone()) .unwrap(); } for _ in 0..E::MaxAttesterSlashings::to_usize() { block - .body - .attester_slashings + .body_mut() + .attester_slashings_mut() .push(attester_slashing.clone()) .unwrap(); } for _ in 0..E::MaxAttestations::to_usize() { - block.body.attestations.push(attestation.clone()).unwrap(); + block + .body_mut() + .attestations_mut() + .push(attestation.clone()) + .unwrap(); } block } diff --git a/testing/simulator/src/checks.rs b/testing/simulator/src/checks.rs index 236d356633..11be8781a9 100644 --- a/testing/simulator/src/checks.rs +++ b/testing/simulator/src/checks.rs @@ -99,7 +99,7 @@ async fn verify_validator_count( .await .map(|body| body.unwrap().data) .map_err(|e| format!("Get state root via http failed: {:?}", e))? - .validators + .validators() .len(); validator_counts.push(vc); } diff --git a/testing/state_transition_vectors/Cargo.toml b/testing/state_transition_vectors/Cargo.toml index fbe7c17bd8..2fd5e91022 100644 --- a/testing/state_transition_vectors/Cargo.toml +++ b/testing/state_transition_vectors/Cargo.toml @@ -10,3 +10,5 @@ edition = "2018" state_processing = { path = "../../consensus/state_processing" } types = { path = "../../consensus/types" } eth2_ssz = "0.1.2" +beacon_chain = { path = "../../beacon_node/beacon_chain" } +lazy_static = "1.4.0" diff --git a/testing/state_transition_vectors/src/exit.rs b/testing/state_transition_vectors/src/exit.rs index 99b8122acc..a52ccf420d 100644 --- a/testing/state_transition_vectors/src/exit.rs +++ b/testing/state_transition_vectors/src/exit.rs @@ -1,7 +1,8 @@ use super::*; +use beacon_chain::test_utils::{BeaconChainHarness, EphemeralHarnessType}; use state_processing::{ - per_block_processing, per_block_processing::errors::ExitInvalid, - test_utils::BlockProcessingBuilder, BlockProcessingError, BlockSignatureStrategy, + per_block_processing, per_block_processing::errors::ExitInvalid, BlockProcessingError, + BlockSignatureStrategy, }; use types::{BeaconBlock, BeaconState, Epoch, EthSpec, SignedBeaconBlock}; @@ -14,8 +15,10 @@ struct ExitTest { validator_index: u64, exit_epoch: Epoch, state_epoch: Epoch, - block_modifier: Box)>, - builder_modifier: Box) -> BlockProcessingBuilder>, + state_modifier: Box)>, + #[allow(clippy::type_complexity)] + block_modifier: + Box>, &mut BeaconBlock)>, #[allow(dead_code)] expected: Result<(), BlockProcessingError>, } @@ -26,8 +29,8 @@ impl Default for ExitTest { validator_index: VALIDATOR_INDEX, exit_epoch: STATE_EPOCH, state_epoch: STATE_EPOCH, - block_modifier: Box::new(|_| ()), - builder_modifier: Box::new(|x| x), + state_modifier: Box::new(|_| ()), + block_modifier: Box::new(|_, _| ()), expected: Ok(()), } } @@ -35,14 +38,23 @@ impl Default for ExitTest { impl ExitTest { fn block_and_pre_state(self) -> (SignedBeaconBlock, BeaconState) { - let spec = &E::default_spec(); + let harness = get_harness::( + self.state_epoch.start_slot(E::slots_per_epoch()), + VALIDATOR_COUNT, + ); + let mut state = harness.get_current_state(); + (self.state_modifier)(&mut state); - (self.builder_modifier)( - get_builder(spec, self.state_epoch.as_u64(), VALIDATOR_COUNT) - .insert_exit(self.validator_index, self.exit_epoch) - .modify(self.block_modifier), - ) - .build(None, None) + let block_modifier = self.block_modifier; + let validator_index = self.validator_index; + let exit_epoch = self.exit_epoch; + + let (signed_block, state) = + harness.make_block_with_modifier(state.clone(), state.slot() + 1, |block| { + harness.add_voluntary_exit(block, validator_index, exit_epoch); + block_modifier(&harness, block); + }); + (signed_block, state) } fn process( @@ -58,7 +70,7 @@ impl ExitTest { ) } - #[cfg(test)] + #[cfg(all(test, not(debug_assertions)))] fn run(self) -> BeaconState { let spec = &E::default_spec(); let expected = self.expected.clone(); @@ -95,23 +107,22 @@ vectors_and_tests!( // Ensures we can process a valid exit, valid_single_exit, ExitTest::default(), - // Tests three exists in the same block. + // Tests three exits in the same block. valid_three_exits, ExitTest { - builder_modifier: Box::new(|builder| { - builder - .insert_exit(1, STATE_EPOCH) - .insert_exit(2, STATE_EPOCH) + block_modifier: Box::new(|harness, block| { + harness.add_voluntary_exit(block, 1, STATE_EPOCH); + harness.add_voluntary_exit(block, 2, STATE_EPOCH); }), ..ExitTest::default() }, // Ensures that a validator cannot be exited twice in the same block. invalid_duplicate, ExitTest { - block_modifier: Box::new(|block| { + block_modifier: Box::new(|_, block| { // Duplicate the exit - let exit = block.body.voluntary_exits[0].clone(); - block.body.voluntary_exits.push(exit).unwrap(); + let exit = block.body().voluntary_exits()[0].clone(); + block.body_mut().voluntary_exits_mut().push(exit).unwrap(); }), expected: Err(BlockProcessingError::ExitInvalid { index: 1, @@ -128,8 +139,10 @@ vectors_and_tests!( // ``` invalid_validator_unknown, ExitTest { - block_modifier: Box::new(|block| { - block.body.voluntary_exits[0].message.validator_index = VALIDATOR_COUNT as u64; + block_modifier: Box::new(|_, block| { + block.body_mut().voluntary_exits_mut()[0] + .message + .validator_index = VALIDATOR_COUNT as u64; }), expected: Err(BlockProcessingError::ExitInvalid { index: 0, @@ -147,9 +160,8 @@ vectors_and_tests!( // ``` invalid_exit_already_initiated, ExitTest { - builder_modifier: Box::new(|mut builder| { - builder.state.validators[0].exit_epoch = STATE_EPOCH + 1; - builder + state_modifier: Box::new(|state| { + state.validators_mut()[0].exit_epoch = STATE_EPOCH + 1; }), expected: Err(BlockProcessingError::ExitInvalid { index: 0, @@ -167,9 +179,8 @@ vectors_and_tests!( // ``` invalid_not_active_before_activation_epoch, ExitTest { - builder_modifier: Box::new(|mut builder| { - builder.state.validators[0].activation_epoch = builder.spec.far_future_epoch; - builder + state_modifier: Box::new(|state| { + state.validators_mut()[0].activation_epoch = E::default_spec().far_future_epoch; }), expected: Err(BlockProcessingError::ExitInvalid { index: 0, @@ -187,9 +198,8 @@ vectors_and_tests!( // ``` invalid_not_active_after_exit_epoch, ExitTest { - builder_modifier: Box::new(|mut builder| { - builder.state.validators[0].exit_epoch = STATE_EPOCH; - builder + state_modifier: Box::new(|state| { + state.validators_mut()[0].exit_epoch = STATE_EPOCH; }), expected: Err(BlockProcessingError::ExitInvalid { index: 0, @@ -286,10 +296,12 @@ vectors_and_tests!( // ``` invalid_bad_signature, ExitTest { - block_modifier: Box::new(|block| { + block_modifier: Box::new(|_, block| { // Shift the validator index by 1 so that it's mismatched from the key that was // used to sign. - block.body.voluntary_exits[0].message.validator_index = VALIDATOR_INDEX + 1; + block.body_mut().voluntary_exits_mut()[0] + .message + .validator_index = VALIDATOR_INDEX + 1; }), expected: Err(BlockProcessingError::ExitInvalid { index: 0, @@ -299,14 +311,14 @@ vectors_and_tests!( } ); -#[cfg(test)] +#[cfg(all(test, not(debug_assertions)))] mod custom_tests { use super::*; fn assert_exited(state: &BeaconState, validator_index: usize) { let spec = E::default_spec(); - let validator = &state.validators[validator_index]; + let validator = &state.validators()[validator_index]; assert_eq!( validator.exit_epoch, // This is correct until we exceed the churn limit. If that happens, we @@ -330,10 +342,9 @@ mod custom_tests { #[test] fn valid_three() { let state = ExitTest { - builder_modifier: Box::new(|builder| { - builder - .insert_exit(1, STATE_EPOCH) - .insert_exit(2, STATE_EPOCH) + block_modifier: Box::new(|harness, block| { + harness.add_voluntary_exit(block, 1, STATE_EPOCH); + harness.add_voluntary_exit(block, 2, STATE_EPOCH); }), ..ExitTest::default() } diff --git a/testing/state_transition_vectors/src/macros.rs b/testing/state_transition_vectors/src/macros.rs index ff70be40e5..81f8171852 100644 --- a/testing/state_transition_vectors/src/macros.rs +++ b/testing/state_transition_vectors/src/macros.rs @@ -14,7 +14,7 @@ macro_rules! vectors_and_tests { vec } - #[cfg(test)] + #[cfg(all(test, not(debug_assertions)))] mod tests { use super::*; $( diff --git a/testing/state_transition_vectors/src/main.rs b/testing/state_transition_vectors/src/main.rs index 4f8426baeb..2512b03e5b 100644 --- a/testing/state_transition_vectors/src/main.rs +++ b/testing/state_transition_vectors/src/main.rs @@ -2,15 +2,21 @@ mod macros; mod exit; +use beacon_chain::{ + store::StoreConfig, + test_utils::{BeaconChainHarness, EphemeralHarnessType}, +}; +use lazy_static::lazy_static; use ssz::Encode; -use state_processing::test_utils::BlockProcessingBuilder; use std::env; use std::fs::{self, File}; use std::io::Write; use std::path::{Path, PathBuf}; use std::process::exit; -use types::MainnetEthSpec; -use types::{BeaconState, ChainSpec, EthSpec, SignedBeaconBlock}; +use types::{ + test_utils::generate_deterministic_keypairs, BeaconState, EthSpec, Keypair, SignedBeaconBlock, +}; +use types::{Hash256, MainnetEthSpec, Slot}; type E = MainnetEthSpec; @@ -19,6 +25,8 @@ pub const VALIDATOR_COUNT: usize = 64; /// The base output directory for test vectors. pub const BASE_VECTOR_DIR: &str = "vectors"; +pub const SLOT_OFFSET: u64 = 1; + /// Writes all known test vectors to `CARGO_MANIFEST_DIR/vectors`. fn main() { match write_all_vectors() { @@ -39,16 +47,36 @@ pub struct TestVector { pub error: Option, } -/// Gets a `BlockProcessingBuilder` to be used in testing. -fn get_builder( - spec: &ChainSpec, - epoch_offset: u64, - num_validators: usize, -) -> BlockProcessingBuilder { - // Set the state and block to be in the last slot of the `epoch_offset`th epoch. - let last_slot_of_epoch = (MainnetEthSpec::genesis_epoch() + epoch_offset) - .end_slot(MainnetEthSpec::slots_per_epoch()); - BlockProcessingBuilder::new(num_validators, last_slot_of_epoch, &spec).build_caches() +lazy_static! { + /// A cached set of keys. + static ref KEYPAIRS: Vec = generate_deterministic_keypairs(VALIDATOR_COUNT); +} + +fn get_harness( + slot: Slot, + validator_count: usize, +) -> BeaconChainHarness> { + let harness = BeaconChainHarness::new_with_store_config( + E::default(), + None, + KEYPAIRS[0..validator_count].to_vec(), + StoreConfig::default(), + ); + let skip_to_slot = slot - SLOT_OFFSET; + if skip_to_slot > Slot::new(0) { + let state = harness.get_current_state(); + harness.add_attested_blocks_at_slots( + state, + Hash256::zero(), + (skip_to_slot.as_u64()..slot.as_u64()) + .map(Slot::new) + .collect::>() + .as_slice(), + (0..validator_count).collect::>().as_slice(), + ); + } + + harness } /// Writes all vectors to file. diff --git a/validator_client/src/beacon_node_fallback.rs b/validator_client/src/beacon_node_fallback.rs index ead7adbc9b..0616eb2f42 100644 --- a/validator_client/src/beacon_node_fallback.rs +++ b/validator_client/src/beacon_node_fallback.rs @@ -209,7 +209,7 @@ impl CandidateBeaconNode { /// Checks if the node has the correct specification. async fn is_compatible(&self, spec: &ChainSpec, log: &Logger) -> Result<(), CandidateError> { - let yaml_config = self + let config_and_preset = self .beacon_node .get_config_spec() .await @@ -224,9 +224,8 @@ impl CandidateBeaconNode { })? .data; - let beacon_node_spec = yaml_config - .apply_to_chain_spec::(&E::default_spec()) - .ok_or_else(|| { + let beacon_node_spec = + ChainSpec::from_config::(&config_and_preset.config).ok_or_else(|| { error!( log, "The minimal/mainnet spec type of the beacon node does not match the validator \ @@ -236,11 +235,12 @@ impl CandidateBeaconNode { CandidateError::Incompatible })?; - if !yaml_config.extra_fields.is_empty() { + if !config_and_preset.extra_fields.is_empty() { debug!( log, "Beacon spec includes unknown fields"; - "fields" => ?yaml_config.extra_fields + "endpoint" => %self.beacon_node, + "fields" => ?config_and_preset.extra_fields, ); } diff --git a/validator_client/src/block_service.rs b/validator_client/src/block_service.rs index 48f9e74894..36ca283f28 100644 --- a/validator_client/src/block_service.rs +++ b/validator_client/src/block_service.rs @@ -289,8 +289,8 @@ impl BlockService { info!( log, "Successfully published block"; - "deposits" => signed_block.message.body.deposits.len(), - "attestations" => signed_block.message.body.attestations.len(), + "deposits" => signed_block.message().body().deposits().len(), + "attestations" => signed_block.message().body().attestations().len(), "graffiti" => ?graffiti.map(|g| g.as_utf8_lossy()), "slot" => signed_block.slot().as_u64(), ); diff --git a/validator_client/src/http_api/mod.rs b/validator_client/src/http_api/mod.rs index ccf465f53f..bc820ce44e 100644 --- a/validator_client/src/http_api/mod.rs +++ b/validator_client/src/http_api/mod.rs @@ -16,7 +16,7 @@ use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; use std::path::PathBuf; use std::sync::{Arc, Weak}; use tokio::runtime::Runtime; -use types::{ChainSpec, EthSpec, YamlConfig}; +use types::{ChainSpec, ConfigAndPreset, EthSpec}; use validator_dir::Builder as ValidatorDirBuilder; use warp::{ http::{ @@ -191,9 +191,9 @@ pub fn serve( .and(signer.clone()) .and_then(|spec: Arc<_>, signer| { blocking_signed_json_task(signer, move || { - Ok(api_types::GenericResponse::from( - YamlConfig::from_spec::(&spec), - )) + let mut config = ConfigAndPreset::from_chain_spec::(&spec); + config.make_backwards_compat(&spec); + Ok(api_types::GenericResponse::from(config)) }) }); diff --git a/validator_client/src/http_api/tests.rs b/validator_client/src/http_api/tests.rs index 2a748059c7..cf2618bba1 100644 --- a/validator_client/src/http_api/tests.rs +++ b/validator_client/src/http_api/tests.rs @@ -150,7 +150,8 @@ impl ApiTester { pub async fn test_get_lighthouse_spec(self) -> Self { let result = self.client.get_lighthouse_spec().await.unwrap().data; - let expected = YamlConfig::from_spec::(&E::default_spec()); + let mut expected = ConfigAndPreset::from_chain_spec::(&E::default_spec()); + expected.make_backwards_compat(&E::default_spec()); assert_eq!(result, expected); diff --git a/validator_client/src/validator_store.rs b/validator_client/src/validator_store.rs index 760f4ce49a..96024990e6 100644 --- a/validator_client/src/validator_store.rs +++ b/validator_client/src/validator_store.rs @@ -168,11 +168,11 @@ impl ValidatorStore { current_slot: Slot, ) -> Option> { // Make sure the block slot is not higher than the current slot to avoid potential attacks. - if block.slot > current_slot { + if block.slot() > current_slot { warn!( self.log, "Not signing block with slot greater than current slot"; - "block_slot" => block.slot.as_u64(), + "block_slot" => block.slot().as_u64(), "current_slot" => current_slot.as_u64() ); return None;

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 z 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 p_jj01 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 z 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

F%N9lLa7jBn`n~V~wFObMu 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