From 0d281de79d247051026e99079c4b719684a3f399 Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 13:26:18 +0800 Subject: [PATCH 1/6] update to polkadot-v0.9.27 --- Cargo.lock | 2010 ++++++++++++++---------- meta/meta-ethereum-chain-id/Cargo.toml | 2 +- meta/meta-node/Cargo.toml | 74 +- meta/meta-runtime/Cargo.toml | 62 +- 4 files changed, 1268 insertions(+), 880 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1500963..34db927a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -772,7 +772,7 @@ version = "3.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ba52acd3b0a5c33aeada5cdaa3267cdc7c594a98731d4268cdc1532f4264cb4" dependencies = [ - "heck 0.4.0", + "heck", "proc-macro-error", "proc-macro2", "quote", @@ -863,59 +863,60 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", + "cranelift-isle", "gimli", "log", - "regalloc", + "regalloc2", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" +checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" [[package]] name = "cranelift-entity" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" +checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" dependencies = [ "cranelift-codegen", "log", @@ -923,11 +924,17 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cranelift-isle" +version = "0.85.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" + [[package]] name = "cranelift-native" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501241b0cdf903412ec9075385ac9f2b1eb18a89044d1538e97fab603231f70c" +checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" dependencies = [ "cranelift-codegen", "libc", @@ -936,9 +943,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.82.3" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d9e4211bbc3268042a96dd4de5bd979cda22434991d035f5f8eacba987fad2" +checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1351,7 +1358,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" dependencies = [ - "heck 0.4.0", + "heck", "proc-macro2", "quote", "syn", @@ -1540,7 +1547,7 @@ dependencies = [ [[package]] name = "fc-cli" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "clap", "ethereum-types", @@ -1553,13 +1560,13 @@ dependencies = [ "serde_json", "sp-api", "sp-blockchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "async-trait", "fc-db", @@ -1571,14 +1578,14 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "fp-storage", "kvdb-rocksdb", @@ -1586,15 +1593,15 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "sc-client-db", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-database", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "fc-db", "fp-consensus", @@ -1605,19 +1612,20 @@ dependencies = [ "sc-client-api", "sp-api", "sp-blockchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "ethereum-types", "evm", "fc-db", "fc-rpc-core", + "fp-evm", "fp-rpc", "fp-storage", "futures", @@ -1639,10 +1647,10 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-io", - "sp-runtime", - "sp-storage", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "tokio", ] @@ -1650,7 +1658,7 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "ethereum-types", @@ -1756,7 +1764,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", ] @@ -1774,56 +1782,56 @@ dependencies = [ [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-dynamic-fee" version = "1.0.0" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "async-trait", - "sp-core", - "sp-inherents", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "ethereum-types", "fp-evm", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", - "sp-core", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "evm", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "serde", - "sp-core", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "ethereum-types", @@ -1831,30 +1839,30 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "parity-util-mem", "scale-info", "serde", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "parity-scale-codec", "serde", @@ -1863,10 +1871,10 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "linregress", "log", "parity-scale-codec", @@ -1874,28 +1882,28 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] @@ -1913,11 +1921,41 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "bitflags", + "frame-metadata", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "impl-trait-for-tuples", + "k256", + "log", + "once_cell", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "tt-call", +] + +[[package]] +name = "frame-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "impl-trait-for-tuples", "k256", "log", @@ -1927,26 +1965,38 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "Inflector", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "Inflector", - "frame-support-procedural-tools", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "proc-macro2", "quote", "syn", @@ -1955,19 +2005,41 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "frame-support-procedural-tools-derive", + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", "proc-macro-crate", "proc-macro2", "quote", "syn", ] +[[package]] +name = "frame-support-procedural-tools" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "proc-macro2", "quote", @@ -1977,24 +2049,41 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", +] + +[[package]] +name = "frame-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "sp-api", @@ -2156,6 +2245,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -2298,20 +2396,20 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ "ahash", ] [[package]] -name = "heck" -version = "0.3.3" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "unicode-segmentation", + "ahash", ] [[package]] @@ -2546,7 +2644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "serde", ] @@ -2574,6 +2672,12 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" +[[package]] +name = "io-lifetimes" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e481ccbe3dea62107216d0d1138bb8ad8e5e5c43009a098bd1990272c497b0" + [[package]] name = "ip_network" version = "0.4.1" @@ -2820,9 +2924,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.127" +version = "0.2.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" [[package]] name = "libloading" @@ -2852,9 +2956,9 @@ checksum = "da83a57f3f5ba3680950aa3cbc806fc297bc0b289d42e8942ed528ace71b8145" [[package]] name = "libp2p" -version = "0.45.1" +version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41726ee8f662563fafba2d2d484b14037cc8ecb8c953fbfc8439d4ce3a0a9029" +checksum = "81327106887e42d004fbdab1fef93675be2e2e07c1b95fce45e2cc813485611d" dependencies = [ "bytes", "futures", @@ -2863,7 +2967,7 @@ dependencies = [ "instant", "lazy_static", "libp2p-autonat", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-deflate", "libp2p-dns", "libp2p-floodsub", @@ -2889,69 +2993,35 @@ dependencies = [ "libp2p-yamux", "multiaddr", "parking_lot 0.12.1", - "pin-project 1.0.11", + "pin-project", "rand 0.7.3", "smallvec", ] [[package]] name = "libp2p-autonat" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d45945fd2f96c4b133c23d5c28a8b7fc8d7138e6dd8d5a8cd492dd384f888e3" +checksum = "4decc51f3573653a9f4ecacb31b1b922dd20c25a6322bb15318ec04287ec46f9" dependencies = [ "async-trait", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-request-response", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.8.5", -] - -[[package]] -name = "libp2p-core" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5b02602099fb75cb2d16f9ea860a320d6eb82ce41e95ab680912c454805cd5" -dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "lazy_static", - "log", - "multiaddr", - "multihash", - "multistream-select", - "parking_lot 0.12.1", - "pin-project 1.0.11", - "prost 0.9.0", - "prost-build 0.9.0", + "prost", + "prost-build", "rand 0.8.5", - "ring", - "rw-stream-sink 0.2.1", - "sha2 0.10.2", - "smallvec", - "thiserror", - "unsigned-varint", - "void", - "zeroize", ] [[package]] name = "libp2p-core" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d46fca305dee6757022e2f5a4f6c023315084d0ed7441c3ab244e76666d979" +checksum = "fbf9b94cefab7599b2d3dff2f93bee218c6621d68590b23ede4485813cbcece6" dependencies = [ "asn1_der", "bs58", @@ -2968,12 +3038,12 @@ dependencies = [ "multihash", "multistream-select", "parking_lot 0.12.1", - "pin-project 1.0.11", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "rand 0.8.5", "ring", - "rw-stream-sink 0.3.0", + "rw-stream-sink", "sha2 0.10.2", "smallvec", "thiserror", @@ -2984,24 +3054,24 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86adefc55ea4ed8201149f052fb441210727481dff1fb0b8318460206a79f5fb" +checksum = "d0183dc2a3da1fbbf85e5b6cf51217f55b14f5daea0c455a9536eef646bfec71" dependencies = [ "flate2", "futures", - "libp2p-core 0.33.0", + "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb462ec3a51fab457b4b44ac295e8b0a4b04dc175127e615cf996b1f0f1a268" +checksum = "6cbf54723250fa5d521383be789bf60efdabe6bacfb443f87da261019a49b4b5" dependencies = [ "async-std-resolver", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -3010,27 +3080,27 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a505d0c6f851cbf2919535150198e530825def8bd3757477f13dc3a57f46cbcc" +checksum = "98a4b6ffd53e355775d24b76f583fdda54b3284806f678499b57913adb94f231" dependencies = [ "cuckoofilter", "fnv", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "smallvec", ] [[package]] name = "libp2p-gossipsub" -version = "0.38.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e064ba4d7832e01c738626c6b274ae100baba05f5ffcc7b265c2a3ed398108" +checksum = "74b4b888cfbeb1f5551acd3aa1366e01bf88ede26cc3c4645d0d2d004d5ca7b0" dependencies = [ "asynchronous-codec", "base64", @@ -3040,12 +3110,12 @@ dependencies = [ "futures", "hex_fmt", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "prometheus-client", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "regex", "sha2 0.10.2", @@ -3056,19 +3126,19 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84b53490442d086db1fa5375670c9666e79143dccadef3f7c74a4346899a984" +checksum = "c50b585518f8efd06f93ac2f976bd672e17cdac794644b3117edd078e96bda06" dependencies = [ "asynchronous-codec", "futures", "futures-timer", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "lru", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "prost-codec", "smallvec", "thiserror", @@ -3077,9 +3147,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.37.1" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6b5d4de90fcd35feb65ea6223fd78f3b747a64ca4b65e0813fbe66a27d56aa" +checksum = "740862893bb5f06ac24acc9d49bdeadc3a5e52e51818a30a25c1f3519da2c851" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -3089,11 +3159,11 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "sha2 0.10.2", "smallvec", @@ -3105,9 +3175,9 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4783f8cf00c7b6c1ff0f1870b4fcf50b042b45533d2e13b6fb464caf447a6951" +checksum = "66e5e5919509603281033fd16306c61df7a4428ce274b67af5e14b07de5cdcb2" dependencies = [ "async-io", "data-encoding", @@ -3115,7 +3185,7 @@ dependencies = [ "futures", "if-watch", "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -3126,11 +3196,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "564a7e5284d7d9b3140fdfc3cb6567bc32555e86a21de5604c2ec85da05cf384" +checksum = "ef8aff4a1abef42328fbb30b17c853fff9be986dc39af17ee39f9c5f755c5e0c" dependencies = [ - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", @@ -3142,14 +3212,14 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff9c893f2367631a711301d703c47432af898c9bb8253bea0e2c051a13f7640" +checksum = "61fd1b20638ec209c5075dfb2e8ce6a7ea4ec3cd3ad7b77f7a477c06d53322e2" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", "nohash-hasher", "parking_lot 0.12.1", @@ -3160,18 +3230,18 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2cee1dad1c83325bbd182a8e94555778699cec8a9da00086efb7522c4c15ad" +checksum = "762408cb5d84b49a600422d7f9a42c18012d8da6ebcd570f9a4a4290ba41fb6f" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.2", "snow", @@ -3182,14 +3252,14 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41516c82fe8dd148ec925eead0c5ec08a0628f7913597e93e126e4dfb4e0787" +checksum = "100a6934ae1dbf8a693a4e7dd1d730fd60b774dafc45688ed63b554497c6c925" dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.7.3", @@ -3198,17 +3268,17 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db007e737adc5d28b2e03223b0210164928ad742591127130796a72aa8eaf54f" +checksum = "be27bf0820a6238a4e06365b096d428271cce85a129cf16f2fe9eb1610c4df86" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "unsigned-varint", "void", ] @@ -3221,7 +3291,7 @@ checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ "futures", "log", - "pin-project 1.0.11", + "pin-project", "rand 0.7.3", "salsa20", "sha3 0.9.1", @@ -3229,9 +3299,9 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624ead3406f64437a0d4567c31bd128a9a0b8226d5f16c074038f5d0fc32f650" +checksum = "4931547ee0cce03971ccc1733ff05bb0c4349fd89120a39e9861e2bbe18843c3" dependencies = [ "asynchronous-codec", "bytes", @@ -3239,12 +3309,12 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "pin-project 1.0.11", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "prost-codec", "rand 0.8.5", "smallvec", @@ -3255,20 +3325,20 @@ dependencies = [ [[package]] name = "libp2p-rendezvous" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59967ea2db2c7560f641aa58ac05982d42131863fcd3dd6dcf0dd1daf81c60c" +checksum = "9511c9672ba33284838e349623319c8cad2d18cfad243ae46c6b7e8a2982ea4e" dependencies = [ "asynchronous-codec", "bimap", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.2", "thiserror", @@ -3278,15 +3348,15 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02e0acb725e5a757d77c96b95298fd73a7394fe82ba7b8bbeea510719cbe441" +checksum = "508a189e2795d892c8f5c1fa1e9e0b1845d32d7b0b249dbf7b05b18811361843" dependencies = [ "async-trait", "bytes", "futures", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.7.3", @@ -3296,18 +3366,18 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4bb21c5abadbf00360c734f16bf87f1712ed4f23cd46148f625d2ddb867346" +checksum = "95ac5be6c2de2d1ff3f7693fda6faf8a827b1f3e808202277783fea9f527d114" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "pin-project 1.0.11", + "pin-project", "rand 0.7.3", "smallvec", "thiserror", @@ -3316,9 +3386,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f693c8c68213034d472cbb93a379c63f4f307d97c06f1c41e4985de481687a5" +checksum = "9f54a64b6957249e0ce782f8abf41d97f69330d02bf229f0672d864f0650cc76" dependencies = [ "quote", "syn", @@ -3326,9 +3396,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4933e38ef21b50698aefc87799c24f2a365c9d3f6cf50471f3f6a0bc410892" +checksum = "8a6771dc19aa3c65d6af9a8c65222bfc8fcd446630ddca487acd161fa6096f3b" dependencies = [ "async-io", "futures", @@ -3336,32 +3406,32 @@ dependencies = [ "if-watch", "ipnet", "libc", - "libp2p-core 0.33.0", + "libp2p-core", "log", "socket2", ] [[package]] name = "libp2p-uds" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" +checksum = "d125e3e5f0d58f3c6ac21815b20cf4b6a88b8db9dc26368ea821838f4161fd4d" dependencies = [ "async-std", "futures", - "libp2p-core 0.32.1", + "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f066f2b8b1a1d64793f05da2256e6842ecd0293d6735ca2e9bda89831a1bdc06" +checksum = "ec894790eec3c1608f8d1a8a0bdf0dbeb79ed4de2dce964222011c2896dfa05a" dependencies = [ "futures", "js-sys", - "libp2p-core 0.33.0", + "libp2p-core", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -3369,18 +3439,18 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d398fbb29f432c4128fabdaac2ed155c3bcaf1b9bd40eeeb10a471eefacbf5" +checksum = "9808e57e81be76ff841c106b4c5974fb4d41a233a7bdd2afbf1687ac6def3818" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.33.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", - "rw-stream-sink 0.3.0", + "rw-stream-sink", "soketto", "url", "webpki-roots", @@ -3388,12 +3458,12 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe653639ad74877c759720febb0cbcbf4caa221adde4eed2d3126ce5c6f381f" +checksum = "c6dea686217a06072033dc025631932810e2f6ad784e4fafa42e27d311c7a81c" dependencies = [ "futures", - "libp2p-core 0.33.0", + "libp2p-core", "parking_lot 0.12.1", "thiserror", "yamux", @@ -3504,6 +3574,12 @@ version = "0.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" +[[package]] +name = "linux-raw-sys" +version = "0.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" + [[package]] name = "lock_api" version = "0.4.7" @@ -3530,7 +3606,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -3650,7 +3726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.3", "parity-util-mem", ] @@ -3680,8 +3756,8 @@ version = "0.1.0" name = "meta-ethereum-chain-id" version = "0.1.0" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", "parity-scale-codec", "scale-info", "serde", @@ -3729,10 +3805,10 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-inherents", - "sp-io", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", "substrate-build-script-utils", "substrate-frame-rpc-system", @@ -3746,8 +3822,8 @@ dependencies = [ "fp-rpc", "fp-self-contained", "frame-executive", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "frame-system-rpc-runtime-api", "meta-ethereum-chain-id", "pallet-balances", @@ -3764,15 +3840,15 @@ dependencies = [ "serde", "sp-api", "sp-block-builder", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-offchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-session", - "sp-std", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-transaction-pool", - "sp-version", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-wasm-builder", ] @@ -3884,7 +3960,7 @@ dependencies = [ "bytes", "futures", "log", - "pin-project 1.0.11", + "pin-project", "smallvec", "unsigned-varint", ] @@ -4111,11 +4187,12 @@ dependencies = [ [[package]] name = "object" -version = "0.27.1" +version = "0.28.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" dependencies = [ "crc32fast", + "hashbrown 0.11.2", "indexmap", "memchr", ] @@ -4171,56 +4248,56 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "fp-evm", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-dynamic-fee" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "async-trait", "fp-dynamic-fee", "fp-evm", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", "ethereum-types", @@ -4231,29 +4308,29 @@ dependencies = [ "fp-rpc", "fp-self-contained", "fp-storage", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "pallet-evm", "pallet-timestamp", "parity-scale-codec", "rlp", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.25#ad35a1fe3c0f3d084dce23f8df68d57362a36846" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "evm", "fp-evm", "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "hex", "log", "pallet-timestamp", @@ -4262,83 +4339,83 @@ dependencies = [ "rlp", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "log", "parity-scale-codec", "scale-info", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", "sp-blockchain", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-rpc", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "sp-api", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] @@ -4400,7 +4477,7 @@ checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" dependencies = [ "cfg-if", "ethereum-types", - "hashbrown", + "hashbrown 0.12.3", "impl-trait-for-tuples", "lru", "parity-util-mem-derive", @@ -4536,33 +4613,13 @@ dependencies = [ "indexmap", ] -[[package]] -name = "pin-project" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" -dependencies = [ - "pin-project-internal 0.4.30", -] - [[package]] name = "pin-project" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ - "pin-project-internal 1.0.11", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "pin-project-internal", ] [[package]] @@ -4743,16 +4800,6 @@ dependencies = [ "syn", ] -[[package]] -name = "prost" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" -dependencies = [ - "bytes", - "prost-derive 0.9.0", -] - [[package]] name = "prost" version = "0.10.4" @@ -4760,27 +4807,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" dependencies = [ "bytes", - "prost-derive 0.10.1", -] - -[[package]] -name = "prost-build" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" -dependencies = [ - "bytes", - "heck 0.3.3", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.9.0", - "prost-types 0.9.0", - "regex", - "tempfile", - "which", + "prost-derive", ] [[package]] @@ -4792,14 +4819,14 @@ dependencies = [ "bytes", "cfg-if", "cmake", - "heck 0.4.0", + "heck", "itertools", "lazy_static", "log", "multimap", "petgraph", - "prost 0.10.4", - "prost-types 0.10.1", + "prost", + "prost-types", "regex", "tempfile", "which", @@ -4813,24 +4840,11 @@ checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" dependencies = [ "asynchronous-codec", "bytes", - "prost 0.10.4", + "prost", "thiserror", "unsigned-varint", ] -[[package]] -name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "prost-derive" version = "0.10.1" @@ -4844,16 +4858,6 @@ dependencies = [ "syn", ] -[[package]] -name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes", - "prost 0.9.0", -] - [[package]] name = "prost-types" version = "0.10.1" @@ -4861,7 +4865,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" dependencies = [ "bytes", - "prost 0.10.4", + "prost", ] [[package]] @@ -5067,13 +5071,14 @@ dependencies = [ ] [[package]] -name = "regalloc" -version = "0.0.34" +name = "regalloc2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +checksum = "4a8d23b35d7177df3b9d31ed8a9ab4bf625c668be77a319d4f5efd4a5257701c" dependencies = [ + "fxhash", "log", - "rustc-hash", + "slice-group-by", "smallvec", ] @@ -5257,12 +5262,26 @@ checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" dependencies = [ "bitflags", "errno", - "io-lifetimes", + "io-lifetimes 0.5.3", "libc", - "linux-raw-sys", + "linux-raw-sys 0.0.42", "winapi", ] +[[package]] +name = "rustix" +version = "0.35.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985947f9b6423159c4726323f373be0a21bdb514c5af06a849cb3d2dce2d01e8" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes 0.7.4", + "libc", + "linux-raw-sys 0.0.46", + "windows-sys", +] + [[package]] name = "rustls" version = "0.20.6" @@ -5302,17 +5321,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" -[[package]] -name = "rw-stream-sink" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" -dependencies = [ - "futures", - "pin-project 0.4.30", - "static_assertions", -] - [[package]] name = "rw-stream-sink" version = "0.3.0" @@ -5320,7 +5328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ "futures", - "pin-project 1.0.11", + "pin-project", "static_assertions", ] @@ -5351,18 +5359,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", - "sp-core", - "sp-wasm-interface", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "futures-timer", @@ -5376,32 +5384,32 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.5", @@ -5411,14 +5419,14 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5429,7 +5437,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "chrono", "clap", @@ -5454,12 +5462,12 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", "tiny-bip39", "tokio", @@ -5468,7 +5476,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "fnv", "futures", @@ -5482,21 +5490,21 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-database", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "hash-db", "kvdb", @@ -5509,19 +5517,19 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-state-db", - "sp-arithmetic", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-blockchain", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures", @@ -5535,9 +5543,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "thiserror", ] @@ -5545,7 +5553,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures", @@ -5557,16 +5565,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api", - "sp-application-crypto", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "thiserror", ] @@ -5574,7 +5582,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "fork-tree", @@ -5597,19 +5605,19 @@ dependencies = [ "schnorrkel", "serde", "sp-api", - "sp-application-crypto", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-version", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "thiserror", ] @@ -5617,20 +5625,20 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-consensus-manual-seal" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "assert_matches", "async-trait", @@ -5652,10 +5660,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror", @@ -5664,7 +5672,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures", @@ -5674,14 +5682,14 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-blockchain", "sp-consensus", "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", "thiserror", ] @@ -5689,7 +5697,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "lazy_static", "lru", @@ -5699,16 +5707,16 @@ dependencies = [ "sc-executor-wasmi", "sc-executor-wasmtime", "sp-api", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-tasks", - "sp-trie", - "sp-version", - "sp-wasm-interface", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "tracing", "wasmi", ] @@ -5716,7 +5724,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "environmental", "parity-scale-codec", @@ -5724,7 +5732,7 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-sandbox", "sp-serializer", - "sp-wasm-interface", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", "wasm-instrument", "wasmi", @@ -5733,40 +5741,42 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", "parity-scale-codec", "sc-allocator", "sc-executor-common", - "sp-runtime-interface", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-sandbox", - "sp-wasm-interface", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "wasmi", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "cfg-if", "libc", "log", + "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", + "rustix 0.35.12", "sc-allocator", "sc-executor-common", - "sp-runtime-interface", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-sandbox", - "sp-wasm-interface", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "ansi_term", "futures", @@ -5777,28 +5787,28 @@ dependencies = [ "sc-network", "sc-transaction-pool-api", "sp-blockchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "hex", "parking_lot 0.12.1", "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "asynchronous-codec", @@ -5819,27 +5829,24 @@ dependencies = [ "lru", "parity-scale-codec", "parking_lot 0.12.1", - "pin-project 1.0.11", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "rand 0.7.3", "sc-block-builder", "sc-client-api", "sc-consensus", "sc-network-common", - "sc-network-light", - "sc-network-sync", "sc-peerset", "sc-utils", "serde", "serde_json", "smallvec", - "sp-arithmetic", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", @@ -5850,69 +5857,72 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ + "bitflags", "futures", "libp2p", "parity-scale-codec", - "prost-build 0.10.4", + "prost-build", + "sc-consensus", "sc-peerset", "smallvec", + "sp-consensus", + "sp-finality-grandpa", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-network-common", "sc-peerset", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "bitflags", - "either", "fork-tree", "futures", "libp2p", "log", "lru", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-consensus", "sc-network-common", "sc-peerset", "smallvec", - "sp-arithmetic", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-blockchain", "sp-consensus", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-finality-grandpa", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "bytes", "fnv", @@ -5930,9 +5940,9 @@ dependencies = [ "sc-network", "sc-utils", "sp-api", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-offchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "threadpool", "tracing", ] @@ -5940,7 +5950,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "libp2p", @@ -5953,7 +5963,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -5962,7 +5972,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "hash-db", @@ -5980,19 +5990,19 @@ dependencies = [ "serde_json", "sp-api", "sp-blockchain", - "sp-core", - "sp-keystore", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-offchain", "sp-rpc", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-session", - "sp-version", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "jsonrpsee", @@ -6004,18 +6014,18 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-rpc", - "sp-runtime", - "sp-tracing", - "sp-version", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "jsonrpsee", @@ -6028,7 +6038,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "directories", @@ -6041,7 +6051,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.12.1", - "pin-project 1.0.11", + "pin-project", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -6053,6 +6063,8 @@ dependencies = [ "sc-keystore", "sc-network", "sc-network-common", + "sc-network-light", + "sc-network-sync", "sc-offchain", "sc-rpc", "sc-rpc-server", @@ -6065,23 +6077,23 @@ dependencies = [ "serde", "serde_json", "sp-api", - "sp-application-crypto", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-keystore", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-session", - "sp-state-machine", - "sp-storage", - "sp-tracing", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie", - "sp-version", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -6093,7 +6105,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", "parity-scale-codec", @@ -6101,13 +6113,13 @@ dependencies = [ "parity-util-mem-derive", "parking_lot 0.12.1", "sc-client-api", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "libc", @@ -6118,22 +6130,22 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core", - "sp-io", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "chrono", "futures", "libp2p", "log", "parking_lot 0.12.1", - "pin-project 1.0.11", + "pin-project", "rand 0.7.3", "serde", "serde_json", @@ -6144,7 +6156,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "ansi_term", "atty", @@ -6162,10 +6174,10 @@ dependencies = [ "serde", "sp-api", "sp-blockchain", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-rpc", - "sp-runtime", - "sp-tracing", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", "tracing", "tracing-log", @@ -6175,7 +6187,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6186,7 +6198,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "futures-timer", @@ -6202,9 +6214,9 @@ dependencies = [ "serde", "sp-api", "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-tracing", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -6213,20 +6225,20 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "log", "serde", "sp-blockchain", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "futures-timer", @@ -6324,7 +6336,16 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" dependencies = [ - "secp256k1-sys", + "secp256k1-sys 0.4.2", +] + +[[package]] +name = "secp256k1" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff55dc09d460954e9ef2fa8a7ced735a964be9981fd50e870b2b3b0705e14964" +dependencies = [ + "secp256k1-sys 0.6.1", ] [[package]] @@ -6337,12 +6358,21 @@ dependencies = [ ] [[package]] -name = "secrecy" -version = "0.8.0" +name = "secp256k1-sys" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" dependencies = [ - "zeroize", + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", ] [[package]] @@ -6394,18 +6424,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.142" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e590c437916fb6b221e1d00df6e3294f3fccd70ca7e92541c475d6ed6ef5fee2" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.142" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b5b8d809babe02f538c2cfec6f2c1ed10804c0e5a6a041a049a4f5588ccc2e" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", @@ -6559,6 +6589,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" + [[package]] name = "smallvec" version = "1.9.0" @@ -6617,24 +6653,24 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "hash-db", "log", "parity-scale-codec", "sp-api-proc-macro", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "blake2", "proc-macro-crate", @@ -6646,47 +6682,75 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", +] + +[[package]] +name = "sp-application-crypto" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "static_assertions", +] + +[[package]] +name = "sp-arithmetic" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "static_assertions", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures", "log", @@ -6696,52 +6760,52 @@ dependencies = [ "sp-api", "sp-consensus", "sp-database", - "sp-runtime", - "sp-state-machine", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures", "futures-timer", "log", "parity-scale-codec", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api", - "sp-application-crypto", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-consensus", "sp-consensus-slots", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "merlin", @@ -6749,49 +6813,49 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-consensus", "sp-consensus-slots", "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", ] [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-runtime", - "sp-std", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "sp-timestamp", ] [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "scale-info", "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "base58", "bitflags", @@ -6817,15 +6881,61 @@ dependencies = [ "regex", "scale-info", "schnorrkel", - "secp256k1", + "secp256k1 0.21.3", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tiny-bip39", + "wasmi", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "base58", + "bitflags", + "blake2-rfc", + "byteorder", + "dyn-clonable", + "ed25519-dalek", + "futures", + "hash-db", + "hash256-std-hasher", + "hex", + "impl-serde", + "lazy_static", + "libsecp256k1", + "log", + "merlin", + "num-traits", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.12.1", + "primitive-types", + "rand 0.7.3", + "regex", + "scale-info", + "schnorrkel", + "secp256k1 0.24.1", + "secrecy", + "serde", + "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "ss58-registry", "substrate-bip39", "thiserror", @@ -6837,32 +6947,57 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "blake2", "byteorder", "digest 0.10.3", "sha2 0.10.2", "sha3 0.10.2", - "sp-std", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", "twox-hash", ] +[[package]] +name = "sp-core-hashing" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "blake2", + "byteorder", + "digest 0.10.3", + "sha2 0.10.2", + "sha3 0.10.2", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "syn", +] + [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "proc-macro2", "quote", - "sp-core-hashing", + "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "syn", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -6871,7 +7006,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-debug-derive" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "proc-macro2", "quote", @@ -6881,18 +7026,29 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "environmental", "parity-scale-codec", - "sp-std", - "sp-storage", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", +] + +[[package]] +name = "sp-externalities" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "finality-grandpa", "log", @@ -6900,31 +7056,45 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", +] + +[[package]] +name = "sp-inherents" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "thiserror", ] [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "futures", "hash-db", @@ -6932,16 +7102,41 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "secp256k1", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime-interface", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-trie", - "sp-wasm-interface", + "secp256k1 0.21.3", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "futures", + "hash-db", + "libsecp256k1", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "secp256k1 0.24.1", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "tracing", "tracing-core", ] @@ -6949,18 +7144,34 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "lazy_static", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "strum", ] [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "async-trait", + "futures", + "merlin", + "parity-scale-codec", + "parking_lot 0.12.1", + "schnorrkel", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "thiserror", +] + +[[package]] +name = "sp-keystore" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures", @@ -6969,15 +7180,15 @@ dependencies = [ "parking_lot 0.12.1", "schnorrkel", "serde", - "sp-core", - "sp-externalities", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "thiserror", "zstd", @@ -6986,17 +7197,27 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "sp-api", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", +] + +[[package]] +name = "sp-panic-handler" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "backtrace", + "lazy_static", + "regex", ] [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "backtrace", "lazy_static", @@ -7006,17 +7227,39 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "rustc-hash", "serde", - "sp-core", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", +] + +[[package]] +name = "sp-runtime" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "parity-util-mem", + "paste", + "rand 0.7.3", + "scale-info", + "serde", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", ] [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "either", "hash256-std-hasher", @@ -7028,34 +7271,63 @@ dependencies = [ "rand 0.7.3", "scale-info", "serde", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", + "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime-interface-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "Inflector", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "Inflector", "proc-macro-crate", @@ -7067,21 +7339,21 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", "parity-scale-codec", - "sp-core", - "sp-io", - "sp-std", - "sp-wasm-interface", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "wasmi", ] [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "serde", "serde_json", @@ -7090,32 +7362,43 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-core", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", +] + +[[package]] +name = "sp-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "log", @@ -7124,11 +7407,33 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.7.3", "smallvec", - "sp-core", - "sp-externalities", - "sp-panic-handler", - "sp-std", - "sp-trie", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "thiserror", + "tracing", + "trie-root", +] + +[[package]] +name = "sp-state-machine" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "hash-db", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand 0.7.3", + "smallvec", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", "tracing", "trie-root", @@ -7137,57 +7442,87 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" + +[[package]] +name = "sp-std" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", +] + +[[package]] +name = "sp-storage" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", - "sp-core", - "sp-externalities", - "sp-io", - "sp-runtime-interface", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "futures-timer", "log", "parity-scale-codec", "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", - "sp-std", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-tracing" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "parity-scale-codec", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "tracing", "tracing-core", "tracing-subscriber", @@ -7196,65 +7531,109 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "sp-api", - "sp-runtime", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "async-trait", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "memory-db", "parity-scale-codec", "scale-info", - "sp-core", - "sp-std", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", "thiserror", "trie-db", "trie-root", ] +[[package]] +name = "sp-trie" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "hash-db", + "memory-db", + "parity-scale-codec", + "scale-info", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "thiserror", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm 0.42.2", + "scale-info", + "serde", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "thiserror", +] + [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm 0.42.2", "scale-info", "serde", - "sp-core-hashing-proc-macro", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "thiserror", ] [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-version-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -7265,12 +7644,24 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "wasmi", +] + +[[package]] +name = "sp-wasm-interface" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" +dependencies = [ + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", "wasmi", "wasmtime", ] @@ -7329,20 +7720,20 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strum" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.23.1" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.3.3", + "heck", "proc-macro2", "quote", "rustversion", @@ -7365,7 +7756,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "platforms", ] @@ -7373,7 +7764,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -7387,14 +7778,14 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "futures-util", "hyper", @@ -7407,7 +7798,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "ansi_term", "build-helper", @@ -7738,7 +8129,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.11", + "pin-project", "tracing", ] @@ -7748,10 +8139,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ - "ahash", "lazy_static", "log", - "lru", "tracing-core", ] @@ -7795,7 +8184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.3", "log", "rustc-hex", "smallvec", @@ -7935,12 +8324,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - [[package]] name = "unicode-xid" version = "0.2.3" @@ -8194,15 +8577,18 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.83.0" +version = "0.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "570460c58b21e9150d2df0eaaedbb7816c34bcec009ae0dcc976e40ba81463e7" +dependencies = [ + "indexmap", +] [[package]] name = "wasmtime" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ffb4705016d5ca91e18a72ed6822dab50e6d5ddd7045461b17ef19071cdef1" +checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" dependencies = [ "anyhow", "backtrace", @@ -8212,7 +8598,7 @@ dependencies = [ "lazy_static", "libc", "log", - "object 0.27.1", + "object 0.28.4", "once_cell", "paste", "psm", @@ -8231,9 +8617,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c6ab24291fa7cb3a181f5669f6c72599b7ef781669759b45c7828c5999d0c0" +checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" dependencies = [ "anyhow", "base64", @@ -8241,7 +8627,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix", + "rustix 0.33.7", "serde", "sha2 0.9.9", "toml", @@ -8251,9 +8637,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04c810078a491b7bc4866ebe045f714d2b95e6b539e1f64009a4a7606be11de" +checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" dependencies = [ "anyhow", "cranelift-codegen", @@ -8264,7 +8650,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object 0.27.1", + "object 0.28.4", "target-lexicon", "thiserror", "wasmparser", @@ -8273,9 +8659,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61448266ea164b1ac406363cdcfac81c7c44db4d94c7a81c8620ac6c5c6cdf59" +checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" dependencies = [ "anyhow", "cranelift-entity", @@ -8283,7 +8669,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object 0.27.1", + "object 0.28.4", "serde", "target-lexicon", "thiserror", @@ -8293,9 +8679,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "156b4623c6b0d4b8c24afb846c20525922f538ef464cc024abab7ea8de2109a2" +checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" dependencies = [ "addr2line", "anyhow", @@ -8304,10 +8690,10 @@ dependencies = [ "cpp_demangle", "gimli", "log", - "object 0.27.1", + "object 0.28.4", "region", "rustc-demangle", - "rustix", + "rustix 0.33.7", "serde", "target-lexicon", "thiserror", @@ -8319,20 +8705,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dc31f811760a6c76b2672c404866fd19b75e5fb3b0075a3e377a6846490654" +checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" dependencies = [ "lazy_static", - "object 0.27.1", - "rustix", + "object 0.28.4", + "rustix 0.33.7", ] [[package]] name = "wasmtime-runtime" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907beaff69d4d920fa4688411ee4cc75c0f01859e424677f9e426e2ef749864" +checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" dependencies = [ "anyhow", "backtrace", @@ -8347,7 +8733,7 @@ dependencies = [ "more-asserts", "rand 0.8.5", "region", - "rustix", + "rustix 0.33.7", "thiserror", "wasmtime-environ", "wasmtime-jit-debug", @@ -8356,9 +8742,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.35.3" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514ef0e5fd197b9609dc9eb74beba0c84d5a12b2417cbae55534633329ba4852" +checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" dependencies = [ "cranelift-entity", "serde", @@ -8604,18 +8990,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.10.2+zstd.1.5.2" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.6+zstd.1.5.2" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", @@ -8623,9 +9009,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.3+zstd.1.5.2" +version = "2.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" dependencies = [ "cc", "libc", diff --git a/meta/meta-ethereum-chain-id/Cargo.toml b/meta/meta-ethereum-chain-id/Cargo.toml index 16e86c4c..827958fc 100644 --- a/meta/meta-ethereum-chain-id/Cargo.toml +++ b/meta/meta-ethereum-chain-id/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -serde = { version = "1.0.141", optional = true, features = ["derive"] } +serde = { version = "1.0.144", optional = true, features = ["derive"] } # Substrate frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } diff --git a/meta/meta-node/Cargo.toml b/meta/meta-node/Cargo.toml index 931eb827..bbff52c1 100644 --- a/meta/meta-node/Cargo.toml +++ b/meta/meta-node/Cargo.toml @@ -15,47 +15,47 @@ codec = { default-features = false, version = "3.1.5", features = ["derive"], jsonrpsee = { default-features = false, version = "0.14.0", features = ["server"] } # Substrate -sc-basic-authorship = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-cli = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-client-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-consensus = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-consensus-manual-seal = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-executor = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-keystore = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-network = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-rpc-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-service = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-transaction-pool-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sc-telemetry = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-consensus = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +sc-basic-authorship = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-cli = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-client-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-consensus = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-consensus-manual-seal = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-executor = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-keystore = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-network = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-rpc-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-service = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-transaction-pool-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sc-telemetry = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-blockchain = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-consensus = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } # These dependencies are used for RPC -pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -substrate-frame-rpc-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +substrate-frame-rpc-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } # Frontier -fc-cli = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fc-consensus = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fc-db = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fc-mapping-sync = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fc-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fc-rpc-core = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-consensus = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-dynamic-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-storage = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } +fc-cli = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fc-consensus = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fc-db = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fc-mapping-sync = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fc-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fc-rpc-core = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-consensus = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-dynamic-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-storage = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } # local packages meta-runtime = { package = "meta-runtime", path = "../meta-runtime" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } diff --git a/meta/meta-runtime/Cargo.toml b/meta/meta-runtime/Cargo.toml index b8bc3d1d..0c30778c 100644 --- a/meta/meta-runtime/Cargo.toml +++ b/meta/meta-runtime/Cargo.toml @@ -4,47 +4,47 @@ version = "0.1.0" edition = "2021" [dependencies] -serde = { default-features = false, version = "1.0.141", features = ["derive"], optional = true } +serde = { default-features = false, version = "1.0.144", features = ["derive"], optional = true } # Parity codec = { default-features = false, version = "3.1.5", features = ["derive"], package = "parity-scale-codec" } scale-info = { default-features = false, version = "2.1.2", features = ["derive"] } # Substrate Primitive -sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-session = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-std = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -sp-version = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-block-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-inherents = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-io = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-offchain = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-session = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-std = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +sp-version = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } # Substrate Frame -frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +frame-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +pallet-sudo = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } ## Used for runtime api -frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } +pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } # Frontier Primitive -fp-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -fp-self-contained = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } +fp-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-rpc = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +fp-self-contained = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } ## Frontier FRAME -pallet-base-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -pallet-dynamic-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -pallet-ethereum = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } -pallet-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.25" } +pallet-base-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +pallet-dynamic-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +pallet-ethereum = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } +pallet-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } # Local -meta-ethereum-chain-id = { default-features = false, path = "../meta-ethereum-chain-id", package = "meta-ethereum-chain-id"} +meta-ethereum-chain-id = { default-features = false, path = "../meta-ethereum-chain-id", package = "meta-ethereum-chain-id"} [build-dependencies] -substrate-wasm-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +substrate-wasm-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } [features] default = ["std"] @@ -84,4 +84,6 @@ std = [ "pallet-sudo/std", "pallet-timestamp/std", "pallet-transaction-payment/std", + # Local + "meta-ethereum-chain-id/std", ] From f008f093780afd3098bb733da88bef56ec7b7fbc Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 13:28:21 +0800 Subject: [PATCH 2/6] use frontier pallet-evm-chain-id --- Cargo.lock | 1187 ++++++++---------------- meta/meta-ethereum-chain-id/Cargo.toml | 24 - meta/meta-ethereum-chain-id/src/lib.rs | 42 - meta/meta-runtime/Cargo.toml | 6 +- meta/meta-runtime/src/lib.rs | 6 +- 5 files changed, 372 insertions(+), 893 deletions(-) delete mode 100644 meta/meta-ethereum-chain-id/Cargo.toml delete mode 100644 meta/meta-ethereum-chain-id/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 34db927a..cb585701 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1560,7 +1560,7 @@ dependencies = [ "serde_json", "sp-api", "sp-blockchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -1578,7 +1578,7 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "thiserror", ] @@ -1593,9 +1593,9 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "sc-client-db", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-database", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -1612,7 +1612,7 @@ dependencies = [ "sc-client-api", "sp-api", "sp-blockchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -1647,10 +1647,10 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-storage", "substrate-prometheus-endpoint", "tokio", ] @@ -1786,9 +1786,9 @@ source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27 dependencies = [ "ethereum", "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] @@ -1797,8 +1797,8 @@ version = "1.0.0" source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "async-trait", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", ] [[package]] @@ -1809,10 +1809,10 @@ dependencies = [ "ethereum", "ethereum-types", "fp-evm", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-std", ] [[package]] @@ -1821,11 +1821,11 @@ version = "3.0.0-dev" source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "evm", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", "parity-scale-codec", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-std", ] [[package]] @@ -1839,10 +1839,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -1851,12 +1851,12 @@ version = "1.0.0-dev" source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "ethereum", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", "parity-scale-codec", "parity-util-mem", "scale-info", "serde", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -1873,8 +1873,8 @@ name = "frame-benchmarking" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "linregress", "log", "parity-scale-codec", @@ -1882,12 +1882,12 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "sp-storage", ] [[package]] @@ -1895,15 +1895,15 @@ name = "frame-executive" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] @@ -1918,36 +1918,6 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "bitflags", - "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "impl-trait-for-tuples", - "k256", - "log", - "once_cell", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "tt-call", -] - [[package]] name = "frame-support" version = "4.0.0-dev" @@ -1955,7 +1925,7 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support-procedural", "impl-trait-for-tuples", "k256", "log", @@ -1965,50 +1935,26 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", "tt-call", ] -[[package]] -name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "Inflector", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "frame-support-procedural" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "Inflector", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "proc-macro-crate", + "frame-support-procedural-tools", "proc-macro2", "quote", "syn", @@ -2019,23 +1965,13 @@ name = "frame-support-procedural-tools" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", "syn", ] -[[package]] -name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" @@ -2046,38 +1982,21 @@ dependencies = [ "syn", ] -[[package]] -name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", -] - [[package]] name = "frame-system" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", ] [[package]] @@ -3752,17 +3671,6 @@ dependencies = [ name = "meta-consensus" version = "0.1.0" -[[package]] -name = "meta-ethereum-chain-id" -version = "0.1.0" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "parity-scale-codec", - "scale-info", - "serde", -] - [[package]] name = "meta-node" version = "0.1.0" @@ -3805,10 +3713,10 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", "sp-timestamp", "substrate-build-script-utils", "substrate-frame-rpc-system", @@ -3822,15 +3730,15 @@ dependencies = [ "fp-rpc", "fp-self-contained", "frame-executive", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "frame-system-rpc-runtime-api", - "meta-ethereum-chain-id", "pallet-balances", "pallet-base-fee", "pallet-dynamic-fee", "pallet-ethereum", "pallet-evm", + "pallet-evm-chain-id", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -3840,15 +3748,15 @@ dependencies = [ "serde", "sp-api", "sp-block-builder", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-io", "sp-offchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "sp-session", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std", "sp-transaction-pool", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version", "substrate-wasm-builder", ] @@ -4251,13 +4159,13 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "frame-benchmarking", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", + "sp-std", ] [[package]] @@ -4266,13 +4174,13 @@ version = "1.0.0" source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" dependencies = [ "fp-evm", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", ] [[package]] @@ -4283,15 +4191,15 @@ dependencies = [ "async-trait", "fp-dynamic-fee", "fp-evm", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] @@ -4308,17 +4216,17 @@ dependencies = [ "fp-rpc", "fp-self-contained", "fp-storage", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "pallet-evm", "pallet-timestamp", "parity-scale-codec", "rlp", "scale-info", "serde", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -4329,8 +4237,8 @@ dependencies = [ "evm", "fp-evm", "frame-benchmarking", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "hex", "log", "pallet-timestamp", @@ -4339,10 +4247,22 @@ dependencies = [ "rlp", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-chain-id" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier.git?branch=polkadot-v0.9.27#32f9c7eaf5aa550191c90e14476b145e5d7833d7" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", ] [[package]] @@ -4350,13 +4270,13 @@ name = "pallet-sudo" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -4365,14 +4285,14 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "frame-benchmarking", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents", + "sp-runtime", + "sp-std", "sp-timestamp", ] @@ -4381,15 +4301,15 @@ name = "pallet-transaction-payment" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] @@ -4402,9 +4322,9 @@ dependencies = [ "parity-scale-codec", "sp-api", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-rpc", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -4415,7 +4335,7 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "sp-api", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -5362,8 +5282,8 @@ version = "4.1.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-wasm-interface", "thiserror", ] @@ -5384,9 +5304,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-runtime", "substrate-prometheus-endpoint", ] @@ -5400,10 +5320,10 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] @@ -5419,8 +5339,8 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", ] [[package]] @@ -5462,12 +5382,12 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-keyring", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", "thiserror", "tiny-bip39", "tokio", @@ -5490,14 +5410,14 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-database", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-trie", "substrate-prometheus-endpoint", ] @@ -5517,13 +5437,13 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-state-db", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-database", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] @@ -5543,9 +5463,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", + "sp-state-machine", "substrate-prometheus-endpoint", "thiserror", ] @@ -5565,16 +5485,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] @@ -5605,19 +5525,19 @@ dependencies = [ "schnorrkel", "serde", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", "sp-consensus-vrf", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-version", "substrate-prometheus-endpoint", "thiserror", ] @@ -5632,7 +5552,7 @@ dependencies = [ "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -5660,10 +5580,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-slots", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", "sp-timestamp", "substrate-prometheus-endpoint", "thiserror", @@ -5682,14 +5602,14 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-slots", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", "sp-timestamp", "thiserror", ] @@ -5707,16 +5627,16 @@ dependencies = [ "sc-executor-wasmi", "sc-executor-wasmtime", "sp-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", "sp-tasks", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie", + "sp-version", + "sp-wasm-interface", "tracing", "wasmi", ] @@ -5732,7 +5652,7 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-sandbox", "sp-serializer", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface", "thiserror", "wasm-instrument", "wasmi", @@ -5747,9 +5667,9 @@ dependencies = [ "parity-scale-codec", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface", "sp-sandbox", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface", "wasmi", ] @@ -5767,9 +5687,9 @@ dependencies = [ "rustix 0.35.12", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime-interface", "sp-sandbox", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-wasm-interface", "wasmtime", ] @@ -5787,7 +5707,7 @@ dependencies = [ "sc-network", "sc-transaction-pool-api", "sp-blockchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -5799,9 +5719,9 @@ dependencies = [ "hex", "parking_lot 0.12.1", "serde_json", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", ] @@ -5842,11 +5762,11 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", @@ -5869,7 +5789,7 @@ dependencies = [ "smallvec", "sp-consensus", "sp-finality-grandpa", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -5887,8 +5807,8 @@ dependencies = [ "sc-network-common", "sc-peerset", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", "thiserror", ] @@ -5910,12 +5830,12 @@ dependencies = [ "sc-network-common", "sc-peerset", "smallvec", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-finality-grandpa", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "thiserror", ] @@ -5940,9 +5860,9 @@ dependencies = [ "sc-network", "sc-utils", "sp-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-offchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "threadpool", "tracing", ] @@ -5990,13 +5910,13 @@ dependencies = [ "serde_json", "sp-api", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-keystore", "sp-offchain", "sp-rpc", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "sp-session", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-version", ] [[package]] @@ -6014,11 +5934,11 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-rpc", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", + "sp-tracing", + "sp-version", "thiserror", ] @@ -6077,23 +5997,23 @@ dependencies = [ "serde", "serde_json", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-keystore", + "sp-runtime", "sp-session", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-state-machine", + "sp-storage", + "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-trie", + "sp-version", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -6113,7 +6033,7 @@ dependencies = [ "parity-util-mem-derive", "parking_lot 0.12.1", "sc-client-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", ] [[package]] @@ -6130,9 +6050,9 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-std", ] [[package]] @@ -6174,10 +6094,10 @@ dependencies = [ "serde", "sp-api", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", "sp-rpc", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", + "sp-tracing", "thiserror", "tracing", "tracing-log", @@ -6214,9 +6134,9 @@ dependencies = [ "serde", "sp-api", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", + "sp-tracing", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -6231,7 +6151,7 @@ dependencies = [ "log", "serde", "sp-blockchain", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", "thiserror", ] @@ -6330,31 +6250,13 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" -dependencies = [ - "secp256k1-sys 0.4.2", -] - [[package]] name = "secp256k1" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff55dc09d460954e9ef2fa8a7ced735a964be9981fd50e870b2b3b0705e14964" dependencies = [ - "secp256k1-sys 0.6.1", -] - -[[package]] -name = "secp256k1-sys" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" -dependencies = [ - "cc", + "secp256k1-sys", ] [[package]] @@ -6659,11 +6561,11 @@ dependencies = [ "log", "parity-scale-codec", "sp-api-proc-macro", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", "thiserror", ] @@ -6679,19 +6581,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sp-application-crypto" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", -] - [[package]] name = "sp-application-crypto" version = "6.0.0" @@ -6700,24 +6589,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-arithmetic" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "static_assertions", + "sp-core", + "sp-io", + "sp-std", ] [[package]] @@ -6730,8 +6604,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-debug-derive", + "sp-std", "static_assertions", ] @@ -6742,9 +6616,9 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "parity-scale-codec", "sp-api", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] @@ -6760,8 +6634,8 @@ dependencies = [ "sp-api", "sp-consensus", "sp-database", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", + "sp-state-machine", "thiserror", ] @@ -6775,12 +6649,12 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", "thiserror", ] @@ -6793,12 +6667,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", "sp-consensus", "sp-consensus-slots", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents", + "sp-runtime", + "sp-std", "sp-timestamp", ] @@ -6813,15 +6687,15 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-application-crypto", "sp-consensus", "sp-consensus-slots", "sp-consensus-vrf", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-std", "sp-timestamp", ] @@ -6833,9 +6707,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-arithmetic", + "sp-runtime", + "sp-std", "sp-timestamp", ] @@ -6847,55 +6721,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "schnorrkel", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-core" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "base58", - "bitflags", - "blake2-rfc", - "byteorder", - "dyn-clonable", - "ed25519-dalek", - "futures", - "hash-db", - "hash256-std-hasher", - "hex", - "impl-serde", - "lazy_static", - "libsecp256k1", - "log", - "merlin", - "num-traits", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.12.1", - "primitive-types", - "rand 0.7.3", - "regex", - "scale-info", - "schnorrkel", - "secp256k1 0.21.3", - "secrecy", - "serde", - "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "ss58-registry", - "substrate-bip39", - "thiserror", - "tiny-bip39", - "wasmi", - "zeroize", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] @@ -6927,15 +6755,15 @@ dependencies = [ "regex", "scale-info", "schnorrkel", - "secp256k1 0.24.1", + "secp256k1", "secrecy", "serde", - "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core-hashing", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", "ss58-registry", "substrate-bip39", "thiserror", @@ -6944,20 +6772,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sp-core-hashing" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "blake2", - "byteorder", - "digest 0.10.3", - "sha2 0.10.2", - "sha3 0.10.2", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "twox-hash", -] - [[package]] name = "sp-core-hashing" version = "4.0.0" @@ -6968,21 +6782,10 @@ dependencies = [ "digest 0.10.3", "sha2 0.10.2", "sha3 0.10.2", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std", "twox-hash", ] -[[package]] -name = "sp-core-hashing-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "proc-macro2", - "quote", - "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "syn", -] - [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" @@ -6990,7 +6793,7 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "proc-macro2", "quote", - "sp-core-hashing 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core-hashing", "syn", ] @@ -7003,16 +6806,6 @@ dependencies = [ "parking_lot 0.12.1", ] -[[package]] -name = "sp-debug-derive" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sp-debug-derive" version = "4.0.0" @@ -7023,17 +6816,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sp-externalities" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", -] - [[package]] name = "sp-externalities" version = "0.12.0" @@ -7041,8 +6823,8 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "environmental", "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std", + "sp-storage", ] [[package]] @@ -7056,25 +6838,11 @@ dependencies = [ "scale-info", "serde", "sp-api", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "thiserror", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", ] [[package]] @@ -7085,37 +6853,12 @@ dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", + "sp-std", "thiserror", ] -[[package]] -name = "sp-io" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "futures", - "hash-db", - "libsecp256k1", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "secp256k1 0.21.3", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "tracing", - "tracing-core", -] - [[package]] name = "sp-io" version = "6.0.0" @@ -7127,16 +6870,16 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "secp256k1 0.24.1", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-keystore 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-state-machine 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "secp256k1", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", + "sp-wasm-interface", "tracing", "tracing-core", ] @@ -7147,27 +6890,11 @@ version = "6.0.0" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "lazy_static", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", "strum", ] -[[package]] -name = "sp-keystore" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "async-trait", - "futures", - "merlin", - "parity-scale-codec", - "parking_lot 0.12.1", - "schnorrkel", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "thiserror", -] - [[package]] name = "sp-keystore" version = "0.12.0" @@ -7180,8 +6907,8 @@ dependencies = [ "parking_lot 0.12.1", "schnorrkel", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-externalities", "thiserror", ] @@ -7200,18 +6927,8 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "sp-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-panic-handler" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "backtrace", - "lazy_static", - "regex", + "sp-core", + "sp-runtime", ] [[package]] @@ -7231,29 +6948,7 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "rustc-hash", "serde", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-runtime" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "parity-util-mem", - "paste", - "rand 0.7.3", - "scale-info", - "serde", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-core", ] [[package]] @@ -7271,28 +6966,11 @@ dependencies = [ "rand 0.7.3", "scale-info", "serde", - "sp-application-crypto 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-arithmetic 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-runtime-interface" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime-interface-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "static_assertions", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", ] [[package]] @@ -7303,27 +6981,15 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-storage 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-tracing 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", "static_assertions", ] -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "Inflector", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" @@ -7343,10 +7009,10 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "log", "parity-scale-codec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-wasm-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-io", + "sp-std", + "sp-wasm-interface", "wasmi", ] @@ -7367,21 +7033,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] @@ -7391,30 +7046,8 @@ source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.2 dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-state-machine" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "hash-db", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.7.3", - "smallvec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "thiserror", - "tracing", - "trie-root", + "sp-runtime", + "sp-std", ] [[package]] @@ -7429,39 +7062,21 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.7.3", "smallvec", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-panic-handler 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-std", + "sp-trie", "thiserror", "tracing", "trie-root", ] -[[package]] -name = "sp-std" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" - [[package]] name = "sp-std" version = "4.0.0" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" -[[package]] -name = "sp-storage" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", -] - [[package]] name = "sp-storage" version = "6.0.0" @@ -7471,8 +7086,8 @@ dependencies = [ "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-debug-derive", + "sp-std", ] [[package]] @@ -7481,11 +7096,11 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "log", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-externalities 0.12.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-io 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime-interface 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", ] [[package]] @@ -7498,31 +7113,19 @@ dependencies = [ "log", "parity-scale-codec", "sp-api", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-inherents", + "sp-runtime", + "sp-std", "thiserror", ] -[[package]] -name = "sp-tracing" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "tracing", - "tracing-core", - "tracing-subscriber", -] - [[package]] name = "sp-tracing" version = "5.0.0" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std", "tracing", "tracing-core", "tracing-subscriber", @@ -7534,7 +7137,7 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27#5bfdbab8ba28523ef10e365627fed64ef2b77cbf" dependencies = [ "sp-api", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-runtime", ] [[package]] @@ -7546,27 +7149,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-trie 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", -] - -[[package]] -name = "sp-trie" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "hash-db", - "memory-db", - "parity-scale-codec", - "scale-info", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "thiserror", - "trie-db", - "trie-root", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", ] [[package]] @@ -7578,30 +7165,13 @@ dependencies = [ "memory-db", "parity-scale-codec", "scale-info", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-std", "thiserror", "trie-db", "trie-root", ] -[[package]] -name = "sp-version" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm 0.42.2", - "scale-info", - "serde", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "thiserror", -] - [[package]] name = "sp-version" version = "5.0.0" @@ -7612,24 +7182,13 @@ dependencies = [ "parity-wasm 0.42.2", "scale-info", "serde", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core-hashing-proc-macro", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", "thiserror", ] -[[package]] -name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" @@ -7641,18 +7200,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sp-wasm-interface" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25)", - "wasmi", -] - [[package]] name = "sp-wasm-interface" version = "6.0.0" @@ -7661,7 +7208,7 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 4.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-std", "wasmi", "wasmtime", ] @@ -7778,8 +7325,8 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-core 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", - "sp-runtime 6.0.0 (git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.27)", + "sp-core", + "sp-runtime", ] [[package]] diff --git a/meta/meta-ethereum-chain-id/Cargo.toml b/meta/meta-ethereum-chain-id/Cargo.toml deleted file mode 100644 index 827958fc..00000000 --- a/meta/meta-ethereum-chain-id/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -[package] -name = "meta-ethereum-chain-id" -version = "0.1.0" -edition = "2021" - -[dependencies] -serde = { version = "1.0.144", optional = true, features = ["derive"] } - -# Substrate -frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -parity-scale-codec = { default-features = false, version = "3.1.5", features = ["derive"] } -scale-info = { default-features = false, version = "2.1.2", features = ["derive"] } - -[features] -default = ["std"] -std = [ - "frame-support/std", - "frame-system/std", - "parity-scale-codec/std", - "scale-info/std", - "serde", -] -try-runtime = ["frame-support/try-runtime"] diff --git a/meta/meta-ethereum-chain-id/src/lib.rs b/meta/meta-ethereum-chain-id/src/lib.rs deleted file mode 100644 index f4541e20..00000000 --- a/meta/meta-ethereum-chain-id/src/lib.rs +++ /dev/null @@ -1,42 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_support::pallet; - -pub use pallet::*; - -#[pallet] -pub mod pallet { - - use frame_support::pallet_prelude::*; - - /// The Ethereum Chain Id Pallet - #[pallet::pallet] - pub struct Pallet(PhantomData); - - /// Configuration trait of this pallet. - #[pallet::config] - pub trait Config: frame_system::Config {} - - impl Get for Pallet { - fn get() -> u64 { - Self::chain_id() - } - } - - #[pallet::storage] - #[pallet::getter(fn chain_id)] - pub type ChainId = StorageValue<_, u64, ValueQuery>; - - #[pallet::genesis_config] - #[derive(Default)] - pub struct GenesisConfig { - pub chain_id: u64, - } - - #[pallet::genesis_build] - impl GenesisBuild for GenesisConfig { - fn build(&self) { - ChainId::::put(self.chain_id); - } - } -} diff --git a/meta/meta-runtime/Cargo.toml b/meta/meta-runtime/Cargo.toml index 0c30778c..4a59f6ff 100644 --- a/meta/meta-runtime/Cargo.toml +++ b/meta/meta-runtime/Cargo.toml @@ -40,8 +40,7 @@ pallet-base-fee = { default-features = false, git = "https://github.com/p pallet-dynamic-fee = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } pallet-ethereum = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } pallet-evm = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } -# Local -meta-ethereum-chain-id = { default-features = false, path = "../meta-ethereum-chain-id", package = "meta-ethereum-chain-id"} +pallet-evm-chain-id = { default-features = false, git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.27" } [build-dependencies] substrate-wasm-builder = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.27" } @@ -81,9 +80,8 @@ std = [ "pallet-dynamic-fee/std", "pallet-ethereum/std", "pallet-evm/std", + "pallet-evm-chain-id/std", "pallet-sudo/std", "pallet-timestamp/std", "pallet-transaction-payment/std", - # Local - "meta-ethereum-chain-id/std", ] diff --git a/meta/meta-runtime/src/lib.rs b/meta/meta-runtime/src/lib.rs index 951ace33..e8d58ef3 100644 --- a/meta/meta-runtime/src/lib.rs +++ b/meta/meta-runtime/src/lib.rs @@ -253,7 +253,7 @@ impl pallet_evm::Config for Runtime { type Runner = pallet_evm::runner::stack::Runner; type PrecompilesType = (); type PrecompilesValue = (); - type ChainId = EthereumChainId; + type ChainId = EVMChainId; type BlockGasLimit = BlockGasLimit; type OnChargeTransaction = (); type FindAuthor = (); @@ -264,7 +264,7 @@ impl pallet_ethereum::Config for Runtime { type StateRoot = pallet_ethereum::IntermediateStateRoot; } -impl meta_ethereum_chain_id::Config for Runtime {} +impl pallet_evm_chain_id::Config for Runtime {} frame_support::parameter_types! { pub BoundDivision: U256 = U256::from(1024); @@ -323,8 +323,8 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment, Sudo: pallet_sudo, Ethereum: pallet_ethereum, - EthereumChainId: meta_ethereum_chain_id, EVM: pallet_evm, + EVMChainId: pallet_evm_chain_id, DynamicFee: pallet_dynamic_fee, BaseFee: pallet_base_fee, } From 78c788c5c64e458836957f398b9810584aac8f7e Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 13:38:13 +0800 Subject: [PATCH 3/6] update pallet configs --- meta/meta-node/src/chain_spec.rs | 6 ++---- meta/meta-node/src/rpc.rs | 1 + meta/meta-runtime/src/lib.rs | 5 +++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/meta/meta-node/src/chain_spec.rs b/meta/meta-node/src/chain_spec.rs index 8b16f50b..53bb1cec 100644 --- a/meta/meta-node/src/chain_spec.rs +++ b/meta/meta-node/src/chain_spec.rs @@ -131,9 +131,7 @@ pub fn testnet_genesis( _enable_println: bool, chain_id: u64, ) -> GenesisConfig { - use meta_runtime::{ - BalancesConfig, EVMConfig, EthereumChainIdConfig, SudoConfig, SystemConfig, - }; + use meta_runtime::{BalancesConfig, EVMChainIdConfig, EVMConfig, SudoConfig, SystemConfig}; GenesisConfig { system: SystemConfig { // Add Wasm runtime to storage. @@ -152,7 +150,7 @@ pub fn testnet_genesis( // Assign network admin rights. key: Some(root_key), }, - ethereum_chain_id: EthereumChainIdConfig { chain_id }, + evm_chain_id: EVMChainIdConfig { chain_id }, evm: EVMConfig { accounts: { let mut map = BTreeMap::new(); diff --git a/meta/meta-node/src/rpc.rs b/meta/meta-node/src/rpc.rs index 325bde8c..1cc30db1 100644 --- a/meta/meta-node/src/rpc.rs +++ b/meta/meta-node/src/rpc.rs @@ -166,6 +166,7 @@ where block_data_cache.clone(), fee_history_cache, fee_history_cache_limit, + 10, ) .into_rpc(), )?; diff --git a/meta/meta-runtime/src/lib.rs b/meta/meta-runtime/src/lib.rs index e8d58ef3..1db74971 100644 --- a/meta/meta-runtime/src/lib.rs +++ b/meta/meta-runtime/src/lib.rs @@ -275,8 +275,8 @@ impl pallet_dynamic_fee::Config for Runtime { } frame_support::parameter_types! { - pub IsActive: bool = true; pub DefaultBaseFeePerGas: U256 = U256::from(1_000_000_000); + pub DefaultElasticity: Permill = Permill::from_parts(125_000); } pub struct BaseFeeThreshold; @@ -295,8 +295,8 @@ impl pallet_base_fee::BaseFeeThreshold for BaseFeeThreshold { impl pallet_base_fee::Config for Runtime { type Event = Event; type Threshold = BaseFeeThreshold; - type IsActive = IsActive; type DefaultBaseFeePerGas = DefaultBaseFeePerGas; + type DefaultElasticity = DefaultElasticity; } parameter_types! { @@ -304,6 +304,7 @@ parameter_types! { } impl pallet_transaction_payment::Config for Runtime { + type Event = Event; type OnChargeTransaction = CurrencyAdapter; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = IdentityFee; From ea7b0e47894a4f29f16769bffdb449de6ffd1b82 Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 16:59:19 +0800 Subject: [PATCH 4/6] update meta spec --- meta/meta-node/specs/meta.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/meta-node/specs/meta.json b/meta/meta-node/specs/meta.json index 422d0423..2d4a56c3 100644 --- a/meta/meta-node/specs/meta.json +++ b/meta/meta-node/specs/meta.json @@ -16,6 +16,8 @@ "genesis": { "raw": { "top": { + "0x0f6342be23148b1fecb28322dcb30aef4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x0f6342be23148b1fecb28322dcb30aefd8b4519d4aceb8073dbaffde1eef0d79": "0xdc03000000000000", "0x1592b059be00a606c626b89ba0f128304e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x1592b059be00a606c626b89ba0f128306fdc5c9df26c5c93039a8268248f7970": "0x0000000000000000000000000000000000000000000000000000000000000000", "0x1da53b775b270400e7e61ed5cbc5a1464e7b9012096b41c4eb3aaf947f6ea429": "0x0000", @@ -36,8 +38,6 @@ "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95acab4cec296bcd46faf07a8b932abff1acc419fd6317a81bb62e2e9e88f2864ebb16ca143153df2ab3272f61534556c": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f6dc51cd2bf581475a2fee8bb62d3ea20273d7524925f4890aca20aa9bdaa9cae6318062bed581c5e91e2b1318e82176": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x04306d6574612d72756e74696d65", - "0x31f6b0f0044010d5ceda9252276a822e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0x31f6b0f0044010d5ceda9252276a822ed8b4519d4aceb8073dbaffde1eef0d79": "0xdc03000000000000", "0x3a636f6465": "0x52bc537646db8e0528b52ffd005834b003ae9a04540e50107068940e7092c439541b98c3f92c33ce090c84db984ca84fc4943ce53ed30ccc81c46696fbd513405df2c81d99aa0722b48ab355aafeb09873339971a45be03069dffebf09d95b922db79452a69402e80e630d8a0ed0898e38a2281675dd526f4dc6245dab6eed40b16eced737e89b0d711587c876c4b7efc3baf1fbe02853e79333213edd037bbb4fbbcd88c04a845dc7dc1068cfa1ef12599ecfc620859f8232fcf3e735bd03fd95f1bb3c3658377ee3213dc3f258e731cb631dd2fecd1e902ae35bb53cd67d1a52f79b0d69249ebdfd39d63bce9f6f985f1b52902f23cc2532174bb91c2950a1208c101434e1bdd3de7eea9dee76228defee7dbba399cced41bb5039da12565a0a1adf2d05cbf74963e8b3142974c621c2eedcb9cb804487d4f2d9d8cb8044dfac07e8568d9421cd846ce4ae329f6bf78c3320ecd3619033202ec2f922f632200e6640d83b83f565403813b2cffe28bf63ee32b703daaea45479f8bb5242cbafccdcdd147304e063664ddbe66114fba390be3e31a4ce996157ed3dc7fc29c77d45892c9ae65c092baf84148dca22f0bca3bbe88f46ba7d829e00ad63dd3ec1faaa7ccc4498bbc3cbebd3bb5ccade81be0eb195d1255dea000dbaf3e79bf9002b90731c229643b71cd621fef7b221d02d9f2ff3c179f4cd864067f7e9ce7cb0ea063d562059af5a67c4b0de11e21feab7784ce0a8d739edfb84f03b8f9aab5a74e91b74f609996ef4fdf6cd7c88f5f9b4a4dba79590ee4f9701e186ee2a8ee5fb43dbf556c5faf49c1fba4f6b7d7a4cf9276372836af8e7eb8eb20341e70dbee740d0e3a3b24fedd1011afbf37e1edda75fef445781a0d7cd39f4f609e43cd60dd627f09fcbb94168bb8a12e6e5ef2aca129e331f9cc3ba6598a3af4fab4137d2e0e73efdaaac6e68fad0dca9e478ee6b9b3d20f5efa5981d1046038aa471862bed8eb9fcec8cad770681d4036d0d2afaf5ad5de31d4049e37705658cdfe43f2fc0ef0a0a958771e6208981f2cb2090fad727f6d958a4ce37db52cfd0e7cb8040b71990e838b1f6c01f3d56d927f67d7648f977c7ab405a4b317db02f03b16fce9b29490cccdbc3dc7f8ffd2c45e8d8f983b1bd77707a6877eea2b3bfded9a003397f1e3dbaec9d0612b15fcd7d6d969e4369e397dda79fabecd3f3e7b3a44350d13f7fce4082f85fdd3eb13b7725d93bcedb9f6fefbc0cc8e30c02a977cf7d606eefb45b2541e5d797ceedb91ed0dabd774ebdb33d53ef38dfd13bfc6e858498778e358f43f16f3cfa371defdcf9eb9d1dae02e928d11142db151263fcae9088e2b7d3b71fe077a5f2f29b01a180b6693ead6958eff44ef4f5d73b96fffab4e87ea4fc734f9ae596c33803122190b27c723624ba55b7e8d1676743b48fbed9ebd3f3cd8040f7e9e89bcdcd64dd522fdda29bb4dcc759747b6ff96640a44f8b6e0e78cbe76657dd8cf8cb2dbaedea2d8f74db3e19d16408231878cbb7edd3f6c35bbe45212ed2fd8b06b93163c688f9e816dd12f0cf2763167dee83f596a441d6c7baf15b3588c78c1933e6b7d4c338e41e6e9fb69a67d7f9b52125f941993bc7309aeb016d572a2e2fb7fc3ad63c8c5a37f5ceae5452ec6f3a7e7d772c03e6d6d03beb4bf79bf233e56fbaff7aa77d7df2e4cd98651a7085307dda772e03d27557a6015710d3a77d7647a7c39af277c6bed9ab3ebd1910d92737197bb331ce24b0dfce4a98fbddceddd5a753cc1098ec4c29a0ad54aadfdeb74b7629d7f16ce76cdab36fda3f6624ceb573ce39e7ba5d7e571c22edcfbbebd6ee7ac7e6df3e37479b7bd2d6d93703b2ce590f46a8542a247eebf66993df3e1bdbde71de3bbc7d6af769a6af4fed37689bf6dd6eea1df69ade616fd77a67fbb4fb9b3dfaa486779292ef5cbeab38449c3f77feea103fd7cd86b0bbbaf1eee80ae4bf36a41c3313e6feeed8b46f9fb277b61ca43168ec1bf6bd436377bebe990fec40dba7ed3d53f719b63f84d8cb3fc1489331a6efb1301f64fd93990c2395361bf254aa67f7e9d9d8ee0ff6cdf9f6695df6cec6ef7c7d3a2afbb46e83e67c7db320af4febaeca3eadfbf46c8c693fb63f8478f54fe2b3b767fb4388551fc480676fe7cc074df5ec58efecb76f368455cfeed33eedd33ebd74fbb4be3bba0269bf36a49a5b8db93d37001afbfa5e735d635fdf6b2e0134f6f5bd48693800064b8c4855205d816405121ba42090ce200d816404521148639074403a02a90b6907a41e9056241f90ca207d41f282d4058907242e4864909830b14012022907330ba425909030af404ac20cc30403d6024c8a39669e61be31cd30cb30c98051c15280a10073026b023b01c60466026c0ab60426058b8241c192c090c054980a3028b0273025302ab0293018cc2ecc2f4c2fcc2d4c2ecc35e697a9061016984b9867cc21cc29260d66955119466398512694d11a53899119da0c16164637187d21a71849192d315223e2e00263e445bc81ac6214c5b5ba88f0b2785bc835e412e419d20c390449045904f984eb8d08058279634631b08430c3c82aef0deb8dd1132612a014620a5e18918a75854b0b571bd716220aae2cc4315c5c1879b1a87065b1a430b120817156705d706eb831ef0b521a5718640c38096bf5b0109fb0947859b8be185531e201d4c23c82150499c539c13ac2c806718a63233af1ce108b1093783720a111b78cb458568862402b5c5e4026e60dae2eae1e4c2eaf8be785c5c623839402898b0566e48684817c81a422b2002a21aae081f1b82035e1b94112038a2192416e01dbb8d8785a3c2c17141e0ede15770699c625c64101a2016d309a82f5c57263b63171f0b6f07af0565d068632d28211a32f8cc210c55c5f6213d71acfca55051e836be074c041905c3c1b3c255e9407e52541fa810383fb82f382d3822bc3533933b82fae0a2e0a6e0a2e0d2705f7040786cbc1b4d254e830b4187a0c0d862643bfe1547d86f6d2632615d38a5e42a3d14ae82434129a4b1fa18dd045e8339a083d8436a3b7b4103a080d84d6d23f681f740f7ad5653419cd831ea377d03ae81c749616a3c36830fa8bf6a2bb682e1a4b6fd15af495cea271d037681bb495c6a2afe81ab4154d839e41cba0ab740cba8aa6a2a76818f40bda052d45b7a059d02be8285a050d453fd1543a058d8276a29be81334132da5956813f4945ea2a334944ea29168158fe133f01b6c062e039381c7c062580ccd040e038381dde02fb017b80b1c86b9c05b602d701b9c855115180bcc858fc029602ccc035e82ade019300d7807b3064c06cb80571c83d1164662e02ad3065cc6080cf30a6e4228a80993253f159000920f68200343887ee0800f0316c0c30f04b0123d7a78767638400e3a381880a308a00e806ec06d99fccb910b57bb1f27473e50a4c9919f218a1499ec8458f253a4c8081e01c990d0cf93254c1aa0038db023184a8224c99093234a7e8ab0423f434a9280a0c819ab44c9110a89b04e869a24f941f2233400380433d6c98f9322868e0c3929225404121de096fd193af223844408ab44c9112439601076e8884320ac109321868ad001b5ecd01101c01fec0f9224424d8a383912821aa00f16491227473e6003ecc10a91a4489226df801f284001228af811fa1962084800e06a9d28497264e84788223f3f20b80196b14c40b02449911108fd1411542449931f5af243c4088efce0908cfd41b284c99222478a2469f23f48963091c0d09222982041f200803c108209921f216a8063ac9311fc00157152e467e888d0cf929f10147132821f224b982471e2e4a70214ee604550844991244d5ee8074888c9059624393204121080c0070a75b03f43478448a2e4c893223f45fc1431012084f80941088e0051009883750284e467082459d6c9d0921fa19f2196247128c6922420c081612c92244e9624111a32e2a7c80894346972a488d08f104a9214810242c244094a07046389287264e8881047867e222003bf2041122547920c255992c4067ab140489828f940919fa12290fc18f13303bb5821260dc0967f947ce0c8d0922240506408c98f5012219624295284062abd583fc88297dfd4dc954af59c723444678633839bb0f5da01dd0e6840777737a001103233b77391a3e3751105618c97152f0cba6b46e8ae0cc25116d91a4dc8ce39768e99792d08a115dd33b4668c8e393a1c985900d014a38b93dd82103674967393233b760e3a072d18d7317384d1821042c931461ff6611f06305b0b800a48000f3f20943910c6c89123460302301a18b20523e3c0ccb2a7c7c598032184165ccb8a2ef2ec408e1c39c7b98e1c639c9023b41842b84384cc12c6e7e300ec98758018b31569c06474cec508a38bd18ad2e5448e5172ce88199a1842c681198ea0c52ef2c5d082902f097398ad18a34e0e510772943072e4191c200d4e32333347081b1aa0070f2bc618d7ed9c93a325a3642600178000cccb91614e8c11728c115a104266192784961599a1055d7c1c59ca187334c996739499658c3c80d30d0380cc0cad18a373912dcb82105a102e84169c1c1db38bd1b2a2002247660877305b3132c36843845684b14248a905a3736c3259d684d0718c163b84bb31323b675910c6c891638431728c566418a3c51c2343182d8ece3957430026846eb75d0000d09973ae9dd3819303360d13f674ce046384ce39e72074eeb573cc315a968b314618ad0b5a168cd0b2300b5a16c318af68b583d1718c919406490a6e89e0cde14708044584980c1d41c2448992233a7008f123f423841093223b3be8f093446888003f4424195a528450a501c1501100f819a2c8d09224424d8a20719284081d37cc38a1e1ad0e4c9808e5004272e4034a94301122c0cd911fa11c36433f21a041c6c990932446fce858c224c91092234e961c111a2a3294840822989c6a5607239280e047a849a5d91c8efc28418233b3392cf969d2e448919f101c116232e444878f1d0018c144044301003a8204c90fd0ce0e3a780e3d3ae45044871fa0234a3e5024044b920ce1e4c8107e0d091d197272830e423608f1e3c4c98f5013229820e1d15607a19f274c90fc081539e24408243f457200dad9418726487e9cf0180d8164e8c8078a0ce124c9922420389546008224423f4f8a2020871d76d041889f224c869a8c4008890d23253f4f7e941431e20811353c59f2e3489b4391254c923811fa795224044c941409c19224210801132545868cf8a1e1c9921f27b33d02212644fc10119f2cf971355c65f44bf5c21853cf32924a71515151912b4aa52c236b49235b942a4a5d45d7c8c8a6a69122dea21466648b329782454545a9d43392e254c9488a8b8a8a60ca6a23459c2a2a72468a8a8adac816b1912d2a6a23292e622345452967648b8a52ce488a630a1a49f11ad93552c445a9676453a936b2459ce23692e2542ae58c6c8a8da438c54680bc2dbcbb4c8493231bde590f988f7c346b11a61f323dd7bee8b6637ef99c706e1664e457d32df5ed9d11798ef966432ec7a65bce98bb8c8874e95c777bf0d695b707fbe57c3d911fe4cea0fa758b6e439c8adc5fe6360fc93799f9a68d7cab99be997e5dfab6633b6d09f84dfd88662e69eae79cd37d1aa338d22fcfe61669cfa3cf23b4e773a618bbae6bfae4e941eee7fe74a0e93e6d952c2256c99a2e7d5e23dfbf46b507e9975f5cfef9c857fffcf2e93020e817e692f25fa3d1a80241df9e3b49f9e024f59803457f9ef9f0b07ab98ffb4b426c33ac6e448f79a4dbfbe824ea5aca6e0e8c8a427229bb394467948fc3681011892e4a52225705cafc79e69b01218541cbdcc5e9b16e99cf8a33dd72e8cfb38a332b11e9d1a547a723b780a4b488484b0e797ed52dfaf439e98639cee5fbd323c5b96a0fd067f4fd1460f9e71368e4b36efc5b740cc31cf630fdf2cd86ccbadb639beefcaadb63bbdcf9f01ca3d37d1ca4fc917f44f7af8fcd3c3412bf61bf3e12f08b5a27ed8ffd759d9ede71ee3e7d39ac8ab94120d040963a8dd7c93cbfe19d4f1763dce58a457498c6471a6557100c3ab10c1f6914b730a6ee97ee1b1f69f4095df35b18b71f3f92e53e4da133bb8f9bee27901268db3fdd8330aebf0c0809b475284fa4d579a6fd5bb53eddf0eeb947c66495d65bfcae56a0e5bbcaef4a0556fce97705051a4386a084f92d3586f55b114f08e1d759a5b9307e572f58e279f5bb9242084f80df550bbec059905111bc7c90915f0f320a53c50715917e1b52430aa618fc36642506538ddf864ea04601a000c66f4e9c00c6af4af5bb637ebde4bfde5066107f5301e6fdfd1bfadc2c48d78d7f8d68bbb242cbc31f3cfb8418671170feeab68a818afd6da97fce148708fcc1b7c31f385fef0cc8f6c4c6d1a01d33668c0ffed061dd524f6ca2f450c337fcc1331deaafe1bb893450771684c740df8a1384ddd5a1f9dba76d5755a87ea81fd6adfd09bff3d43b7f47fd87e6afa7203b25b8e47c966a3b2acb68cad27dbafd7219c49a7ed16d3ad0c8afcbdb67639837e63e3d2d8de4dd1990764937296b508904e3d5bc0e5e711fc747cabcddc7cd29b1e8d2df1bcf98d6509a941c4a8928852a09e97c10ff93a1feae58947c7619dc61922e185ee7612b2846523066cc9831a8924fb9dceec9489ae2a8d25b7e8e9439bfa49bc63bca9fd12df51d8404fd5dbe5910f6ebbadca7674b37c4a7391b22fdf2394914f3c91889ee167e3646a2eb859f0e23d175e327c44814f3a6ee4b34ca72b9e2c4fa27fd2110e2c77c5a590934cc37238186b94fa7f198cf85af6d2061de4fa23a3f27ddde8fbcb1cc9dfb9163998f7c284ebaf58f1ca342996f46a44846836ac0dae76610581e23c9beec6462d5fa046bfd574d459cc27a54c52c427bbf2b27a6284283bf2b27aaecf6b0618935ded4a76ee34d7dea317f6d0fcb9b6ed64d5f9f2cb93d2ccf912489f5965ffb0388dc1f559841f64b3e972e1b6fea93157eb7c756d9a792733488c77cb63d4ad8f628798e213492678ef9f421b4915f2eddf221b4e84a252f79b63ff64bcea5284c571a123d3a8f8eaee5ed2cdd592e7d9d5b69cdf884dfb23c4a97d5dfa7a95581a443e83eed9cb36274e79c732e88e81d656f6f275a3bf72c511cd714c7794bcbd925b5da2d97b4ddd175cb72276536a4c91023ef5cdde521dda7a5c7e840ce2d9f924ae74243d83b1f8aefdc35691f8cbc74b2eef27055ba8f7394b25bb142bab5b3bb2c086b91ad31dce9396b9f9cf5b05a8098b29948eeae247ae6f6599aa55453cb62ba113dae1b91f66b5941d6983163ccf0dc1ee49e6bd0ab9b83be741bea1f79f4f9447b254f85c46fed4196199018f34f24d073e74bb7cba36fb5bc29d61d24a32481c40b3db1a237ddb7e8b61e7deb50ffa806b119fe5d74a8ff79c519c2ab77de1910e791aefb384937f6e88e3ee97fcba33df6167d79b46fd6c3038288fef92edd9cafc5442fbd2977b777d395ce4e52bfde1ee46290fbf7af0239228f08bbab2b6980e48df9a375e644143732d977c7a6fdec0fee5ffd9398390deb9d0dc3649fa588f93adf523ca2590f23773ea2fb93779da3fbb3797b7d7ff063d4b787ceafc721924a973ecd747fa949479ff62af1cfcd80ac93d1fa34f2cbe7967aa6177d744afa847fe327fca3914bbaffa66b768e14e41ea707f7975fd5b7c73abfa4a30a24fd72a6fb2f0b9211907e6125e8cf4d439a73674937e9d7a86ea91ff1664046b36e443f9de9455d6ffcecdb03d82ff771414497fb2d35a241ee9def459d686e88f66e2ddae3235dbaf1438be2700de28f05f894c556116653f9e74d89d0802cbfe137ab72137dda6fa277f69fffec0f219dc7623db56c38fb6e85358a941e28e8536850eccfb989dea9f982b629796ea24fcf75aaf0431408a46ddcc43fdfb60aff9c685d733929d482610a31622006162f2a150a3afb8474514c550f0728a0411233e0012a8a941e28f62934a88d22a551d1a72c00c50ee99405a088ae00c14ef483cb79ce5cfe3974a22b40448795c8c7e53c8f95e80a10d0b912b9cb790eabceba9c4dfeb6ab15fbb65c360c4b988185169e70032a24c1ff39c90d6d51a9159cc1832aaae841972ebe805ad4faa60384ab5428f6267ae786672a459d62f7aaccdd1f9b4eaab4337a1edf2b7a17d7f857e326afe7575d22eb265d498a8b301fabf4cdd58de89fb34b77f41921052f2b1630fa56f49b92d4142f972820caeaa36faf6e46bc5bb246a0f2d13712fc9375c97ef9587fb042060e4df0c16bc28dd7f1bb6a62098f05d17a516a0a94c5631e0bd58d14b8807205d5730e7263c63c162a0038518328aa0809a0ca165b54434df6cb63a1c2a1093e503d5140949511aa350215d4fa46828fbecbc32e0edbae4ee0c40ff16391c47e415955b55f505b89d68b9654210327206106950a05ab2a8a4a855adf883ed6adc97c18a4eb8f3aef2c081c9ad08331a8f5cd8290a18214ae3803943163502ba4e65ded224e7111a71ac632a67bd0992d09a13b9754833036c61990a682cba0f3ef8a092dbca94f703a8c9fefebf6e258ee0fc7aee3a4bbcb5d7417ddf9155dc6e8ce4dce39e730fa6cecd17d48fb0a0f3a47c779cedf8ff3b2101d5af1d1d727fe27b787eb3073a1bffd117d1dee0f7e1f7d823e85d7e913f4cddc267fa43b9e91433f399ee9d0754887deb33f7c7b48873ea9d639d24754768e74e9784c9d231dbaa9772e87381efaae7ef3f1d07144e92e0d1eb34e46ba7326b2781d7d929c49c7b1dc7d3fce5bbe2b26d6f85d31418537f5497a0c7a7fd5ed93b428dc1eeb9bbdedb1fc459d82edbe98eb8306613bcd00738194ba02adb73375eb9cf5b0bede737fec431fa2b75b14287aaf47dfe81b3deb81b66f4624fafee02043a2afc7baf1d26d1fb6d9369d5fd249812c1f79673d583eb27ce49b45606e1681cb4775933f9ace59901151924042f5419b08caf0c69877b25cac44c1c4af3b49fdacdbc8a72767442c1ff97418cc828c3ec608217cef39e7ba9bf961d603bfe54ec2b958673d6cddf8d7470eb31e46bfdb635b97eee3168788e5eb0e1b6d465420e94144bfb99743e45b748bceeee37a96b665b0df15135dfe6d0f081dbd187a61ae07b4e79be9a1ebf4ce267b7a07ea3c74e83ea09bb03c741dcdd3289880873c1ebad63bedd06b7ac73984d07707ac40bb2a9abbbcbbd2a44388b9aec64d00a686e7d02d09fdade8db7679cb7ba43644ef6c3d09e81dd35b8e01269a78cb39d03c0f656d97d5f256007a7c5a47efac5b3e975a55188ba7fd261b34af2305f1985fcb6b7ae7b96539d63bed96ef0eab026d186765ae077cca18ed018dbddd64d2b153be778ad1361350f976cdb43ff89d6fef6c26938ee75c73351f6416a169737b87f525cd22b467e3fc51930e4f329def8e6d575c1cca9dde99bedd9d63bf69dfac617d02000552599a90822c5e588115be9c00b54f06ebd3ebd39ebe7ba688f9761e09f87647f9b5ded9b09aded1f1ed58e58afdaea680f9574d7de25d3929738b484c00732fa04d5219e6ef6a89306fd2319fa8c42082129640620c5f508be964405e9fb8e2b0ef6f43ee5fd721af4f747fcecd82c4baf947979dad93797daadb90fb919b7a67ba731dbd634debbaea76f9c82f0bd37e5deb1dcb9dd7f4cee5cea745f9e7d527cc390b82f3af4f58dd301fb945f7313ae4fef2c9bdec486bd1fd49f74754eb53fb65fa75e9784ce0a8ed9cdd1e9b8edfba45b7cb1b7f1003d6251d823f67639bc5ca7493d93a994dbecbb665b03eede89373cbbd4f968bf4d58d3ffa52ad659f5a7be78feebb743c4fa552a95428e7a7fde1def98e773e62b882b9be3b36567d2f08b47556fdfa6c1e872d25420372bebfb1aa7f572738c1b30f8cc46fdd58953d5ffa841229fdbaa3dbfed89ee30c19fdab41a55fdf26bcce6f3be67d9cc39632121a3bff9575ce82fcb577acf2623a7774021afba380b649b80418d3d331018dffc9dc0768589fd66998db2818238b08b0bb27aa7c017e6e91a332c60f18a062854399dca97770a043d184ef381919e2892f10958386361ef2e89ded3499e20c79aaf74e1bc2aa6fefac87d5a2527d57a1a00da352fdd0cc43774f5011d23b9bfca177360c03bdb369467a6733f9f4ceb65b20d03bfccf757a675754c2fc731fcdf3504fe7dfa251f3db6e31fdb65ffe090d610f7d9d331f9a080531e07b7bb40fc55f9f0f63cabfa3778278cc33d654687d283e74ce881409aae1d9970631e0797bb473dde5d171ca0c02a932dce5a6a39b73e953d2ad041f5d831ccc80c8cb1ff390f995397b49cbaa56ba68fbdc2cab5bea33bfe875755fde1e3320ede3324aaa5beababc3320d794d472a6d1311aeb0631cc37320ffbd1f94bef601e5b62bb268dc3b89cc73ecc6fb622eb5581ccaef2af5d8c29fe0637c4d8f234fcaec4c8e2a7c3a098e7860bd36df07365307d6a677fccc33e57fed2a796eefcdade67bec93ad42fdb7779663cdbdd895ef2e91cc6f1cc542132358c1666e4d17779647c33872e437773465408ac9bfcccb76eda674eaa9b8c75337d46f2e89392c6a095aa929acf7c535223ff0a02c4fe3eab40ae6653c26f8fcc43e697774624bb4899cb0ac40edf653ec0e71a1987eebf3cbb7c9aa9a06ddb061596e42b9959713cdcc5e5bca7c4f678de6534f2ab4b77f9e724ca61b6c7735e4d7f59ddb49575f5cf790d6df371188d3ea910ffc661bea5fc73a6b23ffadf6ef9f7886aea2f67cade966f76d520f796b53bdc6a49c0731e52becde45d256bad0933efb9319f167640ef689199197a94cc31b27cd299ebf6b448253e18faaed44ccecc95f94993e6a69e5d5d4d2fdfcbd784c38666a6ebf44737ede593f2c976f9a47c5c7e1bea7e32fe68f77b5ba44c059a34c4cee134d41c75eba7e5a3a96e52e2a89ba6ddd4cd64b2a99bd3d4edf46ea66e3a3adf5da58ff6ad5f4b67874d68bcc6c64b374ec2e199c9311aea36e4797b7bf7d3d2ada59f9667bfae198f1528cebc91d350371d53dd4e38eae637753395dca6c669e26ba7790ed475e6395b71357593a5ba69a4ba99bad2d4517d33cf0d296394cf2f87b4659e66f2d349c7013a3d3e7c3c97be29f1f1ecb2bbc7e5388fbec94db37c336dbe9d3ef31ec7d3449352d34c6f3bfd2b7956371d9263753b653eaa9b636ed5cd34f2597b62edd1d1f1e143faf02135ad89e3612b3aa5bae99c48753b7956373761753369a31a86ad6c18e9e3a78f8fd381621d4d672b9a34696e8abef96f6c65632b3d3e5eeafcc656a6f4d1d3f2979452b289732431c563af797b14617cf91d7e576164f16098010c343e8c267efec8f98b97773e77f40e1699197ae491cfc9cdde306efd168fd89f6f43fdad89a102b55bd07a949bc7390cfadca6d25773f7dbabdb6bba699f222aea913fe6613be29f8f86be370ef3b1e81fdddcf797debfe98f79689f75fbf418ccf4510d72bff1972ad0748b26320f238f43dd43fd353ed0d4addff29aba357ff9e8b4ba69ef5c8ef3572da0e996bf8e3edda75fac3823218e47c66768fc6a7f751bd2feda9f477fccc3f3f7394863d086fadf36d4fce5d925cdb2209abf0af4dc724ca39171609a199779ed32330bd20e14351ff5469fa9b1ca5cb59f6b570684a3f839e97e4f0aff51f8ed8fbedfcc07f83d1a32df6afa188776e9903e670abd4439320f7087096e4a6a362535cff0bd57d7f190dce4784855c7e538c72ed367755dce34bd6b7f7bdab47f4a6a1ee8f9c82ddf6ade7a3eaa9171c07c938f551ccbd9a1eb381e2157ddb4df74dee5fca6131d2aa9f991929a9f0e5d6641460e34ebe556e603f62317e278a63b5fc7337d937bda4c3feba6a4e6a343df34e7917918d5edca80f09797f4c1f816dd7f741bc1bf266d25f8f7de1a323fd6c838c0ba5e3a3572335a4c2625984c68204147070926937b48904930c10b2f5d7461094b28c982185330c318276260c602bc08930426d4fcaeba8842174f78810e6010850b80d08215fce00a349ef4fb831ab4f1ad7aa9fa59ea28507ee83d8ff1f1cdc3a35d67a7d39fba1dfb76a662515bcdb78ed7aadf0c8893aaef25404101c1055984d1c6155adc40015ad4e0baaeeb925a483132c19537240e6050434a29e5d546c4810d354657ba28211b43c60038803292819c0480820a29a594338a01ae2c01250b31daefaa8b217cfc5d75a1c5868bfced81795bde5bcbb22ccbb2acded2567a0a1846e30bde388a92cca28b2f761d1597d3cea2b1c5acc484c912068c972e5cb6acb260b152450a2a53da9dcae5b4f328f15662a010e016b845cc0fc488e99daddd683786f03a72d1d1b9818e8ec96403936986a1e5bc01be26019f81950dd4f882c516cc506386a1f1f05b95256a80c4141e340105a8f5a501830b1f74c10518627031c6f5bbe2c28c37050b6e80010c1d9c608b97367e6831042d8c708d94088018b8d08331965046181820e08a19579420a594526ae18399440e13b4a0820ab8b0c22203c25db7d0f1780e0b6ba1b1ff9c0e0382c7bbc88516dd750664ab121ebf7efae556fdd6e39d3b8efe62e5b13ddc8b8ebee55e475af7058a75421835c200e10b32b6c0821e2e9088c1133b68b1860c9e484dd9e282336001f38410a0e0c1228519f40e5b48a9028a1f9680c50a3145a0220850ec60e142153fa2290a01643063ac9bc43e728cd19fe531c6d7a7e7161431fa3a1eec892004214a1788a082152aeef0316ae1c6c7f7fc5561bd6741683dd3afd31c134f0b32a2165b44b94245f6bbc24116defdae7000268a1bb4f170f5ce7779a2e5d2d74dcbe3542ec7f9baa42dc6e538b768a40d060b182f56bc74a9d2858b145cb650d9b29ab2ca025559b088c162258c952a60aa48e1450a2a5da84ce132c5a9b6bc73a712b31213e66579e71dc6e538e751e2617139ce1b8ccb71eedabb6e508c77ec308b6be68659b606d3eebadb190760deb57379e70da677b6fed25f7ac74197720d816084223c1c7471ee41f8d6a173d0e7093476e89be9b13ef53ab80e21e4ba396f2b57e8e85c7145bfb1a3dfd8d1f00a1dcde4bee3c463c749be2c6378e72f34eb77658336380c2dfeae6cf0853ff98eec777503d56fae93c416d24fbec32f036801454a29a59452ca12962398b08831f304992f5b483ff90ebfb4c0a2b8e00a329c81055a28830c1ef8c08205162f26130648838d1aec20cb195e7871002c5060a1425e170f2dfc35b3451be38a22650512bcb004199a30832a50a00318b638c3755dd705957042832ad0200748ec600b550e60b45001c4610d35a49452c627d4a00214580883952478b942e78c2d9280c39536d4d80b871fa801a3e83cb1c50e9820e30a5c1003072daa5c5143468c6945e706b76179b402b8ef38f1d871e22177f4690be927dfe1ce51d60a42c801174e60c217aed88101b6d0e20a1477494fd237dfd127b75c73c92b2040125d7610650926d608d3630b295ce0a61aad4f7ef21d352bf8cd75220b7c00059546154ea842c5953660c0430b2958d8fcae6ca0e2827fa0451b3fb8628679c562d7b15955c98e97127bcb5a59e1f296bf9682b2bcc6aa9b921d6f596c45b3ac2afbe4851526fc43b19527441d4ca1bd40dbe4b37bbb0f3a2268cd6f340a5aca19c2b00536a4c08425bc889154ab16c216d890021338671d4223048173362683c3e09cf5864d68fcfc4e6860bce73142e87108fe7b713bfd69ea6451c052845e653161712bbfde5534294cedee1c3cc518638cd1a5f4a062e5b2053ab7048706841042089fc36650a5cd18e30b2c56784a0f565784f280a277ce56a8fcfefe7c0fbe07a1c718637ccee58055f2bf57495fd0d8f79f3be7baf1bb8a6dc981bf8b0c8516ddc5297e9ddd518ea24f4b658a03e364e0aa6c39c5683d6759966559964be94159755dce4aa7412ff1b1131ad0bafc6deb13f7588cc079478912654a0fca39147706156acac932834a859a624239875212a352a9505324ca799428506a082351cea130c08b09e53c0a941db352a9a49c50cea5f4a0588a5fa6e285e709b4fd5d5dd1c633153cc5f6d8cd7f476234f6bdde94df8c028c6295cb5977571973776c90cbf7aeae48e379ca6742f81b2813c2bf717d029f5deb53d73015ad4b83d91fd09d0f6c82e70a04ab129ef2d0d9f9090dd6253ce53b4c0ed218b4253a4cef6cf00c7886c3fad448f8fd3334c8a58d30b76e4636ff08fde3ce29da56e991ee5c4263df1e27d06a7ec3daa594d8c7e8af79b4ba0dbd8fbe91ca1468d1b74faf2a40e3afd2f7c76a1d84c975e3298f84d6ce2a563d3bab8c10f3ec463409f3ec4d8600f3ec4318f1f2ec4630d0e5d931f0039767ff41c8966717e2b3ab67f7e9e979f61e1d9d67d7399d9efde46e323dbb49d3e4269f95d84d894362ee8eadbdf0b8cb696d794c2ea779b45d1ef990d036c9e5db790aabb67c3bab8c587dbb114db27c7b9321b07cfb1046ac7cbb110c54f9760cfc20c5b7ff2084cab70bf199f2ed3e3dadfaf61e1d9d53986f3f39986f7793976f37698e478975391b77f9764d3a1e25988bcb69972ea7bd7db96edd846fdfeeb23ff6db670ed2173420769ef23bc5d18db7fcc6dda5bbb4173786673767c3f1ecbc3cdae6b0afd3ece23c3bf7200b303810e3834b5e57ade91366821fbc9801862a9cf822085114600b31fed2028cbf2ed72e6aba7cd3bea64fecd7c82d5fc733aa9acb61bfeac62f7d936ffd56f3d712d7e5eb784a610421092fb4408c226c415d04f86ba58595bfb6c0f257dd94e8bc8585557b60f3bbb2928527fdae6c6083f7aea0a3c3848e4eef38866e9346a854aa29bf19a152a996782c2edf0c8b298eba6a910975455adecf3725a6b75cd23d81067dbfa3fc753c1265d127fc5c5f5d62fa58819e2f313d90732c0bf2aa6675df40733ca91c7431032c4e10f3852f6481da64ce6f9aea37d3cc425ba9f3eba71d0cc56472ce4d71ceb96e7fd0dbbde632449e02d9f76b7a879ff7739f8614078b298eb27cc8fd106bcc9831637857b1b06a910eea4aac38ef5f7dcf74bf8853b0b90cccf350eb7236ec77f3f1fbe05362fae8cfdb371ebf7eaa411a2ff3bbb2a20d468174761d9bac96b35fb4a64f5450db3b5e1ac10c2a66208334d420830a28e9b2774e2f5f7a0dda785937ab2ad1d14ca0ed6fdaf78e6427b44d7b7676cdf14814bbc9f1b04aa5524d41b13bdab4a673d8a70c34f9bbb2e28b1553f84d63ab8853ec1c0ce6eed81c976f5fe7fc2b049f907ba2b1909342d08378cc131a0ab2be47f458b7201ef34e52ffc4bd50108b79f621f9d1f79d731b29a44392d486d6e537fff68dc57c3b290b1abbf3367a87a77c3b87611ef89bcff8fdcda5f6cdf2392eae0a2bd080bf2b2ac4b89cf5256d0eef512234a0e737fcc6de9e8ab0e89f6fd7aef1b16201dda77d29f4481fb5b6a28fd2aa5c8441c1aa5a235079be5defdcc73d7ac34fde4c0337bc2be254bb466306f137145a82600ebda913fef6ce84ec5f1508d2ad1f3a5321de1ed087e407ed989f01737405d1defbf4bcbba06deb05d66d57cf5a95a933d5085985389e597f703ca33a1a8d46a3d16874551abad2b439f0881229c362472cf59aa49aef417faf6e4390ad40085d4a0f0ad6ed1d36ed8736fee62e50c9b4122933695a49125d090222d3322755a22bb0060141f29143cf8028f9e5241f55222efd200403465ccef32d475c090aa2e42487de8303bde4a47ac41558838220f9e5d04b550707d6204aae3989a455a214aa549b0dcd8768f2de1a1a16191830607ae08732be1910990c4c907e587d86082386550f66882646a8a416217cec484058038bcbb75d6533a38b9a9dc18a0344ab5057ddcb533fb191fbb49f747aa4e6656e81b5991a196d6666666666666666464646464646464646460669d5439714fa94a123d72811063497f13933199ba944323fccf855897ef0294389aec89a4ac4a8cb2f97a157a46f06848c8f2a918f0351e3572512e2ad86267d5b2feeebc57b0dad0465faba9c0705874b97f3a0dcb8e6721e141b37b99ce79b74ccb7f5b22412c9c7a124d0907b2c2e67314fa238b41b69b3d5b4394e862e4aebee1aba281a5671918b242a963fe9efbd189548a14cab440aa56dce73499548a12caa440ab59bf3886401df73dd2a5042092594b84aefbd1785e4251aa5e4328a941e54142926943b80e592468912458a86dacd41db0358ef51d12e4922512824376d0ef48b4229b9a450463ea55fae5128da6e0eb464a8db1d2cd7a8b539585ea2d29aa34bbef71c1256dc31c6285dbace4acd84611886611856578b1016bd146c6885b93be67501c92220a9fb11f5934ecf83aefb39935242772521670d64c9e5188784b69dfe2d971f3060648893ce694757308428f8e29b544a0fea4a0fa9b7265d9494524a29a5498e46a3d168341a69230acc7a79ea39b32a0e1014c8ea6e0e96fa377d44b5cdb1fca226f85e11bfeb8931a8bc4f987fee80e661d4aec6a8f20f8d7f3edbbd1b9b1a9a1b6a53535353535353535383c369bce6f21ab791711bbfa1519448a166fcc6276334140a8de3f01a0aa5c62fb7a1506c5cc66f28941b9fc162ca9520067cc935f7e98be260321447ba8c4f9fa138249f719377d6037f5010336eaa475c21f94ceda94141c8f8ac475c912e53650d0ae2f2115683b81c47254aa1aeea6a68a52a64fd907be93c8c7a2ea4cb0719f1b26271055103eaaa239f1ac94b3ebd8e87a6d2d0d0d0d0d0d0d0d4d49a9a9a9a9a9a9a1a9b6a6363636363636373536f6e6e6e6e6e6e6e4aa40c9b23bf645fa997556995f4c5e1f2c6a58dcb1a9734343434eed3384c2693c96432b9941e94c96f688e1c3972e4c891c3a5f4a072b88d6cac442fbfa125b7a13a5cc5e53c9fa15725aa711c4e74058891d754221b1f39d18dd7d45225b2f19a9b4a4474f915206adca612e1788de390c2a892df78d18cdbb8cb806874690d0ebdf14dfbd28dd7b84d8ddb788ddbf8a6f3cfbb0a1affd428537139cf4d3487cf0f9ae3f082c3652ad1e538aa111cae552256b10a476df2dce4364e5494c36f9ca848f3192f92f152c9b75d71b9f16dbde4d830322acd176553436bbcacbcbc59578e070aa36a5c4ae93ece2423a90d9da1363636363636363637d4c6c6c6c6c6c6c646862e2a075d944619b599972aecc58b892e8aab389e9a7a737373737373738303070e1c3870e070293d281cf5f98d4d0d0d4d5571114c71d193345e601979c1a9c8a8f2bbe20196eff95d8d21e66763ee4108671cd238c4304c86d6d0194a4343434343434343434379e5729ecb502eeb725c06e4073151465dd076b55ae1e8f0753c00f056391e2935cd64723f9d74747a7afa4baf54599665599665534cde2bc7f3bcb73497eed25e1ccfa20050b71e1d2b9cd5ef8a862e6a862e4a862e0a253d47dd4e345495a96e3d32323232323232fe5cceccccccccccccb8941ecde438ea76baa99b4ecf3fb7a18baaa134333214730babdb111ad53607c39c44777330cfb018a35f5446a7fab521258bae1417bdd4833665341693269b0d6d7fd07853c1828586f63715c7b32829aab4957f541c0f53612a4c85a940592a8e87b9b81c299e3795a6e2788600d354c0341530ff9cca3f9f30da2a8c91edf1c0b89cd16420162c9c85578c85b1389e45cdd44dca542cb062f1934e8fdcc6522453d0c98cc9a84f977f5ee2b22e67db2d7fc6dc1ddc5baaa171e92668412b4a5e63a2d1a4cb79cd863442661a669a62dc41d1de0f9a69d62dcb85ab381e2935cd645a77fa57e5b7d0d0d0d0d0d0d0d070a9a9a9a9a9a9a9a9e962636363636363e3527a5036fe9cbddcdcdcdcdcdcdcb8941ed48d3f774968ecc5f1944aa552a9542ac9f88c3f672e8ea7542a954aa552693a76f9c89ff316eee2789edfd0b5a9a11a8d056764b49293324cfa943e927e8579459d82afe405aea2798cae2d0fc9a39b9627f3c855bc444934a353a33d4e879edc880ded39ab1c8f949af6dc88e3793e84e379dec4f13c37c2f13ca78b2ad14591e8a2dcf12c4abe8c2e6ab32ccbb22ccbfcb9249148241289e4cf35c7532a954aa552c9a5f4a04afedce478344dd3344dd39e97a8dc1ce8249a518c6a9b2397650a76b63ae208a22b415c5eaa4794fcf223ae64bea8208e082215c411411c7185c93d5dba746d792e976e5a9e914baec256a41c558d4e1d6dfaa812697e55a2e95af57139cf89ae0071f9a812115d0162e4b3125d755dce239af191131115c93851d1741a2f8a22a5074572cc33976242955ca3a93a23df345fd4a86a9b036746a3d168341a8d6645693275515ad5344dd3344daba6cd81d22d97752b2a51b73b4827516b73903848c7fae56e8e94d1ad1821dc2e7229f8482c98edd8cabb784a6eb9b63c985b6e5a9ee9d6b4285be12a50d02cdfb8ca5bf1ec16d1c889a494524ae9527a50d2976214c3300cc33097d283c27cfa6644b278f68b967c7479a91295fc1a516051a58c0231f2ab12693ef289d1cb4b94e84ae65780c0fcaa448c2ad12b996f0644c96725326dcef352752a37e779468128395689b4cd7996472fd539e79c73ba941ed4ac51a05863c68c415d111a7229265414298e9a8e59a6cdb19c44b5c5c1f28ceef6d866de728cd2ec0e964fba9bc386e32d1fd1ebbaaeebba5c4a0feaaa72732c9774083ef458b94a9fd8d94aefc05ab9a8535d0453ef616bcc651ef6b7f7bb3d7b7a877f7d13b0e3b62c1a3a1cd81f4241f639b03d98eaf8f424e075fcf36dc7efa6e317fbc7f33ae7f986f12caa7d5dd66cef1f67013a643556bee365a9e397977721b446be3e2d8afd7458673e7deadde9a05f3e1a41081f36a217bc206645ccb2304b62d6855923cc9a98856156865924cc2a619656d22e27fd251b3a1ea25d187da0fd7a63ac8694977559a3d1c3588d1a1e98d6276759ceda4cd6e328681bf6ce590a9a73ae38245ff67db27746ee1c733e23c66a7477172ea79e37f54eb76f3c80f8f4a987907e2b7ae6c526f6f36126c6dcdf61bef178a7f3d32d9f2e23559f3eb167d507d3f2ed73cbb78fcef8f68bcbb75b687cbba45dbe71a22fca89a0afcbb17cca0cc8b43208a4de3261938e5c6e76b94f8f28977e3e4c52d24f88499afd8c98a4f3a785493afa293149af9f1726a9fc39c224b57e4e4cd2f813c324853f334cd2f7938449ea7e96b039ba48d28af0b9e62d95483843483f72d28fea56f457054274c45a150743bdd53577b05cd68a56b41e7fd9d1046debe961ff3d2d97a7e58bd7f95d8111e57730850ea87cc9499f707b4e3a2793163322a3759805b1fc45e641cbcb80accb8074c51cd04563c78033c9057332e9b8ebd9b6cb7659ded9554f8f8ecee9e472dd71538c2d8e2f08f3adc6290abe0453117a80a0805fb76eddba75dbe3db77589e9e7dfbf6ede9a4a31361e4ef893e230d12379bcde663843d504040cf154e5470279890b0666c0fa0d093c329c7a989860b0a3d50d830b1071500bfd9b76fd9afdbecaef3e742f607f4e86bda1fcbae2dcb5521fe5885784ddba36930d11c6edf64bed3d0b61dcf9e86c6dbec48ce7d7acd787621fba39fdd5121db43a78ca7e5699973b3e84d634f768d39baeb781de9adfb5b89755b4da3d5d0bbdba38b903ec6c1b9c998e59c4387b49b8751d83ae85c84927b1de935dd3e71f53e6dacc17455d084f424a077ae9de8ed0e10f31dc6ddd623a5a6994ca7938ece351a8da04f47371f1b04feb94527a44184f83b97be19841e641fd6d4fbf4b494f8f8e98efab8518d6fd237cd37936ffe279dab47d64d4aab6e9a16eb6632f973cf9f9e7b369db7420e6643db4c3cabc377343306531f7d5e1547c8fee541f62f4ffda35bcd3f777453f2eea2a4306835ff9ca4a9775449cda39b5cdf3468723cbbafbaeaac704233b6f279c43ea2db394fd0de8947ef486fef89de2ea47770a2ef3b9735a68beb103f10cb712ccb375e14cbdf2a7fbdc8ee3135fc85bf7c47c15ff84bdcc2dcfd0137872de7f7447f9d865f99edc27a473a77b965055917dd8ade924d5907aa2c6e64f9f205f85d89d1e5e790c83858beed227d8cc3738b6efcd6631c9ec77dec397ad6437fbbf7cefed8cce1b43f2dede81ae1e366631d5d7df469e9d30bb2fef13a127cddd553922d2d6c6ad86f74501c9a83d24023f3505365b41229bba9a9795a7c5c0db5b1795a7802a07d9bbe7bbe03401b005407c5a139280d745d4ec65b5cce7399d54d6a3775d34c367533d554e7e57579683c2eef8cb7e569795a6a9c9937d3330dde611c4f00aa1097f31c00d037a9a36a387533e5a834d40e43ea3034b8c9777972380edfe5c1d1e134becb030097f15d9e0078297a002800a80e8a43777372d0dd1c1ae86ecec86f5c88a9e2a810ab9b465367ea6692a9da6e29559bba9d7adec6a393eaa69355253e9e9ddfd45cfe9e2f1fec35de1911aeb1a9db75d5d4ed696135d4a07155462a6932335b1c4f67b97cd34c9b6fb9d9e26ad0594623bfc932729b2c23afc9327299a5b374967f4e43bb55d367eaa6335da66ea7e95add7c7aa96e2652abb2567de97657382fbf3614c5944d9b5230e7620b86962fdc78ff5d7921869f33624cdb1b6643dc9352019c1da884a997ca838998e41c5388466806092001e31500304020120ac7a399aa29b6031400108bac4a5242930883610c6428886118830c2186000200200000431452947100b27ab9e26d73347dbad5139d23a40f2be65b018d9ab7d6909f0835d02149ac7489d47067d9b10f7d3e788c623a3e6c03c617fc5b06311378e846a0614831d1f5e619c2d5e18a1dfb1daade1fd3f9e7929cee5c548c1c01b122ba03c038d9f171a65523fdd4498a76cf79753829a13bd7930fdc4e24d0182d660799409b5cbd6438f37c978cdcc958ad8c3952da3d7d51302fb5185acbeca73dfbe3f33bce587cc27130986da9e57da8f85048ade22aa17b141373149712a1a9231a728555b8643deac6c862df7196fc906b11833a8a3fdfd496010a3a6be696845e92b8f7e5859c60900bb6e924376db291bc9051d77640a938576d8946bf319bd30c6851b9b947a623531c32964eeb102d6889d78e5598758fe7400f60608511760a40796d0fb6a21edc15a6890a3fb901d3f189ce40a7b096e3dbd65abd85f5f021b1e437124eebd237e09b35887156c501966af77cfcddce6780d64d3fe434520cd178221fc8dff3cc61dda21bd682f7c8ba16a9164e240b47cc30afd2c04fee90cf38186b2f7f9a4787b3ba4a29a7f29e22bc826ee7027b4a108bd6bafe065d129b7b87710dff71323d6c13b81ecdd796cdf3174e042c833dcd1ed93b087bad32e464d46ba491cd75136366a45e2b7de42f69ebebff93096f3e11626edc93966a31313cddc6a6d3b6f8f1b9fc43e6793cc206d8197b5671bc3870d4ed61ff9972f014a11bb10dece7c8a877e500a62e88d8b77421c23e44f41dac1a5f6907c3658bc7301d7c9be9f0c2a6b3060e35d228eb6787b2a30d5634156e313217239c5962dd2871e238d5c93388b3d5b7d9c9dcf9edc5a2b33d3504527753a4529314656f6b2e3ded89e586c594fde6cd558d8361570b49e036675df69071341a1cfaa44229f38f26a38e355f9fec2e6aee1abc6841c5eb5fa66ab7caeef1f704a6782aacbfa2058a89676eb3fa88b4acd7f373a2f70e5788a5144a0ae40a5a6b2a439f7d9f41623fac31a6bbeafb52eb50e1ace43372ea396d13ad450d995be24c4c47dca7ffb076c78a6cecd50b335d466cbf7b6c89f73b590d50c3338feae19adf61c17d46bdcdbd8f29161a5b568f96d7ec316bfa65d377e3c032c13a4c4968655ef11bf2cce59a54021df135ebb2cc055ce971cb12179001e0b49896f32ce25ae1ac4bbefd457d80a7b5fbec3d3c4f4f1fca0f9e48e1400f2824add36c08db3e2e231033016acb5808f10aeae0171fa5239a2f6ccc76d388303d743791a673f40b6574b205c31543c9306edfcd577cf998e3b57987b82d187f88d15addaf59abaa30a089c78621373a53a47d345268e6dcf56ad607e2d15f817f981afa6ef18874b8d68f3c9b1e2a19a7a14c982727164cef6eb99fd31dcb24f131af4b34837ca919b83b5a1756a2eb5faf6db72fadb05633526e6448ffb231883f048e9179d73a321eb1146b81cd2d32850c3a72bb55148b736b1c895e83d5b619c459d850571e3616ed7570a517a27bb1919c51e975dc12c6df9496d4e19dfbc86913caa921ff55a53537d6aad4687303e883ec25d75027d68c718271357c684781973990118dd9db107c6cfcf2f748dd3721797e726bee25ba67e95096b14aa9c762164ded29e1d013a542a2cb591086936a4ba1faca6962185d299b3056eed1e032f895f497a93417dc058d5981e3c6e270138cc3386a5ddac329d14b1afb63da439611b18438c7de88133300f72abf3434a7bc586beb7ca61f39aa9d3d8e25beb89c90bde8977f4994a20d96fac794d4322f110a1be74a4c2414d31cd74d18919b596984a8de0a50818eb42d420724344f696e6fc82145c5a500a3bcf4ca438a3333bef111c20465fc9753c742789e45d1ef3d1f1f42367f5f87b2641214b5a340ea77c6df9a93e14f8e1a0f363427ffb668807eb926ea363930fe159bd7bf6f082d657ca442ec0307527a35d8d9de50435f0a21dcce6bfbc734732f89b0b03cff9705621a00252397b131e8780cf009f9979633c37b110228af5fa2e3ef09a16aa49ea9554eb79583eafd0e8178a62af0ec741a82302c86d09313123a05752d10d087508287336bd913d40f20cf2eebc45b2660260670601e1fb919bad864adc034755718b1a4f51648bb56e06963ae60e7979b348d43ae666e81038364c5b402bce084d393b280c32d22769161c3f238a8cd11aca70ff392df410b2fb130894530dbcd752d68b5a0246d54bae94b61d2e53ab10072a667f19c6c88b8062b964515e135aac8efea50fa7ae6c485902a6dee54fbcccff1234b0367718ed66d26771da6e62a2d53436a75c402a97a270e9c87ff83eb678c1dfb0405f149a52f0a15683b468f06f3efd924a415d596175a2c5d79d494b9f623d56498aac89fc0bafc19d41fd6b6fed20504919a64efb89ecff8574a2c37084cfbbe44dee20331f428c16e56a0112b881221e4a315b8d8b4fd4aec62e7301753af5ddbdc14bd999556e3468e6ebb9d092691cb307ed2457f9c855d4b3c929e2ccf76e3fe46aa14ef4c4f8f0f137988a2722a2a0735f3c04ced0e284f385500e522828651110e8c172b4e69ed5d4e66ef3290d4c1d97511f5ddb7dd2144a681bad65d68e785d9da1abb026cb086e1ae48fd972744b8c094b6cbcbcbee851773ccee93c4b66cf57d6828cc80fe446a768b214e1de44272205d51a77ee23aa7c556981d3842e100040044e3bae7bc7ca12f3ee0fd52c77d37f0b49ad534ff1649dfad1292d88c979e6fdb75c5a1b9e6b8e74f491f6709d4f289aeae4332fc2df7a3b9f91d0a7e56f377b432590c713eed8bedb8cf183bed02d9112d85ed4b485ed497de647ac49cd3747382332f690f833d289f621942d2973d430810718aa59fdb6f2d86049fc6ded73bb4c017c73ba1f1712aad01376c8e41efd6ecfcc20770fd37acd4214b2f43baaf45b62dd3e12409da9528f49a852d27b029e3e7210cf5d9f9af5de3b4d90cbac32faa7c922bc9a13ae6ea07ac3383c696a55dabcef6009949a9d8fa4fb7e0410eb764e68ef2e7862ac6cbc4c218d02fc8882779b5df8ffda25e2124f8c9260b5ad7413e1c4b803dffbb051fe8d36d5733150e5db372dc336b328b59b61000583f97158f278ada6445954d0ec06639a3bf8a6c271bc4e13aabcb614962a1e25f08c37fc5b0b9a224c4f36c9662233ab6a8ccf5f1bf4562ce48e4facecfecdfe3b775f04ba02468385c27299156a24ce686077d1172e49a8f028ea8b19525d6ad160fc3bcca9fc7becef8968cda9e30b2248a55b77c30ef357faae59cd14aee089dcd762abc3945e080f95ad6b27011acde1675060680e67fc070be9fd8b04d276888f69bd131b823e255cf87beb4da02d2c5b51569c1f3fff8f14924ab554f4d7a242d8df7e96c324e08b5d6b9c760b78634620a1c618133fe23bf1440925a0107f5328e32cfe7097883c017e31220f63eb3c8fdedc1c7276e5a09601babf67fd9e2caef51304b720eb4d28e2da63334465ad01ef5ccaa48dc1816243aa9af92d593c576a186e94ae8fc0ba225696b4c5358775a39b274011a219405b5f24a8472d0c1c83a85f5a0fc5ae2798c10a3e62567d5f47527b03f856ff4b7c459354e434cf107b4c89cec6c39d35472fdeac96e5ddd1a3a57cdbdd94aac36b32a224d43998a2a1e3004e0cd403476370466cd7c3c000a4a9076cf756da0cbcbb3f1e892df87b34df61a6dcd6a1a05a0f13386816a06020e9b54224d3c7393d59dad569303e5146cc5c5df48459e18d67b7fbcf8264931d3236358a55bbb83f5de00ce54b2e6a2acc162fb0216248d7127582fca44d0466578e22046bdd0718bef9277e2749d440f8be24b8581fb2f7aae77beaf300663bc569d0734eb399f92143f69d651dcb2e0aa051ac6b100ed2f3e9488d127f89f0985920328e1d59849a481e2be7f6c5fcc4f2b53336ffa6ec043a8cae648e0d05914430a96184a8f64b7800bba2a04cf96c34d60281ba9bed1e47756b70dc149cc9e0d239195317ad6d72a03ac9db78e95ad591299a44a6fdd9f7a15d47b73ed05da6d3324ae52388e9c7fb051687c837f6395b7d238af4a1f2fb6d074ae1c38a7d692cf3712603d807c1c9fd419142a81990e8747cee58a8a748e06dd4f0c5b7841fe115a221d56077250b49afcea62be148226362ae82a95a066b32d90c77ee4a0ba9daded85eb452ec79fe5ecb1d65d2577c819de7e30344e8c02efb4a063cb1f95a1afa5502493ecdec8b638aca96db6a6be999b301b7e30504d10549e8d15cf26b9b951ce372ec365fff6bb5a2dcd607e6857c55cb9c6b301b28f9777d07975c6d98c210c8bba3cc697d7ef4209fbbd1a6bfc904f84a233eb02e82292bd0dbc78604e15de17e4a6300c34c5596ae58b61aa4cbf1009ac7b177139ba134f6f7533a55e6cba75e62d1081058bf2ceff6619f894b04a740f782ee937c67a97630898faf5538544d835854aca4acb0480fd3c555ea95cb3995cb23c6977204f52be4a0ad5e437dedc5471ce3bd06ec319944ccb241531be2fe805651eeb2d8df775aa8e87c59156b396c8ff1a7454b6064219f07914a0fce1ef37cffffef2930f7fbdfe9fd32d96ead688ea8fe32c8ecc2b342a8bd30b16e13cbb19ee6e3a9629214a324419e8ae132d7fae5ec9b45bff8736a2b7a1233e60963dbad4988d37e80f4531fb266c0083690e59b304381f2d2b0126f4d7447ee2f608c23d85ed0ac009c7f6a26b5daa7d49c6944f3a526d2849e3dd6c231d97338e9c2416ec28b29c4277a1122b6dc43c07eddfaf7901a9f2415f710419c01c8922e34305bfb2966abd766ee53202477e39ce00cb48b027e88084ea6a95087d1be49460155aa237910e5f212cec45f79b2f91734e390e42382a58d058a674233501f62cc93e3d495bc88b259c880254acb3d7d870f9996accfc9cbf691c057a87308eba9d8bfb05d3d663699f5e9f2f1020c8aa74b8983cc50c1eff3cbfa6a8dcb507a11efd6d03416a47000f303728f706d48b2066b5a3b71c7c39f0246c1687da95f7c1dd8b40ad58e2c3f39b5f2553401bfba65eefcb8e08d3c2866b85bf9fe7f13800a7a1a10c4038949d1758df86553e3c5044342ceab032bcfdac28918479f9322f0c29dc5afe28775ef0a5fb8918cab03bb96ea21f2da854e8a282321f39df53c6165adc6dfcb3b6e57ab3dff6ce44826b523eb22f4fefce9ed4f844d7bc8a4f0d2b8a40903de8ccd7704b52159bf9d193e14a63f985ac949176cc1e9758561672b7dd7344cdeba8b9960b36f774307276abbafe1b374d1f20f5004e46fe9466a2a3544d190b838b008c67ac5366e5734795fc4cb00b201ae49081f17579e6c92bcc888b883a82f0846902755c827c3c12f56f71f33305756544494e49ca478e351c9ffaf1f08a3b120848bfbf1b93c1fe5ce9e974c071022fad9347a9cf3ab883951855f5aa9c1eed389631205385444153aa6ecc19db3273ab61a6012f03df66b963a392198767142768ed634572e141ef987cf4be762f1f6baa83e7b21855a9fdc36aa070c39cc5cab02e7bf8b319d3b364349021b08cecc20ec7eda5788c45c64c01d1caa858cd827166f40b7e6c9ea9fa077c1f3ae0b0a8171b70cec286aab3cb42a309faa417977db24e959350f3f81806b6a400590a908047bb6013f59e86f8d60de51d180a2492df09289ec5b33bfce7d85d6db8b595c072d35c148300305cb0a927af4c8a99e83348c594c930b95aa386f757b616e4c70da7e8c9ccd0f4e3148e6881a2c18cdb68214e9d155e0c0c370c85df1001e3a9d8f0d45a3b8183e20a557810671cc3a2328f61c08b38469da0270a9818ee7fce6110c9ea47b603635a133fff5cb91a103f3912d04c01f696c45d064c45252a2cf21bf937781791cddd74e6f5441c7d4a90e4c068c9b5a0a894431168f078442c43941154c2a75b8f4d4bf69a53482201f0592c2e9f4336df04d0fe5458992ec1149d0baebfdb4819a8c317c70fe5b312b00efeca3d163e07097f19c7893c0e4338550be29c8d8b82fb08bcc80dc30bc5b1e96908418c1b1d11f6bf2169046fba4dec7a41a3726589a6a0ed391b5fddd63c6f63abc9fb196c79deaa1b83730dd1b87c38c53e21f3c234825efd57f299bf9d4406b6bcb6305c20353272b03c8247e7fb5f446e210396d13b2876908a57de83f78eec353ad9af202ecce1a69c9b517202a2b076e110d8cdd40e419c5d7d8927293b4ac0c2d894ad526835e283565b050ec6a4e5aa0ead10825cb5c622148b328b4a9ec41d379257922193183b6218e0a4f0522a5d971a984b8dfd632f133284871009846c8f0eb57910e80ec016dd46aa33266b40d58c616e6a6ba6f11cbeddaea0f4eecb69e49dd29be5bf744227dc7f64c04e127a8ae0273d048d5e4cb6fecd02d8f489df87e92dd35a318563863346856c44a54aeb8848a9a2db897454adb7157d0952e84cf5878b5391a0e94a136ebc65f9580693e02a9e5c2eab309bbc45b7570eef298bbe468c209d3ae2fa5f78b86fef289307deeb92cff4a63147403a5fd7b36f092c2ef4ed6ad75b68c9f3fab1f43b99d53e6e1d028b2e5dcf7445b9b5b65dda37704fe18ceec3959ebc6002108c782753450655c8b10ec03581569d0b80827484b330c3794658bc607e708fda0839ee2bf3f165e0e995e3f2f584998c2a64d775dc991a0dc81f8434cc58c68dd54e0ba2336c225cb1b0a3cf3a43893a9fbe1c65da256c837d16d23521e540d1839d3a99754bdba742979230946837be9b0e185b5c34b4a5900354887cca8511d8b8a557319c1c5f5d0c9961d685d2476473be99957ab8990042e26427eaed1397a3f32dece26964793d904c445ecc0c3ac19e9065ae2851ffec7f7fc3b198926f9f1a52faedb3f5a060066510c9534db8d6a0f4e8dd8f8f5a5c03b1d922c8490310892779acd12f1f9d9eb2417743088904675edee03ce23de1cb1cb45911e05fb50ad62f9d9d2f1796d65b178d622d86b8e2d2a2df15b43d47b9bfbe138210aeb3b33a0f4bc0376160ea7ff42e66c94215513193f8f45a7424314fa1b9540c1a7a6d9a5d9e4a31b084efec6e1b474e0d95912de624046f819b71e9bc0fed4a30f7d45868bf2c1cdb2ce8d1ee481f29e898be15ab9e607f0e4deb759063bb093788466ef0082a3fa4b483579327884641fad4466ee90957b568a8780e65b204da773c61d39990b505cc4efbe17ecd7a153c4075097485fc8f4741b64308682a8d6ea4c88c531f99f5bdb2b4d8a88b36068a90ae965136aacf8172115d4b22774653683c1f4299a708465a1ed1c9889c172a4b414e66e9183ae2a5a9430cba588ffeb5ed22597a483352500a1c36ea918d7e75c680a589ad08932e7132bab4dd64e159578b5864118ab47ad1bae60ceb191a2d0ccf6c841337458a69ff5be60e0bb6cb6fe285235ad1330429eaac3495c2a9b37d1fb47dc60024e3e72d734c65ae2a063f2e46f6822d6133ff14b3880fda492ee9c407080afa07cd094c40d7b39bd6df0f94e48b92cc9eee6d16849a077e94c77f886773c43e23242a62022656796e2fbe7553c163e715491c98ded7acb8843c9850541acb1c29c4a0f9d3fc1f1a5a8f00931a7b7e0b54147bb34c78638c231ac276103e968b9f194600a20001b1f8b9f4cecdd9c220e4c8c1a324573a5d72998765df67ef53fc921faaa8dbf41ab8933e8871470d3ce5ca96cfe81e5d6d23f6eb2511d42f77179d03a64cabeef9c38b327089c62b5c6badfb272842198bbf18dce01ca8f606c23a6074051966ca444ba9d03d101f20383858a40d95806a24fb51792fc1cfd0e74711e15d7dba730d1e0b6d310414856e9e733441e6524bc3b66d286918b440534f52dee011d92cd2fb701d12cb1139a1439d47a0194440efbb88d9fa5be50ab068700cf4d4df6a73c1c200b66d6e8453de53bc33ad38f6ce6aec9fbdfc4a8a8697a8112a3d73c82ee6a941e860662150364956d833aae46616fb47c88b48a4e873dd412971b5a7ce11d2a65f76f1c96d6642b4c7453d71c868d1b115064655b4b65ce13829f9591d7f9d2aaacafc7992d3899496722b84a18e4044a75601a91ce619f26bacefe9dc88c6e0c01e2ae953e8da714f1e962f438f1f41b8f3b07ab69cb81838ca1c882ec199a173118bd00506c98dcb08e080be838720356dbadc6dfe6f45e4aa43bd1277d51b0961694b8ecedb532c9e2f3331e41a241df0c1dabf126113930d86d32426dd62ac32ddb453e3ae2bdb8205a02809b754e520ae6ceeb05482080a4df8a9e4ef194b6b56d9614424a689d40aa4954650913e89346118c876f15da187b83382afc8f00a1a004a9b63fd76fc8dcc327481c6ccca301a89738089046363fd2f32ed4e6d4702e53c9ab880037547c2beb8a3fdb325de9a3a825a512b6268eff75bc62322d955d369035ce7b485e6614233e9205d737124a8481c6ba26d35719cd12b162fb9158ad55bc40d4d854eb62b272a93669155cc17905cdaec6712bcd4e971fb5f988b6bad960d27da3a8b40a959fd02f8e866f2174bef042822329fbc9978e4a50f64d4078797af2db53ffa377bd0eb7fafb78b162b50eb9c3dc34f8d62307988cf7355f48e2ef1f3f3bd84b45e65a6eecb72f4acc141178d832a0ed9685491442999a1595ea8f1ea0270158a8679dab651aaac310408a10c0f42030f9af793ccf5ce073dacca11fca05287ffc0ee88832b7a4ccb2224b11817b4eeb5ee97a842220133b4850173927770922483b7d6321a351675301f722830c58a7ee0a84c5f2008e0b3a27b1c9fd1d0f7eb096c03be4d3162cef8b898da64a8eb06d7931860dcc3526dd2cdf21aa7eb2705dc3977900ba2105bff265495c9a6735c39b7ec78ab8bafabd14113e346bf135ca1b02387d3593e383ecca369a39079103b88011316393c0a700a36757b21858cde4192436d018e87a0ba40184374811cc3c68f091ad5f105c6d1fdb94568ce82710447ae727e43b8c7af5bbd9cb6478b373632d8ead5f01e20d7346f2fcbaef631bbc9825d313e8f677bee8e0e67d6f0bd85ce6c3f914190fac7fcae5ad6058111e492a0cdbc2237f80fe79ec514a70aab759dc65d20a37926385c25508aba76cba224ba3693d36fec33a5cbe24d9d5b3ef2bc4c1f53c378022d92b433e4330a11c98746c77cf4c693cbd8d39c162ac127587465fb2768248e5eda15328275c07b25e54a4418daffcbd927466fcb9e9b6f62e5079078027b073c35abd873db9da2b579c324248af25dd008598730c3e0e1bd8e3ffe9dbc99b0ca10ced46c959cf3786aa953bf56b5cb470d08df9344232df89b1cac3d870079cfa34713c0fb1999258d35435283dfe311c16a24976988c688752c0366273f967990bd1e86f6be96686a67fc863e575a988de3d3e063b1809b3aa0428cc8241299fce6d18d3eefab5894bcc4ad7996e6ac64658630c996526758c3e1b1e7a39b496dcb38f5e485084b5f7129a4c91d0ca9c6bfe2bfd75985ba7d65b0f03534a9074bd681cae2d028e3e6799d9839a11609d8bc586ac1a0ab8c22155f05ba584c884c03741c39eaf8add7f8628860b4773fa72be38d23b36a878ad5cd2bafa02017d2550614f7e8e8821b617a6d0e087ae7611eacc3f4d24057b5b74c4f8b73cc844c2567c3c0ba03f2b34b26d223c97b9c6fab48009e4e282aab9b6152d340be9dac64cd501998e0c9841388f8b3a37607a5619fecd394e5ebd8da648f7c26c86c41baad312b36442033321523741d9671909f648f2148d52bb7dbac82a125f6bba79d3b8d2bf0e09bc2d65c9425e99b348d6152e6bf85243396804a1d771b613038e4b2fcdbbbaf6afdb273d34625f2896d64a504b9bd96c0d3929579d72d7a2607358789b63dd92b9cebd96d4bce5624199ecc7021a74de274e30ac87ca2ae553855d63ec4c5aafde54274ac7ec0d2722a2ad656e75879d491c9124b660a8aa947b3092b767ed9883695c51da52c6341ae825ca370c56d964bfd79ad73c669cdf1a05a70b5130b4b58996f02745ba12a5e322e32b8670c73e7366f2bcb670d5eab0e560ec66a5b9ebad87c61278cadb2accf0636a9628f8ddcace56917031e10ffab882d6ef1bbe5a74e4118395f34d9ff868685db51b1e72c2d93c02e61483eb6de54b5ce39bfe8f4bbab7e8e9724e440a4eb244666d6f4a9492a51d09a0efb16f842ca1427138ce9d9f18f52518c2c1632b1287a66fe292d2931bc72152ccd99a3fd30276d8a9d2854d9508c0d768a5803bbb62c6d2ad5ca63307eca3e4735052375bb201ad567dc7d42a284fb9cae5c1b6cbb2db525d30dd7789aef5d8a78894574b10e5a8bdbd5579a90f14931e2bdfeb8fed39cee7f5d7c2ccc2aa457a458d018542c6c9dfb19648b7370ed2d03fcb1829290057a56ce186a038715983dd837a6f63e55ef29bd4dd57b4aafa9d10b6bb1aef7c9442261c45b576570e6b1acfe5a2604becd1a189fc549576d4461357b9a1de3e39408c1fca9a0676cd52e306652666eb45d9c602c40fe9827433be981887fd269bb21c99e5b20b055e161f7846f8d70ec39b92e039787e29eb9883a69e8aac7826a2b65bd8c517f547072351a4b2184b3911699ee3b030dd282ca6e447d96a03894f4af09162f279e2d8c551ea6e51f0ad6ca30c158431d957a0e42aa5a7d684d8052ab55406e718948dac2a872ffc39c26e85f3e5671f2e07ea96b4cdd25b1ed748c4ca7438a1eb5972aeb58cd15c534498f0f18d36a9f9b6960c5834efa5b29eb4167470b365acb4600fd57bcfaf0847312cc134e9988ac0fa2b1bcbd98e96179534952562397d5d784c6c357d018e64b0a8ea6da75b3f8901af634415ca97c66ba0fe923163422c2bc17f7f004be2fe2238129a222b10094860f39b97a65efe942e48e4ffa7838295fc079375da3b12ca5d40d6bdcafaf33b83e620214a69bd9c133f9937b452e7096adc5c49fe57cbccf657e2cb7b2317b3e7e8f8827eea012ed5cdf5f5f344e28e5e533c49b305aa83e929b4b21916ee83ef894fb61864ac189ae44c54131336d0500ac5354f0cf695cc6bd068ab283a5365ccfe0efcbb50b05c6fa12d0fbeb65dde05aa7f1de44092f58186eb88ed3782f5070f063613b73a330b7bb428a1b4fe0db24e873eb0c9b1d835b5807ef3360cf66530e0535031710d3c63e638270bf546b43d3402f9fb148399c027238fbd9a0e2e8ec2a30317f044952c194b9ca66df9d76635d0a51b9390a54fe7fc4ba0d2f1493b7e04192984641dbe5c78116ea5f4afb955b5660492fde6a6b8bf47a6744b784194d480b36d93789bd973a8a715985b2bdb5271865d1cf3c590f90e92b652ae4eb860b18f9e5686881e06fda4278d387e009fe096faca9a4d6db6b32d9e7cc2134fe5d7816513569796eb34c5c4deb402192897680611acf147d65a2b69603b7b67bbcafa7642860d66bcdd184b890fb1da9155644ca3a9ecd2dc64739242ce0ebb5b981b89b45a1fc4b9fde19b144244ed872bc2e35411349c26e5fb556d0eac8e986233fdfb37ff4f1cf34102da8ba954fa79165f7e1047abdab071bb69c4d4101fe0cfa55cb77ab36ad2e551aa0b6a5db399fcf358bc865a2038c50049a3e53882b38325a54d82be9fbeb39f4649e63fa023747ade8e1d43b4c331bce7e6c32551f4d23ce865a9304133634cce410b0020300addbfdc79adc249add8ec0062c95b5aa330e86fbd84184f4885737342b9103b681629561f24c5c1b7e1858f6e1a5a157572764bd1d98155bb47060a82bc5b600d863b36200b91a547ab73ff5fbd8024c2da05895d695ca71fbd6265ac4839f7626d08237db6530b217dbc323c507a222e58cd9d7644e8155d4b378fbed28eb003d43c4f6d9134eab127c582936cb6057beb006f775d4acfa0b867c68443da83eacddcf927450cd3d8d861a7e626b9f42e17e32afe98770046be238bb17a2be10a6d008c8fe21f66612bdb65883ce1eb01818206a659c937fcd162d7b440f426cb57481defeaadb3fb4aa97e14261bea310fe4954576fb26d5b6aa5682f79c958099d40dbab5a1d0ed8ede85d8904ab39ae12ed4447f7497af27a2350bdeb28261675d3ff86e16b1df9132f4ca9b63ae3aad4eb160b350ca48bb9b50ebc6dd12bb82a75271d327871d87038a4a6219638c7d8de77aa28449faeadcead371630e709c8d5b766c3eb06b00eab939f9c0ee8df612ead03445ae01b0a15c2fccc296101d970d22001de52fada75f4d4a1293866c4841d7cf92c0f1513d05c97713d404e6de9bb8ebdd3d66c4dc1a1af4073df282b7ed2460a02fa5ddd06f98bbc5e6fdfa512e6463567ec5a3e833245d50f7494934a56dba4643ac44eaf0412c6a06ab1443e9377b45799e44099ccf78f2fb8527d495315b34cd2de333d6270a5911b1a50e703985c7fb606a0c1931400888b406cc8a5d69bf3f93944dd321c415185c2d9f5fe438eb41b884e371606456b5ebcf7a372d4643a81c304067dbe81bf822638d6544f509f4388a2460faa2d1331065f9425e37ef750b45ca4a817bd0c86c6ae69e9ce8e7d4a25cd728c7327848108af82ba3ab6def8378dd73c7ae43be3de65653faefcca1446302bd82fd2b874fde24e5b02a3fde23e8febd240f6cfddfa6669fc4da1b89dace55d89dbce885f395c4cb6878cf42057b02a2d5c4c56e44c470cf6fc52dd7ff8abd6ed99628e3dc0bcb03dcf466b01c8dba7628ba0c345b54802ba0c361dc288e9bc874c211fef451d44cdd181581b32c236e58abe2f353329ac60c0bee0c94a439295d6862a3c1db8cb41766f5d5c50cf5efa70387c9f58db46b6f97f477787139eecb6e36d6bb1267c7e62af1b5da4c60b35703fb3433b09fa72d6db0082ed17e0a8b7d35f63f3189dc21f8fb3b28296944332dd75e1a163c0d9bcdcd38d1e1c8b2f133d42d7511dac4a5b388edd2000017a9bee13dd60a5c2ed49ec281dbbbb0e39307290700aff536f38b9b7c018ffbd08bd3f7574823fdeea59fa64d70de7c1bd792534beb3e01af1115cd0bdbeab28242d0f3bab8fe9e0abf7eefff9c9da806b85cdd24d6d9fee06a0ebffb6b05004bf4b3aabd2188ef89fcd84428f7fb4559892d367a22c7b8b52167196e329a3d307867dc012c460b6e8efac2f26d31f32810044cebb39084850f28cbe20a4f34ba3830b50a65c366967040fd11cb0e914e1f9050c4da7676be73a3a300d1558a237182320c91d72191f9c0bb0eccd20519dc9fddbbd9f49117b1f6e7a23d4b425ded4f081ddc34485c5404312a8a70028be91b088bcc0d757091dadeb91d0203efb9fbd988be2beb31e213727576771351693634c484fca9c3c73e64fc4d1941dd1c488bc15c782b8db5a350848ded9c014a34fe265b196812538968da187aa3d5cb89c6ca3c6dc852111b5132155f772f57aece46d22aacd35fe51adf300aa557a1d62dc750af68726fd59703828473d3d7bd79e4f200cbfc50da841805e0fb4c15121394b34ebc7e88d4262612fba9e1db5ecf330bcc7a24d8cb4789846488e8915ea8012a2580eea7be3d194dc49866972127fa885332bf2217562c79bf54887201cc074f6443eea816b46a3f2d5a6f1160e0fe03e882dd8cabf6f75f18478ad0a85fe428d2b13538930f4980def223d9cc16aaf9899ba850c27a1429c9cfe4b9e4aff2fbb75a002e552f52a61ff1663a361677299f7ba1ab48c81f9c527358563c8ea5d0920eb811683f762c6e2850f540b977366755b311607878451d4df0f1953e323ca7e5725492a40740e23a1a42b4a48cb41e586d5891ded1e1e5f6092fec71db1eec2c2b8ddb4b6b043eb23e2ce3d934c6fecfdf87c74517ded92c9853cd9e4389b767f53498adf8e7ef2228e118b26891bf04c8bfea010c558e027f1fe89e30a32946a0387b38f76e544afb1b9416913f1b8749e63eeb4d2512f3900433c86e3369cf48ffe0e1c0d62a4932994555f7efa6a39b04df727beb0bced48c89dd8e7cbbaa8e344bf82f7fd0fd186d5d17508749c4754fef87fdae31fb33a9cac38ce3cd0a08e93dcf19713cd1a862081d6653f13806d645febe7dad0cfba1818dd0c6438d97b6e4d57b0fc1c818e6106573d30743ec98f52ed7f2f8aeca4e089f8af8a472a4a83151b124d4ae1ee8cb951e70499364137b1fab5ab9fca1ce4c21ba090cd9f0b832b2be1d2f4d8328efcd4e5080eca7c3a6d8411f1f135e95c8837e08aed495890900c6ad30a8632e1883814e913d5f9106752d6597d1cd6f4c78833ff68c989003b3d0c3f386c5ae80aff5b38135878014c056a2cd417c239746a7b37525444883b281cf066304ef0cb70836b9eccf797125e9ad51e245e8f002d8cb4c33ae91a7f1ed66a19ec9e0168182e2a34c0e42086b126d270198af4c1b48df5831dbbaa5de81dba3e54145a058455e9cdc2d1d8b91ec7f7d6fc72b3e7a792bfd206ca45eb76416f82dc03592c40adbd2e63150a580ca4a24827d34ab9bcc0c9e197016aa1074c4fc62ec4124d0025fef776bff5ee061b80ac732f1f4afab25000a3926b5f467bb826f17000d60cdf5a8da1137f465ceb5b12ae614267cb751a623e1b9e8f06834786d2949bf64832ee306333e3d58220051bb8b1584822d4008e8d91c3bdf29a2600a9b9226868ec253971f020c8183cc4ca66310d4a1d675009001913b55c6c1805ecd02d885f3ba7bc4f890ca9c0999ae8de83342c0da50fdb05ebabe54360bd8370a96b582380b4749cfe707b444483c48d8ff2b472124065fe9dbad83205474afe8bd11fbbcdd8a76c3e6c8fb1c628157d49549994ea50187a1531f3a3d65424142e2b850fea77d492a593c9a55f732d1a2fd6b75b0d18ae88e70d85ea1529093204da59ee6928e02c5a8a11e694dd9c35e20b0ddeef5d9ee2ceb9099889c7ee5c012bdd9772a3c930e5bea2a5377ccdcdb10014d1b1665916b784764b59f0d1c0f171510b9878616931b665ded93e13aec08c1c372aa85740aae765061b4b6968304a1f0fb2f097a1691d877830b989f194b3f8191fdf7a189a0c82b5a6e07aef8dff75d284b21d08b0c82eee33989bcf3506f19b636d8f0121ad6cef1a2cc70bb37c471073395040cfb49bdbd7df1f90cf992447122ad3a7d95bc5a1ecd1ba7f3c66244450701decce0f8798e402362f3402795a1895b09d56471c80614e46c0ba81cd4e2e52cd86022d4ab0630be0926b3cf0faa3258c54178fabe05f205aeedf1645567545b7293693723903c25c4d32309d027bf9fd1191fa353e04af328b430b07349805683d009ff032f9b30e230ddf73b376389761148dfe694b564fb0a919e1410cef06520638a1e6be7bb16dfef21e665b87271669983a728b261cc84f83ef6305eb19d0ff0a96074c1493c2b175726c3abec9011b662ed633576f88fcf8a5812e235715247e30ff185bb7c19fa953e78ffacee9c3704e86be04e98b41f60238048bad099ac050d1691a6c342e284db5a58863190e8a56d707b957783c006e2e5f3042f3515172172d5db1dd4fc063709302d98097234158707092dbb9724cca4451a200b19fb8ae74ac7542f5eabbebe17749ac6ad04862cb11a80249f6d9ce560cc29d03ef335442b8b5b94deb963572c08069a2221a7a7fe995243ccca996ef82f35c9c1b4840e2bec344c0556f4dfd4b6d357374afb56971f2b6c15c45ca832bfe82e1924cb319e5e6a4ea1523a79724c386c095cb702d2e36d0b1b98115b0645b024d8db00f7ed298dea49b83e389443cb16cc3621933d71eb395c870997516c78d3f11b64d57b6cb07a2521c110340e22dc04739309881a2016265d2ed3fcb5207e28c0a6c658ad53034677ba8d43406f0249871de507959d23a76e1a2df2c1e84afb475a5418677cc2cb639d6d5dad3dd509125ac7772da5a8d58effa742116099e6bd59237af309d335c9c2a07e3db462af2627f379af783b6876c41868fe3e139248564e52dfce1c6286fccc0264b3fb9f7c3cbe54a2c12cbac25a22c2a2a9100b9d57ab412e36ac1d9908163d7983a2451d732b26a30dd870e70018bc208afb818bbb17bed80083900238b4da58397078cca987b3c980d8d50f68af0bace43ff268d8b5292af78990a427562c1e9b61181a320573bb11ad0720c0e975cceaed1731a2a14637c48e681f89cffa8bef1b9c4c814ae03780700d1d38d028c3f3468f503acdc7e2f1072fc76d8e40feebfde72eda0baaeebbcf5105d0ca31036c6640ba1172675946120cf4537a75f00e21755dbb3bf500e3a63ed6e857301fa0eb67d0610317fa33bb91ea1800fda2eec3b58a2ad74748a3294c1a28bb67aac7ecafe8064bf94f3bd792d6e873ef2c119123ba3bc2dafb0e9e2ab4b7a4148a3eee5c7f797fbd3dcd8f6da94a75f1d986f4f8b107f3fafb85c537a515f0872bce405cc077d806342a3f16b6b4228b9c6463160b9d9c3dabd45ec118cd84b4a5cbf511479e64b42034df6b17c23f18c7180ee1ce10da51f3784b9f26d980d67184ed022fab3ca02e126c424ac1b67ed3dc70848612978beb1774f9298c5bc9170e0cc15cfa26280620da186b4e2270deb9e94c373b0319965974c6f3448485d117ef8d399840aad3280e578923e8c1fd12cd0951e6dda4d65b04ef4c3d0587edaaaf6871d5e1394a1af368d0e5914a419f3d3229df15eb979446d302b030c0c09c6dce7e62ea066229bb3c70b448ff6c79b40445eab6b1c331e9255dc4262e25819e54414b277be6afe3e00705695d8c0d5c8234f720c5767698e6681b2f3a1835d55fdecf9d2dc251d0c6363047eac92491fadf977f20c87ba55629d31e5aa2d47d4be6f9e0d889c59ed59022cca17613918526273dc3f22d5205fb500a57b1c5e3d1067df6479e7500eef260f8e7ed2779c892f42a27c068e832de5210f3c2942331ce1e628b63bf55aedfb945b584efc1dddb4776b2dabc960eab3296d91010d16abdf5d04d7370b1447ac4f3b45092d19fbee5589ce84f276d3910d8b518341af63a2b4264f1222448e92752a54adab717a4ad6bca5593b83b64c616994175449fbae960c15b1052cfa4de791dc7f7bd09bada392753b7e135cda31201653f748af97d9740c6b6cbce96de2f010013515603bfeb074e60e8b4b0d40c76d48a46854abc9678252d41cb932d378aa0b2a870def521a9d845f680037671fb5bdaef60471dd7114bc9234d3833d7ef98aa840a560971892bd832f42632c789b6b9478b6b86c878e9605002cc664219ee2c0ac30a709d377b7eabf1477dac899ff219739aafaf6814a8718d3d9d56cd30599dc65dc5cdf48aa819c6bea07ec4228eac2c931c515cbeba8b7be014e188c76d3efb21bdfa5bcc1898215d5254f3da345e2cdc0c7ed152326eba0c2e4d341a36f1804d700a6f35c938528a2fc88698293c7bfb0179686c02a02fb516f855518d14a16824d58efa4df3680603c2335799a21d69bfdf141c022fea3e203d94ceebf2e95385803c1503fbc0284456a2ce62545170858a0eb784bdf1953ed6397244479b5e9ede0b2277ac02f84599537e3b9ce31defa89953e654b8f50845aaa64a1b3403d66be2c5cde7e3def5e202dfa95ed933f9d5e17ba1d9b57d9fa26801d63dbc975e6405183633b19bfdc120a9fff8e59ce2c46d439b0aec9be5a07b26727f2b423195cb8d78edcb23308211a9510d6141a433bf57987cbc702fb1e13ae42d12c3e9fd35f3eb6c35ae2c9643e1b2f372a55b22913d8946765854b14ba5fa433fc90c9dbc913c9117160f9b95b8bcb40617ba76cfefe4d11a28f49d1cb4a2cb3ddaaeb5f0e5ac91b1ae624624def2c0c5efc8ef92b5916933ea2ef4d3794791acbe3c5f507d8538172be8d9666cc8c47b7492ac1555e7923c02dfc649d8e98b038f0b506637c969cb68661fec8d88d7ee042ad857ec7260030d48ff8913ea254df7ea4fd6f29b614adc371c4425ba0d93c51ebcbb73371520244a0c968e3f140d2a6af87b0070aaab912d966317f6e5335740fe29935c62b4926efdcc25c0af44acf4d48ac58e22cbb6bdf5642bfe9c237be237e83b235822023c21a45f33628d9169b072cf9aff2e841e5b0cd1e8662e3b1e2f3f62315da6d16e6636a736688c1f8642746164355e5fe1e1f25e501f4e2b73e28a28d2f79cd2e68f34036b248106246439706c6ebe3c6322b43bdd01ef8f0a700246f91c8c95c274d37000dc6921e1a1cabf46f1a7e1f21c3c71efcb3c6cecc237ba2f18c481efeace52f251fe6f098e2c75ccfdb7a2dea62b08114cd7ac769f0147de92f9510541714876ba292cf46460c493782eb8329da1051d6a8481a37bfa9dd12cf39d10fe1ed50586bcb7c15bc7781332f35728c6dfe8ba5739324e8faf5e80869ba8071bdf56509f39a717cfd0e65b6589bf0b45173d91662c368afb5bf101818a3123ea47b80feb80b401abd39723a1bf77f603f5d61b7a64fc197c073490378808f68bd9885fd736a6df0e7eaadea8cb493d23704bb16f545bb020596188a8ade74b0b7457d29804730bc8089f64ca4fd862f932726cde1f6e856ee0fb46003da9b366e7bf8d3137d96a562e2beb28882fe6f056e96ad61983e2f7c4f4268914fd26b7b47db32684334675f849d5715f073de6a48363c4e2956d5f4fc5e85f5abe715876c0fe1065054791d604c380883f640b87facda3d2a47a68c7b5d588e5d9e8ee73e9256ee11d4c7de01aacbe929a8b60f2dd7c223b886e005f1cb7db3f9b9ca56d5ec035954b501b4d54096f9a803967630d65a664b2636d3edc95f525f0dd208a6350c511f828419cce43d0f526586b6c66bf15d3d3fb5125006ffda40110c08c3107d1977766a22593a1343c4296e491138cc717283bc1445ded01fbd6646dd84bc6726db7c8d149fb50c834aabcd034a27bdb59c8a29e33532397abbbc0c92c398897ae34ae50fff8989a2eb20b91e48a8ad9bc3ce8180283273b9529175fb98a3b1d90bfe4f44e9f9a7576af5eef95a744995cd8e627f7d3e79a14c135d1b5927e315286ac295b12c9dcb6df6c77d7c65e9cd871f38e3abb2a53608cc9162ebe54a9b9f7bcd1d9c5a696ed4bab0b9363b4eebb1acc175733af6cba35ad5e6277c84968a3b34b73767ebb671041eb76716bd6add6deed3591df3555b5cc1b57ad60d2ca47555191035df1fa9000803fefe40913cc48d03607163ae0cf34c54a2eb5f146127826218f8e88f562ebe38368084cdde3fd2b919825ffab47660584dd7acc8f6c86592e827f25865e2c14f9b1797b1a5374a1f69664376d65acd4d90df78ad3b3f7c8062290de0f7d2bc152b71289a114fd7a11e83c05939864d500812f2458ef660ae55f9df0bf21a446343ec7bf4c634a882ea9d8c2af97ad29f84fc3d775534a038f56bc49c94b61f8636571f5f4046929405608a7ed86471f69c44f6759864ec043c6bd6da94d2bc12eb3675ded58f359f6b88e244fc701503f93a4daf3b391815f6bbbc061ab0e8e3e76f16bd58b01e7b6230451deba44db673e71b355c076064b694edff3cd468dbdff02a33d96d12a7ea0064462ece445106134b026806528e45bd354f061cde7c28851c066acccbc60b9eca1119f6ab0a88af4704635a487ad90d4eda9ba68684260c59f2d226dfb385bb5eee94c1c1988e49d2c89e46d9caf1edc039f149a58ed64183e909f41195e1408bf6339b6ea362095142494de69cbd5741d5e67a35a2a582cc58b35ad380a0809802cddd8d537a3e60c3333aebc334568c2fcc402a7971aac17fd2302353d1e6c48563bf8eec0ff22737303dfa200efcc56da1166e71d77109707848ee39917a223a4e3b9750be34b3066b9622d32ec0999644431ed6185098f15aa66e283f1c39a122c37d93ebfbcdc28edb079c40752bf8bad19ce04ac5809b9d5ed15e4e5ca7029c5b577983c2b7de1ba09a2c4426c849fbb6bb0fafa09d912c6131274b1f4f91bfd60a0c090abb3a72149d3810842e4c679057f9fe41d3bbab7966e0e83c5da8f4f0439269439c43c6d15fb00f8845417c3e7a14dd3c72dd3d8035d7dc142e60218047d3b6c1cb33c5a8b2ed297baf1b7829044acf803953a936b7377a8f25a18644347cfc8187e8a74e601eee75fbb6344030a6191aa2003d3329a57116e7edcac1f79d9bfaf11ab2043129c49c6f4375bd2e165f7c23b2cdf5a3a0857232f1a09f525b320652e632347d348accba54d877ed03a5a6100e6cb5f8d9ce343e6c17c2037c9c9110a3b14a9915edf636ac69406d9ee0a041e2c3819ca63984f890abafb47d5932e74910d58ac286e8c9058ec0b43480df0f9fa8ae1328277b2eca763b32ec038e650eaa7f9bc4347dbf5695aa1dbe24d98f22e200123b18134f096e0bc768d9e41941ecd846b3225093b6e27afd80077f14148dee0cb2b6092a1442f6b6391a793ccdf2e89eec3cfbb26beb381a3580931e938985382c19b82ba882bdcec72346d77c30b54437fc497560cc7bde288ea6da7175110dbd28f0444ed32b5dd1ab7580a6089e0fdec535b345fadadaf049b6525526e7d91311e9084532ae5070894591dc9cfcf6b63eca7eb731754279f55686f8f045edb000cb5b2dac26e2bb616aafc662bdad68f22491155ee4e8d171aed558566cad8873777d7993a3a9ca8851de0a2c14574fcd1e3133aecfdfcd6b34f455d94d6a3747a998c7182331889e9cac71ecb7a335bfb2e97d0c2d6f326fb8e6e8d110ca2fb692daec34b0473a68e649b6880e14e1b1ca5bc1694dbc39b73c4a6574bd2f2adb7f4e88aa980aee94875f1dae612ceeaaf3387feffdbf9bd4252e40cf6ce937a440fbc9b20a5e965980808e1dd1f26808f546a2d968b71ca1265abd0295cc07a636798850d3c839d33bf3589cb252827c505afddf6aff8dadc9e81db8404ee2c872de0f4b4b2e4f4e3b04ed90ef92636b49598c44b2e6c0b31902ce5201deacdd58707078450c8a4438bd9de0f4bae5be019c6bbc6010c17162520da0a9f5fbff41e7b886790e1bee1a332fa9c871857fef3aa22d07d1fca9a5c5c9f104a3794d791ff9cccc06b8c9f4a5a8b573139aa6c97272c06d322afafac70cb2bafdd8e3467ad9e4dad28e00dceca03701ecb3a2f33db0fb89a3ea4221e39a5c70d412b0730818afb9dd3fb05655a55dea12c05563b28e3f567080ae4c309f60907cb696c03d891d5e4f208c1a93638286bdc8709aeb7b9525cc87faaffe475723a6fbd335e8ad9d56912f2bbd2f576fd7493f5c32bbf59195afa8a80f491bda2fbe2ff879a84135f6879b14eee47e7f25f57ef24cca0f9301e6f1622290f5bac2e8e55440389f4a9d9af23559827eea9c9f4373ce89635d364900431432f41dff0fc32904e71f1be9859e835f59f08c5a30bb4067da9a24dbbe86fe16d7f9de0818ec1722420c36c8bbff561be1692bce52245eeb81e187f3f05e0d60c8138782a0bc5fff130ac5d7342e180bc6ff1777f36d2a0fa7675253d2ecd4eed1c4fbb00428bea0ef6b9e2e04bdeac88adc9f64db63d07e846179730310b55bd7820ea3f37366850bfa48ebb0428353192298602f76b992c0a9db7e86cd62430b02701a94b9e46735cc1346d7353f10b9a416f6d0425332b4292896bc24d00e02827c690326deb0d9cdce653405398ef58f0e4898e5fc540953652f6ec8ad0d4e26ea4932c9ea4688221fbca6c67b872556a3f0ffe0832a874f84b7587c9d7d02b3ac686fac16c674341d169e8fd7b995e6017c85f1e0e184587892545321d57e8e80812e13b8c1bba4d1103875a0080009d6b22c5f4471d78d60b2ef0667d2f053f7c5b8837f6822e370222f1cf7bdc74e1042954feb8d09cdfcdef5fca53177d32b645a039aff5a935930da15251dc141b3ca4b985c8aba7decdf008521bc1f0b77a48f5a9fac77a3bcc52fbadba528d9918d897810e723a2bc0530e1c3af8145845be83138ae6e2d0be9d2ac33c310de3c2e16060fe0b3dd1a219b904dc8de52ee1df808d0083e09f7f95091848bdde74385122f68d8da7bdd536831c51510c228a710a3bacf670a2e74774b0dbea5a6e3351546aa4c6a3a7a4894b5372a9030822d1bd0c7d40b2f878fe8cb0771164136514561addce753051653749f4f1551ae2ac6c0660441b322b20c6e4f6ca0693c08858a10d2328a5dfdd0955da01c54333ac5bccf870a2c44d67d3e5450e1e5784c7a1ea0f06f7befbd2a6eaa30c18335bc1cfcad6aef1b8b0d1ea8cf870a222e4b0df5f18cacdee7f3848a3b62d253a9c213a03b6a862f86382e114655420faff6d0eb2670c19202896b595224a16d9149d619a88587ea7cb64aeaabc75b971a0fd5a355227a8c2c6fd1bb5bd6cb199f57b9e45f5fb9d47a3c8ec5b6c46367b9d486f0c463763464e6faca65ab8a45416eda197646f46a51f422fbbae423451257dbde65cd07fd7b5ab6c5adc7e38c34f77877ca4cccceaefd5c2c082ba9047d3f9090af92dcaa88fc54e2ce78abcad22a205f3da6e316a1bdc683dc21beb21dff3cc8cfb77659fc2221eda4edaacb6395ed6aaaad93c7ec990ab53a04223f0f44ba5c480189e3b23bf0a7edac738b7cbc84fd022a925bcd7d9a8e78de3afeb7161edeab571608ff916075da598f9796bd5547fbeca342edbffba2ad89106ea15e3afbd4a2c13ffe7c665d1e3b3cd486ccc86316c5635ddeb24366e6338be2e1cfb31d32539d6a56881b5c11ec693be0d581bdc78555d57c8fcbd6dca7b16d99b92edfe3b2126a3a64aef7262f951bfd45e5755d5a54265bf6bcfc956da32e5da71b8ac73acf4cf5cafad35e97ba6e7546beea4b1bdf31d248195140df4cc39fa2c98d1488df017243544950c214768c9481085008e1090e34f88329349227c29802063e525461062d0802183a28c0820d0ea00883076038620740d842a759a0802648493da101175e88c19231580a485c20052c00490168082178b8ea07514c81a1e87015588b391ffc0d33bf1df00e99918f2df0f2d1a278a01d32135fa56ab85197604bbfed1019f910d4dc7eb4a91aae7609b6b4edf1b878698bc83f2e55c3c9688b3cee3dc843fab6fdcb01cfdc043a82f0065a38a19373f9389cb00194cb9dc16ed286b0ab2c8413a8e9ee1a5875163eb79f8dbafb9291d427ecefef307da25be81a7d886ada69b6514861e833f49945894eaf6d307583c1b6eca10dc55365212d3b6651a167a79b49b499e6865d9bc7348a7d5a9476ecd9460a6d246b9ba7d6a74565b768366f5914fd3cb6bd4bf0daf62e59cfe22d8bc21e79aabf19ebd1a2e2bb044f372ab7796c43f154e799919f160539799eeab2a8daa599786951118bf10bfafad4b54fd7df477dda50d78f687f5d82b2fadc50f3473454fc110d9bdbcdcce833dbf595bfb69b49a46f75eda0f27de52bece228d428009bb89996c7b2432050494881c7d1c01aa6e99aa661c93cb4abb44fa475e83bafdd4eb9a1966708042e100e3da3a3fa6abbbed63b91ede06de1a1aff5bed667c81ea1d7ecec127cd69f4d1ca19607b343207019f6b56c4fe93abab0b2d80b940415b6bc3b2f01a2f081e2c9bca3eb0410c8b830103e077e813e784e00810b97b91b2e9c8fb720ab4bd9e7287c31dbbb5cb6ddb4414c97c424f843a9ef769f2316de0283c0878c1e8c210660d801e2782ebf1e714737f65671c0a76a636363020efef1d5b95d4921d809cee5c7f339eeb0751cdfc2e3fd5cf90e763537b8f253b8d2be87a38b92caad8b0f8551a3ed6ade1bfc82c9d4cd5970161de5796bd901e163b444e485b065477f0804a64c9972fb9688bc1d194ae1325cb80c972c380bf870e0bf4a1fbf5436980c286ea0e87182043fd800b609bd2365ef4c17c25c380f3ffb440f7f1dfe7d9a71283ad5b67a91a689ea754d7bdd503c52b328ed59dd78a426336d43f1c8f3cc849e9dc24cdb78e49f36333fc3a2b2cfcfd0872c4a3bfdcbac5643a15028140a8544b68e4e1285a4acb09ac8581925f899615375443e21d48f6693e9501facc8cf6533752c9f8ae647dac41a9d14bd28b4dd0d094557e2907d56b76cbf97ecd076d6857f5d37c03a94b76c17d38f042184a716b3f097ede69db6e30b2ddbc5ed826dc4a6ea887c42a81fcd26d3a13e58919fcb66ea583e15cd8fb48939353a9d13b3035f18587fa716b44637ae45c3b544d7b2acf77b0da8011110a594b24fd62b598faf011b10ff6ed020ba160e1ddfae463f9265bb1fb72322af94ed826dfb6fdc0000006cd8a851a3a5c5061b6aa86134a281861966a04183856565454565c68c5a45a25048d3b28c520cbbae392dabaaa48cb17be7fe5acfa7899c5bbd4f4590bbbbbbbb3b6bbb9505d2affe1ba5ed600b0fd5f9f62b2b598c27adead39252cac77409fe418e4ce0e92eee62baa12f0cd417c3f362a98324fb91e47b08902baf24ad27abc85205311b31dfc82f513b4c42016995ccc363a0c2eab4ad69599665599615c375be92acec93ccbd849a6e8869c2cf6432c1ab443b7c67aa2f87ecf1daa5d1eb999e8f09463b2901dd8d3bdf93c85616fa07078488c12653f30ff9238cfa0bef6fbc92ecf09dbde9cc1ec3586493fde143866118866118765dd7755dd7b5f24e3ff8e1603dde7aa7ecf1fd5eaac73fd800ad03af14df8d4ea18b1e4557be13dd15f96cb35e49deea4792afceaa82938bc6c6509f134710719f1347dcdcee6971e3df1dc138b9f139f090a2c2298c5cd1e5a9dce88491524ab9c11dcad2c29d0ca64fa351adafd276fc66cf00bf6471bbd2befa96879a8eec35b7da4e3ef4aee67652ab80a8abd101decc76f2da631aded0d6657f4cd23620f22d3b6497cfac12ecd23e26fd668f34dcb899ad54a8bf6f56cad8994aad87902953a64cb1e6a3d6e371d7e18439171f83d9c7df745dd7755dd735b7f9aa6d24650d374dc29102ef14c31d25894422b1bc23cd397d1002440c0f991ea28d8d55c5b0d4afdcb2dd547965bb3ae3d2ce39e79c734e4a29a594528ad9cb7ea54e955a6badb556d98d2a9d1631114221cf59ebf5f74e735652eb710efbcad6c1bb3299a4f2953f8d02975542aff2a76180b23c74118d6b9fa1e57a761afeb42133d969b0289eebd92f3b6446fb0c16c543e3da69d821f52c7666c6290aa2b0cfe056b678954d0893e0676cda966d759b095d6451900bd9fa4a57e9ba8e6da357baa6a5734f036b204d555355560c6c4e151ef27b38c06ebe2ece8e77b218d51261127c37571e1fc343a6072301ef78c9ed25acc33af1490f515d40b727932c797edc38e84649c6ddbaebe7c6d8058940374c9290882b81aebc855bd70a6f6c47e3566550b51db1b7b8d5cded3ae8f6ab9b1e54f80e12713b69735bc6f7abac40658344a01b67b41f88403732e902e282752250190d03c8a46ec8bc4586f008eba816f9c7c574a9826cd11821064ad5125e8eeadde85a966559966559875575ab8f00a06266d6429717599f91af685be8e333cb6222db52ddfa7cc8cec86b1645c3637042c0291c0fbc3ca44366aecbfab4780c2eda2a339f30334fce647a4030ce6e425ca957117d8616ba364314eb55eacc8caf589429c618b58b628c31d687ea43a2870e5f1f450fad1c5ef4a85de5a1af449518638c348b1712bbd4419d275e8ef8ab6e3130a618638c318b34da6ed6d173895af0b93c43bb88d2cc89a6c1349759932643ea12e6c54d9fe839d3e953e80c772e1feec024600f1321a813ca0e1fcad1e0a19da1173d7b155914e4e8f9efe686dfe5439f9ae30b611e3f4f6ea2906e707c888121dd4421dde0dcf810254a149f25ba31ae9b570c492e01eef30943924b6355599fbf980e9989a7115a692fcbcec457168571d15699e94515d2a7f83e1023997814e46e9a43d570d11621817c3ce4a0ccf3e9c1867bda8f2ef9704fd32123ad0f5d6ab6e162584803c9cc596bdfd4a71f5de23f6ed4909b13074659031806231723e7f25d4c6104dd20d3221f7aed67f0f4da90197a8d66fdacab859accbd10bda57ae8daf910277b3db7c4d3cfa838be0f33f43368f66a513cf0d9a11d52d919ed228be2d9f1aec6cc7c28b7646bdb4d3fe718bb6c577956d1b6b56a2eae92a0f24550f2232e728e326b70caed71fc6c67ba51ea88f04f5ee318619397a3ff7ce211b4bbbb4d8f4fa1c603bc71e5a1f7587948e5a2f750b968bebec77c8dd67b5cb7e8ca36e32ad8af2da3359cca56c3cdad86bbb61a8e6619bde6b3ebcab6d17c36b52cfb0c8bfab561979dd8eb7c68a3355cdd6a38d156c385b61a8e629bf56c43f144eb58b4e2b561b736144f3ccfcc75f1c419eb97455db79e1d9b133bcc8cf569b55613b9d2a29b71b0f4bb1a2c5ceac7b8bd17d4282b6b5e18cdb490a88a2a3f745946eb6fc67a11d4b32dfcf88a9395aaa3681e2fa09bb754b53ca0fba2dcea349117c007a24b95353d02813e0a1fcfd1e16d16d564f741dbe2a32fdfa32f4ddc22235f737b3c4e5a1f4d0784e2e5e84670eb8d3c8f42ee283778e9cca0a663baa08e98f4038ae984cb2f0a31dbe59712c080f709be12ff9a355cfe153a49655944856db5a0fefcfcc48b0555529cfaf3f323dfcdcb9b04b6d7254dd311b382faf323cae4c63097d64c6e700c361c9df1b816f8040773bac447c97489cfa34b4376bcabc3fa8f9f1f1d56135e0eb6a3ca52c97c7c5632b9c1b3647263aed887d2c8e4866a792f47079b70f92dd55be01fd75259e8c40ef73854cb133b9cb57530e732ff59fcc7cd2d5a74061a260d99dc58383aaac15443263798d32578a8634326370d3ef17240aa92457e69c9e426395a23935b73d4462637e628004222adce505961a101001a425c4dcf9005642ec5577da4767009c4b1b0534fd8e2767049d08d874a30f479820d6c72e367ed13ea7aed52df42cd4f6d32496a3bea853843d42219c489da092a7c3767328b42d15f5b0b5cc2877bdcd320135e8e564195077a6dbbc7e4f205f04af139e602701c70630884c006881effc3c3c13a8ddb4050881bc9001f0238d485a02f145e0e49bab6c7cdb61d0360705c9e2e97df916a5c6659f2f884d3a558bda07610477463e8467ed1eee4976cf20bbd935fb01b4fad6cf2cb35f96566935fac1b4fb16cf24b75e369964d7e89379e6ad9e497bef134944d7ee11b9560c7e91366a1125c8acf96340a6a11d4fc756c4994cb74a358d6cd9b7129fe9d669996d1adc5077d766a5134cdd1df5c1c0d3db53cdd8e7787dcb87d11c8db56c98c67f6d274c8d0196766aaa9b48a45a9b44aafb48acac6d32a9d9d7e65833b9676950dc553b5ceaaeb60ac9bab163d86a59689b0ab7ae856b6a3b9222b83db0b6a753a33b8892ebd32b8852ec532b86997d20c6ed9a5976a19dcb04b4319dcae4b4519dce6a535839b75e98c0c6ed5a52a19dce4a52b19dce2a52c2b2c7c55369e7aa8cd689f61519acd36a853618e9d33f488f36e546d57a7c876a36abb8f42a46b2652663b184d06dbae6db6756959b93da1b16a62a4a143a10f64ee21abb7629651742967bc85362dbb5466bcd14bab8c37ec522be3edba7466bccd4baf8c37eb522ce3adba9466bcc94bb38cb778a996f1d697bd8051d311e1e52745212da3d835ad4a8ade69283e74a3ed686edb9a08390b34bb8fabaf4e48c28a9cdb59e1e4f26b909ca0048e9b557ec16cc71df6c9a41a858abd9b17cb9458c71ec3d7afeb9af372b694723ece8c56289e4ce3c9e6ad69da60361ff1952d322da9295673b3d0d6d5dc5076d1af5f9a8ed0a1a6030bb5f0803df49005921dabfc523974da898e892c90ec34f7e94073b30e0b41cdcd74a8b99955121f45a7347bfc026176da618758066db7bd3b3bcac8d3deaccbbed5d27adb225b9ffa886f5b843e52eaa31f6d91ed7529b3b0f3f8a86e59540df6a7f9b03e6d11cbbe4bd8e6c37a658bf42d2dbbae2cfb7b97a6e9c8447f5b17cab6161eb2bf3f0b24f44c94894ebbfaec57b557847599bdb0d0a6c47aa6e9c0ac12f9ccb2320b7b9fde8ad76c119eecf1991de2a3b1f7313bc447f56951355cf5cbfa9897b688f569a565dfbb5491dabe7eaf4bb0a3a9aa81962805fd86976a3a8ca095b58cdd2179eeee86e952bf4b4daa1817b57ff469ce5adf0fbce99cdbffabb1b1b1b1a11c6d77439d0a09ad23fe8b95fbf173bea71d3213dba66ab82a5eca58b0a1bc658bc4f80eb9ca8e3ab66566eef601edd3d6ba296b3ae6ac3d64b48fb51d70caa522110c814197485f7e4fb9345cc3cc54f0a28b5a8516001141c6ed6e8a5800a3e60c911d417d80042bc2cdd5c410338a101645585544594155c51843c82058108b20a2ad273618e2a4bbd4273c4801fc9322a8e04f9670bb9bacca85352dcbb22ccbb2e218550cac110b93e0145c47f35958cc39e79c134e0bce39a7cd9c91dee743c5161206cc85da55fea272172a7ba18a025264190bc73c1c7a20c1e0e013a96bf08bf67797996df03276ac8adad5ca2fb4ab09bb29dbde852e574c804957a45df086606e4fed7a7d626116ed4d4525e1e097ec4dba4678aef725c02fd879f00bbfafd9aec6ed6b3a6876ce6c901c2e86cdd704c6f44476b584cae390ef48233ef1e8923cc174499e22a156473149de9c208669122a1542ed604e0ebff0d9087ee9e19716f9a7a46f6b97e4e5ac98eceab51b6da2caf3e8e1e1805dbe9d507f70805fe88f8d1046f14b178474211013a0d41289508997439e17d0b1dc0ee6d0266a0773608eec27555e08117e79f2708727fec8b9be3c44825fba203a394879e50fb50a4c1be43589b7dae28ddb8bbc0078163e3d6e72f2491c574ae863f5c4bc1c39c064c04509415cae24b9c01ab4a3a8f0b2eac2ebee96d69352de8083f425aa6ed88de2df9b3bde8579399e9560e898f512dd9cb3e257959d4c622b377e569f48295f7cefa3c82ba03f1c0f7cf0fce46eddfbb952a6335d08999921841de94e600b62ba105e11c324f9a0c8430b9919c25c98c3850fca65c9128649d2c2f7c31f783f972d102f587fd66b723b03b77211725f8d6a0be272dfbba11a1122078e27870b2f71dc575595e92ef51106c9e1bd261109ca3898d40da1560125f33c2d8d0bc7f3ce676192d5b95cebbdc924cbbec7701058816e4dc7b3fdb6b775a3fbba3bc7089f0cf56b7c5358fabe0f8136084c05d436be77f9aeaadeab772055946fcb62455da2c25b51e1a116b492f23df9270f24c6f82ec6487f74122a7c94f11288640207dd5bbc9499999b9b4f401fbf74fc77caefbabbdbbebff7de7be977cc17c80f7c7bca9406c477dd7cfbf002e91fe025c27ca7dc3737ac0a1512611e20709fed242f5e228c91440c48741118304619826e2e26c020868a85392713f10511900861840a865085164b5c018528c5931942d03c010c265668b1451650e0ae238cd1330614f50063203186120d84ea3e9f209e202392906ee59748c291c3e8a4ca3abce986f92a36cf758e3d35dee7130449cdcc41492eb30be9dd8e142ffb1a5b130187e9060e2a426e354623128eca272805b79234b0a65b16a1835055555535108a6821b412a3512f31993af612c861d4863af84f6bfb6670fd7a0573a64edd19c125f771a31b1fba04c4c3891327312452ed6a8354a1939941274ea0138b996892a3b343aab807be3a7952b1b00121f7921d0641322ef4e91de8a4779edc74c9c97c52a1bc1f1fa23c276f0129e0c2c5c74ed2fee3f6abadfb6f3743ef58eee5b790941aba688b3fa8efcad056ab73c55504f2763fae7cefe8e4ab57d774644de3ed921144e4a51622c13b37377cc33c1832e97a7529aff725af1cd2ce92215cf86e01174a9f787cb870f30672280d70f31dfcf101470c32eeeb3805f7b1cd3bc19d9e20e804280abf58f7f9e91e14f83ebdd7af9fb4ddd47458502e3cdc692d2e845ddc21c09faa4765d0e7d26138971bb361125795a5611dccc80d2a944646645c08e36d80a08d372336a26613b3e993c4c1c16c2ee3d0a0561e54f873bb4a2756465c8e3797ab9c1ee0603840f4f589f9bd528f5ea921570369207f803e974efe5c3e85dc5156d6bcb0ec31ca853624a5fe479f64ce8b3f11ca7df189ec894eee8b02046ff885087ea97ec5f429064528b107ca93114c354121cd596b4f8f13ced959d293e313c437418c13c43941ac13050a109420286ce37385165b48d1448789511215092374bac4365d626d3ba9079a6959e8218d07bcd5e18dc68375adcb1e496d571bb3d292f24920ae9c57da982373644e5050d005a54fd2a78202656a3a646412b2a74fd2a7923db147f6f4c89ecbb7341d32b247f6d8f4b41252e4700ee72871258d1432a84fa35150104c42c385a8ed702850a040118388db3bfc5a873eec137dde153549b05c6b34eafa7cfa1f8ddeaf943fb08a2a545038a4a790b103dbdc213d650a7c3998e6b28dcdb52c7c24598278fbb4336b13c106ed0fd589ccfb03917adfcb011f0264445deedb5a3f461170d6da0ef156b043d62d3ba46f65dfcb21e5066fe49766aea9208b965cbe2422064532e68449288530a71f0fb7082384b06343f936e27212d10d9398520845445cee22d08514097e99e7ea1d4c32198777a5ed82505845ad453a0f871dd6a90ebfc05f381719d77a27935cee2e9ccba73a3cb513ed5cfe7b39ae8b76f8852f4a825f76546120610b2eee8d11cbb9fc1984e58a965c7c21a1db66abbabb63f5283b56b7910c69e4557f518c7b83daf035a9b0a1fc1c8d2adbeec5a0563b600d6a0cc23ab71fb708c4a40eba109a2219b89193e703333a690235ddbbf3784a88b81c1243bd0fc8a13ae0c3859b8fe1c78f5fbb51d573e365a1ed7a9895b4d146c83d17963d06fa1e0d201c9210ca803e972e2eb97cca1010a30b4f0b176af170e8bf27574028f0499f224e94cbc225bdd3373ccb004f938fb00af8056200838bfb1e0527dc7708c53bf1a04293fb0e99e0d30f274c22ddfe794b94e8c19939508747875eb519c19b9d9d9d9d7973737333e7fc61b6bd45fffcc08dd98913e6ca3b3b3b7c737373c35c55019e2017100c28860e42015271df1f3cc12792004f7d038dd04120dc77b883776a2710090f07d11f44e2be4323f8d43f5de2bf833b909bf127a4dacb467b73e2f17319e2c024f741a0596dda499fa693cb385d7a32a1d49f282327403e4030405db2ce23d27ba74b5c0a8d2a0b6d37bbc7a4ab698256198f09e0a0deb8f542b4b37616db8d5654ecdb6e566db7815b854e451bbc22fb5e8e4c0bd9ae26f2e89310a9e9108204116985d4214f0a344125040820bac487389765843c202046d276a3bac33ddd9c3d31469cd2056e436d87dfeaefaa6c3782db87afb41de2a3a6840926f1b9e7880a5f67652897cf4678cc6432147cdb728f0e80ba11f724d1b3b3b3d35794fda36dbce913fb8c46b5de9bcbc7bea80f599c3ed1cf5711e752cba3d1b4d176d54aa0cbdb951bb8fddf2b7b7deac850cab844d2b0b44a60d8a0756ac6248ea1cc0c3b408d78efe918810493705e921bff045ec1c48ef7de83c0b390092645d8640993a21237420ed92e0887e1445379f8effc3e7cdc42522a6d3e73d780d62aab64a1d0d21863e4ade361e5461b758c464ceaaec68d313e3ef2e97a1de5d49ee152ff7d82b15d9d76c424cbcad4a0cee641858789158c8461b9b10b72e3e10e2c9565741b1b9bd8154b1a48934544ca7e7376a35b6350e5bb6bada6ede67d55fcc1da0ebf91fb536ed604aacaf612f1c90daaf568bb20ac3303ceb9f2ac59a039cbf2921c541844e49531daf7a3050a012b4668619655b9a05615c52e595d66d25ab18ad01291d52b26491b6da2047a4684008a8738389ec9401746dbe1b89139e2b87cb691b9d36ec74bc076411868063db8d53bedf66d689b1ebed2f605a5df126ed7362fce3280229004922e90525616b52ccb92d584959492ab31fc0065dc42cd58985405c95ea52f0b92592d7815ad6d5aebd4caac2afe5deb319e63dc215a6923932afbae1d544d075f569651963d0bf4952a4bb435460f42d8b1dc6aeb267cefc5d063294f79ebe283dc31c415dbd7f1828f4506ef897490575ad2cbd19752206416964a873e97ced2b97dfaac777382e61e8ea788938e7b2e7c4442dd8270cfe5439eb3ce1e1bd4f8389730c37edc92db45a0dbfda8e9903834a8f054c6176765593608f75c799f263fc03d964e142a2342f81063d5b1aa58b288831a1f2793ba2d694946f8214e26c9182b1b64144758d0a781fa98a020e73e2cae3ccbb7b0559d85e567c6a779791c3012e017386b5cc9a5f7cee5cace74e5bb1cee8849fc12ffda2697b8c4b7aa7e02bb401fdf17fb54038b08b3315a09fd3d86874c9f5cfede439f54b4dff8bb1020fa34c39ffd7bf6d7f2f7bf00fcd5bfed35fee06db0ddbc369c86cdc51ee00938024e630b804d0d4000277dc6666d0a47e90638dd369b2211e02e9fdb0d9b32d138026e6d2d366580023cc7abad864d11c0e503b8dc6cd8948ded01386fb7a902e4388eb3d8ff01b8684b591bc7687029eb372c921007806f1f6d29ccc6ff952d65e36f79684bdd22692e45c3dff21abf6a1c7b8b4592834bcd78cbe396aa619138804bd1d7c02c921a5c0afb8ddbb04858b854bc8dab6ca90324e0a66b5b2a0116490d5c6afe86c922995c8a6fe334de5b8a8645a2c2a568fc08b04820976279cb0f6091545c2af41a9f614be5b0485ab894bc0d1c16890b97fa472f3d33804522e252d96bbc0016090c97aa7ee3258b04e3522a6f79dd5202b810a91a8e649110804bf56d9c001649894bcdf01f0ec02279009712bdc60560919cb8d4f51bf037ee62913097aa6f790d5b4a88540d17008b0407975a798b4d899e0a3da53d459fbde5d622310097d25ec3a69040aec66f3cb5d9d46d0ada947c2a3ed54fc1f39140ee864db13cb5f294ca53f5335ec399dcf85c1b0e802d056fc3a66ad814f6d4f5d47caaba7524906bb1a91a9e1a3d45c353343ec363da868dc6e7d6b0bd2ebd8f365297de69d864baf43ec3064497de696c50a74bef2cdbecd2fbca66ead2bbcad64397de676c75833b5d7aefa10da64befdaf6a34befd9066fbaf44e37b8a44befd836ead2fbb5c574e97d6e3e74e9dd7aaf36d8d3a577b9bd4bef71e3d1a5f7de8474e99ddfe13b0d0d3590a6869e478881c991307ca18b20e603791124e5ba62705d4db0620a561d7951596acd8a7855d0011690a88113a000c3942884d08417f30a2c9e5001d791758f40846559d61835741f932349dc98ddc784c9911920814e7e61de26fc7bf01046711d811ee10847a042d452e28cd1de8549570b2e1bc474638c71fe456a33afcb04311271e310375e73c223492c51e288142b64910517a1b8f1880c6e3c4b0cc7f01123b7dec724258615b45312ad0d0dcf3b0f902041ded97ee042d6810b5f745155d592db050e2f5e37bb0ac475831a44a10532d819030abaa0c413a923a9155cd7755d57194cb03082080319a63a9232bff0e2bab0303f3515f4e0a70b37e04211466891c5128c30c1c8155e848c08c108132f82487709828bdbdd64ed502641f474101321809808618296d2d30573d6fc40094674c430860f1578c0cd2677bece8089911ab4171dc424082b2ebd8f49104cd8017d2e1d8351bb9e9baa488b8f2e52411c99519f5a7c74f57edce3ba5b00cac7a3686c682ac8c485ef573d4c82ef160b40aec54775f9ca4e660b24853e0ed4c724889dfb9898e0e6e6b88f8909c870a1cfc301be1cdddd04aa1df4b9fd5e098392237eb83e74029ff439a84f720c413a3645e2615b148f0f08c610a2b0e1ac5747d15496465a1e7e119a686d5a8b2f92d870f0f01d048250a2c0209b1b1c9d77bc739b97dc521133c0e13af671729b9f0045b9fd731b4a731f415fcf85f2cc97e122f21cf9966559be45c6876492b676a9ffc3101ff1f232f24ff3d1e243de92afe11ed722c33d6d88ccb43d1e67d9b7c8a06ab8d7251aee69332d9595e1f84feb0115adcd633bb9230e7d1cc5648a1225ca1f4b1c5875844565a935d6000bd17d4c6ca4587185295b94410c2c4c233051dc54a1881f74f14304275a2083ebbaae4ba680739cd821c31751c0c216946093c2a23a82638a1853c680c5154877c9ee6362d385db1d5a514ed90249148678c211ed3e26364f28098289cd0e8498e13e26364b6ebc8f894d123665d882cbc8b9cc65e85c66f968595525658cddcc568cd20289ef7e086a2ec52cabaaa48cb77a176ff5ae2facde710cbf570db12e668154975287eaf29a5954ec15c08e4d20f1ef8253d371c51de6a1ed2690f89e7303525dc63fad8a560c1a4a43a1ffaa192c4c6aa9fe98dc4871e33b92d5816ff5c70489cf9527e18872f93d70804fedc3bf815f9e0f197e4c46a20d19826ef79e9c8c683f363636361ccff32123e7764f8bcb8fc01750b60874f1b345a08b2dce2fdd6ce246e00b2d9874df233d1626717d724604bc88c2a467ec05fa1822002aa00a2a3ac1f7b86d076d341e44228837dad72fc79b82be6f5e785b7c39baabcf870c4cdcc7970f8707c61dc125681090149b2fd0c7d39a33680bf3f10565c1485fd15708c07d3e413e4142883378c268f48496626a29a62770192e5c860b7defbd96f6412fe873e94c9a666948d9ad2db31d893651b15fd9469ba817d7d09e9deda45b37bad076d9a5cc5a3413fea3d666fdbdda9eed60484a7d4d6e3361f473ab77efa7ea605916255c9ab0a116a809c36e59d67bef594448414c17fb80c9643bd3b5b69128d3de65f44fb4e5c0247e68bb814bcc167b6db6b53676c95805a5545a96f5de7b96655996d5b71e94fb2c106bc7bc65dfd6e5709927a99b15fb15f73a0f7e813af0855bfd21deee399936b331429df884072173778cd2a57a95a6e3b511219ab44f6ddb468480e178deeb266adb2ad401711b8afa2e436f6a9c358d98bcfa55fdc9a417df49d9977d20d2be86f0ce5ba10e881bef9cf7ddf79e55898964c1aa8697434654c7c8f1a565c6d1ca800b1282b8dcf80ad299fd7812647c77f79ba1d1cbf12ea436814894966559b127bdc9180512e826153e480ef7bd372113bd040e272a7c7cd7dd1d49dd88891bdfbd840adf415e931b615a8a0abf448cefc904c994dd3aaa7182e11284793858186da28eb2774637ecda6813f23d655e0ef80ab2e49e23a804ccd7699398640ad10c000000001315000030140e894483c1601ea9ba3e14000c88a246665418c9c22885411c4531c610030c210000020c00c4183354750ec1e0852af1dfa90c1adebfe3ef88b7852ffcbf3ec954ba9986e672487c3910ac954a701b610f9419026508cf21611e1de71a31104c0e50b8107883b405a1030c182ae60059a060b450b5e9239b0d2b543010f5a92abac48ccc748299b748fc65af3a90e6ee994c1f55dbd272d7fd8b610eb42c62282316d148bbd6ee9303c14668800a9a2cfc6e8f0fec2764e01a5c7d63c88142a5a55a7883e338b0ce3a83aa8d86c80a23e86b730e8e2ebecec84e851c1de10f22651cb7d3d3229c34034ffb801794349ce628e7661d3afdd750d44ae2320b8d33d4c659054316a0f4712ae54f0654b6c67942d357426fb1f45c52b3a8ac1ecb032e9d6f4e399fc3174a652ad36236675fb6167649caafa4e63d91424f11e59f8935286aaefc033de4d257cea5ed14ddfeaa5f5f8952176b5134caeb2ee588b17ffacc0b6b77a8de54840e8a8d5320b41579adf7fa0367ef9b09ca4d25d13dc3ad5fbe363cf69048fd16182edc0a1e76ead76289c3ead778dcea9246eff17c627a52aa317e78dcf5b067bd4e49a3bb385ef2ae6a69e59f82f8bf7061090e06f53067086b450357f1ec334013eb5014eb1b1c34d278b21ab1a382fc36478d60c1a3424da928b077082e992ffac08c7ca5d7f60abb567d211587c1c5d7d225b9d2db529356588bd4353e0bda525aa9f81c03c1be74328bf7b9820fcac2c6ccbf9ee8c97a1a5f345ddb023611f474560dfd6d21ac51ac87c731f921ed80311a122ce8aadec728b4c57e2617d1ffeb93a727bc5d1ea03d8a0c2b64e8665a4171f9bbf11c0d4999da5db5c4538a5ff8c882ed6d76626f5492e5205b7b3ff116e681b2f8e12a02214ea5b1f1e45ae0cd8dffa70c6c35ed67a9b945afdfd101308f84d8a016b39abc129b5356fdbcca56f935e8fa2112ba2f083683c77046cac4e40f63d0935bb2ed5be89575a16e6e843ce856b654dd58704120722e358a0525e87cfa8f3ce2c5d91f7705d0f24cc4a98c03b32ca384f2915435cd9be1fe8eed52edde3ecc45422dd61d249c2ba4ed8e864efa949e0f5ac1f4f04b8ad6a8cda18ee64be9b5a4a112d9533d3c1a59660d00f85198e4007bb54f39f7a05eb7cbc255bfdd7233d8845017b0c20b618a6eb38ef0068af44dbddc5624cb4dae7d37171da1738934476dcad413fd050e839b5ccbebc16c0cb964a48d3e89073a94857da5ba11866738d5ff196b52dd253ba87659ffbc5c5163cd073a90548b7a9f8a15f9aaa3841a54f61a1142f9a96372fb7c14ff6e5ee0669129898a3f19bf696520030d5347eb6db6e225688c2a04f442eb65b62f74a1eeb8235980d50b55e9c29ce6f89db8a66cb621d5cc68d7fe3f0c29c3805c7ade57c35756789ae298212e797296dc65f10cf110ccc1f6a2ad1a4f5a90392ab912b3b22d42be5813e5ba480e07bde4894cf73a82df6eb4b8e7e4364c9d6d675f1119bd6402dd049ddb6d62bee429242104a45a9b1af2640ae74e2cc0afafc8a5184835d9e001feae43898d484c1ef83da1476c8f63e18695779f5724db3dd93a3699c4d63617e1bd32f430cd0df2f1edcfca54327e000a3fcce20f10c00f246cbf0bffcf8513fdf0b71f0665fb4d70cd9f291c993fd6ab265a8a144a1fde33400bc1776b2b47de1fa993b0fb2d0175eb8f7017f69b86c145e1b8985524681d987bfe7309fbeb8a7dacfbdee068116a22f6809181b3d7c75aafc955c2682b35f926925fba712952dc661c468cecb720137189701750a04476c3324f3b8f754a64b99ae8ac44d2a968e3910c1f049efa13d852c8e09b9f03c7cc074d29aab9170739291407bc5dff6297dd382531a19df9d1920a01051196bcd1a6a904b58ee1f6dff4767330e124928a5e4806b97eacc2b83e746ee44359c4f30a9f90282d2f04008856791c37a50d8264403706c462d4c997b68c1942a553d55a426976f40b55565bc1f423368baaa2fce0812dc16a96699685adbecaa1482847268863cec6a98f018396b65e6d67c67edfb9f311601058482600092dfdd5f48149c1844430c945b37389d4bdaeeb3b8df2e9973869292c7a6796041502b55a20369d65f94856797364445a9d810184403261bf25578d21bf7656d708ced4e7ba64d5d430bfb1b950899d0bff82c741dcba33802766fc863f8cbc9f3699bbccb98424222ba1a4fbc0b4982e7aa2c84d17950b335f6ff4785ee14c8541c6f61b30ae459e28410a95aab25b389b239d16e60bf0c4825a02409c50aa895893da87e7d2eb1ddbeb6c2803b616c90972a23e39cfcb4c25771f837cf7627510aef9096d8c1f6a84e863689d14659a8ab7daf7515eed41a5bc3710e293f89d2b392806b2a89c647e14f11a557049f948fafed608a63cf14fd247f0717207d5d521e7217544e0c1afa0c4175c708bf4de6864e72a4c9ac56d37a1a21698c427d8f847c4f6e34390ecc97b12d2ad13e907cb17b4543f0751be562dc66448ac2354b776068b84276358f67a1ad8ee7daebad801e423b3e03ce7f9a862ab8687a69546e7811bec7233bdd500141f3660e5e13dcc3918dd1ae5b0860e26a72adc04c99f6edb5f296203acbc8cae73dcf7b8a1c5ef2092eb51deaf071173f1df10089b0ee7c780454e1245e85793cf342fa97295c4854cc288b1b9e2ef5eaa5a2eda46f2dad98488d277e14d284e0f170bd9dfb369af13b94298f02e03dc59e74e679e423dddff7f8aa360e625ec0152e52b5b1e8acdd3b945e84b1628ee478c46d0cdc3a1100e5bc080de5bc29fe81af42d35a110f3c90dfa6222acb40f4a41c5ff74a5239cd91cd9bf74df52bef65bcaa784589606252c7f320c92a16dae036de67965908733111b200876849bd9d419e9ca92d065705908d1d134ac4e762282c019e5c9ff752bb1d8b19343ba33fc7e26458810de4a21550b891ed256c9c93583277a0765285a898e46bd294f4644e34a55cf056c7ab776c20599b2349ac8594ff4add917be88db9fe504bab9e4b6acb3182f5abdba92da5c0f31b54fd3da357bd1c6fdb3954eb87a19ca6c7cb013e747cb7b492163a7f38c54644903aa8dc683262d853b3aa3fd93f820b0f00ea901374d30d85970896589e37095bf381b1013dcc93a48d49b2cd3067a4bb02da1336a51a683f0fee9c42243344bbacf380843ec8b349a7c283d44f94b8c6674746b8a1e7e29e4d41b15ce7a5dd12719c33b0eaa08249ca8a30755dea42cf4969330615f2bb23dab6142789aa514aa22933a77a93e1a614ed2afc989f85b66a2cb6c22a63e4cf38f7e49db74b4711fc4c44ac4b3086ef870eb19651c186aacb8ad5d5d6c60fb5469ada940d8b41fff3f0118908bd11266965a7c96927e648c2f3f123cca42f3f1e3791251f0c9f6095694616a79def7f5f9a0895522cee3b4c8e6543cd3a8fc45ab846a2d2520ea59459ba6010fb925a406789ee5cbf95308284df6947034f0709e5f0c8b3588ff84c528cc17751a8332550254880f42afd1ab5809fbea3439a8e38f4da6bcb314986df27d7d9585584d366db0f089db5843e5c80505d890cea52379eab203da1e6ef6a9398de99d82f47e993da73a75d9a1db9b4c17041487db8a785b9c95bea602f74ed36197177e00353e499313f79da1cbc44a13b1c8a197a8efd457e4ecd5b0afad0573b9cc8246321e0a3d4e768f10d480242442096d76650c332017ffa021b4e7a22402e965440fac700736615ac3b8324a7733e23c380ede7ace8a4e62bb51dae8d92351b9e1ab05a38516d7d437c83604f475705b9c28f6c964fecddb8fa35ef8f45621bd14c0e45484c85336ba684325dc80031c1ceef104bb9e5085f1caf791eaa2eb2299226d385b11208ed5b5489de1762ce46d3d096d5cfa79bb4ae19a1572afa9c07a825e2de9636ebc3e23fab901c30ce040af75bbe0cd929440729fa8fc2cd63f6f566e4f609a5aced8dee7bd005eb3e8f035d617f02ee78b785cd191a4aa7ce0bdcbb74c9c7ae5551363a3e2b31738657c06ca6e62e1d98663f75ad7c0472e77cf76b713d2a7f73547a782cc12aa027d635ab0fca40de2c22b076fe5ffeb19fea276a80125b2f0325bf56f9368e3b9b7a11abd2d2630cbc53b5dbe120d257859b4e2567edc0f85bfdcef375c0372a0999bacf01160225ab10ec4fdba3eb9b21d33d9864a631363c3373bdb7889311fdd85ebda9bfb6a9c5e2844b51c58b22372607b51e16c1661ce05483780bb8be4ebc98e5ddbbd989147383616a9ad338140755712315efd771d3c1713a7260e5ffa0d5a504c173e6e65f9aee1cbb58807cab9c928e6145a5fa3a41897cfb5213cd5211afb3f1908cd4bba5ea0f478770dc30b8770f71572922d6872c0ba49158e5e4e9db3ffdccf7d1fe275c5cc623e9aae2dce9c8d1893addf81500af232bc8750997c8ab5e74899204b93545ad6544390f6116d24ac54464b49cc5aca63910a5d8e948b3cfbbcd2bfbb74e900eb48a2b26f15b8cc9a3e8f3d8ca78653fb2d619911f850f74a87da60b62971645710339571ea8f9c006442830f3510fa0f85b1004de84e85e6321a73647e39524c2416e39ebddb3700a0aa56362a8b1216edcfed13f13749de9f577519e0131668d45d5a475799bd6aa179777b5a2cf630c53f26223d24e7919aa9bb003e14fe53daf3f022b8d0f10adc384722699499d0a5c0edbb1998e8f43596cee4ee6b37467a70a99c399d619f815bffc18d0e7fe89a8b2d12d6d7a9bff7cb11427f57085bca7928d56350555c90a8135c1377c8413374fc53d0e6e1cee51ce6e916f3cbd6b92d6812eebe955ce5e2fd2710a0222ebb4fca316e900663a39be430edffde10df2e40817728cdb55515b6e4cda7c52a14a6968636c1a26410b12d4fb88e4683112d7e59263ca6b9095864ee79056a134eec7f889d021504c92e76ebcd21935eaf26e5721fb854bc67a54e32d652b8c7e8d1d768f2f2b2ea993697d74440e1d986afe5770ecc65dbba41069055974f10aea4faeb3f6cd6d4ea8cb3a8673db19eb3281bc11f202f3473f34333731e9c79e74194e9e7e81741404087dc5c784f0bbae859b75fe1a6c7aa9fe2be16a9dbbab836125e8ab78d4ec12ea9a9a623fc1a20a15c72b4c7430e20dbb0c3dbb0217eedfad2ab67a87bc6be14a0c2212858837df8e4e378d0344873631d205f13e9da0b579e54e26c051299a6050114b47063fbe2efca6034640df92119da54e065694461184725c05ffe3bf0900496e91c5607faca5f52d8b9c4cafcb8de276df039c83c03f830c268a2e54dc60a3cfabef03a49f056d24337131e8c4908b08d54fdd5f9fb12624e655aa520bf784625fd00bbb4c2287e4914eb0e885367e7081b40e3779524e4be904f472e6f8c9004559ba23e08489d69655e4e40dfa392f538d99dc8fdcabc4b69f643b89d6f219020eda83126cf96336f6bac5a5931ea0c7d296a25914bf0dc7f0645e41c17dd6556f57f0ddb121acc8c2f9f25fc3bedd5a93c50d637932da624a2fa90d80abb0a63ccb6581c99d13405de24841f6ccd667041d8f1436ccd9b6554f2ddbadffdaa2f5664ad4e86aae436d8cbf4b2cd5a982c6ef661a926994cc7728907ac3b4dd4b67bd1411a1a6cc680ec87aea371e262b6bf5c0b2d8713635ec8ce7fc72b059e3995036a814bdf54dc76d73a494d6f490fb3289ebbc22ef49cddc50c11623432a6a4bea05052a2988e2bad0a577ef4eb171355ab4377b9ab8148db4042ee70bfc41aa6cbda2b547061cfd4920a9bba58712d8639584d44cc21495c0e41de900b3139b5db7e20bf8766978786aedda8e42c4520b33670c671289745647c48ab2f8c35f298617fb278d7cf7d8cbe29c137872baf2f271d24eb62d693fa85527b09b5041ad48743f0d936c558eda745160f5f9877e00cc0bfbc35074cc9b8df2564caf8fb3c1b67c5106706cbc53db84f35b16dd42de492d0a7f652b50a2d95731244d184d6c72d8d84898d87f8ae51ce3ef0c52feebad1d6c10c217f7592a27d5a6a26e7bd1a3f4416dbe042b516028e09b948f8d1ae6c7a27200b7d359195e27d097259c647a6155802f2ae98ce352aea871f6963e7119ddfc7d0999faadd3831154763df5859b4e0764654174f3d811c1b9ebd4a910e5bf79f9bcd92a9216473532f10b6b3ac11de41e68431f98ec2abf657cd65f8fa8444825d2a864584fcd52b5da6f53609fc770a7b6f3c0483e165f4292bce6c8cdab1f495ffd826f851fe836bf8aa3ec13a6d15bb37480f5d9db0547be653040854458b563e29147680853b1067d846e434fb3ca24498a5444c9ac6f7cae57149f71fc234009932916433764916d379364bd86056db1f7264992189569d0cc4e51d8543925d729253d5704675eec30da09e0f0abc4d4079e92d3fca239380b3012a466167a6ec84b42aa7ebfc4634a2f4e502f9f5d0e95c492809d523f0cfaf7ec423b0cc77ea81f7c70097e3c54c8c1bf99cfbe831d122d330db079a09445c1b247b8d2813a92ad291805c7f4a8acc6587aa35047d3bd2c59534beb5dbb0fb59e425040871ad7dacfe18366ceecd91df1d0e49447d72d509cc20926b27a02b76d89ecb670bb881c73f5bdc5612929cb6e7d7b7ad50c3b4f83b5e7ef91e8ea593f34b5bec2b0f52ab22c805f71b9711a5ee30c7b6df929796b7325c4cdca32c0b25e4d4ee3e852caa7d01cc83e763452d1b575b95568afd2ea0bda73a3f8f42cb0ac2eefd4bc7231189201e1b8664a1e0c402813f46cc98469c3031da165febb87ba9420632c0c32d46cfaab2223ee1302ea650795ed04a4d01100c81f15c5bf6532b3484f846b31282305c863073f2b4c14f6b2bcd91f4396e5c7d218a3e37251a87a866adb92180142c3671b468a9ed5a4b00eeaccf297a49f8e19275d08e0ed8d3160cedd69eca6de59cc194809d09a2f97f4f4b6c7cf764188fa10e56df46f6b1c92ef3c054289b95e350bffa9095a3825b51e6e21d96bbba0d4a8fa4e35c96ee93ab7b966912e18c653d7da7d029aa1ddd035a68eaa3f646c46908c16bb4ac3ca58a6cf382fd2f54ea4a85d0aa2d65ca1b34a9e2be6bc45dfb1c2571307faf0a6376d406a6a73ed615acac503f26ba17766a19065a5525ce8828a3195610cbbb6e910577be4b6a1a88d47ef242fb0d4594a44b68536842051e96f96b2514bec25a1e210b95bc1ca00f3281a1c0dd3e2a985214976f1908c0e26135fb5d66b7df9d800d98e8eb48ace9e0a964fd807ea27c8f7db6fcd981ada51f9c46d351ead040ebea613544b911d783efcb768668c5d6bcf0c1a5ad76bafaa776ed88ba3348b1d0b59f42c6e01584ce3f72255a8232d1c9abcf16d5ea9c027f38d9d31b7b2a82eef12ae9eadff42c5bcf36370075d0c3057ccd45d001c0a637def7891ae52e0243535b6f120ed1d94393486d0a04c1374638cb384313bdaab23ef64d64988a2c760162a4b7004ef22387bbe388105fa38bcbf6aa490c829cf3250dc4b29e65bc549e95381e770a1bdc7bfebc521989f6fcfa92263c75e4271734de7227bb586c58a824f3f5dc72dc9ea25905543e0065e626f27c2125fde946753fff3f2ec00251151ec6db7fd507c58aa25d0d836b31fa661fb0c2fc036952f424c3b0c47856828294bdc76d98f77534e1fb2dfd472e4ed0936323d329ce9d83f2048867ed9381e095f6909c42969bb7a234571b161231c8ce82d4d1f421f81163593c360bcc16971968e9645e6d8c25dfdbaff3586f229b001d4f7a370e9f5597921e364579a327594fb650bf52f204f32024c9f1faad8b86d653cde701c9f60702f842b21c345913d9abcf19d58ec1d2a3553829e461a4976f322aa22daa1f5a11b6249f5dccb20ed691e095190c7a64811daf4f1be551a8334f29944cc4bd7c87830408f940c566e0179abef032ceb96ddab46d81309b250bf31793b03f7e2d6b51eb3a565c403f63a59554d2185193392858482e78b0b4b3d99192687c897a8b3132e525404d1267bebe8088e9915b0faf8610768c9ff04c3543b6b5d4dc3e6ddf299b342588b50b7acf11b2786af19f57601121d833bcfc01d1ecdcec3eab0f19f3f2d7399d94d1f22f619e8a9506271a420a3e28f4d79764898e02d0123e2435282fc09325bf80555f0a68f27637fad64b11a593b81fdde8e5db8bf246129d9aa6df079742614771f85f0ea0f9fe78e3fc389fb148ea8831717c223f011ee99228c85f46d94fb36647099b0dc61a4aa19c54603fe95d7dc524d494a52c5453b1d3ac340e106afae825b2689ee13ccacf8f8b86924782d24f13aca49553168518e25f6f6f7051c8044848131a541c55db08e96f22ce53ba5a5ad1f20f1e3cbb7ac5079984f2e4eafd5489996345d0300682a1496330df432a49439329c59d1075845e60a1a9b332d46541a5ddb6f889179a681234663aa4dedb42b3a058f73078c2ba899cd1cd5fd972f1d98d24cbfe95a63556f919a27427d41ff8fad40d6f9eda80f4467d218eaa24e29a656eb544fc318b07d0d12a8a091dda4a18aa34e3e70ece42868e88a209e68e7b62d1dab4724bc2b93df64231c02010d5527e6c22e4a4511471a3dc3f03443d2ac9fc33a49fd011349f28951c86bcc164639e7ecf02e2710289b72735f40604c5353ee87e4492ffb8e833bbb11f60cc4b42055e66743ea3d11d53ad8ba79b684c9295dcd8b96522e3a386971f5f54030a6d78155ae3a63476df379d7b4e734fd1ec499961fc340f284e9ec1ea10fcf1b057321fd4ce3f783487c2b57ce24418cea8d9113cc5d2e7ce2425ed18590502cc0ed54749caed8c9ad84d0ad60c96f360649a32acebea3b7ca46f586620ab6ad67c7f3585d6c615962e1a931c113b1448f371efce214c5181be60ad7abbc15b9aab303b0d2ed0953e8fa32bc2beaf84f03a9630d1b3caed1e1cf523d646f9e0d10d61a956603efde8c64402cf93fef3d316c10a911daea6e4e89604f6b447cde5444b364dec9cc2b151997680a50fa40f7a57b2351d0cd90a36cb8f555518de9f82ecc27af35848d5728897c62947f5572d326f1848738092c73c0bbd9c8292294ac143ca215217f135a56718125c4c706d666f2ffc1cdb30bdc7293e09ca15aff2735933fb0db4798a99b91d82285ea3c8b59af1eb2f60ddd49137a445745800d7cc027cb8ba51f23bd2696e150e61cf3a63e9a6c79fe7e22e98e612223287b921079b6226589474de659d9c86e21966093a4ce234444461cb4e934dacbd7c1a7d40cf188e1e4e0105503c71131e90361c714a187baa174b6fd586e7170386900d5635563ec37b8a989e4c61e12b519f9c70dedc7ff47389f2dd8a9a7f703992e9f67811653e32e616106d51f66fe1a2654a3db64fa5f13e5267407acfa767d404279f361e505e1c1ad494c8787b263e0e152ef3e188315c41ecf19e91ea2984469a69217fac2c267095491b2ee1097b09e537afb19f15ca731911708208edf2bb2450da1a8a8cb31517cb22f9ee6710bb48c7c2c27337d352d8b77287899def13af320fd564016f01eb90d0c37d10ee74744b19f4a1d19e80d1f841de8d6b549d78959dfa02ff9193cebbcdeac4241192f386f2d13088b82ae3ab80db5f9361948cb253719b88cabfed755041c43e4902ea8e6dc67866aebf7fc5fd082b3b6b7e4220bf95f6f08cbaeefb4d135598ec7e44f85d78d5dc1d0477a35c19cd51483eba0efd2fe1a406084f83f6da60b2e2e05c7461e43e5aa9aad45d99af62a10f69940bb1676035cc9b94767f9960d81e89877dfae529dce57173863d77e8e7fa0afee0e47d68a1dad46ee1070b4c56d0d319b2ea9c275a802202d3a1ea6303880481c9027cf5dd66cd8596907a01c571f54d2fe23dd5041174e553f7b0c9cb01d60e69c8109987aca460340601a0b5f13284ad8bb3f4028ce2a30f21654b25d75a9f67bcdc889b018cd735921e9ce50e13cc27343473fa142b71ec0e60d05770507ef93f2c6a650d611b09827a19a58b97e35f455a6a6254e8ae8e159902676e732a1fceace42aa0e57cee02becb743cc5dca6ace86689fba0082f2be4170607c6525f2b071b2616c759541fb3da1782682a0d3689a153043334c6b4a05f57fd77b09fb98b5989b0eef63906a62d8d171989c342ea1e2d0c13fe03bd5b05b42118b79471addb6797e3b706cdf7648c61dbed0c762910412ccd2e4e44a5a1658275388c10bf3f6af8b875ceb27fad4b4eeec35896cd733dac61a5b3b807c7ca7c1f555b69a065ab6bf7757676781debef47f766665b66b619d0014a5dbf3d6be2b3a32aa076ea2c38bc3d16332d2b330b438bec0767b4d367ec7edef55e56628fe13fac585290e84268e007225e2be48c772d20aaf92a6fef2c4d582b1dffb002492f405955389b053d8f3d73277289a4e080229fe70161ef97ea51cdc1474c61f7399131d3cd247696a7e4da8a982f4399b1078473818c0634cf13b4ba20b9cfedc0f072b884803b268a0350c68839f0e353ade2ffc82a9f77d520f03b31e24a0821fa7e2a0c092d71547734e11aa3da51921acd7d3591381c088e936d7726790283102645a1a31a94842442da17e81f4dc24bc026b4b0763276e11591b7486538388b0f607c1047b02bbc7de31cf32a83f1e2825525752e985304c01c54e821d7cd136917d6e0f18d4d47223411abd81fa8a4607d16518815db4264f268258447635a381f0b7c8839af183046665bd21681cb17582ae3346d135cdadeb4149808ecf3c9460220e7dca21bcdb010b70cf77fa10eddbcd5ff279071cdc329bed50dbdfe3a12518d22c90a158226ea21806c4b820ae6593090e55016e3567b22ba6fa242d74a60b712f6aa091aee4125c13328701614b2e1fc9ed49200b7bc903ba0ce4402996b92d972efdc17c762aa14c3817f965247e4687167fd337201899f0c391db45a7cf3a1be11a46d974232ee89860979186e20b29f9161218f8a4e3460cadc8d6382cf98e889d7ed060b5f44a5f4025d80e680867e8478c35026af45d14985be991e8b2ae955e010b63ca471acc0a5e545e513a360c827e9010979e5800252ff9b661cef21d5baf856ed85a35624ea33be7e1caf1aa9f175e83bc89e52b03e716b356d03738d5b620538bb127494afbfd561ec08538bf07c67b2260e7afee28be1c9e90394fa61299ef1580ac88a1ed9fa34d68f878c4a9816f3584d201a79b7167002b93e9e909b24266a9d930b33e572520e82a6b01eee637c1b2b19d732ff3d5215ca53c378364e0504fb9e91e56328ebac83c67a04a38346b6c230efe4ed013fa4a2482b9c33f4fab8bd753fd46865c5f2926ff59cd3df788b3816904f7d0859415a529942dbd9f84d5982ea468c7f3def708991c4c41a25e7dfe733f251260c198578b57634223818dc0ce6db334d6631e27e8a068b246310bcce1bf7c83199821f3025c740eff3c163b34034a15b875459f72b746ac7e8144afaf98091ab0f72773108af9e85d25e48ea00b92227668ed88078c4479e1194b81124c06f5d501ce8f84c2f58df82dbe92a415ada9b6320780b86eab0cea415716d601dd9db18565341bea3bdd9be999f5d8267cab96b699510877807c619f1a491a66cb0de9ec9c02b84f5d544e318d3dba5f2f5549eeada8df5be2dbf50db88796f32e69abf9fce4f1f512ce0793574ceec421f9cfc9435c37d75e0edfb41f4fc641390949a96ceddbfb0c73b45193bebc5affb32633dfe9fa3eba7f6a4e99f874fec48b4da4c08f9a1d2df36e0ebd6e257803fae2272c7ae554bdaada61be7c4397002d59eb61f3831abceebde3c0f26df00ae971347497b577f6781c0e61985c436c6af0eb064e113feec9f13e4cdb83af8e583eeed27de0921b65570a3aa011178f849d06e004f7b1653fc2911d2aa22fde1a0d970676b0dc5d33f1b7408effaff4136a44e6d7a4ccd96e083ce90a7deacebbac39db0e985976e32f48acb0ec49933aa6a6246c90741103d14bf1e6c516e0fdeafa370df895ff125365bb306c17bddf8e460e7f97a05ebbc11b0417dbf627a039c5f728a3682608be08b85398fd11f0903e69aa8a6b17e7c639807fee058c5d23d66fb23b7b6e54c7834e481dbf462d344f68b7eee30fb135efc0a64cc28e92f9dceece4e4e8de8244ecae0720c8c6107f197d06af3722b8eb0a21d24c09d2aa5685946422bf54116e98f11671a3e2749ef5f98c19f5ffe5d6b080eabeeb87b803106b4567c69dad5fba6350a08379851e71929ac31e79748ec948b298df7388533317dca053f45f00bc408640986152af59ee32f057fd64359be232079e077c59bab49b2b66006055a8001e5676c2ff0e9794cf6445e925887291a37e4811b4475a462b9b4ee1b20d15e2fd9daf35856347db1e896d9099a7a3bd48abd609b1ad77bdf1f46f1aaa790d4cc7498dae9603c65a16ad00801344b166e1589df5968dccf1c9edc1ef1573f4824968d76f677232171a470a37057c219a6fde0a8ece91e54fc5c8a2dba63cec43e92a285cc5fa503c116a6d737974187cdfe6c2695022ab56e7eef815093ce971bce8cfc3ac4ad93815293269f18b99db41f4e3485f9e356a8d328bfd4d5c311b6a3136f0f3d7899c5d19ff734668d1d54a5810b1ebdccab1a2207b052a5c05b424385e33e16a47158ec2b24a3334c628389b1d4cefc38019d95b523c321618280cad6406d7c8f4de039c6c9e3962f1bcf571acd8eaff95a5c36b75b5b00dacdddc81134e7724718a81cc3bfe8f9780d1ded9b9298e66a9701779bb02491799b6c4da243fd7f673edcffd878c0841eba42011eefd5d5e8d32ed0e7e7768feefbf098a47357254821d49cb116f5f3a8484f8720fe61f413b4f757a9ae4492b9020116b4f5fe0f5f54fe18da5feb3b199a2194fa1fadf73cb46614d7946c66aada0be9ebb103f8da098b55ac999e7835f2a2131e83f2521e1c2fbf47260f82594706ae36861424fe6cdc6671def31316a11d98361e90d3179c60ae9eb99d913a1cf0586374bc3efb262a95136108c47c28c319c015a83cd63fcf90735c7db6d16aed59e312c479cb5ee474af33f2bf365204016f2900d319974a5b043cae325793ba0f3dcf9c2609385b601b9fc88ceef0c5e6c0aa244d44b89604b7e06efee11750e03e0ea4f3ee72d7ad7a7e180afc4a7561ac3c147eff46b77f520c4a12fe6ccc5dc55b5c95698459744506270e75bc031877c34ca85b4b3363703196e86ec6f7ad513e91f8aa18d89cec909320e946785e299321ef8fb22a9679401ca912a0153701888da10c8092a08202dbb207a32e4e37d18d0f87df926b7ef016d94852cd552007ac76a001498af13e81d9bfc38ab6cff4ece741692cc654784da3372fd37008a2f5ed334cd526a197c050cc0bd83be6153849db9c0a1e443370e732e0a2aa688be2d29de27bafe19853549f0275ad68d96b24d5ba06ed31288350034d7d9be60dd23f87f6b47cd65c6addf69bb97f12456f09dbf67eec2fab73220562883583d7074e633d8fc018c271eb472d1511158b3d5d7bce3b3a8d393a0aabd08f24055d389ea1460221fba836f77e6c0ca7f1f60c0003dd98bcefcf32811021311a6f8e908e8ef3425b6ee1cea8da7ffeab7bf42024b42ce560ad3164ad1c5f2612273f6a9115638f6ff812720f1cff456db29bf798982ab31091007e00aa8bde802ebcb2b2558d6e1841bd76e770264f971d2b688920d5adfaa9e21a0ead30b16d20223449c1f2ddbfbff976a31920f5d0badfd4a2a6e5d172d4fa8590e86862438b3c4314d2a9708a7acc49c048b0187182fb3f04cf6e013c394f591adbdcf6166bb400ed13a73cdaf0120bf90f5d1b82ecd2712929264f5b4803be9de04acd003cabc74dc616fc405828e9ccb35a09168526f41b5d48d05e67cf3fc8f49a9ccc98bcba800b3f7f8c566ae2a1d596934308039f77391031b1603f8fbde0848b2b3b40075ddeee9362fcc5d53f70e9ae7c68ea226fec9e9ec5bb35c932abe5ea20740997422721b4e96de64ce65075f5705dfbac84a7e3d5f402eccfdea624ed197016e8f96cb23a78d6a8b5cfbcf563f1c4f4fa6603fe3fcdcda9f77b82a0f56cf840f36ca002cf724aa301f9051021ff0bcbf407cb3498a2bf55b952629a927ed0162547dec876f120f7c2542453d7d918153fed84f863a608f791c9f300750250d2057c5018a21bbbfc7724098b3b883a08baa44964f1b5c8bdfa2a4aa83ecf586ef6904aa0681a4f4ffd5ce1b981a78c8700a54b4d5beea038e5966e15d9c44bc3b1d9c22d59d469f19bc79066da14fa05305a739c4a9345f6b352878165f37172ce3612f3912c72102b494b6e99ea04503be4aaf7292f15fce144081e417a60fe0d632848957a617d6bfa4693cf0ccfe114bde3833b8c13601e0d8442fc522adeba06f3875f5ba40e675aae15e117d891bbc2fb93c9f149ee98025ad06473f64f7ef6d8bf0335dc2fea043a884dfba6ea1380a76e425a27a86f50ec0352b5ffcab6ecd3bf7f47531ce29330e220a698801f67a4bd5332eeb7fe22a482d3846941ab557ad2095106215a9439eb27043c866f10c553de458e1613015a2c8bb5a5e714397eb36b4334de75b4caba016e1fa19d8ee274554cef3386c318ad416b6cb995b4a1da05b29a12d3667d30b82944394fd0541c9d6e25548d9da53b5b3074f35773c832dad4215875bb9370b465793af2239a5148693cca9b2dc2e8729921f7ed7aaab559401ee0e4459577ab80995727d8e4669a62ad74f306cb2189b4810a15a04c771445cf9710266d1e6178bf521d072c2033e9faef2d5495b0e4555133ce7443571166a8fc84f4d1ca916d0d42d0b32088326b35e8dccc7ef231efb15ef80af61e608d0104fa2c5345a68cb148b5ad3e1691c6eb7b1e16c966e4b44d0540be83cc70126f1257f24450dc90c2005fd887a405f69525a93fa7a7c1e9803a41dde423ed8ebed33101c5a24d9938ba6af6483fc449e84bf44fd042b00102dfe0f9497532b5ca3efc0f95aed60c2400a372e2e3b7778eabca6075217db5999e0f3fb3f8c25d593db9ba1cb74ad68cb85e8ce572fb0e451d69203ae0dda438d3af8346b1583bbeaa79070390b6aa9fd86d792e62a52e0ac3eb98c80caf0e0e4c8a8ddcc1991f77ec00edf22a0ae302202388b7f888c6c70a0cf85a8114ffd247a6ddaf026c4ffdb6ca6eae1d4edfca877a0e7088682d76479c8d61bbde4c9a80e08e30a3717f53191bf3cab9c05915f0feadeb3f20334a4d41c6d615b263804fd8d855fccde8019ef005934aef01d9e79c4ba571b71a4c1fda37d7322a037b39c88b252e0d4051075b39051c4201f7dc876c48bbf43529badebc1138c05bf4013a01f3fd32c4f2af44786dec701988e4d403dc3023bf0dfd1cdb2b7d576801d8970b3e143e1406193e78dfa8cd646c6c9b6840a50ad764f7afa25cab25120c5e9acba3866ff136ecdeaad59aa32ceb06ae9526c00e434ff04a929ebb0e146567d1e7be81c8f1a269009d8fe5ed62194a9caf52318b62c662d12cf5c237fe521e21d92ee48fc0e86755405978daac777d5f750a4b68e06427fbd15ac24654d22edf63ba7fb40b3e9b158e6c6cac48a8b3af947a6d7ab1c5c48e6c38c361906a14fa18165f7468a5e64dac1de1aaab294fdd022e3091051c9ab9dcf82ceb2fe4bd8892bcd7faa93908cc640b50d3774638e46f8b58ddbea00fdcde668913f11883070f265778c51953599efedc5f29a1c1280c71c75036941fc1e6c7b3cbe94c924bed44d43abd49eaeb408d92ac20167698bb4e8e1165e129e7d4adb77468f779cb88f793f9dd0b2651113bd76ec59c8e11b4403ecc5c4096ebf56623f389d76dc98bb6ed37bbd0064b7146b0d13da4ff6ffb3d50b35030315b40627776017e089465fa5befa627d9f6e949877eea71ec95c5c7bcc0a25c50d81bd6fcc15408f0ae4c5de446c4afdcbd88aeb49beba12a898dcced6fd9100bc2a546800af93599faf1c5aa529aa3955b11bb3d6892431dd4b754e0d702c22203aebe41a4eb587b2044d11407e6965a833aba9569a64d9e21fb5ce00335ff04191a39e048430bfd499fd37748d79e57dc966553721af7d211073136a7220413daf1a6da8ca127cb5e40b1cb0a1009670cf5810cd1a249a91f025f6e5fc183b32a30799535b7696e7ba3e7a7a8800248286865f4c8c161e492cbf6ce1e58aeb3ca3e6ca71d319ae871497a90d583f42cb259d48f24314dda476f1fe8561997c2dcd82514c66bdcbc7ff6929e80191fdb73b88063556cc79fa0ed13735cd77f19e264e037041772853336b836b60cd1884f934113a03183bf5fee33c50f5b5171e1d430d665fd8da3009cee3d2b37977cb2288465e9e56c86b6b97155a9d04011b68572ac785297db4b56a8cd25c8392227c552df472c6e859376b598302e62add690e9072a67fc2f0bcb723091c225f698b3e0f7ec6b308cdf4e86eb9964d27b8e1a815f3a24392b7072336498504c9c690e33ac8c0a5d46f4e1fd8e900c33be60b8f8581cf362df7c7dcb4a28d7be071296244196205d05f6a924196f7410d0481f14cd22a543305666a9556830131c4d582ca1a65d25fd740e88732f13f9a17d4d46c846b288d856f0f01650f8d19cade8589ad6631cca7f5c9ec3a8b1a84fbf22c1bc02d63ac463f0b7c068349d308ada82cc8147c9052cb211dc485d9f781be0d3d2390cc42f8aaa462e5046bacffacd7eb534dfaddd4c7ba6858abd6b51c86d1c63b57b189287139d67726ce48b37b0f944962030c9fef4f9c8976f2f7209c3f8c628f4b9da62bc0c537872583caa3b091d61ad7ff64e73596ca6fcd8322d900293b51161be258c6b50826f79eca592113f06eb427b5eaeaee4c7287b6167b5c7a54b1b28205457e101b413752d8d6adea7f2faded11e64f322747615cc72617ef20a9a1e05b04089efcd076a4dccdf450669f4aff9a6a9f8dc91c6815b2b8358361e0740bc64dbbb1c1c025ddebccc48b90a8f67e72aa573270ef0b1bbddf999801b1df0a4328e9f003b08465942c14aa78c080ebff8d39d6dc0380f500698b345cababfa61ad1733feae4edccabc4c6e1ecd524b0fba51f12d59abde395cfa27610852926a8b00201ba190e69fce806156a32867afd04e1984efb50f013f8291c0d6814a57b19f34e21016d9c851d75fcbd7cbbc6a9514122e5114c93301a1eb5202ea6ba8882a97165c4048341a755063dbed833c3b0acda1c50a11f135be566eb20fa6127de303ed9e1ad609b360c0a91d89a5425956ee78b6e426e5a93c561fc651a0ac87b54a6d5ba8d5be9f9ea95eab24097b58c39998345039a5116e3d128e782694bc368c39a8c233b4d4dcac52304959a80d16ca504aece532bdbb2fd939be879f630216f27d11c9c5dbebad73e1cffc728fcdc2670237268346bbcd8ec0c60d564a70d8896c804e2e0d337c03258fc34c98375a715f8445a5219de4aca18f99db9f620df56c9fab01f62646c0fa85a738b3c5ad2364fca92686816579aef2f4c6adad228b0aecbf0c231bc5680bbeabcdd0dbb09ccd8aaaf4da4a97aebdad26a205433977e9ee79ee0ad2ddbcf2296c6b064db3f26b2e2191fff13646e867cb40c5b65c91ab2939ac9c182161136aa466669034bc1a4392381410746b68a2042ce802fd44f8b7b82968c2c46c48d5a237f53920b5b5e537792460dbf2b9366fd75b932f690b5164f4bd8431feb771f70b85b789a380901d4e94ca6c133a68a6806072502871530181be16aa44cc647cbf0a5429840f25a8a2fc77775b247d819594eab1914c61f3c34cdfbf65ed4ee01056da340e36b21ec83a2336bd4e37d388456d01ca626a91e6014aad514ba54ca17d1ba231bf50d85bdece17413b93ae0c00bac5e88445e33679158414d3291551182db27fc3e111b198a90ed241175bf2c436191cc8247f40a92a54643b48cf5e234ecf6b40c25092de7e055098f71329086dd5f9bff62f3995b4c327419cf15bd4d7f1a5c62ec5fa7c22c30d04cb220f8a859a8bf67527c0deaf6f5e007ac4afe6d7b0b23c7bf8046e0e73bf832dab4b2fa32d94907cfb509ffae96ecac6d41831416770d47653958a8962f4b7f738bf01b19e6eef430c62c06d084356e03586b6be089751601ded559b67a3e0aab437655e7efc3034af8b61b62a70913aeecbc348d77afcd9dbe8968bb0d5e8a73a57be7a828c37f5e3e9fd3152357a037858cc3aaad1c81ebad1a79eeaf54f6b8000d30f93f29f9218406f8a65d1a6145dd45eebcb9365816acda70c6c165cec1942fd4afe35114b372c2099289063ea11f3807d975bcfcc413c6111cb7ebf1e4ce28cc267dbf030f7e0ab6d6dbd3bcb4d5d0e12de156f1e450d47ea068d728cf352c0013f0ee241db2cf1ccf9175aec45700e5569ce7ff8b263f11225b0a173e6c1028c9de73ca97e53f024b222380108590f5af9bc78df0f4877177ef11c53ef5d85376800ef65f398d766cb923397f4312962957532801c8e400a014640f21d5bb4230077a4304a99e7f331d3f35b07bbea3b9f20784a0edc24e4b6a8fc2cb16cc40114d42b6af2d4fd3fb9741570b51e459ac1738a0e9fd495046b53fd19d51540c985bab4a883ac17c3bf47bffba618c2b71254d95ab9a78f8d058e26ab7f8d157d281b2615ba0f9e416f565852df9947e5fd59d25674dc0c78832b864e8c2358bcbf9d4683bcbf3b135518229d083677227ee608f756b14daf62020027f30c687c841b54aef83226e799e4fd15f230a10a975f9e910d5c6766a9a3e8ab51649fb827b10979983aeab7f9a64a96d8f8fb77b1c10c786b3a1d3484342e7b864b5ac458c7a2782692ac0aae6b6df223083c96f7cbc22485af067de53c188231333d182561e77ea7825e4bb1556e1cd43b40d38088f491c3bcd7092271bd11222d5898861f8f1f2171090e51d86171628ba673c3d8b94c336d6fd54ce69ab3e06153955f18a11f8ae2fd7e1ffbbc0cb507aca2ae11604d17302dc016dd870041de9f8a7c5d9ed51b4bfba0926ecdb4709278cbcee6ecbb1dc40d7444a1655ca5ec336798f31ce79d7016fd838c758d594445eeaef065dc8ae503df5585e1bad4a7e96f72845f4c2c302ebd0708a09404b0ab80471496331250fcd953afd9d1544820291fa5ead2be4c0f49fa7c2b3103c1f8e8bdd010d0720be98fd9a98825d8eead33e7674764691096be47f30ece3de67dd49de67610a0343f98ba92d40a574b455da2d5331a8ad465d089984bdd2f01f1a0baf7adae71978e754bb4d32eab78061515cf5779222314018a95b9992a2882955be3a3fa14503bb71caf721ffd45d97ed629d4cfd3d2698bc126a7cf92cfcd929f84486cd31bba895945f9103c4b41d521d8f997d46e93a4bda2325da101b037794f30b0e2f467af8e000b67680e9aa0d1fbcd8154096d0ef48433623b706895c867e0677c4a94338e94e33f4c0f6b182bde55807eb28d1fc2131ec013ee1aa62c4ea30813462ba63278cd4d4e2564be6607f1cdc17e8209aebbd8652d2a5eb216b7bfebdd46f58225b27567ba5ee02dd384bedf0eb0ec06fa5cc31c7f01f41dd2a3efc396e44c5e361067b11f7c541ce3bfae07ee28c8bdf4f0bdc6032fc32da9c365e2b9ff2f1fba95dd45b22396278a4e34e6f9eaa2c4da729612906a2430e4600b24019448bd3d194efe13f4d0d029e16b82ae63316d469195cc00c475fcee42e9062ba2e7b0a68a4457d30ae88f936ce60e49194adc6a98e858a66ceef65e620e3132949704029e3bf7d8435f1844fdc5ce2d9cdf1a7b3b0f648a4ab77288fb67db5572869918ceb00ef4bc702924d6ec622697aa179bb17c535bfbd9b3fb7a54c5a33647b8cac4f9a8cc1ba16836f97a74fec6fec4575af447eb46ce479b93416a6f70d0a5456b170ac2fca4ed0748f7e325e5ebbf72f580d5c92057d639a2bc831b77bfc9453b8955623564b56cde45078d7ec64a8b93f2e2f1503c536a12693c7e12bee26a213941890ba3946ee1df27d6208843ccbc8764d8f53a75ab3cdfd4e15fbeecc9c120c3d90c93d682f013f79999f9b640335c62b904c789258a469c16079a5449fbdb9b9467d944c6b3de4a189f5592a0ad72e4791bdd67e0fd56240c0bda3c85d95f3150eef689787ad9484c34875125da6129658e2e8f5139e40631bac5eed255d9160e14d030477f93710b1fb16858f4e47badf54cf0cd24bef57b5904465d2a4b0ab44abad2bb692e2fc97f0a885db2bcf286d428fd9552fa0a9811950befccfa82bfbbdc65c72b34829acc8a044a78e37d723a19555560d4f52d7caa1af8993ca6f337989ce20395495bf33654f3e0aab0b5c13d9a63c55e2960bd394278890bb639657c4a726ea624be9efe707bba46c1bcf2010bd8bd449a8b05e7b7e687a00e8ba2f5f874153baf04efab9f1e655beaf9583b7530b005b79478d6536ac5d7f8243eb539c61755b8fbb36b303034583a9afd8eac14595aae70854a0620f12c30aa102049a366af940ffb4befb9e6cc16346044eaec0034a55de57e06254ff47943fa24be4e544cfd1ba09fcffe5fa733948e2277153caf1ba24ab0efbf37d1ad3751ad5c745c3358116633e6c8b117423f6ce52cf7cad758d221f129d78d2af47eaade196e6e2ada4da9037a9ec80d6a8f462675fb3fe201ef686743562386f988637ba76634be8740deb5b59f23e614fcc3b1a6a3b2e01c5799250142a658211f4a540df48ba47a7924a30c73a168472249f49c05b7d76b70793afc806225dc36398ad14e3c78c92c38d71a144e67450ffde12c71d0669620a3a61fcc80ea25e5ce7e8aa9c8a01a3927aa1c0f7b4f458d1852f80f9bc6c48e1cba481d809e1b4275e6183213f99820c29983755f28b4f5f880ec7dfe682edf0725dbe346f6d17bb004d7648116f834b1922a0f788b18cc94fa64c30c6c88ce496cf110a46932b4830c41ca51e1142c8f4055aaca70b36d5986d6df8943c8ccc8ab2875979d13a2322ac7cf88f53da033882a97bf44df0a8129b6fe499167db40a58c34aff5b53e1e4b6099819e334c4c76708f211f9f701ada12fa6d1a54b43a8202f67cf46068bac0d298b352bb720b62e863cb670fb3b5c489ba72920872c6749bc95610f509b839276e3e5681d1c441a887bb26605f50c35d90f007acfb55b5a875d4ba16760f6323d8a267e8a55afd2ebad95ac47a8e2b9e52fcec589e68c8be165707e9bf22cea1a31b411f5f79530272e341f23d8391d1f737da3579a3debaa9fd867b28a58be4d0bc4e4389f860444e10b7763cd3fabd7a17c82693abc92e75494ea76886ff21a59da43ec2b02eec190e2148060686902b5da2b62e38d1b4e50ba1e8ccc502fa7c5462455b7ef9d8960c4094711a5a6afa5bd3bf2791d4a3752409c810dae774ef6d6a3d1eaa87846a4044c9a7a1c2828b73160b4310ebcba21fd587de4aaeb0e3973b5c64ead8eb0f9ea4ab913e132744219d3e1e71504d5e0110880e00cce78775c264afa74d1180e70ba01d029cac9212dc99440affc61e97d8f9bdc4ea63a0e0c721812c577a374c64241aaba8e81f0727a28c665d41430b37bce27ca5b9ebf0cad1375323bcd28a0862fcea04ac65770750eeb098894c29830bee37cdb149066457ff90de367e2f4296d5b80d3364a57b8626cd7ed526c89efbdbd7ccc93f9764bff362d37550eb0470f94fa467b91617c72adadf108d5babe888b5617ccf10c196c3675259c85bd0dfb68e0b119582277feea8faf2415683c466be63d9955f1871d7c2b910641bde51ab70dcfa2afd522d992561795d3977136222c63d29e24599cae7570c9bba153d9e31e54b377c238d880cf173a9d05a43e397a77d77dfb38dbe02d68138e620fe9c380070dd9eeb8c7533814555d2a2e8fb6902a53d892c8f9869efbb99f94cdf383f3aa4a2d99849f8104ea642280a7a5e4e3eb880b6cb8f003c9e58a2c0cd1efa90d2aaac4f2cf5194036a47c72a44014298514230a10c20980113e8d62c20eaaeb70f39bd6c1dff33987026a571144e6ad2e250915b15ca4e3c138cc204c7f84911181a652bdb03c417a0b7bc11bae466252f15fa2529aab510b4f9cb69d1aa59c6077a930517dfb08724dae5042f04a6ab5a95c3ebf420d83e2fbe046334e8cfde0cf66b9a550cd71f63f458a1abe3f69b21b8390f016f052e4e5166e1f6453c93aeb991d424f79b7cc701158052855513c3191cba8bc7638ea751fda0450b20e00f6038d65050dc6c7da2ccbaf6941c3a8ab1b7ad5cd074df2232084e918b4e8ef7d7a02b72b9ba1348e5385ac0c3a6aa6378df62d6d5a4da441a7ff49d301983317b378ca50b3e23dd6621544f78893076d208c214000a20e15055ee123f82ccfd21afba029c07e1005d4036753c7df73cf31b32f674894fa36ac138a1d541f83bf9ee6c102a77a5c4dbeefc74be93c6f36791476d068cd39d888d68a86dfa80057940ceb800ccab3c33359f006967d5e79e5b1127408078a7add573edae7e9e54b1f47e004ef095187cf386aa422370440f58630064857771de665edc021c29e8f8f7b31cde57d3875f0e9ee700f9c33ada9d90e9789296110564aa17a7ae0ec730c40f5e89682481ab27b10c52d35580bef6e0473203b81fd8a70e306958c6084aedbd61122ec5fe65bb6ec49200a650f7b8ff9293a2670dbfa6311348618abef20f12d38a3853ac9695d74aa6b2faf47624b08081c3503194b484718c6e3aa2cba2119231340a251402820dd370b9e63fea3d34f6551de885e88e857dc80de163cc686ce6e0b727a5b08694da17cef66dbd529642cccaaef3971f6ebab0c62e96787c38d402e0057605c8034816ba5d8d67b0190ea44943e13a001467e7e6c6521d1fe6b41ebf01e1655c6d104a9535f5e9dddecd5bd7f213a6e2fd4757951e7c59775aebf8ceecb9775df7951e7d2cb3ab72f47e7d5cbbaefffb2748a2e131a2e9c3512cf0d35d696a4bed7d74422404793a918d64161629ee8a13363b0cc2accf620fa6b0055dcdd989962a4356deedafdb4f2892a5a9c089ab6b3e5b061ce7018ad65c3516d19cb0fc6de38033e83019338313c33e79c5935aabcc508cd6453d0920e824ad3becf202dc158d8ccf0df7d60346859fd540eeaf1d1a037a4155cdf95837b7f3cc89df4c1f45458d0be8f0fba2f7570fd1507eff358826e51ea60a7fa2bbcdd21b3b99fc7ef26f3bdc3a98cd75497b13df468340d445d10ac5b12a2424e4b98418f00fa9ffd8f76bcae58c71474f0651108077ba85da57a9012cf56ef9f05941c35bf8e3d2730cd99dcdff6ce4997d0229444ec4affeed3d1013af89ccd6b35bf8e1276ab18a0d94e2a12d8a736d271384ce675ab7fe7d3d5b9f3a05799f29554dcbc68aa9979a5eb9cfc68ebccfca515ce3cb45a86bcd22a575ef42a337fc93a271f4d3d334fa98a9b0fbdca98b7a4ca91875ecf94bfb4e6e6475bc9c82b51e3e6a1ab66e62dad38f3a3d533e497d6b9f2a05799f94a569cbc68aa9979a5eadcfce875c6fc25158ebc403f4f0d07994979aef2f31b549a86e89a2eeeb57f518d01b5a480e07e41f5dc44973283d075973e80a6580e4d16a6bc301615c09106078f25b00804c8f177d6df2d99bd7263fc49f8cb190f3929776c7e3d8e2bcb96f189a8fdf81a112a500ca47b7ef5637962d7189622bc76bde82a0aece362eb017b939f6c7b071c7033876faf17785821ad01b1f01a9bc2473d34ea99fb56b67cf438eede1732d175e66a192cdcb710a1bbc3c3c4bc9862d543ad4620995f5bb2c9b4a6b19b2c7f3319375eab0a428039bc0e92a0d178abf79723b88f4687fc21955b9cab3f704d3feb169d73ec48e8749121710fe511419a673fcf43970a33e3e4fe230a15af28f85edbfb4f1b8899a40ae3cb670aed5dda444c61135108268e43dd5e238926e1b95dc4a52797b8470563bc613e86e0aee4975f7b378d200c6e16a2a153095a1e577ca973aaa83642d6cb2b4f797f779a63c7cbd7a7713a0366200f8c06a0dffb416b78b56ed030875b057f62cf2dbaa96a9ff4f3291df7f8bb0387ce8be59eb0bfc99a111c08a5cb43a92cf5e1942003bab58618f5865d0f38c38c7501e4b597aa1183231859b72db44391d09b31a708db9821a4a23ca317e65aacd740cd610d249c6432c69168cd962047d3b9363d37f23352c355925cde208bbdd256171b07124fc1e774f91ded8ae617a1a7d866c82eb331ec8185a0bf2124df38c9c9c22d578a0114b482cb0b942240011f7536936dbdc81331ebd683b43c38e1ef9b5b508844be96e3a21605eef9b1276e5bfe5fe2539c22ee0535bc9beef3b43c9b17ca4da8b92e18a6c6c77ad6a3098a7c6ba3566338865baf6965a2584b96427ce19fb737a3eb233397da72bd253bdb7c5d2c6899949995cd10f7dac4becabce084d753f715b612f4d72e597c920d27aeabc341ba85e0ca523478265dc2f7bc088de91e0ed8fdef21e70d835dadbdbcdc21cc2a4284570a07a53328515f01defce648e60e2bf92fdeb1a269175a0438ee9f7143c1f8ed888c5df7ad6f603deb90dac96e30cad8cf1f2f4c370b745f8d60dfc3c49e62f69bce320c825ff1d51efeab8a9d8a72594259124b766c465f3ca00c3c6824df3ca00a0f4d09bd5a30120f07bd4dc52e3bcea4eeea1f91aa3c5e1562e0e981ba515dd3288b149e696f5417df92b36aca9a7c372323f71515a20e70ea95d723cfd5922b7fb3b23e1ddfa1502cd94d02745ca402bfcab8ffb89502c72bf7e7b1e979ceeb640a2e51e0e8de3bae8ff375e95fd221d5143ae8b8769ef7e184da885b73e3777b3994385eb8f85ceb753e27a48bbb7c97856325e7d2ef87e113216c2e14e7708593de3ae90e4fa73196194c27296e78045427cd51e1811c67ed583bebae24f897023769e598f096179028ae16397115cd30ae3dca41bf66999e3f83deeda5d67bfd3a32fd391202f6146a6f727cbf6db90284f0a10be993b5114801ac1f16111ae86ecacbf64252feef15d7680350294fb2af5b3e148eabe84759d7d70f26a7bef706ec2e87c93cb46bc603340fe90a4162292787e33a4ed338bb283bd9db49f4cd581251070d875040d3b7a80c1bfd559f1caa6874e686465dd6a2fd39617dd4314c928ee2587a0f686fec5a0f6577c29278c8695d1c5dfd18595d8ba556583505d63ab6583185b25a3488748fe8845cf95dd4b2236ac83c4a975586c90184ae14a21700c57d531a620e2bccfdcb9fb86021c3b8ba0c8292f476cd27e97cc6b213415c3a231cc66ea56a573902b1bd72f4e22a084e058b0ec18c7f4054b65dcf008b37c32273077af2c8adcc90b4d1f7a4af55309d442349a3da40e62c903fb768c57508addc6ead19b1f61a017c3204fa87b3ac553060d5a603595da531ba346c752e4b9ac7051bccda8550c4a4d9cb8d57085b0799b1ad3523f03d1e4140570e21dd0228824335fbf1fff4d000f96e723a4d54fecf163965f743fbedadf6a5b5bdbb6db9a59429a514b60a830adb0a4ee8985967b3d191cc73e3e402d131d76ca1376f3624e84ded0cefeb353b500db55c2d9276d74b7f3e88aada0f00dac55400a05abeeb9977412805b349c05bd46d43dd5512c622875739394b134aa190fc778c2363a22f3fa35c97085079f8161ebefbcac313808717f1f02f0170f975920006e0034e8f0e9084e526581a0830c0c7a09d84f91f68372b10bfb40b55cf4b850a1092119a734e1f062000ee5d56317e78d12778d12c78d1327881802b88d47d187f80033c0210f0105073001a03c000f152bb5f8097da6af752b55b4c7c1880005c56ab18ab1f5694e3d2d5c3f3f0fdbefaf8f079967fce4d5c3769513fc73593a6f197de9ef3ff0d80e75d043080ef9a1e158088aa4766581a407ccbf84ec6f86ed6f9c377a13a4f7cf84ed61396efb67af2f29d147d3709f05da8ba7c17aa2e04f0ddac2e06e0c2458ebff407e03bf9dfcd0ae2be0b5510fc4e3943ca1a52e290f251905750f95d2ea83c101c13eafe83c25cf9027005782080809b036280e0b800dcb608a665c4a0dd0fd407bacfd22fb4935544bb599b00f4c9f400a800a80b9509007dcad1e7e2536e4ba61c9995e7a83ca726271542cd1918ffdc6772b3c1456e7f7bbfb39ddedf6779a66165bb9af6bb0bdade6bb30180e78d080700e73d70dd5579a01d63d1c27504a8fd2c5cb7c1e0ba5652fb5f701dc721c475ac5ae1ba3652fb55b8aecf50fb53b88eb900e23ae982eb44ddae4e3aa6d99c0fd731120fd7b1ccc6759caa1dd3a86ac734acda310d26a5bc84c067e8ef040a8e698182631cf6f0024fab7be254af87f0a3678bd9adda490d2c8d945567d559bd039686caa3d064198dbf7437659533ddc919aabb86caaffd3332b7cf525610ae5615c85438ae4ea3f2adf29d54a11d8e0a9fa6012b83b7a6705b7dc64930203ae362a6f6a3704c4e68272765c2c486e76bb887f3df38275ee5ba5d43ed64b756a8fd9d1939bab55fa8cccf592851f524d77d95a0ec397ea6b1a669d4596a1dda49de6cf8c7081fd5013f630fe279cf67312a26ba3cfff9ed33b8d9d83caf69eff9ccc37dfef3bc79e8eec9105830b1f171404cfd50875c37a71df6f1a5bf3abcecc5c0e6d404b2b2875cd753befe4eb234b4ef7f46269680cadf91d1341f0acd989afddb6c64cf1daeeb2bea4bbf648d900a79cf8fb2241108e16e3f7dbf5c0e570991f912fc1a0dbf452fefc7ecbefb27f241b84891265534013365aada9fed2e991242082195cc90e2901bf578b6d76490c975fb4e6eaf3d9f80efc671d57eb6a6996ad330a6aaf2df92c9cccc144ac975c05525085d35012f753e9344e6f5bb49e0f590322d32ad8c9ea1c150fef24a19c5663a9c97e4cb1c2761df9734dd7477cd48c04b1894d2d461331d96aa4d352a3315141e7339660526ea634cfef5ce75a1ea3b975b591789abe2d8873247a8ca8e89cd73c8deefa350c4d866d77677777de9c2783b1db2ddee6eefddddedee6eefdddd2259f6590819f05a0437864bedcfbe4536384633ef03d5e574c05de8446627ddb5cf12e6b668a9e6ef4118a3f64798b9d725a5b61cb615d115ae8cfd4ec218b5c8dc0d9beb348654e36b3bc2ff720a45a8444533d1a1ca2089753e1a6bd2d3c5d48d9e76edbdf7de422b20a8ff7568be607ee1f2c1f5831eb4800a1b3059431d4e4003061198000b385421074ab4380218be2002226a80220112253798430f2f38400544da6084206491c40d389a19a6e0c20ca4484116b2e8c20e2048986c4184e614032e88400a141d80e0822b647eb0032b447007203324f0020d5410c5112422f800cb881294195c5084246c61470130f0862a5447ac4041126ab4b0230625e4f482217421891b80900511f4cdcbfe77524ebea9fd5f77eb75618a632e01caeb259430cb5e725d1055fe95655c115b33086ccde8cbb22f626b463d719820dac9ef7722e4c7ef70d7c7d4c8e508a2421a1f1723b94f206527418fc62844de6fe64cca2f62aba49e384c593bf611532fae93f5eaaeefcf1a7e4c859c0eafef6b38af62b4c883786f9874a0c3091d1e6cf298b816dd7ab4972879b4733a27feebba735c9040bfbd7eed6b3809445d62b292b2df2675de89bcfab2f7bc64b4cb7efed24eabcff3ef9740c91ee54f6877f228f1b7d7a88e4775bcfaf949b5eb5f6d8ae3d3bf7df7f98d4eaae3d5ebb5ef3e54c7ab32a338e4f7c7ef0d898e92e2b82e1873ea7b9cf9330ef8cf69085eb4fb8527326b1c5cbbf7945e3a600d01c4c1a016d568917fe7f80c7306213364bee25f1b86714bf88b47ba69f0e175c11cb8d980353c72b48bb9ae2ba7667bb51216625fce4ce58b766f99844126d284bff82361df69b50979d13e030bd1f1124eead01a18e5f720add1b3468b9a4c29e70c85a4e441634e3d0303015d5c42d131f1b918027c229500756d56f023a7bea86bb3822335730d32795a78ab97708d94735a04237c181d2bf9fcf5b1c3286494ce6ff6273fb7f79f8f8242bb5751b48ad24914144ab75f5050505edb503c5bcc0ecda1d5cee735dabd13ceb3c5cca80eaf9dfffca327cf5b1138e4bfdaa13850bef3bb7f72423bf6012b0eac37243a575394c7280e2929ca1597b51e51804a5464bf9b8df8908b2da20a3f83524a28e573074015521cf23b2a5052bfae8d14a97a5d47783d89b9bc5e362e46794679f82834021973f1b3dd50681753519eb9c82c05dc6c4414ae8ba952303f96d9adf0590973bbd0b34b7b354a8da5f0c487178cb4f3e1b0cfde49f3fd33fae1b0dfb8e92f2e649bc07ccff7e4b65fa4fc70d8ef46c476bf444e8ae433d7695576ba19391b937b52e3fe9d5e2c0503016517c31d38add8e66adf7917cfdfd96c34e53abf4e62ea798ceb668de101c5f23be661aef38aa138f77bb0f778be1d85e2f0605fa3590a1602a53b908b07510f6de9cc4e71785e3e53eecf3cdac977b3c6f0b8f8ea9e708e8f7138e443519bf3c7d733e62811bbde5f47577e9772984ebb1cd7bbcb77be302dcabf60b207c8a62ceef9e9a49fff61e66fec598685e8c7aeee78695b112ebe298e7ef9998b2bfbd929a00e463bc6b07f18ed5268077221371b9787dbe861f670b0b687e36f29c3405cffb622f83b17171f85bb1e72dad7708e5d3ff66fa3cff443fd65d714cba487a5779c6d1a4bc14274ecd2a3edee726818a6c3ab07a318fba8f14930625cf72a773a9cb7239cbf1fe3288bfcebe3c3f83bf651d3aae7b7f7caeff9783d0e0fedf86d11d02a3f8ce7df7b689743d3381fd8c767295808a65df6978dabc32d8cddfd96a56020e2bebc083202119b15f4b0f171c4c607101b156861e363c8d7ecd36f03003df0d0c202e34568452505e402e5647e3c9b9675307945f8bc57c6eeefe65fa39797979deebef0ef7eadd11c14dcffdeeb7f6fe17bf0b52be182ff1a42083fcaeffa75ffca16f9ee52275e7d5487d7ee1f8ca0f2c3b7d7c91059c83c7cf8e07bef6584ac868ebfebe68fd84a6ee183ba56ef1f1366074f150669114c5578ad2a640e5261f790476442fa3ec7b592d7ea82c1a5ba70a4eac2b970a436b7b856f25a7d502d7830c052a0d005e30d76b7fb994375723a60bde67b5028e79a02d2c8eb246550e02a55e57f4b78afee26812eadbfd0cee1aafabe5d32d139aebac1d4e64d8dfe6afcc5ff22c14dab767e13b7709574d575da82f3fb47a0d909d17b4411a32184b0e13f38a70bd689a118d70c42b065a87e855f43082aa9cde618315aafc9f68862b51215cc393491bf40ae286a7287bc20a43934cd7df42332dfa503699384ddbd9ee9fce6d7a297456db708802aa4978cf00222e3a55df0ad00f301bc1ea40bff812aa4f5f50485ae78d11764f568eb518f3a9631f5a8f39b283303a8a4473c86bac125500b56ed5a6a075962a85dec51b730d42efaa8db174101a92fea1641d1d40c6a91eb5ae40bab7a80ba45be20839a41ed6d48647ee3a41667cdf79bf9f3e1967ac66f9c1453ca61d5add4398eca67930bbdca8df921ca23f453257443e527e571f22a9f416e7ee806fc4979841e866ecc879407fcf927dc9351e1e0cd0aa7f2a19590cab7501edef297ed5528acf197ed4d707503fe0ae5e14cfc657b48a1aa056b501eeaa59c94f24fb028a162823f5f85b25c1ffa2d4dca723d8ff92abf12e27ae5e254b89e1176b080915d1c0b11cc6af90940da72f2138074a66e7fb2f23175e7c39fc03c6dffe84acb96725a1532a92d272d262a3fe1abd027541e4e95f9903e91f2f3b3150ebecaca43fa04fc95cf5853e1a8b85ee557e813a057f9ec845b79a8c4c9095422f42df409940f3da7c4ca9fd0275cfccac9c3e09e6051a2e5613c0c6a6279f82d94e5fa2dc1f71a276d69e5aaba7d6f12d8120b15f98bcb408ec7cb7b1ccb455ba645db638fa66ebfbd9f9c743ad5edaf14ccce6fbc06b2fcc691f4c87f7bc7e9d1f5db7b4d8f3cbfbd13e991fced5d0559900559350e6bdcd4a3eddd478fbab8aadb43199aaddbf6bda449afb4bdcbf448fbad4dbe52d25ad4cd8ab5a26e377d533725fdb23d463b4d822a10251d240a2b437b46c2394ddad276a329a9db738da3fce6e2b7e7949340bfa53caf5c54b3171c977ae0d65fe4f64e2ddabe5383c9555616ec634a2dcf82d1247ac078968f29f1806ad1d61f4d8279a71ef9168cb0c40c750b52b70752b7cd461230585a78a02dd3c2b1703038de9268531ae69b71d2965e705b822c27857e7b98e3a495df547e7bc8c449214efa4bfc154e859b5c8669bcd9e8ac705b52e1b6143958a79099c2bd94bf6c0fe21eca5fb677c1bd197fd91e857b277fd93e7b2727b58cbf6c3fe31b1ba627c9e287a94dfeb2bd60766ddaea1679021695a6455b5b5ab43df6a1166d5fa3b930bb50dde06fcf33581a9ddffee2b0ff70f28463c249737246f8dbfc6dfeb66ddb3efbec64082c5a0fbbaed7a225786ca8464e07c4be4677739354b432b67f7298da77e06fdb775fb77fab896ddf269772ce50c854b77f2797f2daae77aadb43964b396728e411b2eaf63ce352cee9db37d1a3ecb78c891e7d7efb1c3dca3e9f8425edc29aa5c175fb0fb4a91b9c42ddde5bdbb6fd721bc5113f31de41b0d8dd1fdb85a73983be617632beff0cd9e006081107d2aaee36c0a90e7f974ba2c7fb18771fe5122c84a1f838babb990dd70ad6b408c60889b48863c09a0a1baa626466666667354c48af550e6eaa7f3684d9718feabbbbcc189f76f4e87af6c14daa677e695a64c6b0bf9e21d434ec9b36773777638c6559966559bfc7380f7816830d610a81c67bd5a33ed2a3ae8550fddd480b21f51ca44759901671af6314c6310dc735fe1787e22a504c830a92ea9b6c0e9d2cc3ba7777773bdf2fcb226feff6f62ebfc78f1fbff7def77bd832b944cbea96c5a4d2b904c7c4069e92d9318b59ac2487e30cb275d9d1a2fdc786b923478bb6471431babbdbddbd9f7fd31c2dda9c255aa4040bc3c4c43043cedfbe55f31abb305ac878b75b32ab61c99225bbcdbd17df4718636c2ed2b77f6d3696be2a4c9658670799670b4098d800080e4c3840750d6e729606353c97863fca48cdea8b1e3dbed3aedf1f36c5d1f1759eaa38bc99997bc03b4cff2ee4210ff9b7f81b71a349bb0594bfcbea6754f7089fcb1635d74ef3da69e8205af4663485e960765b73f99db0bb5f5486d9ed6af7ed5b98b797bf50f41821166690a43d42bfe0b35c4638a0476b1303557dbfa3473d9ab437a7f7377ab436333eea5b25f5f9e9094fbbb1894192da6d9307f98afa9e93d40ef400af7043c22b34c2495b7a2ccf90ad4bc72dd05bde5dde1823b75bbb65127f3a89d9d4a2ee7e36c9708f162161f2776c6ab56c6ac7d5a63e9bfa9e5515c77bcdacaa983c992f42dcbf880c5077f7659f69ab18f0f004997f115b3196dddde3cbe383f0f9b6a2ede76af7775f2d7d31d9b9c43086edc1dcef28320f70f527a2abb326dde19b2fd1a2fe276462a4ceb74bed18357e17c4b51ed3af73f02355d70606446a15eadabca0554f56881048174b2304a1b934de48a6dadc60487d5447571084b47a7db755df15bdcf782be2d5ebafcf2ea738fcbb6ebd9e4c4daf38deab2d635ad4b5df85ec4dcd3edbf9f7a11e799c422657efe62d7b9b6559e6a0dae170f8bf0e743d76ed4dc538977e69b93438d2dfa40fae7851a730d11f092486631f7e748257467c1daf9e2a57ae45ca60aa5b3d0b99863fff0b58eff973cfbe6f44785de6ba4ee74acd2cf38c769d4e77321c395e8776e03d8c9b0df871b311bf5304639b0362aa943627944d0b54ad4917247141ab1e71bd2c626b13efe177e03d841f59c28b6a2b83dfb728640ccc2c7f4a3af98acc720cb3db9b656f7e91724a4a6677a79dfccf679f8e9b6039e2bd3f679e3fa447345c451361151be1151fe9516747c64398488b1ec4c11f3f5ecf19dd41c355700dc7aa1619691157c985eae43af61129a7521ff9f97c3e1f8f474a297390c40d0a5c608926b2851ddfb81b2dead7b855525b4af91287fc87bda42180d23b37d7bcd925ef46f34d07d9ba64186b76a947ed6f52fb9949936ab80a63cd6e6f4e2427c16951fffcecf98d38bd2efef6d9c6d5e8c16439820589d7448b8eb8fe5d94c7a33b1ac0a793ef58a647d9f7b78f1ea57c3f89024ae9c8a88e1d2aa9ec3d2efef3d97b10be8f7cc34854e88e16f5a7501e2d5af5e83d887632a35da872a8faca07e72461767b23e59ca1d0bf4834dabebf012d25dddeb65797a95316248e6041829fe508af389cc6a0a21a5339859a0a68e24693b451b75ad47e306af45da84b8b9af64b53271eafb8dd690860f5e7568bda296bd1a27e80bc727ac44fbad12ffd91769a463b10a8a5b674124998fdddddbda219a7ce05b7238e7df638f8595fdfbdfa5ec775e3c910695845ae17b7a5dd964e788329a9bce230197bb13e1772bd5ff11fc73fef2ab880062919bce0b1e0cd20c52860665ec691fd72bcfbd97ab796a5903dc17a44e67ea3686459b6bccbcbbbceeffdfcf9f3e7ee74fb7113c99e39c43816d6fdee7dffd301b9fe41f65aab85cbddb732d66943e19b0d8ed13d90a17bdecad8c7db9eee89ca3a9aeb3864bbbbbb1ff0e17d787862ae7bad9ac9800fa7c2c7aa10063eecbaa6420821fc851042568e09090aec58c9910a3b36d2319121410a006b7ebc7cc7323e40ead9c7d6ac3254e53b8e93e4a90380b96002c0b0ef4c4a0380ef640fef383ce0d48ea7463909b63c0b8ae561a02a0c7803694c21da855ea85e3c4895e282856242e987e19ecf38e931f19ad5bef0874e80d86817f2d09ada05a035fc326827712a7f8cc7aafc3fbcf8f02fffc30f3ebcfbf0830f944dfec2ffc2b14c8b5f443b4900dacd01b46abfbc71920068275d6837037043e3a4a7341c4dfd9393d601404f3d9c78a027fe2e9e5a4eea147f4b8ba5a5aafc305a374e6a993e55fe17373d53f94337fc2b37b51fd2388973f6859f5f857692994c134ded87334e6224334ab88a7de12762e4c863c23ff6857f48e587385af6d7d7708df3cf9cc99b7935af555d567e2decf403141cd30f458ace77e084cfb2d3a6109e0fc1ac1e2dfb8cb9ce675ca77985e1d9e2f3e97458e38eedc4dc3acc3ce7a6619913db7b000a53fd68df790f170f58d2af110e7835547fff2bbaed4232bbd754523ee3e556e1bc3006233a5eb2e3f94c149595108c1e00004a495149495149514901b94039991fcfa6651d4c5e113e9aba018801315685fbcabb7b8aab386885ba8aa7b8bbbbbbbbbbbbbbfbbbbbbbbbbb8b7794f793f7f9fe79f7bc6fefda7bf6de79c7dee5fbf51edfe1fb7b07a5a4a8a4fcf6288576312929292a292a2920172827f3e3d9b4ac83c92bc2e76fe56366f9ba5bb2bf0f7c515e7cc9a7862cdbdd6e77f7de961931f6ad8c7e024c4d989a9da8aef6d869eafb36c1ec31a398b004b39310c6a831ff352f8d9bb93b1cbd79e38b9e0d3d1a66f775e54584c9812585fefd121b581a5b55be0bd56d43cabb8c934294ae50996e599fdab9ccaa1e81c306187f799d2a99303b97914b989d48a6be172d8d5e9606f6e53d16306da8efbb19f52d715d31250b01faf71d1eb9f8f79ea581f2ef3f4be3e4df4f1662fe7b141e7dfebdcad2f0fcfb95a5b1fdfb100ba1fd7b18dcc3d2e8fc7b002c0d1642fe7bcaa3ebdf0f6069c47f4f80a501ffa57cb62b2abf3d52a15d8c0aadd1cb27ab42e5caef6643e56bf48a0af756067f0ac70f8a95df050ab72be3647a2aff87f36c29955f535919180f0c44d74374a9fc500095df6940dd09026f912bb250f7df76330805d4b77a458c6c51dfcf684012ef5d3fe67bcca1b07084972be704855afc1ff6de0bd5f7defb5f1a5bdf859a5bbb098693bfccd00e4e5282422d3a6043ede65311ead6486312c3241672a216f3aa6ba38331e0cc94ba363a3822061dacaa0e54fe82d2c2455d1b1cc401d5ba4a90b1dca03c5894607ff68f2939b7f2848588b54119e97474f500d7fdb54111a9fc8b23e3402713e4e2b9b3bb7bf3574c9ecc17211cef5f6441f6403940b0ddbd4f404b8259181898a8bd60fecabe4b03c6f7aa00f3e03b5284788489fd200dd3ebdaa0844439d8a07610cf30bbae0d0af5227c0f096dfa91c4094f28011b70c27006940aeaab1e68cda10635f8714a821c4aefbf476c86fa5ef4a3befa606a8daed1a1ba363978430ed050bb87097299babb675a289a785a127fc49918a4c654ddfe6dd7b66ddb756ddb8dbf6c574ea8616a2eda411faa9c1aff8b0873696cc5fec5203dcae210b98a274f67f2b34cca78f274b6ca3208b39b1484ab2348709228c95992823e7eace209c6531ca27a7186a64665e448041251462084a9785a19db0ae748ce064ddb3625ce9a4cf099200a15e426c9907842a5542b24f15df1d4a31ef58886a647dd33d53821fe8840629078aa82c8333d9994ea99decc3b3d99c882ab88036f56a8144d4d3cad523435291ad40aa25228d46ab55ac5138a4f28142ace44544cb59cacac7298b4685a9452d1a46e3c9eb67872d2457dccce73e0ca6b5acf9442e52ce951fff6def2e75a6f7bdbdbb6cea66d9172b40ba9e16937cd00007a45dd9e1575eb6c5ac80a130a756342dd9e1152aa2a98a468705839fe8326d5721f0ea40e7560c2a47da4dac79126dda76d6b1f757b6639ab78c5378ce3a494e796ab502854a400aa0a9c2134a9d42a9542a5b6788a331115533534a98d26954aa15628540a9542b9a0fe699cd0cda726b6b7bded29b0c9c549b568bb192d8279a6142a9e547c5a41d133a552a9540a8542a150f1144ff1144f2a954ac527fef1c9b24fe6d91e4278993e31eea415ab6aff30c6ed826c98f1e14c8bb456ab46d8d23ebe259049ec515d49d522ab455a15558b31e580257992baab6ee8a36ada8ce805844b63e56b0f9b788f1eb54cf4d17970e5a4130a5baf3bbf20cdb3c5ec609bc4308cbe96f6b075b55c7543184bdab7f49b1e7530c532f5c8e3119c245ad5980cdba22ed5a3173938b9f81b077db4488b3faa36fd5938fae8510755b005b5f0539cd13ea26210ede310d844fb6862e8da150f387998da97f85a8aee8a52556bad0c6d055751f3d758224c5235cd39686a91f690d364a6bf682f773079f8960fcd78cfe4da4b3959303e0ba4447485fe0fd5a3a7fdbbe95112eddf9091aa6a1a92aa418fda8cbd399d7ad4392bcee4006aa135a99af6a36a40aa06594e62f1963371d2e79df5f9cf3f9696f2d9875bf994cfaf7c5252fe4379cc4ff9fcca87f258f9b7b2f2f94779bcfffce4de0c07592a5ccaafa87c8aca4acab3501ecfe42fdaa750b8f297778238fea2a9501eef5178d39add83efbdf7048b1229a6f79f4fa12cf1577e4b1fca129fc7e7535e456bad70ad12b94ee17ac65fb4ffc4d7c162760ff5e2b52dc51863163916969fc0a32c73be57f9093caa1229cb8dcfbf9fc0e71fca494d7ce8965458b82dc196a94699ca3255b894ffa4d02752fe7d523effe813a0ff7ca6c2bd4f5149e1a88829af429f70f1299f4d4ee59f12f355288f98d25462e559e81327bff24aa8fca44fa0bcca7cc13dc1a204cbbff817d404e3dfb35096f85b7aef2b0d46f6381e9125d23eb5487bf94ea3c196f6594d8bb4eea160cb49d369372f15ccce59be72962be951bff69ee3ab1e6dafbd1fe9d1f5dafb0d5cb9c3155c61d92533217d3ad8a5b115a39df441d532fa865035edfd478fba8853b57f3daa51c1d7beb568d22b69efa74c6649d59a54ed8abda2320e4ed596f48bf692761aa8a52e1952b587d97392e696a62d6114ca6b2e5e033ddf7816e2b8d4c203aa459afc9812cbb3489a448f170fe3634a2d1015a449331e4a9bf1aa1852b517948583c1bde064fc45fb4e1ae64ba13495d73e9a9c94f2da4719277d5efb6c8593fe025f854be13e10fb146e4b9083f5f30171af867b34fea23d8af627da670fe5a43ef98bf6a9140ad53228976f91f65fb5f7da730e9606f6da47ae390f7735e1a45612aeb9e6dacf90da3f6d6b3484eeeef1d27e615686f64f0e337bec3b67c93c544bfb0eaeaaf66f3565cb680fa53d54d51eb65cca3943a1eeb567944bb9637bcf37d123cf6bafa3479dd7de3d9dd533b9949dc84ac015daf0a31ea0ae4d8b0cf054b5df7d99edaed68365aa16638caf478bb47f9c0ee84daac63e58195a6a65688f59c155a48640836161329116691a27616570cdcad01eebc2ec364755d3bd1e55fbeef9a85ae7548d45c8e7b7e4794dfbf6b1343aaf7d6bbf5b9a9aa63db3b497228d55dd8c95a60ac018b2a02a692d7fd1344d6a2e34ed99aaf6abb5f66e5035cd73aae62cc7a99ad3544d7355d57c5535bfa9dabfd6ca492dda4dcaf228b4939af652a28d9b9cf4179c9baa81361b1b9d1f2ef4fea23dc4c1fcd055b7881126548ef1a216692fbb303b51d55892f8bce7b7a469df8493e66bbfc3495b42554d3be160fc45fbc9756430b9c2542d478b344fcb54ed610e66132dd29e29132dd2fe6acd6e73aaf66ca449dab34a6324da1ba1bd94da672fa5bd361f4dd5ba10abfc45d31ad022edb7ef5eaa6ab4468bb45f55d57e5d348a039e5e4cfb8c3775fb643183434b555a36cceb7bb37151f858ac7a658fdb0a59db5f4994f4e87d8e16f57148ea8653b79b19075cff9a20a9fb5e139a331cc64fa2de60fc16116917a3c6f7fc4584b934165ba2458fbc09ca330a85ac96ce79b698d7679b0dbf30ec330c7b8fab43d6366549c76adc214c61cdc0472c6def98aa471d9cb9f1568f1e5f61a4475c8ff488cb50b787487ac4757b8893a4474c86ba3d9ce9d1bbb82e7ee76b7837390f9723c66bd2a26d7b4c0c73be6761d8a4471da4a9db6f2c4c89e8ca90059578dd3e9aa2ccf6f1147f6c1f813409740397f4686d648053b9b43dc747d3a3ce5b55f488af78000a9c71120adda8dc9ce0ca5a19dbd7684c09b347ab1e5ddb43223d7abf3dc4e911cb058fd46ddb3e729bd4c194feb2bddcc1ece179f817d05b4ef21bbf69f94d6bbbfebded9fea1d69d2c76432994850dafe019169296dcf48dd4add43d5ed05ddacfd9da82e8881ecec04bc1bccad5cbbf9a221436a7f8c206af36ab31371275aa9c5886238187a30c4c74a4aa9456d076c1290a4a9ddd71523886ecea328d5221a2c673ac1b5938c86d9bd47f3526f084321b393a796a7da4fc6491716fbd2df86dad716b57f4950fbdd55b57b2978eaf898dd9afa6b3440d2f8c36ac0a86e4e9cda0f621407a90255539d80a63932bf532d6a1a1ec254d074a786a4bc69a418a637907ee9ef207c1ad28699aafd527368ca7a50119775a345cd6309bb0fdf43df09e8ef946032a5004da245fdd810a6a46276a11a72d28371d29b0103a3aafd41845a62286008d306c849304e99c2646065d0cc2ef4dd8aa1f6b76460692c056ef4e8468b7a6f92b831412d07d332a9416a3f8f1ef09b99598b3bb023cc4e421ecc4ef2833cc87ac05f97aea3ba4c9d80fec75d329d80feeb04b373d56592394e7a8d73f5fbea5255558fd606083e6abf1bb94c578feb871f6932dd88af5cf59876dbaaaeaa262f3d7ae5906076d254fba5b6afa37a45e46a51fbdf04b968ceb34509e8cfce30a5156637ab176637573a5ad43b969d999d79172e5cb8bb5447b72de8df4c785bacdaa36ece1f28a9fda0267434a94bdca385292f332f335c1863f4875a8b68c7a626386e9be868513fb37ad44925260d3b41c6a575e95a0753ce34a95dcf549b1f1ca9fdec436a2dfc03488b5ab3bf4db5e31916fefd46716be107436a7f12486ae7f88048ed7f8c45cd3e3da8e83fc197de6b41c46891cf16797346b4c8ff71497402fc2110a6ff164952c5d7e821b2482284245547d70fbcea01be43bd2182eb1059e0f4a85941ead621b050d2a37d82146486c80287abd321b2c0a9ac7622d9ba2c8df7fb98105730dd889ce586f3d82b9c4a1e53924e988ff779ba985a62220f07db02dbc265359228b4a3486bd01a0da80183394574d9a7c89cb9df5dbcbba05068252a50de371b9f97b59ba0508bb6bde83b98ba3314503b1d2ecb6c649994f2015e257d1a125d330afa6cb709c4d88086046f904114a8b0420c25172f39107551440d97dcfc8ce5f328f4844e0a6a515f2d982cca5ec7c6bddea1719ddfacf35895f4bd4dd160a6e49f78bc826cd34bfa725c936f95c91e5df4baaecbe577eeee39db62b24467b538353011cc8c97d705dfd5a6dad7c5382ecf16369ca6469582a71954a865deb7989872fcbaae2b899c481a44c4c8912a385ef07ad745bbeb8ab49370ffc7bea43c015439fe77526272dd7d41f0451a23958f861c349b10e3d758190a58c114b9c4f891fae2f05d0f145a40f3c1809f79270c1e28cc2413d6346f106823fc99705297f6b3a731d1c432f1ac00d835a65d8cfa2e4b0383fb1f4e724276c8e4962db45960fb8c42c1a20497b2e7524665b4d2f632afd423fb13c812af01aed7382ef576e395367a82283ea5ecbb747decbcd46c2491d15d035c7f756c74ba76be4813783b626daae46e2366cc80811189fe43a16e57d84727b8fcec611d195d44ff27ac2f3b645bda97f58862ba4398cadcccccfd912feee6afd1ec63c8d6a5d358f5b1c6d7f5ee0e2184ee3a607587c1ca78df7974c102f13ef3cd7131f568d17b3f5af42e0d4631b3a8c52835989af1bae4eae874b24c734edb8ae89a63653ca7dde664d29b57bee859a245ef9b309d595d9c399d349cfaae28663f8661405af42e87ee0eddaf6b3379c94b5ef2ba2e78516ca645ef23866ad1126687cdd4f7fe1e9b71d22bbdc750f17419994f6375ea10e36e3784d02f394c4689f89b6247986f0ab37baa2cb275b96ce63eb462fa5f4398a07e9737df5bf296dcac6e3049593ac62cfb2df9ef4681183fc6df52374da2f358464318c79223b3de6564ae1efb6fed27b54e728b63e08b30f0418fca3f7939c707fc4864ebd26d42f0af0d56467fe7759fb9488305a23f6b4c08d8868275bb57b7d3e6827de9ef0d2584da1b0d52556bf94b5f4e981d866a394963692cad05a3b5fe435a6bbad6922255f4559c5919fd3209137ea7b1ba299d30bbcd61d5feab0913436141b0140ccf16d34d95676a7f9cc1e830bb2d55bb8b332a54ed875714937fa3815cc8f6657ed6c5dda9b7bbb77bc43a9dcf3ab1133bb113e3d7e818dbc0df49c16ad5a38e732a7fcec7f3d967944746596e64afbd4679b0dcd07e4e91855449fb9852f631a5ed634a1ecad2ef894d9360d6969a599ce32ffc9e483b66e2b49bfc13e2cc5dc2bc82307378498b94b48859ccf28e735895318c2b62ab270e53ab9ddf2260a0a9bb15a15516fff82bbee1235006f319a56e91225ea87d3161e6a8fd1e025f21e0c718b18fb4cb01d2a6e8704ec8ce3fc839a123c25d199743ce1fcd017a6dea742624e30785402d52f6c3f72e870e1d3a848f7b701e70f661ea011321448454c1377b933d53cbb468a390a4ee66e3d10ea6f614a285902529140cd291994ee898f5556165f0bf292c10fc45d270533b361549c36a8b9c81a6f28f4883b9363d30d5eead8cf0e047f770b2a8c574209b1ea86af7566bd3839acaff8e344e8f5e92ddad99af9ebd15b12b7a9a6f9e38cceb2faf5711bb32e05fd4038609e372dca345fe96f4a841467ae4f4b2999d9321b2405931e35f4398bbd9e88740a61118d4c6ea16b92208b59382254b7ad43d2ef1bf1b27b13c8cca8f29c14793d8d2052f9ac9a284f652fba580a42c37301e2c0fa32c373a3c58de632c8f26917de7b714538a29699465fc850db3cd70230453a551032aa454a615f76e2eba7a2c1864758b18e142ed36ccaf4f88426d16e8a95b040aa8dab49bb16e912b52b563d343cd59b708104e952f29df92477378075c559be278bfaeda876fb532f8e1149339c749f259025e92f4faf7668b20cd71b57634b1d8c91059a85ab435a545edd8f4567cead1daa49654e61f95ffad2ee6a18ad92e33f3468f10f91480254979c494241355529eb96cbc1a5ea36113bb5793d9c59862eaee60ee3f1873f58b12bcf7e40523bcd851f1c508237c5c5a9fb1da232b62f9fb0223aa3143ee8a58b4aada35519f262bfcdd887815520ff0002181324a79c92bbac88e61f715d0002eed6512f8882e955b0533113e05a8a0265b970ed254671718c4cf501d89f0a5e010998a4a32513088bbcc83343798d1f58a300895a4c17c586a7a2f99a1002674340006890a6759bb24c207d3a36e06d1234683e6336444ded2220f4d90a948b62e0bb7845d18263179952207b912bbf360ff3d972d3177215ec63cdd8eea811d13d45ee3bc1df92c1d4a44d70e052ec0323f3630430b266c621f1d25230594a49326cecec0b93e7e2743948642aec917c3feb0f0a08c525ef28aef1db1801e3695e9aea8b7c2ae275ea86425167ad1b9113ae367b9aee8eeeeeeeeee5764f7e6bc66ac35afe83d6f47bcdac5f05bf7ac8d08dacd8518b1998208129b29b44003109dedeeb6fcda91281346ddbadfb47bdfd99b3e32f06e119df5e6853859266ad1feebeef79ac81e7d24c9a5bfecf3474261f277b7ead54bfa90d4ea0ea0f67757dd872b840b03b1341a6e361e23215bd4472492dadfefc242f41416887e259da476155646bbd476daef46c3d9666dbbd45e11016baf56061d6214339660c66882193f831b3d0b25e42477aaf226ba361b9eaaa8dac9da89aa2c41da2b79c54afabe56cb2652c80191d9a96b33450c904c719a42e65d4431de650733b57b983564ccbdef2229576e5c39b8bbbbbbbbbbbb33770ae6c3b46e95951595fe6169bcac10ef63f448e5795fbc00813a11ec01a3d060096647cb36cde3be7d3cf3c4370d9ac0f3bcd9b357470fbb7bf87345b62e1dd354efe7a2f267fdfcd78e525ee5bbaeac423bde91cab3d757b7c8155908a6f6a8546c7785492c9552230200000000f314002030140c870483c1683cd0b5e10714801085a04c6e5218c9c32888614a196308200080c000c00000c060d00000f360eaf9ea702f42bcea2599c6438fa3978816425492c9f069dd95b2e93661cb4a1d5a8d55d04127d1827473814da9fc79595b2300649a548da8adba3f2ad6015bf58becd35c4c054378f098d014fdb022edc21fc1b93650aa73b916fa2c35231a3de5c457d6ecf706dc953a25f905bf98e313754df0894cd0f00fb821c9ba9290688e33c387c97a363602fbc94626e35e4d69023654cec632a177a51f04275518c45426c06226bd32019c91ebe370235d5ae138c5e75b77e763bb3752d3ddad353e1005d79d3e82076f288fcf52ead39b5efa8c2138bb4de665af37a499e7b1997edbc2c0211eba18edb20f52ab781d8a193bc1657c2e78af462010439f30e551a870822dc6dac7cd1ce34adc21a1c112414402060e4174364bd9568c7ccd4f51f03e6d0ba47dd9dc6d2b0f57dfac0734a7a245f7bf98706a1ff551e5552392d5978d62b08dc0224bb1230a2ae3b344f8cb2533ca4bd2c2d42a2db7b5f13cfcba8d162867ca6add25e3b0f5f5716ccb2fd93a150b014ba33520317a241eb0fcd2851b0039a2196295bb4bbe481ea33c52ddb5c4bf212e6888719d9ad52a124fd2235bd2c91234fefe20da9ae8aacd11adfaf419cb46f9d17f77b0a5462129eec1633287cab7c10d9f0ec13ff8a4145e5c91532dab92ee1dfef37991d65f2fed7e146c57c8d01ac3ea88c5b59c1a6c6098e1b02250483cb54e3253583b741fa4ebf335df4a76089f7ffd918f5c9678c774964357b49088cdcabeaf61cbccbd1ea00dae5572b0f73a77180b3515a610fec3885c3cb542b5537c3a802c475a486e4f054fa14b7c38e5c161c4cadd72a0085379fa7938f7ec48b939e809e73d35f9134a1464292a3d857281c5a8d0ad4b76c395aa0a8d9f2185cc939054b758a23bebe9c5a2bc960f70d716eea4cac861f2e691551e70a375d3daaae0195fd5034bf2f8221ee64ca32667417d49151d0a486eb3309d0307fb3186fcd00a774d070c4cbb2a9cb99a7d471ff16d2885c149d75b569e7b5cd4e623af8c23a56484d3a39177d7d3a7021ca86c4f77dda49243a3b899491cabd7b3c2a63311d75ad80ca4a0400b97b81c79e3ded16f733faddc43354adfa4d71969d8f528a6158e722ad4b6f2b70bfa47eba366ddaa7488a8a5f01450c8047806e030d8cf4ae36fd08ddd155fad626c1e7899fd5ad6325b31f0fabcd8afeebe9c5c6d539e5f34415521887d5eab7b63c8fd1ceb0489441324661acc41990dd133819e102c8567af2b0b9d1471a90dcd166efab7c66013c81b0eec44b376e4980cecb5d6ed5cae34aa733717d10e35e12f707d8be06c85451926dab550003b485adb28e47c4026a7f48e47a3e54a5f1628a48e731c6503087e4603e0aabdf4606d46262d08cbf480dc63188c3e4d89e5edc81fdb34c87c6b5c0715c2a8a7c46ffefb9ab9b1748b197b2bf940250ce720fe1ebe0bd4020dbab40d240899f8dcba371c8f34ed0839e41e1325ddc425035729ffc4719189e9ce0528908cf9dcf46126a61d2a2ac042b2a0df9d2d39221d8762ff9466c6536ad23e0657b83d87fe50cd4de07c487751895aecd4fdaa396ca8565e970a5b9307feeba11d50fa909a680622f2a5112301ed9a95372bbee5ec201cf8b4c72cd5c4144cd0011f4747b685bd8680f3435acc85ffdaef96ac49e179de6cb8d0e0ddb28d7ea95cc6db59ff985add362f6cdb32b1971b97e087bb9ffe96f06f8a11bd63c50ef994273d3965bdb24e413e25eb8a9555896cbf6a0ee9685c9b86b56ee358273df1240561f49c30b1b2e86c1bf02a308672c654a15b05cad5d945970b1e5d1ddb5bdd589e4ca258dab487a297a2ace1cc4b523c758c9b70e5041997cfed83fd215eebb3d6f07173f96085fe8b50e287c9e0dad14da6c63e3a8f71b7b162643c5429f2ec3d0847c6665812e04572243862b0230d6813ceb87a1c9692cdc22d1ccf3d347aa33dced9d9ebf625e536d44ea85bb9e24f1c95fec532224f2531fb53324df71ea8972fb14b273ba357b37c7ac3b0d948796a42ec866430adb7d0daab36df8eaae442f4e9f23bd38b56e4d774c4dc0afa0db38129bf4228855bcfbd802641fdaec065c46bb2263274b944155c6949644a862cb65b32e060c99035f62e590b9eb190108ae2208f34ba7d61a1ce6a187100aec4a72cd1495025bbf8c950a107415abe8f56280a358e9c643bfe60d86602228445c8150ca990c3496c4822cfa5f4bc72d1a673dbe093fa2f1fcbb58815a3cb8b727a892f2290e759d36a9855c405f8718950dec1d2049bcf90e85c7620b3068a34d8e6954f1e5eee37fbaeba338d57eed14e53b0346418d80806fde0d860b67e06af5fb3b21e153bf6b908306a4c2b882dd5b3a28165e94bebc62984fe48e56bd7468c0a0827dc41654ee611faee3a13a36b615488be1426d3a8e5341e332a414206e2be7b843e40bf5897a83a6367726ac9b90472c7b7ceb036a24812f001c44b16658b7085994a3f916b891c92b414f7d3c66ef10703abccd9652b7304d46ab21c9f57456f436109b4792efca3d28827183d8396c12bd4ae81ea87e662b7ddb245d818ce092cb17fc9c5d186e1d19ec1ffec3492fa53539b9a87da933f1925f14d0cd85e88bbac1dd19a4de703951269015e264334a15c714808bb93cf7a68592c4cf317feba772dd971a073336793f41539215e9026414d2a345209e22ec83deb57bb9918721c2664cd8399d26b54e2d9bcc5a17ab6a5cc2a815536cf73f80dda9b9efe5b3dfe2f5a515616ebeb94604b4b13d28d826e792ea48fb3a04af19c94238ea02e9216c7a9a10e4eb38d47cbd9a0d6eda89b644965a14a26450825f62f05b3354a4165d95c7d1207e543cc345effd67a7575be085a5937ffccbe3ed37dccc990746fec25cb1ea98bc1ec716d91dc19715f5d6f9f7b62b04c1a5381398b349fd5e96e557fbd967c4f94f2c82c83a97613044898b3503311cf226f1667152a227de6b14653303d7bb8119a972dda4aa7a06117dc838650b84da93f2d72dd92f6aca71e7847bae9fba5b5ef078281f1e4cbcd8b7a3e4e1c4a1818d3cd00f359948da804b27b396a9e4ff36f9fa1979c19cd93b4c0ad48d14cf9dab6bbdbdd0b24e77a4cf0677e8d459ee3fbfff0b91ec00a3a415f801e89fc656a9b8ff33a94b4a73fcd0c5f238786f8232f19352a21b29a2a79580183c77eae9b91f39b22705cb2995514dec8768f2f2e4652e18cdb51362ec739005aa3b766f577f22109786d1c9ddd107fc9d729b5b8e0528b8eb9f0067ff8f1eaa8a27abc22321d3b398d4d2ee7cb1a13f934a2fd91176727a384a64fcd911b6e5832d1c7496d21268421858fb3717894981729aa1967fac0279c0868f93fa6bf8e34dbed948c5938df9a88105da3db08b3adf0c62e8892c24e75061cb9fcb3f1e290c1de4e2a48e18c96fee117ccb901e18b3a25211a9d440a2c3aa3c4a5cd1e9771711bc4b18045022c86c889d2ee18947ef44435eba539b774c70e737806298549bc5a2297137bfcbf5dc530ea4ec6d4664b036e0fdc61aacf7876e76a50b4daf954bf69e72df23bcb0cef4d0a098c806086192aedab0f9d201df42aa2371d653a18cdb5a883dab05a5503c9b3b0faa574430bd59a8ed7988bced4c588ffe498abff3bde98e04f40133208d81801fb3cece75c101a2830e7eca6f118faaec17bc61418abbf0c2d0a627c90edba4c70e1d7b71ed3be4bfe7c11800ecc0bb9b698a34a283e530d5dbb3d313cde0c28e0f6588f12b13bb821370e371d069d90d1e8f98157d48ed48641aaf39adf163503c61c69d6f8d871763356194924e07710f933f1562082a28dcbf1bd4b12c94cd7a365995421dff5837ac32f0edebb6c26e76125983038a5931cdb0b11a4322e610f0be46c12a6d2294ecd92e33f7298ca7677aae64080c13af2bc179127d630fe5227c05d7236112066911500bc81d3745f2aeb58a2a2d4cf5757bbf4093d0b2d32bedc68629bbf896bdd8b95c4a3f94126fa1be67fa5293b64add716ff6cc2ac115bc919f84138f9a3867afe08fec420551794d01c46eb9927a9db176af8e8ba08c5bc04462aad6125d0138f81f75b3de89bb77d91c5ad7cc9b7f18dba90862b0737b8b6cec74347bc8009dc8d87c45cdab97604bd823a86dc2e16d9813f151bca1600c95af947d44c34833783714f267a25116ccae6add96754980a11429f837e56fd9a902950eb92ec0a5ff28e13ff136aa3ed7d9c8dc3b6cb76b08670df631aab26805eda7d2e43edd1c8f7ac3dcb1f70b00df023e171031e73273b381501481346be479ed41394cd99c913b0a1ecfe6c642b7ab5de9c16fe51f29e5023248100fb1193a71fe692f2231c8b4c289d85e58459bee3863ed6e100371dcf731508c917d7cad56ab9a5abdbae9f918a299988af516a26d15d59615bbb9ca4778f145e0d1910f0e26cbcd485f0552a1e1426b12ac96f5dfbea4fa0dbe5edf8089cf82eee6c43ec562a4201a966f05c074fc03c5864adc27208684c81021ef43ddebe513c28ea28085f688d8b2a3704329e168195073b9131dc083b0aec8ddd747a53a0d2d3585550c10e222b5352e29a4278ea73f8be4c391a3080485107fe4cb973896dc44bd1df328345988786538ee9bbedec464fd5db53fa18e473e08a6a15a7023e288cc28f3d25e3a77460b0c1121d415c25ea4ca0d2602d081aa0f8f0406572c40e148c7f8c9fa2765827464841850e18a40357118f5c758ca81c21354405db568ddfbcaf5fe30d0c3778e00d534b21fa4f9fd5c62b799b1d2aef7c8ddaa37efc9f1ecd2e7c8f8170d46fe0b726d5b9231482031bfb61646f0d238b9a7da6bf8faf2d91a3131db385166e54fed7664bf5b670504bc2199b0e5b9d50142aebb285a2c838464e2bfd545aedfac25dc2ea15e015a444b6878813b7f97c021ac29c00b4031a5a6287338bb8ad10b596e8a17476512c62eac94e1cc605b50ae8ac5adab3854b5e94d695f6e982d24cbb8b215d50d8661777a459c2865e78de5a7e1e338085bfa3d1edc1ae149750184567f4a9ae50dfe3a8e317fedb7d63c738de9d269e30103116cc0e6714658056e125e48cf0ac71a0d743e493d35d3a4db0f24b181799311daf33916a38bec57241a8c1d9f1c719509e4c3a6d7dc3ef2d902c2ee1cc90c6b13cc4bf6055b625a3d34ba88d49b2ba914b0ecec0918f1a3e2648f455cb6298b0b7d1740fcf1b720c6ce2f729e39dd9c8acb0c61ff42859b4e331bb02dfbfc34d116b72b18858f6a979b5325d6dc997c19c56f3600f6083774263ee0d721b21a73d3c78395888614a9024e504401cdb4b5bf25c1784b546cf7cc670317a98cdc67c808c5c56327ccd35efb4325e04e345e8cf4b309585aeef703e0e3be2ba8d7c8d74b2107172fe51867935462017b2dbb7e42c8c0f84717383c23a67e4030e17e941702644b243f85f1d27c238734f5d6e34f33f17f1589380ba641277a95634725e5dec2afdd669b4b61c453bbf0a663b6c0c3d6ac240d61ebd57e9f607558a1c30ea0d6c0301261f47418a59bcb61a76be0048cc4bb1fc8e54143b9eb7963713991a929f649eb4984a7cec1709f9aabdf462be200e4d03cb8dbe0a9f5fb57f55b0e784a95fc7b03a13d7b94a120507ba440d65c1addd875540a95bc5c462b0d2043f489191f8dbf2052d63dfb41eafbaaa2ac6b298b8f0b8280955250af00ec9c000bda4398609ed54830a4cccb7a7b90edeeed0984f455559d6427062aa8b9884340af5af4f4bb997085ca4b83b08544f31344c1c97a5ae3b1e98f6f7868c233982b8a05540fe9bb053bc183d24adf434e70927eed773dd1061db5bd456c5a728c81f69fde3a60f030608cadef620a170a175035715be878f4a2a452c12cdbe3ac183137d9385b7dcd2cc0ef4c988b3d5f0521aad1e5368a914296a653d3624a0a1317001566ca766c4db5a6828b06ed26a3fcc4eec2f5db5e5957c425f449865221703d1318024df69d13fae5f0aab7134023d82ea8f59f2c9063abd0bca4cb9f538d7cde0548ebace29fa205e6b0b4084804f525d7a1c4b7bd3a151ce5c3e55f00a6fc882d428015f5a5311b4cf2937c69b09fa548ec138e04b7db3bbd589d54854a0f6637077afde0728e5a1ea222e796afdd89c6578de74f8aab2e0f2184bd65e088710b1175d1d360be98bba62c5faeed8786abb27edd9bd3df6a66b5ad63038fd2ae1da8ad4432dcc3144a494e6446ad547d8f8e7a7a36059d8305f52f0a2597ed0cd43e2bc71f175498dc2c18406b8700c51666772f64e2e04155cd23e217cfbcdaba644e77817875b91cd119f24e3e4df98284e4dbe758527c45b74ae25da2b33df0fd50c92f039d3c93f3a81e60b239c9ed19284e5c31eabb33f2d5efccf875750937a442082bc17421eb580768fedac2fb1ac8428c9412ef1cd2cb0aeac5394c5ecf8422c09d398aee93612c401aed160d8599008b456f78a2e287751d8622e66bdc234d4cf61a75aca47ffd65ce3fa4020d37a7077467b7f628a545d290a7490a6247fc3b99582f35ac50a58b0c9cdb47a587f5480d62007292ac0b83fd594efcd6757ab4452472d2218d2230239bfc2c62922bb3f29147dbbc20be7c018b15ab5007baa37080270fb35fd109ee98c52c9f3841f07c67220312533bbed4f58528e4f3b51ed2b7394cf3f5278b6951a6c3418ae754740e1fc9a7c64ce9e6425f4dd3e7fcd925eb176025b6dd3acc00965290674ab3cd79b928aa18d6d024b14c79947149a6ea40929477a7c7a4673174863d4c713887e2961868e8b72d2a924a93c19ba049df0a8ed5b19791b7a1222d4ca9662717008a6946f7554dc0bcccd9d6ab3a9a71cfd59204ddcd3075450039c819861c90f1262c5cd963ca538db572e4e8e8c48276a850c76b7051611e3b7b1f0249442d156f5837c327e5299fa135826787c899aba2a5995f992bfc7aff75ca305a5777c99e84f4971088bf42e589aa748d73fe6875559359fb26175fa4fc5e59281f0068f76bc7f901d4fa3ed784604da38f807aaa7f711f045c9c04300c3e76aaaf6c681af701af1f7dbeae5ce56fbc902c6c654e98c347081e9b10558faea94960c1b09efe070e83da5885581f20ddbd7ef63d76d560af2efd829bc5811dd6da0aaf7ce561c3f8f6255b2cae38af9006cc0165c5ec0fc71e32007c8440344ce567947b5029678621717090bc9ba4e0a1e68105cfac63b7798465c6acd80dba926cb6f9018b92379432913033016bb00436ae7b3e2017c6f8879be4681cbffe0364752a4fb9ae97ea7dd96fd8e167a229fe7840697e7c6a86d6b58420b8266e677603c5266962be10908966c2a42afbac7d511d6482a07b27f7b01255665adfbfe473af8bda4d9b2f4994ed614bcab0d476d2b89d42a016adc7fa15f49fbf69131c69f11c718fd5f0a94854c7018b242a256b3073269d10f433a1c580f426c94907ee0b14453ca039383b72fc48d010ad5302436f069ad1455e5812629d7285836b3be71900649dc2a6b91bf62164415b6b40abab36ca3c35b19e3eb7ac44bb95e8981aa806efd6389327b513f6925783da1c901e7b097a14de684386ce8bf3682cedf647b411e4674799fd7d8c2f835c409116fc81e6b9e535f5f5c934036c24225bba074e1563df23b98bee8f242ba345a3ff8b2c2e0d2846ba21606039c03d29a108ec8608a76321493f6ba7bfea10731b178045142681258ba48d8dc601f18a4eca168d81a19a1e7620f8c581e40d7077aafab72dc090a18b47bceba62051eb210b794fb18fe58cca97592a116d3a6281eebcdc090fc71ba1e182a1eae414093242fb84c8016c133681c8016bfc72d4846d8332c50c7d52d442e27570e5f31412d01f4bf0ecc476b6f83b6b72b716f86a9ac9ce484a0509a214d64f95d721a15a94f76531dab139e6370f07106c0b3749259c9a3f31c562b9b659795b9ad21ba4e87cee6e30ee2d5fa994b32dde425b1171251ef328c1c59c2d1d3ce63bc1fb3ef03b7f3467202b208a76d99ab50bfdd1ba9419d6ccf319ee906e19bcc7b540b2c83836856346b6f0e37841106e705b6428679e283560b0f056754bc7226d702b3cfd7c94f02dbd12cded3bc3119c81391600e60b4201fd2cc2360466f6d5258debba669d42789963d5cca5b51840a5a950f1f47b94e302d7663dc9963292ffc205fd7a530b8bb9ccbe599f9276980d8c8fe7713aa84269695ff9c3912b8cce215f451bffb9be08b7d9ed374e61b703847f759ae00a26a6d003fae0f5ec38efdf9ed9c4a07daed6e1e3f7db73af1f53ed6d86e63b8b26f777ec488c85f1cd560fcb070cca3af78597eadb738797120c1d382da99afcc3c500be0a0c22760f8cc8dcc0066cae251539b69b76334bbd5ad75edb5f984312a9101b4262ed4cd2f50de22d4b24025f31b00d322a650afc299415e60a6df8a369860fec316a2be58f22835b74a34e9dd6c38d92310ec5930b790c190bae0cd6ae1540c646c98cc8f4877eb3eb328794b250831c076f8be1566b17e2030b91846e119598b94d19d4a8c9dfd1bb296c37324f1af27ef52b06cba69f0c3b6caa75d6d6b8f878062243fd8924a69bb8746112146dd48122bd3e4b51fcfa4c291c5ebb8d1c87c3f6e3ef7caa7529b06ddd4fd76211f8d7185a2f710dad0305cb4ec307c947492383535c3ff02450c3a36689c10e98961a401be10d4c904dcf6c1b5fb3d6a28435b350d3a8f13ba6d5c70f9d0fd2666ce6c258d36597fc35bba21588e5d2ab9d29c454a86ddc17fe8e40073c9254632ab874b54c40628660771209f687d6e745afc35a16962bb8295e67bf23d2f24b7332bd560a1dcfe657af642376f9c332aa1fc6f18a0664fb0e1e79902334aee5c05c88f1eb0bc9503c8b376949ac832099a257982e7586a47f20ef1ac66dc9ae4a94149b2c651ac119336ca1207975bcec69de445f0ab6acc61a1a987888e05d2f05949a9f609863b98c48e4b3942f98bb9f639a4b4cc4e4be54e2502b9285e44653a2d30f21fc6113be4bce1e5a3b4e9cb3f2ebebacec206e01866ec44a29916ef137ae8e5eed8a9d7241b7fb774cf3e6fcb49203e7e44d612c4da9f7003f3736ded2eb254e8872aaa5f128acea434faf8dd9039996d1bdd7fc4158117949d60213442391b21bfc45cdebccdb3d7a7b8ab859d82ec9511b77ebf85f148686ba60d1f2e8e058bc8f176b3beff901456dfc8d687a3da11f9e4e20f7107e25994fe37ca8c5a25ca613161fc0fba211db0be743463640d501646e2e5856568c34db0d5cc75e49baa44bea7f8690a965e7f19180992e2fb706ea61da18a2f215c6388daad354688ac505ee6757b0f30a301e31c4d38b0505b2b6625e2709a04e22a18e1bc6d75b71e42088d8a65808541aa222bcdb63fc324bb42a669c341ca51510a3d21d4147a93e08fc4c8a5a893683e0eff77c445855d1e0789af391c3be8365a977922d3d1ef867080863f1ac5e727ce537519d7d79b7cb2b233719ec38c7fc083ad8a3933730d9d10f28af9cd028483d1dfa19f5a8f905e6e4a48702160ba24854918926ef0df2b0a8e192117866186ca1cb57b6868cad136a66a6d1071d938e3ce0576019f316e784c205c5d2ed17133ab36a66a67aa6d26d5de748a0d5a542947008e78330853624c25f239d167a9a3441f61f0499409d205d97be5e8f22522885d030c2fc222518583532e7823bba8d4a67887db06a91c958d24dbc96bbd35d6b576618b2db4c84a16a52e6f0968e39f0990c3673b43731cef393c978b23386c46d5c654dbcdaadda4de19eaeae0337fb033bb27cf315bfa8991a2fb02a8f418e39d25127eb7d9c6deea87fd44f7d1887e2a57bacd7761e4042a63161f80e39f349df525bad4abed029ad12bf93d123a5498ac5eb230fdc0ae02ff43453dc39bcab82ae0050a8af390b34ead6ca8fecd8fce8d9dbc175db31171a9f38c8f655f4adcb07ee1c720d86ae480f0d12518aee0788a1207afe6da57019fba01c321d09825fd2c16c8a9939e20ad31e1b2c622e79853dac3da2c2af7790354b81ea21daea5d51e1855deed09822ed986103b6348da89ec60736b0e1782a2e0ddd08e408ac578946f3de94dc8abac0ebb5ee34ee0d45e56dd71b6a98f07af01900943ca86fa73972f77338dbce98b8b6f4ead822bd4e14b0cb2352dc6e1795effac9ad9aae00bcdf4d185620736e7d48b834da558423c305bc706a792ab8bfd1b9e5d41d8fc12da198930497125209800abab35c13d93cabd4eab672a4a40a8746033d427930a4397e705be11b56830009a6c0f89e8071a0a02b062ea87ccce21605ea0792a94889e286084b8f2c89ee6c76bab5c8290f93f1f117234535a848821c6b2b6f0a071aa1cbe46b631cb0b96438b9070018decf8c9faaa13c65369aa03a6d685396db1c55831371263acdd71c33c2e81c8aff14bfa1761d6f5b8cafc5b6f10440d343c6f62021b7c6a86e93341c9297409aaa4c5e653939cd50d27fb1ea60c86764fedb838776a0e1d84ee078a69f91a06b714a53eb1889b1ef7d53d8b3b0eb10ea42e445849bf71f54c3f401d27ca4400161175665974b48df222167fc41a8e193f26e8615b8a251b7011aa968a23474f109ffc96420815863cdab182ad3a8423cf32b0ea14e85540086db41e5a866653528aee2dca764cb53aa0fcbd6dd775305dbe3f71e296ca01c0b4565ab8f5bd09911bc228cc8c9179ae826ee3b20492071a1b30c3fc6646168806bfb164a051336faa7d2d749360e5c36eb6e1760dd001ad0d3d9698710b2b91d705448f148131bcb0224b1b3f3b35eeae138f2e79d1ae6ce7b8b11715768fa4cd26f5fa327ca5ece189130029eb7c2ab0fbad3402c78b2c2ae71f0ee770babeb075e5ac2051fe59a903cfaec2b80266c0b9ce7b5a03f57bc69e16fb78a7b2059dd080c16273ace73e43c2657144f7c05d9db0805f0c8661f192e56353dbb10a1748c4fd6181797c8a41bcb8a844c41c39b2b3085f1f9d648d0cbf126261cdb3cfa3a23325cc6da942cf03b21e686eb869d013883c7ffa8e0b0e359a08e8b1cdcf4ed729c46ed6855a5ba7801740f507a5f13f807711b04bf9e878e5e8e61f0d7d9aecf8727837b10dd30eb557c2ebfd474252714c11dbd4bc161bbfbbab49f8ae11742418308d4b5c4f317d3ae49f733eccc989fa3ffcf9e833d98d29ac2d7cdaebef17f05a3bb970de8f10ece2a55352cad2a454e5cb59d7c3e0bd3216cc0538cff635986a29bb4146b287f700153f6d5419ac22fd18fa87015e461554789d75a58398ab661ace7396b9648d6c9ec14f50e8a78a9e11c7edf2aed4e093ad0aaab73084eeebca558dd154538b99fc08904d0fcbc43408d279205985aea846ba26d5325459e60ef93cbdea067e167505dfb5802be4a88408473b6d82d54d89ae54d969d9ba2af72e60781325e1d65423db4be27f160ad93b61a8f0e685c9b24b17bebd7bd611057fe9926f4a02c80afe527ff77e0c106d8894e39525dbb45668d47f408bba99c49bb71009ee19e4371631bb1512ccecadcb8d2ecf6c7cc33d4ae007efdde77e7e65f5e5196ceb38ce8e458b2ccdb198a6ee3be1f05ec32b2420e942b5bcdb636d749b75376e4da11abf97fb85f7c8b8a794f0fe539891f4bce5bba63f72edbd6370e5773774097d8883ab75f75435eb6216abf07e79b5d0c8ed20783fc6a79e887276078f4de992774dd7d6cef8cf5e38f93cdccc746a3b8951cb1bce4199debe400d39f95a3115cc34f03e3ad02a510a69de0cb22700270873d6222a2f54aa02783f1824899f379b979c81f0d9ddee63642c1d1a2faf1d73f8427d907e46afbfe561a4ec4ea464b94d320efb381381f28995d629965bd94ff3919ad01548f72bb862112707611be2941e1fc9144e487c8cc20d1f870d96e5106ae6b2053ad63b9293f0b9470c0109dd07867a114080b3fbc3adfb9a7b7875921c1a444e364d89af95b6ee35e693cd0989841e27c2fb6ca98b80c4b0f51bde628ae80db4d758466997b5e65c5a8dc04c71178eee97513ec2834c8d91bb25e89e692def4d4f5d83ab52b535d43cc9bda0f11b49547631d13007969b91fde55396daab545b9ffb311b6b743985d357f7404363221340e2893ced225a547a1872a0ed8ebbe49115a30f2bcabe0cd2665093812095e5acbc169a7cef9351c99d13f9718fbc840715a24c375ccaadcb2c09a338e23ab8a007344f4fb7c1577dbf52b053d3643d5334a23cce6b44de7b08716c99e9e0d4d968ae492235d270bf926028126addbdde191bf2dbda2523a52d93156ada7b5204eb37123aa9ea676b505659b842e1d06847e66d0e9a9d47458ed000d86469eeb6c7d4d8c298a2739bef78bc3c6676b87c6d49cf36e5432b24f57a88b522cb0ef25be95a1550becd1a50fef5caf163f908ab03bad7b10ce49992632cc609a6ec681f473a0dc7cce775a70b943d66b089c9799f3f17f08b2f15b3338699cd4392159fe15359ce591a46c140f4c5e295e1dc4e8c60425c79e96b4ab6bd881bb5450b68d492dd5c80120598bd86b5120a4a5e64e7205ae85bd577283e4495fab6a85373fef4706578a5fdf80c11578e711f19afaaea4568a4f756fb694a2a9c67755b3354aebd99e28a2ba6ea338be3b8f83ae2c2e2d8ffafb4912969926408387cdda9a69b637b9df67a7d18d6b97cfe8bd95c6e6cc5f5330727da21b1253e7cfa0dffb39b51dacd6a3b0325cec3157dde38f00f11ab697ac5d98ca8975daecec19d71140a1b0f5f3c14bd335e990e90ff4a4219693f5f5c799785c462e47990028587393ba27712d3642375eb3d92211b2a4e77ce7af9051c9abc01c76608b84b6269ed0cfb847d11e469e8ac1803f530cfa05899a4e7a4b1656e471f6fe44997ba80f41cb41863fc1a33d8cf4c49b223b3fb697929d4ef3542638a1d06e18bc1f6c7464a11578dd2145b998cc7b94f7659dd867687aca973e0d2b4298821e5669a0c78f1c049606e7a90de087c5ce11c9dd5965d4fa49ce98dbaaa701d49becff937845a313eb581bc0b25b3c6169124d9133910bdd21f9b2d980cb44621641551a2fa54944a4c2ea400105cbe632aa189842a9d98f63f65d7168f8927b3d53fddae05cbc7643c970926a2792427602285bcd69b60cee66294c9e0d610f5f919b93f584c9a8c47126414a38be251c68ab856cb574542b0667276acb6aa38524422dc376b1144db801411c85250998c6a3256ebbcbff3d7eb52cbc8fb540fa4ccc8a4ba99e14b260370273021172ed314ce83f3d30ed664801d0303822393ecc129933144dd868855b4c03a000d3218e9471ba04c064033dd01e8922a2da8d645d760fd5f7b2ca5aadcbc8539569ea746482ff03905b13219e0867dee3e7c9e614b8f3b3adfc197813ef8e5dec670ed4f1a3f9ed679daac4fb82bfa448cf2eef6990c4f0b813119880fce9533a1f22dd9f1dc118f04d9a808f08feeca8d0ec8600b0089ef4270175a93d3300dc87077bb615d71b89fc23704f87ab83e99edb7a3adfc7dff7fd2e1384b90e12195a0da8082f6feb63300e473719617980719ec03f15441e6f00c8ca67d6f067f5f9cf1048133725787decab6ff45534146883be31e36a274a9a75b28a541c62a3a1388f7033d3f5c4928c5a9214a3229a7751f360c13ad0544614fff6112640c684c37856146326414d63000f861ebe7198a1f46992ca9bc8fecbf45ed5e3d0476fd50133f496efc30f90f5523e227cc3bc0c1c1e613f8da3c9379b580cbc8914cb266cd09ba300719e99df767764276a811fc9d5752e1e80e226e1c4be53926aa7042031a2e58b58d82c7b16fecf45dfdaf8f63825f3427e98ff9caf46f4dea71db327164d8665bfec02c75906107196dcc6157257222e0b5d9b40435f5ae5ada1d5149551f9ba4886d13bb8599d92719b0c28909a21d32f5a155621fedb8da60f71f415e7edbc620b54cc9105458bc0ba23fba5d97b37fc330745eff394f098d3131d43a6ef7e111c8a090da524abd1b062c2ddfae1de89d1064acaa596095fd06772b9bb3879a200bea39ed700f9785a0be850a60189c95a5a7b2da0432f5f38766bcb28a4c8303de529ec044fadc7f54365d9ceb9531012e8e2b1f8ad649a20b9cf686b55da01bcff47c6223887ad85487add6741bdbb99331787af2d1bfb71122f5c230837ca3da8e7651aa411345aff99f480579ad1445907b499652bcb72089acf382e9e31d1b3f1957802565dde68efcfd13e6ef829ef3e1ff935d2b9964db0878c3e6c74694ea7545d82e8dd153613061bfee39c953d193c0bdf36cf3f754a006c34d7b2a0c63e1382416a978c44e102415689e9da4605dcadbec0125a9f89655602942dd7ace1f56315da0408c8c87637121e2960ae1808a1162c0d74d205231e2594802a9a02d5fc36161cd46a402f826342463046c95261452b15cab3fb153384a24736c6a22bc600c0f220e86544464e7ac1c94d0712490bbf662249db01e7be174e8419bb462fc7e103c09dd0b48c540852a50900aa71c1b0261f7c453794a61fa2b28b4887227720c8c8c8e54e48fb4692e95f841633c695f53f9d0fda720174d4ca26fded45f270ab7524ad2f0dee8ff4fe407e138e0f854a68917039b80b20e9114173aaf589cea42509c239397795827071985bae91c4a65b2c16949b9dd685903a05f1291a3377c3a20e3c196a836d74a93587e95bb82d41524526d3213bbf88c3b8524612b38f06611a2f8289e360b1e440c156dba544c1693ee5a02a47cfc05bc64d45fe02a26ab4c305f3d014b084526d1951c28766f4de32654d7d321ececc0d8b084a0cb46c1bf70530ff91f460860b6ca83a510f8c8bc2cf09a508248c6d7bd3ed5dbc6dfe750991c3a73e0b658cb4284728b83271f401e9c8af3274a52bcec398d09d1a14f99219129ad21da6c5d68289270b6bc2458fb9fa9268cca88dc7f3705bea4619366b13a18db160c3a4c01d39183deb665b6b9b6c34ecb7cdc15ab72a111aafcb08226e068d5d085a51122db068ddc87b6d6065cd5df62ba92f88e33f0a91d54e7a847959b3b31eca4b708a3287875cd7bed03f8e7a41f0bb7383d59987fae004820823943441924f00dc2007e792e6a992970a9961feaabbc4355881b1e2bf3cce19b971abb929bb5e42bd9992d303a6c561d831c1b6d2c35248eaeb60f4d3425f54eab4f419b65eea5a28bc73aa6cb1ba409786111c5b10f304c067a852b32fc7677e241c2cf7a848bd3dee1c1e6c9a91f78bf2a573fe2f432df949de06dafdcb0a76b1418d1f53c30ac9d45815ac3328145c27a437f43439a3ed4c2514f290e315aaedc306bc8fdf0a3d12c535df1e1ce26fe245d6ff62c211a67bb7bd92d17a96bc41bec8602197dc2c8cc686af6199f42c5e10bc83ddbd764e031b8e0f2da1f441fe3cd98daea79024d595ba5e93cabd434b27f1f365d2f1c8c5bdb6ff8e2d278f482e0e3bda1c196f528f768505f696d9088bcf584d2907ea0888779623ad3db296e57cd2172266dc971b84f6f6dfcb65224fbe0a704fb106ac2430f753fea33c61b64053eb67efd513f80dc96f4b023695a86aea1561ec691de009b69ef266faf392afbc25275dbb3c9e6a46695f81a3acccf7a521b29f80fd59477fbf5d2bf78597e895735f7afc31717bfce2d51bcdafd182b9e8d044cde1d17e985f5ebfc193f01e13e856db25b421d36fc70909438ce006ec46119434209b3201e70b6728dc61b62f458e301f287ecaf2683a871f8228b93189b1928a6ed341936442c3dbe2f2438b3d09ca66965b2a4192305504dc4f431e368c0a63b82c0e79a2c4235e465c44882cf9460a669652dd21bf1894056ee04ee712c0a530f80b04f832928fd3e5bba4532b0ffa66a5080c9d6ec0bec76388be5af3fe5c400c9481406f2fd0586ce5ae442b5c946dd36ffc768427308ed4c3a3ab75456966cb4780371eaa94586e5e28300e698a20d0bcf21bc8ead77ad6b8c11b33d4f31d0bd02d3e1da5b0ca725244fe0f663e792878758746c73af6f1423a74990cf9ac0604fc60fbc9c09acd616a7ab9bddad671a7cb74b885bc849c1a98b0d312cdeea50f0309bfd4dd792c866ed7509ae6aa8adc4a57abec948531052170dc55c9f1cbcc72710a67707b004bde28ebd0c106695f7d661b2fc717a3ce10c95130cb250a82a93bd0ac9b8e4bb489dc7ef7cef30384f053c918724f7e284fd7ab4c6a17c8e0ced51da90d0439de28c7e3d03820a60b4fe2bc153ac0ceecd1675d2e34358e1bea87fde7edc613f17585d05b7f9d5f78350ff20cffbe54e527a12470ef7a5adce3581305b9a08939524c1b6240917bc3e3f9e2ac60e94e6e6996dd288e1ff9d0caba51a65905115586f883eb9327811333882f36ad70cc85e44cdf6bb4924ad05d03ff0db8c04d95edc585146177a075570c340cb43ef144b05ff2eb42d9d78989712badce7eb58c589eda568e775e8b3f820c5e906added0f22e1f1cb11c4f44c777827c584a94fe57bd0facdbff4e751bab8c5edd8aaaeb7a72b8304f3727bcc61a240ed41cf89e7cb4f08e073a87deb308cb243f575a1b907c0e1c98a001ef9fcf93c34fb8111552353e882f0213e5f75bea209cbbb93093bdbcfec219d689d40294b8e8554d1100d6ce3abb5e3e3f487831d84fe33a7c4778af307331fffe81a8a38aa5886684080d6d95e4ed5e448343d3022b27626126dee1b37096770d82039908a18a02b3df771c88159df36d0440f9a5cc5f0b81cce1f61ebe132a732c0131b8af20fc969ec2a17297c250eb44f4f1a44c97c1700ff4c1054a2f7105c760cc28841ad72152ef59174d407f191ab013994b153a21f936ab289058ace7efde1c6cadee2f9388441e4bd3cb23debd85b5fafccd7b8b17c5722be4d4b6d6b0baaa5e6b2be905f31da643a9c1208426cbae7f2b6dc4e1be3166d7c5ed83ed1f4bc08b5761a9bfbd76e4585fa75507bd76c4bad18cbdee5347eb34169dd60f23cab0028223323febd85f88134de97588c6ed3e915c6c97a99d61bcbc898ad3e136a539f6a2fd44d0c2d1d97d46b65b5875626158c20c5294b09eafd2884566958a97c1e1ecefaf914e04db05b55439c8694193480675a551a93712ee38248e1e1eb62d089199ac24d9d832fec84cdd500e4d0d291dd930d17ba063351305d7f15135319a94756d545ba0fd939fb46fb3984f67ca2dc0bc66b69e2ddef8bc3663325d1a827c4306b461633c0587844931fb7df539e0952fcd43c5642206ac5b5c096ecb3040ed6914941fcd62a9281607ead0fecbba7b01ab6343d84180845c97d7d5ecd1949550199992caab639339e616c16261b04f22ec5b4d974c678d1c80f88e9589b6da51998d89333cec292f4cec13053f7e50c024ca47530456b480760f7b54ff96d587371786d6242c64723c99f407b54b6959c1a7e11da81ba4d8be4216b6416771d093e7cb00be80209dc90a1a9b1f44c05ee27e2367f88ab7728174393c44766f9e819675d08f4d4d98cc519ae3c9de4492bf11c4a1d83ae490e19ce5b0da4f4bfe8d974cd00790d94aaf6326f36d31c6c6ec009dabf3a5078d5c1c121573c0f7dbc412eedca1d56527255ab3f73d4e44b75b2722536bbe29a429504bca9a1f9b4b6f7e5dda19c465070953fe02506e6ef5a8e23bcd030326779294bf9bd03a44f1a5d98cd2ec7ccf90b8709309e6f196dbccd2e6a20b07ada51ba46b9a1e2f4c14a553e6466b06b8c04303b8925d0ef7062987d7b275ebbaf4590ec60561bb97c7de1a4badb2951947dbeff8b573020aff58eecba8565a93b811cfd2ede4464b7da0de376df8d5b6516a0308fc17f7af5f66d06d3b2ee238731b5cc188392cadbbd86727f4c15b06c8765ccc540a97d846f2af75c956de7ce05635ff9acfd566f2d7f0e49470f16b40da89fb38f5da5a235679c5c2b93c36a19ef305820e13485667d329e72dfb7a700908e52edec8b553f3af3f43df9e6eaf1c2bf81e5fe731339d9e8c780af0ba27b94d9d85e102b2b1930d48feaedc7cc560d9200fbd86ff1f958d5de9dcee9471939a71e31268701a93b1fbd421cdc59914b938e9ccb9eb027571b6607d4a9a7432f576ffb8556fdb508784dc6bc6270ef4dfa5bfff726e259ae58c50f0aef046a3d7854f4c8781cc6f39b75b7643e08a1477e834016c34930d0f295f1313b1a81983b28942ffa801b46f39e0ea8cb65c8d11853846935da4e6e7fb83402786f5d99854cd48a2573f2b01c647d5cf3f4c91a2d83824a4911fdd3263f9623bdf18ed51b91a55a89d2f017c69eefc8086ee710b8775719155838493472e08c9b9803a36e8a542b52628e0963add3fc8df39fc3279f51d91e270c49f0738b631899e010b2ae35cc610072cc037318d1c83f1f0cdbf7dc1c69deb5cf23458186518154dde7453980981824a0c2ecfcaa7b9d1810d2a924ee1398c884e29fde0659a29afa3fb335417f613c559d0eb76904b051c69fc2a8413cb6ef9c0ad121d661a62f0080ee4a4566eb000e58a6562bbea3ccf2cab1205ed10894a69e581ca6f9c95ad25e18b559c2031a0ab503cc6aa8b709cdc3d11495674ac8b83bdb32948d52f425cc8c79394f5709c4a3e4b47d8a983c76239e6a595188e294406a00eaf1b733d47b38f5b7ad80987b99ccf756a91e6f20876421693c85c15f69bd13225ee6435524ce93d8e8dc8a7b6dbf888241a8b5acdce91c369decf42585d809a259788843bcd6a708d1120ddcc236d46c75e1eab0668cab6ddd0bc4ab8212e56b125602563eb2493e1530213083329cef4247e023354a835a31002867dbb25a4426632c6b7089b99d90dc2f404f4597a1111cc75b528fb8412456c557549538f1134e9962cf8e5b7a796ecff1de45a8e884d7791af80d5bbd92966202408488d0ca7c6f9d0f4f1a060d100a89dcd372794dc4bd8d1aacd0d341a75e6bb146675686754da1db3e9b8a46f933b040406f12562a2dd5a51fae3191b351647bd8eecb6423ed9566bf51bb49923cefd0d9b128c59a465bfb6ad0a74921ffa47fef182e9e29c9c3db8fc1fed356972d87b493130f73de043713d747e3ea4e381c5e8acadeceb26d508638af9bbf5464cfb3efe44c5558fda2f6d4fb498f6fcca2f9d9a6cc556e4fbfffef3b1c085707b505113d70fec81c0e6a1e8496d2dd4c2d5162b8303eb72a6b3d556673c2475f500f3d4cdb1d8d239d746a7385e562780db20ff59ec5a63935ed6df9c0fc367bf43c5969da677fb5ddf3e9d137e0e1bd82aa87ec119455fb1348ec19f07aba8c926866917ff1e871314035cfbd67cf58e8c28416aa6c150d9b1e0ace0f20ee1894f63198cc356f19027e8bf9eddf18f02f451f977a0684c033896072801b87fd4f8767a4a46fd74a5a487261f5d295874be6fcca9436960fa3245db41036b520c2e8d6377c22d28be7a814639d43e258617201a42072feeb6a1391ce6f18bf7f04a7471390bba2bb99cf8f3e8e2ec27dc4b880e1169cc0418d1f998e64f814a7f2ce50904aae0a26f56c678fc167901f124177678d1792aa37e8c811b42f3143f21fa44df770dc816fd61a6fa0565452c136c1ab8863a3369d8ed26f8c9e706aece4611d1c0ea4b9be482429e1026a281b1840c9017fb75ab64ab0c123fd4d6bbc9aea1d4201c9fc85a7651af1427bfb060bacc94f64bf517f87b6313e0a027df560d0e9648e5d504dc2110a0f56b3511459ef588bfbb534a3c1b064c2975d8036f31627dc1a33e65255ee2d987a4393f0a860f9be8fa57a3f09a8ee11448c552d94d807bea52fe75a9aa83ba38e8e37b917d2ade6ceef8102489cdfda3f88db73f8285e34e9b3ee80c7229a41fc2f5e142070dcff40401643050a1268065290c90e1e1133264ceccf558080de8c07d82e84d6e681c71692be563d43d6a94b339fcb2f3d99650260bb83089a762d3f0626481916fad93e490d85e175941d5d45e83f5cef034b0ea83c1975847c1e346a0f01dc64427944e6f10134c50cce9860f03a5fc0b03380193ffd65359c83934e531980551f0e0325d1e3ba7b8bb2fb40d012578f18697358ad26b2fe873ac24a377444b3514d45a5b20773d9da741d170222a8fed93da9fb2a8ca6fca4c79fe4474e24f52711cc22fadb1ec9ee4d2d0269e2505af8d754ecb6445fa1b3253280cb74428a3c84be4104b80a31557177555f6a41618d2e51f58c995fc9b9b14883b622df47f815e981ff567b7a5f6509b1ec1fc796a8036f3263a282cb90d203a96269b276284a2720eb0c36354b52ca59401dfc6d6f75315300efeed82371679480cb6f153d600c0cdfa6fa4970120b2c7ecc773c3d6d5787451bfcefc263055e6d2c32116f9422929b67dd35ee44db01e0f3d570f4f1e2df6f4bdd80720d56300d73f59c714d9302f227aa5cd7395f570611d97f1581c0fbdefe39e02ccf83f8e3454201e04ec89c0f2199a82694d8d4a47dc298773dac26f15a1c2ac6a35b0279bb14b94f3c2cefd03b51234c2bc1d1c6752991371316ab4ca526c77a27e448eee6c4e3b2a175c4575f6f17ae1007f929e187bdb6452b8c9bd374630adcf9c75f3e001bf62bce8aef3a20cc034f17a87cd7d01de9226db3c9093414202dcd86a944ae4a8faaa878030a71d7cef85066fc0e369c925533aa0af7b75968c64e8e18743895ca1abd046541bf3d7472d1cec115bb68df63b05a6cb2189f7900511df1cfd7c302f46bc57f5c96026b54c9612752180be73231b5512c29db66a62c18d1c114571e514656f94015f1cf3d4b35813816fab9c7680ecfd42ec778f3e2746ea62502d74a7d1e5973d0268465b7e1ecbd316787885c00ebfcd93e95af2e3fb247867d815bc0b903b586122a1001e5c6a41150b10ad77844924fa525255f44105a3c99dfbff140c9024dd566f8e072d1c757dc8527f898d6606a36d02417908b93efe805093a91e9c4137586a8b78e2be1176b03df6d54e6fcee418d18daa7ab1b2b8f910aa46b3c7485845ba456046cb566c411eb14d454c9824a14ac78da0e38c62a3eb4f223a0624e37110a2978e441c2db9bc4bbc5a130abe15279ea1f33350684a6cbc6fb8079bc4be37fe23321fe0e3072002c5722206d198116f3bdd50b1e9ca4c47c2b80cc7d97af8847478d0f0dc62949a02826afe080c15f40ca730cb80240a0234c1f6ebfbca2bb2b1a0501b1788eca6e359fc50af826f653072e67351ab6234f9746397f17b50cf7d9bbcd986696c253842e8725bd9fc423e1342490bf9aa2c1df4bc48bf387560e5811a0f7087cf57737e8d7b1979660ecdbdbb48c448d0173ab70c7af9756ee3791181ea85b22988b4355e5b57234616c3eb248fd429d439340fe70fb171de5bd174b1f6df06f3ffb788ef1f241ea2ae181c154fcfeb932803120e3c6e8233aefe51764a13eff3c0003a019c8a0be68120bb178424be6cd8b6a92f4c3315dcea7aaf373e60873e2cecb1759f92a1d598594abd9809d7649d6cbfed7908b2a0c510d59219ba3209cb4b1364e7bebd9f4f78241ab51763e770159059c54efe3850776265ae4d4d8d43d078c570acdd327d3b96feb8aa58a9a5cc7ce0b5e401c8efab33610b4e19a722c3b90bab418e34d38b8bf18208fec1a4680c5914cb4c76289c4b836342b0f652aa7d2ac5ac8c603b76ab8002c1c014517617072a45f987243b91635dd771ae0bcb27736d92a75807f37be2bba2b51ae9b3d16615263183862d815f908f353290e7ceb99f6cc7b434cf4bb71010e6c5dcac7432572211d3b77ad9524797daa3e986a2c425b7abdaec3fc121ab28678e703400c50b8ae1c694784b4b6af1ca4b974d5ced3ca4cb5742cb9bda5e1110f0452a45c8965e2b7eb4cafa29c2d68445b3e87a205ae01e90b5c034f04091dcd81df587900ff5444af6463cbcaa01b0e5a8c8095c4c5ba122b6de8431b0fbe62cb28121d8b0f8b3f90c4d04cba5eb74a195e01a15cbb967d8a7a9df45461bd83e91c18cde254c261e38dee24764bd9712c1eb36f433e4d0e887d65797920b4293fc9bbe24de610eb2f36d78934f9fc8df0e195b788fcda9d4b7dcc8cacf787e4e724628332d8ae6e51d09bb061977c02a1b48ee9c4a7cb9aefd84dcd76ec1e5cc6ea19140cf498f2ba02fad1da6aad9fa29a54e009410b5cc6601e07c1fcd668c1a48694af0072422b449a429a12cf54ff240ba5c4c0267340bb9d48221c274f3e99f119f0649509bd84709515d07a07ad720fd88c6bb2ac186b8c095c1c642c482a81aaab1332d056f2cbfaa61ea43ab52158eeb6a6cda07fb3a5e7ba1cf091bbfb7e829b5d4561d90ff1f3a790e7ea5cc2eb6f10ec706120bb331ef322df070bbe4d981c858fadc6e486b010a79f788378393b12882a73b32541239f935eabb187912f983d0d9f2bf53b32bd203e532b1d4d084ea513af5a2460d8f5ea9d06b9fba152e9ec8abeefe07239c05ea3a901efe86517816ce1078afd6a3aea8b98264e0b207f540f77e8668f93bc8bde7d7e0ec464f5e67745099c96c69bd28c4316e39ab6cd8b667f279b715207699bb4e070d543b32f6b35e2591b9b6472747caf851950abbb120fb5ada12e950b0d09d01c38863c2e69377bd2b4766b10b7c323300d844bb149d0372c109fa71fb21d5400d402a10fb233f629881b361dd1f8e6c5521e9760efa05f34f411b5acd33ea152b445d9db81f34f4fff2f5a172cc768e9c6cb1e271f21f4d3922d3508d5c62e04dcac79d2996b785a630ea1f41a8568b9898221fe8519f3af211b65a5bf046dbe99a236ca11b58c20f48834cc10ec6fbcc41927ba085e4b3a82095991108414eff518f78cb33a26621a0e454a481b15a58910d8f84e55c589da21d8526fcc5ae82ed096a45f5132fa803ce98dad92cd40f71e9c4e7bb09c2dae4b96d7f5f1fca1a99a5f724caa2e42dd54bd713bc8a7738128d4f8bb40d2e307d9e73e6028d8ae6bf560756afed7b081cb45f188bb4f55cbee585f7945bed9a09026db652a7d44e30b32187f0c4e482f994827b72e5777ae41f3e0f0f2f6e41a4495c9b6f967aa3c69086d0d02af421f2cbe2aa960f741403c00ba4c2489836ff497462853015b7009278c10bd331679a3733578b27890fac6bb10c5e595e2b2c538a960d5876a471b4dc5d5ff48bf28db23256e4404086f81134153545f5dae94934d74ca416fa995232f7a1fe1bb63b8c1367c6195e8c9e519c0b7d537d1e61337431041729b21ea656128c5996890f51293b7c12e9e89eaa9ec5107435f627919f407ef0f8c2ce5343dcd808014ebd122eb792479fd61006e68addfc4229d6ad3747935a607f43a8f08d3753406af21bd7e0143f3e0749d5d92d02e74fbb3b0386099ddb8a425256167b0af1ad10cd3ee09585e41474009e4d9589b9ac4efbd4cc5b3ee911175ed73cd6843adc09e9948a986497472cf77088a70f6a9067c1f583f2e6cf1e0bc0e7c736174d4196ff70671a5153d4fa54cc18a1435d06ec6bbf0c061e2bd451fd9b07e5ce297ad601bc578a1eba9abfd466f8560517129a80f74785e9860b1f17aad03a11be0b6175ceddf57d171cab945f474afb50b2e2638bde34ea0c5b591170d68e9239a968f8ff4532f7d01fe8d6e441d014c56feeae6e17a01c77ba619e968cc8cf679b27452f4900782e79739bc839d67f6de46d2c0766e50cbf42e16a565bd6d8ec18e4e8b263efc4aba00d68f1c643daf929e48976553aa160f3ecb385b90ee33bdb96570509a4542e1b44b65dee4dd489bc76d556d44d5aa4d67225cc79aceccac37839b0d4ed539cfbfd4cb151c90417f158fff0695c9baf657d53e708ea8f52464c0a1749462149d0100b8fe05c01f5a91f378d1cebac9246606d68e70b09f95cf2028c2601ad137ed124b4764800e495c45f7de6e4d808a0ffd073c409fa879dfec51eaf33ca4e535ab0f60e3b60fbc61294a4d6a1c878b5101cb95045980e3ab9a680b745844f7e553345636b34670971bbef8900f1a742388fb0f70855f66a70492be0db72c462372e9f0c8ae227da353fa057360a87cfe3503818e1e0797d18fc096635c8bcd3a4a865a41a4f102967db42d6f9aed4662b41158fad6bc55a027c6773da3518ed66fc84bb6b09ccb5fa75d0c092d0a1b05b509bf2bb27c30c73310bbeb5f6671e62a8c77aab28a9612b640a05565b52c83903a350770dfe530ba7cfff5e656d5f9ef76af5228b40b8705111f5fc2a6de88602234e45eba3c720d800869d00436aa7e759e6e9e0a613fb2c0b2d21234216791c99604fbaaa2cbe3b6674156ea1903e2c12ef7d6aef858950dc5faeb23f2ec0c06c0bd3aa0542115c0de9b52ef575799d5619d3651b4274290acbe7fa8268fe0820a6f6b24fa90972bc465392a4e313f441a0e6843a5bbd705207e8b39a80bec502b74a235677344bd7190ea8247c32ec1f94c901c18e934804f404b422d70032c21f55dd88de5d864ab5143150e2f1caa93c441e25d86c2517a474231f96bc730fcbceff19fae2f55763fc881a409995bd1afeb9b729740f90c80f892f8fb173cd5345c40f7e752dad8f1156d6ded9152a576e6be7b9d781b31c0a5c44b2037ceb429c534a41166bbb623d5a45d21125115fb58fa33170a64417e06e702c4d8bb2d843442b9ff1e2aebad66d7f635b1644e60de02fe23e43bb72b89d44523847ab29d45794ca6d3e8b911e3ef40b5fb38c33b496a6d741eda012b7ef0efc59f835c925692f864919dbcb3a2d24fcb6b38ea84b3497f82055662202d62a7351150c799875f94f2afc6df496f3a23bf37a8232f55e907c00d989b4926cbec62d678bd688aa5f5fa113fd9e4f08f3cfe0930a76105033bbac0d7f9abbf606338d895681a6557a9f218b25285b4ecc28a28428008d00493810a2584a2ad932095b512549f1a4bbf0462b6821e24eab1cbcb36f87921b508bc3c53186be1bc99b4d6c95ba4edf090971cf49a0b4123c790a445248949a5edffda8d7919d35241377ad2e8b7a9f984f4c1c1f845ad200a6c596d5cbc376d0291fb600f75185cc3caad89d06a275c1bf78e4e63655189ac2f580238bf39c7f5db17fe65a41a46b05b7008baf9bbae2ce7157c17c93c6bbb96e118b7956b9a17b0bd835ba4c4385aa132ef40965730c450120f824d4d60ad98c889e08258017a0294040c01779b508d812f4138918f326f8ec956ab978047b43eaaa2c5cffbadc5140247dce8328a8b9faa8343e42441fc1002107f34d243537a9909f2f9ffc862b8a8f64958c2fea0f2503b3f8cc44359c39923e809d4cdb13700fa24dd439aa9a9ae1775c9bcdc2edf4581e622ffb3016ef7826f961e0c496ebcda1e66e5ce8b602c5db5a4cb030f6382168862b40244e9b8e4978b7f8c438e15777f6342d7d6b09bec60315332a9369d9ccb2b48e8ab384913cf75d4be3a42114ff9606dce04624cc2645007e17330fc829d79985606b1f87293ec0f410e3e48a5cae3a4cf84f55cd66982c1971b447775ceaaf255bc2ed31237f38636563d65abb839ffd99e19e21b43bf9d77310d497578a7ab89164f59a3aa9f4bf7ae32a42c728b21d872ab99df2b7c7d3c5b5ad49a46678577693c978c71bd4538da97e7335dc277584a381b803cb50d61c084dca7e23080d68f59340f271c503b648a803f300a435d05328edf38221795650f6aec0e2ca8e0f4ba592b8cedc16b1a01d7a14e654ce7be17b13bf3411bfbc22821cb8304cb47b4db37695295672e26012557095222291bb04c5d85abca0ab619c5aa9981e9a3398b364b39f2d7aae02ac47f169fe5d2b8147d8547ae6d93d7f3d335ba054b4a03a3b9d21257b011248c710b87bc06b0dca6a222e22396c9b021ace0ee06777143319e7077f2c8fa9e6ffd1c7c900f2149c2504a2098d3800c1bfe90e363f8e37554f0432b15fbf5f8fa0ff37c912a9d8e16c79c5b1bd1d8f42d007951773f14c1a0e4e8195a3849f0169811710b65a770d1c049cd0e15bafce25d711569fa77d0c109550a978736ebd5eb5ef3c0d60942fddf9bd904ef394cb1eb31cb46df33276fa975f5412345a26afa6953d76ab1875df74c27f9e4b82b632c04dbb16a8fc0422efa7eb7f81a2201aa0d54aa37e7202beb6d512953de876a2786f1c4d935068ed697c0ab37d8c17d0e1cdbda32ed27571b33aa6092966096faedfe7030af6e0073fc16b28fc12e383325e0914f2e7c5563a686540a9afd651f4304822ff515e29846dd729a7324fe20a8d691a6f7819b83e8986cf20aea50184b46fef8be68ea40e29ae79220026a646fb6685e0ea7318d5e07421648ec71e743f4f956226e188a96804fd9d522021500a6cb16175a2fcd2faba5a910023c7aa724b917a7f157fe25b77b8b250a6bfd7d3b13d3fbea7105160606ff3d67d673f842106a64b35da25010b849d6e76357e6fbb30ae471173bedc2fff9eb7960b7e33981596eeade3753537de49c2cb15de631985c403fed752846d838a70b50f02c8829c853502651256ba1f9dbe6bc2a684743bc473f38a344a04cd8543c55d6f01ceb3e86d6baf8902704246d03f64d833494d2a331d48feb7aa517195b2c0f9bd9a257dc3bb53565e68cd1b7b6ac1418ab6ae118103830ef40ba63c0d720f44a206ed165df66f065acd9ab2b3fc152e453fb502329928b6328aa486ddfd96256d1f65958a15865e4c3dcb45a637a3eb4bf27e31dad95ac01b1457a63fb18a39f9c7a68b580a9a773b8f94da0380265455b20b87057ee705f1af49b902cb9930558d6ca173c4edc89195166f4e2702d9b4bb9d4e7d4504fb4901df4bf84361da6bead6ad940df3626f8569ffd9d44ba7c056bb94ad59f6c4e17cfe0807c366b05bb2868482c895545590909d1080a78f663b39422d89ebb8edb23eb86dc392b794461d63c91bf5d1206297c7d3b8f80fc6a3ae313628ab47d0516c222aaf32bad7ad204ed98b5486a86f305bbb0a55978a5dfffed6acc67e3e90f2a8b9390ab2e86bf71bc29fae5676465235b5a8ba6eea051f7f45c1fc1d324ed2c397b09e19e64b18ae7bb3874d1a80f5e1615455c7cc0da43035aa77360a374d517732dbb0bdc8dbc5d7734ee5a37f0ed4e136cf94acb432995988dddc3728696cc424a8584b7a93f00f1a654f5fafd3c556a813ec9d17dac4b18022fef0062133be255289704ca4ce9c15913ed800e7b6d7f2f05b896520874bf90ba80312fd5c9eb38b880c315b9a8dcc728d32cbb2602c3e7481ca8b916feedd65cec14a74667505d4ced1c9dc6c77ab36ba37880158284071a4d26dd5b4593258046d69e8234445ea216a32ac3f91b059fffcd3cb313103a67047620554ce3d40d98d363ac70dc4a28bbf4a5bbd2990cc85f1d8e2da291b8b553a1498a8d98187848553b250cbeedb6522f959571a3c0da44a4e882b7d95ec2a5bc93cb90c363ed456a20a10e0b6d27054291afff047868f468acc629a9a14e5ad00d22bfb9660edb3ad64fe2411cea33fc81931f441103a6829c9b8eb02a9bbde91de7a4445ca5550c1849f81d185ce78c085eb36c2587ce38c58afc03e3b5101e9634f7f40806d4edcdb3fd9a31f3268d775bcb12b80f3e4b9cf617b544820101a4a032cbe7aba4f83e02e3243783e58a4f8717a3fa8314126c4b1efcb0789ce1c0ecb86d0120ed162a9240e97101acc5ddec71f15edc199499a40015251f57fea91fee1a1387a4bc44d95f93f98ba25da5216da4425186666c258fdf44c2a99d6bc5a09799301a0d0954a94551e69d38cf6f473bee0d7aa9af1744fd3481aeca1ba478fb508232dc1bdfaf492db83ee5e03a267d70762bd120b6a1c51a6f8fa0e88cebf5e021f6ea65881b47cdf1d4942b0369c019fb4828dd382bea22d42198750521ee4d5786e148e50857b28c043b3c3bccbccf04c108e6983fb22fe8f146826fa70d7a4a53304852de7e744cb75a396e7c212e8a40b48e9acca8e2d98503f691b6e7439d158b67146bd6a29343c328e35bab811876f421f69e6d2a702bfa3fc82f54712098742a0763c674c5f975e1718c8ac81f86dabe4911aec6cfda021d324a0097afd1ac5dccc541621340b139ece267262870f0b9a3a2809382950c6ab7c6061427be964e11bbc2f5cfdb9179ce72fba11fded821fdd38435a2aba967f07c1bbffff0bbddedb0ffe973e17c3e6820f641bdd9c4551ed6152f99e5eafcf4ffa75fc2d98d27423ee0e20b0e05dffff851ed7634e52cf1bb70b45c6573bc49700f80886e6b1a23a24c89a0b1dff01b746ff61072280eb2eb2a30c1f470b76db9187158987711ed5d62a521b0738e9307a8ec132e09fb9fe85304d60f6af5309f6c5d84ad45513152ef857eb197f3198cd00d82715feafb10f7f9b2400b945848fa91927a7be39872f7afd602941465e95cd2786c476ff15e78c0e79d848972c9d0024ad0d368c3cc0f473a771fb9a808e6ca8d203afdee1e40b77c1102664a40c2c401dc25e0e1fe7d7e61a032b6814071f3894a83b84f4a3b39a402266deba149e7b188b6fc863f87b04ecfe390240c59bc7146404c87bb7459263401a92f03a31768607f909576c471b857477f7bd986c8398d106e6ea87f3053efe9999d7421731c221086145673bc41575be4bef49dfd7da2e646b9316713a8949e37b6809993ba3d553310c85c18a8cffa7159c907010615032015286bb58c4fbc9365f68b812d1194b461b7354480691898e5a9af7649578e598bc8269ff6f6d9cf79e4cadd63b18b46e2c8fc0bb38d55d6d3a4dd7d451e445f6a28e01f7bb54ca78da23a75d06c01d261451464345af0e97aebc4ed99405357348056080a7821faf99eaaf6c2c2a137d84a70ba91e6a4ca6af6c3efc3b494a060dcbf59ebbdac984a9acbedec301c258b957da33e6fe910d83397312f73654087a2abe2405cee63caa3d71c23b064eed07e2180145ae39a54d535352eaa3ffb4775ddf6bb4ee41a62ef15faea0863dc06f2970290e31fb19a4c3e41373e30ea19e0e50862fc1021a0d846205a398e7e52e08a5f13db6f71a0b41b92e61e31dc75c53d69e6aad3b401bdee233abecc109bd4a213d7a3e31651e28c119af62a46281a93f54edbf65bf840c5e56c2f6b7f5e08c0af42f7bacbc63a3bd1009e08393d3951e46adb376b0a23cc123cc854c819065ca4de0ff3a1fc556d145d72772a3ecf8072a5630d15637fcc7a788bc3e4b3cb3878e7f41f98d47f78b6c0253ce3b5b97c30e11026089736df7bd601e276e2d0d7e12cf941a3664d26768a7f3849029db155232df4fd88e14a91f9191d1931d104a030657655202ac9299990003fcd9be1d2b04e2490fc2dcda7a095f5842e2e6e49aed52e6c304136e0ccd3ee751bcd75c1f3a560aff7eb32af8cc67cff068d3eba9e0032beab77d82d243f672269eb285bb9772d50f5bc06fbb7fcee52a6a20c5f743cc04629aef27eee036ebfb5507d23df542b1e1dae4ceb815732c52b5403bf65e3bb7284267986857305c1250c4deb032a304eb00a7499925212806d74483d4a4c7cd5b46744af5063f6f6de8177262843cf3a5724d9009e6614d8cbd218c597c8e735554b3616a295d58364d85218ccdc122d14368c85cf0800abc49e54a2366159a49e0a20d5da12807c9341a79ff9312a9cd076fa1e781a0a764dd1dabda71f933795d795e1919e4bcf72e1c456b39328dc2d506ee6bb3ef7b54e7751f9fbdc3cf7ada97e126e805bb433201749f1fe5d8a14eb50c6588f965f995c34923a8c5c0f82479e49e09e305c6c7391714cd433116b1d6d32b0d85343e5041454a1103c0391a21f28cab92c757408c5ea44f1d9d1c42b353838fce3d52a7bf701d54c791de5a06ceec9ce68aa7ed5a9474bc6ec89a4d825d920a8fc4390dcab7056633aa8c0705c668ffa8add2f9946715686016b89d1c335dc00cc6fa1d2faaaeb64194fc137653742cd9f375224822a94f481400329c15a65e2fb7abfd19893532121d4da2121ca21a3168c89448f2ed82e6637bf9a1d488f6017b6eb11a977683eb94195c57ec7657e7b2495b37124f1f02f21f5c0057b610839d947ae0f65de583d1a3542f2d4735a82a3a726e594fbc4a3b8798bbba251fd14e33f08b1ae68e5b8402a59b06ead4fccea04784fa7c90e6ee4e71277ff2a985aaee3010c5ff9fd70e9bf6e9835f72e98ea0c00086f90bc1e037b27a1f03829459949b34cba4cd10efe8e82396bd42ed43fa7d339519cb1c80f23eb62713e354f8136981844e99ad184286685486996d551f24e22bf363767f056c357b953de4ff1ca53d63de80f36ce181ba5e9c75a3bdcf1f4cf814c62d7e7b9092f7db90d67c7e1e00a03f34c831866d0d32d3bb0b13cf395905fd7cad2438b5fd20c652118da7b1e0f9f7ee2b04bec61a1218f0203c63fff9440dee480f4feaa2d5b0bd05f7da9343ba5c29465b1323f7e3b1fef0172d3c96d9387b95bc578d86e45f92c8388e171022d981a02586250f72dc85a928776568a63c05ba159bc8e4c6c09c6b4e66365cbfe52f0021868a55ea476880d93654a528a1a3fbbd81ddab5c87c189d25f4fecfcc82eb5a3736c10e1a20c6c3e24ac8ffd32c3a23b0b7b11d5a6e720313dc91e744aac6c073823a703f780009824986789a6a2dd43ab9bb446b14b5a57fa314b2c427cc3c06866f7fa812311e96723dca23bd7b41c21762aed2006e7a3d0a82755aac30916e3edef635a28e78f043973ce1f9567b9960d0ef69b6cea66d08fa58b25665b2c30cdc82154b494093bc3de1931d3450cae7380bceb61e6fe2332bb328513dff982eb25d81088e17ecf902dda442eab4f3e1fe6b59845329dcbafaff603f76c6ed868ad7b5c0489490e3d2f8148b7a46d20edcec50b951216754c5582d463b8dba51b72a30bb0a1c4cdf5a6433dfe9e739a01eb90dd20217bc2715b313051ba8495f87d3a99799345e495ccd3a4dce39adcdc006f9cc1145a3934629b9e12109b7c0db5084363fdc7ea6a70801ade2eb0a738e4ec15d62e9aa712a608004502a35726a157913afc98d38dc683524984b2945007d20450725105e452ff988f7e22a001f71228644d809fc1441d8b8ff6594f39683802f75ed9c3b3f355529211e0f231048cf4d12d5c94d6eb19d9897aaafd202f9ed1faa50ddc8b61850ddafbc39a18e37b661982f1f0f4220841bb0ae6dc55c6dd7db7d55f62ff18ffac101be3b370de840ea1fb86491fee2a95f4e651964e1cd5346c980b3f1cd62870dcedddaa14436395926fa37168e358d3c46219fd8336d7de6f787c481aa74f8357f2f002df2b42ebb95bd73f85360209c9198026dcfed07ac2f215ccfea247d7afea58ac05ca7d7df82d4bc1f006020d7f728375f7bf6a64736d1e7a1cbfb8b1ed0d26f6eb8d206b1da0f40897293840ef9f05f47994f3e698807913c535af04f947cd837aca7ce6ff56588c279bfd1c146b1ccdff5bb26a0f50639072ff8c92caaf6ae2086c7c2b5445e3bbbf0702ebe84218633461d586ed7bb590267919b653fbc3b042f7ac7485af653757df904feb1ea57054558ba9740d23a1c7921f3179c584e9feafb313216c5d474f9e2857e9a7635265bbbcd2c7aba3e06c753c200481ab1a2ed84aab717a50c11231030b9247118b648e4f0fcec9113e5c8c8e773483ca621ecbb8645f0f7878f0bd1a3e0a62ab2ad699f325148fd0cbb3fd69a91f71ee084eddb5fc44eb9f737b5c1ced1f1212390f8ad0d68a026b8d69475bd5ab9cf077273ce5fc989429f92d8d5b17ec5a9be0284b1a1769480f996252fa5a41dbf4d3133118f40e3b6b127b587c2d30ca18d37a249a14de563c2c1aafa292ed870929595878ea88138ca7ca72d8939a2459ccbb5271de5e52b1d418032785b787d105b3c01db5b91ef43f4df1105d68af06b58e863dfdd525d0bc42c55944b7bc6b856c8cf34f3baf65ddcd28bee2feccb488b4aab3dce64cbd0eb29d4f8b023e17c885b289205e078ab313d0aa9f5c7ed0bdec82283a1670569483fae48885f72ac5c61b5f98f99138b7b4b838b64be26b2ccbdfcda67a41e578f26cd778ef1f4ee024218bf86a0c08474e73bc8e8778306c6ce89846ec79af5b4ca43f231ad009d3307c179bc1647ff8be183c08c676a4cfa9f6d900e9c73bc3f3b31a18a8f3f6fa4dd82f6e054fc8bb5e4ef24a7e537285cb0b00605e5b119128f00d52e3b6b4177e8061534e894557670b6def64ae781979f9151adb7b076868b8fe69848e5baaf8474325faf7ff72b0e412d33e814503d6697adf4e12fdd81d5bf7848950e491ccc2e11a8666cb976aac3d254b19cff8c775686b662ebea657d71d1438d741908556cdcc2789541035918d75ca499c1ab319e5622f97d840c4e1dc08f4861620ec72c40c85b07b661a0424385e79fccd6fe4824db3f1ed087a673f0d7a625aacb497d800a8d93c1eb8e8c32ce77534fb57444ac4cad539af79d7ddc72dba26acad405e2d90001cde417197a4a825e96ce6faa85017e177db8a4251415dd9beb68eb59795dadab23198021764a04a407c0eb017051a7ab2e7329e9f6dc6cd920a26e412c16424e5ac7150007b3372facd1550d3d7a460594f066c62073bda46eecb0767936bb765a38db36558f6e86dcda6caf41e248a8424c349e3b79b48d7da2bcec3a9682c7ee246242591703dbcb72aa7bca4073ae84dc6dc0ccecdefbb338efcc1ffe7283994afa88427b433d76b712c8fd04bf985164e15d8a5653b917dcca6d62a125bc0e5aeb983a827166e96bb29b1b6213d89f0b8d67db2a1d18b7c068fd2369f74833d0b171ddf0dbe44ef67fd749e94cad260d3f6bf9841996d8664df6e332c0004ca0f479c5a30d2aa5107eaccfd58f48b6029c28d2616072a0259741f9ae06cc95125c1766ef83274c32a0ed49c8c85396efabd6b7ca0bbb30082108c9276d3cfa55ad8750364f3ea235d9fbfdb0702279d887ff2f24fc8de5bee2d654a49068c09c50967092a70df8945f8c489353e6216aab64e15f5ffcc56c8e036bfad0ce31a972b739ecc705bfcaecc99f2c61d99053ae7420428655a5ab8aeebba4e4a29bbf9720441ae1443d03ded5e86dd9350234f6061f99a661becdf067d7f83c4163f3f4314509a16b59016f57f42920dd6a64bf5616e3fe967839e178e41eeec917ccf9532744bf2e7c22956d1f5696e89143a7704d170a4405d7e5095367197240e1434d0cee5cfd1a275654eac49902b736235b071c4caec82726481c82e3f25c3ca669288c9280223aeb48172c0b3bfeefeba27b5f6413bedb4d3ce495f2d721875cda63fbfafc9e59bcbcd3496936efa6239134bddc082d2221a93cd6c68b049b1dfd48686202713668b685b91ce682da2b5974e8b62af295e21ad511b280a68068ad2229014500c0405146b118364b416b154e99c58901ad2d4c326470c424396b8870f742e7f9569ab5dfeef3bfcbabbbfee70563181fc747acc523734ab8794cb3427b65f68568fd9e5af07edf28bedf2cbcee56710ad471cd2546569f583cbef15d1a59685615eaf49feabd5daee2facabca8aa3ae6acc4fecf8998d6147101676a4331e3cbeef3b1c7b0adbf3bfe690f4cfaf872dec71ebb163851d69ad13c3f668b9e9c7ad47cc4d32cf5326fe3867937647106d47ca4d22acdad5af86d5dc24c24b84194c9336897063ad54303bc0114473f991abdc114403a2f2113f10978ff8bbf40c0564e78bcee5973eb6b0e3bc328268d32613827edcdc0462c902f0e33667e28f5bf8e376f9ff3f0cbb45960f59683737b1d46a36dbed56676e6259bddcf4b9f968359bc96432464343228944b55a7b7d8c9fd9ca4d16e502c0ea056405136175f94578b9a945b58a11473b7e6622bc2ebf083337b5c07cc46fe31bea8e9f9908b3cb2fc2cd4d2d373de22a2e22dc6ecb11282daa272c2a2777fccc80b8dcc4a2d323fe1b2549ae1976ec611b41b41eb61eb72e656179d878dc5037f5b96a971f26c6bf431cd93382689e46c1b4dcf441f988bfbaeceb320a76f96190b4e9a3849d7c94f0939d367d5e3ee2ef244ada8a23dfd0dc14c3ff5273137fc49155303775371ff1876e205a276b2f2cfe171468268bd1904420da57edcb4d3d6c3ee20fbd2e3f2da2ba0ef7ab333b862ed3cf05aad22214bb08a2b5883fa8cba01ae7f2801da0681d76fc28b9fc60c7030ba2b989c7f3836a20d06d05ef79d8dc244f3d6e9743a8cb297089a5b61631adb588f9270fec08c4c50404e204c86b0ceb3dff8eef6efc40546ef2c4cfc575f503a2ba9ef7b9d222febeeffbbec5cfad45cc826a11ff674641e27c623ff6c7cf4c4ae92c3d6c36dbe77ad56c46d4746c61d7eab1d8c821fdfcf3896df98fe759bec3901239c3ff998542d68e957db8cc6843cca4d064321f2b717c81c6a8ec08db0c45a4b27ead2eff277a6317bbee128ebdba238836d63bf6b08da1d5c852c3f877fcccc6cf75f93de118824108c449973ef19bb4033c31e67b79f29e1f88ab4baf2eb518f37dbd9fd8c3d622eeb1d3237e1a440fdbe59c396e7737aef6761975e51de9ed72b5cd685d8a515997e45321fe0a216e83682225ec485f2fea849f5f54b4b27f4790c88a2b7704d9403420b20f0bd88887056ca4720d5052a3d568b427684fcc9e9849299f5d32b394e117a64ba186b930e30fcae2a294338d0628f9c7671ff33fae3c028911d0a20278d4df3c1a41eee38e221e0111752fb6f882e78a6060258ecbe6baaadb93006354a0f48d9ce815ebecdeb223d226b3b952f2904e932101a264b0ebcd535aae0c8213c5ce15492d922f4524ee8fe1e97e65133757ca1d28d9c4912bef58dbd6448ef4a89a28e38e727a4b20407804f93f78847e9d3bc2501eacdc7165ce19a9cbe24873e577494a1bb581364c28b394eeee5c0d56e6f293282d6a8e396ed11338a61c37a9de07029f07fc9cd097bbc9b130cb96c0472ef3190d7dea796a6ead6c2e8b72fb3d8a941c3bbaec4269514f59f5c28ed416db81c2a13c3198891793b19fbbbb72d8e1800e1a25b79f849711229f481a1262a04d27965f68164d8bfa6b6060671576fc97b1391e591aae58a8d562e2c84df5fc6892c486061beb564aab9224aad5a52a6a4369aaeb3aaeebb823374aafa0544aec588748e2035579cbc591be5ab2f6af0637ca730aeb5fe3cc4b7c68b932e7c995176da58ec80943913099df1c47dddddd6bed6aade2bcd2852690d33677dcddfb96a2a91651d5144b555de24b559ca2a92e1d69139f1c08fb57e65cc1c31de98aa62e75716d84686a9d41ecf67b82d8d0206dfe5cad957b77776666eff89d13fdbbb6ec10f67d5c996385ea8e229933458c3b867c0621845285100212d5ca86937569e4582925b79f8372e32b47b8282814ca6f2ee35b286c14df5c8652d9916f3e43b98c6f7c050d3b7236bec558363771ad87adbfdae71528e612b3b196d8ede7faab0db1887c21523f95d557735c7061dcfe1e301e30d6ed9715c87e096c1fd9ec9b655d2e23915ed5c913289c172e2ee626aa841cf5bb4ca583cb503cbac50cd007edf64f282dea9818d9ed67666609a561fd4d6e7fe7ead2d8a1585d1abb1692dbdfddb4aa91b492aec96dd7bc7191fb98d075ce72739953f9087b3573606198779ca88f073b76af26aa45ad6a249566c756b56830ce8542c9dcd428d9ed9f55dbaacb2e98d64b0bd47269d50ed5a13a14cd4d2e786820eda3dd7e0ec6c13ad8ede75c6ea271dd7e6ee51575bb5b428efabb276e7f08e258afb37cd4dfbafd2171ace26879886308f68d4a8d56757bc52937358b38866cdf2f5014a7d88934b2f7bfddf6283d72af4275989074e7b6dc44db90a3d6b9e344b56ac2be1dec44dd7e393b5aa8ed1a55d25a9841eaf67b808604283af4391a1ad6d47ce4f47cc41a9a6aad38865aa0a962471a1a377d3f1137f55706bfc525de83a28f58f4918b353ef2114723e47285f94193a1dd20d77b7c418acddf1971f77eb063c39fbaaf21ca89a116b5bc638896267f88d6616d15396598e47549ea4ff3fd7fc4f8c7b828e569f6a89f12613fd4a29b6dd996094b2241b9fd425abc9085b08566407f0b5d62918516b59ca1ef16ba242f9f483eeaa7224872530b4e62c1474df21fc38e956bcac6a3f0a221617e1276a4b9353144e84f149ac6e6343e620035c2f28a3b9b0d91d0345de593cbcf1a0294a21013d6edff21278c0ca366d849b1a423661dcd05262a1632a0639babc9c2e205966792c99a2b8a7281ed6a72a6ff04793b2b72a6a37d75933cf5d7a4d0278af2515357adc2b23852176d365728295bdd7e222a743619746ef35b33a0bfc6ec585b6023d9483052f7aab9210979326739d851743d48a79ab7855b68c6c20dedf667a07a7e549130bf1ca2d0033bca190bdd273ca37200e74b99b630efb4c6c08ef6766cc9fc51bf0c1e161e40a64b104f2b9c0d362a2df0624ad7755d47657083ca112f9610a1e3d5c46c8b293a66bc4105082a495288c2e6865918611401851b4d420718829bf4c00d81e3850aa78b22464fff1884e6ca2172fe7c75b4ebc4a7a14c8ba60e6d4c09838cdb892327be40ba5dd7755d0752912107d24b4db9ede05fc4bdb46eaae25fdad5d0755d1793e37653e2b81dd7fd406df04410e8c708265a208164891ea068a3890df8441c17bc12e7891aadd55a1a9f1ded3aaee3a888ad6d1a9816a561696af5e266fd7dc6d422a6d3e6b8f3d41d587fb9b3c33f1ff4481e61a2eca5e18eb063c843dec91edcf96ddcf92fb4e9458ef85b4614d051c2e1852d36383dfe69166ef15436ac5b9731a6bfde79c73a72d0c553e500bd5419b2935b2d627934f60282167804c90139a403b204feec47c1653397a2f6fef3c4d1c8c704175b30354d8a40c1607674efe0c124463e15c2fe94341e9e4a478f9047ca21b40e0b863c758e103cd58ae598eeee5e5d8ef154357e78ea1a2278aa0e800020546d05c07bb8c5adeeae9dc8e08755747642f1e5a8e51591512d123db566fd03e0a93eb0fe322e000fad5be8eece07dbdd2ff464da1501782a1c76001ef9434a294529a50412ca078008313e4208f5e0b103464a293303f00272b12d2cdfc7037ab5e3a837d358c616ee0068004a9911a45ac3f60be04a961c793da2da101c204fa3d700791a3f24c8d3d872e5e8ddb1b2b8e5ee1079b562b9541c59eec8a8e797e7972503a01cf7f2325b94fb7e4a29a573ce499b72733ab19c48bd9814e4c9c869b49793b06cc0b7f1fce78d9c604c2eb35aa56bd70ed52bd7bf92214d0478ff7a46858134b9a87ce45df2eb5f95c821dc7b907e725d3ab95e7bfc589bc8b13271808c1b90fa28df8f758cebdf91613f2e3719e0fd3f55e490fa1f353eb4eb2ffd3faf1d3f7e603c7efcc4443f7e64b666d918cbfb304028995daece230a833c8fd000bf231cfd4b5880ef665e141a39f1088d9c7684464e2fa1911318247cf99920ff221679f920332f3b3e885804fc1d0f1a20e4f12f06781e62111e6f80171e2f6f00b188e75f7e47088ec21dcf63f43bc4227c1ad9028845607e8728bbddd36ef72de11843ed766f43155e7e2416f9fc4b0cb3db89a3f72f74b14bbffb98405f1482cf23f4fc8ef0f32f21ccd7d084aae4898561c230bb08dbcae15617b48490435adebf719043eceff851429151ba0607f4a001a93fbdf8cb917f20fa64f9a849d30fcdbc4b29171739bab45c2f8c995f63a050b648ce8c4dc3f52740f883ebff311d0b18f976fd79a71950735b4d9c09c12611235192c1f59f675829675ec2da6a0f28ecde25ac4f8070c77fe1cbdb505eaeb5c8756042fe84fc82851cf3915716c7bac23b29999cf1b731d617d7dfc64221a75571bd8ceb2296a7e192d49f0620c64c2ec2f68f2edca447feb3b2a6c86577acad4f0e978a5fec0af9786efd00f2a91e21c4b85c2e17126e40ea7f9024a44827553be0e5fd5d8090a61d46c82195d5a5ce79a747fe6e73ddafac6677deacbc7c4710eabacc88d87cdec6f3e01b397d3fbaa0ae7f4b282f08d52597f707d974c9be3f284572938dbd08007811cd4db6f5a2ccbbcc5e6eb229175708ae18d7f57771b98bca4d2db5eaa2525d7f175497381b9794add5da7513f065f997d0c6863fd9d8604f30fff23cdec6dce4329311471b0071b46218bbfeb6e526d18b631581b444107fb4aebf4db9895d31e2587d88a30d411cadd82375fd5b6a5eed6ca95d7f1ea1940c98cf124a39d3f2dd4cfd1d30a1940918b93b1710d342362b23f4a27a7356abeb97eb659e6b274f5a4ab85e51b0845e54a3cd64245b4cc2686e298e72b4410fca4fd75196472ba594a32d5d0bacbc9cc8125696bb3ca8b3dea41f135ce6951f9be4f65bb15dc2796d286f4b38b294db5346aec23adcc6ed7799b9a98adc65765de489a3a8b2dce4e228612e9adb2476d9aaadacebcf51cad19e0daa465a58308d50164c231d27440910067e14d42b51f7c2c03fdf761b05f57aff3133539d16f50ea55d5ae57ea1b7c005724615c58e9da445fd4108b1fac2caeeca8f0588f8488aaec48f903348c81967c99931ecd83249752edd715b97a41542c86ebfefc8217cfbfd26aa249ad8c97aabbbda1cb765e86a1c0e31182c1693c9662c1fad562c56abe51a39d5c8a96a9c8ac6a966b6d15bb71827f3116bd6e2682e18a71abd459aafdb9c2a74b3ed6294f456573be2f62b616ba2bb7923d7c64612235f9ea88a15f26de46cdcd396b9a9d290442dbbdd324a8bda5bd46d3d135bd6224ed5b29b96136fc271aa17a76ae6542b16473b658e3b7233a828a6a0244696a5a9abf4a875bcdeb952c26ecfba8c1e7ba68263d573b06468e1e02d78f56c074da494af26ad9b559336cd234e9c481fb9d5ac5a312bb6ba810b8a891cc262743183e6a16da8c38d35a83469e2daf1dc4fd44dbf76b4b764b1563790491ba3a6d421e70f3cd8b046ed586c242dea996a51f30fd6df75ba679c7287f948e491512c728c5b6e721a8a518cba3ce3b9831cc250c89919b049f2e461fa87dcb06b8c4c25d485c5e28e3d632a9020e9d9839e7ba77589fb3ec239af400ebbb5503d93b6b1674ceed8224bd23ee228675206f6cc13479238632a545c7e3968dc20ad21c2a27631c6e55a8b9a5f60c79eb9efb4c9051fd5ba54bffd474e8d9256ab7ee5f694e1f64a87537eeb598ce6925e140a593b9b00d7b79bcd56ab710f6ea3683346d1d09018156aae914362569039f9c7a8d0a7221f38f9cf3b7f8a26e07b022377898b1fa381915ea255655591250e2b71aebcfd323000d90d28b6409dfc8d9ca4cc68f9552c2c48acc7e379d0e3b19eb72d2e2e0fba5817eb625dacb51e2b52558b872b0b4be7f90e3d9eeeb69eaeef911f1466b33c9e363c7604cdba1e3104fdf45f3b57e2bcaadcf17b7225ceab88fbe1c8115250af7dfe0f2687d8e78fa2ca953957e2d440ca8d22ca9538513c69c0953851d8dc0fe626cf7eb190fd0fe6d92e7fb08fd5629118ef76fa503e621b0eecf8c15a36d66db9c99bb55a5a56a4667c3037819e3fd87f3366f188528abcd9072bc38edd8bb2ba979b5858bea6a57fc2d7e5f77cf3e547ce20400e2bb5932b6147aabafc2a246dfa9ea8561f0c663db48f056ca4b98f14372935552e73ce952797f9d965e5836fbf25acfecba730c517d0a73041edf1bc913b3f05ee67b5dc7c01a150ddcc023f054eace93e054eecb8ff3e054efcb84fc17bce6122730f7ef7fcec02c1d0e5bb90e53fef234f9d1772fff19ef33edc7b620c9fe71e6c09bdff5668794f8ce1fb58c296ff56307262f956f8de458ca1fb6f859667116360f99607bf10058f93a797d03e28fc7e862def093d97191a397942232de17c17ee5b5cb8cfcfe7c2224c9a4973dc7fc2cf835f3f1315beaffb9657c1fb4f2cc2f2de83614cfff7e0832d210a446a7c74f2684c7deebd0f0ba20998f47f2211d104220a626cdd45db52bb1086ce3927479ddddda9c75c01b9419fed93725df57c58260d091266631aabe57add54354baba1995babb9b083884c42a9b26f7af7711f9d1eaa95725df5be8fbf8cd572bd601565531fb2d5e42c1493230dc9855a0b22e3de746fbab5750535c52cebfa23ca168bad6fe113afb4a8f9e642ad7a1fe8f14839c47e9590141b459284c8f8256399cfb86559a1d6bb52a9144c9bea0f2b130a22c225b283a6f9466302197cb33614ba59a04f55094ea5c4296797eafb2702f57ab546846f7458be72e3db18969f884cd24c7fcab20bb9504e96435af8e67352191d307080e0e2c0e901663f57e2e0cc6006ec0761c06e301b0cf503ec823da3f908fca6cca4806d5c508d0b82b3d96c8e18eb267331aa368bc5582c168b75bbdd6eb7994c26039f5d200882a004252841107c17c0d96c369bcd609f11a09c93a6455274a5945d059432a3b3eef7206783fdbeeffb9ac27cf4b9775ed779537cf37edf4ee410be5fdfa0af20c999ef391c6594fbf1f7f346bff5d5effb9e67dff77ddff7df73b5df33eafbde85effbbeefd727653e3104cef2c00041fe5e4a295fa8428bc0074190840b7e041afc98003e2899526799cec2d547a0c847e0dbbc8fc00ff9087c2327fbe0741373df321f810fbac767fdbaa594b23f4fe7c40de4bce0371439c4c16f315824c919f08974cc47e04f392c5fe6fef53df881df2aafd55a6f7cf0b90682cf3107f954ad0d3d48410a52f0590582bf02aff276c16f01ac0d825fd36ad8ee987fadd68642e04b19500c817b6e200b87aa85ea53a2872ee6bd382e5c158b23548b5607060f538b1a47e3c1b9a86ef4d036041382cd8f09de1440d061ce39a7caf33e2a5239cc4fdcc256c50d26f4a30a196acb123754d08163b92b71a8d8c1c2da6c40458d0a1a153f80aec471e204152e906f02184ce837a17b1358e4b00c83c9fbb204af6563e86db17a5c1ec0868dde515e765213a21043e4c4df829bb867fabc52596699167c448db02209f3400b7247eaf0f401cd81e597ce6f30333333b733cb017290212c4914b5a8bbd9b1561f1d1d561444448290f6b8cb03d8a089dab0f20dd09de3b8a731dd3f6f8f56d66f3bc82750686031d98cb662b55caf94ca269bd16a02b0a12024699920975d8564750bb50dabe57ac15029d56a46933287c5588e3c973a9ae57da44b238d6a86a44ba3a4f5aa93dcbad42816d2b2d62bc42d776fc1dd99851ada71f9431eef063bb2ecde5a57ba3432eacafabb59164af97bcdffed022501e74b9919d628763a217327661e2778504bdf951f0afd7092e4ca478125d32589e30489906f961327ee286130274fee28a178d73c5587d6032865befadb4c4e55abe7791e0ae8656e24b7fb488bfa513421578f11929683f067e6380ea2750538b925ff088564338c65991ef5bb4089397fdee91939056b95d39bd4b30732507613818201273fc42186103378a1c4897b700f30bf8436cda79973ced9d613abac563ef7087386dbae05e8f9c0ca09a0d0dddd1e96d02297355d03cf2a8e9e27bd975e65965d021c58f9dc3ca59452e7b27421657d607d0228b87b0933ac69917c2de8732f8061e74b9839599c3c059cdff347fad3dd2575981639ad54ac1802b72c57d88902a5cc77e71debacdd9ffe2eb50d9ed8c0490a7cf2ee4b6918ffc68700177f9a12ba346bba3b8325c58670258eeb888f2b719c98c17c3d74eede75876afa859010845d6477f7ee6e39ddc081e51fa9ebb2e8848b477842963eef4f6b204b52485a851cf2bd3fb5c2fb91e65c7f0ae311bcb716090c9ee77e8629085def3984a1fbfa2c2d2d0fb6d016da425b28f56799d351606f37bbddcdeca25bc2f24f99cdf5ef9858fee98565d1fd6bdadfe91ab62594d655c01d452a37cd933f5d51568bfc9dc2aecf39e79cffb13b68f769b9ccb43d2ab8a62c7f68061bce0822d60311a9d58e0f2b549d08850eb79f93b96155039d2de8803589a3e5c9150a009ddb3f0db0435b838854186c98e13c708fbbfb7c7777779f3f9a700944e410b64eadc8b183182061031bba388df53a1cdd1d855c5297dcddabbc3c4f2c935c21b7bf7859ad8509fd989cec487d5eb16cc5a9014c55e25e9e80a071365483170d621c4d42a20d32e13a514a61eb95384c5ca101cc47f2523a448f2b719ac881c24667405dfaa04a482ac844c9dc7ec0d42e755a8fe8a7a09f5d7dd3e4f64dbb5a9ed522afd2be73848d7afb5c3ea2ef34ff5a5cadd68642ff22118954e393e54e685d7a73537d9248f41f72cf4a8748a248943da5b64b7135371939d1ef541c6d9e6022ed6b1843c426a63fc64508f0d5f95ae2585bf5463916eb4d7643fe5ec31822361fcc47f46dbe9791d3a703eb359bbb33ea03c392faf2e49f25f5e9e7046ed4959f15b4887ac8ac16d1f9859d1dc230bf6b5d8a826a2fcf3927a7a445dc8aba165bc8191a9333f4bd28d6a3b488d22fe40c7d0e1d0c3943657286fa8f2ee3ebee2eba9432e40c9dc999302c7d3743ced0f7d0afcf78044e0623d75b3057cc5f53e623eaf553f8c42a1ab9ae5672297773e94f969b589efe6c7589febc9143e48c8b892ac9e97b8dd2e84bc935712917c5a51ccea5ffa5e63b48a337182a969271aa976d3563d15a31da6d2603553ef29a8f582da7cd288d346da214278ef24639d6e7311f51fae00d8d4b9f5ab9f4bb0ac7a54f9333f4ebcb3b9b9b3cdff2d1aab26c2be6a6cfd3ef52b6abb75bbdf9c816a2cd64291f510ee526afc6c5686ef25c35d6a5fe108d258da290b5e258c74e4dd1c658a1b06dc66c8b38f2cece1d395aab6875e5f461b0588ce6b28431ddcb533d7d2dd9ec73d1be57ed83c57c44ff546ff45da857ea5215b37c44bfa63ff20482219fbe14fd5455599a22b2021f51afe626164435528da676e97b312fe6c5bc18cb1cd69bd522fa9ecb4dfd725dfa575cfaa33745a55ddb680c91ef2b7d57b9d39044f43d2148bf9b1651da6c5d4a8db09f4bfc5a2da2dfd92cad42f31dd7b9f4dbe6268e56bdd06b344bdf3d1a759a8f28fd9679add6d2f71958fa4fe9a78ed85cfaa087ce777777ef3a0f47cffc8e524f43ce50342402e83b8d03829def1eaa00dacb9084743f5f76b3fbd9bdfc7eeec1ee97d2ebf7a49cefd18f09de9ca248d3227ffe90c43f9d852ecd779f3ee79cce4da1814b9f27abc0cd97a7077479001bb22a1269911016e857fadc8ff589d49005faf5ebf3d7340b5daae2ac5576210b2111155af6af6ce1d227d2a5fad3844ac44d7c9a2c925a34df6544ba44e74ada20ca9d5374ee68258d0ac8ccdc25971fddfed849eff323e8f9b105fcd17e3fba783fbe5cd9a31b81fb3104fa63cc950070508b7cf0a5fbe545ac2fa5177134c20133d985ca6918a18b5517434c282b76a3e57d8ec81cd0a670030e169331e028c2c6836d08961d5636263629ec4f1ce61bb08ee338ee8d1f5cae8c99c72e140aa503fd5ce29011bb5d37bb35ed8530b645734544ebc6feec615a71a207545c3e90a2492d8c244aa2c04c13e0e00125839b6c0d274344d1d54253c891d3c42c871dd7896b212e17031918c15549cdd4ade106970d0f5dcc9046078183951dd6f081d4b785b80ceeed7e7241442de2ef9593425cc88bd6edde54a787baae7b1b22894821d96a7811033907124da86caa98c14a1aa75edd7e517f1012cb69d73880813c9cba7092451631c881420c20a4b0a42cc159c46c7aa072b4d8a814da755904e1763126637c6e608fe338ee073676b0b9a96acc382448edc3ed398ee338ae6133e787356ee80f4bec90c60fc4881d4923f543cc921a0b1a16354be578828b16db8b5ee69f8a0e9e04f6e006358ee33c1f66ff5dd7755d1a340d9a064de33b1aacd8c00a8e0d59186bb98e86ae935909c28a11504c17acf84a597d489248038a399ca861f1868e0f52a2c091628504a205eac0518070e500214519f276441563a38b916143abc1a21cc7719c159bcb91216328140a872971683797e36297e3388eb3e2c3e5a8bca74800840eb69852851440448104c78b2d681b1bc0e2481074202185099c17c0600a54a52db950e624895dce7130e2a2a30e981870c47a48b9209643041767cc21ce3843ca145c4c71128320740b728e3821497115d881e20b1976c0c31c392a1ee4e066b0f1f48d1a4c8be60d0778c3f6c68e0d5918cb59ee08af615b629bc15afb3345fa3c5a0886e3388edb51d22379539b5827a1273dea76a0f4a8eb4834fc2e87ae9b00124aaab061a20a1c8e9cba1e689ee7799e37738eb0c125d1999105bdb11b0ec049c2e6055950d1810e0f3948ccd146c82ab31bd208c21c6b248122878c1d9e685139ca715c1a34c9ed7081369a60a20b9c3378809db823977bdbc2b1c2a4fb6136bbae9b15a6ebbaaebbe245ab4cf82d027f303284121dd870b1d2d1f141079b1ea81ca1232c60d48e084147185a5071ea7278828b169b4743102a3aa008908286cd016230882931e70db22cd4c8c2ca9c734e9b026421cb628c3927e99392348ecdd039990d0f528c4183272ea0410c1a0738a87446a200620b1f849103850e509c660a0e35eebcf3496e8aa1091a6fdce4e0000a12a7f9345dea1beefc1a2b777e095df226f0c36a0a35d490b20619a7b6e1e2c0c1833b3f035da277d2e4145d8903070d2ee84a1c3894583370a6bc189ccf29615b26878c9d775ccb76b439167bd6a56689c3320e57de913976654c3f8bd475a24d88b0b56b8393c1f6ac990b39e3554013c88068883e064fbca5c760e8073b9c34cb7dc1fea09658110a19a8d252a7fd4b7077b14e9155382f4fde6cb33424348d3bab014a9971caaef7a06ccfe88670e7b354cd35ece8a8a6a1aef773f57de12ae69277e7acd222efdbf68180bd6d6301c74e4cd8763df625aef7465c6fa67dc5cd25733557730829a52a89ebbd93f96475bd0727eb7a2b4f59ff71ae4ee037ae94333139d322a79ad622ef39ec9a8d6ddaf57e86330a39e3b5f4e27a35ff0069f296e4e27a0fd20fd74d1b640e0b75e71de7aa4ba368d5256f749523913946d8fae4bd741518dfcb4d33498fbcf7e6cae74d75c2facb21f37adfb296d225fade2ce67d4d137eb9f78cf23ccfb2e755cffb7e649deb799ef75fc82e2ab6ecd2ac3349cf95e7794aae0745ce706abee48cf75f10964709f3fce7e5a44dae9a2f186fbe7e84f15c95b3ab54d7fb2e945c287dd4f2ee5262a2d86295ebf9ec7a4fd1b0decbebd552bde3bc342152092df262d7ab6991e7cf1f229faf353ef29ebdaf124a8de1e7cbde7253ea4f9ff73cafc6b0284f7ed323ef2911d55b6dd851c2f84bc0bf822ed9e72fd2a59667f18596eda16d01bfaa338fb4c98a95f7d3cd61fdc66bafbd9f1f316605eec59825dc7fbe8bf16f79507aab45de737558fecfe7fb3e1e535bc04f18431119e3fef10f04423ef27e0596ff7c0a2ca291fbf9882ec610f17844e93e93b4c89bac1679efe25cb5c8fbce66bdf7be84aef1bc97ed7d8d9b443ef2defbbc771f7c861d25acc6ab4979cf3f8ac49832f702d440de60ab7371ab1561b46e75c29d45bf644b214dcd6a2bc268969bfcc69bdc5a5fbedbd8fa15d6af2f2c7be84ac899fade82b98cbaa07b66cc9cfdea921328b77ed7e48eac7e3fe992cc29c2c9adac28b7be177714e514d1c61d5be7563bbd527ffd56d2a5aee15634eee8a9ef1f0af86db9a99df4a87e7d59a13861996f72c8bcf55bd5f5fb915dded7fa2be053fd9a5a6bad55d26aadcf37b7d65abfcfb09591b02be4262d9a626deffb6382073279de32483da0a79e5277c759fadc715e07d46a2f8bf203c3f2d707fd0381ef7a4bced47f7998a7def29b3691d023fffade82e95a7fec57ada4eafe1cbf5ac4aa92f7fc2f74c9e5bd2f4197ec7b8f822eb5bcf72be812cb7b5fa44b9ff740618cf77cbdf78431decb1345ddc9a14bf842f8098b8436b973f97d70d5b963bf3c49b315dbb5931681373d02df0bbdd522f02911b6612d02bf8ae0776d58f04190635428c22d1f71ea8d9cc0074110fcd182f25d9afa151a41effd438413a5478c59c1f3f4a918b384bee7b98fa9cff21fc99f13eced578bc0e7eab0fc29eee4f9188a541fd91679aa312d626d918da1488da95fefbc9f2a7a780b3953c5196a02f49e4bc2f2e5db79cf2fabf72e789e7b9e94f1988d00a58cfc5cd90e90a7d1e3e3dbc28ef64e3ba787f672ea0bc2f2fd1e3c929adf3d7d309c7c841a6159d5d9ac85a9622772a2e78e96e5708055da441fb2577c57a46e0857e23c61dd2901efb99fede1bc900343301c3904fcd499fa8321c70c812f24c17a9ef7f43db0e9d7744c0478f49edfc805bdf9316152e69e49348787d5b0629680f7fc937f9260f94acff9926059a421984d59ff6f87742a5ac35430d8d82a8af2d137aa05f5fb8818cee8ae35ad614d6b58d31a867293e7bb5a4a7393470443a14993329c22a5acae6919d38896f99caa9c8b9c833f730e12c9ad61e55cf41c61bb2b1f91269b83cb66195170744802e7890d4ece6db26ab30dd8f963c5c9895dda4ea90ba0ec57e1d2f790de04b994524a29ad1d4799524a691039e34f29a572bee4733ecc8ee34418e6a522142bbe907243b8d28a2f60176cf1fba19a9bfb3d39eaaff6c454656944528b3ceedcb0555c32b98e938b31ccc03d156356a03170e20cdda58faa84f50e7292e420c9410203860ca678b111c6116bd4618600742e0b15920d2e61ac7146931f3091c514408009fd1843e24c610bf357e2e04c71bf2b71709eb8a3fd1a5e566b61423fe69c95863955906243066e1c11c50f479ce6953ba7c8ee14c75a2dcce84a9c9c24170677b42f05ac54e81956beec60a6775339a5bb3bedd94e6fa4ac463cccc3c0482825dc569e12781c9d95a39fd378def283c8cce4cd2342aadfb57bbc20c897344bd8252cbf077ee0e7aaae765fbbeec7ea8528a5f43379928aeeee4282b4481c775c1aa611a8342d9735410c15d188000000003315002038140c8884a2c1481a68d2ee0314800c78964c785c1ccae330c8418a2163082100100008013000204343630146b5f4f546773fbe597bc596130bad35aea1e96e726c24e1147a68dcf035b249f72e1e81b869f337a3572babcd289f976128a2f66dfe73a9d85525ebdd363612fcef8b82d5716c12685800ab136f45a9e5138d2346a18dd2c651cedbdbc388d48952fee44ce419d13886bdc9d855e3ca891982a4912476592b82664d2fc92613b2e0367e70aa4a6cdcc392e080c9f1d19e2eabd1185cef5a63d615c656ab913ca19d1bf881a941ae6784176d90db45d46582d64ddfe86e8e93b84d3e3bb2af0bf4d435eb0deee9cb833930f1db83b471a756212ba51011f5d9a98cc8896b18b02122b2dcf6445a8a01fc5bb3bebf72c1d20a42d1972ff588e1ac89695a4d976d3d12ec713a5b583184c83007d83d2e44e8a35ae0bd2cfbfe331168435c16426ada9c28eeeb98f113fde1da129337f300687d4b512d8d562d6bd6238406cac72fb1f23703866d991033e66ad42e131b5340bfd6df8245510b3e157b5b22b8b69b72d8e4ae2efd9e8b6acef7b2f680b93ac4b1dd18248cb70310ebe3f4a8300b79b4cd2040db2655e6174a47dfcd8b4f71fce37751ebee0a70722fb443d68af3e5982b90cc3d3ddf88dc8ca3b2cd9c3282d99ba33116916ef06ef84bfe66b13257caa04d56d83f941561331126e2aef19425df84520e8f991d71ddc7371842b7d272cebab65b3c5f137fba58bef692f165445ad12d7280623670839ce2447d1c5eee5b552e8a5f2d14a46a29eb1a3dae31ac808ecb9463ce5c4432d31cebe6694ce61d8fb8389f8c34098310079e5092f9e98c72c9db1139e5339770147e6ae8637e043af6ae1f3770e7a53b7a72bb2b9475a40f51fe5c0597576446c42a5318ba7d7a61c52598af496c24b9f8a6fd799a72fce00762c7ce98ca2ac9b29a3e82887744a629ed148d50a07157684aa10fbaa84bf643142b59cb0d8ccf580c46741bec5720b9329aa0779bbb912a22b60828c7f32d3e0b8c97986f6ed2e93d32c078cec7bf58648651a096a035d85f21cd6c155024543cbc5dd70ef34f54206b5b0bae797495c9b0dfcac2f368c0878ebede46ab9a8d7dcd4d781bf7827590d2158c14ec9d780af6bfcd2be8756e84fcd11676988505483a48e9df0e5fd43ab20cc345763b906cbb019e9888e818e36910fcdf3657518c7f41db719e865ca2d5e2417e6af4fd6bec18992da60e069102c53c15fcea2fd218c84554af971bdb0ce45b0a4e971e438160eff877c48a181c7c4a86308f603527159e98a9342a117a6db7a0a4c03638d31909d037ee7189ab65e051b15a7516bba8627520fd57fd327d56ab96311a485f4d55fde9b2a531ad4d775844485ae751049840bb68e1a1309b322f8c789510e804c44f534791a90f7c0abc22a6672e9c76ce46f72beb9b22a4f9ac61c7638c6296954acacc0dfe2b64c7c2ac9470c37be608acd92eef9232f8bae59398c510744977e42c157e2c2cca9b175d562db8ad8fa8157aaafd28ac555af45af9e0357e75a950d178ee42824c6be0fa73ab240fe9d0fea29160219665373224cb36eb230714421b1cfb5362a802c211ea91193490a51474f30cd5f875e470c42dbb7fa89ea761f293c9e08c9c681d8b633f266df064a2223a88a93f5128b99251699164e44ec01d55efa1c01b4bb4285b1a7dffeac7ac8fb529b156b0ba74d47a23371de2dedfcb9977d9d5fcce10b75f5970e02798e8522f268251a676f43fba3d46be09627f2a7f257a867aba17d4ab06be2454f6701d133d130274330b455eea3ec259dbe5ec3e204f8215615fc85df47e84e7dbfe867f7cc6ce785aea94630832e81df5bbd056dd630dee90bfb1bcd7dfdaa3478515cb2450d8454576dd7126ef8b10b5f2e4a9d3338fb87f89ee6812e3925cb96904d35d62b4eb6c6fa27c742b2b6367264c59579010e199031d743951f037397df316f21a6968ba96ccc1cfc931352db78270b6315c9d6004f7391e31961355b688b7bd45db31353a9f149caccfb2d09546ba946b220e8392fead6e6f513be48ede287bb5b5852654cfdd1a57483cb990b6c07ff01dd0de2c864170e119d0fef8caa2213ff81e0937049c6eee7604438ee446497de529dc61c28276ee2a3ccc930d6cd4d045c7bb1bcbe7aa6c7bbe63ee9a5834a66de5e989792eb7ba41e6db38c9507636aeb3e3201d90cf9591d50fcafb6185c308c4fd8a9472f0b79b47f3de05d1af9a2d6d50edd18fa88c7184ff01ad2c9006d04ad57afb1bd1dced076c10b6091eb240b4bd908fef4164c7a8b8817cb62dfac0b78d64b194dd96273a65a79612b2b540f8e2d191e3f6da2a2304ce14dcf8b6470df8944d5dc137e653f48eb8f575268dcd91fa8a997325133b8edc9ccfc578d7f20938193802cc35d2a1b9e9cdc489e80f26e0dab2090e14bf2736583923d9c0925cc161233d0f7c81ce225fd8b0ae492b1495086682cdb4585e425b5759c1e1eb9a9ecd9045c3789be316ef5ed7b96707b1d45468c00024af5dc2ed71652a59e249812ccdb2de2b2986385bb781c2c25a97a2dc8702506c9fa7cf3096c61c4d30b5a26ab7407c248137d7b48b002dd2349e0edae5918d97e8c69f315eb4b02a4da0729b70c9b63d782d88eb0bb9789ee52c733b162d31ee86cd0ffd8b4c8be3eecbd84b0c2b0860467e63f3cf39050e16640139be288755ea3ea5204b89c021823485744b4f1cd9bc51731f8788c10ce73c7ed2a63f35d430d53676f4b81e5251fee9bbe16b51d07a7b7f8df659f9aee3b96431cc3a8c75b09fcbeb8d270914e19ea67028373189f3df62a16fe5a9788411d72f694b84cf669336dd779de7808b12634742dbdd8f9dd9939dd5c9565dd168390cc7c399eb0abaa18f79311135822648fd3756bb20b3b04bab003a76ed2dc2e081ae24f7953325d82ab4021fedc23a4b02fa6e49148f4aead1655f9dddbf23e73c0156eb77f928662fa3fca7ca52f1d10419dff884f675ad80c871e3a438afc346dfdb549807c94acdd1ad89678fe648bc85def135e23094f9959e1d222ee99e0f477dd421ed7137cc1844e5f3cada3bad66398b89d5a9c14755caaafb43569a4c9ff18f8b8f97956cc407e4e3c86719779c04948477fa519c32acd6f7b6c1992209a47a8c25f8309ad5bb628ba78dcc4e5c629d278eb60cdc83c147ec0b0121bebedc44380e815fbdaedeefea36dfd5ac16b7de38b66f637f91ca6d20051c9a5e36d559bb16d9a0c310fa388528ab8ea2c9147de0ae99507e36e6098ec07a4da6e16b689782e9055756103b011d667ea817b6990a6ec02fafaf2cb9c83bd54bf69d41c3007c4c3d518f50a4de0bdcf445cd47c3580f1f3b778a21bf6643cd87e52851ddbc0a79f6304fae2441bde82f1c210ee07735aae97e43768ae6e2274752bdb2d85dda84486a8870551b7db983d1d0551cc0666c172cbfa5ea5d5ed1a63e8b3b9a6415371b98b65d271a5fe66217bad1aba994ccf728f5d9835b703c254e744b73ada44157ec00007cbd82a0271c00aff18949dc7a03652e310005b141a2b088255ef5f0a306c081e0837cd293c62d7a3ccc527f2a0a8236353242928b556e1abc9a955ed0818a9994f5278021080dfa923cbec21f4058217e4541d006731000dadebf019b83ffa94a4f5fcfd20bbcd3aef3d7a53bbc07cc6abbf9e8d0a426ea6dcfb2930a38f50a9d3f89e0c22e53f2eb3fff76d34ac0b486a233ab7df15c44b06bf330f4c4d962a6053234405c88230df51049ac8a3b7f5e3156b81872a20cf47c3675759eb93af61da7897c7be32215d8e21a3dad6ba440485960e8d44136e86ba92f98c54eae5b523c09eafbf3ac37d1a56946f6f067597b8cbdba61ac065f9e943fcd118825adbeeb40a0125a7b500ec890a7f6405fa13b8d6687e6dbc27dcaf02bf5645d4d4ef133b5872651c945caf895843a3a5856143ab9c9d31fe5debbb6c297e07bae042b42095f00e813bc51212bfd5fc3471b1b74c63558234d5b6eb6b035c6f7ec773f3bad4255f65b31a4f1f229603066a477d2644de0098c640e8288cc3363dc642644101d9d68cc3caff64853df51da8f728f5e24d879849ec73307821d2c76532276303b2535d9203c4f035220c3320cd82538086aaa6a6c306fd91203f4e0ec09b71c2a25b40c6d69accf96ae0b68b0b8b432a7c5c5234eddca6431eef4ef37601516c782ca6ee6215c0c8c51b3b88b1b0591f29215be3982ee50e79069f2be68c1d605ad8b40455f7ac0ed0435b1d79713bd7669687cbede5ba15bc5019f9b58b1dea327b18778178aa62c8c96ff1849d619e92a45363c22ac1339274977c09f0f9468068990fc0d617c1a1afbfe8df3a4442e4c4775b92fdd92e0d796286a93ac449b6600535c862e2c53f17509baa4e1d07dd18cb2a4a8220f779b2834daa023a5088df903df2d3a5395a8049aca9cadf60a594d17057ea04e6d2385f1f70a1ae7bf7eaf9fd21dfb21dfae9d94ad8497df920daefd16f16b0b37b55168ff5c2f27cb7d9a64d2cb4aa24862caab5654638719ecfcf805473114a7454f88e04557d981ba9094c9573848ef9389c8341457528926b999f021f881f0c5e7e4900b0db82ea73008606b095c30a6c0fe2ff7ac6101442a660e314910c60bbce20a8c0155ba9b450d2d2d742a9406673d8b8a517638804d226d2966d3726c8c0c0a1854ea286e890b56fbb8e578e42dbae42e08fed1bff19709e3613d2b4cde1052b7a746b7401a429bf26016ac25b143139ee8e6df0b9a56b15025b958876fbba47c702b96de21a3fb4502e11d64d29b94819fbcf2cabc762b16714c1a554ceccf60808440f5ce8ec868bb9e71e4ed74562af128697de408c5208ed877a4dc46a9b97d3081750c7c54ad5d3d773e808f2b463efd8546663c32530277903ee38713b02905a8d0b786429b814d484743804d891555d94d89a0f03065c4e57cb2f9f030a1c51cd56fee1a7ee2d4048198e81cd6f120370280a207a6c5a8883f5c01365acb7eac7644c0f551c54ec2fb6b79804762cc8aae1e47aa2b74593bfdb8b47a54bb806cfcc1649f46a2f3e630e3323f80f7563496676a65d80e4610cb030b27578f67018221497b4b4ca69b14ce2324c89d414e6974f7c44c7b270694524d65130d3b4bde5ae8db35ce46524a8a97dc4a67183e78afa7722085c259b096201e54b54b1e4fe12a9f13e1cc5da833c7b5fbeb1ef30e15627d8355d2e0bcb8a3730230bc6d346369d82c832f0d9ada53f1f1f031a862d007a74cb4bc635405fc358180474b98bb871f7ee53e3ca47610efea137f27903bddae029eea00fd8657d0c0daf491fd4ec08eb79d75f1b2f32301f1a2d184cfd753cd91a5a5bbcf813cc6bab3f6f354eefa7a3cd12501c04f3002136acdf5ca95f597eae941e44630aa416d74a5ce82c9a3e79e9d52d1aaf9b06e5d82bea056207a0fe546c611e3021707b7ea28aafcc583aa83beeb204ba85daa49e39d3f68df7eaf4d47409a937ad60c6df521411376f48052fe6b3f32a48d8fc2c1f36daf9565a59f202ebc4599bbb068af5189eb374f20033f720f325a41ca7b4e6d27efb15e33824fff7e4a1a4667ad41971d5528591b27864e2ec71976f59672c23b87377282fd7becc0bff1aa535f80194239a841f5e76a3e64ce8e5d167ee15f4a5e514a2df7cdb9f2101f05c4f9266828e17cfeede4f76a83ea528b3df7b3a71d277e1e98a7a0b185871c253a21dd9b89af3dd34644ab35d57be008a0c6e98be031d517901fdd752046f0f7502c050f957dc3f4367eb516e7a7731083675a60e991095f87441a24151dd4c25f8dbf1d71096122fd3046429ddc6dc464efaa3d5efe777d250af19aad35052d7d7b700bd8ff69bdbb290eca48a5b6c40291ed811fcd78f38dff189639d0ce7768893e338188c2b015fcd057fd13951139e2409b26fca9488b50f61b5443e53867269f462233bc285b83335281ffe143468bab25a36930d216b80962b627a1799bd9f7c0eb20032050ad3118ba35316081486b588a81731a75ceda88644f023bced7a3afa9c0ca5af853eb125973aa36c7b562cab6d3dce39ab250298826e314af4e168f369e6c18cb85b9dfbd4003daac7591fac51f52ed6510d92f51c149b981fa289d6bc47c91b7f711d9075202c7468443d51092d25559cafebd16b959663eacc7acd516c15c940f20759ed2690192881ca44c87f2f57d8e29574817980b981556157d5911765dbca861ff6a7a67111c32331623b44dea9ac496159b93572a26c4172ea40e62ad76dd5325c363f5a186f44ebbc4793eba0f1213d7f81c41526ae4efcb378940c1d656e8275fd677d1898d91bed682a69321d380fbe506fcf23b20935f2a40f7d2321b4f8c4fb2be10aa6f8cacb88adac146714ec61dfa73e1d7652544b356eab8800913132f1055b30fb37010cd69779536042e07c2fd685831ae29683e8a112527c5dd884c1a8aad7d0dcc6a6f226a6e81115e31f81cce7c2b5b415e87296ea0d6f4e452fcb83bbabe3673c7c00c0ee75704dc2a740c7b4385905ebea8c27a836931a9e02c077e6d121389c4db134382d80dbaeb70a6072f38c3b2671bf4a8fe0bdb264282e8f29932c606e9783dc85cb03728c93e0d10ba217b4d82c13e191c07e7ff0082e6c32cbaadb1e97518fffd918722cc0c62dd5caf17ad33813f9a66d2878a57ff446b220fd5001ccc506fd27ce5a2b978bc9a70098019241c72473311cbb76d916f71e7ad55c81e0edfb67e46371ddf34415949c2a94e0efe4ce0dd6c4dc461274686f5cad1b1f4f541818d4031db2963df5ed66e03cbb1c1ff586baaf0c953165b06a5acd18e294744c46d317f132ce81ff62487ac395b88d0c5ea3cc4a6f9089b9a650f8521bc64601f5e8d871a18a6e3658f0c76f55990afbbdcd188961a6eb0394d78531a89c91446a3c8b87baacec683315781114af6b66466e16fa1e83163c129e397f3e793a98885ec07ab1620053aff1b760f80336acd1db04016b66794840efc95743ba5f11ea911fbbccef946023a4f96b8932320566539e724490f8358db425ebc9f062714200d7fadbacf2cb3c17041cfa7e90b0919c81f943621eba6cf48f26888c505050abc1ada8586f575889d1a2f7cdd555c9a7a756089036b1257d77044a49960fdda90718acd3ae0e3e3c6aa3ea5068f7b82e9831112de5a201ca3e14f453859e84946828d53a1a4da2d699ca21d35d69499e0cf4d4f4c227bb794aa20688de849bc984319276f36da5cb2005c850345c2c712bd841396e99265e3b1103918a4cfbf0418e9a4fb74002ff91a06d262d8bcaa10cc619e112eb5ff112c5e49151132df776f9a23f786dfbd60cb10c8dc2396fcad62db7e278a14dc8cbe80198c5f5672642d2c666d3de256b47b859388bdc71992d903e13d4d96217e6b42a3a0600f6c1168ba430d961845b542bbeea9e61080c5a7a1ea13ee12b53d2c50c4eb4948678974f1fa341b28edb910ac7c8ca31d7beac6ccbdf31e5e4fc0bda77d61738613f26bfe3ad65aaa9b53b13c0ed535be0d5daac3d030f2c710130087ce181fc1684f4b067762f8cd440cc3ae90a14ecd1e307a80f98d9e9dd0a343d760185114ae80776a3c848c0447551a01ba582d10db75a77776b834831ef5590c1b72537ab611ec5624dfe000680686ae3ac85d25a63f7ce0e703924942da63621e07025674f038d9d1307af82c6ec69b769fc3646ddef5df932e628edc0733eba74413a7ce046700228ae76b64d5005b0c12a3e895fa1b0f54bc3759123591c19773297c5825f4a658b1d1ca017005d9e21f2c9184f1265b609542e805f54f87642a028ca64388c94dba7f978572393cfe518c1f44ff7cb8342a3514deee850d65b09297a6b9c1ea8a5d920791ca820b3812f587a3443648b470d3205106cba520ac09157eac95447397dc761c46792d6528d8a45ce1c85d8116f610089e49c0a95c96a858cb20a94a843862d0f8f01745d4569c726f01c1e368ee343a714c265be18a09f7a612cfbcc33abf6f4c613f4ab792ea5bb6977a4293e7fe343f14ac1c7533a15790eace90e2833986a30df11c94d042228e0bb1aef925a0b79f6fd0ae4ab2e447b4dc004e8dc415e6fe05864f9dd296a6b5390c34e04b963eef56d033b26c58d74a196c264cfa94520f2bcc6afe5dbcd38e6b7dd32a3d219b8ff20549790896134dbc0bd0a5442f0144462e8f796958ef1d8a36816b9607eede48597897da4dd62c5d1b0728327bc26d0bd8e08e988b1c969ef562e3c1317de2ac1b0dae2b68acb8eb60856e003f319264a19526dd329b5f4a46b6ba02d6cdd3d73f559f31ae48c50b35d028d32799ef9acde5a0b8aa665518945b5b3da9179ed8604c96ed61bbfe24be32ea644be0264bc9749dd6eaaed5c4bf37775c263d20f9c3873831e2e6ffa8127e6bc721a758abd2960acdce717c049238fb3aec4c27f06b49ac6f2496788cd2b2270ab2b8bb5aaad114b63f9f34d917eb0ba373d692faea4f8e1de0eaf23ecdb44e676aced68eb77863d8df6cd21f5020ec92675eae51050497d81d568e3367130d1816e1f55d7a332b030f9f69a43e7ab5a213c71c85365a712f676709285c837cdb662fa8aaf666419cbade064c8b5bd448d0b00dd221f67e60a5bab691eb42c7a620936c96d8fb34a8b6253277221cebc3cdd975bb12af0acc32bde8029bbd291db45b8505ee4bddb7df6e693c8cf39dd5da1dd727174b7d11426c65824e4566f54df243d5a0e193e78f5a512a10931a2b79604f3612b26e6381e24f4b9af1c0085789706e85185a7eafb7b3a1fb21c8ffa536282e94ebbb47dc5aa055fbad5edb25077f5af4975314a9a49a41a52a76a3a96aff25f4fd7947457e283a8930b70ed8aa40b973cbb4447612381d3ed6e1c26aefdbec0a7a9b99cd4306e552f10fd00bf2291ca25f5986eae7829727eb6805fdb8faf03a639b5e802dcb66e3390814546c725d6f7deadb93a81361b901024b1dedb1f5ce43dc78e525acddca9730b80e3638c258053c439603ac1c912ab87c2be42ead0e1e5ea62a4cd6f1c4407958105500301d6550a8cf0c0f7bc056f18c5dfee1bf9da88aa4bd1f25684477ff7a53390904f39ab43c50c95d4cdce4ae2c3ecba03c3d6feba0ac6e365e0531516114334d821dc960c34f1866da935663c2022ecad10d0dbb21e9b41cbe4a637a50b589a6bb98544c375ef2804531154c410f554ce1986460bece537d16be667f43a9917cee799195322036b057ab3df5f3900a43259b379d42b5b671d9e12525b2fcd4dca1483d4fc34bacfafa2d185e746bde5f077b0037136e0b4ee588b2e045911d6ddf32e29f85e876ae518e189918985fa5bf076b54050d1b56168a385a10ee0bd826ec1c8b9c49a9e9be93f8d22fa610c0f621be54a801d7d72c7b492895ff1c26bf027f668118b1fc7948b32658755cb2c083e02070823312f5dbf7c3ba39d362f19de630237f09f77fd8408ff33cb904a4ff4fcc06874004384b5729a929e1df9bd1d206620e32aed58874522515ecf905a75056955d78c4b95ac362f94b5b639e5aba30b93a9a173a2ca0ae26658af78fe6d8fd6fe27ed54f5f2baf2fff31b11f87b8ad30459112b73fbaa22ea86c53aea4f94087be101bd26c3edff348132d245db7accb2491e6def84c122347517b8f2d4feb852386840f696e853c5febba25bc9ebce66acb7cdd0da58914661236baeb3631ac55614d2345297e2ef01ab3367268159e5a75550da947ac701c14798d05d7787d59f55b4a778f760923b82392a390ed3ec50780247c95745eaf4f0a6dce58dcb56a65c9e6a53adf8d1171e22bf2376089269f09e0778d8e16459919b2511ebb551c69bfa402580a3c103ed24d5c13917813632443c32a307deb171e7ec57cbe259f03a34b0e2468a9ef5b3ae415a9558be10fe70f6e01518c4244ba2de4e824c06401059f671d01419134ee747bd427337c460b5bd3ccc68b9bcb6e4d1370347e1676f5a24bae08f904ed1cf9b461a41121587947da9584ff7d6c1a9ee38fd5d32fc7d1fcb8e8f021877e5dd1ead2825cb14099a62c72d3803421abc23d6114b871f344ad310b0394598892ddf0e1fac0e1890a1e39074424929686bb51db65e5ed6028e65cd3f7c979e93818fae21d05fb843bf7e1d9235c02fa18dca98b2c773f4f1492268d623e6e70afeba895ec2ff140bf79a83695e19704047d0fca4af6003135c4a2cdf6993b0877a6a553cb14de9d2863dbfd42450866186959147d5d7f2e7a150fe965f87d8ef471457881d7425432178fca1ececb3e77ac7d6b54d0ddc61d0b3ed2297c9ad48de608a3749e0b6b885208ddac962cba700b48515ca00800c007ff65bfc1047cd416548ad9e2fcffee4e33f1975f253938500cb56168f1c778e945696909afb1665772d07dc362ff871ca1cc81856a45a74c692c7a04170a60bfb6758303666e4d4d216b5220038fd5269f39dcebf0e781dbd3fb232ec81eb770d66584cd64798242767743c3be87cdb4867ebcd057b05a3b1409c48a27e139ca1a977b7c29117190c0a17e98d1ce2bc4edcde3daef00abed440d2146433136c3066c4d8241880842fc28a1455af86609244e2ac5f9631cb5dc2a740ffd82e38a8faf4a97486d76d85a028a88aeaf2266042b985558b8376b390c4a5c62e741ce61489f1506bbaf6b0aa567eeb0d919e4c25acab05793bde106176f8ec8e874899eb60c26c1556aebd0d3e926746a89afa86e82b396d596c0562218fca39c4e6f1b01bbcae6e486b6fccaa643864cc592596c7e8c85d6e5054e4818cafa81a6af657343ab8686c9cf2c544fc74a5590b2bc16fca35b3bbe758e6633a860c0ab3915e3d784ec3e6e66e34c41f66690f738df41df678ca322e501527397e49119506ed9c56cbeb6912f66e746781b13f42f70fb2f15b02d66632529ccbdc82e67a77f6393b4f6a2839e8d3033273c3d6007ec72dfb3ef0923e5ac8910e40063f3a282a03897cdfdb2c5ac66ba1c90ce7fae1e81434fa0499148e7a8c5ca656abc6eab172d8b9829f1ed888ee656afa2abe5c0e1152a4aedf5e18a1372d0ba40f639a43e2971537a4b2a75680bc645cc2be1144843f3afd766b229f2b443ee65fe3818dc5d64953979f635f053837565fb1159923412c6f1d1dad312660ae506a4cba1d6f919c1a3873b5fb141e037ea808778a4ae6d2a4b1cb361a7e2eca10e8b999e64fe3c42f07f005460b4954244ce5d3a8e309591e435e29a57cc981757acc7b76329fb8ee0064e4a44c3c9fa95f7484a9cbd400fc04699e54fb53aac717869359fe1c580cfc3fb42c4ed0636280f44688ed90cb4653837ae5f227040530227d31438b145d54cf6cf56c8296001641663ca545bbaa5e2d60829bbb810037b7703c872fc291edbce6052af33be1db464bd77dece257281bc2c179c53d62105474e0ef4ce9e16b533b34ded4b25d6b0ad2dc905fff3955bac85b6f377a9a04849b481e1d085af2a2bba61c6b984682249da085de76d9b3de2b0c8f46dd6741eadaf969592cc5ab1ab28aeaedb39eeb8b71a8bda3a0c7764a864a911591179a3ffd8d3f94a39bbae4117994409ea6efad8ac0c69e94e031da1df53560776a5c5c922e78fc177342069329452f16722dd2f5021cca2141d3804b05186ff33fb65e6680f50e04a5f4ff5434b1f23baf9104cd697d32d0d7a8b13fa4b408d77d3b84e6cd56d21a46243ade55f9cc9106be84f5f03d7a57563d30923597a9aa7eefd17191b65695899206f5591e102baa929c3f7226c6b64e9af83be4dfaf4bf459b22c30282412b9a85f946d4d4c51393b09137503d2132f3b0d85a7f7ebfe3cb2f6bc56434bfb628e458533d9863940e8782cc307a95a836978886a254df2d452c241fe34dda81bffb4685c5128c566c62cf67351944445bc4d69ee9441bfd031d3637b7abfc7c96548f32635141c232cef9e0d670ff024f563e39f1795482230ea0b107759537a0cc088ede1b89468948422d4ddab3b2e87c912a2ab28c1d6e51b22b3b11cad4cd81b33e51901d0f6c9c261bf6ead48434777a78b9d7ab4d523e7529a48ab1f59d2b53d6b42cbfebc46068d779ad692b84271f2a73be95a2b397dfa12517398a0e49617e48c97d3d04e5c51615ebf6fb7cedd3289ceaa4699f4bb243956b546bb6bef9cab00176dce14d96409caf8c3957b0975997a8a275a8def4f21669c3cc727f5fc3c7b0e6249d2866f6c5890e2f338179b9a99e540cce654772ecca779b8bfdda74120fa9297592d1f7e244ec20f162f505ec5904a571b0c12ce88d4ff7878c5d2b5e6c518d416c5810b918d07644f86530b7f6a39a81299ce9f6a9ff682ec37000eaa4313d66355707759c946862aae19c88eab4b62c5a316df8263a7d8ae66bf63b55d4179a4b6f93cd80a74bdc8871eff07b7d75397a3de44f8fb13ce2a978b673acba59539ed7b30b32604732d486e482e3d63534b22fa9fc8a930310b56d4e9219e6de088ad27104cc21184c49dc0674766911a02566a51c4e58a6c8b9a3500c99c3ffe2bf228dcca1083a958f77beddd154aca38b04632126c56886f9106cd1d991b32263f174c655b753e26dfa3085fa2d3eec7152bc5a86f9973f389df17afa085d894c3447370b8d6cdf829081eebdb598504ddea8cd3e5de109ba5654d23bf726047649ffbb531484677c8214cfa50e7cc85b9b916966449059c9cfff16821e0eeb1a54b680e95e3d1085e67e46d6f1e3a2ee8f85838f1a98ae282ec8177e5c2d62a7798051ab12d69dedec8867f81cd02a934226cf939ebe187726cc0ad6227ffa66b9487ea0c2bc28b2049103f10024ce3fdc34130b780e65346aef4dd148acf6128f7359e8ac76114d9c3b6ff8eb5039c667e28779d3cba84cb337aa99d2a8fb85e029990bcfc7c0884a1887e3ecc44d39cf240ca258a2466bd96783c0798fa843c780de761444bbe2542501c7a811db1a05cd4bbeaf13fbb66492feddab2ceadae6a3b32f8c5e935dd58d7cab1d8ac3c318cfdbcdf0f80f16bdb524c79ae1ec814773d0d020f77dc5726836d178ce9ea062784b14f2701d4ecc9902912a010cb48f999df6ae444f7defff27879dc81cf2687e9b0c508dd1712c6cf9de501cd9e22877ab1330f5609331479d1370e7304edc02ecb2df87d793c72c2623b2a67a11e0163660ea4dbd650e91dbbeab8b9d73481a4a19416bf8f31137bdb33bf262c5ecec5a9ab393b58af04815d65f737664eafc6c8276aa901e9c7603f74a17b82ad647a893818ba71d19236c21c7f87c9157c6dcb48254003daddaf3118472127c4294a05c0e12cbc68a51a60821a30b97530ad6e5c7660c7721d591210092a9796c9bdff672f5db26bc49a961912fb3767188262a18ff5b01e132cae58bbf1016228db7191487a1b34f36f9b48f391f35694e3b511ba1c3670f61d0b7438da510769cf3aab48dd66c491101a277b67fdd53f361b097efbfcd496857d01812a59cd7d6bdfaf831b7e3150aac3ef86cb26862da5defc67a4b33d91852a9c63cefcc0231f06c2e4eb914a7f4458fc654b89d2b55e24f53602d84bfd88819d22e37045298c4fa67e3948ffe86504ef1a78b074040b88aefaf0934f62ae04fc2d091cb80ffb880468b2e987efbf63e56c64c580bddc7bb7aac124cf94eb217ea678931e208ef0573a7b31fafea992e4ffca3913d5ed8792dd73297cd3aa83fc6022fc0884c3ed677946099795f6db91c6be31f5bf6fcc4f693a3b0d46e51e1ab570ef603593d84dfd0f0d2db7a9d1ec87a6c7340496aeb62642a3a0dc218b2603b6d78036fef0970af6540087d0b966c1903ba0323d24c6fd70937675f6c9adef98558aad052e3990138059fdf6cad3066ec2072000d9a911938ffc6c6a02ed401fc16407a2b2c58fc02cf306814d8897b865427542e19ec750a315ba72ccce922874355da3c55cc8a9b2ebda4bf4a2b03b007fecb06f0c5e97268f74d5fc31425ec2ae8aad5a54d0c664b564496aa2e804cc84d610b034e1bd8644a27b6e1c91d98b6cfa996f0262820216ccb9184a0956ba5cbc5627d9b2681ad6aa1c9f7f0b24c85443a2da432d50a14bdc3c613cb9fd40918405bec7851991a6a063311d56d0da51108789deaec9b6ee4cd437257499d0a573547df4f92d42198d352454734793767d33cad7c8c88884dd3ecf6a7e33160895c618160d35a85deadc0554360b073b0b798bd0d1bdbde4a15ebc4d150bd746f6ed8d1f8df4a636947577067a328f327866f28c0a6bddb342f58749d5dc8c07ba25989b666ee34ec947a5a059df9da02bc42cb96b61f98dd0affb5b7bf473bc3fc0603874443547c068441e71c43c94aa26f11c82bc1cffa75241915e6bc452a755bf0c61cd5d7eeb79096511add5268118f9546d76712f7a59e4b26183e82794199e56e794b9965d74eefaf538fbb04be75dcc7af819cd49ec415eaac579b30679ac157319d211385e07dbb2a479d538bcea3cc5165429471b36151fd447b453c8b35381a55d72a936e8c4d5bffbe768fa84844e8e5af8a36146a61e7ad0725426914780224957101fc321468dc471f26921e772d164a81d8472579469467bc6a2d21f83dcf27952c8f98581d9964bada9e5b528a39e01eed22ad191a9b7b542d9cf20b48975492cff08a92a17c1c03829812b63df83acf5854fe7280f523ff437c22855d9c437b335d22264338fd1475ae0a4dd25b9486b6b14edd50f2af35e28d89bb415c3be153d6b48caeff3bdf69a97e69028ba0556cca628c8aa93a8906b053f71b4782cd00819f5bcc6cf4bd5d89287709b133225528577a6ce511040239ab246c6e2a2c315e61276bac8572db92764e5125da1fac0412f5be30c7fd66b0e65560ea28cf3667b0940e14214c441bdbdc82e025c7798eaa021a288335812206ac8ac8496f1cc5bb47a36a77ac90ef13637c7538a9c4b93998057ae92992dddf1d364f67b67151f14e6340f9fc7e5c4cf830c3c796289b2b8fdbcc8ea22c0692b0f569bc8cef4b3e869c2c123308c85da03a07a233802cdade78c5f504ddad4e32a6823d7da461741a5288d0948eaa1b78591bf9163bed8fb55133b9911de3d5822422489125d82d77c253cb42303eee901895950e0e8d222b0e35378256a2f6397cbcfa0ef14c1b9fd878c776a076b21b41f35f8b4ceddef8c6abba51503ab1eb100b34097ca2f4f87b9e5800c48e592323ba5814e4a4540e385e3c11d39d473009b12be1b09e9648ba8949843f15b2e156f3b16b70bf72cab0b9a20dbbf36ab8554bf0746e765375b7d79cbd9e438ba855ee9088b9d457f5e56c0f00efff0c312cb151ae71a6a26623ae2e2503337ade6ab92049b0c2665df3c46b46a9e9e8dac4534f2071ebcb6c49495d480cc6b2acfa43f580dca6fc92f0bfbce5501a65641831ce007fe79e6667f3972a5b8317492017e91b92c87a9e4177db15f4fc42806123bf62d81f11a5d26e19c6dc8d17c157a9dc967a20da2723e96203e7de5c830ae18b825f709293203303ebaf6338f1399e77c3abee46755b35e559b926cddd401d81be1053489aab68266e2978edc0c5f0c2635e34ed6bc32b3ef17e700fa4f1a9f0dac6c13e68f2f157ce66bc92b91671629cd2d481bb2d9e183899b0f0dbb37ac87984fed221ab700a4d4244b7422178874070422d2ccbe0f6f842f0e36722652ba6cea0fcd1f9b9287af7f9e9a7639fe6328f193aad26996494c3b5e8e91b2a8211b5e856c35b38e27b510eacb075bb780d6055f1caa39da2de794d5d56eb880547cc48bfc7c2e859acdbe2de53e5d1181015cdb3809c1cc4a3a8bac6a6a09254b15abec72d2ce1701ee1d45320fb630cb72792b9d86bfafe28500901a2e4a12a102858db448990adb052059e52dceb4c9fb6652e7144c806e2e752b4b9915775f129d7ac3acda91f5d0117b7b269ddaf52016581ca8cd92d18f3a35cb00c72ac02cc1898f4476cd4c60282d62314322f220eaeb7aaccec0e9651055f1046c19a03e2ec5f22ec2801f8d87d5a39c1e934acb2556573d44a2a3ba1adb9c6dce995fa8db75b4d3aa64012c89981e348e9e036cb5749c5c4caea1bae847f476df120e1be60cf2de4fbdbe2c81cf0e66a33fa9ddd92d8dbb95f3abaac31550d97f92fbe769ce3668c5c232974087564c326bc53b99831ed3265107e41e236be0365fb7491d709b6adfd503c40e7423629d933eaf889ee33fe538a50a8272306b186bcc18e7463b7e48bfa953a27471a5ace8af930b459d297260557d8e68c792b4a4b6e9b1c0273a36dc2a8bcb6c8e7c377e48e591015ddcbe6e2d342467fd5285bfe8afc899b7796cba4e8917a576b327861e7aacfec7becaba725707468c67a9515471ea8ffc8399cda1698e237c34122c5459fc7c529a9ad7c0b226b3aab50e5063479d26668b871777b71d1dbb4cb14b1a8fef5399ba17020f02c9770f80cea4d51357bc12399d96dfee7cba41dbce9cbd48cb873e8f4345378cd71268dda67e2349038a793734761fe92381fdfd1337fc0a317ea8d007b77d6406b4715273607885e1d67dcbfab1607d9de577656354f615d8aab026d248467326a3024a9c23aba25e7212b4288f256a7a3fc94f87d153984c92545b6e908cd86de1c5ba73250230a102d28bb1130fc7bf80199399680b5a37efd989fd3fa59f5dc11eb00629da06cbc80a250815504f0b64ab6bef191800362214cd2f1b320c6545b2047ffe700487ed91b8f12e7897edbe89bf01534837d5337d55b7bb7075de52f3321bb6564a84c3e5ad9e1679a1db647b65cda9f710ee9309d0d17d69f31f875945f4b4c44f1c625f27e1691b3226693b2ccae276a980acbdf676e433e499b0d4b7de34d022858239d0b72ea6679f0a4761d4c47b16f3ac29c54860a801ee564ca1af72d02f1a37c904493d77cbc49fec22e0e689a0fcec4345fbb3d0dda74f4161e638c48eb814953580f4a6bbdd2fb0b69ed90932f8368c0ff9ce9b65fe70ba9dab4339cc43429d18dadb13d5d80d5a69aec9d408825cdf504db52b375eb005c3091de58c31c77983e6a0d06bfd112533163965fc92dc800abdc25b08e305c6fe66900dc5e0508378329d36d9cd447cf340cbde2f518f625041ee57e2d7e0ee0ea86b244cc86d2b246869e6fb023232edbf13b887c36f1239e072306198e5caaf0a2da8d587e7669d52f0f6d6501aab608144fa17bcc23e48e90f9f9ca3f850513d648820c4520db91765712af97925dbde2c45b9fe843352d0381ee1596bca24797f1c8d5249347101565c679d5fd8a418ab8b5ff6f3b8ff6dc1f68dd16eacf3e4dc095846a9597cc3a150d298d91920571f06f9fc19745928bab80edc73dc0ab7ed89cc4d0bfecb43b45b934c4423dd571e0f41a4a98e11484001c0466604905fe77286d7b499c9df0365a8beda310df37f5a4484e5c06a01f4cf6113161696d225098fc1944faa60931bde68738d453826301bd80f4cefec0c8671adf962e64a52487abffc5c1cc0405d5d9e6c320d43f5dd1c92f9623f112df5a1a6b59bf97e22889f7c073c8d82d097d2caeaebdfe68e110419cac3d0b98f7a4e4dbff0aea9b043e32fbe31ec86f733080027f83e18d348bb46fef810f82e15c14bbe3e96659663711af68bc6991098da4b6bb29c3b9f6908b980ccc866678ab8673f683b7184bcdb9f7716738373e99aa53e445f6037bf78d55a566c9541d9d9420772319b58f42a4616cab00f4c53524a22df23e6cb65b231d8c928454957c9fe74b477e34993c358a7a364e4cd41ad9a19090b9b7ae6300e8b767eb7f614d54b9c1d04c3ace67862029ee8c30dc2a3b4e383c21415228c318e06d556a987b3d254605e9d545b945a06a53f349545fa788e5ffd36d0cee773a5cfc0460346ef0336289115b0176fb6bdcf134c354aa20ffc0a814a4fc7d325a392543d8ffe50f7c0ad2e88a77a3a9c795cf99339bb57d9cd70b832305dcb66edc0f2893bf9370ea36dff69eac7d7fe389927115723c2c4d561e1d81c0af5b50064e5c03cc6bbaad77ff6dbf1e8fb559db02d171b3afe185412b506059db522d9dadb3a49f38d9b9d79f83d256cf36c932074c334df48c6a508166ad752f64f4bb09cf7014650b4988ee94d88a32a622b13252aa64c1a6b384857cb4aea81ea6b2b06188a7c5105cb58f34e6bc43904c6d9f3dfc799f0ee00b23f42d7629bd803da78f5e7639e12a8e641ee684388ebbf04e2126e648b1f494fa4e86d8649e409838a95a73a27f26c2ae9afb24c13927bc9a1d1c83490ffc97a083706d3341325ac2dfd8ce5d01f1165a5e5e6da030cb5ce0e22fcd508bc6bb400b9ee9c7daf671a67395707505be763a869cfd0f50f46763a623ef84db9d2774050438ff22a45f3207d95128107b536575334780e08fc5f399a41ad2f3f6796d34b666b3ba4b247e60123fcbe44d259289f3ef1e594dbb7f0e446a389ced8b4681816f878135dd390c8192a5a8cecc32f22fb1358f1468a18a49b155065c484eb7b794684596ab88a42dd31f743998f67fefe52a86ef9c567db2ebd2d08b7a7e88b19760715b597c8b03a0d31d26c4e6baf4004f7bc3854ed5a37a2653fd2c0fa2a3a81569222c683f1f00ceb9b8766948000929104ae5076637c8c12f92d625f6eac659aa72739f2449f9211f9af74eb3f91380791aed1d86bd716274f981cb4be5378fa9ebe2acf2ba5b4c79425612255ce457b2a226cf077bf044e3ed9bcbc480a0cdc36c5d745e78b9d8b31ee198406033de98c3873f5e14731dbe8b485ab6a10de25297172720d6803fc2d84fd470200f3dfa9f49895da0cebeff4590fec4eb5839aaa6e55efef3fe7ef927d696ce0d49c1df97d78de49430390a2ed05b170dc63d314a5238ec356b788b3c36a8341c2ad161442fa786e5b753f00e41a11b0afc9a237d54042da18fe88a4260cbb69c03e79e05a457dcbbc26e0c001008f8e78386e6560b61072e5c2fbbea41979c102bdac0e674d89487ef22e3c5c9af04123f234ba09872e00975c61e8a0f873e951f107167f129b8a3137ca79406bbfdab55e1e53202d8001102f03b73d44cc895e691a0598e54d658de86f13d216cff1ccfe45829497acdacf5afdc87d6fbe39f939271ffb0587a960b1ad616326b1786a1497f9ae7f0f34156ef6d73fbf65f241217ece6baa2ffed9b6481566bc22abb3ac272d492f3e62b868a75ba8d2f3a009a10eb5c35aa3c510bc5ff46e2c54a5a42a955ea4cdf39d636a946f19ff4f6f935d64d74afca53c6eadee4b88efaff90d335bd1b2a6d1487e1cc2254881077eb2c8b12ea7789b19974d57fd718cf1f514342680ec6472d20907e7d9d87ff674423f67929b2a08943b27b7efe8839400a47272b95bfa655f26de211d4024ae0e79cba0ccd0c60e07003fc9f34696119943c57ddd437607df4669f7b66771ec5c010011e0b4aecf3ff879cdc1e0efdbe450a370a40b4a5a56fe82076fd84e199c81890007147f4009c52dc5160160fff04655d704430724ea8b5d46b6034d3575f67c87dff42b725b0ce7693b9aac22e37a751d5b660dcb51e5c3f23a90fc42187351af14ec72dbc0d4b81d00325aef7d565cef0a04bed5ccea10f36289779b458d7382e338fd6162e57f9c4eb62b80e3606245e18303cda0f8b1f9bc53e84d5fe5a2e3fc48b8ad0b144854ef38d0bc1ca95ba0bf559c4d694f491809edfa3ce4a3c5bf174d8cde2e538cda3e239b8b6230666d213dee004eba87d3d95fdb9f3ef372fb3d9c19d69fc745644c09b98825d11267ae6bcb285ded16cd9b446ebc7cbc734d611c7d31f84f3ef0eae886331a0a5b73a6652db82f6a3e4a7969d00f4b1ddcf1bb12e79ec4445036d375a5aebf15367b83c17e5c35df9bea3f4524b39e0681cccb91a903d4d3500567aed05079d084763d42b806e79cc20921fb301cf755bbc4ef3f57565986fa324d09420ef2016d05b5fca7432810720cb3b4c9f7a28e994db538cd2b0928050b7bd068d0203946b9e5875177008f8aefc9d786b5ba1ae935431ce0685cbf997b34dda63b9afbef30f6f948e65a654de3b59e0a210a16f5777e9b7dd1346f9c4701d3a7f612354cd4eddf66e3d6175fd007108c1ab352e748f7443510439c361d1692a1a259129305341363ec0aa4be93e0fe90daaf4e95c55aa53ecd3c494d6c8f046505975cd3338d76be94b3a3fe0eb6101a62d0e4e3d44f610ab5cc68cc02b92aa8ab59a64b95e8bd9c09076579a1762b1a3ac22b0d2c0363ee0c661629e4d223c3864f02c648f879d806c6c05ebe03296c3645ec0b1b805a73f2231ebe1485d1940b237df4cb69023418e3a76dba07466e717e10109e9e3be4a12504999da4eff685a65cf774a3d0cac3597e23f4523fe6c0901883b696ee0326d636537936a5941f90727fdf1e533f727d85d467a072d73fef7b0a576edbab01f06335a34a0d783f59ce17b4c19aa5fa8ad0b8c21679f3bd74a7316630ff52492b0e5304139f025b90a1ec336c4a62b14ceb88fa25a4ea3b1b0129067330ea6effa641d5e4663a98339bda49418f6ecce4c0dc659b98d3a05922646bfa4867ff24baa10985e6fe2ed12d17b93b74c19434c25c137d9ae8dcd2f1e5af9281ca4f0ff0b82c7de2220cb55c42a0b51030baadba7915632f88db4364a0ccadafbb10615fafed88a7f2a864bacb46028c3025818842d215636439ce56198fb7244f42954b7a1b673ee7c7e02678c9751686ca80a91dac9f126ff9c3fda1002fc88bdcbb59a0f9788f0b0b7629b5862be267472867ba7d04904be95102e6f81aa0bbc215bb6312fff228d2e1721db5d841640cb2fe4e6e6681457aaf2b11b5d4a3ac0aaf250433596eb7478a43922139a488f98831af0ae106775cecbd3600440d111a4a5c691159964dab8209cf918a5ea706e1cce05c5f7004e82413c8c8d55dcd92b6ebc1d14a14ca00747246ec75e937065de1640aae6e65aff7c2cb0126cde7e67952a0b8797a11b21d116886c841a651d5dd84fb8736030f769566f98acca9f52b14181fa8752c56823c4542f180cfe596bde81431c205260fa9e4386bc42e42ae7c2249a71e6f3767b5f440fb6d7f6c00e826168e8e1f853b8c07e9295cabae9fdc2046a9b204708160e31450e44f953284168409602ef7bbff184ea76b226957a00c8462560634dbda589da8d3ff65c237132a86d1cffa967df5be2e51cab6ab0978fa47257629099ef957fd41a9403e457a2985b8bcb3466c49a5225f34285636c5928a384afdd28aae3023a45efc135a9089cb4e8e15c3964c15e3a9e5f706d3095a64ae0d28b9f4b6549e8a08efbb658cddb13b49b82c44145e906ee8b472b9b85e046f941ff7598cc0a9e9904b04fc3a1a3fa343c0ffda28318a8900f5a553bdabdcd032d0316a8a72a90bb9c64ff49bb55fda45c641ea2a970546d3a55bc656ce1328a1efb84e28b9f00c5ad04f16420732a6f6e744ef91beea6404ba35b35157944bc98147a2dcac025d55e6107a026d28e163b34bf4e1ac94cae9d4410723565d95680056ba3c6e0baff0959111ef30d8fbd47cfcf719c6a328476808070a54b3857878acd54c636eb7839517618411f7c8d715fecc490cc508408ce0f4830fbd8b96dc9d4885444548b9d98c37d273b8d396c003fdf154cc862cf561dbb403525ba49e93ac24c2f2443a1fff1e3f399f5d703d84426e60ba0178937c48c21d778c18ae1a28f950d184fe049fc0a911e7b08cb29b0ebb4e817e410288d2efbcf48847e45a96b0142543e2c3d02ea44b457c88df2a03051c05368071102f3a6096bdbfcaa244db073ffe6ed7e7f1bfda0f23fad5bd8e5e68a3a327e5c6f93db04a0441aae37c6acb7feefe254fd3da7c75485ec853f9f30cefa37046a885404e9ed0622bb2eb9965d932bd89602f187ca6a8548341520b0c848a5f996d4a66afd0667dcc0112d3640f5abac00498615489ae0ea2f29c1260ca0d7e020e93d8e61b86517c82af53cc929a4bc98c272dff47528e27855175923f8b30c86c1061cb7c79f201cf98738e83b3b7e237cc0802dc18ea7078a7d4cba6a4ddca071e457a7fe36ff9ddda0c78f691298a7417e1ed3f859558e590d53e5a05ddcc6f610a86f758f87db506ac45c1132a306370c50675e4cb73a1883ff70e5f1e87a56293b32538bd696fbd155a660c5c19b8efbcc8969bc248f8f93c4060b7c8ffc30c661f7c659153de3b89668cff3838e96fae9b75abb96d1a7895be7afcf42a6a2844f1e7db62ce877d3b05eb89d3e041dadc64612850d50c23ca21292e5f277e32882425fdf40ed03ddfe97666299e4e6a5510de9cfea58c3245b6512aebc32e315968cee33392c3ae96bb13eae670d2db50ede7e736bb6eeed5508a4979864e0e392e650809ca1d9b851b7c78bed4a5fa7a93ac138d30a2a8e6a1fcd0cb1185c23e7fa29566c8eea13df9c3ecaa089783deb5cda8a80b6554ddb310895762a5a5b9902602add0850bb52b9719181e7ee66f17ed2342c76246cd84ebf8772922918521c1fd00460261e927cf1fa5ecc088e2c7768033fc23249193f23eeb1625da8c8f793cd1dea3404b1f815292dbe91a04099c0ec3d213fd985834ee9934dc476889ecc9b64adc91a317894c11f172fd4b32da962e6e3d28b97dd80df1f2e32b85978e032fa957d24ae29c4f490b0d0bcc767c23201bb1482438169bbd20270de0ce9973df0a2e75f3e97f8dc48c1973a3af99138cc1ed798de559d81e484e08cfc346756f160c910f68efb92b8c7d2ef62f9dc46b706fe450d891829be244c46f4056d75b1ebb7b2177b03ed6689d7f3dce1e06de0b7486337987e283817eeeda3c929b86de204495466d111d6ef43563ca578baf4bc8a15729e7f0ff462b916484df3f3ca081557b80a16f675a06bb1dda99c704358782e27bf834fa0f7a92c008dd9a592573c1b3a45c6a442f40e52d51b01f1e2447392cf09ed4bf4b922a4b9536f7e3e32e528d84a8de43eb37d6b946ad187f7a8ffab8d89648539cc0cbb6a7adbc5388fd6267d0dffd587665a63fe0c6f4a92eb493409e8a8479141a1de79904fa6bdaf1217614f96f39afbeaab988b91cdea18b1969699eed5829c672d8912267478ba834f00ceb0698b15999bfb342b402c8fb3fc8cc0dd1c9bbfb2b132d39d525688e2e09383484492f92ce9e531458cc619d0570ef962e9af7aa78291c39bb4337c421a05e4ce9b8c7e5714df42cc516550967976ec8dde6396a90e0fe5eb5814916b0adfec3ca0224d95da10230c99fd27d25dd0b78634658aa8e711ddb43285eb8a2d4448c6961d1512c4a3cff58901f9f366a99f64a6d56edbb95fea0972ae4334f454d2b28dac307e87442ac18548ce6bac5f46318199485cdd4f53b239a93aee31be2d9ade3ed32704f60d951240b42f7f4e0bbe091317f817662b6a3ee874ba7d1797a6e91753789808c250de3ed0032396b6695935fc543c93e14c92ef25ff9526c7e1c58d908be318a9a0ab1f7eb4cb792a63a36bad3c61455912393ac88ad05c5ee493159979267930ab7bfddb7f12ee2047dc74435f2c32bbbc9b5fcfbb2381fc05c278a7145f38e93c78c1fd30227af4868b9e2b39f82dc2263d4fac266e0853d055f15e68fd9c8c580eeb675344e1cb66533eddfab6df03a3b73e5422c50215e1449697c3c5b3940bdf0d9d688724ed7d9ba2cfa1d541d2fd8b2c8d2dd75a341ca4a4bc544b8058bd9c02fd46612dea67bcbccb4372b2fe4ace0ef0d6bbc959c99cb3fb2f7caade6baf96cee86194c9c12027a6bdf9027cae1c22b42e16b5ebb29df4c93dc12d8c691574940ad8f7adec5b972a8ab6743f94e580702fbee4058b20d475d05e45278255fa84d5f0fe927ede5c77a3346674b070c527446bf9ad73e2e67aba7cfd29435dd17e426bb283c0acfd0a3b2b1549470410d6546a08476aea02698ac05224176caac7c108d11105d48b98111e883aba3e02600307a2b6ec5abf561a0b2c1b7e71531f3b13bf0857554d7b947e6ae395a8d3c73149cc0fd10e21fc82a3fc6893793673477bc24d038bf4dcd5de33124b29aaf7af802d1ac4c43e200436d1069333b64c42f30f32e610787d92cdb5188144dc2faf6d38fef9b2618473465000e0f4c648b35b867ddddeac73b450694826a7afb5bd12df00d11c968b3a5e6dc0c72221c9326eadc3822cb29b5d121c2e39dcdf2cd0ba3beddcf4383f5340e3e6e64c7a641c6b04b5c21d92c7f978c25fd258cfe47e1d4bebad3c69c5c43db7ebe09428ee14a579ee1bdd2ce859056aa76b4ab8cf71b2cc854860717cd859a1b2f7bb164ea0eb9496c4d37480d99f7246f9925159d82a531dbb8d1d440eb3dcdce6e75ac00b81f75988d05ae47fc0ad68b42c9c703d6dd086816b2f75296dbf143b7807fd8752143dc1f5a34f94668ec832c6a0f4ac879eac630d97b37eb4b0851b3d327872c35cd9ac2ef351ae7eb68eccbe77b3be3f96c558f27042b550d1e0487794f67d626e3dfa4de53f9bd0863dc5f367c158614275b75a333d778a88c2ee6de3ff1265764e5e3930056f33c2346e029d134b1982c3f0454e6e9b4292710d7891f5c676d11e1a1dca12c8153c443026233a03e1f1213feec7de407465ca5880b412117fdc7916286a1441cb8f8aa985a66b25b5eb6de62e28fbb2392342b161e1039f95097cbbe3f814e3f55e10daa50d6b72112f96e29e1559bd3358fd7090b7d8d630ca6cca54da4a9cf0180bb1c4121c0b37fe931b15fc40a729591ff3bcb1d3c9be8a81d6bf0c31cee39139a8b01d388de63f5d4859f2da8e8c080f6db34a60829aaa308519f873c61ed2c70ea2d6fd22987743953687e73762efc0d30e228ac785303cd15d80a22742d31908af5759477b1648b2d37cd62b1803599fe31f8720a36cb0ec9a82bc164dd55b2b6e6395a14fcd11e14ad657e5f5a929d61c59ddaa983c3512232d49a9830fce923c6bcfd8cd8e218710dd8ff58b1a1b8a66b48a57ea855e21814d0ec786e12b365f39d74cc52d5ec8b696e5d6d9514a949cb1f82fef0a92f2535c5ba25cd845dc963a0c61992ab03035f7a708b8e444548ff749b7b3ac60a7ea274c308f6924d6c627b8798544bf12a8ed6b66394a1406cdfef504c6d449cfb80754bc6ac7ce8cb2e8257327f85b320467385ec1b7a54c3997c098286add7f5b54f2383f71e7a2d8ceeb2f6a613b6d2f66b5555214645b8d1ac5d0574349dc89cde1b0990eae01895e6aaa3bf75e20463ed59de5dc7da3ff52ae0458877969f547cc2ea039424d24eaa13d265b9eef0d2b60380e69a5fe06eabe752ca60ec3b469fe35638b6ecebf8b1607078d48145246cf68d25c9fc1671cb81c40049dfa77ac151d3544d30152e626a6f5c37b66202a094a448face79db9e78ff5ce0dfcdd33b7ed4342c0e91dba65a610671e6f748bef2839c72c55a24b470b9e2030914aeb61c0009b6bc83b189b27b40b3974979c801a7bf7c5e92b6cab4de3e482242a54c205c017d904f577659f3fb64149e9e8edb50f1150299fddcb0e6eda03e125509227af9286e0264e0118101b88183b0e7b186548999003c98b87700987eb323819d37355c747e1e918694ffcd7a7ffa913550005bd46f84e37b414ea386d4db5f115f53e6a62506a59cb20d7375b3807a2b4db447f19e5458225837c2369da3642c6e55000063613a1febd1c9a7b50fd93b0bd67523e497dbc5120287902373337762c5c1c437d60948cfff2ae7ed7f255db075685081a2d543689d662a1f393c717f8dff3c0526b863642f04e7a80d5e686a64762231ee8ece45ce3d0b47add207c97f359930a1ebeec7f7bdba1dac748ad55a555383c9be3ba8ad3eeb047bbb0bcfcd8588883b6d4dafb71e70c64968eb830f0ac87a3de3ad06c6fa06c9428943e8c34a5249539b576ad5cfb90d1de10d74ab2091a11f26d7770ca1787d3d6b2b09bad45a420215b9b0b06aa795743e3506ffd78859a8d8f87992d1ab703d756c8d577850a3b93bdb528b3aa6e2367110c7c60c4504c1e5e76d654693f7540ce460f60ed0aa959cea694b7079d8f9f8d638adb0992bf9f249e20d1add7fb4679685167cf56f274075a93d880152504ccc50112662478f4acd6cd3beb8d5744a261b4d62c96d728851361e6008c4927ae7b2f01cce9ca4ff4fb89dc3e0fe4a09dfa9cebcf3a3c5dfa3791c7602c7cdd0fa9fecae6ad6f81bb7909a00909672844e82e5429078e583afc294e3ea6651c66c649f7f2365c6f890899221f0f36833ae86543b72e2c9e4269fe5b1429012f759c9f55876a0125aa527f0cf78e9470a7562f333fad1f41b39fa99de9f535de60debfd4067b59b347c8b7b36dd1473ada7a4ef09b6294beb99901ce24162e068e105f44c83d0dfd905f8e3425b0842858de21177c9caec7d2ebc7098689d81db53fc3c9798ac522137f1bd02a64a9006b2f809d6d75c0b95dfcfa942abc729e5cbc4a0f3ac01100d617223838e8ed49e09602c74b5db0f9c71256b8a6b68c60d1bb20ca7345bc7cfd19704e66e228563e917917104739b22c6fc5293998717da2cbe603d255744d0e14064c4e3b470e4c9af66108382b72226a08bf0b4ac05f0eb70d91c7cf811e11b124033db7dc11649c7f62e06ef0ec11ee55af030bab50b89d893d26dcab0ede1d8affadee11f1dc1f8da382ea55532307e06b4d4d5609497d3afdfacdc0e99d2e6d456c5c9ff8e2278933d4ac9885a85200d50324eeefc3f86ff1b44eefe244ba01f8c9ece25d08081507030c441528a0853e8810a5e1ff3d27221cc38bfb0ded93d8080bca57c88e1c9aa3af6f01e48a0e9a072121a6e593a17a5ca6279fb0e20f7647a22bfae9cce60ad95476feee008adb6c06fc235f1b23964116c6ea0aa84af7972f2ce2a0deecc39429568ea10a8c1da83a000068735b43dce9833edd7996d06cf7bbc6fff3043abb89e5e94e0cc51d8c35775d2225f12466a67eb32d00aea67351b80463b0750a0e59ab447dd97d8ef4c95005770e3dd23986189a03543503566ea4d7bf95f6ec3f272722b2908ca280352f077b51bfc8d60bc8613b63db957a6525000a7c891eec81b0023d12e3f60c1440df04cc1d5a16e08c3867275b0445330381f4f53b8969a69451f3903f160c716dc43dd7c7164e04de6b51bd6c71d99b529fc302daf1e85717711f0e754ce2c9b3c440625a64269e7b2f825313c04c8c114c568e607b236bb11c91048bcfd9d71991aef27539e0161c1f29b2bf784232bf40acac3cd176d5ea688503e0cc44a9b4da50c0d56ce8b091131bba8f669491d2cee92a900e8f1b9e13543b9161f9c024dd03381a8fec8fb81a63821fecf11930c4b715f2438d1db00acf7140f40b91849b69667c50d775ed949c47bf22d5255278273d28b870c71963f7257ca30019cb044274dade25507351985280c73bdcc38b9d0b38f3d0e745368afe2bbd52b785bdb4439fc0e2d68ae712def5a62428f6394181f7cd5dc668bce7a87872207edc739d80f3851edd1e5670e7e4aa05e304b88b2d4eafcf38e859ef869015b3ae1c18c6abb5d5d4fb57ffcad606f6affdacb957458ea8515455562f7adbc87d96b3850fe7ae27dec8d5dc9b15de84f6037ac195e4c2b66c56faff3fc8439efce4051e2f1b4da31b0d5b747c8540b6b12485e44ee019020ff1fa9a7a8610ef7fa003041b2eb5a9b30de26113cf9941209e9dea211dd4519f7f37523c84dfd6f0b29b5e9b2e235a68c450de117918309af5be2730bc1df203f189b42312f93072571411f5bd4f2daf648d3efa4cb4cb2f7e7d2ec9ca0aa2527146c25bfc39215c45cd7a917b57e8e2c422c8c555c2d80a6db7f7fed4dcb42d3a6317dc7349076b2690665086c91d24624a427359fdb7fbc4f3742e0ef45d8c81748505a48ba2d0d9fd55eafceb46989c85b0d4b8a1bf80e1935c99a9961bf1cc2d8c0f901276c7e17559b8c019885b6f8f1bc04b1a0b44adeddfabad016be29a2b43b2f0b3412d38aba863d6a15dcb02c46f2487b7916c8a3d79a467dcfd67582799efb2d772fc21b55cc16e7725cfdf58db1afbdef35c6665358806bfc104bee6789f303241373b868582f154768ead5b6d6b5ae6fac8ba151bff2b4c6deadbdcc23c7599aa674528056b58600741af6b082483fdbc3c413089205662656cbb4fc8c3c8f676cd4df7e64f5ab30f23fa175f28f33e621feab89f37aa2fb4ef9892d877ff5d5136202c922f9e900ef0767fd67387b8b0e8c73099bba4fba8f9fb2353700ab9ae02255de4867ff2fd8d78a6c8ef28055155a48dd9b04c8d78321951ccbc44b1ca8bc604fdb170c33741ebe9e4086eb9c5c51eff8a6441395f4fcd1b0543640a59bf3e26010829148987dc61524e1998cd6c51184762367bb4f7d274029170ed33b00b1f2141024e82ade618afb9216ae00479f5223ece3afe3b90740fc57128dfc6c36c7565c8288dc5cd47229616b37048080bfdcf58529806547a8780a25879758ca6d936eed3d948015b1ef08ce208e27790cfe62eba787fa73e8724b5bbd50cd697fd50b5feb1c21ebc973dd11136456662057c192e508d662ec988b8b12e0decda693cc9c6e105e6419ecf7dfd4b0dc47147927b629059861fa6b028954e2595ab24c18adee4d16c2b0632bf51b226387bbb98788a2063e1c6d2164a6dda7ddf0c3c0434e356795d3c70e391b98c11d34aa36929b6c5c0128c40f15347d679ab61a86c3f75a2322eb740b95fad84cd62e559a0bdce2184b6f8a453d242b5abc4d4eff38163617fbf931ea32493ba3cf29bc5d23b5d3913a07fca2f5b12a484eae723f4fe4da3a1e54b34bc1e6667c96b3fab64de002ca9e4ad05f0077cc9923e9ece2ac56558d254373b0456c36f302d6b492c2bd7b56e7ff83ef45ebc9b3e64effad4169f0d3bc139f707946953f139f845a196f748ba6ed473f9087d3847ec4ea63009a9674eb788338f590e77e3a1303c3ed915dd582ad40e5cf69bf3dfb2f3b9670360a8695845b3918ec1ab29da9cb5c6100985a0c2952b30fb7c282fde25231511cae351dccd18e9b202dc9c45006ead3818bd538eb0ec31e22b14f383a812c9b82f2b76c7aca526e5d966c7b21c3c4e76a62d0a96845248985f72aa7d41a3d1fe6506b44cbabe6a0ccea8b2fcfa0f331f6f85568f8c2264d467e63401929a838d9397efdb74bdec6540fc004354317ce40413e19a946ef98cf42de95d218082a9f3de9dd88cd691fed9d29ace8e92123932408a17a8c02a09e59268052d305a1c6f99e37416e41271e1164ebf9d39b6e80936c0b0e279f6ad513197b57cb7f2f748b4813f6f8f423b80800c66dfc3c5e8002ac742deba035f8b31b603de5fe308f0a28586612e8052a3ab90aa49b28fbe98072789fc009e5dbf8120f75cf589e5b5f783d80ed36f834f056a284723e37b345e41529d56a040195a25d76ab801267bfcc9dd332a3a7ee1bf434a3a297980101698bf8905a99c1b284439d105222c8b079fdb803738f60c490a2e6c5bb1d037f13cb8d4d646a9981d49a895a230292e546c2acd6dd64f905e065d8418a934a7c7763780e0e9c16a3318f3bb8102470dac66d644a7a29a4193e9c6b51974557a44b4fd1a141861d2eb23c247297fe00d2a0643826aa0856bc656a426a837435486cae233c2a326dfcffe8f9a5697df641c04f1f22c0575bb34b6d425255bb06a6382b3b8c4024cba380482659f3ea38102770c66e025724be863204407e59ad5e83a7738ed71d3a0e48d9a1d751b57145c2669761e210d367684439c883a38878d0b67244709fcf05de1cbc1cba4d24aa8c459915f83c26848e6775f43d29aa6e5c131c437d0650d01772dee6092b5ccab970fb7c121a3c129d638db201a6d36717712d4f05c1d1a74f8041f8664f8aaa7bd2d5221078b98faaf73238498cb28dc05f8cff9a408ae38013f5faccffcbc413e81b2788697f8ecc84f72a43a4aa00fcfada78142f9ee48f53d7ab452ac937a5fa1806cea90ed615e170ec91072c66d3d182b343c9fc216b64c0f8ab8517b2dd13d654658772de94540886d2debdfc0247423052b4fe193a48c7df8786ca6fafa6cad0e1e9ac5e1730d80982285a019e5acdbab495bede19270cd3d2d37858461141be66811e9074a9a36dcb4bfe2a979f30ebaf71a58649e65aa18f18b22589c5f74794d7e6d0cbc0120763da95e6a1e28ff1d46ec7e6b488670776034069bf3734b7987cfcb5c0ef091bfb3e935a2f9d2041fe39d659a12e9e98ee9762ddb7ac463279deed3bd9f9c1a140f82063c44e32f1c7a9ad03d2817251565c9a46794b70cc53cb87457401f469023149f9e5544ca3d948e660f075fbd554e2a711c284757179d82ae0151eeb9f424827f674c52bcfc0ed349347299ee3997decd67a4321d36db85e6385d19d26139619554101dc828a13b0cdf5b366b4cee72134320af1f6670e830e9c2902f48650c5e01b16231b7da527a333b5b38fc986d6f9a371a77dd4d84938926975cd250054c207ce1c23883d202007cad69fe8ccacbebf487857c6ccc94e502942f88db635850eaec1c2a9accce8186953f80c46940d56bc3972ae0e03fc6a2909ed4f2607dffc1458020dad2a80401cb98f60a030eb7fc1d368f12f5369c04efad8016afa81f1d4748ec701ae00b79699df05eeecd91732d6c90ffe251c6913af1017326b5cd10e106e5e5ac011c8fc7d88095029433c4998765b9011fd095f6c91f48145ebd0a1d6d76ece69445a35041b1d2d0613f44dd118a1c5f8edd26c8f9c806ac59cef7e6e7e86e0c4407dd2c723d32b4a8b4f707b3f4e5bf0b6c2f2e1d71cd502985171071d3592bce3857a1a01bf2087c9b4833b6916121b429f20e1a9a4df9465ec01e9f6a4bbc445715fef67932e73d5d8925310e10736328041e7e73e7c7b2e33e5192a3e35746203f4aec91ec35a6aa7d89f4637a7e2b8d6b7700ded089aa5831fc1a97f833fd921c72548070452c10d43faa36151ef563ac7652e4af61a5efaad1c8963a897100b4f06e71ee3ec542ad29556193528a27bc63a04052b7d1ea2cddc4005459572b34dc44f3b542e2614e8949cf133abd8a7cad63fab84635d2d8d34c6563a110180bb1c18017d3b5a789c2bd31c97ec85df86b18f7eb9c728318023f51ceec074389f973316defc73b77ca22156a325ba96e15d4154f6294f0bd79ee725093a4e38f509474296d7a72ac9e00c94e785e514d17b5e711a377e62f60f4a639874267ffe0b1587efb459684fc51c03db0a395056ce58a623a60014726a22ad6141521824a79ecfa3023e2d56dfd4e09ab9af983e8f2b258887889ee10ba625b00fe57f5d5847a66846ad0e49a4bf82bc7e153025f935de0c1547ca28b468338671482161193f5cf7749d13612f91d81758809f08254992f89f2fe23905508c37a57331c2f160a3784dbb2b067a04843a357c0764a083f752b565f805049cc6ef08d91fa2860798f70e6474e7913736d4041f531240e3022a8f3a02343f065374b82017eb236fde2be883988db66aeb432598000728e2fa92360456ebcc54905d26673fd6ff0a8e5f9e9b4af5587e06649c2eec6b8cea42fc816afd38b77d9748e2dfaee733a6522bc400071789b62b9408612858b163943b78038724e4a73cb3a059bc0bdb623ad0a8a650048806a13c119a29dc622eb92c1f9879848a4134d8359e2056231e620d44ad81d33a50b05681960f2821d3e0fdc262ba6cde7571c112d11e334ed4302935507ed0a657f96f338b4fd3212224dfefb9e537c1940badb6fd1a32fa806b1bba8871dd7422b52182f881342accfe60175055992545084520afdf856d004058ffc0ac02f296567033ac814133611e237b17fd30067c1165458a1113fa6ae569d65afff545333b6efe28ee40feffef8e8464c6bdf622f5da80d5b2727b5d610be09444068f19265c7a43cee82548813018b1924573baab92f185bd1e9c5a2f66b0f8d72bb3a1b28a9a31b399e68b2b72aaec12fa07bbf367ddb06d794da28fb6d9d3f6ccefbefd8ee08a11a947c033a9ed285572094aa9a0e19f68d170b3e4ed1fcfeb12cda42657ba308f79fc6240aacbc065de43b037db44f00798880632279c7d03b5f0d004667c96f73b9e6aba91741229e3499ca71987d18560c8b261393d6f6cab6a5dc52ca94525c0809088c084353f40c4dd1c3f48a962406c802ad47f3d18cc8362d893a37cd05b0159d6e1a12f6a3334e139dd59a4983426362ada8604351c0013be23524c5134099b7a04708ff91810788d4026a75efd82e039c03ce313303a143335229bfa2f22b2a166bfa58181ffa9588a452fdfc5cf12b3ce01c42700ea12b10e65790fc8a23a5520d1b5e698751f02b7ea5875fe9e1f2ba9c838bae4c9f6de3beee633fd0448dd9cfefefbe1c366f26643f97d2cf1ef6b18850fa369452d84330544a58226210572e8564303c43158765e3528a844b7908973e8b6a74833118ebb86ddbc671bf6d9ba669dab67126931128438d388bc2188c51ed4b51367bb967676ddf8ebbfdb63d128edbb66ddbb6ed6d20c7fdc6f2dc76e2369369e79efab46daf6ddbf6df8df636b0545f2b9dba23f05e8e4661218c6bb6a7db7fdcd7d7be370f076efbd2674076f342d03d307669e94b5f4b31984d2d75d94fb581d19d5fe70cbf1396affc7635d19cdf4173cef916e0215cc377ce67a672e7dbc039670a869838964a6f32996aadd564ea4add0ef2d2ed72d1fc214ed377d6dfdee47d14034e537fce2f7d3baee94da6d3e94da62f954c2693c964323d3bcb744fa53759fb25135732d1dadcc93399be9a4ca6377dd54e9ba9d3be6e47e0dd9eaf96b51115839971e8a674ce3977e82e4613c37e6d7ab7a917d54c8cf7b5fea78a2cde10d87aab7ad64c8cf7cdc078df0c8bf52edf3114747be2f91914dc3385ef5936bd14a5b453dd97ba1f17a54a1cbb31874fbb997936ce628f7aec2fb853616909b54f843ea55913f6eb1ea422495d471e03f71e488ff8490ca73e9a31c24894fe03a15cf53efa5f0cf4e71cb68af791f7592b973e9fbc8fd2af3305dd03698cd603fbdd035b7d047b4e7c7d7b0821df3e8294363cfdd6f5aded2ccfa7d3c98bce9a6fe3b5fee974da36575d96afdd0ef23a7deb35140a93588a03ed244eb33da55f9f9d75fa76987ae0b9a74772ed9f4e5fbbaffec07a307aedfcdc93cd3dfde96d60e56ae5b2b07cb561ded3bcd5fbfa9ebc1d248ba94dd6fb74aefd53b775d0efe9bf9bad64bb233a972bfdc6fd117839aee35beab8e3413d1c3cc87406ecc2a79463b1980b112928010019f8a8c18565dc0f1a714d47e183415cb8832b0888e34248e542342e3c0328e84208a1dc6416bb49df99065ab970a8549091b228ecd73e465c5392a5d2fb6740b6245f3b729a8f918c388de6f306d4b4070c71168c1d8eb34a49f663dd2a846dae08fb8039452a0aacdf0f1ef943389c465ef8ceddf8ebb2606b853399f50067c1a3a00b5f2e6171688047b08ac32308c7856fb5ebffa958fc331884158eeae32c4ec279fc65e5e52f6eaf939c4883bba7792ebff3344fbfac20d9c159ecd28a937664b91942d83776c9fbe2851107f7fc26a58a9e082808b5df03cd3cfcd8652f2008893c1653c1225804a45259485ff789fda0901c361ef3f3733f6b548ac1fdb22458f4b5085df82d3d1a9dd628c6c17488f7b3464aeec7c1ec11d807fcee2c1afcc3887dbcec678df83b1dd1f9cdfab82de0f5825b1bcb08350ccd3ffae1431c30e4023ef307c3b850495f9643f7e32187bb522fad09587733c78ebe8aafdb0f6b60d8edbb39cd0eac7fa54158ff7804ebfff1b8fdd18af5e7814520cce5b06be30e99e8ee18dddd230f86791077c2dd819c58e22c251c83a2294fa27b3177df41f61367711467b190b398fe307fe0caa8cca38b6cbd82ebdf49fa879780942419812d081f7e2d025bd0357fb045203783fc9503220ed1597c1ba679f088fa58dab0240d433be91ffe4e682c3a424a9a723f0807447256950eb69386015259837d7811876e12d22ecdd3e9c145bd4824c51174d7118ec2cd3e7bf8b28b3799cf651624cca654e651b1b01fe5c95ebe8d671f7fc795752bf65612f0979fe32f9f5f7a3a4cd8cb811f3d1df9f075b2f7df714521dddf130bed6547bf3abb9ba09842da35e77f43199e2e55bb07616261fd2bbb78faf96dfcfd5d339205eff6f578fab0b5b90c2c5111f96ef3a394524a29a59452d237dd99a3e39f7de6319469cfd1d1f1a750467a2bf94d3f3b1373507bdb5e3bf1fbcbcc3d4c74e98532ba7fe6ad184a0a833e5507fbbafd4534ca5f51da57921174a54c0126c900ba52ca9394d1880c2ea4890c24481aa51457be4b9cec552b211985b274a391c75175d85e7e4b3e58e8affa7fe8e5cc67c8fea30d69a39cca791df35639a5cd6b220ffaecb884c4d2db787d4dbe7339b57a129a3e58f2545026d6a26628135739f3e9d18e0b7e0cb65672257d25ddd60e963aa804fa4824bcaecddcd0b4aa21fbfa336f4577ae7c817de7212f5e5d049d601df67a5d1844b518a3ca18698c9186eb8b310097bb20838b317ce0666cb145e3a0934c208c239400441b4b84008b8289073181a78d2714010a6048016a42092c2a99e8f57a05313534946868fc686800696804696808b1a0120e8424e0104fbe80622831030916ecbc700085276314410a2420289848fa816d2065d90f7409478c7046114424010e2b86e04f0c4171849784b021f6c6101336d87042912bab811c2d78c1e4ec263871197e42a35829aa299f06abca4c13e070993961726b43d3344dd368510b200cca30e5f174c9b39ec77f6c3205c3a00cd32d084e7dbe91f04142896dc11a4ff0e20a2735404114aeb4e1c40a86e8a2c78d883c9402a49ed29c499c70a71134badcc59113465a154e8ae30a2588604209d85113403ecc39a71151a411522c0a05488aa6780274a5a849cc6930c402293f93a5118324d08008594071c11a6aac80891f2634c13f59060329455996f9128c344712455da440881f1cfdac60be60c808263c7106127e982c41841f986559f6c6cda8e828442f33f9524a29a5944034711976f2248a14171053be9042f4f37abd52d0dcc51951883214c480064b88e818f479bd5e2ee0a1d7928ed9154c1608a9665eaf171073ce9904e6321c732521523dc11c1e63749a78fb339efe2c2873e2ad6ec287879614ddce7a6ebbbecf806e0371792ca2532c1a2a23fc11388d162288d37cfee4f6b72be1f67774e2f677fce20bae89df1f7b4bede0d103480c1e743f8e72bb8afbb11469248fa2134ef35920a08e4011885d09300689fce8a31e73a298c75a08aed1746057383bae154ee9b51e3f722428d34ff3b123f51ff99144c27e8c7160035ca3e52046035ca3e5c062c08f86c4588cc5283149f24429318ddb11e976b4727b66317bdd247ee4473cdd9d1151f84349f7f242ba31030447329594ce9e32e5cd2c9640aeb0d72de0af52e2e32b5c6ff958b8fedfea3aec7a38cb9f5f5eff1ca276f273f2860d4d5104966cbf1e409cc6a9702673552ae1e424c1803bcff59246393a6772a685dc7b388d0e5fc1c65742e0c787d996456d8eedac9f72581abbbbbbbbbb59cf4395b24353f858a4257073b3e56ea25869ee19285587783fdafed9c7812d1bd319f663221ca7e9e0cd719acd7de39be3343af4f5e843cf33f2017eb6fabb77b653b5616d165b15b1b85132c1fe5ff6a2bd3c3485cfb56ed8f73eeb72887883b3a2c7ef2831728c2d51476489a7181956613afaaa4e7b1d9dfd960ef5a7ae3e4b577a53c77dd6a54e261ae247221a622cd21e91976feec6e535da0de896e6ede032f1238d8d14841bbf7a8cd1aa9e05618ca97944be8b7dfa3ca8d7debd55cac3c9e2d3f812334ab567f17450afbd8ea531fa6bbfe3a2ddcabdf796df71b9ac5c5c526f6487a01bbf7f7a89b75e7e749c8687a400dd1839c927488beb53860feed74edce8921a2a03e8c69504e66cf174587ebee6e998501d0fa6a76f3b1e98e498ecd3e781457b216ef26437017699be9edae4f1f070f3657c245026d2f85a297e8dbfc5e722bb628cb007d38e4793193e65caebd5433404caf828f969a00e128265ffd2d177e9ac4471a72146438c5eee213182d4f2a678011ed3cb08f1c56a10f9f07a1171a8f929fa3cd95bcec341cdd32a4e1616caf4f3734c3fdf7f66cfe2e9588fb9d7a15efc18f671ecf43111e7718f8f921fa02021d8eb2577ba07bae3198da365d69d0cb29b4d6cc7670e279b3e3d0c1479d10ce418254ad11022b0e502f4f352d452942ab245a8a222aee8a593efd2993ed5d16fe9e6a3bad2db4e7baedb3eebaab3bc8da7b8984d6c48f43ad630984bb205d8077ce786b00ff8454c7878e8cbe7996f7ac8bd347df4be67addccb58a869bee9775c57580df01087419c2543c3909d5ec77a272f473e0ecfc6537afaf388935e3d3e4a86740fa51d8fdb0b9e388d2b31e2d3456dd4479d04555df6f35d3afa5c677feb505f3b16e656d1c6551dbbaa912423491d6ba1202c3a963d194c634ed3455488d0b8f0936a2a731dba95791da5634ef0fec11b0cf6d1517458c592f6a7f7d3f7e91fb69898b29fcf239fbe7babe8e194b487506adb6b9f93bdf6fe9afccdd3999ffd8eeb6369f4058db474fdd33e50468514eb98112bd63167c18781f56e627ae8a42281adece11be997f6f0bb5d4620841036d0c99b00bb4c5d242a323a424af29e8ec51dcf4c4518c1660cc0ef29b0d52e150c662304f39f553d8b8591603ad4ab3afb2f9dcb731dfd134b364ddcc9460816b389192132a4484e2c6ccb3377937a1bcf5cddcabc1d9078e0836fe68891edd994c9f777fff84c522e8f7a1efaf6dd5b993c9cece1cf486fe5fff23bae16effb8bfaf939a89faf03758254ab8cb0437ced03bd33d7c448a6af708b542cbc37dc3ac2325ce31f218bd1afcb4a70cf08fb805f6a8145bd7d661f2dcff2a74ffdc748dccd0a4787490e75919e8e5ce1ccf9129de53a4c747839f65f3c1dead9d771f15611f5a996ec512f247b94c703939cd3cbe781c5cb3cebf170f2584624af1e1f253f404146282341d7769c9e94f09c24dbef1026082ce63fabe33f95eabf67a1fe6ba14e3e4c375fd5995e4777fa966e15b9d2d3faa86e7be6562c361ed3b10ba663574bc72e541018a4bd2138a96feec63e3b4db7e6734db7a6a7e3d21ba2891e3b2b8907dc09d8077ce690b00f376c7fc7cc27d8fe8610c219a8c38abe10f8862b3ba283ffc31613eb1d9900bb78784c2f9fe7f4f3dd5bb17838f4b36782c37de6ad3ce5516fe59ebb97331fe5e99c7ebe8ee99bf954f3719c95d34d99a17471ec7f5ce186d33078cf852b9cec27c0aecc5bb910f846cdb648b3a79f933d357df6eee5a04e8ffa1d9744bdede475ee8803fab2fc04d825df71a48d0149079fa5b3b15e90202ecf80d20dc23ee0472ad66f5612c85ebe10d44f961c56fed3addc63975cc21a61f18abcf030946159e1acf8e640385c2b9f9f237f7a3a4c5cbe7b3954c7eeb86c172f852df9a94ffd4b47bb6d2581f9f273e64b4f87897d9d96b79e477f3e0f2d1e4319e9ada290f9288f07ea319461f1d85bc5557c76cd3775abe8f1f06ccf537a1efad9f3d4e7d19e6752d82f28036707abd0851589a59cd4ff512258773cb337d8297dce97eaeb947ec70d1ffb2b969fbd90d2578f87faa5cf3c1eb2e7a1f4d25bb1070564575772b8d234daddddddddddfd1a9d0d6567678038cb593d9ec4e07e568beb1d9940a4e32cd54d7256f757ce529472512b95b81bafdb56bb963a09fbe88f9d44760fffe7302020d802d480c161e588a13df1fdbb6f07f3e436f6d1513ad9a35b89bba9159a4a5d82a68d7db4469d6543c729e7cc20d0cc2403092d811cbbfd04e6423d4e9ce69f44e1469c663503bcde8f04c62e3aab08fb3d3adcc497de7d3b89b76027d140b7bb3b0d8739cde7404f5a5e77d8defd0ee434347f9bc88a5199877db992928607f023711a1e6fc11c27979fd36019a18d0cfccc39e0e41d901967318be62f7b6183cb43e0e27eb47d943034854f1daa0bb0d1ad1660abf7c42ecb82e9b674cd05cbcc4f75ad05cbcc77e9ba8aaea96017e6f79236c00bf3511d4f7fc12ecc470175d9373df79ebb2c9d9e61abc8cb2138d012d885e08ec29d3cbe8f5a0d1a989fef401f000078cec32bf22cfc0dfd633e14e2067b09ecc27c53d76cb001e6735d53e117e6d3f03198aeab386b7e911b1a86a6c23fa6f458989ee7adc13ee63ba771e76b9d5fcf003eb6ad63202d6c7d7bbcf063db3af74133b36d1d6c818b5f5b2e6c9bbdb6e3f1fa0717bf06d9b8657aee29b865f2ba0a16777e0db2d18ebbdc7cd37c3b9f653e0b5d498afdfa0806c24007aa81cd60e0b360cb81a83b10752018e879cd345cfcfa2fd4d470353535352d702f14a0002dd4bc50a3420a29d4946a686a6a4a35a5fec2f4d5507aade352e7b722e085ed575021851dab1820204fd32ed7a974bc5497540b8a29cc733d9c357f5ad3371518cf63b95f5302744d809600fb2618e07f2c975b5a6e157f613eec987fb8506990ee4cbaf31534398ee3388ee3a68dcf1f58af2e6c1e7713bfd4c55b0bb095ba55fcd48db706d936ee267eb55ba98bf7c435d12572d9525c8bb1002adc6b7c57711a98ffbc871b88853e3a7da70badf44fef5b41a563b6e7b977fa5e5eaed6f985e92011157723430b84107a9f4d0c5783df5287daf9d9c1d500af6bd3babeb62b752cd7c4b2023c69daa69db6ed614ca00277a375a76bbbed4d2693c96432994c1e6599ed39e6f15436b75b6da56ebbb6e371f99a7a53cb5b96ea624ad9161614cc74638e3b9f07c3782cdcadd4956eaae3f9efbea5e351e15778978e67c7a7f0a88e278647c7abded4f1d47f79968e27f52ecf753ca86ff97aea46d037f3c17e7d74749475bf820a29ec58c53cd7a93a1ddd4b574d2693e95dba94b5d67e4b87ea585858589ec52c5d536199f9b6731fee7c53a7c96cdec72200ae8fd8c7fcf903eb471a03eea665e0654305ee1600ae06bf0cd806c0b514076457ebfaf668c0b675d913f6eb23a03e6aa0f9733e0bb64c9f2d025b26afd96099f9f3fbc80317febc72671c77ce9d0ba7082e9c26b8d0fb76907793b705ee66f32804caf801bcd5862ddedab1abdac03519ec038793001914d8eaaae3ed5b23b0ddf418ec437e8d59c5704ccc16131313a303654355bdc4a8b0c2772e312cb0c0c0c0c4ccac637694522d261a738a39c568315c4c4c841e635b0ed35782eb5ebcdabc4e4477ba072d6a1d7b827684704e66662a67f7e5b0c14c16895be4c0ddf03394314a482f732ba39342199f9021840d21ece2ed8e90e1e6c344ec5a0c419c69909fed3a19803837e32cff9928670a6c0f164b66991096c77f36e50ed5a43165e9c6dd0f5bdbd8e6085adaee94359278ddee7ed8251a049d919984518b51b3c2d2cb4343641059eef2d0d013a4a12d7ea80a15f8b3da886564d8d3e5a1a11fa3219fa11e4a672679b07a3c0fa3fbfd8c04a33233333b77b75f7eeeeece9099598ba34f5a1c2cb349a5793ab134ccc8b4b478302c034fb774db53b10f777715d7942e3cb2f0d618238762894796fea7e21cd0777b8afaf92c6fdfc61fd09d4cdc064b9d953b3d1aa8b01fc36c6480d0c75941d6b5217e6e3d71e90809b68ac8a0c90b094690f24ac3e57e83ebefaf32aebff3384dc995749316622a4266c061842547543187cb5d88a88debdf529c66e60c21d25bc44163bafe4874a61773982185133d908118452ed7e2faf7cf0e6813c119d8ea5e445441e5081c60a184cbb3c88112955640c912284c604103308c5c6e032745d8aeeb208e1b63fcc8c51237f6e0462ed8b831ca0d6876dc446618e6945b7f7237f5aac4b8a52f7dc6dd945a8666edb851396b0afba9623e95ca4807405cfaf4257743df69bef8aa8fbfe39de63f9a839f3b99066574899a688d2b0770e53b7723e115fbb5511bb558afd7eb07d8eb4561ab91909c4c7121fc4681eaf6cfa57053523dd27b79688a356e77510aeba03a3a7631d730aba50006d8c035f2e14b805bf4a32dffb980facf00f63f7bfaef00a6ff60b81086fa1f77e1c5c7605cc861d033188d1797540b8ac59e4cdc564b1a9d998c591536068997e912bc8002e364880b5fc5dd40d513345a8719173e6d020a073f17fe8b05e222a55d7eb08518177e8aafc4cc5852c50c8e0046501314bbbbfbefa042ec701abf3748bab08c0bbf8508fb511b4001238b2200904593eb52b4e8b94e861667dc035cff1920418eb8fe310c0921e1facbe034fc83a11b08d1a0b81b2f3d89a26958e2900d945cf896bb81d60a3133d30124243104339238a108335c8e05cc2084104218a3582d6663980172e26ee0bd620dd6f5a7485cfee23a1641b8fe3bfee7faf360ade07a184dceb80ab8fe26eec683ece46007466803081d48510338fc0a2fac986c105d7e4515315cf81b7703ad55a95a0072b1f88e91aad8fd2b77e3dfae2b90d871e197b217748c569071e153ee060e61c50fd7c7b8fe93bbf124415302e0d68b9764a2a024177eb4810ac250d2240b1f171ce15600b941fa9f00a10484fd542a951ad7b3d6b77093bb3b8e75eb2d5ce8e442ea633faada51c50f352e980a43ed62d774622f0f519174995bfe5c9d524af933934650d5531ab518a3b378d4e8f129a20ad21248b02174850c52aa2a3c55925449c2aac678418c31aa01871a56ec1015548a88a5367892b80cdf8fdaa2946ac7501742d58c2796e5f210101b3a0082020fec3604135b9510b23a7ed2188a428b1b58d3e5a128b888c3669787a210830a5bba3c14c50f5c5d04f160f518821de1790c497104ac08f7fb99246c3142285f1e81f7088c31a34185cfcd33931c2f7306d445ad2a2ff2a9e4739783ea42e93330765f0eaa0ba56caf198c10c6cdb9f8998cb048c3f7b1ff86ce4a3fdb9132cb3cea2cf9ce654f3b8eec6347c62098c0717988491af7cb624c846e3df5f3c778e1afe047552cfb41689135521d75cf0cb7620c875b7ef4d3931e6545a21873568360892b59e2336c652f2893bd1640e528087615ffc6b25963adf546a09619505c023b3fa2b47d94c49631d8a214c658cfe749d13d377ef6d27fe00b36f116471fb25827d663f8e4e4318c72a327e5c62937fe609f21a4c23fe211fb88f0fd9d283ea5d6aa54ff4811090683c160b086b50f11bad9aaca241bb111dd6c55652f4bcf30286692754d59d80f1e05c123a4a4e8c3350df33ed5c78741b025045b3baef810068b60100c8a3f1b10e2e695fe33750b974f9779051e5feb53c0e567fe7edc7e6e19fee19f1d4100f6e15fea64f887731729c4701d5ab17c75e8fbb1da93aa0ed9cfd09ef60612d87297ccfc06c1998132d99780de23330a5078ddf9156eb3f3abbdc1d3cbac98e6b0edc344f6557b7eb8a55e1c601f9906f847465544d847f636ae3101664fb07206bf947dc4d73ad4ebbae669481cce7ce670e8674633b044b2671e998743073514955d1cdb8842a823e82b7b72df645fa70efc9225cb76366af60e936e28d2424e54775583dc9957d8233c870f435ce7328f0138c8e7989318d31b45dc9550b99ddcb6904837b9fd4560eba14c3fb556a5fa67b18c8cbeef1297e922dd244890991916eb8d6c7713dd6e2250a6297b2c9560f90c2174ef974fc459458ab0942cef8b5d11223710711ac92f89308e11918fa5dc5085a5e46841603165ca52b82398deb04ce42f22ce72879ef72beb9e2ca33dcef2ac3d93fd823d5e8448bf3ac98cc3e709089bceb058418482c0aabbbb377477777777777767667ed8344edfb041a0c3202fc9c44f85d0a14387f126d9f8adbaa1c87c7f75d4d277ee46872ccbe20f41614cc9a28c0d7f15a3430883208210420821fce85db38d1b06d6bcefef0dceca01ca979d0aca44af933ecaab3e4a1c199015b59f659285dfef9f4336afb0dd0518d79b8c3ea3a394c22188a250c8ecfd2de4c4bf8f1a0e6fb50a8c9efc9cb4b83cf0e27e5de57a8c0740f7eb66ee467abb299bdef74839c4252cf4ac47553f718bfec8729667fd199d347684d1636c6f86e52c670501e21f10a12f48942038ac9201cf8078cec95ecd667fd4193a84c16f836208e1feccc3b38e4e548e6390df1f93c1c07e7fa33fbdeed19f87b3222bb29c1563bb6255d56c6bcdd7acb051eb68b783d3eedbb9f423dcb66700dfed77aed679f721a9bf7526392cbdda979e39afddcef56e07784b5af63690d6787399e7dc8c8c39a83cc3ace77b21847002ec32c91014d81014a121284251c64cc61f9787c01082d244f4a25309e2c561330265fc9110298233c48686193973fdcfe089e28d2650015486115cd17b28e3eec5fd1b5ff04315a0368048438d1d28c0e80823228200838d225cfee47a1b3528821852cc800921a4b8dc8b7b022796642146184b848083a1eb6f035b3b34b8420837d04842066fd4c0e55df010c71a6bf44c71e5071fb8fc87388dc3ae4709ea011066f8e0032d84702e3450e58c292ce84118473ce1f247e234ae83eb6e5b0a30fc06191386a02c0105060ee50549a452a9d47bd7979d26555dfee53f9afa4f6bf9afb4d5b0fc67594effa152aa0fa6fe1773e18effbaf99f77210f960c0c01e81ffedf00b815f3ccffb17c3037c66396493d0cd5541e8b0e0fe6ba74d159908be00f812d0b3d75fb533377866b520fdf053600d3a05e7a35dc7f0a88de172edec7635c585d9e5d5c5c9e3acbe59fb9172fb20f1767777776767776767776764f39e5a292c0466759493403232e6806451e340339aad1124390118d54780d41298a4350e4e08886be50c2b0c2ae8779e4ea1e66586004918b89b773a31c548e620f3fac0025b9d85f6036aae840892b6eb0832fa5f7929e855eb984001e988b79780fb025fca1b27354b2a86a42e34058a5600a29a5de37adcbdf5841e1cfaed8b16bca39b3994957bba2ea34043854fb2751cc33c90d9da33cd97149d8ede4e8e4e8e4e8e4e8e4748e4e8e0ef37f7c96cfcc490f3b0abfa43164ed33f71722df5ff3879d0e137e2642e6bba7b3e39a45a04c87a413127f7a3c448e218007e6eac751f515459c46de46f2ef3742036cc18ff28d4099feac8b1dbb98bbc12902658ee0d1da4e7b764469881862701a2a64f2007f7a2ea7eca3677054b02e3a11f581c927ce92b0db1e6b666666ee26eddd539c7768efee7effa72fd89a484c5fb7df3325fa3530ec3791a817f69b48b77f4ea4693489668cfa50a04a1942666666082164f80c197efcc2feb5fd11a2a0328f8f48b2873b776696ced2933ceedd1032472bcc1c939cd5de3e1a0fec5f1f19147d9e06cd084e3967c6cccc4d036c3537c7603f9cc3a709149e0bdfdb6d80f132f4da67721015b23055ec895845334641b8f59ac30d18b87f7c0ca50d57b326ffd73d1f2351ad54c382f71f5371823b06495c3eb246506632d1d66269d9ff54cf6ab9b452ff05b92da8d7a294fd3a3dcc4bf7a05028140a8542f9a05028140a85422941a15028140a85faf11ae6a583fcc2e96b37d985d3e9743a9d64969d4e1a8db752ad546badb5d65a6badb5d65aebcbcbcbcbcbcbcb8b0e1d3a74e8d0a143874aa552a9542a554c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c0ccc543a5eaacb5a6badb5d65a6badb5d65a6badb5d65a6badb5d65a6badb5569d5a6badb5d65a6badb5d65a6badb5d61e8c66881706462bb96a0fdbe53a17379d2c0baa25e5f202537538902fa92a18982dc5cdf0d7dfb4715c0f56ed9ad98e224690bce6b7cf9c5485155e850d48dbe006ad1b26addbb8eab1c0e3048000080086253300026c0c5b5f7b9cfcb9aef6a85dbb2011d67b285292bf3ef7a9b5d65a6b9dcf9e47c13273fe8b74e93c0aada56341755ddcf92e9c03c518908a656060606078b8304fdf125196f1f9ecdeb7f3ba1f85f9143703bc30dfc2d5002f4c6539eaea624ad91616140b5eb3b7c20f1e5bf7c0d6fcf699df4ae6f7cffc22f38dc0d67c243fbdf93a5eaaf62e5daa6be92cab58066a5e0a1c04fc26a054a8d44c3865410a11cd88000000003315000028140c074442a16024ca84ad7d14800c789444705a9a89035290c3308a828c2100000000000410028c418e58550540d31fc6890b88d587b6b350010b6b1f4bf3cebbe34acc91500fb1d4859d61ebace15b2ff559c41ef4d38f5fd92d1569e178b22089e75fc908345a221627d8b1eda87e9c3c82043f1ce4a4151914717ca6de1a53f368b746462ca3371c654c5f762acbbd7d741edd380021362b4d8d225e9e9c4d145f70aaa7cf430628890198f4a1677d67be502af7b17425ed85db4d5a2e024269df694f69b9aecb0de789d3bbf90ad753ac673552164e3d136141d7bfc8546932022dcd030f3737fd9a97a0a593befae96bcf2b7a6250afd0f770ba9cd1c7d475c30d5bbc4c3d9f8fdc860d21c0845b17a9f3fb2538eba8851e139be6f2133b594e0921101e4be13820348883c29b6c2704ba8dd1df6d411ce45c0f7ac2d9f875080eaef9d5e6d18c6f49b4f1c811f415a101c9f5a0b6151e64b9879d7bb0ebf8f4291b901bf4178833923b7423d2aa0cbff544de5b3c7e1de178ae2da58358da5237dee957741cec4f25e9731ec9a48c3aeb5d21f2ea6e973e20b0ccd722fb2a29cb9cd63bd60c735ad78850d2efdc9bcff61af9ed883f1c0956f6ef959fc76c29c348ec6e4ec4a9bcafeedbbd993c3ca82173223a078c5363e1d0432e05a8b6c23270edcab6abb86f2c4d9bc817d15ed62e19793775c1ed302b74f2a48b82d5d8d9c2c723f94948271832dc4120f2f4da1e71d91618f34a1d56eab3c3ba5516250535ad4eaea50e59c0b6832542bef5f27401d10994033142799d4a19ed1b88e38aa22343c1dc7468581c9456ed57d4692c8c985a5a4611e9620001ff2fad823035188d55ab54cd07caaf70730a5cf1f644880a6effceff6a557ac9aa0671b2630492f8f60d4d6f911d109dc88526077865c9080d995ba49f99f05ad43e064d65a3fb33b1ffacb3c917dda91030828503d7db98d23aff7ee2497cfbe0656fad0816cbef258d3d4e0aad8db063f0c25ffdccc85e49c3f6edb3a5f86529b058fe0234e2b5a3c6f44f1683d310f100c8b5d175def53eb0458c9773a567506079513747752174c25b4845772b925fca902229204ec7651f1192475295e210e38f4706808e5dd154897ba4d2735c4955cfea5b98b015e65d1731a22757acfb73ef5d54258166fbee8fb1cc2ae1f99f5cde78c74f5136b6fbe1936cf0e119058f5eade85e17d8ce9b45248dc45ffb8b47e933e6832e933504bd3b57208de4ebd1d70ae772d27976182e7ae152518af61f6ecd04b84a3e9ee563284369a2280dd0e956ea1a740e4b82eb028d784ab446c1016902ef8c57d3cc197ede899b550964fd9359c7668c501813b72a7c728b0cd0e32a53c18e5e576740809958570d4c0a4e9f6dce50c8bad48232df09010fe7f5bc2613c940d702650692d29b6d8483ee7207dcf215d2d0f1781155aa185281736442b624aca4563ba19227875e5505cf098ffc22da1dc3467bc42080eb7ab82a0edec940ad5e0b848f630da9b4e882bda597583cabcf2288da2a05397e1b176b83ec899fe2531a074f8feb951c2b12cb94e4930a298e1f51d424513012a25605d7846421b61bb006ffa91d1d773afcb83ccb1a7a4219a45e3659b5279589c54a163bbf76759501e5aef11d7068806069941aeb24505ee56d2bc296ae2a1b90af8c4abb742fa4a4cccd78abb165a30372b2efa857c15de353091dd816d3a04bcf9241322d8556e582876ae03d414124046021e7f1c219e221bf65b70507a74b75288b259c428b1b62a48a904dc07a0dbc13159dfba00305879ae22e4c3a3564215474f4c4d2352f19a8bfae6256af7da4ae222aec4647016fe427ea3e12f9292c780806b752494681599115c01621f142b74daefa451c8565737b19e9345e78252f4df4e07af0a7c29a1e0c9d69fa91fd63b3654dc55c39704f86dad54e8184001fc85d9a700c47a62f8bb62c2ec06e3cb17eff2690320dc0eff7a20df47c4a72db2f0a44bd0bc4e11dc0ab612ebb230b5c02ac2f34392fbc2a4a789dc23fed18c9e4aa95678227df8a800f9cb4a73c93f2468a11badd2fcef83ea25dbe4ba4590ad8692d83c8c83c8610a1ad7d0521361866733ac3711142c881b51b321d5c9eeefb9e096e4496014172afb564f841ad3d2d8df7b2c617e11ad03fbd69c6f2a7623b9cb9de201eaade1b04910228d44a47657ac6b861a4716cbe781fa1a6cc237b88291f68f4f46d3501d470cb17a98ceb0fafd8858d4f82880118499062a4b9e1048a7ff8d0ef4862524638dfb62072909f0299f879f027755563fc432400253a055c0914d7948572b287ce2f2dc5e7e82605a12e8b37515a9a664709a137034941ebed00d7694238cc6258c4ae9cd24e84d86b1f89fa8b0315db3c8ed1cd17fdc1374b173df74728945037121867e55ecaee317f848d6187a2a60f42b892608ce4e22b16f10d6c6a5c005f030f9be01c8f75632f64899be71e0f9ccb9ac793d6fea6567dd5c74c8191a6f448f91980e596346bb3dce3b6727c914cac43dfb7082a17a41ab4753d539e22ac9f191ad7858a1fd4ae638e35653d2bd701d02698aba6a62cb90f5abcae576e80e88ae015f3c3f0069a3014e038726c39dc75f22e98da971efd64c8d83afa130b92730575bb645107db5c7b3fc8fac03524307d0fb69973a6743f76a48b7050b70fbdf5abd92d0ccf45c8b81c976c8c133ab119219d3ed3ab78735fbd1c0a2e87657bb373e26d89ae04ffa3253f908a12fed325fe931f5509be952c97178a4a7aaa620587b3934f5747b490ad850dbe3608e50245bc7cf991bf6081582eab5902cb6840f0ed6d917ba0d293bdc1bfb92adb99b5a5cd650feca12f0ab54fdb0d1a3e65ed6bd8a094bf0a78a24db96aea6419f810228d3e89c51784e4f7047770c0de238f0cf9d6aee0b3b70ef26b735019dee9a29f1b5319ca12e67ca37f4ff1ea3f3b29c5c7d60012edd4848cf7a9f24a31a730f06e09654bad83cd9d81e02539598e14f1901a1a1ca53591ac9b51ccaf8c2d5d78c631108099f0b4940a7df507fdb60c9edd5533ac690149dbaecaf120ab82e9fabb02f7294e4131e171ff4ad9d7f5c07c41316129278726fd863dbab5db1f9422bd79ee5a7f53aa552a38cd9e0712869038b67e67b9f864d18a6266c56fe89aa0dcd3c8626f43ea86189bf4c08d60821622fe989f22a210c497866c973df8675b8a8913bbf3f7c8094770f61b8cbca767e7b37a7408bdfc377255d98531e3e1638cec9d23250d29754c265673e8789887466baef569b3b1da05e46632a415d11ebc50fa1b72188daedc3d240ef92591e21c5263898659a8b1ddbfe29abd09f9175ba85057a471e0e2c31602464d12a4128c15b39d0e21421badf6b57fa0f70309d6ba8a8ecef438e846ba28ebc5eee8eddbdcc57a9231cff5dec8bb8df107f9455adc68ecd9fbae800f0012343da7b2ee9818956c40d892269b91755c04f43d5b3a25c1e7ef15a55b8b1caa0d0d3494c40555475c091075c2d6e64b7068aea63c42fbe1262d108128868aac6428f3e67d5611502aa24bf3169efe301d1cdbfead390b25291f3e0dfbd9b881377a063843a255e5703446c220adef077e57c85cdc20e6d0ffe5566cc445b93f3da8579162441fbe445b5cc358005485342879ab1ab3625301f38f0df026f58cb74ea5ba60e92b8e3d6b1db671ccb3d1a4b70a1aa40551827094c5126fc350d016943fe98e611bbbf75e458f90c6719e84f2754468679aa4b719a00869ff76eaa60aafa1bebabce04137b748e27c3ecaa0620b3afbdd1d0d313562e3d5501c0c2e4380f88f3303d7c623a597e98bde74bb2522b3e2f50688d409c9d3f7618e534ea313b9b3e64807a024db5d46976de42aff596f15fd26f5325a434665bb23d24458d2fb459bc03a200aa21ca396ff1e33333d9bcab3a92962481e074c1f8fd3c35a475efe2848db0aa53c3a579f89abf9188238b27531bb7d5cc29c54c1a3eb10402a6efef853e2303e2f2d573b4578b54ced9d80b612e7ede7ef54f1866a08c2df846c697039848b6f2e365ef7e7a36a3a18ae68d90cb5f866dee20c021aab27877c27115bbc09f9e8f11466307bbd9efcff763c2ecead6fa218240ca3312274c489d2bb7754df4474e72e13655b14e78663a27d1442a8cf1e4de6afed2c95686d0ffbf08f0e8ff5b8ea0a8c531bba9078aa805eca469eed7bdab6d8ce4e2133f7f074e7704117812c0e5900a2ecaf0c224217620f6effc14568da7241ffcccd7b3545d75d3acb4077c2aa4cd669ce762bc2580f9daa3120928184e92c6dbf204f682a54d4585b74b447e22004e83af27c2a545c013d6355e06ea4b748e06d98cb53e0c1a7cdb03e2fcd82439909895af26456def7b17bb040f1a58e041a9b0c45880de6d02bf7501dbd279c9f0049501626b66d94593e70f5122ffa68e22396cd5780364f8474360a5428d40362b2fff485bfd2f68da969a876f3eebaa3778a4eecff9bb47ca8bc5f6616074358bc2fb03cce5f67b505ea1860e714173181705a8730556925b25e56b119ad426b092e6ec56a16942f9225b01819964990758344ba469dc9c82b532ea4649fcca841858cd4459f157107fc720ebec9caeeeb0cfb49138285598980cf4ac0ee03e52d61a6a9228d802235f8bb041a565a616cf8673a11707c9100d4a2f19d0e8cbd628286ee60239261d3694746641988adeeb7e6bff1d2e78905f7a08100af2068ffe42d1d0551cf7e1d77258aac76ad34077180ff5d3f96b6cc3d6a5586f6235f11d9b900968687b91ce022fdc0c071ff2f184a3fe8a662a561cb375d9c03644aafea19e6d7d03512f91ae2dbb6dd6e46c9ad5eb4e252f05261eaaa7567fe9d937403b8784082d170811c848cf14a46b55b5b7e1d18920e8416d089344d2d86f3066374120124b45fb482189d9942d813211d78db2f8ae10bb871c03d1b46434094f928e7d895b2c6e785a6e41230c095dff9a7d00d359662da404aeb40340b4daa21dc8f2005b03afd0a689dbabe750227066c77ec52e8947c8094c81583a9f9f0caaa5c6f52cd878a2f56aefb148541ad4f55fa922a23fd0ea3488dee08e1d19f6c10c1b3fb4b875684d93345b90dfe4bb315328ba4423ffc2168d9bba699cd29acac265e61ae908ca4453a68cc75b36a097352773202aa4a0b9e2cd4495a6050020dab65e84784ffcba5ef00864f8397328428506d2330ede3e6deaa56ce36cf6f35923f441e938d3756c6252667255497f09ff0e6429c6a2ac8384fe671f3108e57cd85f3e0b16cff47a23c9009d2a34de4ad4e02cceb5e8297e8c470dadaccb81b46bb9c974f8ca4be07f18196abee04e7d7d0f210790f5ff63fa4e5d5165dd7648a83fd3f73a17bb9c025c2c97af9ab5d6db89e9d2a1144e3b86063589610eab8da488b06a61e513207c8eca6e878f14e6127489681bf6e25b7dfb6fe2c354ba8b3e5cf32dab9d7024fab00a4e9ec6701a6c6db90a5c8c7e00ef8d9e8697ba1ef75e74013d89b26e3501d18b8c80a147ffe05d73567056eda7e967653519c21a1a80dbc9684e46870156d29b4e7cd63c152d582d88384e0a764ffb57048b1f98c7e4715f84b5bd666e93262aac470d0043324b5c15f70f569528b4da9394a4386241d0618c6c264af0891bab5b14ff8cbffa1908985b666b754a55dc0e74908a34ee52f6c4585e3d75eda6980150f51a1847b54778ed315dfc61ddc01b7ac13bdd4c8fe19ef7ac819d1b1c71ebdc42e846c08e6b52a4025c9e94ae603bf40a0c5bcf6b557449005b49f817014648ea3ccb010a3878362d81120018abf4d66892552087dcd6c5aeafd83dd34d5c7deebd0d28f486d27f52198cfad060b80cee3a1c43f16c59e529932eea46c085b269f7948404652cb6f6a9e283af384f99eeee40c3934aec3f27b0f2cd5f9f29b2d19bf08d0c6e40f9bfcdc7da768e5472d84a93bb2260de671c8b717fb5c1bf9596070f7c84f95821d32749794df7a29644fc5482fc220e09c969932db18f1c5bee43b44359d646119241f976db00c0d1bf74b89895782696c63abec83c419a883daac4e898f613a7c831f9e43b4310258df07f86f7c5434e80a73fb6c5823225aeb8613901d7e5c35c1cf240236e4c30ddd16c39fc9718e65dff797809ecab8043ecfe7136b8d690bac056e0024e45c548dc508d5a45f0bbabd96fd780d5adb99d756f947eee61833e14c7fb022e5e0e93107286d527a035501796c2d573ba14bb6c495eca38c5ba39345371fb098e079ed252f053dea33e2bfe892ff0a7b3499f2445ce942d15598b363642d4f5199a0dfae271dc7b4164acdaf7b45e639ae1b6eea3d0916e30f9e08ea59d0cf03de31c498397119af228bd3fc2b8dfd36aa66c631f60b919f5d55b9b81bf68b20fc9bc4f66c0b769dcd108138eb940692e8bda537ce08342bd663025d341ca421a23c70913ac5d071157cb107b3ead6a2e2a187336fb0d12bf1118911055be5dcfc0ebee20979cd3c09c88156a4bc83205be2d4a82ec74dbda093c87629251d9809c8c27f456ab8beef2a65e135fe89306a4f9ec80383d4ab8ceef1eeae48d2568f6370ed504a725b3bc3ca7b4f27b976f5091bdf5e6d591d36f5dbd5da4fd66b53985ad3b135c962a6d26470af51dbcde2cceef2ded34916352d91837b95ba1d17677a376f9f4ed6d36cee0d28ef3d9de4dad5276c7c7bb525ebd64eb1e6edd349ad9bbd9350cc386116eb1f3bb985a96addca1f7aa83922c952217592c08f59f51bb3c1c88a15ed180962916d535d980295166a60fd12756e948f6ca107f84c5cb52f68ff3cc0204bab151e3b6dea3d87df54be219f309ad673aecb2b05115be9fcdfe7ab7d62bfaa36c5941445a1decc4a89788f182bf4a62f1cdd96c3d54867eeb38418889dff5bd980caa7b210fd85ad29d6e382c19736e26bd10f9d763ce387e7e9e3fdc74e887db27ce7bd3e2bd5dab8d1780c93458a528ecb24528a779b224df4ea54ed21b9a87c68bb997e83193cef52272ae309bc221a925f87cf58ea29f1551e399bcc2383db23f567edf9f178574247264f012baea22f7c51a0584a19c12b24b81672defd7c565ef6f02faefa411f99d6a741ebc19b749911a970be8ee1c1d0bc3079a818a6ef1a2ad072886f3eb9d9814fb716a222153f4c7b9cbe22959c9ef8c33d6f252ca951fad99ea823626adc9265ad359b6322446a5f776eeaf286aa611df913af71c2a9a318e7e0f3a38494e03c339d3691328b61fe85cd2eec63dcaf74c94d44cd18ce5e8920fa457bb3e423fa4861b78413ffd2bb73c414af36f60adc1b81dd205cfb20b492118e54db3487820207971d9977da50d4a1f0f3b1dea5ecf06662117d1ef039ee44dc1f0bdc1b07ee1d67e04ae2b61fb843366e2e5eebf7165c7bc2d5fe19b796a524b3ccd610066bbbb61be238ee116f109bda3d378b232f5eef5cc437a6bbf4d9c6f42be9dc68b5944ae165a7d2ed2bf0957f9f614d31dcad9c01ba7c85acb355c321a4aad9c3eabe6f97d80cd266a1eafc379cae80eead2f99b9f99cf4c40683e8bee1ffd58bf5d281113c91c96b688a114254c751eabc6df1093d1e67cbbb20c95b746e1d0f39bbc6fc5cde7b1bf3014dc58d7373f9fe626ae174180966ffc9fc1b936b76aabc7aefc8c3d6cac3e82d6c138329f218e61cfb60e0348a74c70a81355347c5d9ac5bbc080b9031aa2b557b255b45768637ad9be61041b71882b60ca06b49fe50650e9b19d269b9d12c96eba69879906994b86b93623b52a5791fa158154bf626aefb343f0313df0384801d97d85bc70160dbf96d9e1a9f84e3521c5eab3e96af660eccecff089e0d7c0725f236f121a7f062332e9a2b69f9353ef31beab9f23425237763e737408747e4bc0f98c51842b032ebaba847b51c261551ecb6744ab0c8d1d7b63bf43ace8da7a5b0c0778f4d2aff9d3b66c300cbee738e61fe8b2cbabcc26f0e6d0ca52f82a43cba83cd0b3c594b57ac87f771c72cbec8606b5d877bbad2bf4f3ff663c7310cc893e36b570c0e0ffdc4a5acf3edf03cf8740873670ee62784ff3b0b26fd69095f07ce366724e5bb22b7fbe245138aad1b2defa9d667922d2a32073790a7d6f8f5ac42eeb9f55c018b2bbac3d595bdf2fc5f751254f1cdd8b335ac18d000cde7ef7bb8020bdde0c7ec38fa4d43791bc46e96c467cec4644e2486fe3651aacbd9cb04b0461fc064ee39e2ed9fd9fdca9b834d21ebc4cc1418c6a503324762372762378d11673199bedd5626ee1b3af8afe08cd94f0239d8708a1cba5e4c2ec0992324bd2dfa485e41f235f0abf4d178153ecb21e26eecaf416c7338accbb67282199f8dfa1e7a6c971dd27de6283837051d1f24e2e2b54afc91df2048c5da7a32d30c272b58255c43f353978e5b31276af78f260a70260f5f97ad96ffef932384d5a703b30ad6cdc12cb42acc00b69597d8cf0c89809acf2ad85d61d4e35481af7f056895026f87f8e969bb16c9951fc1e0ba5b99ac584ed7f6c73a65f7223261c8509528da96e33186a4540f12a2ea90652a5bd42214095898e3190ae8f3726b7c9320aeb05a2d313dc403ee9bf3366832ce9982d5f95c52879d6428d18f9e99d1954e7f59f05a7b352c52098b8900e3f3020541c0df4a86e02c2f582033e476f2dfec010e1e23b5677aad24437bb012e764546519d609730054c5e73c8d01c5a0a4212450981fd0eb814552b27c99b214cca410a0bbb595096e705dc02ad01d700f9cbb831691a36afb7ac8e3055a3ef2217ab3c772a03239779bf45192d25df6bbba63a018d82b99265b4f7b8af28ff42e8d04ab3b46f174e5754d9eb289068c0a141120c01f24c2860e1a1b06696e441da0d1c77f4e8cfaf7b1e110756861fadbc0847d914919c3ac29b4ff95c166d35a490a5d107b66a964802bfbdc9c88bb29889d3992d86cade7788f170ef4e547be8f21fd11fb9a54e89a774bd0522b71b1878e9fd277df085c45dff9f0d8257509a2943037138c346c22cb9ad50d75c2fd48c49d91c0d5d144dccedfb80e923bce0ee9822c8648e7d8c30ed9e6bc2f50b55b89ddac97d5581fcc7535b1f91efdcc50d755ce88e9a68c77c3d8d01307070619b58a005ebcc96cbab3eb1001765113d2a7b9098d5558307c25f6ece2ac96ccb7411dd308b1239459c06b17302e2bb82f2464352d06dd414812901019c3b87ad40a7e0113c5c335534c1658dcf9e09de3de1fa1bdafdae47d2ff226c877f31723cfd368952fdea71aaa2ea97b8850237d490d5c95803a19d296cd04403b2d6448f363fd42a140f0a73e83f7dfc58daccd7c528ef816e41315b6689bacd80dc4d7ebd52873c2880aac60fa9cddbeb9db479adc6216cb32cf3b612d093eb4bb0e33fc013dec58bfcba4fdc1b1588cbf414a136c2fbdde56259a63050faa783c6daed264c7c1b1017871af86b372e2192b349229d9a1bfa2283704428c730f7c5b37b6fc19dbaa05c8540b0ca74115144a0f1b279f93d68250b3dda92c06fca945bfb053d220b21fd989c4a001011edac2426b2b2e9716b26ea31c5f8505f8b56436d234b1af5eb8b5c390e8b5798c24e286e49740f21fc02a36bcdfc7be8cd0d402bb79c4ac67d0b5f49576d01eb9b8921072881502e402204ee25416df65043123ed54984fa8114a71d9ce8e0a7f3bb3e1fdf42ee6add98e03abc3acbb76612f079bbc61cbf42e2d0d86928f116c359a10d8bf40b1af03d09435021513ec95a78ada7f99f8e15db48948581e88cea9457abc590104486de8d72d83663a576cebd0c605ffb3b175686907fd9541b62e68aaad42bb608cf4aa661cbf0223c05fbe249271c6d105d7ab4f2fcd29b4383323d3086e58f5c8bc8808e62ffed0aecbb4dc17abb3f5fe575dc53dd466845d5c4d5a1a14afccb534d6ba82921c02bb5f363a222f179d7272a7ce955762f22ee27406db4734d22feee01b872fe7fb3fef5c31b9c273baeb6acb909dd9f799cbb5111ad0f446e02d3e3b933773884010239947371a0fa5f2466cea37d667af145ea083c4b3b1677cb89a825468cfb5cd3e2ca0bda9b21e0ea3da9633a11891ad82ef18ce96af41b5075b8a5c9fb6650d375638a165771803e581d4fa8e672a07a6a412663eb3f653efa288569b587ebfd8931888270ca4b1fb90b4aa1df018c96e54f9e2ec8a028f9cb9e2df1f4bd3969c7397b13db2a7da0aed8009895a001f954583d033462a67174f1c24dd8fce06ac8208f964ce1ddbb2fb708c83c171c090f4e74d14391beda0d907ac7cc62c45acc630dbd44337c6da4dc6ee1fc3b75817776d83c8289426160c8e397b6440b18f21b0908005c7ac6edfdb4450412b35e2becb0e61095159cc06c424cb681753016d401af258202dc29c7856a6a5ed37e6c60b42f7276e2a769133d3c97988fade50e993c75003588a71b97ed020b2ec07e1db4b1cc15182ee6c7f8673b3fc1d2d71eeeff811643d177f339f397a90085bf55cb8e8622926db533d3dfb2bb95eb9620624c89c8b29f386340e13a05cac721c25ea0fca1ebf6be4d06fa811777556e5fccb7a087e1a02f9f901372cdbd8f92b733fdd41f1cb7a111002c2b69afefc646b1ff8a6d9486c27c93f7635d0aa7236bd916a4adb096703a45ae2807ddc50466c645af14fa4de1b0af9ddad4d03ed5580c90deb0fce14c9321bbf5df8332c74baa6bd9ef94aafd316c0c6a7e548e2db12886c2058ddcf423d8245f2c73a50f99021c2e68e082cf94431400457dd3cf56617354c6ba8c81385539f13bbf19b5da91a030c75e89d2d799247d33203acb4aad7daf44c86aa1d89f05a9cfb1c8fc8be8ba8e854207e7e279664e42760dbaa1f6f6fe0f6c396ae436587ed1e1daf332234f67761588de748c7b46919f2dc8852d4abe12bd44b895d168b67e8cff310f7536af4c76554159a89488c04d928c94ad4b9205369a8b99a026ae557239aa53b56a47f8d9d3c3602aa28038fcc53fb7bc7799bb19defe40d74833610d7fe13f126fd190182756afcd1f8ae142e7e79492bf47ea72b92e4b013a143ded16b3ec6d76487fbe60634f10b0ebab9da4a85c731b585c7510b708a80c01748126f9c08d445b07827370b76b1011c1b7d8bc31e0b86835d52031189ea7ed27410467d097b6df8fb6ebb6d180cd39cc2d2ad2ac230d5740f31bb7d74b2e9607dbd6902dac0ee85700cdc8a935f82456dbd1c3c1e752cc04646bea42b5fbeeb7261c25ddb423a5091c8756d08175c286558bf47485de34e05150f2944c12b6f25de1e96712f12adeb01d6a61c2938c062c448cc2bfe4c1828e88339269bfaa9296850722b8ba379b727444f45053ab4fef17963207981e0d90b7a2b07debdcab5fa3034ae4e7115476c0b7222571832fbb761ceb21c2681f16c126abfae25986ef224d9b923801cbfa192212b831bfcd7805c323b826c16c0c466514ae89c01b5877b8dace1a7f3eca0453382d5ab6a4e989be12e169b6005807b0952efd582128351ef48f66def15ce93b2c1ebd9e0fcf32277d253eaacf1b316c90fd5c02a4eba94e38e0dc090db30da4d1192c1f446307b732a2131598760ef81db836b0d24c3f3faf27794977244d4c7402f896a895aa52f7437709b60db6debeb684c6106b95aa182e34a1db85d99352f54ca9a0d988975ea8e10df518794605507660294ce0402adf0baed4b85c6a1ebbb3fa8c1ee65f43c64c8b2f8871f4c834ed939eef094842720a3f434f423617a28c7b634121e6ebe36c754921f17a665926ecd4c6092f0b0ede1de1167b8007ecff09e430c8017ec86d39255fd1cec983682d513b4fa09441c388a3d25c9ab50aa939630c60d47f7042a51d9665364945ef73b6abab745a11e68e795754e94bba61cf1ec659c056ebc5ec8ca20c0770c3fd3d7224e17272e1904299df0db4df28f188cdedb5059c8a114598038fb832ba08997dc0ba8e5801ef9fd04ec4b5c3d0f7120285cb8cbc09c667997c4b62c5e64c5376dcb387c20269407293742794b5d7dd6165cd0c78cf33e88ad40c07616aa0572d523f3d25273990c9d20f02edff4b563bcbfc0ff67892190ba880f5016f26016e64c77db8d74f6c0ae42894328bc75b28093a1abb8966b1772edf023d8cdc520290c0874eecbb0a4d4ac76a8eae3b0939f4f2347180005cb2eb79f9e71793042d78f5c4fd283a336028d3bedf53dfd0da454df641bea1d2e78ce61f5587db62140b4853ecdcf72bfe57d5fd0d4267913dc8151665143c9bd94f10af6c0c68b13bee2549d82a8a1a6d473373088efbc43440046610a1b84108198e12227c5e48de10c2be82e5d10ca406cf2e4ee53612f920b2898bf2f1b23bd9aa385aae69af601da17cad4bae6b624c5c049168c003903f32b00cdb308df94d5fc0a20abb30ace3036797417ee642886e340df7e4a5b081267c01cbc7565ad2be0301ae43a8b2bd358bb4dd8599f90c4089113365ac5a51e6926d4e06f74288a03d07e8b3934e66d1b8adb1c247c0c873b1776790a6ab7d98121668f1a7fdd7bca63e4b6ac1a160dab731a584e9065848f4a650b4c9cc5d44dd35f4622937074c7224c70d4747c17067c10b307945e828000195e7c6ac270045b7bd8ad2dcae1fa981fca159574b543145c2f3410cd1c504df270373ebce105c48b1abbe738c55f3a19794055fa1bc156631027f25458a19473eecf647a022e872c88049d7363afcb72508b99a4b0764cc8473f989adf92b95fa08e13c191578f49d325971fb22ef7d789df76fa81b339b8293b9219a6e0de3deab3371db1cae27389cec190ed60221762b6404d6132c7e9777edfe1af3132d516cbcd81270771116c4c6e1855962892e67ceb578415e49563e07f296f14bec749c6c154bb65560a4dea60fe16cbd0b8496fb69cd7896830793e98ea0476872edc7a099cb926b7042bca63dcf07a4de01a06ccbb6f32c6aaaf58478a5bcdee43adc97c3571e3f9abfcc202b1495d8ad9fa64f15261481a33a254ac4a568b227ab25e2b86e3bcb80d67ec0644786dc5f472d7cde620e90394590c331f5b0d68c44ff8db445368b81d657f8630a7c2333b5e16170e0df295493864e6e1e046059f398eed97e32a52e548330caf2199c64530c72b83bad8c4f9a888b7e0eca7d44b9e48e508eca2d7828e01b20c5016763043da641951a9b04ebf8570b2a32003db892678198325a44a2e08695f451b68118cf844112ab492e0ce5571be68f399129c56518e25261192f0ceabebf869248ebc120dfacf1c130ece70dcad52e4302b712a8c500c3fddecda31d4cb81ba6ad2860ca85f4fabfd433d54a250fb62ceeaf71d9f94e3531a436ca081fae10cc5ccb4df1689fd40343c069ce90937ba44ccb1fffe45a442df341761b0ce58fecfa0e1abca05e10a29ce78075101c8e9387902391f07d3ee19904d6876c1dbda990b71df3c7e412dbfd07d2d795f7a257a054f4d3d03ff6c5de02b4736a9a255bc87253253ac0dfc9142ecf7c1092f16ad329702c95148869c4b9669656cf15472a7c796ad2d487c3d917124de1b2a725840d52d7d2f3574f4c278bd1fd3b1faf289f37c06f880b101cbfb0f8b888fbada0decde83a3961862c06441cd965bed6381a3c7398edc0268e3573f724d34d5048b1ac9b83de88209d92e36b6b42559689477350d5198b80223f0b6b227fa827e0058a3b36f91e5c715659ab0c8dfdaade091fc0eb04c086da8e30d0caa2bb64e303d4cc287f9dac92772ea70c9863f02bb28071a2a2c98fecd4de69f5a0defbe5aeda817c6d37d27ce572b0b4cd31a151df608f5315c9d1f288ebfd798ee0644707d50b6fd32a656eb76a2b84512fd273a00e975ca4bd96ca3e2a858a51de4fb795a2fdecad968e5c581dd9ba017126843c5a66f1c99191add4e75b3541b416492c8f4b72a69b667981a5a71e8d0d3874ffda257b7d998041191bca4c5b09c2177ad1d9ab4426fb0b6e763d1edbd5805cc20f0ff967d7bae2ce25188f2994103b16b0dea215628836bcd9197f32c704a119a267cc8564e31d5f74b564022d7f33044c35af8bc75cd4369ba12b6d76333dcf41edb2b49518f2acef355cd7b895f147f6749bc5ab2c8d1c97bf632e35df9fc3238a0ac95117c752ace7fb25642d99aca8a17c8345d5bc5b54316337f4c5a7cb1cc67c04b9b786009a9a6926aed42ea38a14619ec0216df1deaa536019289d3c52ca96a479141ed8fc9330b5e5696f6a31ffaa44c66ebd0018210c2918f81327d4fe3d0b6ef13694361e437e9877b4e9e711c5176886203c4fed6cb1db2019fcdb718e50c2ebf3b29c7301dc99a14c0dafdcf4bb77cfe40e35752b09c3355860540677caa009a74e99385a632444d44192051b8ad2418a1fb8d739247d9e06ba4075b343adc1a71e88a03f5cbf45679d57fa89ab373b149595fab7b93200961325bf42e60943940d3288414e8a5a531b0045a66f3a8daa09c90cd51171a7f57c8270ea3fac65d69c9b345645a7fcf78b2cb950464649535ca082429dfafc450c69916952586251bc93893338fd688d678471513c0f7b6a8f46bf8a3b137102d61c3bd7f727e8a785ac8d0472ce5202ed02b6270f4d2eae939e00bbb8157c56ff0b54c82bfe8caf5832a56e6464a20c54c9e66d0b2819e32aa66cb502172420127c48e1353913a1d795815b488fd4903abb8e636ac941f640471717580e86ce106b39e0986d4704d1a8cc56c768d5d4da41d05b4bf3bced7ab76c5a124154cd20add8ddbf97f3a5ad1c159b6f7e2409af1a6d0ad50b442dff480ee46bc98e94d85fb94fcd6e97d00b30f8c362d4a55e8480b6f16cf81be741a19075853be242861064054c789708ee086a63fb188ef02fe6d60ad7d19df4a1ccfcfa3c520439b797f1cd0156de4e4c0a7676e05524498e1ab812e31546ea70859ba8bc962f8aaba1486ccec99ac2e30eca58d2aa338ce8d027bebb9324c9a583ade80856557b271c9310bd7628844de31b623c661b4f79c3219b95d3eb273e29c4399c76c3c27c897ed4af890161cb35f4bec4a8831b18a6124e24fa6dcf030d8e327aaa2b762c98a850a5fe58420a3c8a6a422c9de617c0ad8d2290c27f92777614b124897905f3f4d4cb1306eb06ffcd51afe4f5d9261e530bf9e2d15e733c1f6eff51d013aca2aacb01fbdf94d318d64dbb38a43751cbfde74d363a8c24a6a03f9a4a51806638cabd3090b568fb4ed568c7acfe43ec243a6db5804bc6daded3bccf3b8809d19aa0f28e20c897b03a8fc89aca984f7559e025669fb66093c79a35b9823f5fd42a10a032fe5ef2ff4e0b891f993216577db92d38625a264434692307a6e5352426635ce336b01284e4c65c7efdfdc57567bc2fc1e4302b7b75c68c0f72729c004903941e21b49d335e2744c344f0136ad4dbdedffb2ff485908bc56b12b685a9a924943cb19412e5479ea91727fad9fb0a054b6dcc76adffb5dfd58cc3852da0a04ce8da8efdcff429ebf5ba0fb8382e5bf43f71762f93b24fb03b37fd68adf40d693d099fd3e5ee2549e3573d1ad5a8ba1b6949be9e0ed6f40498e109902fb5b72e1cf6c33b3136e8c060b0d115c29c43f9d2807962397d7cb187d15c8109c930dd4adaac31fb4b9c915d6faf10a44d1e3f3acbc4e309e7cdd9b52bf53203083524bd4542c2d84d35762d446976acf6c96d107d597109ac259a78cee1572ac3cf890c512bbef812081cc615c9314727ceab0757365717ca12d4b153005efe3d442bc516781dee7065d45d6b37808ec622b37c15c8cbffdaa3602ceabc1e165ea329a8627878e9279e4cc0c3bf4a8b25e138aa5910702926ad78a279ea32f9883afc642e1c34ce2b7d550c93db3086fd2268e9fbf1f737676ab15d5e3254342273431ec71c0571abf4e4c135549323f5663deed11e7a4984540eb3d0f65d40315fe1107bd92de26e1f0db264022a6c9e8fecd07c30fb990732db3593608145a104b44b31793a05f6e37a8be61356b7ad1a8c3b1dabbe856a1387568cd4b476d17071680a6621c900f32ad433e5a9755cd819ab4716bd93c210e80a897663830035d5bcab74424d10f4247f8928506eafd7d1812fec6478cabdde54d45bf0247b035bea44a9cc5ec5e7081ddb8b7d40504f61102bb7e52619e1243b9a1e9a351e6bdc33ab2d0308652fd6f3b2cb324bce051e0a8e15b16dfa38ae2886d8d39d2486bec4492aaf9802d796598331da94f6444ad734a5fecfbcaab0acc4b6a361fdc6822d756c3fad579151c053241388b1644e54104b85708f94a47ee92287c2de4fec36fbe085ebf60dfffa18b1dcec312866bf4e970d2794196666f69e0fb5b0c84da04e05787274abd2846b771bfe7fb1d7965d4c25ba2ba6be3c06010294224191d6dd058d42a799925734651e2751035c0853fb2cb7629f474a5279c039a0688989a015a4889233ba11bb830e9f15432e5e21f12c12e71d4dd020307957c79de4d3fb04da01ff3094199a88cfe935efa48088f526b88559f06c685ea94803bff2c389932931c532daf5c88bc1636ee24c40119cd4b0ba5db2e69942e18fb2efcf8eb5b0910745e6c7c47cc17401b33d5420d3a013ae202fae8237c4ed6bf1ba4cafa5cc6120139003b761829d48bed69487451a0009bf8b689598b2de2bf5965e9520c8fe117a6b1677b085d613ca9debb2562f092ba13f804a1f92b86a6a63c6402d0645beac704c12c356196f6a9cf8a5c645042bfbca6928dd58dccd4fda74b9d35f45a8b88175a5cd00c71b2b5e4e7a72912f7602c241ecfcde6ca35c73f2e16f80d51a73464293addb8069032c08db64593ca3eb90d7ef7d65f004b24619a4d26c1ef454e812e1f30af7651af58de11ad1eeea0311bde59919a7b5ea268204d687ef29fc8d41a781052116d6bdc361b991de82647dafc0753d01a2672274d991f531e81260b501e436857a55914aaaabf818f117fd08df8773b2b81f3a4c6fd74fa72a4cee165528adcc13e9e910717944586a9f269477c73e3b002911f8a4b57bc71c89a5318459594f4f231fe6ab257b097fc4f8dcdd483f9b287e4504c5daac51b85aaf9385b13b7e942b43467b0a6d02971c88f544d944260e46d6542c8cc27f4f6faf3605c72feafcf015516e8c768d544cc6b415e082fa11315c607982fa8ca08ab2e492f438e095769553d2d52709b45946f685c45a811cc2201c1783dbc20e848ba90bd60f8c983416639c6c1d610edee34875dd8fe0b48bf02ea006b73ab3df2cb783ba9cda2e0df100b3021cc715a5a2466346cc7e571b29f6317dc62085fea1c4d150cb02b6a70ba0727f92557f7ed1bb5e5ec8eb19696a326cac37dc8b7ab84e6613a6aad84562f45236e5754e96f1bbc82ca7aaedae4296018589df49074131f931ccf1d0de1d134a73d62355125cc5ed50f893168311e218a7641058f33136a43f190a7d83be546baa330fbdd0cf3d6fb85309ed8df75911bfe26043fe7d754dfeac125ef2c97959403ce23279db69b04a371c90717c919715794782dd0a00f69e7a2e6edcc422badc140e2d207ae602bb5b5334046a164ccf598b47b37883a62b1579fc867f1b1d0006fa82cc4548679cbc727962dd005be461d2b662c82d31d27e80eb45d572767e8b64ca841031cb9e27d8ad064e92f0efcc453038c43cdc4036ba1b103d03fcd63bef1c21d00f619c4e519b5394fba10d8e516834deaadb72468ce0c9889545ab5bec6cdf0c8384c71a51ab983e1d044f05670fbd55d7564ca3e08b079cfb9ac36bdd7e35ae07e03bdfb5e3a2860fb3e02bddc0e0fd8888afd7743ef0087889763f41d407d524b7387e8c05157d21c5f2f8fc162d13a83f66dbcc8d664f5d95421e4dbc2c437021ef3523adb08bb537acff0a2b1076d7c521c1285b2ebd651dc6d03e6587eadf4604d49e5e58b53ef1c55b056c6449761b5dcd846691812c6846a76d20ee7769977bb96842eaff7f2849f58c4989518cee5398e83646b54b4427582f7df376c76394f29521a6845cb4ef3918bb7b51db14ce2f6684d57e55feb77d3d5bf8e44aa6e943287796b2c6abad983d591ca9abbe3ec85c26908597d75c775e42e3cd8cda44ac654bc567b11ed15e426d00e1dc3be6b7d785e52ab2f1180cdb2a161bab2689b626b7102529e87ad09031ee13199f241ae3567a212acaf093a04669e395a229a8d23d00794a3110400ffcad842b912e60ab2c6a1798ec846344f1c607a009f0e3926930e634b199a29977546e6a7175b280ad1295e818af6ab30e5146c19f2fcb601f87c127c40e34ac424cf1be19011c0d004b985bdcf31044ecd883befd9e5066e0ad71d7725c4a1abe4d1b999ebd5b748f7dae6bdc6be423ce5937308bd21c52b4c6f17bfac98fee4f2b428bb971b7355f390dc4bc09628721af478033d3e5c1f03be33f169a4684a520628163b3ae825b0e8529105c62903280ed23339631464cf56bc618041059cf01713cdfa282046bed82c9e0a71d57132ac515306b236767064f15e61e596434236c611200be919c6e80c6a461094d246da03855ee4428f745bfeffdaa0505407be326096f155041066475202d046103240b58a7db091e44bcefb936498b5edc17ea04884e5b7963651a72ccc63f500c8bf7a0b8fefa8673588334be9dcb411fec04feee45502d059a7954fc04e34bf6d41d0cbb38fdd4e1850405cdb6d17bedf9b4bccba42103e122a8f5fb30940904aaff95969ab2a34beefc7e1b1d885430999425b8eae205060b05cc8bce5c47a141fd02fcf58a9663e88e82314557a2860a0ec3d1da9a30bc184ce4711004019b6cc57c2ea072ed88b25777e4d099d02b34d465c133664d2ae302134a21fa674265083d00326ef8b70da6a23d6cbb3f50b631e8983f20796f60bb671362298f2970e46e1cd9cc89e8c0241de8a63a63a2fb83fc737fbf354056dd100db7f90224a183e4ae84f1f18bd6002063df4c0dd6f56195f0a7ab7ca74a00901829e24af0d0a39b2c8eb757bbcae0f66db07d23999a02a820c3a37c01ab7112434817e29e8c1735c0bb7efea0efcc6f102166d8da93b4a7760e5286d61a35fbdee83f2eb9aeeb0c2a310428e658fb6036b93ee31c8abeee8338422ac551718ff041ab3edf78cdd800fcaaab4eb6b8753c586700144ed71698dfe1d4a35cefeb5e36068de8e7df598682eef04885b186e77454246e6deafd20de174bf1df8325d0cd4f309fa61e63fd66018dfc3ed632facee2ca6fba9c301ab118720556815fe0712040254110487c6fd397ff0b8f2fe53f34c2142ae84de8b55c55262044b694274d60628b3d641485bff693cc68fe79d31bdd88826e8d17a1154a4b57e19d25d7f8540d064141272e990f981dce60747ce0e040a7fa439a42306be99141420d98ed4b87a21382ef7f64a3816c5435aaf6c39a01dba2ba3adbc17f70e43f4d1cee751b01cb8a3ea562d36d8e1c4ffc6937e75e044769e6830878584604f8fc2c348cdd10fbb0747879a1a757813818048f835cfe9c66dd07cbd06594ae627cd2dc7c74988ccc51cb77e8372b3df52d6f21c3b2653b2c9d419564ac55f7c448adb65a2c847c5b1995c9214ce34595326b3594a5c58300df6f042ca17543c8e338d6dc12e1c86e1250c74fd3563919bcc48c3916e73f36df5b8ad706f5bfd087411f5cc902e34d6b5a6a3d4a5bb319cccbaaf57a1906dac0de51522bec31ce0917b95e1927999c83a83829ea78f557e3d99d7bcf925f24ca9ba9af87dfb9007554eedc8860750901e6ab3755072448e654a1c15e81433ea12f2dcd05ba245ad8410e839ef5d0dd2db262146e9b4af3686b0aa157c2c2f1fc16cd7d4f8cbf0c5ce6d0c21d926d65b8fe7997888cc1973cb3de74822b267f04c1f63e5099224f225e04da619d7fce007e9c0cdc4be518e06c859a81fd2076cb9ca68c65c007c20c8690992c91199c548e535871cd63265d006c09c1b019938122b5abd92677a33e669a4ad91a135dcfa83c60b9175c3e9b5176435d83b5fe8385dff5fcffeb9ba983cda33b6a481e6d515f6c9a12b42f98d860220d57c8da650f103241cbf83730de995a01915438e3c6cb1c701b5ce354bdd83663268a270235cfc049076825cc5580d35a00c681d07d3432130591d30183a15c0d09e8f0a5c557e11fd37615fb780bd173cf828170a71997307beb3a00bcea8fc7f2e18cbe271f3a7d7ba4542092a3c67109218956636354158885cace807200dce4f0827a13848c52132cc9666aa1820da2b62dc0c17e4a277e4cdf3319c78d0a501ae80237a36fdccc6560182923dc92ebf8f01f8de241ae3316bd65970b71f923ddc05c09d3604212a956c83b4247f2dec39d262929b271aae3862d8a5e38295fe4c7ef810221596a676e5784cbfa0bb9423f63dc10e1671cfc3e624fd026e4488f101b05a660ebd59f470c2c873d3e79139a4e2a36a5de2dbdc55a5b4c66d4752e70878a80877df2823dad8e8faa087b91101b73943ee7af95ce1cdf854d3e944b00ab4bc400d6f9fb983d5717b113a08cf18ec2abdd0618d1e2255c236b2008473f00fbc9d7f51dca8241f92778124f0dea10faaefce6acadf8b0de663c41a4b64c2b7f5cda1ecb8d8819a6286a729aa4179be55ae6908e8aa4d257a956e1b473530f862096457377740511bdd86bf98bd171633c0e892e0213d938f2ec6d6ed62b7e9027f9fbf0567786ce78112cbeed36cb9cf6f7f820ac853f6dba831c63fbf623ca294b4abf8565e757ed4dc7ec5daa772f5f90ab5f563071780bec61b9870fd434dd3d088e5336dfdee5cff3665d9df7bf82ca2df14f9a3f9e1f82d720b710c04d05fa1888cf6d61b11af4c7656870a95aef1a6a63f5d552b757298bb690a4454be438b5ca5d2f74b99a6a4bba128e7cf007aaa5e36f588c3c43a405200d2cfc3996c2922138da08dc750cf5a3d1de0395148fbefaaa5c1d6bef29c9caa7ff1f866a03b66c09a168f31c9d418185d056eea91d0cf77497ecb7fb254a362f21f00e64835e3e2e344911108cdc2ad965f897dbd48aa116125b0ab98f043df745b5bd54124ebd59ea01efb00a080d5e25b6f99cc51c855ae45f90ab54021e9c9d656fc429fd0d71ff7e3ef02e757d03b9fff15e8e45af1c614a21d7fd731451d7bf6e9f4c8b542fee10b5485accdb6ac0cd001fa8f4bd55032502936350c50173cf5f406b3df5284e6c102a5f5b120bff42e0b6701158a008175d54fc28b945131988e9f6851c3fe806ee0442be87e719538f2f51401a7872959c5af65e2f624a083990c374a004f543762a0a2be64363a344d424777cb7dc14598cb7f3a15cc1dc45365eff51ffa7558c544e32269f99fbe01a0de3e35a756cb09968fa349d6fa3898707a2f33cceab8ba8cfa729e08f673cec3e54f4203ee57f2aca6a2a34921d0ee89536f938e0650a720a828a82c23acbc5deb1e21d90ef7878905c0a8e6e99127a57a05ce89db92e9d4aaf914ca124da6ce19cc1ef1933e26c72ce61e21b6d3d056907450f51ff3209f327470e2cf183f5f74ae1f59210de985d42d477646847690b445739956358498f47d63f457feaf902b060b27acc215fb4b4be3083973ae576929900b9444f704d9d68ac70f4d843ee4246ca0a82078de597429ee814ce586902920bd64b5a08141abe36c2322f1b25666957fab7e110cd22d0aea5c7a43f4f3a85a69df8d7f21964b2e26c18ecd974f4380aa2e6e86ff6985f3096df2cf045ca21d160c013ccea94d46e8f735b873919802c67247f5ab90f19201080b0dd3987dabfb9615ab93117c5d22c278502d6462998cf04b0aa652a81ae1462d2b2e27a3612d726f40211af382c99fa2369e1dc23ac6747e910c51917325b84149b3bf8b191535ce14e1fec2460f3f3a1050a8520dc8db7dfaf6ed245d81b157f098ecb0ce6a8798bda423c2bbe36d20a414fb5d5407995327f62140d731160cdd4baf3fa2c8dc9f7dc713bd8ed78c5c3aea65a64a647a71f33ffe49780385a22427c04e62999300621996ad1601a18ee34983cbcaea09c51b97754a1a2a360681b28b2c40ac570d122e7a793af4bc5c09f39051db776326b0542cbd623ab292045d7cf136cdb95f1d7d6c501694af920208523a8ca7443446de5c469b55e0540007bb9d961ee7d8ca0e2b8eeb0b20ecc1724cf2197bd9d5808fc8765724945a6924e025f2eecf2a1ab6838147954d556b9b60cbd32f05e6fd330c124c712d7f6d11d01c233352776a9ac9213112e8c6424f973cb6c7484b84e6ad287fb1d467b11747a0822a462683467d8db2b488602e231fe1462842fb14f8858239951989cbf28127d62ec3b16b773a483206994aaf2e582282322835601b5a4c999490d5e6f849c1067540ef697b43708d21cdd5ac2a351b1087f2984b2b6331b4ed537067aac7454bd01b9a0b533bd0a33371fdff665657a6935406c4e84c5d3c1291d93657a764c25180150753061e13e59fc1bd657790be6a2d181cb516c3b980737d225ca865bb0414516fe8c30b1c66be283ac64142ff654602cbe21a71a890fe4a84107d24abe848293190c4449e6f3fd38e4bc8f9c9f4dc453972fbe48adccb34e8ba4e4f8c99a3d8573d1c4d2f374390f1d803dd6cc9b40832897e1278e70abd2e489624004b009a44b3222ca1eb261f2747097dd1a9397ba449e2ef6405260907cf6ea28e2c18c4b402e3d78da2039f0ba94acd129dcfc6574a86d5c5d13361aedf2300a689bfb4d01dd67e26ca8f0c4fdead4dff08de6527c8c72e8ca551e43a8e73e4bfbfe0825b1d2a955340c8990ceff410b9a42745694381077c4b0800a865ef135d69e9ab81d267c3179e199ca7e1701135520ebb51ebba492aaa4dcc13e6a558ad8af4265f82a6e09d77c02e52a6377a37d2ce7b64d0b80f909a306e27a8167dd787123a5f00d82f102219b787810ee718f11d7dec97a31b6b7354db3abed5a9c637efe0f7e69c576b3dfbd6464bd66dd5f7684519f6bf7b290230e0840bb477d9f51960d6852842132028dd2bea3c592598fdc3b2e04be7414c3eb2d290545df47ed2e8a4b6879bc7518f1017465a6a583ee0986c78a071f60a68318dae4972618b9180e03aa8e5aa1322fe418c245d3852934f5fc088b82a8b099fbf37ddd04ae5a6e92282b745e55a9ceb513c864b1aef12ca2cf3585863eb78d070cc2fa1f31c28b897a54f954cd966f66ba98339b8958ee11e235975c66bd55bbbab9313812681e0f28315863271207fee4acd8922596182c1e164951618a71571d4bdf0f3b9f9cdf9e5c16be2e313a3b6529e91f31bbef01c16e3db02c77042d38a4129db6f6243542b49294c2100929f9972601fb47869f678e82cc97a72964311a6cc225ffcd6b69d18ef69be4d3f03edadf859d211067254e49be11f909cbc68740f8e458e881b97ccce3c4c5ca5b4ff3729d15f3416fd59e54cf16f5ca7b0cd276b35e844bef25ac96a0345dbbd2fb670987293f29066604ec1bf5d597bd4257fbf2238968f3eadba25b1e645d008deec9b5e5ffe45e8eed47dc7fab95a0848a325d0130bba8f8bdc222bfed6153307a40052e841b610ff4edb56a4ba20e0cc66cd86ea77f34e65acbcf61e4296c25aa36d1f33499a50024a2c7593aa20828105b2b3c6bce3d04418d56159f3fb9ce34d6ea27df7436621316715ff753e4636a1fd67b13b1f877ad5606bb98ff68275325be09f67a104501d54a4655ea63d466218b0859e12316f27fab7d9b97551d4de3758c2d43a5845f110129ad37c244b96a84e74ad29c8c583e340d64ce9fedeb747b1d6a674a1cd68c5dda27dae59344f58f40339f013d6ffdf980042ffa8aaaf3b509a3a359973b7ac7446f4361a1b6036a3eb4d70e6506f6846c1d87e8dcb724a5290b7a57a492ae0ebd1b95893fe7222b098251961f3a62701ac52394d1d50cc8ed0a66d2e68bf50178df13b7cea989efd7717601176c5881f581ff73acdea943ab2a313d6e26609b7f04567e9666b950dce80cd8ce3779452eff2a0df0bb3f839872c37816733d0063ddad603b8459b7cf75a85652b97e1124a7251c68195cd1830c37c1cc874f24e239398d488c5b0972d2ff1a8ec6947a70a6c1a1aaccade78f44e5b65422efbbf046be55066f0c92903abf3c2e594253b48aa619b6dfa783acac562505688b3d8914bd9a3b692d01fc698e5c8576b62b94078b1cdf6626ccfd2babd30444e155d3f70f24a354b0474e8b2a0728f2a30d3a548131b51de2a72263d2c3af22ed19ec40da784260bb602e8312fad4f54e14f336e5c6cce927ed52454a172f91f915e08a1cf9e607e8feb084c2e91c30dca7daba450f5c54a8fc4c5fa7683b60e80c7d6e1d3b50e90e5c050214d6f3360d708b6270ba32cbf4a94ae2a0c6075f9613353ef3e81450fa2c1b04594201e1580048b29d983bdc92b55d367ac15fc4865725d6f55d46a06386f3c33eae2fb5a56c81999ecc0a1e50e96faea244793eb105f8bfb462853c581e45dc56cdd966496a11e550638a7ba3adc15751cb482002859a5ac65176bbafd23bb57621e529031e9cc78c4c6536513a880027d68cdd4b2bf4e6a7b794b9a3fad7b674be161723565b55fedab9ed7d8013ab915af07da86c8dab5caf8873f6c37b3331bd8b853e8307ff677ed0623960f5180f9616b0d0cc7491c9f1a5972a081c32e5a91fb98ef6780361e9f00e8719c405bf1ed4412ac891aa2d4b6132246ba5d8d382b6fc7d42723dd988f2b69e61f2602cc702a5e5d29c20e993991474c0310fd9817251de5c56bbcc429d60a18ff6597ee33a02031263fa2a7d8426ed6a818fd6f25b57591d996b113ca59c5195ce200b23bbd68f5762fed969852f38832aacc8cc81744bdcd3d284d41ea95a54b752503263f29fbcae747a6ddcb3bc0fcbc31f8ebe225d42bdabe99c401fb0fb0eb5d5cad4f2bcea671e0a50931130d51875822bdc0478341ebd7f259a9d33f99ada182339dde0598cdcfc0396ca0acd08e3126f255216634c27e08a38acf71fb89f1502d270ee253b179135a7ad2ad15dd8b06b5dc2dd1d5186112db2b50e59f2fe611c41a23802063d0b64806f17c16e76589b478d35d0b0bcd4242d090a53ad939ed1e045a52ca70482e4aac3c92b377780a95c24081e27c26b63551bc1e64e837ac049990e1746f3e2a4d6db324ab356ca89c370cc96d333c00027e33627f9d5bf078da5dfa2324e199dd1c2e997e3dd6537f8c24361c0b54ec24ebf530a788ac179224c91f7410692334626ac2c0f13d8df823dd8fe40ea3a9ac59372d3b9a34ee3a6ca97c60c3950088d2697ed0bf742ee061f86ab93a700cd4acb281ee902d9d6c8d329ae8b7cb7456be146e835150b92e4fc81a7882e8566afb535d721274268d232a3f8415553c7a68b71a12189ffc6ab7ec55e4ad955ccef07f12d16dddf2d601c276198e8c340e54347fee509433481f12dfe70d2be9477efca9ce9b39be3a6493ce34281ab47e46fe3c61bccacb8d935b5f5fee97e7a15abedf6cd9589151b86c1378509c44591100a8491ad42fa8524d5afc13733dbbabddf52604bcca14aedd859570e0256103f33c8c6209ce1e241a4a044a9701a5d92f2bb20b80b52484d3f01084ba2d532c1d96c1066d6272a9a5fad327ec8991eb5ddaab40ac8a6c154471c5fecf3a2cec7c52e3c13ee919386d6d6bab9407f1bb820442a425e30ffc8934f76de2a0417e487e11cae9aaf88cf55488e7fc5dcfc0baa1abfdc04eeca25c2bd2b9ef4090de775743d350022e6f115aa2c2d0a72576b67923fac99c1f8151171fb250a1bb8134f36723820185d82cea5a341cfbde1466cac3c15d16dbe007425be9eb7ed4fb060462a18c6996733993ae08aa4dae6435a86b63ec31e5497a86f4317c2a0140e6f64e56942e75ba66c4dd2c37a3db8511e8af0d280c7a11d8a8ab0d01ce238eee4648e70c92cea3d8d168cfcd55ac36391ee73581f18199e6e95d0d6023422088a439ede7da3dd8c8acda4911eac1d5b6377ab8012783f68c1223c68ce9058602ba3eeeae938255807ade8aeca233b15f5c64d10d45d3100c649481a490f8681b997c5c95dfb0a1028de5872ec0f608af740dc731d263ff6cf50829e516cab41f4e59660cb9264c2aacc05ad24cb12aca7ecda701d3ad57d83bef922ac7a8debd32b8a1e111f692675dcb4a82c577141d8bf962b964fca059d0add126a193985e3cdf525389f00d8ba3a90e5f86b5be9badd86c9402eb2f69019491d968b8b4f065a23d242a12e5b2c217028a333743928da4682a863451d1863329b49e88743e1e31d12f02697e6d04c552d6215717961a7f9be99bda54062215625343245e3c382f45e2e8914e64306463360692cddb783ecce258b1c31919b9397735486f490219091db4ff28d72120606154a5c88fb20236ef88e8c6e3d73fc5253257e2636925f3e03293bb82ff5e65759ae4fe130fa7dd75ac2b0aa573bca05ec020117ccec487847bfe3e7bbd359f5d38682bf7a46b8a644aea7ea5e29af86e425718f4d61b4175b1556c8b8aefaa6c5eb505ef82adf0726f771acd1b2ae63be090be1148a9a405503993c9cf47ae06502864361ea9892d7469e415199d5973759fa11d2a00e3c57a28d2c035f72d75134a40823228de6c61365da5832b5dc6484f737d17493cee6a204fba9fb957ad6486fbc4b2cca809a5641871913892369a3bf515ed2489ad682ce7c743b1d21ba0d8c5fe0f63a78d9715932b35cbc3c169a108ec6bc08ad8ebb8dac26c7452dffd7d9a6e98946547a541d99cb39ecdd0c19dfcc74b6a1357499595c64ddaaf24ae12fd7a49278e6f920e13aa10e4b4ea680eb7ed1dc80f283de40114d9212b3a756bb15ade90c787ff2101c18d881c7539c09b4bc463f0761d4d11809e584e05d4fda5b7f1db5da2d5f10e648d5939b67ae766424fe65a0eeabd9c82f9b1a9861d4d9f50e31559db74a2ea6d5ddce45a114e8e4cc325a500bc976b8a0cb08e89e42014230abb9d8d1eb09799ea9f30f136ec018e96402f620facdf8307b59a7f23c626eaaefecd0cb0c5026219be175d8a00656fce84a352b8b546d70ea74788b889f7204b8eadf53d7aadb6d1e3c419486b3447d309d6d5ccd4623c09c05c69da2f779eabe45242c916fb36eebc32ba71681b2954e4d79422f431a28bfb39abd4816eb8df0e3d66afc834aa1c9d384043875fbdc338b944f7c70801a7779594658680734c6825769dd74a68a0a282e47779a0bbef64366859fab6d5133a0d72283c91f66a6ce8a08044cb9988266a57421567fb102272155ed7da568a740f35f9caf5b0ce0e62654102513d9e0ff5d6355da49f14714b24f71f5ff51b048a64e7122a348757325a49ae32a7346830acfb5ae0b702bfe5754731010696d2e8403d0510416b45fffe210709948f6fd033bc934a85ad62a12b62d30fb53649a1fa0ce92f71236fe69e1b4d68159b2013fb8f454ef0f3b893798e727ad8658dad95004adf9e91add974a1b59b17ae8686ebe32a17c61e58f68abede0a1fb24143982af53e5b7946758088944e03bb640a56248e8d2eb88c88123dfa645eb7b3fe04116fdaa104a20812b612d853e57be17d201065f4070792e3aeb4792840296ddfdf40d10ab8702ecb8cb9e9fc6692b18f215fd7b6c32b884093f4552d8f0968facd6ad0584f87dc7d597ce77ca3ceb04456b12c609feb39ec8c8a549c6a03b006c7985372f51414175d2657d7112978fe075e027f178757f57702cb94c1f1f5c88774c39419b1ce3540397f1b56570acf3efd0a1e884e58f5df4cdfaecc11d34b184cddce2ac6721bffd36e734c4d51cb5ddb568bac640a8b5e246a56c48d9c354834be927d1b6e71d01984ac76f9abb25e07b6b2a5c2ec069a9c74c69563e40d259614a14ecfcdfd19c45295835319890d2dd989508dafdeed3759b33e67902c936c5d4d8a47f8d63d0acbca007e4492cb5b90b36d1e0523728718c6f05b9919884b08db39297c0aab7b291285b7bf9a8fb319d7265561d9176a4878fae695150d3a6ec0104005adc6dfa3ed14c4d9555573b307f9c6c94d7e654cc02dd1f2cc05e5da82689282d26dcd9b62322077ae1bd1826b185a47bfaf738bde9f61e54000a33be511be24e664c236d8776db53524b3bce0f21826e90d0d6bd4b272943bddb07d0f3d012c91039a87ba7d58301a12a7033d59c1509be9164184098c5477b02bf58113e34b37268e70bd50938103a866761a57db87f163d73104dce32b760141daa837c26986e27dea636707918c7196c9cd28c58a4e0d919050237bef2da59432259902e507bb07cd072c9b8acaffebd0a1f22acf1f1f2affd23ab6774d3ab67f026cf64d2793c96432994c2693c964328140dc832e674d5bdf2c00dbbf0036fbdbf65fc3665f6503c067f6edf69a3c9e674673bf79ab397fbbf917cdf9ab6caef3c9a1de937526343c1d9ae3bd9248ff5c4b4b0efb541d65cbb6794eb6ab8f651a0d8f0a753ed5004c9f07bcfba23dd61cb4f2807a4ff6ed2051bbe669141ced727ab7e1ab6ea9d8cedffe9b6c570760abb8a4950db2568ea2e1fdc673b623dd1bafb2baf17645c3bf35d9943f6daed39c3f8ecd5b9e33b5a8fda6bffef4b472356d176016950d006f3701fc6f01f8d3a65dcfe99546354f8ca7d79a03c066ed9bfedfdae78f0f6bb9b9d2bff46fef9eb67733a9fd66fad3c6d76e2affd2a62d8bda690bdd4c6aa70d74b3a99db6cfcda876dab49b5dda69cb6e8669a70dbb59a69db6eb669a76dae8cd3eda699b370369a74dde2ca49db678b3aa9d3678339176dafc66271f2dc3ae9310a8b403e89a1e744db62bc155b176abe17fdbfe84e3737c0e4711c1f12522389efacac9964e7fb214c7c624e69ab6e8b9263b04de93fdd39f2c37c71f099c4c9608111d094a71fd6f6c1de4e2fa93b60e9e71fd6d6cdd23e3fad7d88680295b8782b275daed3ca743b9a36d08793bcf19a26f47bb97d3312df37aee4be33e1915e7f012adaba2127491925b2d3817dd5f7b8bdbff8f8bdb36e091823fec14195877c8bb1e85dabd1c171e709061b93d1283830c2b550224410c79d79194fa670ecea58f830c4b6b417d0e87921a1c4a6aaedb124a73efa5332ceabba51d1e0719d6757b2da19680d8121059f28fefb648aa48aaab39afb5bdfec0bb6ea4fe5db2e49178dca31058763f6eff04a00ff819c2079c804cb1af78a1c465255eb0aebdacc40b23f785b2b734a9ddfb8ae68926cc200a2dcc48f9733ffdea417ddf11c1b9fdefbeb810ceea60ebb64569d3bbe15d870e45f6e27bef1f8da364ea598e1bc957b2a82f3e108fc676964e1a54befcd4577cd03d880cb9bbfb7addccddecafbb9b0a19abb0c300b64bfc682f7c41c85885bdba636460df98e5b9751888ccb253108c99cb093c3ccc9289fabe7bb5ea14f04719f4bfad87887708742d40f9734a773a457dcf30da21e0f59724010998b99cc0636409082513bdd2eeb371e6fdc10b8cfa1e3275db95da4655df21e415a257334bdc21e215a279ae912893809780f74d2251faaf23cd6929bfa76efbcd762ab2f9527183910f9f6e30d7c7cfa67c2440240cfdf83c1c256de9e7bf5cb6145fca907cc5bffa8a67138afac2c351f0875033083f95f5f37650a97fc8bb25ec81d0979ffdbb3048dec3c8a70f8324b340ae8f0f435f3ec46ca9ebb340e25f0fc3a3b9f993a69652f07d900f2d0c1298d2fb2230d0969efd21939a7301cd635a31e1cf9f390e5b9c4d286ac73ccdd1d4961d211af5c3573c8d6886f7ff23ec287e7fa7a24c04f555144abefc127d96b9667c38e72c51fb033e5f2035155ffca56fdc580858842bfab513f85128fe48e09940a6e0cb0d48c7a44a703904f0ca2fedf06aae8c6ebb1200a929d849693f10622f6ecb8b89b9d0c3f005dcded19f96eeee2897255183784f6ff76c0836f05afa5986298e7b986e437726fc0049ed6fa27a1246f0761d6f839c7b24c1cc330b15157ac32d53d57ecdfdb5f7f8f1013d053621c82bf77d9db9cf519df39e64ba6206d7bf8b2bcac8ae7f45215d91c6f537610185eb385c878212d7b78002152e0f17205c7f07b44be8faeb90a384ebdf43bbd4ebff038beb0fa45d6ab8fe4158494e19d73f03ed9272fd8138e2f292eb2fe409d77f48bb18e0fa134186eb4fa45d608c8c922cce70fd9f12aec516d7ff2df1b6e8c1f57f46da855bd79914711d74dde6367f7cbc960ba3a84b1805400b3062cc1006314ef04557012283447a151803194930b2842bc4e83c4164c51451a0608a19c5291783bec067eea4b40404c9fb8c77be14b1ad146d0eefc67fade6e637ddaaa89ce2540948ff972e4b799074710424ccc4c4a4aaafcc8f4bd47fada7e32bf35f2be5d0afc8e80b2afcc63e3e91ebe9172161db0f5ff1c82c22343e908f9725f2b4488a92a80beab40fe02b62169796c6ca2cfe8fc6571e74e854e8083941123848e041ab0a24b413e2195d6d213c91318cb005235670051e26e0dc8edb71af78015442ed7ed22b6100da1528b041017678a28b3078210532288318ba09591a462a5fd8386270e10c285369257d7b11f50c52200103265b98828c3334136ec7edb856f05c082184ddab778497f3811042f8208436ecb852e8115f13fce13f0c02f292da7fe154fef70e9d0bd924a39251f9999936c7cf890b08dd5f4f74a4befd8628ed10bafea1e7b62b728f8c00fe10788fc4947c78a9f82f15ad4a4bf1eb14c04779d06b8ffdec7799f17de32bf229ad9544fa9b9b92a5c1deb0246bc3d6b02916c59e6476dacc67e745d4399d0ccc22dfc7c036c89e328c816f18c5dc98eb64e01e7c25ed98988ec162e4bb7c5fd2a88b4aee45967d455239a5b4364dbc8759e497d13af229ad95447acc76df3a251fae0f7dc8c28424d3796d30455c5f9f48b5251f4230f543cf2922d7577bd91f8ca4743519d4fa6a6a6a6a5ecdab11c2c3c3c3c3c3f3f2a12cf99ab3e45349a29aedb80b2242f51e180355b026ebc17a6a503b9fb9f267da85e5284ec92229f9d75624e539ee3b92da8ef4f0067a1c9dc1dd2ca4849c2540418becbe97ac2c18c1eefb28850ea092fbbe1660c9143b00ddf7bde4086740f14f22b910dcd501f37b5fdf9346d41f088bccf4268ef1bdf78c1d6e6eaba351d335be026b0233fd4ed32edd82dbef358eaa518619478ed062e2850952adc5edf79b7e87a2c7c02e7dd33769dcfeeee11e7efbd1b419f7d9d8e8d8f46a09b7bf99b4cbe8f67713ecc2011ec388109e256edb740d352c3082040f9a283146aab3b8fd8fa7082e945d14a080fb56dce3dd7ef1fef17ee807a25533ed72b95cccbd6fbf4198a0ea7ff7d71b68800b1930cc0006173cb14ae5f4efb8716f1db82fb1c27de6e05c087bd5ab1d7149fcbe69eead2214bd9a3ab5eb9bc77415bb50631cd5ac0e035d4165f54c47af8e1817109370e3f388ffa3697a668c1a632a65a2766f898a39517150af296ac74aaa15d509b5fbfb7ab26e0d313c7181113ab1c10b25314f5f3fe84aa2a0822c25ad9d1a288942142efc5d0002a0a9a09898b1c898df0702ccd281896820359f3f3ea8a466f6effd2185ec8bf48ffeffd22c8eda2e88bb8511462330c208e3aca2089a271f3802812284f164dad8d8d850954aa5a29552d79920cba369539b5cc409bb4003a201552a95aa35510ccd930f1c854211c2783225f38ac83edbd139676b2190d57e7eac66a7652e22ec028d08231a50ca1125427e76a0306e51b9b9386117686851b939b7716b636323aa21d0472355e78110dec8018c816594d276f2c927df6386cc8e62d23c0a19f7bb0c637b0dd14a62167f5d64b45d989fabd5fbe183bd75771219330aa2fa83681e1b6d42a55e4097d69afbee8b59f855bf28b74cc1a453d4f7deac04c48ef4c58497457d9f5141f3be9b863fa20690b16a8e7f3893b609f08a7fcc189bf7300b1937cd3d1e3ae6463354e7a74654e7a754547f8634e5d38b47799437c30ac2801286185de8e2848b2450ac6ede0c4d8dcd480a2764718213027dfa7384214617baf8f074e94a6002168f08af7d7cf08b82378ac58b7b84efce34536610c21bf020081ad4d9b9e894d4795eef3d2ca6be57b5388abd3273171f7fff8c32c618a384339b51460861fc07c68d59b8f1257d4c98257e0ed789744208e9940edd5d4713a8056442b3a03933fe595fdf970e960fa5fcfe419cd1b91dccb9fef386a6dfebeb9a3758cca5f378b29a73b8a439dffc9f0c645db75de32b2d457dafcd4034b2d6cc4cca062f94c89a488618848ab920c48ee22a6e5631a99e56a85a64d8b3638c6118f62cff6dccee9f719665d9f3f6016f1378f6898f4568060fcc1277601b223541852d2d3eadff1da77dd7827a3b32dbe9c06ca7724db7d3ea932e9289becae474a89e8a59e2c72c541505a80c330b16794e7b90b1cac5040db3ac80f4970cbc0c6f27065dd338dd3a490c79466a9367264500893fda45d2873151fd9dcea076dc8f76f17720d48ebbce711ce74c413ca02250254992d024d5ddfdbd97fe5c4eb9fc00b8dcc5cbb757fe49eaaba4e75abafb79126a175751090fd53b496212b8077c7755185df4601199d05ff4dca6dacc7dcf70e31d6e31c014fb8a8e8441063b6ef57b1aad9544fa87cfbef2157496afb8f795a4b44a96af208ea33ac5f1609664492a9805be5cd2b45612e99fe35a569f07cc33d44eb25ab25a17326027c77570248b7b60177e46814ec997f64712e0ceccbf1998a4c2ebbafe7a4f6bee69cdbd7779ce850f77aabc9db7d84528cd59209a1ba203cc025f0824d40ed2c02618d2708f27ba1da4e9aebb44c31934c136c06986ea2b5fc1eade6258b51c224aa55760573fb6a8346a878edbfd85d1762ab77bd202ea0e1df45526a7a3db717de52bf05f9a1ea1c2972cc982cf2dbe618821fc87f4bffec03b836f1f9869c4c4dc964285348e028206b69564a8fe417ce5fd050252117c9e33ed366c3061847dd1eba25da8a0cb4abcc8b9dd53e1451853f0828c29d82891c2174aa2500329b4bc0b0660d4fb8e7348d73b055c4749a7cfbec7716574b521c42e76454de7f5ffc93dfafd9dd219e37b6fba201ba2632ef65911fa5966fde97c225a914cdbe646b76cc6541e8e82b9de1ffb9614ccc3d812bf7fc4d89626209fbe0ff1fde94bec33ea1af6ff83a34ad9d39fefefc3f5d4c2d0bfde2f5bca60b24f651ba939ec7d9b1ba659ac85022f354bfc7920f3af0795f86190680f73fd7c1824200b043e7d98f9d7fbc702b97eda127fd52c10faf061a02db16d690e4bd1ece773aa94d9d204ae9fefc3f5d3c22001e24f1f06fef53ec0f8d3c7e663f248ac28fe905294fbaebcf32319f6cf1554f91dbaa0fbd1628c31c6b8c59b7d329016fa5008ed9b2ba8fefd69ecba4df903eaf7a0fb6c5782fbb8c77b972888aceb3cda6934b2cc2c9f2f3cd4dbe11e0578ff2e837bd8f02f0cd7d1b8ac7d3e1f1008f4dee9645f0fb3e43886615b76b22fe6946543a8196516fff845ed6ff9f71d7ddca7ad33d74e1b5f1bb68b328be845a25ab3d3e93348e45d22da85efe9d26cd89c0b66f12fc0e64c98c5bf650b01bd27eb39cdf95b19bdbfe7700f1e7d07badddb717ae910aaf635dabd5b36cf8259fc4f5bf7ee294a393549e97c33ce0f0f9fece9c747cbd5f2a70dfbebe3a3e59465f4e3838821d48ed678af5103fbf0f0c93efbf8f84cd3fe4d1bf6dac7c77f34cd04027dde27fbf82062eb4e3e454b58dd217d4d7f7a937dd3bfd76cd8f8be1bf8be2f80c9643a59221f3a84fa7966964fcfe9df774cbbfc3ffbef5bd52e2a26d367ef13814fe8dfc70767b9fef8e0ac69037dc60f4207bd349af3e70e32bdc9be1e2288708f779fe99f8e7fff54ed42807fff946817967f1cf72aafc2c3277bfff85859811f1f2b969bcb9edbb017d3dc6366d13e3e8820c0a6f201d78f8c7e7e7c447b44f415a44dce5bfcc659ed4b6e5f72f42f1de3e7a6236c1e1fdb9144201008040281409457d8b9427709eb195916d2a8912c0b79b440f6dec707e4e7ee413286ef51bf45fa3d26de6bef49a123fd1f1fecc3c45cf859e4a99dcf789b516525b5172ae4aca9e348f8949eb8ade1a17db83dfc879ff97bb071701ca739f8b00bb56b1cd7619d0793b8f099ed8ceb34c785dabd1ed779b6c797e815e846a813fcda21285a9f6116f85083b6d4383d284f4b34dc78f80d1f65e34e80b45bf76a3c6706073507d38fde3b8d460959d232f7a954385cbdb0ece10f3ab09774afa76f566fc5891ee521b55dadf127b623d9f8ae7554a0e33a2f95bd9ad5eab2b5a6a646fbb772ba6a6ed066e3b1adc65f5bcad70de5c4b6745e1978057ec876ad0215c8766dc4852dd31f6bbb46427b372c2158703378548ffb41901c6d487ec8c8887e84820b5f0f3f32f0eb13c02827737fa1d226b563d6fc01880740daa476ff7a387562bb56493b4b3972e4c89123478e3f82472ac7431a4c2693c9643299548eba713a9d4ea7d3e98fe0913a3d24591c3870e0c08103c71fc12385e36bb0d63efc6e396ab36f654e1975bed81e16a538f0736c241c1b9f366ada2a2d7184812f3afc0872f2efa887cfddb871e3c68d1b376e3cfc9687cfa3542a95be542afd113c5225cb4cc38dad924e9e7e4aad416da06c245e91f21fefd01765e3543c79f87cf2f0ebc9c9689b6c00ea9c8039e79c73fe45a7942fc60dd61d4664acf2a339f82afdde90219c8efb5e88b70dc1a23e6ece0c221cc5dd365aa981508deffac6c9f19d5d526eb8c0b36148644203272d17a861bbbe299b33172d8f0be1b396654fa39f1ce6cb8fdbfc1adfc5ffd1dccc217ecabf788dad9b9fb2957848f91a5fc306313f25484a8def6c7cca471b359e3f39d4d8ba141be487fc2328474efe87a35e2a9e7cf64627ffd2204d894ecc6a0645a2fc4b5f1f3f14f8508053d9f3e787f9270fa795365a9417686d8c96b95229638425f814813eea22d3326e8dc2db6654f8fe1dfd6855f42928273f7a24d0d2dcf735a60d1b9608f61213bdb444e88be4631b1124505a22f22794705a2297cc7cd167d986bdcce486043e7f40ffd13eb34442afd9ba89b6ad8cfa201bb2dd4f84a3688a4539692bda6a086403f3d132ecfa4679059278e5d98c8ac00e39f12284104a087b89912c952231eafa599affae7f693aed8b038234e7b46616006f99b92e01d7751800421a1d782965fe2cca188f541f2f5cb83feae45b7bed5ad4e0fd3683fefcf7f35f69da97f398bc9da7d39cfbbbb93a3e2ffba2a0e2fa434fc2f57f491ac591a5b85e354dd3344dd342a15028140a85402010080402815e1c95bdbf0e3f6019b5e39e67ab95719195713fb1fe411c45adff0f8ecaac3f108ec2ec654f461be55a8984401f6dda0ee6c239e7fcc85e3d745d2b12bb0a81054b5c025c9642053d370bbde7a793794e9edc15b9f4f923bfb1f06ca03bb418cf06faf2e1cbcd957c41e612e0b2129e312e112fdebdc3f372c77f6918fdabc0e47628fff20d86ceceeddfd160c496d743bb5cd8679636513b5210fcd9639f3d4abbf45cba0df1582790b98c619455c4cccdb28d47036af6d9d37fe91dfcd76336087eec334b1f621b336c8e65c4ea524b53e33737d79cb4d1c22433178b116b61584fa531177bedb18f328d8230a65de2631c2f2df420edbd8561d8fb0d86bdab300c3e68a3245f8190d24ac2be5b18f6cdc25817cb1efb8c6218866118f619866118866118866118866118866118866118966d7d297d38339bc09a9b51a1f2dcec9ff6e8d3f1952c0cf57a3873b3ff7c96c1251a05e5c3194883957ec8c8d40f3de88ba43eefee9ebdb332a7c99ce6665fb7ea2b91e42bf13f5bf7505a6bf6bde33b37fbcec9b2ec7bf5566f49766d8f49a35e0cab66462553840952d9bf2db847167c43c7dcec9f159dc9146182dbbd29dc2c7bed19a94965ff8eaac124953de72800b052d9b7382aa6b2e7e1281d1c55a14865ffc3510250a5b2296c52d9ff0084a30e90ca5e88a3bc06aa54f64438ea39a14a653095d55436d24965a026a9ec5f8da3506c5219165299288d54262426461593cafeb1da85c6dc2c63c5dceee17cae873554079910150ada0c08d93721cdbd1e2825333ff41823c32b08b59f3e515f1557f042c5bc5045f5265154ca0516156611864a8b00847a3da1851639463653efbb457abffd91000e32525cb7af1bf42cdcfa724ec3d85c6bed1abb6f6e227c8f408e2b9fdff39862890474548cb642a13ee91cd712939034300bb683a9c58d1e615fa1a2be9f3934c59fd16b4a1a21f57e5837f684f75e85d3514605a37a13255c0ca18651ab5023e4e2652561bcc0a570fe2b8949468451051062363db1606a93c15575142561a0208c9818bcc9ba59e8899144164fe0428adf9950bb8b7bdd800a5be0628c27d0482195c3133b345234610b17a420f5be69daa5b9e01ef07a80bb41ccef9a76995d3b713b8e49b68b3f85e0ae7fd34cdb335b2f7182fa5aef8bf98309c58a7b5cb77fd674376d249316f7a0fd72a75ff2f4cb9e76e923aa76e19925264dbbf44f237225593d23719a98d1c33d66bf54b54bef80c6a65d6efa2514ed82c5ecc425220df790b73fd674cba06d70fb23cb511eb002091be488d1c30532522ecd24c79bdcf6c7137f00a158710f9c9d76611e33da25d40fd378ad16ac41d114730f78fb5da7df77fa9da7df7bba481058d0852a9aacaec03a92ea87aa76e92d6ef7c325582c67b162fa5dd5ef0155bcf6e97ecd39a70e40659052832c1942084924128964e27490489257fafbbdf7b408b5dd4422914824d22c43140289422014b4784e784e784e7846a3d16894c2cc2d66d1c6f1005d36363f5825b1b1494919894227ad96a8250a813e1cc7b5b816d7e250c0b5706e541cc7715cad241233b34aa552a95a4cbcf0228c10c2d56a2aa992fe8c188d535ed7a4514a49e39cf292734e2555beb0582cd68ee92024f1ba26854e279c3ee79c73ce998aaa1a670fee305ed7a4d0e5932c852ee38c31bef85e7cefc5f8de8befc5f7e28b2f46e8d79c33aa6a94b30791119c594a38a3433861840e218c1ea143784475c82c259c714208a7437767677666766766677666676777085f7a8c0ee111d5618c9c8394b0ae97ea6bbb4090e61abb41301ad4eed1300f0dcda3e1e1e1e1e981bef7feda9e917e34cdb59c73cef9686850995940f00121dc43ba3629a594d2c9314b0faccb06117a840e1dfa14d063841e618cd0dd492924d021f4294233a09dcae54ec7dd80d8a1f125da8eadf8bc300b10d46b7512c9ff63943a9a7b400841441acc96551a75d11a2effc637c07f7937400b5fb4cc2c5db3d853cc1c3fbc39a0adb8fdf0dd701bc02cfdef85599afef5ddef38e0e5f60bb3f4cf2cd48e7784883b3b3bb4790708d99acd0d6a072fdfa0662d98914a8f34cae831c6e834f54377b70e1a1a23363fb8fd0eb53869e5b9bd14778b5b69a9bda8fce7b8238cb8646a4727bce0856199f6b4eb04b5a3d0fb5d2c638c317a73dd248f91666313d4fe48432325733a72a283a4806114fa941152a7934a1a29a5324a1a297d3b299ad33dfcb0e2bed74826fa1ef6745aad562bc8c3b6970ae2a877435bb0d5727b037dbec73da594d2876d9c0af2624bb66e5a37ad1b191f75cc487d2a9a041250c53da64aa5ba006db55a945e9765ae871f211db4a6cde817c5e2f4794d3ab139b9f29c580aaba95daf708438aa875ec19e09fde2628c858b3d867118866118f670305aebc39a6218a6d54a1282690f27d2cb5a9ce8d83fc7398661188661dac62921ce71383c0f876213c378c336aca6ae1a090c05235cd149e8ef98745afe3920c00dba95fbbe6bb8c7f5fd6ab43b04e3e1e1e1e12c6366794fb71e98e5fddc84c898d33a588b9460a1a0882a6824aa2290483412894423d1482452a11891a3ea38550f4c72728264599635cd53a9543a9ae3388ee35e16a05229416344a54269e1388ee350b697e21c1544c471950371414620db7d6dd596c85e152412fd48742212893e281ba7b811c7b5b816d7e24423914aa432a276cde27abad7c2b951a958ed72b20487e3388e137df7b5565f0935a8410dfa7cffb382dedc28d12856a9542a954ac58349ce0e126bd435aac8525246a2507632128d42a36c74321af1b3f3a8ded12825656af77a5867354369fa47f3f4a8797e5865d92a5b65ab373333d3d28f8a4434170da5b5b6b470a24d87035efc07bef224292d2d2d29db4bb5fc90d98e0bd9ee45b6235d237b8942d9e84f4628ef978feb4723941f6d432228cbb22c4bd938d5e2a84a39ae3d3b19b9cd2653bbd659cdd8a07c7f63a1775abaa5e5e4a465351aad46abd1e845a2a611358d2865ebe95008f4fdaf094fcee7d39f95f6ab37a3d29950de8cdbb8cd7b76fbd1dcfb93ad87e6de8f361d9a73c0cb025a74704c785097d4e1e7a46de8bc6b522aff39ee4929578f6e9c9a4fa83131df97add5ada42df788dacf975964a8b97d5968c4dc7e6dc50eed5af6b81bf42e1137c7fcd273e9f6522f6ef9bafe39ee5d4a29e5c5536ca175e9c6a9178e8befc75bcd27d48e79bab722c2014f45c564baefaddaa5cd70a7e55ca79e5c668d61e6f24807311145b4395373fdb5b9f6eb0a82fef59052fa939248934e4ae9f58d65f437ee958c5ed7f574f3afb5b9474221d1866664196bfce67cf3b56feca7acb636275f0631ffea3e3f6d08e295a00f815e6acc2413e843260da55d42f679bedfd7a897d2e446b54ddb6a73f3b10da5b9e6e667a1cf75e96bd2bf567adffb22a0179b08b12084504a294ff0a28c993ba95a83fafed7a1b35c86c5f08cdae2281ed591c00be1936c24e9aa744a29a59452babf739f31b8a316d8671886f974c2867b3517d521023a80f1d402c18910dec427e08559a81db3fa2bf000f8fea906b08bec420860d489001835f9fd2df7a8815de677a1f8b4fec47e0a86da8a31be76d769972e268949da25b25c3e1ce9b5756a74745ef0749a83aff3745e4fcf0b62105bd549bc9ec17b382f783d2a55cdb3a257e033f9e2e948fb7098057ed6aa1e099b892b6dd72d80bfc3d353b3750f27c74b27eabbf539d53d1dd57b3a8ee2389ddb3cdd938303af40c6620937f4f06c80df75122efcaeadb8b0974c184545d23af841830bbf916054887b48d377ddc485b0643b5afa1c21cbbc82e3644d96992b597a46ed381ab61073f2e9963127bfb7c99cfcb93973f27190273dc887afa66fc75614797cbb5d1eb9f134d820a59c88b8965629d14d03dbc88537eae7c6bfb494a197b555747aebd0603b6691a67d6955f7069481d6860d1b366cd8b061e36da52896f2cac872dd98566dabd946b18daf8d34a794a222d17134a1248c9efb42fcdc9b82a1767ee337dca34379b741a0a0bc3ffd4245b11e88359d54422ac14eb5e6b6960d7eca77fedc4702d0faa3fc8bc3120f289ff2293608f8282d28df299f75351ee54f6ad8ae484acad6a1d816cb8151e373a222a8246e973439cad48c0800000450001315002028100a878442915830506455f80114800c7b904070541e49856990e4300c19630801041000000043046648c836002ee855c29bffcd2761295e0976791f86226f0d500673e18fdbb2adbb18579a7ce50eeb27118cefa4e707f777d5176d18fdce91795c35bf5cefc68210fda82904ea3fa3ae38c25865a9a409195145a1960d9e68cbb338f260405b84dec5dc10ac79d20f5ee6d4693f6811147e4b124e75f18807f251533a4ab61ab23a16816c3cc0d7f514954c3047c8cadd8c8b741f00a3d9a05c0c288b3bc629b1279f4077a59d2e3259d4b2552186db5fd3fe4af93383326e8d4e8c598039fc8009bf02b33907a64e0483595c89f1156938c780886f457a7d91394bc0d391aade4aeab93be7591f21bd096fba13c3da79e59d29949cc3c1e0cb8b40b043885605fe86cf10e5ba1dc8c46a63fe96949f6b80952f2556e69a4bbdaa4de377ce45c7b3b08fec6ab06e892a70f9c3ecc1e6650c2c694402fa3b7853ef902e2b6d3742de74dd6ed55a32ab4373b8f9bfafe02ccbab185a334d921b324aaf693dd6be7f9080f3c55df9b2a7fe67de23fac11a9f5f95d3c8e6d12749db312a08c7f23b39512a94db12d2a527b5b1bc62e73f710641a96e44e6ed6ba1bd1f327ee3d3fd025a2b159741103dafc5e7c231caaadbefd52f8f9a0e3278ff587cb7219e4966d4c1aff73d7a6ce97456b982ebd7ff84c262ebe563c531a7a69af697194e34329423b1be203d3bd8bee46231e81a4d86091acb4b77767fbe33e5fd92ff38e72fe00b5366401cdda46999e0c55c7e4d20ae1bfd346af375288c1fa527da0969eaff506b6cd4dc18a295a8779ed297a577311e992cab617ba1f765c1e1842df5b00bc7dd89ed378f82011bb14efc2a2b09efebd78c1998e9f2bbda946725cd863b895636eb3e3953d97e55732269d244ab24adc683e6d603b6228ced64257e1df4bd000e4d4bfa2edcfb41e98f6e8f1243a924a0e3a4873b1104bb6ebe5ae6ff4645ae47765307f5eeabaf107532a4bdb031d5435ee574d84d44596a745dc98abd458d68dfc03e23e1cc60d77fc47c6aafe319f411d2d54475f18bda583e5a37e6f116720d2eff53847179a18826fc13d37d51f1ae4495ca47bfefc7d20dd61355495707f22ffe32fc8c0610b949d7e8279cfeb23fd188c9015bf394809dd003e2a4c58aa779d166b07239bf1f457cb5b818c601d4d0caf0047f64fc42cfb036974fad982b8aef6c5d61074bb16aeb8e8514326efe439649469cdba979064f28c5d713a2e6e15460fc61fcf2eff142568248912cf2a58e6449244ba0c6ae8b9809ab217de9e14c808a927e1c138f3209c3c305d1c8ae1c9ce4df71c334d2a84dc27094e1f17a7931e90c919a08ce1c35a99621033d2bbe02150aa3969b200b54f37cc89938c9021c55ae111f73f60612f8450b49c03cb0ad8f17f06f926a1820b38b54516749c7d8d2a597b00595a8770ef4f6e1129c33065593e5da191b6d4ad335f90c9fa172752a0b31034fc98899114ea3346de074c762c0835bcd23ca62bed1b247db27ce3741eeed128648ab70eb4ff42b787c5de4eb7606d9cb8becfd25d99b9fec4d66f7267e3c1b6faf51bb83d85575c953a926ffedc46bb972c746e738e29a05a25d4f6caf0e36da8568111bf13710cf20af38f1d771e3ce78ccc9f66de7a0e079a0ade464902a85f85f28a9a210fcd00a44043dd44364734d0c7c66d573f3721552a5d41f1e043f7c2d312f755aeb9d3aa8fc739db41f190c98c8e81157836352c8a6b6b9351b4c0b1a06be273860f0184c549c8c1458fc3a4740d65787a7ba2d85dfc88235015e15b8aa6682f05514133e74b88770ca0966ee20e4afc70603ca9d23618f03683e10b7db39878a102ab58b8baea3c12d9bb3e156d3150a66b079612adb59c31c153b9295786ba306caa4196ca171d740152b84d22574bdf1929dd2c7744a63b1bcf43191380bcba47abe407405934812b238743d8666180614a18a867b56367d1803934819e79bb84ee1ad3b57a95f05e08771ea12df6d5afe5b0b2d25350d2ac20b059b3c1b6533154842af057580dae1eaf2dd4f85eee6eda1a64ec1f99c25a447084e39e4c8e8203208ca4b78592d6410fe14f25ecf25a30b2bd46dce00aa039c8ccfccbc701d23d883a3026c9b0b2d5be598f6e86ba2df9a5e4ce7fff04579c70c3231daceead8266d414d68a5a78fa56b9295d69e9281f51783bd2a3b72c2fd307dfb30f1b15065363c7d308b31c6926bd9302dd2feb7156510fdc4126abb0dfc96b314c59a821eccadcc95b11f5b612afe869797296d83345e88fb0ab78e9a471259197a5e3a40515d7b665f3aa58be09d448c2d59baa218a7b0e77a9e263c606c11ba492084db687d8dd0ac64663eb4351c54dece7cf34842be9652538f82d8484e6e5fc727c8cbbb6d8f0bd042b48780d2be30ec379c7762a59c3d4eea817854d5fa5b41a214b0f5049f2ad4c8f5881f15cb68ed4832ec358104ef10567018bc8251788e4004ee373fcad60abbb2c1801bd29b247802ad8e7058defc147aa24ee2e6e12bc924e0e38f89f9a927e130932d653891f8cf30280b7182f721ed0d2ea1bd4b0510e8faf0dee839312a2396e2a569f2954b4487726c2437cd822d5adf66febc1e4677b1bc1f5a4629070433e12367ddea2322df966b92d46410b91a8e5131f573dfe2872ff4a6247a3b67d9a082af18036f3138e4eb1a0a31344bad0bd869a1a5ac13dbe4c49bda419884049212dafd5c1996310a2e604c3a3cac4597a09bcb654e30d35c31da1c644e8e58973fb2c99bd2b20b2ac7f24592c6e7723637bc8e6171dd5ed3cf493e0eb18c3a34c99ac1bf0a3f6941e4f19d6adaf7dffb6f1cb8401551dffbb48f0cb170656f2387ce789caf99be8c34d9de5876fe0615da03ce935ef2377f0d7678fcd6a46e5b3ae722116c15861ecb94a4ea8b52fce77a73f3bf0c022ba0d663deff5dbfe4a82eda4a276b0595d10e6f5ebe3d17e974f939bc92e79d94ea0fd6230a5e00827548dc045cfafa7def8b9c859e7f126471d5e6a945086a3bfaf09f797095dd510ecd562ea5029f7c5eb8b8abeb05dd4b9b37740c807da21cd5f726d3e05e77ded2dfba3da12cdb7ebf7895599ee14ee33a6e06c6f1189caaa6fa45a839895a05fe270818fe747f93482a76c26b6bff6b8749f510985a7a0f1e45d91dc23fdbfd44d149b1653ae030dd962009b5c25b89cf18d3a736f00a5df283b60368ed6851747400bfc6924e22083792b51975e60e9056e0d01ebadae521f2b5291af46c320ef40e916a237e701f803f46ca7e969dc1f8bcd922716fa0f6213823ace3b3efddfdaedef3fa7b103112dac2127b3072d43d2d5322c04121c247307e753f74672b0a912041b7324870c7b441ae76b566af1707c4809b4fdac624a68719b4f3434555e9ae6bf9919094a30825e8ae3adb74f5ace1ede5273f4d0ede34a1554cfff85dc490dec802598e908eded818ffa48849924a247b5c207ddec1d0372fb1129d4d52c114d1e45a7b7ee62e49b6f253e9007b5f8738d338d6f74725ab90cda3e25f21858aa78e47a69244e05a1d9003e3f572bcd8820c814e9477a7874932522176870983867c54d34da7eb302a7c39ca8d6e19230091abb027482c612dfcc10f5238fbcd17eef0d8f56f390fcdd74ad45540e70ef78f2eed6cc6e985f5d61c811a7f2f141bc96610bc25e680c2d8a2945ae0a86728ed756dbe64c280a8d6fa812b5003d0b1ea68be74d7ca6fb878989028f232b544b08c46129cf217d063249154c7fc66594195224effeec00f82bf053efa0fb12922b59683d4c7179f006a43bb88cddc0d5ae04b714e1c96766d7d235e5de7c747328fbbb5cb72712bff97b50085451d8e9c9b9e18ec7a9790d711162e0bae74d132b93a92591dc137e1dfd58ae4088502f91ba90223d58e51f2454cadca8b93b5d5d9394105f22a28b5d17457b09f6f6e9f5e088165df4133677e49d6c71edbaa428ab9c08ec5d7e507a558d776831b92134c959fec58c4e1e2fa0f68d1fb00be216dd855abcc9e438d6f4ccbebe5ff629a214c3ca801690aadb546b1ab0a2b45015b376bbad34f591b57b6d537fcd09ee3305020ce6ed4c5c2f1ccc082581780efb3b3ce6723f35c64cd22d4d7b1854827d97067515bb739dff385ace07325fcd774a43df3fd0521c69a5ea06b8950667089bae9489782356ffc91dcf596bbcc5fbc2c73b340acdd1f960025f7fbb6d582ff84be27bd5bf92db7593cfe5690a639b9bcb34482f22d6c5348089ab991665090de4ecc3e58e6e640b0d785250848e2922c1b8023bfa5f7d8d3a3646dbb616544f58fd26f19d2617e19b7fed7fd144962ac4f3217fed92704dedf12f974d97e5d293178055afe0efd9c4171409f45a0cc1f687f10547282feda451bd039c10d55158ad5be392d5145e920e283c8f5444b611037b579bba1ee6284a5003e22003b3844d205f798bc630155629749972e8df23887f4d44f3eda80af0e30cd43337b86e55e4728edc7eff5bff87afc4a281f882662cabfe886417cf478037d0cd9471be2bbbc48f94637518cb4c83487924cea8a864bb17178a087fed3890242cec4d78608952f497fb3876468d0094c1a6f04f34ee1d70803a4dade8bfa33c43033eae7a67bb91195e1e529cf5c5d66080bb853c65dabf89de4eb6c6799b4d08e801f2564de60d55ae4b44bb9a9087d6ab650119e7946157e8b057c8b78ff6088f38ca9b1fbb13b108bd5cb2bc853faaea5464645dac2b1e50e2c94106cb00b3a01409641b50497e03f07366bfd48f7eed705693efe52a62208b590b297af2ec3e4cf613cc3faaea0dde48fc8bdccfa673234181dc1916124b4234d22b0484822f6bf3742433d4ad34700314f1650457ed4c976b0f2164f19874820e9cac6964cdc295a41ad06df6e993fa221b512bc908107b4a6425b46b891f7fd6d3a403517b587109601a203bb52d7474b48094cf8a340cb348db11f0efb10c86a782bec7d01e019853d0b4a798d49b39c5aba5455a9ae95dff84cc7d24f15aae68eca638f3664b603e7e3768a2f79fc2a0f64550bdc8afd70807304562a8533340c2f92cb1a8b0b81299c5176ac495bb16fff1969a1ad0519b01c1c81afaf92315e517060be94b0bd496ab365b60cce34caf807ea6f6082c03ee0c042dc6aee1c04a5d045c4c9ddb5ff4d6fc58c79840c0545d05de9c04fb97dbc3b8aef8adc0f20a3c8d9155d5124634b56ab19b01174296d71ba7632e086ba6ae21ca9dcf40995ccfb645e1191e98d68ab11c9a8768d6f10edda221b764fc7dd5cfd0a77ad1f0e2fc564091c55a558e88941ce3b9baaa89f05e013b640c693c1886fc2939bd8dc8f18f5c4c7683cb887a5832987cec7d775f6cfb739ffbe3780a985c0fa913e15c588aa3730a0d36f544f9ed57cde086e15ddb4e663c55ef249c345e17d2b262b7228b259daef995372614815e5418d87b0a110ae368ade001768b1fbbe316bddd842900b1c5cad2f00f4719a7c78df4369d8f07d70bb2c32e01065fe000501435954f156bdee070490ac8c1b12142e1cdf0240785a0817a3b941c52cdf248bc95e9ad5cc94b83190beb87ba8f927070a6a288699fc451b155b793c22969a1984b801892e40891b4c4b3f9f4ded34a8b33c8f8d8fa22e5af474ce2d6bfc80c6cafa8cd1c1ed44708dd293fca3f870aa20b663c850991084a7dcf4126218043ff8ff77ae75387018e705a54f6bca4e2064d45fca885d59bd29a3b6ca637da3954cd47939840e737ec881867c777d98aa6707cef3a4b75594685eb08997cf9f792b78878263c18dfde6e7d9abb91648fe98873e08dda909c7dbf82710e114ddba1cc25f86d306f48fe703a916a7247c2dc1fdeff5e8b7ae894396a1cbcf971e334341e70f50713b91d9a546b62475b661cddd76cc013e5941a81f5e3db2f9827f8c9d9606a7eb96e6068d53136e970d5913f1b6ab08c212afc2b1102e85e580e0fe65c98fa2933b386257d14bc25beea7130c0da6a527e79e3bf04587e553ce7850cb557079c60ba98254338538146cf96e29fb4c7becad4fb50e7e5544594eaf0cf97fafe5b5de66e3fa5b56d94c8c40fa70d3460b827a67c27e761ce14d0735a1afb29c664f5c7b75d4dd7efed712392f244d3078aa5dbdabdbb6ecf7616527311604a04178912bae759c27bc908c087527688ad4980768e5a60c8c116d204c7258ba58ffc98c121e7433d2185445375ef23a3700f38aff0467d32bafa616a16ee3d7ecd8642cb059cdb1c6d1fc0b3eaadddeb91436422bc43219beafc3d41c25eeb7ef186657a073b7c3e0b7ae0e813362725a2b9fe0d8a4d08a6a61f9a4c4a145eb8cc8a196beb44ced52943786f767e74dbee9490b5e00132f9ffe62390c187381208ba2259de0e341e4d4d09c4a3714a9884acb8b80012f2362fec726ab6128fd1aa1fd675c66079e6370ce61e128fc27d85018eb38be116c67f106d18872d505336a010917be86722a7985e3e3e755da4061c48b419f68dca71ad2dc710e534fb7fca9acb29822f990b59244068f171cc4dc33af789e269fec25af7da5cce27f67417c872008b2913a58907b1687bb478bcd79306cf920eff46394143bd939d1d66b63f7342356e6630a56bfd2c082f0195541b2a6c839aac15643e053c1a2f9137b5da47789eed5adafdcd35237f4c0113ba728c311e4487e42585485c736cda17ca987118d5c0353b16e619e58a75eb65b026b819fec6a699d7d1ba65aefda19e130050dae8b4d04c5616203b17d8f900b5c824d25f81d5df9942ea03bd75f6eba60ae0a509791d98ff2c6c6221bf402f0b866060f9d78ebad80adbc5f65c8eea52d3beecaa262d8ed77f51c9818f4b0bd4487421359838ef22470f58758880a3e6af7fe21acff42c8c08ece9ca1297a992d8e81d27066263fbc7ccb0aec8af1673c177b4f3551506a8d72e196beac08bd682a9b56c8bb0cbf1f43d3b641f5ee12826492f47f7b5e84ceb968de7009063eb44688a22cb512609a1e22464e9030e9e8a2a0620b428bc0dc6570a049546bce3eebde43d0faf55129a347b13f67ca44ffabc605232610577eeb99ae801b94e07ab98944a225cf38f945c15e1f18ef51797ff125524c9b4f5f3dafbfd8301bed2f4286838a3b1015169b86bade4eed54f6189773d77a0d97d516abf84ce866a92f1d346a9dcc10ea6298c0abde5f095dbda9e8f411799c183291bc2b8e31661d8f8e7fe54accf6e20ad0e2a9fd14674b6b4a15dd9eed9cae6b6d47c04e020904eac73d3ca654c239f0736faa10302013d1e22ed96108fcd6284b60184422953941e441b6eb756caa597749e65d59a2c7108512f75b5ce68d12e909aef43038d7e91f3a239b1867d3b8e6dc8406a984ebb64dd243e802645a3c5ee7378f09b210c431168f4b91e97e01618866fa5c6b342a822d34054ea384e743a313ad1de5ebc2f7a9e3b555ad69469ecf33067a997af8ad93b54fb58d685b6fb0b0d599cfdc595f6f817de01a89607bd8e926ff099643f8c7ec5440f2781eb19bfa3c7f602e65d5c27cede21da211cb55cf482dc8bfef49207cb0c35cbdc08bff035b1388aafa02524e316ed37527d62590d076a02e5f436dbb97e1bef919d14f4e62b15f4543339284365897269d2a0735a5816919edbcd6dfdf022f9fc26fd5b69c41cb2ff65f554f692f3ff15e00f20d436fcba6113367062f6bed3a5409dfd45f943036586904165f7a4823e8f0856b1fea920486aec0e5e6fc0c3378179776a447393742da917307700def58c6d2c72ded85dca3f6f8bf78b21d6d6be4cfde83c8ba521260f85480ddb5cab9f9a246326b209cc48e68b140ff9afafe0bd0c1723698a49f515a4766d93cfb9c2fc2e1d075aca7f4ca6eba5647b8bec58403ba437a0d9940489714e65e0f3c0e68cd745b86589bb688899672d758f63859cbf605e78fd42a9544b25853c0d3e75ac0deb3a7072621ed8ed626f75547707fefdc9eb79c33e6316ab5996826f8896140fbda23b88105ccfc899e411420e81f2fb546755d4a7fd72c02a8fd6b9788b4c4923a1102f2424e36e4cad2f58665d67a3a369a5fed08cb40b63cec3f07b2b3b41e32d84832f758f151c35d34e3b1be0f93c31dd6440bdb07d33d51a1e4741972688e398e5cd23cc94213e12e29b683596cda1c61e806ea997cb37bace2619a63d7d3f816c1c6232c96aa98de606d804e4ca2d2d42bdc4995cac3dbc05720acc232ae7618654306253c355612a26b666ce193e2aab66c58575170539987107e20862816215c7ce1b8e138eeea8d15244ba7aedb5ab50787a3b05747c5a40a4ee988ca89ac6e2c23dc6985f1b399af9a233b4117305a84c5fc752bd0f42b9a4c2ecaa330a314e8a00c0963fb8429185310a5b17fe4088b88a2a0cafcafa11933ecfd1b1ab12d9db87b863236811cbd4d91e5ec81d55f874f869b5bfd4e976e1391e03cacf06789bda1ac92213b74d8f5dc7472e5f226076c6af75ed419aca25b3f37d188f0336c2d88a465fd21c1d5834f0ec4d3e5d578cff9e0d00b91d281ba8bb66551798b0477d6f56be0962641c2173550ff1d96efe18b63c51bc6a2a89bc184355601011313bff956c5cab4bbffe1a417945360b22bb4156b139df96a785a2a2d1f349b49a92552ca07efb0e1924e8a05547fde05901106ba619905c97aa0fdb09bbc17fbedb993ab5ff3e198782d63ed81f9dcd79d8a36878c525635af1dc86e7bad412fcceb98f5be3373f74a11f30411c607aefc0f2c48c8418b9bd746a76bb174110e2fd05a5fddba0bf7b382090b96c284922a4c605c38a655713e97bebc7ae56e6d5d398f7545b989c377007ead7296d1c08b7713635b2c11bde34afa5f943c2cf8e3d817603369d7eed695da59186e09a010e94351b60b959ba5e8abe64df0a3dc8eb0ec489a49171852246666fe4a0f35b1a8da2193150be99c2d1b40be630bc0dd63c0a10c800cbc09c9c584bd07a926e33987a96596b1f100cdb4a35ea3d3b49c85610b8d23d33e91ca85b9a89e70974b9e850071c4092b31124b1f15a596d2ccd227474bdf46bc2ab18ed0357d57605ca30d01dbde19e509ce4376b0161631a4fd2aabeb980729a428624bf854547139cffa564c71e6af303258b658f06fa3449e7769a4d5a4eeec5b73aa8659792ec6025cb2eafac1387a0262348528608e35f590c9df84955a22aa4e3eb621e146f147a2fc53cfcf327c58eb98e2b6d82a359ef43cf82025dc3312825698ec8d5f4b7f81675ab8731991122a347e800e586111c2766dcf954042a7209d95b61929f9c809b9b805f9cb0f1ad48590b9b0ebc4c71eb0024156bce9c97429cd31d34d10bec1a610d9f7103163c865b5619a0852115297ca26ffe098b135f8dd6bb6ceca7fd8583a45f7e0c00df26b5766f830721e3730a2d925e91e8691edbcb5da805a7bf5c8bc1bb4efebce0c3f17e470633a6a49ec3fcf7e9351692ababb75f682f6b0acc6d0933a6b81ed0ec5101e5053cb3805f0cea33631515725f5c3208de1bb4e85720320908eaccb012010a8a492d03e057c5d98d968c7b4a2b7c1b6cc7ad327559a87806c12401dcb822ba2c4b3478ca6c15f0057fa694afec1f7ec3e75aac6816d91c293681b90f38906d50afb839c376f00c8350ec04a5d16149af0ebd6bd4cd3145ecf29f5f143fb8fcbd73ac1efc37aff7216bbd91af773ca05fa83c07b52936ac4fea43ace4126000a1ebcd7de18aa65e9ca30c86eb36ed5d254cc94bbb705052c6148c96f4e796329689b4b033bab6f06a5b1a417d22c46a293e19c1da2b7ce1505238e2615fa7fe898867dd4c6f6648b0bb0f541e9a0d9bcd1b88dd06bc534b0d36af4bca093e8a8ef3e46851d142585e6a6a1110744607afd018666deee89b0c8e9ac1e339b010d8b3c7e71b42da57e30846d67822422960227eca40ac5d12edbca2ae04a214146769f6059e1e09aa5cc53333cec77a077d2bdc4c6637630d85c99383fc9e9a85f904beff008e443099fc481102ddb0dd8d07733fc4e28266a90895e7a8f562539119efb302131fb22324a60c0314491034eecdcb069202ef0adcf3f4e3356433651574e231b0db35403085a918207a8a7e1ecfee8c16dced7a79cace4b82a34d9dccc424b686d5cbb053b05eb4c82bb51f1d30f42e14f9dd9c8d3768ba74548a17f4491e070c640fb262d1093305d07f9b4391ffff3a141c9e530b441d0987e3e36caac1e9d2ecce46a80b6c476152cd9c97670cfec93c404788ba9222f5f78c0ab499e541dd94f287cea9288d48007edadedd331bcd6117c5bd9767bbdc9f6ea62943d06ed62c8baec0872080b32cdcf30ace7283531e25dc8aabf8f1adace5d00585b81a20c49cd3cf80b3a336013afd006bbdf6743d3bdd2ad435908c225de416ef667463db01134275c5fa5b14b3d4d9d4e5160afe8f7812bae67d50c20b8212045b977337bb2e8ccf14c90d462b2d9686d1766fb1d2ddf132f89e0f40c58301301376f0512dbccd281d99dec0e99ab253908f09a4553d3f34d85465cb904fbf1724ab309265a4be0b2f7e48c2b17185f163296e1daf30350c4178e355f214d21ab880b852ea4e0756f337865eba8e99a4af1923d6612662e8c11f35612b78243c3a70f2f6ed3182b85fbdbc8ad946ac01ce280025dfdeb256fc47437740190ffa8c28c9ea9f13757279a4b60fa452095b587f70831f0a05a7bf300751b9182afcc60a2e34f9138be4f04f0a46d514ddb6307b06e2cbfeabeb4e197cba15f4f8d3797bb92bf1a6937e136e5da5ff9e7ac616ae855807ddff44942c59903827283a7138c9b3e802d2eca11b74bad5ccef54dc6b5cd5d3bb7566fce9e18dcff1f568554f66c5fc93c5f56f85902a7805af42367a81eb93bc79e16dfd7017ca65385b012cbc66987f2ab47f2d2d9819907bb6ba6d19e8abe61a56f0e9d3315efb5a0a32398e1de318575989b69a3ab0555548de54f58ef046f994f0876b1ae10e6b612ac1cc8f60e83fc71b5671b892c0c37848745402bb10de5fd4bfe166b9420c631e492829713c02220890f75909036c5468c8388ac8f52eb7ed1d5e298493b182a1521c4250fcda07abdda4cfe99cb87e4b8d93b51fe074c2c03a15ccafb39fc302cc310e773a1ce754c574586aa7db8e04d703e0c1e6379e6a95d0773af0b96731d27975f2699fd2db36ef442b8a915f543a371e941d2d52b883ed7b166eb54baedf85dcd16ed861b95c52da7bba5cbd204c81f896fb5c81206b45a4e931df9b34830786aa3548c31c2741d95dbf011d52d8894dd0756c5196c4104c1c9e83e0c274772dc3245298277ddcb24fac6f223f73e64b55f738079f5c3bd458218b5c182531c37a06cfa852511abdf57c23c37c13b68212885ffc98bd642842038b7bd31e33e3da1e5312026a1207601c805726769665aa648dcd5dc3e021d9a2b875843d56a9c72eeb190ee1b1de0e8cb4b73c843d1568d15b9bf3401708d686cb6a4b86e96792219c2781e277c8e8f89e88e313596a6c974b76b3e93f74f60a87512a3d137d84a1ae846faa737b18ed199189a1cc2162b84d6d399c8ab0dbdc88c340f07e80a039e1f65cee0938c33c825acb8ab3ae922de09be1f567e8b1f9b15a7ba88addb6dc2fd8e745a78a4dcdddfd46a3c1dd018aeebea6f5d3bdcb777783f32388154a7e2e809c8a644a6ca3227398f9b49623da0525f2f1e1d7fe67e6fb268c76d258f1039ec923d99d5d7abb610b730ab9dc169fb80f96a7fbfec0d0da5ac6f6bc6274a681e30d01d6ebd67becf1ea6fb4c14680db5f443319ccf072162114a49fe7cc15699198d15a0763853f471c97337c0c5c4d8bb232d0bf6c528b990897455cd460cad5864fdf069c73c7cdc9f9292232272fb59bb1a4fd4c219cf1911832bba6ae27844dbab48a1e4b254358ed5cebde0be4e793c5654a15174c9545e06bacf9634ecaf24aa449560c8aee40c50d69b9d1cd8c28d9ca44d9f72f0b5362f49f28041d9695ed752f3b0d760687a1d8b5ecc9ab90ff415cdd69a14619e392c66a5e868d5c6b6c0e8c88d11b5777f1b43d1237a7ed3bba9d87f621a7c55a87d6a0679217cc8e2f580066e14689e6b987353d6548d9cc3fae73d7c8562b3bdf8cd8d1041c0e017f6d66e80963e18c85c35e247208cd868258889bb6f52a97eac1d7475bb71986ea5ebff29edfe7c41c217a9051610e36b9ecb143af77f61926c765ef778821b80a5d6d1a9a54373778f3880ef7d2d8d9bca0a85db921d4811c0be7620a0262cd5b10104d408c484fb000e68d3798473e2fb3209d0dbd7c23a2fa9e694508968b9d7ef5ecac09d7867d1607c3960bf0bdd161c23b7a460e637af951f6696b6f4ea401226e1e23c274df490a37d2e61f7da77c37ff0d85c22c7a79c9fdb72ceb119de554548183d444841ba468b099626f12d07100a4eef9b76660a1c6b1ae2f4e945e0892eec57ab223043c0a871c3e7e353d7711d5baf8e1f36ea44159f191063f947109f3289b73c409449c3250342ec81c0b059dd615373b96f2a419594a689f027e7da80b89e378e9a42a10cbb9fc506e6365f70470d6eef5a41261fa4f0b984c4d44c8766b633f3345181479f51b8ea29b038bc06249f328bc8396b914aa2f7432ce0ae25b57bc97be2768b7932458d4c21df02e2899b7c914a9900c21c2b11d7e082b6e1f7113a741d2bdacd3963e69fce5e48eee14ffe42177fc8db51eb49282c88f8e510eefe4a28c386c5f70ac6cf5a0e586707add1c30be1791bcd732f190d847da177128f89402d1aeffe0c556e0e213e41f0354eee261add156c76e349203415ec402560519a91c7d8cfe5f0d262e93000d6fdbcf1489164d1683eeab2c2ec987266094887a911df75a891dd00c92a8d71d9f6b35f81c6c426c9e893958813bf140335994a69c961f6433beae2c7c036163603e3c4b5edf8c25f1b98bb08504a0733113901de241430d331b18e25e42bb196ab9a92dcb688faf5c5c0f749126423c88b6085fbc4785f9c57fd78a3b5d474beb6f0a3ad2c61da444a7421fe2714900aabf9968d77c1527d3c6054df3bd62a1c2c8c717120d34942b369abbe714e7db745d349b83d318a86a654496c881963a296e5a203a1b1c5d7f181b556b1a6144e7775500d3af5d62c705d00d3e74265c777c6031fe238454e69b705be66ca188417644be0ca51d2b4b30e8e2da504303bd0df82138270052e22f94b292a1944cfe53f8f34b471200cd6107849028b3ebc45889b56a3fdfb7cd644e55cfa14e8e34fff484f5cd7a26d217ff755836415f20684a02ecb3edb93853a8a4139bda2e2433c5058eb8dfd310f84866cd4ad992a5b8b3fa100746878d9b0107a05a5e05f470827c41e31e4b9bab239b6c1dd8b2412cab99d12267fb3b105f6567bfb4e855163526286c21ca9929546eaf0b5219388b43c143e88774a4d079ac03944390eb8baedd8bca53e9819e9fe32973070335e4910151cb5026485efdb56f98b8727b6df9f333c12edd03544240fdb976f70703df500a75224f735abd7f7f733faa543113512c4f4107815c0d3d78e9cfb4e9db4bf0cbe1afcb52207918ee02aff1a01dd6a93429305befc6335441956340f54026d76fd2248da5fec6e788f6085170bcb8d44f280beb5cfe43188fff8e199b4432a48ac666f957ae5809729f8fe680ad6fe7fffec2d78164c67db32d6bdeebeb747db888aeb68116e2459749db02e40d50447ea79e73722c77f8ef905f116cbb5fc8f70639a0bc84df4408a36e511a46d777d89e57e104871e24205059efe8f3adbe2096e360b9c2f194c78df9f952f5b29adf1b85a2fb779c6fec7f4a168b1bc626b431f7bfb52650fdd91cac3776d857d358daa5115bcf8779a5315b852c7c9bf061dfdbba7efeaee4b44d61cdde9b4ee77493bc86e9d0506bd7d9e497539d916da76c31be07713989d0be76dbf854936e05bd1dd653e18c2ae27a90ea948dcd479eb95f44da1c4c23797cac9d41dfc910f61cc0052d5e5e1312e3e9939cc211449773f3836ec5efa57d33595b05821422b9588437ec3b6da667c74fc53cb9d8ce2869e3a99fb72b16b85dcdd0600f840c30aa3fa5b17b4e535ea63ee35a5767eca6db0264ab614c8600fa5e7afc044e18579212abd518b27599ba0b1038ac55d580e08bcf125026ac98d1a606b4e1feecd5891f1e05c67bdc9dfcb9ec27cd42113da70b121c3f95bba2236e060e4cc82a5bc4ef5772907e7341426659633e17c9d2e7e9a910b8dc4ee25b45144ec9554a8f334f52f3b92be65499e465f24f2fa67c07efa9509d8563356ac669e5a6a94675530509cfd63d0c8a3b86d64d8e23192555a474dc7a3589981d52b7ddb0b5a336be76c2cf51ed9f7b7bfdfa6f7fa6a3f814ba333e049de05b01bf025bf744e1217d5b2c438fd47209e8745dfa898b233e5a469e044b0fa29efb27cf65dafcab0c9936189154f7ef2712edb30cd13cc923b3a254a5322f3f96719097e132cc291ceb8ce658b05df7b1bb04865558502526ffb1a5fb3aeac4791e1c6fc0786b1706cdf1fb93e487b5efe11664085c738b1e4db4399de56e7460215928f00da21a19d20bfbbb0502a25ff9f9bf91d6cd7b709207af9dd59d373880077e277982dd5c727f0bb029545ade7f7ddfe288b6ab1e2be13bb704f0291d2a97e24a14f9dd57f0ba4a782af4165070bbaf91e563df52dea0492e4e6ccd26adb8171f4e81284d1e4b1f475b586939d5c95a52233f50194125d3ef3abe77d6dd7de2d67757cf235a25f1a20ded82005fabdaf4b5fcc0640a8c469740aad2317dc24f06301cc2b34444f36f5f76da1bdb99776065bd2fb1c85085bb42cb4422ea204e19df88cdfad93def8cf12e6d19ee786ba76bf1cb77e9697e1f26d7d4ac15db09a73fde990f932ccc506e3d3f6cc630107090d22c2015108de51416cf8817c5dfcb9ebf602f5bedd0c7c683f2d6568e541cf567cdae1aa7d8169b9663ffdde8b9acd3b42bac130c1b4ddf86968b844c722340a61a30631dbbb0da2bc42a89699de72c9cacc8653c2350c0a386ec88f92b7e70352373d4d40e30389b3ebee3dfeae805183566d12257ad440c7ab57a37277ea4836b32173241890e57ab949f8350d17e5feb8007677dfbc040217755198500f98237568c35830585386a521a6c6d4b97c2dad0c27e0be63056cab932740717c911fba359954872293d24b8ed1890e3e194df645a63bfb88df28566ed6931e0269dfcdf9ef91957abfeb6a3a4cec988cc4d62ee6c8aa00a857b47fcfd1b2ea1aeb65361bfe0b4d729a6dc08d9333f543a61c691a369391b7285b0d8967c304ee79031c34d62938a09a825ba6318fac8deb927fd5666c70f7d899c0cf301a1b0bff8bf8f5f3c29b7f1c5f494ba009425b19a02a72308a8ee613c81d3fdd0e494bebdd55cc75aa6c86c9c7b56bce6c8261c854d7291993667a7492b3e2efaa916851c8d778e8f77542cf92d4fa06fa7d6de6d45b14e7528f28f3afd802f4189c27dd3cd54981b32f55b828ec39341be8753cbb05ec3f91787d0784db3e2b1d0aeb29c2df7b79cd04e38d084c16190688db01c03ceaff97302e078c6303c62a6bc634d2b07e6c00af08143157d8677477aac7132880d0f313c65304f001890066d625e9981cbe148e14542027d6fb398a41b64081b2ae3b0544d3bc6af97c4361547bb3de807c8d040b38f2bf3e39076a30cf141a8a11494356fe6eb8df65027de94c519f2513b8af12e1adeb04c2238d32658c7919b360e1a47af2988c165152f045c0a6cf7bed917b477a06ea91dbebd0a4e9fa2423871a5e00e4b133aa3007cfedcc1108cca64bf030ee23a0fa9b064cc099688a3c82fecc6e23422ac89a016ebc86ac46d1aaa919b837759cc5f454cb8e4a802073827b36b29905f9a2a66fcefe302f2483855f150500b854e06d40bdf29880a6a7a843cfd7fb3f828f4a0e7d459b9d5a6b8b6fd174aa2066e07a5546c599c0c7bd6a1143a9c15b1d25bf9bc4913856d4242249b413c698b5830990746fddcdb08a5c38ee86d15216cbf1ff5c1816093f85eb7e83cfbba1718c25bd74536757407f39274aa1dbbf7e9cfdab801b74fc9539f8310a36d72556d0d4b793eb2f64f16588f15687858ea60852ef86c7beb907efac201f22083a07c21ae04b2a3c5f5b9c1ca42abeb110d6f883d84ad38da24c1a1a2e305e9f5427affc7116b08c03f770cd1b61b792c179bbcdea12fdcfc22326d40c9c0aeb761e69d73a96e5fee92e64e67580777bb585a32910c845987eca209ec8ae8ca88493f992e88762985309fbb7a2d6ec75c9c9ffb7eaff8915e78790d72aeb7f7a1c829f13e4510769c6fd18a8daa69a421fd59de71cf3bbcbe78ff6cfcdb2e54aaae18722b224ff27505ddb01b52f08dc2aff043ee74c049bd30dabd0aed9c51d4b75eb2ecfb363e14e0055b7eff56466599fb276d91357fb38ed3de8a6e53ad1257ed1b56616f151f027f214935658f978ef791377ed0660ec8ce039321b4493426ed8ae6e6120155c1cd055be500c07e2b92ec3d91b246c509cec1c6f84a2b913d490e28b781d18f4af5f9a407888ae44b6c31553ef584ec658171d8c7d7ec964a2ef9118cb8afd4989154ad073a9d123aa9738a50432646f8dc323e1913e10885910ab7ef2de735e406d4f39dbab438b86620386e8d072f535c02c35f3deecef0c365424dd4611d42ad56ac61b183dad46c476058449283a8b294fec589da4df9515d9ae7c935b90ed76dcb09eb4350896362b96ad7443d0b2b148409d5bf140decdd0cd4d79ee5dc6b63cc65453d45bb24c62cec8c38e5eb174150d08b55e183481bd3580c0cb3c23fb21dd2208c83e86310d35971e57d8418a79bda1bed368b95e8f14bc8ed212695b81ca9d5fdf03d5ed1c6593c6c4212d00fbf7bc162472ed996518857215d7cbd77db43ae9f1c58662aafc15d896e6deb92521b776b177875c6fad9ce4901f004d0fcf7767da1e99bd7756f0fff1812538ca83448526df864089eaf87ddfd586b9465933c230ccac167ccb021ab5b62a33ba4680045f64fe6b701b4b2b065319065157615939871daebc3beb0d66457aef91b82eba12bccb208d9bdd45be0012b57f23245a58ec68c5c43138e02e8921365636443bfa0ac75bdf10d71d8345f266b5bf3e210160072c281fcd994cf8c03927d1c53389f85e713bb16f135eb007fe4880867ee0981f04f46370bd2472db283aa20136d3f3bcb57353cb1a3299ded1a8cc6619c1dd42ec16fce225d9c72fdbd9e251352a2db3916d94887fca08aeab78a6cfa59fab21472e3336f0b3bdb90deeaacbbf16da847297ca2828a484a2a317b995383aee166dc7763f36340b588d0bcdfcd0155a0b98adcb69ea2e076e4f09411dafa1fab5a8f48f3a084af1fb044dfe81dfa70fe9f0304bc706186f1d71403050a80b6ba92fee61e057bc9fe0feb76eafb56ddfe1d681dbb890ef6a3de37531d08ca076a76edd1d9204b541db99eedcf319298205c146b9ef77a5199ba5f92efbf23e0d6346101d3e479b979562804a3efc4e2907f7147b029210c2d598c22c0e91f35f3f3cc61bc801228178f12b7c795b8b8b5e4190c390ba8e9548f7b9a746209c998dac3dd5010517248e2e63166895a100de1795e0d516fff1d6497c4685391044397968f328e6f9a6bcddd9d6fa2f8a0b0722774520be869a9986c4c3314782645664e98ce51d0712f6ba02a34ada9c619cbf0a9561139e3b13d042d529f0b8434c18b04cb943937f3ee726e7b31f9c629fd17a502126a26251dfc546934bb2835cd678fee4aa1018892abee23543faf8fdbfff32170f51c5655b5db3b8c0369f7384284b0ac3845278efff8fd280cba7720ebf0731a1c1dd5caa2450ece314b306c079587ce60916b48f1b136583dd5f95b5de6d1bd4ceea9a3b40392b52715705182882740d222626c2faedd27229ce7f5dd110cfd4399d8c9a76c431634ca551f37197903b31b6ed6a0b0a2bae762948357bfd62c6cb92e5a35d8d136978b282eec28395945438ac56e5a25517d8a67502605ecbc7c3e907062ea09036dc02a7da5dd2d9875af43ab46847dc3a0efc0e7755ac3a3e62e3575941ea1ff87063d7e43a18a9b87b9d4b54fe47fb19ca2308e409da673ceaf43ddd29ec33078343833b72b36babdaf82a99e5a0d1fc9dbe65936797f9337801e85d6f0e4ecfe78cd07de87d3fa511ee6f58b98f6a00bd1558c547e003286d79f394988db590c1c07c779a556ba15d67a72f21c87d0ecdfdd813199952dad46aa8742a05446704343f6d353777c6dc89f8ea8321daa3d2ce2c1b72349b26b0e777b4ba72468df49c6cecf6385f505e934ffad166a52c97c1b0317edf6776ca0e3f78677d26100397060bb937655423a2732c30315cbe3ce811dfafeb4bc78dcfb7def8fff45ce927cdd02f89bd65ebcbff11a8821b298c2e44a2f78125d785c591cd26175ca4faf2ef53f3f6a6a4d7f0dec5dd54f0fa141809f53de78ae3ca9ceebe09df3ffb5f9557708b816bcbf81dee34c44f6e572cf4a1622c93185df5f6022488eb393ecfe81ccb62c22dc64e802f173fbf7eb4d19c4e1e56d784bd069a85ff1d9b52c9b764e4f202a3e66a35ccb452643a5f2546014e533f178fc582b2c52d5c697f7c05a67494ffa463bbcdccd82305ba2c583c44ff7310c27139ad00209eba978b799b5a39eed15f1a251a544fcc0b4f4dbf58f44ec72df0970aee23f1c1d723daa1f349f9b5f01c70e561c5c0d615dd5490d7ca3de4055409a7c71d9d5f594d843f8792f85b1a46d5f6afe45c22b775fdb9ec4f5cd2135dfce6c7488f2bd18523d759f7f3cc9db70efb08b01130f56ffda7013109fb81bc35bce98c84768e128cef59ace358bef940f3aba823884ef66c3b4063dbc77f651cc57aefbc494ddc09191b62d51266aa77c75f5e9bcab15c8608e3af78ff8ed768970f598ecf7edb35c976ea96b207a14812c65d3d2370fe5efd394bca33658ef30b08bebf9ee304aa84e6228b8016ccb4714f2c67037a7c578eb9eb962b32ad9c662b22034b2d8267de6bbc7ef79bab749679b4eacea8495ef616294f33c35a7bbaca232bb2bf4e4247c3c86ebfe9d7739fb86f531d60b491d79a71626d3566566deb7b23b2f831bf6dd8e3f42e898313aff7b33fbfb694547beb5aa0deec68bbadbe98a32bb10cac749dec4a6de8da0e87c32e4d280a0aee83d1113ffddfb5a09f1747609cfc621c7f52c3c1b28f33c83d3b930f5370b26fefbfcfeaef14ad065d785a983eb824b356a5394c90057c6ab1e2b3e930e86dc5ab648964172ad5b318bd11e63d3d4cc16219c0de13f9d7ff46f489d2b370b4be9fbcd15f54124787456bcb8de7087f69a05dbae47e9f9d3a22c58051b114f4a9c9b350c2f0a7543581bf83a9e31d4213cfcd2bb38f1256c9672f4799aad6c0ff98f65e610e6df6c1b56e5a4c7f2e481e7cc88821b30ce77d996e1222e33c529f3085c32e26a4c22217fe5e2d58b20c145196aac6b89200d0516333b84ca9aa9a05ef40e021a5c894bab417e427b572063ea54a35a4f487063be9b4bd151d8e14469b5d40efbe0b4547d85f28f144cc4c0531cd4c5b1d40a7513c021f415034afa094afc861e6a82fdfbb4da9b13882b876af021a888a0b73793df236107bd8003009b79c354f61cfd171457ed8071d34fc4578f9ad06e8840cabe3c91671e175268971cfb187159701df7d18593a5dfb2f33e19ec888fe8f8acc1dbe872537dc9897e6361f43c96b477bcefbb86dfc7cfdbb05d9723d6ab054236447e178232cf8da0e3969742850d7544321555a9ca449aefc90b6238d59d1ca33b5b266dd97253e9338ba548f734c91d57a504263c463490bb2cca2e0534a2a8f40d69f2d9bc2af611fd7d912603124fffc562ed489685bd7bb4d046059585a751c8d5c803af0640922299db794a69aa2328adcebd33004739edd695026cafc7ef43642cd22104e97a2b004cf274ae8a82fc7637fb5563b838308cf7279a0acf1c262c7d88e75616efdc86739ebeda0287d28ed3081a12c4c0a9a3d97e9bc9a5af7b73791587f6a4403f61ef0ef456bcd9c05b1bfcc6fc060ff956d20bf2a842531874731795be661d2db3b1a66cf38f6c6c241d48e019dad02077614a90859fe475492eb9452d7d3f4c89a70587096c9febaed6fcf80b279dba7170205556719d9e6fa09f748394eafa55b2fdf7f403d918d367558c1d853a55f36eae25e6c35c956101d0ac189c1d3b2e98790e931ca2a161d8962516f5e10ff48239adf0b0ba4f7d91bc21e0e1073661ee62894d499fd920adfff86694436d4af29dfa6910dcac3e6dd98dae1c6fcd3f64c13a3092f19b7bab9cf2805ffccdf0fccef642a35a83839669bb6fba588ce435fb128e5293dc92fce9d85bf5ada2e21542f4a0bbe4c27d89e075628b7b1f7e97321725f5a33112515cc4bd1db0adf1dd61f139202c0964773e275a7239dc1cf24d92003f1d85e19e3074e3149b46e9a00d26031e6e58d4947e94a73c618949137cc14d8485b0ccd44a262cdfa9913c9c15433b33f7a72a6aa521a0af5373bd8cd61b379fdf914371d5dd167d647554e9a23e5b68d91fb21b79854e24653ee44e10eb6bae1bbd0de690b2e0ae0f20eeb6a22a909481834c37940c5cfd71c853cf8239849f931c820d736b284fb5ee604c6a152bef8ce7adfb9ebf676658b915fa96c1bcbbf370174212b62313839aa1437aed76c75593d28e2cffe77e8a0cc16b8ca1a44e022e11d117741b11d1e4ecfc25d9927cec92d0b7e09d68d91858ad5b8166cc38da6cb907b2027ebd1bc1ff9d71ac4ef39ddbc694585a630a4c8399a13064b9c2c9388b0fc8c24984fd273d08fd1bbe8bfd854369c58ebe0176501e73a142cab80dbd5a7b5a51b0c370d39722c04b182945b33db0517168e45c2dd63ac5e66c6549d8e900de35c5e9485881eeaadf56e17140c9a7da9769e5d2e17ea9d1b765f9915f9b200c66b8d3da5dd1498912a052564be5a9bf09c07361ecc9dafa86d868f2af4d73ff9afde8a15a019f836031e824feb06868dbf591f188128f63c62b3ded4d48e941af075f64736237b0bfdab1b486d7afa4379d8038c6a453c0ab8cd60b9197a5fac288ff7bd510c2cee676239221635bc8ba23bc9be3aecc783af56ac42c4d6824e7aa37d98f4cb63315ac3d35672a11a501e1e7c0f564f205dcdd4808ba3d68a9f0b24ff45a6d0db14b53b83f8276b622d0debd7525cf16f216c5c77fe7dda92e9db2a13a09582125e034328b93ca0807ee13526c384a0a160477d6f37efa7e1a75331be30c46f126ff5c93790f998054ad2f813242b29a8bdf04664b5b1eef0a28fd273e3a64dcdeb173b3fa20f47d0405f9eb3469e8a64a4b9e0293b932916f727e0593fa190df01de1f2bb6f47fbefc0541a2881d45d669bc8243a445a9b9fc96dbe974a0fe5d1230152d2940c9d54cca2274a1ebc9b50ebf50ab340ffd9ba3714dfffcc53cde1277632d1abf9efecfc4d81d0ab7229808940f572e422d5375014734f8a1e6fa4187d0e661e6cdcc4ce777e429fa783f1f36961022ba464cf836884a6dcd56c82bee9a6fe308b26f6f31f598fb184b45ad172357c6e86d29381070587357334a278b31f23ee693dedc6629730531057ce0632ad1671e1c200ea778236f4f7270547be28bc10194920ceea8414d017c7629ad207261be2ba8c198fb576c6c668b8a941e6e78efa7d273fb5317f500eadb9035be59d26ab2342523f82a4df268a8d04d5c6b52158d11d8dd438e96c2dfe2ebb735bb02fc94324b1b84cc47c721f3ccfe3d547c8c87c1c7bdea3404e206097e80fd4db9cb5aabf872d0db2893450cca1e5d028b7d34463fe0d00f4ea45870f80f04f673b7a9b5d74787d737f1c047dc1484788890da276d72e9da0289917e65096e565c48bbf9085141800388ce4fcbb477b3fa63e0d0b7141e43690add01d250f85d3115b2db6365431968a34b32cac0bd4b0685025904fce476a0bbd1f79d39f8ce6192ca3cec7d42c696bed4aaf864f18126bb5968849f4ae7a99143c564af4093a53627945d7357ef4bd86bcbac47537bc2f6a2be34d3f1a7e6373110342c142ed683c423db3777c810e159e0e1ddb7cd0c487259f7523544867d256ba229ac5784492f3d01ab3bb9125af1b7e8f1895650d9381184e3b8522d08df0733b0fd94fd1e6cb74c616e3a8bd9b8d834b55f9b601184c3853f810064ddcece34ef82cb75f6dc9960b5d3bc50ff2f9137b8668c9ba722a0dadaa48c8996a16fe4c9fa45e689200e9924ef2ba7e948a955580803b518ecdcae2c29acfd4611847c1bfd0e2c95dea70b2017247a9101e6bd91dc41a5e1d26f5fd438cccec52c2a212bc03f442057e2bb145f870d53e46a299af72c68dd025358da40dfd1557fe95694221b197fbe3a14b3d66b1a6fa37297ba646653ad16a647ddc31c76e46bf84d1228acd7b0932041a409d5dc8866c94b7cdd64e7e6c40e3d94197167392debc364399cbbb2cd718f1c0590c7c14d025bbc37456220ea591acb4143da294ec2387d3080f04af68ecc2163a75d1d998bf9bb7c51c2cb97d175ccfa7e0f2c7440baf1088129d3574032518db5c28bf92b29174f59d4bc90059712b7e9ffe4d286ea5a2a4496c547878cd08d43c5bb52d1baf6e812946201498afd11f8d71a1af83342a690c0aab1597b56c4f204db4e939b52fa367045e324014858c7f182d4653294c63933a7e140e2457231c45b16bd84c47478c0726f3e4c8c68c0df91a63f0e9e08bb2a8820216bd8d698b03d449a128d4cef8f4980d64e19df4675bd30860b3883541d13958f73b1c4bd76c009d2a98cc6431db40d612634551e5b172ed9d152867a6c9f252500fd6882abf09358e0852c8e3e2a933a791358e9fa4b2aa2fc0dc21fe9bd78b1fc4e16a7587113eee626330e50ef384b21862e99f5bff1e3030596a9cd5dcef55550fdcc704b466315f745faaf0b59231addba974fe1c5b6967e63f2adf1240d31b3bf0a5ebfbfb2959e810a540d59cb740dafe165b64549f59c5950d7cc1b58eaf7cfd4d5ebca8b5ffb45a367d852f8858580a1d823efcfb1ecbe5ceb9dc084fb15c295eb1908bd44138cce1c0981f50ee4fb87d1026a06026b906d7fc71bb7ce073baea52031d842907c0149fe70cb53f28be5e0cfe6b9145e8ba357efa502d318e961c574bcbcafceb250182b59955b2fd66fcaad06b7c91c8b56f235dd2f5f80d83b973bc8e42bb7fa66b45a4300a250f64158cabe9aec56b5c5156ae118d03b153b8085d01760ea7e9403f8c602c93a03ae2602e143c94328db1d4c795c52fc6e48a711e784970e66b7ef3b86e1f5fa623dbed62962d035fce5d5f16cdb5117d64fe71472d1c9c8d9fc852909b31fafafd736a8335048f0358511896fb95fe387fa6405a4b829657802ec7564d0ab8d8b7f67283dad3fd2f78969cc36fa24e2453bd238aab38303108eee33eaf4b6ddb068c800ec49fc3cb2f42e2a24d43b796d5a189d5be80efce617b56b88a20cf8968f42b3a3666a5d07b36e1d0d9c0b17c82a81bdc74b5adbfdede5d82c34a0343aba06ea4ea640a25758bc0bb6dbc523b6db0e7547520ccef194d50efea8f2c63b26691172af7f5571f815237c85d49958ce6ff2696ee67ef8ee5ba8b8e3ca5064c15d1ffa09962b5ae104c474d21b2e34ccfd9cf39ed7807cf8ec62745c20031542d25b4f0fb6cd07f016bcbde7151c133b69a7f278d8d6e84bad7e824fbfef24ecf99dd16620113ad56fd0d963d205f782be154957cbbea036199ed10d14444d0435fa7753f85d8472bf63920a88440a9578abd50a74073151e23dd76ea0bd83165419a6062db5a7b022626122640538c3049c136f018d5e8095bfc3d9446fb694dbff798eb9aefe7605bfe4ee5e78299b33ca8c45fe5629c6b2dcbfe73b60ccc12ebc86b71e8213f376d6e12b03f0da6fcd64e5e4e0b605cf7a74bb9bbbd484bd72427bc29e09248d95a7903e2e50368f7e58610f93033194bce9871021968a0fa7648c1d98d238a72d13c24e4278a868c4814ac05fef39ec3e9522684f18bb97982c72872c410d1c8de00244e8cef97224d723c81ef90690722ca1aa815d838fedd56713cc1378930819b95fbd95ad2c1117a7209c3abbf33d746ee2cfd2b13ee18f40552edad838e3c3059620c23741f21959a22d809825a0f3ea70339bc2913d609fd635a69cb9b703802fa5a1c12cf9af4f6423bfb1d78ac39b6c1306b1f458f2a82131900b94bf23b5d085b60cd41970e0c93e5af67fbbbaa8f800583cea1fb23e0458daa06ef43fdad4b366e93b9c34106f1541ceb72e4088b40b6b30415b4e954c63b6a8fe091fa1913ee291708d73d757be284c25a2ed1805b138fa22c44459faf8300cade6743e7f99794c2f92bddb0902a576bc1f8ffa6eaa9f0cb2cd80c3dff2d224b1e5661927a9dfadf2cbc4373a0817b0295e51cc2947be1415c50784c1411ad30516283409906c4e19d3e12f387a5e6776c1e6cdb594fc63f823c1077825237d72d14672869739232e01e4d0261da6bac665f79ac0b45ff33c82db5683414c045176c8a63392521381f5473c0726881d6bd6a948abde32d09a410e74da1ed7e5f9b7d4aa142bb060856a52e74a0f6c01e76cee1a2c92728a8ecb1d1e1e0915a6fa433960f243059ebb4950643998d514531045378fa9dc6e7c8fd69cc5fa90c915b2d84f7e6e200112e15b0fdea3351178b341c4b8d2ec530d2ef68d48b6f95624dcda88cebd5982611ddc9a0a1370b26e7b45fff45d8570d28531d3a4fc874f5a79d0efb09feaff74e2f8e417e397945aeb90a635c44486afea236910948db79d9c1babb6911743160a4bedab0ff2e7f6492277e5b559f959fa6246094a0e3bf89b35bf4b6a6a26841af56b0eee55484d21fa33528616087125c7e5196e220635bb1e35486c833423d1b013c59b0a5964063f97fc6ccfaaf1b254629cfd6d6081d4e67503922165a9e2cca90c5e140b04edad32e6201bbd6790c5571b1c184582be8713cd8635b2065afa97defab1da840fb77931846b074cad911240fe98003d8a0fd020627b65a7a0459845806c0cc475d3bb0fe383fd2ce6d914b3b1019c1ce441958386a37d8a1a4ec6509f43d8bbc9318d3c22ed1ae858e92c7d4afb63fc376567e2c829011ed50a14b9e1518ffc826e2cd847876f362ca3c69fb81639485dc931bcd119e07804380def3aaabd9daa9e4bc4fb1f0806bee4e774c0c73d2e7545271a1d003fd2a5b2f722da52991bcfb71a23ba4e80a1092a5a657dc9f5195babf3aaeb2bea34971f5a61a803ce8721089fbe7a0f6ae4340340b88d46540839df04976136f7a9c1a484c73890330860a970c37547f569726dce6980448292e6706d8a54f1a6193c8cda0cfc625caa10a43da338dc6a085689a1e317fdc7b0def46bef083543867d0084dc26e4de7cc846daa2f7a811b97d77b61bd078795a2070fdbe0dbebe35dbd9be1d62ed8eddebc1907faa226f2582eca99c20a10c393ee279a9fd899d1b868b97357ec4659707784a0d51e98c395558b30ba7300769ba081575d231d43f6d3efad230a595d91e8c3d2e15152593709438c42703650657a2c7554d134026b826aff4e76e14dd5293f0fd3165968a6332128d184c01deebbd12d1f0dc24608814479296fe7175247f324de67cbc5a158e7fe0a2607658d26492eae82e980480ac476784de4df4c3e737867c4be4a691b6364eff5c6c2e9241e1a97bd8b49ad6e3b7b8bfbdbc6de17f0cdd451dde6493f5a01cd7be150cec829fc177d4c53c2b2a6de8823f5dfbdad5ce8eea685bb3e7c4ee8ca73ca7501ceb5bf487693f058c1b3a6b74f7cfe20e52c21238c006dfd7dd6c4aa9be753598b81427990f4d908959682e1d7b7b874477e948a7100d7be92891e219eb6d9504227b5d391347ccbfb08998574415068d9be166a12f07a331a69570df166bb544f61ef85da64d42673a26157053c4c1bb1fa10416d071cd1578bc563a8ccdfa40e13566056dce3a7f03b0d32836f5904416fb43a9deb11bf1b14fbcfbbe7a7525813623a556124940ef9b39b11ab165ee0b999e65368b6c0000926878b54068b8b954a9569ac97188849fa1490d02c9d99bc764a19ecf871ec0009411664f1d33516749f382c8cf1783c4156b7b41125b63524a71d8825332bb1c18722500907c97101bf2f2ba6a1f0c734f8b72b35e8cd2b0cf0e245986b38295bc966ada92ef4aeca6934f81142a903ca056428b7e32dc6eb0027a7caae8cd620a3237acec94ed55591c5eb859b805160cfc93a8bb14da54eb78b8ba3eb699f7e32f370d229279a61001d469875197a7f419066604b7d8ecbac5a1569ef5ff0e02efc1929687e0b35ce25ca22845a8140546fcae2b6899b5f8e072cd1a7dceb701680adb9512b2561134a29f6b60aa708fbcc86460119b0832ca6a94149b19c3f76967e1a0a47c467ef5ca9db51fe7e8c408b240fda6e5d7b3d941f2649ab21ab38b2153c996cfeca714ec8f6d4916202803d80b6f46dd9f6d8513fbbe0ed0ab7ff7d5eec39a7ddad6448a8ec1cf75e3b81c76fbfacafdb4c0024ffa278af4a50302d18d0599143899eb6b7aea77882113cdf7aba94ebd4beb95e5d16fc8b3af6345de39ff5e1226d879a2d0de32fd40186a01b4ac77cdb7388b416d17cf9560a3eb8b2cfc8c3e23470f875a5d0746ad86434ffeeb990727ac419acb0a68c34bfd4ae46583b9fb6c736e3b655f57d4037ab59ff01b65bbe02595f68a680f23ad407e3a86dae553d0b24998e986d047583acff861502c44fa31ec810f61cba61cabe0301aa9c7875f822fe2268717aa00c3926786eb60fe58c031210e82971a451395c120e192b9d39e7155f3a22dd3eb3145a42a7f81d37cc5242d7a03bb57113d1d99b698f4c4a44b24a7495db02e648e0dcad3522bff45a0f0180d7b33693f9c7a3522d49f3a47d7216fcdf811ac53ac4c4d0faf9733afa78975928deb40f1aacc520c750a65fd0e5ab5a9ed8a1313ca12468a979c96ec064e4c6ae70de4b24e6c4c1c9f0c53add49483abef5db12131498a1bde5122413f88bdd93cb8daa0b1ec279a6e4e89e23c78cace799fbd203ebfdab56382638f50d9d7884c82b6d87f8bc3bd08d7644a3de82fa7ef460f3470409e82606cf0eee1c66c681ad5a0b2c0ff69fd97ffbc928976956048d222b473d9169f888a1bf1fc237d70cb243e1fc404df49f85a30348760453296ac082b701e057e5e0713f056ee85e34c460cd19ea720beacdec6866a1c68dfb986571944dc26849bf8c97ba042fb36a3c031cfc14330fe58978ef8cb9c906374e902a157f88353a0b46209c459ab4b7de8c11475df0aca99e62928df2c1871fc65fe7eae79d69e43c6afd46dc3c9e5f9a0d9f45c833ec80c058e59613d3a48449b8f72793871c2d336468e9c7819347b35d3e212c44c1c4d41b7d160b78685719262394e83b2bb888a627afe62a7cacd05d8d8992048abde0eaa556e63468225a0778bc8210377ee7a18b16a17879f67df3de10f0b9e1e2de4abda7ca9f5d67b93f3085f9239349caa03ad7bf3256ae2d11e81363d93b0cdace0baf0bd6dbede70245f63c8e21ec4c5cc1512d1c21bd626da95e768cdd93ec3a253ce845f0db19d3fa5bf552789c29855a9c8a06b80b52f4f7638817cb07e58c636a6c2adbfe9536751cb62a8a842d7395eec84c9a37762d0a3ad6e5127beda3b230242ad7aeb4d172e3f8d575563cc754a1a5569fc82d172a5d9a1625ac9f63ea188ccbb0a5a2239296ee6ca91068e3d9ea40f80458e8349911dfebed15eafa51f7fc109b2a1111108a11f5ee20981d3e777948a7120f314bd37acd1b96f534e677721ba55faadc67294d072d7d157621e931142b9d10b3263c01e1ddb0ff654ac53d127d4c0508fd7591751250da7787bb252882fea9cad8c7296ba65c034482c5e6f44a5120f88cfbb0ff56c9e686b0b1f1343a1e0a9708b0f03e1c6859410da8193a59ddc5a46552852bc4933904fbcf103f3612ddfd72bbf82d021b033d5b43b24c5f84dcc64858c5f10fca3ce269d6cd8c6cb7f96c7392cd1ad6108f5ac4d8c403f44bd3184363021608fb14db156d32bbb4f05865124d46124d9e5cc3416068ff13d54644e714f8a40d7453eed3cf79711f57abc945c579a853dc177fb229d904a98bb329182a664442677867921cc3e44f4bd7921afc0635e6860e30b150fa9d2aedaf399c7203065d6d9e5611aa99d8b9d172f8519f96d6ec5bbbba057688b34d2eb740233d444a9a3423ef0a8f0742a64d0e052f86984eaa8c2f4798654217001fa4979c347359b2c98b911715c540935a9495f7d2f8bb64af1770f8d44794caf50cddea6fc3836effe74ea740b265de9b0b847c00e2581eedf115f4b0a09f132e8a2a82e6213214f6ae0de003e6af57b280f50354cb708355e835e390da5b4c98e4aab0b96e6f020038f71469b18b44d74ebca60186a3fc744e3af9b8496135872ae33499d307810e8861730164d99f224ea5ff0da3a7adffab8eea72ff5dfd1d0d4e5a01be801d60827a56ada5c0f3605b1829c88f7dcc820d3e54f02bb5b17893154f2596521a16fd8f0b008c44e119b93d873e2c252ac488bb387319e34460cc7cfb2ad7cde6db0fd855da639d3076ca2e7975cfa8ae543350cf5b2ae274e7425208623c2cc100ae907c2b98315bbe19c6580fd0ba1a5ba336011036beed8da5a2504dda623323b00dcff775081e887a0d8e9e9beacf2e5727e6f28fb26a5836112b8b0ed516fc8d603faf366fd0c12cfd06a0e02ca912e20ed808326ba364350eaa2421cb2da1d53dee9b5d150644707b28c9a5cd60c5d228644ae742a02c9f2d50f5ac3daed449605beb6abe61436af54f37639448a91c4e297a2a1df34ac95181ccf882984ded5aed53de83187597f9b1d007298afa400354e9fda01309cfe051f2017747f4ecb0c701c92e3a8b213fddff0d04b81ee3f66b30d1e1b9696e9e26ddbc35e8f4a3b8e543a604b666778f3b5c0123ba45923514bbd6f0179c6edfcfd08ff8aacc36a4a1fe41afa27861132394ffe733436ef18cd421c92d144d500aa7f113adc0346f770aed579704579ad78f4ef22d43f694d1b6181beca7f922ef33f055efe8b7c3cef7e276f5db99aaa0a1a3fc515b3fac0cf360ad9471132ea5d3177edab8f9ec16973092c6fe0f05e06266a632b5925f3cddd38cb35b6aea7e5b2b838a41a7f6a7ac2cb616003669489cf50ec99d0e9ba8548b2cc3e3fdeb04e5102906074c103ac8cbfca3d7a7106cc7214e3a1ac481056eba09820975bb9ee6ed2c01b3f567d6012f1733e641dc9bb2d9d68e46084142bdf589c2602e4cbcd7d0f359e36d0da8487a6e58f087a70f7faaa38d00def703cd081ac30ac27ef7a00ca4df8baa1ce143281b516a04d6bf44564c37427aefcdf0497b9bc65afa1f0a581bc6cc25acfda63d07597481ba521d33a57e309af9b148a21245552e057bef2f19dc69053937e860fd054e671a7f8ee60079e4161fbc95c0d6259edddf05114d370d904370205dc473751acfb04e976a4919a01bd9cd8e389f4bd6f87f0f5c0ec0f6a50df1f6bfd8a9c783136c8ffcf0998e6b78ba2d62cdbd0a5bcaa5796d9beea122ca7e5bf4917eda8f4e35f8df8ade201e513bcf0c46264f5f7fd50d47becf4ce1dacfc2b46c05b7da8aa6d34cbb8c84c713f65d2e20416b1366e0fdab04c26f4045bc2cb6440c86ef905048f036a95fa7e5730dad9241de5caa29ad0d84a5daf0dfe02db0fc024d02da425aa8a260b90bf7ebe4a5d2fde2f02949da184281584ba0c202c6108408cd40304edcda7f0f7625f36e7ccfa363b65ef8fdfcdb6dd08219b904df6de5b6e19dd07cc070208f240a0ddb1696b52ec70b08eb87c3872d031b91f26a20af8278355b1e43ae8aadc7094865512ce1173ee9497b114dfe1813c2b332d2908f57720947dcfb9ed30870101c23d300ed77d2bd55dbe40b6008a4f259b2745695b91ebcaf39c560e168ada90545c497702d6e62533f3dfcb71b1c626945b043bf0d109cc1275cee812f3cc29f51dbe07b55c3e3f3a31434451144551456e5c8a7214f36793ea229481901ac517af48825f2921cbbb90e51ad5505259ca1756ee364ff31a05e993499ea9164f693cf85156212d8c914397b11e06b86cab00019c81af897097df7bcf4514507e344ede2bcdc93b02f986fed3824007c810dc7e6d15715b6a43923819a2a674734c958410092743d45c9ca700ea11e321e7369be0bb4736d82374a18f7723264f2908a1758c23be91603a201661581206250d90224692bb5d8c93cc739cc36da3f785f419fb51d9b4bbb39bcc7d77ce4d2a4a3cc20d305401fbc20eee3b9c3af7fd0ac30af751010c3c28ddf798c699669360e6a082b082545280e3f6f90b3af025418212ced43336bcc033610dace842932b468f182f90d28385184ab02863892a4e4ede9154e1fe20a01305023a51c87855f0abc29dd99ea010b7c5e4ec095a921067827726688d3801c2a62348188bc99e188b49c88feac6100393a70571c62d424692cb52c69084e7b21432945c2964689901ddce12258b95eb30678770cf06f1ce3d82602c3608c672dd1d63b96ca3c388e791d25d3dec98a26e38514a079dcc2eea56abe8eee8c145b784c70a348b65116184163d5703417e50312507e92e583aac9e6be1a06edc335f1bca8523376a9a1fd5270beac658ac194585f3f5d77433888672a3bd8138a0222c0e8bc332a979c5c859512f783b5277ef4d29df93f241eaddd41864bc7e3cd4fa4f938f7a8497549f311fdd8518218c8f91d4ef9efb945c9b8ef17593d1d3d3c3d3c3e33ad2c88f7aac8caa704de58ad3312d8409f807949191918144ea68c43566f1e69c55a82ffe700f4e6666a6649479dbfc9c73cec369e99c4d445f9cbe6fcb161cf831cf3771ba4704eeb3cccc2c5f7c9563aa2784c005236e7ca0771c4b6696a78c3d38a59cb2a5631d1eee04ee063ed59ab469e792b81b5c979af2e14ee06e90ccf71d8b3023aa51bb34835aa1a82f53a38a22d460933ab350b74341ca173c5de829b18ca2b2949ed3dd465f64b9db94f24515295d7872b712a9df14a5f1907f716a3a48d498e0934c53f5d9335c4565e7a1163521aefc6f70fa4a5bc4bb7c065cc67af017976d152479231cc5040278104438035f5fc86b6666772f2f84b76c31499cbe5540fb235e0a89800976640214560a7a9e7c4e3d4cdea9078b275894e4a0621b4ea8335327dca00ed418537de03e1e340874ec80280278a146fae13afd90cb0ee197957183f3ee3cf7dc1c538ea94f19e3015f693ad5a9a6431fb5cd655aea10ace5e2bc2bcf3937ee90433536c94672dfa126b11e0cb85273123178e3bbd8a5f3aa342745b47cefbd07b16cda22dabdd7302ea1855892bb365f5b910b5674f7935a942ee73aea5dbe47cde63dd7b35f124f8811e7852726fa78249cc98905aec73bd365496c32e24cf3c5189c85942e4be1c21217cb1997a5604972b72ac58b2bb7720ed783ca3975966559cfb9ce5d97cac850a57861e5ce6a2eb1197121cbc41534952ccb9e655896951e1077de5d9791eb44977e6a4546b7db39e7301a34bd1cbc027c10ba1e02935317757dceebd26edcab57d80e7737faebf5dbf2460de8d26b8753e4babbdbbc22236e2d7bf6d9a52cfb743aa84f871f17b6630abeced6645646871e7e4cbbf1157434c47438680599ad6a00a769d8d4d3a68dc338c5e957bd2ae75ed937f7daa5cfcd3eea19e7a81854e78a8037b3fcdce8b2d75d967dba6d1ef5d1362419e67edd69f3977b53988ee9684f23b29ceed1b63704752f8d31aac1b7163fb9d43355895252d9f4fad8c469d1a8ddc452f95a1c7729ab43fe9d08845d8a1acf2baa4dcfb8f7b1fe1c810a2a6810e5cad7cfa03eaeaaaaf690afbc81ca52bae0b9f2883bedc2caa5c7bac872abb843633c3e97fea298465fcda0bed75befe18eddb2a8c37860c6b1f51fe643bffa603edcf9f219c376e8cb5750761dd6a35f3fcf5e35528ffa8b5e1ae897b6557607c661fd9ac734d0af2e519025f5b02e2f6fd9ec36af6af21f6d2bf24cdb462f9e82b7c12a0176e12936c4ef10f5e2c04bed4d5ffed2b6fefc75290ebc9452272aa5766a37ef0c81ea2e3c5d0833675181b28d2c6a820c29c1df689a36c19f60e46b37eff1f2d124aaeb31efde831b69395477ca8aee4b822a517faf1f3de37450dd236f81d734c6e61415be0f4594dd6a5c28234f6c41854455824a8a4a8a4a8a8a0494915496e205f527dfa1dd9e7811e5fad0188f671976e979b1e4f2e54b5d7367cd835758a8fc8e96df3b77e973561042c8715e00704a081de4821452e8e0c5175f7cb1a7272651e59cb2a2e07b4fcaf99e9432891a25e3a04245a5f28b8962443122e546a552a9144b376a7228951e638c31f2dc28954aa5528972c2079519477592d255938ad0b9928bd055c9c333bd50b779e299a7d3e9743a9d749ac63d2898a5ece1e1913c92e7d5a4fe52a904959999250f2c957e9edbd1bda7c52ab71fbd5037c90365094f64329f54282328b7ff4ea7d37bb6ab5c579db02960843146244408238c11c278398d593ee61891b08528f00795bbf41e457ae15c3f0821845495ca2f8692e1a74ebd18a3748f9f96b37bccec3408e844316df5f273ce7dc6381de398614c3185165a30e105efe54034298aa2aac9fc27efa0680acccd6cb78e2f9624841d1f678ceed2b9072f1d84762aa1035a38d1a40736c0c2892c7c01832da01954e0400752cc8002a568498396302018d51932bfc24b96bc2515a8b52918c77bb4afeec67e607ab92fda6ac8258f66f63f1a51e7336a3f4cc7106e0b1138554ac137bccb250e8719708e25ee86f729a5601c88c0994b3887b4ec56975097d2fa4a27a5d0e40c343905e378920a2bee7bb2c97d6f091715489be6af3c9a779295ccddde92f94e2fc9e8edbc254fc95bc238de299dbae43ef72a9e96c28863def340105614904a51555555cd264940b8e34519a8bb4c0d8452cac3fa1863b4d34224dd0d46c545f5d26dfcb44a0d8ec812851ac01b8e860b6e5562099439070ffc28f8f8791729cb382212d7ae0a6798818a1978a25c0949a41fd6f902c9315168da6c5cfe84a7f4d31a21c19fdec8fcf5fa1cd3655eccaffcf5ea6ce5e79b4c34b1e9ba84fff16224b4440061d30e6bc4e6c5c8539b633a9b48937e5a274154614f9405e6ad07a99e3d3e9bb7368ef203b32421d6b163f1cee424deb24ee01bfb4159cb929c893abdfb133649ebd9856058107acc92fa6cca7e04bb65496dca34203409a9e63023ba24abcfeb9f37fca1a3438f5dc722c17f9e63bab4eb3afcf5b14632eb9e18c12cd59690e0afe7989890a025fd40e9ad43688358bfac1179cbbad38b913722a5b3109eb21da5fa028daeedb4a25ec72e498ff4de8d587f96c88be96b247e6685c4cf983e88757a3eb532fc622c1b69e9c5441ef812513f6ffd1dbb346a591a4988757a6a81d4382a513642d884e37f9b5bb52a4bab6fb6a0f225fdd0e9bb83aebb244992f2462c7d8f3a3ad62fcb4fa73ab5362f867aa591a226438a35a468493f58af1ec432e224da20d569658d58964df38979e3fbae2109e075b53c5d66e6d295a97176dd6dcd392d3775cc88e9a014d5e0e5a6a14e4f294d4aea57977ae6bafc6874516b65e1a218240130b4603ce69d95a41ff3c5c8cbf38d32a84074499eb244ba244f65a9fd8d792e67d10225824feac1a7def7711c03bb17344dbc53d2331ff268e6ac7534fa4b2519ca5941a9e898f8f8d1a321f262e2e3ac73543f2a8d4aa39a518c31c61887bc98789b86d2a57869a38d88852560152f483183087774594a19560cd0c4bda8dcd0c2ad561ce0b21432f8a08c1a2481b0bb5065d6200313175e34925246cfb5ee568f85ae4aa3eaa36b9daa394b366cccbe4a369ea8fdad46db8e967368a67247159ca29084b1aaaaaafaab388bf8688495ac668d6a6374e30dc8a10197bbaade47fc301dd156f351915fb5854ed8edbadb5997beabab4be1f5e6a5f1828c83a3bc94ba64bc745e14bcb4bae6bbd4ba2a4a2f0bdbe1d2eba2d80eefd0aa26cd1ce3e02ba114a38d35bac4d7a4643c743d9a549c220132b38eaaa856148c6146ad7d65b030e1822efce8a51b3255b483bbd5472d2804f020410a14ae5052c6162e60a14512108a61a79bc0324619a0c0325c812ac3156508c3ec2c42a06c8386c4eff2d421756849f188fcb3a4c82619eb8b71118ada76abce8a6b1474773bd7ae2715d43907fbaeb5ee71397cf5837c0821bcde2f086dde10d4d53624375ecaee432d3ad85822ec8ecec179b977e7e0735de28dd282063132773337c7cbe81a528154221354043bd049439e39c5dd3add8ecc729e71dd5d1248c6842a885040279eecdcbe757a66280183051a4c810a125c11c60e5a0b5bf8e2aac141174db82205339c28426741094ec08284484008852552b8d00a1756f6534628450c2c1003144e883a970fcf681a6e98a569d89d205f7931f03d59b268d152a58a952b4a5e0c7ca9d43590c98b718f1fc31d2b4aae5c5e721ddf59d134d7398b66e29ee509dff5f08639b6a263dc9b34a1820a289ac64191c45535a8138c2ad725b93246698b8825684597d65a5ecca9d2dece8b81504b961e9e2b56aa4481f244cb132659982ce959a28447c9ce959d24495e0c3c4d094e31f0d06e3109179e63156a43368624976f4ce2aadc4dda2a232aedcdacb8a8533e4249c126e3d2e60a6ab412fb12836b1d76ac47cb59074514aa0e392aee2e78bc50450a3a9865eae4ca231d38c73c8501c909eee830828bea4ea48af5bd5c7973a1885d67957b3a8c304236b31637f6407461366d0d3fe0461eeebbbbcce3ad66c77d671e221b17a831d6586325725731a1cccccfcd4b1bd3317956b30202a384f0d5f79efc758a52a6545314455df2a2aeebd4296daabbdb861f45bd29d5545b966badbb6ff3e425afeba2faa2168cd5b47dd9efbd77491c2e09259414a4209490a72f29507638c823a250dd39e7461875c4c6e2c3a23c9117e364098817c3988c15e2c5b857d3dd3a8e73688ce35911831424f47820a1bbb8c403b1deb4ded2a8c78f452b2d568f55a415d58254153dad9af54fbd5521c81ab1986cfd24c8e7d51aa9fe59f2039bac8a851851d502a3269914ca79da97c637bcf3ce83f49c5dcfb2d58b910ff283487aca2f30f3e5ac8b1ce59440a6adf5f340aa1de5f06a3e6f78fa1e2ae67b5d178661d7af1ad8a9f56ec475bdf7de7b44ee7b7cb3eb8c6b3dec7a9f0f4ebc2eb34fdbe06b1dcc38dee1336d082397d277e9ef65e53695cee2ba1f3ad3ea503b49a2e5377bc708e63c686dd1593fc10e07c737341494d09a3a927177eef3718e1404c29a7ee99f7ee798a87e8f724c0efb519d4a29ababaa4e292dfb4551d775bda253ab9e69469cbc1b71a6593db3c7b4ad26c8f5698dcc5f16db01087df5194f1d483c051f238743f5781bdccc7c7c003807f57801700ef9480306660473181898d119d301f3110c8d1751c805543f19060077c3168013e04691a3785c945b2fc30a0696266324c1440faa688161400821144a10401aaee8b97d51c474f4e84e27922c89b9f00449d8e026e0c2294950e1c25f4a549a773a9d4e4a4c2e8c0be1e75545a31ab751ba2133c6856f40cf38242e7c4d0e363aece8e1471a865c80480e2ebc067ac6baf0401411020a76e1941120e1de384db9100049ca70e1bb700a09cc7021bc10debd608a0ecf85bc05931258d1a467d80a4f9cb8f0ce8a9ee1255c3805092e2e642b51ee0ed63b545e3099864deff54c016e6371bbad12cc171363a4358fc631d952dfe13fd9371704c8e36ae2656b7e5cb7e91d382631c678e5c60b74299e92d048440875e32bdc7801789debd69dbb2214181fe1e34b2f64cd4f24dd28e5a495a4288a6a8c7a35a9de896d25a1eebdf734682bc031f2720b5cc56eec842bdf3222c0720ef93b1cdc076080bb1d3eda9c8399e21977598314c9df4b3555518b9a93a2e6b4f3563525758439a78c4565270a4a5cc9421449ca304113a7343c6162a2ca4e0a4c3b50a65081c90926538e80d284a90928a325aecc291ad5a8a2294af4dcad3e7b42460a5b62c0857a5d96b2c50917357459ca96203ca9d965295bb200c3962a50a1cecb52b670e14a40099e17c3979211da28dde0145c09282efc0d1978798a124edced3252baabea4a0586300e16540fb8fb3e7a0ddf6a20843087340e217c0d230d86c61d8c46e37d64430004705b0003940e90801b64163043236a2a094a9dd6bc18ca8c27632be95922b5a8417861d77b3c8413d32a9cd35d8fba7beff142dea315725d5a205e0c7592a3ee923c9aecf141b2182fad91f8b991234e8e4092cb3151ff68a517433da3dc9528a92eb01f39228f9d7a07c12eef3092b33fc0c70b8117825dda212f86cafeb9fbf44e755be02bd41894a4a868a44b54461da30edde5dca94b14459d0a42dddc15eaeeca157a86e2338c50f2d481300d2142e4d1c0531ff268dea9eb466e1023ef5102570eea358e3a0e11e01977cab9391da58d5515569dda289f32b869a268cacc51ddf14c3bde9cf5871def3df8a847f9a06e5c65c87b514839294b4a29a59496ac2495524a29a594d2aa2625a5a47e2025c90623849052ca936ce01cf04c7802bfc17b5da04bd21d31624145c1956f09464b3892604cb7b385e241e500d3d4c86340f218502e3b927f2299d4cc59a5acf2aabc8a59d63d018c2d5ce9b8b852c277494ecd6143ba249f264f0141bea5bcdc60b69097970fe2e09f9487e11cf14fa610e66bb7a5529f7793e2c110404008fbd5d0a68c3c93825237ee01a267608d22355edf0660d4be6c59a41fe4fb42629f5ec8fbf53ea57fda45dac15dd210eef225995a23b9ab27759bb6a857d45f6b14f543e7750fdcd4e6af0b91f21725394bfa715dc823c3f4c8305df6881127421e19266a8fc85f3fe22488fc6549eec83cc9d920d7e9dda935e2c4d920f4f1462c36113104113ab2ff88b76977ea9806327921573cfd1192bb2e849eb247a225394bfa615e5e08f5f863f05d8f52e50141a44b33a71f4402651b150c4cc039dc132797a475ee11a39a599da86ee7bed11d8d46a308e5124a8529272a534e574c395d41795197184d39e98cb24c39cd60491aae00c26c019de2c4958bf32e0b0042487a0c2f84104277357d16ace29419454d59450bd27735e6983963ceb08b4e2c44efbd4749e95c165be8c0222f50b6f1dcdd489f1b7a8ed95dd82508215b28a8ee8fbef758962048931b3a7489a18b314e09a3e544754afad427f9e30cce8106a6692938e6dd559119bdd7a682691e955ef2acb82cb2885e68642f8b264a94bc2c3d8fa6abbc2d3acb4e962459aa68a992e5c9159e60912f4aefbc280fc21825b6c3c118e37b4ab2c47891068ab1aa628c31c6187b62ef74e9bdb1f05cbdc3c3d33b55de1bb28920ec9d86a2953c2b580ed5970e3df5700e787a4a601aebef098f8bfbb6701fb3945109d48149e0e9977a597aa2c0531478ca12e5f675eebd474f109ac039f884bab9d78e87733897bfbb2d304d1fc131ef3d0803fafb4717951d97e41bf3f095eca3a3248ba6e99d17f3fec2e8251e942bd834cf0dea7b0fc21deec1ce9c750dc506757359288ce64c241b6a18f59c1086ba68ce4443731c23ffa255208e910f6935708c94f3ee90528aed70ae3b73d1d8e4ea27ab2466fd55ee4d6c33e9d2cb721f939ee1c7957be7beced233fd192d54d31a583cafca199502f1689e4908f7f8c723b5dc87a54bafa74b8f87713c1ff0ca67a54bafe7be24cf8a158be7a90056ca923942661961ed27281fa6818a343cc9e2b2143468b96d71ba739c238272cb8cdc4b2326b75f63ca0c9ed8b86ef73813cceac3e71e7373d349276745f5d596a867e69cd68c335a143cb5e6556a40cda85f835ad7aca694d3a2503ae73227ea61dd7d5a0e7398e5819c133601abaa8e036fdce7193af797a59c61892b3fff0aeed0d79d01c5b536776145ddb2d3fab4d39a7042cb0339a73b4f293601bee11e0337bf55671f969d4dd94d44ddbaa867acaaa22aab621e3577ce3bec9232a82f0708d7ba85f9c04e506fe0b35b6fcc6ea21ed8b3cf9ec9ece62ea5676da4e5509dc52c77e9b2db08e35173ad5f96262d8b862bb2abd2dce9426c5a8885ba8d46350ae070a0de27c06d7acb92ac53cbf27096fc7c10f2937e2e87cd7f301d15ccdc0d0ebb17e64426a0b3679c93a97989825283f5636b5fce8a85ca3f2999e393305ad7ce8a9331b2bd694982eafefa9d8b3c34d8fa48c953167669be984dc6595b894f8aaae6645a69ddafd42ddfedcb17df8401d4711a0d361a0d368af0cc907966c8506e5a735ad61515bb3ce50919584278228a5b2bfb4412271c10eca84b43a8f5f2141468414116caf241e93676c2b003c6dd2e038170a58b263a375049420e2c2030610b0b8af583d1e84119998e3f084211908082c4bc3c65e7891312d4b0c174f390ed949d1a50d61368f1403465278a4b5d9eb2b373b7fa28ac1d58ee1b583a188d2c1d5ce97306407f7911b98c4259a8d65a6d5ead0fdd467b01ddb98c44a31a6acdb06735544120d08bc6f7e3e6051ac1549843d2671db9dc061a9f15260b815eb10ccbb06f232c64492fbfb1d84316abf5907e022e0f558d02f5d9257cd544a2837c6024fad0412ff5e5dbe8be5812b5f42fffd0bf9c627fc1b057d031ec54bd4d83b40d7491cdcca820ebf26a6f5c1eb237a357ac825cb2511d91b2571b68c03ca330b46aa05a43a057980c544376cbeaac75d67955eb2f2fa3993dfbe750cbee1212890eca5c427709fd731bede5a21a2e12d9d108a6066d764c287411bc08bec24f2803815e4020d0190381aab611b9b5c6cd6adc7a917dc9be896ee652ebb3d720d25e6a0df6e535bc6c344e3d0403028dac572d7417988b42af0fbddeb2d847da4dc8c22ebdf02b487418cdc545eb2bd2361aa050e8e51fd1ab06cab2bfd4835e2fb2d83fda0d287b0ddd2594b9807e539f1d549fbdd66759fd643644683c1829e80bfdd2b69cadc805c158d4a2967653dfd7e59686dd45fb680edba1dacf2fccba6559966569a07f34ce42b7eaf9c1d02cb36ce87c50c8c6695996652feb2fd6699ceaa0d66bcf58168d5bd984980f2fb76c15dd82790db7a6652b8dfa0fad5abda565b55e64fda587cb3fbfb4ad88ec91ddb2a47aeba0d787fec12eacc825550bb25b916b3d643fb7ae7a4acb5c6e6197a56515bbae0bb3f5d6961d623dc01c3bc476b80bf3faecf2543a8c02ee5ea7d455359733460177613e77b19919f563f980f9656f608ed91bd1ebc716115d18d1f9f50ee321b2217bb52c1a3eacbfd8cd5d1ab7694ac3aaff9c7eb4fab13e9875bdfe43c37a76613ae82dab7e7e6176cbac4f66a76555cbb25e2deb3a7d980feb62f5216d2b72432fa26ff58e68dce59486f66918073a8dad74b3bb738b6e9685fed1fabab8bb81402fd6e522bbd53336811c17176aafaaddd01ed5c5aeeb34a7c8fd3cd336d1cd40d6e5218dbbf4f93ccb42e7a67139d4e6a7bad05fd7af1b7ac86e45441f97d7cf33adde45c330ad6fd536902d22bad745b5edfa7cea336d2b72b3d7ec9b6887cfb1dbbcec7a75ec2a22ba1fbb21d98a60f7d2e86d9e0e438a5c13a4119ac20556080f21e8dc25cc6ed8b3db3c290fba8d16baf9dc6115b32e504a79fa9b78ec341e7b047d6048e39bb97fec96c3a39d835a540891d05bdfe11b568e38244fae3c8d292f560f07ad1017e7dd9b97c368371b3ec27cb80eed45afe1231fd0bedc7c8efdf3c8831e820eef301fd83f761be2b7081bee4746194796b4832fc89242bfb19f08ea41f4506646c51effe9518ff98096941d1ef4784c23496a4999ddc1d96976fa8c3ea481b48dc885a053a263af3633a36216277ece980fd1a5bd113d646f685c7ee2c40db338f18a2ca4711e342cdb6071debd5e8385238bf3eecbe321e6c321f9fca3c12e49a9810b62cc07bc3e6cd83f1bcebb2ff1745e204c8775e8e35d1f3e9805d92d1ee75d28b79c118f76f75d7af0d06e38aff44eb1a0c26fa31a77180feb62ff68446ea8674629633dbc560da46d4ce5036105bd5ad0b3db68a1bb6817769b2e3d1a98bb9c5facc8820ea3cd8e019d9b064472b90b041d66208b311fdcc5ec8d65613cac90b6e1c4e94375b1cf19fb1ca93cc589294e9c2efde794be8b31d0a5b611d97e638d1b6b5ce962b751a68d4255c2549bdd450b6930cfce1d3a8cc61d13b220ad088c475fccde603d1c8fcfe98e171a971ae85573015d1e74791a96bb143af617ed0664619742ace363b347cde522ad6a7d5db4cdb238f1524ca3f41ec8b9a06394310af025859e3d744c73b9d43e17f4a885b4cfe53f9777b1dc25ede6637700bddee6d93448e3485fbd6a1b924b499f7f6c46864ae2211f2fe3b1cc6e482e2d5d67ec526bfdb9c39c25d7e61281a6779f943e6c118ec7cb75173d982a466802469d544ca15230e8a2ba5c9ed284123c68e20822981146b52e4f61428c295ff4d479790a135af842a52e4f61e20a135696e0894fd0ae5c77cfbeef320e09637c0fcae628b5db7677bfeed6eaedeede61b7f7b4f75ecf6e9a08efac73afb57abbbb9b22e99c6e98305479b6cca5c838f8bdf7fa955eb31508a3db60a9e6b20ecea8eef0bcc152940d5bd28072774bae300ce3512ff62084d1710e77e74623b8ed28d7314649c125272180e839c988f1d037fbac9e952bdd80994333950d01cc4a6ec8bcc0ddd0a593922155fcb8827ac192252e3b392a4aece6b6389d94507dd5977868aee2966653f362fa365de3a8cc6b623b1c0f7ddf73cc4c38da28777237b4a5d5d9c45dd1a55ee24e0e071704bea14ff510dcc9413943958c03fef1c01cea89c4e0e6cea51f86ec5cae4c8d4d10e675dfd143902144dc81701742e7bae3381d97c49de008979a72a94b4c0735c35742e0c6138ce0c65f3d437323126ee499055cf8e780fb4cb0731fd33c324c5d772e94823277c3bc171fe36162c7f8ed08b01f00cfc03cde0067c084d11c0e2f8f6f37237abce41ca11c2ea0c75b6ea63e3ee31c9f1cd9e3abc3017bbc8b9bb91e4f8373d0c7c3700eebf101a14fa874ad7784390a55910800000410000315000020100c88032271402c1c10c5690f14800f8398446e581c49b42487519451c6106308000400204000648666661c0084d27880d237410f2532a05861aae74766b0ff8c1e30a89aa7eba565caf4d577354f9454b398ec95ae54a647ea01eafbcd63e58485603e2d27ec3e11bc2fbecac623ddd4af73163586f6256ae2f33da936082f1c526df30d14985071da8a837054b56dd2a8a746d8c2713d049ab34685e66e27dc7dc62ed91fff1530495fbbde515fdf9338b10de2b7f077241a5363f775aec840a1d384220751754420a4b85b8655b9fbae7c4c134a2529834d03214066294799fb018a29c048a02ba89ad8f5ebb24d9d70f5416179ec11b1d883f2b8e54c2f5fc55b4de6177e1832a7fb73222bf672248db3bf41ff8b3762ee44a6621a4901ddc17c280133ba655cd707ec36c67686b0dfb604e5fdba97cec47bf2649900044fdc468ebe97d1fcc4f6e82cecaa1342e797020113d2e4d14f7c7ae4913c45a0b515627a0fd9ae5322071a6d5d932228db4e533d47220a2342139badcc8dcb502b3f54fbb982124be87b9fc095844925f37d4d279dc3bc7eac3242ddc5208a375e2d76b09e6feb6cd997a43a14731254f4555eebb761d40aef547acdac89db6febec2f71351e0422e163c7a3880e53810c4ac366f8a2b29da59f51e50ac31f7c436ea33f0546e5e8fd7dbda240603ad55206b05653584d3dd1da280ddf31156d83d3dcb1122d5c76418ce237febbae77bf076bd5c1b957f39f4802afc67d0ca0319fdcb8a2efab86bccd7fd6a7b1d765eb86f1d299ecc43017247fa2b5e962d8e28a36901378c785589fd691cfa31e11db5e47fa16086790fe4c32f44fbd70ad3efd6998a7639656e11557afb16708f733a04e2c52cfb8e2ddc357477086aad26860b23112dc39c7e6e7306c60ae8592d11b9d1054b23e0c27cee0b2412d1af9e12a10f263e59ad20c39ab5afd385e9f22b685417b8de62bfe989ae8bfabc23738c2a3b8ca442fe191195e7eaffb2aca22664a829063b249195ac6098780cc283ca9f52df9ccb98a8fa5254c1b9ae074d888744401577554be40539fb2cdd8cd275a1ccdf9b5af0f5fd4e02ac23d3c77ecb1ea426dc4e48918a5caf12b01f5994f11003a469dfaf5edcc2a39c955e026c3e72ac35314dc14e2ea315848c5627302caa6c56ea544e0151e7323104a43f79801e3401980cf1c505a2d53743a898be025fc9074711521d613022c3ca4e481559f873de80f2757e90b3ba682f78ad1fbd1c1cd75fcbf41c1b46720ecafb6f02003574d7232132c02ed4507b8a54ca61b6359fbb880530430bcb65b0a5a177bc1b86a6ed6bca618b0713504d4a0b857c314412e9e481f83613c97165f0d3586a1307f6ec68421891a19408364d5b9cf3b3d20da6d1c401643e72a3a4452081ddc9e8e13291c52e26acea0911de4cc63dc0ad72c77fc78874be9fdcd2959b6ea85146b3a9d8a1775964d5ac507b0a02d6b14f6c241f35fd688934b052337cd5a6975ed538ccedd01be2098b14f025b61e8205ec0b8d61927be3eb9567226ea5246c671c6a456d249659f9962acbfc477ac56710ceef26ece6b7c887a47102a072c051078143784caf68b3182733b9e4ec4b37fb4b70d4446b9180b5d149488145fce812babbce10d5838c5b136ce2f28c826dc53c5528bc8953e582c66e126ba7919bb0869e8a652a8e13e5e5be96f265afd60014939a8c9a1afa28a8abff5a859e04d4ee9f740692250286131a9c82d9f23ab0b856e3240b1b84054a2a3e480475b84318e86b03552a821543b4da0790a9a5428040da96e3e0c06140adda0d119d43cd1cc03730a3b39772a29375bde9a4753e3a8aee2880bdefd4d08a52cdb112cad03aa35bbb118b1713ba90bdb6276561600ba6c59ce895a631f1686032b28269cf30ed7af05040d9aca376fc0a39a0a2e4a8a6c7ec8a8051189d38dc6dc027e051bc2fa5c2db4a22ff39f0dc85eb59406113137b546f2001cef42cc6fad62a081708c7440b0b4d6bababf13cca2d169ee8bb641f91a159d455e71ab9fa9e0d0f54090e9d507c761636f7f6f8351b48e2541440db887b28650689a79998ba52f228b9c30382f6aa62dcdd081f33bcd0a02ba81a722be160ef19e43350420e00d4e0f0be86291f75ad672dda400bc71b9167a0256f80213078bacd2dbedc4f46fc289005f38fc3a1f825b0b6b0f60975284ca8bd8ffba340c3f772cc11394551c760bb615374715cf4335aae4ad18b396469ef0ccc3ed3cd98dab99a1ae598a6bc25aa8e8499945b317e928a67d4c1513d01669732d10976dc7e6212b44a05af80ddec7706a84e42c0669768dbc4936ef3ae21e207dedbc28af6709e15451a28b096a8e9de6ca91a299b44f769490855611a8276ceaf29d5a9761e83c9f4e25bd0cea46012e7c2aaca193032aeba088780dd931154f6c97d25965b85a00d76e2e64b1f1c76cd4c98a78b7d13e53f263a698c7b212e0990cef6dd21ff8b79d96f1127d5ea978560543efd3fc67d8d66e3113f292ba4c4a7075c2e601c517c04f12789d1a50a7b4f2fdc4a395eedae58efec2f6435be4a32678b43652eaef458c756bd0325a6094611da4b6edba0936cdf35c092f67db7e8c3ab52da29a260bb554443b92ca80e2a9e50aaa32ca6ea725841311aefac152e97dc942f229b18691ba4894b6683b8d69560167548717f8f204e595c58521a01009de39a80ec932b3d180dbec7c537dd61470a1e5daac2cac90f24598199b5219562be01dd31af9beff9dbd98bea6f57ac775d44a66469a29b8c299faf3b0e34ec70059a155841cd32d60489411e0c01f8a340856b0670fc980d139d556c1b81cb7ae624cb8c9cc38f1acf20fd90ccea554a67404142bd5f0f9e581e23e0e5a5627d2221fb347dab3515e12bf1496e1cb5f88f3bdcc7e6dba2c87224b646e2a3a570152323f37d6f1c875de76e502c73f83d6e69e19adc0ad6ee5e1f7863cd284807ca0abce3df23c94757b2a90b14948908f96e5d0219b8c17e3b288bbddab9ac3c1d66d798d9ff55452610cda485b762449f5c72fc8b3734177c8c75bc23979f8f10c94439c0ab03c58969c5125024d52168688788f7407d9653a78557610d9831c84716a94fdb24f620b2385a56f49a015085b34212c4965bbbf044da7f2191e6d422adecfc47395405a4f11c72a8c6a626f81b164f657f527c7abf891f2b13cdc063012004db0a665d2cc6c96dd6bdfa23fad187bcc721e34d940c92917b0ba0758c43cc38d042f5f0b9d75c3083808a802fa434f4320f53f0ea549e8b4851b4697dcae419a8c2d7113e88bde680c6ac518a40f8b9becd40207c8079edce305a78994738a87acdcf26f20816c859ab53297556d9b0ba75e83ced704387452cf825aca77790d4786e07a118f6e958f1cbdede1637ab24a0bceaa4ceb002c46a3717bf8c01de69b599d60e2e528e30500d57070f2542c491357c0630b29fc1de920c2cc58465886ac59e7ce1f3dc11a1bc4989f83aeefd61b26eb9c4d8d089d35132aee097cb166368d8de2023b929b060e469e7aa0e3ae990eece27301d2c53625c76be6886b8dd73c951cb54218b1890f2fe89794697abbd154225585cb44b7ecc2b52843751f3a9a8819a4e9b70e31cc4caab4d14231d48c89121749cfd8e72208893b3e206caa1753fb824ab61f1daf614eb6d61884c9f7a2a78064b2a83744a6c62a10ffe3ec6e9405648ec28b7c866df72fd6b0a0daf467ed78068e2664fbcb199d8ffa6234e8039000096f8370b0ab4472d0c721f01ca161e2cbbfb8fa24f36361e803684f6835b186f73b5a1d7c2344072766a650b8f0e602c3c16af980aff639d98bce51e038209424ecb2d5c387250f02034117d3281d321e0c74dbe159aa36520fdea995d0297fc810b2562bd6d4ed87aae7f1948e3fb2b12ca9425c4b521b696f60eef8a58d945db61d709024c16917027eb77bdd78af72ec04124386fed147f49521dbfe1b6c0cd78b35fbdd4b7021581783ae271a6cea44aed21f5c3f8c23bd7e085f994ca0f0d5c58b47eedf0c49bd764591873134dc862411982c858db6a7cb0a619504f2b61040c8759a9fd5bbeee1b9f4ce5689a022b54af54e5d7bba6516c8d288fd29caaaf79e02a4df5db4fab777028119ca7b864f695cf2e3b394e84d592624888f1cc20ff38fc30495e5d68647557f7a929a8c7dd8f25d40e1e7de5d01d4f600379cb266ebf67491b935d41d137675a666686c0b46a4266b0f6d87f450a81e44c0d5ab1b59971a775945572bb8d00f66def12882545ee6ea80d8ff6886b3bd846bab31b50fbb6ae464a50519b7c1f6f870bbae77b42e3df2188cb12a99181901dbf27ad97eb10c0838f39b621f669a7382b822379f75f72c0a971f05fe9ed860dfc5598c9b0810418c3a96f3c805a18284a0030594b097b9892434d3f5b415b923555ab1b4941b1ecfc0154d7686cc26f499d3a398bc7edfbaf19117a59a25d6b2fc984750680948ea950b72b3b620e8321b1d268910c05f6163d13f0239e51c129fd5019df1e27b1efac5b4accb3e5d31965f0a418455b883a3dbdd1f5c3b45a2b1c20ced10672789e1c32d3d86bcb18866da4cdc34ed8bb3e52bd774420db70cf7207aa137ebfda8d4760a21d2967daa36020e78d25fb7c20b63dde121cbed59c985fd329bf701d52a1b84ebbfd2be62063799ac61f6046ab491fdad96b827ed2ca75db2869f648000ad0764d1cc88c0ac4820745f3f9c7428b5a2b00804e7cdfa06849040fb2e82806d6ed4f8614c0e8d796b1aaaa36eb3f235c224e62491ecdff79b392f5096b05cd20d1f442cd808ede7c02ac23e1a9809c8cdd2ea4d6f473311f075aa401582c640a22c286ee9d0e8daf9ecaffb788b70fb0001fd9fc1059ef5af7e4e51010ddda90f85d85ad972dc07c8c8d4ec6def5bb7d31f6fe886e0ebeea94128d98d1622037c0d07d8dec11e588fe39915c83cc76c002505d311c1fa2e74ba845875139f53c2cf14ca5a07841610112070d3b23d9f64c9c52c6b91b025601ab1ffd3c879035e54a19f3b638241d8a3ce24f840ca4e741786a84334d725c4b89c223e89fede3d655462cbdc9d0c8aaa48d8b8f5c1a394af565084628e91fe0288d0bac9ff37ec6f77371f5045ca890bba4677c1930516fe66e64dc770721c84d83018cc99d7edfd1b0ef9e808453216eb4e0fd58944929574aa6a52dc3e145a10361d099bd5c7dac35aec5bb84b882c2c42e4e25135ec3292e62b97d632b799a93da5187f7e921b37825d9e93b52c83da7222c4a00705eb10b8a22bb60702856890fca2b77dc5fc6ce9e68a40a18b654d31026acaccaa2aa571b7dc7f6f10ee3bc7db1806146899b6eb2e935eb25d92f6d9f7985350ee08e0bc22dc9327fb2ff9662bbb4b823362c8c0ae9483e8c252e4e536860351456872803e2c1e2d48edc04f08938a4f4b0e755dce73c860d59f0b7485e5e66f11652fab7e2ecfce2ca62327de70c7f7f3f26e4634860094bb8c1cafc272740335f170b01662e618ef0f766f12956e08c35022965a229373a92d9948c3772fcf8005098c052c2f3a14c6395a09677d1424fb8a2117c9a57c39d55b511bbb25736fd697466b1041e56f323575324733baeb1a169bc3c2c525119821d2707853d5f122cd7f173ca8855091c0b409ced60bdef89caaf8a9a2467b51b69c919e1bb866d5f71f5d6971c756f315ff2b861e33aeb50f4f318194050fc795f82872c354cd1b13575572c43e87c1019ec1298fc7447bb1d045fa01b5856d00244aa6be8b2d4350026f09183b55e344f113eaa22d01335b6017b5b9780b2364cb59a5a5197e17492071289a516bf4a6083d218d92211c8345a241887366072f0dc244aba5c1f336e0722ea64d65bfa2f72d7345b8ab9695ceb2c76748fad89a11fb38adadeb2b311c791f42de005a9a505dda5618a009dfcf18841a823465bd169969ef9d90d070e881ec1eccea0e9bc4af8674f610a5df069f4f5e80bdaecb7440fb6a54199315d9f89ef444d98a857493c461b8bcb6230950c0b6fbede808ce0415d36993091e805d20a4fb58d5cb3ff7553b480571f10cde0799014a2b002339853a8a50de6274393893fb2cfb0ac751caf0de740dfd10b6c25c8d7b28ce7d910dad203002f57b43d85bbf3c296d270fc8b0706e57d787ed7808007a69ec3e3bac72f1d192565a21ccf244a868cbf8b5ab8e805861868b2d61fc1f4f382c21ba326dac82e28c5fd31572ac72af6021c7d9446896b0ef1fef1ae0d03d05ed8f5f03fea6952b8f4534a3d97dfb0e4ab4ce5f99614f59e7e5aa0dd46c9312b4fb5edde74b63ab6becf216d7af1a1bad79d5ae0ce99989421f10789cb8606b877198dc5a2d0d0b2e9d568546e26fff3a9b6941aa8b21ec2a6e41ec65b921dd1e14770a43534384e22e150d9d3cc8f3477a8f24c0115ad8c79a111db12f1474857118e8ababc621e3ef053982ce94e1306ebde2c44e5a5e3701de9fdbd419c01b646533b01892dbe47da7a52a8675eb796f932a1802c1a1a1856b9b1a539b4d6bbc6e8a994d23fe34955e48499f8ae1b458ac1e98044abf9889f4dc9eec732903da49242babec22db427ad639c60aa736c853212a9d2259a1b215d9167a224966629fdaf10e9a39cc0a957b90fdb992422f6413d950ee517fcc1f5326fbcc4ab9f46770c0c7b322c40b8a24e9c847781c481815ff0aabe29ef4b88b2b3be9a66ab2fbbb27ab6954bf47768c7a4b132fdeeafa17abe3f843bd988ad94162258945bf9277872c44d6bf16071d265be232141707b6aa507ba77782b2547fe5ebbd07c184cdf276e7ae4ec5671e4d57e5a30be18c34ff3150d4cc470d82e48e148400edba4efeb2689dd8b0a34e9fca65af79af47378d9bfe6df49045a69d1dce9007f9ab9bb8107b46ad5319354db329518f8cb3fa9611092a9b6547951fbaf5ee66a6246bd441c6e2afc66109c7c5e091d23803607002051c80444982d2cc825f247de37df4736dbe49c7d520c4df89910bdb6a70b7cbb71a1489a6c91872cc89ef7e9ee46712b59035ccb42d7f4d0f9a0e4d81f5f7d158cfbb57d787c1574a3dd13b18564060bf0cab774b52205ea97b87ba3de2d5afea8f6a4b5e3755a86497134548366b27f363587f11e33d9f6f6d0f5c10b6017a9124060a2ab0375ba65df261759554d8c048cb602072e6e598b294d37291239a3985d1090f639f9270e5acfad1c47a547b0976edbfdace1691db2ec10242d29b99d3affadd3cf10d270d201cc95805bfa4d4420f7abe1aa4dbc34ad30bc99307f89fdd249ebb4d0f5a6594f3248b3209c17c672782d158e9e6133ff505cc684967f922074c4e345fd30f63f084f4f17890339b1628fac834b17d2bae53101e18c0b89b40405842425ad128b89d324daa1c835fc42fa703d404e08ec55b5265de71cb6f1a81161d967a43ac91581dd62f5763c9da2ebb54433f6301db19931034417ff313ef0ae4ceb9d3f2b75c17b5414600f537343cbae85b935790030672f5eb53da991360e3f48e77aaaea0e300f7a1b3226837402b30d9e3a3665c6b99d62011ae513fb7452bb09a0a3e30aa53556127470243f44bae7b99c03892e96b12f1b405a6db153b3770b66958af01673ab0215965ebff5fc3987c7ce228040f1e725af16ed55d08e980879196f5c021289f608b90bdf43555a30b30c0db10077c6e7215bf7d6e136fce653ece2003dd5ed8730968417339aff219fdc8f8191d37a7471678b59a378946594b11f117e60d1fa9d3ff6012e5012049daaad007e106f32300c24147cf9f0e4a8dcaac59af52a708307c051e168430d2ebe2a0989ded20e8692749a0a40928b0c28d8dea095c48eb5574298dff55667233df619d82f27b5aa744bf8908509979bd739e54dd09bb09cb17f1d943ff25b01d4587e3bdedb020091a1d042a399d42a19f9cfd92380359d72d6b453d125ed04864794b5c868053855261f605c2f691f998d6d8a179e008931f161dbd977d0c4a27a18179c332a3739f5ff4bec83a8459ab8f7483f87ee75978362522da40bfc6a5a6c235add4d215e7af89e2910bb4d2cd7aae27adff514b6f58858f998d44c6879696481bd440b95ef4e224f1c62722322bab4b7b550486ae2ca693c3d1bdeafcb5d65b5c2dd417b41fffd64448135dc7383e18dc8c905a6d07e6161832ae4869dc11371c70acff831e5116ff977385dfa2667277d901cd0b278cfe4eb035b2753c515dfe0955c3cf5737c84863c52ab0700b8942798c37974b37e11b1f3443d73d30950731b71258263b38ae946ceecb91fb2f1b6670622ba8ac76a44de675e2c71c70672f3b86e94a362b495dd12c6f8278440ec68925f7e1781b100255b43a70acd3f99566afbe95f6a9a624aeb433ae9ab2458dd32e83e37e288d3eea84674f9364e407a295e90d8ce2b8ab237310e81007d9b3bbb1ce8d41826b0f46e38f4a9c10a807daaf43bed1d7f070756f6c1b23674a2e218a81f7c723d39dea45c1bb62a962e205a19437cdb6b7668cbf10594c42361b898234109e43042307e8416e85659513e8e105d362295523d0c7d55d43360bb162200cac7dd6cf172920e2566552791de4231c5174af22b72327ec1361c21d0294f05439c1832c567079e66724294d68bd150a1990ef39c55882e489e73d738113bb20ad96f772ee401fb52ad956906c906e005da7ecf4a33f8be21a9ebab79a01f79b57a91030022d70924f3e6f37096f340ed82562fc221c22c207955357168700ff3499821c0a9045f2041ac373ba6b07b105637886f0fc294c1c7c236f37154791b263ca9fb665c4a38f9080664f4b1a3a311b0678e8c41c5a0a3ae2e486c4b005ac0b4b8a701a81b7d7c4aaf8ddabdc4ac00d92fdbc4949d1414e63a338267396e0877c7d80a7ef8b8785eead29f848124421ad5017d86738edcca0dc6e0788ca5ec5eecbc58007d6edd30d5413ab75d606db7465568521a1ca73459d4c812fcbd36a7a100b20f4fb4242ed5298c6d033182eb8888f3d1c0753c964b7be0d72f65566f883cdf0c31dd6831ce2bb0bdb755c37d2b1f16d00c0464d77cf43cc2aadc7245253b4bbaf641c2e6689a50d8b1909a55751db3e90e93e39e33ff9897894e41b8b04597eff730f72cc8220ad5ec1742d00bb4926e3bb42853b03057b9a8fdb5d6b1c41be3eb80c001569807a1882dc3e868814f362a64902620aadc2e546ebda27d96d373e30d9e351bd1e6911ec69225f2e18e9168b67b3f6f2e489037c433a6fcf23317070448f5a20fac7522141feab8c2f8d8702c80c5393b8dfe9aa01f710bba70590ec8776fd760c4c940487d1e79003f7d879d960049a2e6c5661a2dc4dc9c5e35c1c7a618953737aba70f3384f4e6ba54e59f824b6ad5a1767114e6e1a735337d42948cb7a903afb860cccff6faad4127b9b279f03e59d7c2e6f8607e078e95e9ac10f7e3feb4f7c795300e4e3a0c46f95fdfd769963b2a3c3fdf38bd4086bae07780dbcd65c387b8ad4beaa19901282130d0451d51e28c7a2b3b5bc51d79167847ac11f4298b4a5a0d3492390f39be571d9ffe768c8b5feafe19069f5b7834397f96fce865cebff350e396dff3bf8863e3d3674c306b53045f94bade4d29a646cdcd30a811aea06e2744afd3cef8aa4dc9444f6fc1c5433a8752791e2171bd7129c9fbfeaa799c986ee626795c45e5386eec8f3bb3ca9e6cd299c0d4c27393e3654dd53138f4b383dc77e381cfc6a28c385bf9046fed44981aaac7b1ccac4007eaad441636897df7e808350df39e7f6920690c978393ee3a4e600366f77f58254535ba49022433212df7440b4b9e00eeeeb07876061dd0e471e631f708907dc143089f577751c4a5e69eab2d4417f58fe435b54dae651dd1da478ab610854fbbc67a5f5d8bf555172d913a9eb88ff84dda30fc05a02b5f945fe219aea447831c34aecb5d1d2b56fbcd1b9db47e499400f951ef1a834ff80a87aa2f313a8831bbd886247bdb13e0344613173be795d825d3ee4fe359a14979a3e059f2c6403d50829176856d932802bcbc2707bf2f90b1bbd515f2bd780c8650fc6f615751994a3748e7772c102bff375ff5cd254f4d90128dbcef5628c0205390e88158d6baf08b3d022728b5f811cc7a46e00cbc0573b6c748ca1ef93719829061afe573f802aa9709ecf0bba374e3548e082cc924289ea4a276a126aa5b0b606965a610dd8418e661b90bce7ea0e829e394a10a47782d59c7d002b75943dc4e93ed3fb7c117af8104a81af430f2f9b641c9b50b1ab072f2f5925ddd0f930d41ab392adca3a870293dc50b07ac4aa2a0c4c63b34dc4afb774b2eb2d86ca75e2eea4ae8011b9624c94ee96971408de1b16369e4de4fadce400d1c0c1032902babd79972d3b983174cccc7f0de60eb0ea6b85ca4c53ea103216602a83e60069177ac60e4a33eb791710b36dc7aea8c7651e34f19e3bfd0153db6080b9d0254bb84a1278415aea1b839526c83a33bb7557b2a626aa0c48686040f58de5ace023d8c1ca269461582088409095eb8c2c30e8b175d076a37cc4b91ccab99b049f132d27d8aeb6cfe9f6e155a842ea5f46be1f8be5d9716ca831e213c9b27343d0412cb8d0680ea1fd9cbb47feaccbfbbc1b0077aa5309ba67ae358dbaac7f1e9beaaf21d087d40c02d37b25758c848914e51668e7df38b140a3baebc8849ba5649604d3984ac8fd0e2f5727819c274bd3cc8af625fb901b57da454ea8fd443b2a1bf4498a46df100337f71a80c8057226dcb39904d227a406f4ee5f6f97bacb92c24778b269544a74a69d0764b9ae550a113ba4fc6ab6950b2d17e9ce7ff408c511201401a18828ba6dcaa83ab415716f54fcf086cd4a428e437b96978e052855269379d1f40fe51a50356fa867f34bd89f217189bb27dc707074e91dd17504de5cd96d793b86e3e44c73992835ebe3e194118e9ef57f67a1c9f26a402d6a778a2a2de4868c5e2881678e3edb2a41da6f01613e0325babc3cee99a94ef12a380b62a5fa0655d8fad62dc21fc44acbea045925ac2dc19a07a96530399ea0bcfc09326411dff316cdf985212190af5773a1e16165d17f6f7e13bca236a35ae44ee7a7357d38172c2bb95a25129563fd7e84f9bd46f6b15c6d25829739b2a862c565f8fbeae04b3492e05ffc1bf17b64ee910620d6c9bb6025839925e8c9c6f8f235d2a915077dc28d59e1a0090606b0317c1c50699dd01fdd785fdd6b1a0411140115b7fb59b7509d311020cb875d06bda658a5c6dabdf677a45b3f08472611f514c7422cba916b7856e0bb27789f8b652dbff4194cb8424cbccee53982cf746c31a2c634a69785f2c3f646147306f81fe0c87534c827e9e0fc2cf822883e04d2701995225d36bcda463911163c2e9b6f585ddd79b240af314e48f675757a409c848819bbb0322300023d659c0efa8a606fd93b5c52cf0da9b11218f0609198dabb44f3919b2f1268f8113fd36934a9f5d53ab18e5f2ea00eaae451896bfc3f5ec36e110ef030b0e38b87d17a503047cdd06320ce66a6e11f8615b0b8ab80ebb5620bb9f54b7d8a8bb3d30654a8e6dfa600ef07fdaaaa50379aba050e90b11d07614f9029cc0f21cb41d77f9ae6e8864574d8d3179b284612b9a1ba5009228d6e51272a152156692b09c02720334c212cac726a17cd5811b1c364f05fd2a6a104a50bcba7fda370d24f0732eb933b6004119c544778b81e16ea3e7178de18f2486d2fdb90ae4184d5d3bd10bc1e86d133ca7062ff83760fa859e3e3ce984b785744a3ecdd0518f114dafbccb1418c191ac98290a83d728a88e784e44529d7eee5bccc1362cd77f1feae4ae9491eeb0c696fbe6d1a5dc1fd36e9fa2d0ed9917e7c9d1fa7facb70941fa82a924dcb44e3e020c4025a5ac96689958261f3f63615b5084207297705621b4aa2d249d28f16773a3c28da6d22609aa6f7752e3828a60681d26bd55e427883cf00de83e1ab5e52df83aa98bedf3541c99277098790001cf516b8c7e7bdaa373f0fd3dcf71cf9271928ae72fcd350ed2e99689850e5b0c71fc1bdc69c21beda526ac8be55269eae4efbe8d65a644497fbf4270eebee663252a8a6dda3e168c9cb313deefa26774ef1549c91613f791f44341f94388a75f7000c8281294e1f1280e4101027e881b2571ee672fa75fd767530603dd8d7886db56437286acadc565526aa04195bcd5c103f0ee962a02fd6441581754b6b6c98a4a40cceaed9c8363b14afe40a2d540028aecdd5c5568b31308ae97a1944a62f9e771bec978a1b1055bd1bcb16e1292a9e24444658042adcde4d8c22f17b63eb3eb47cf283acb4d6c2ad4cd95f1d7b52c0dc280e9cbb86d401466a30191c0adcafae464c27ce89778a406ce08c8f5e73b9017b1c72b239ed6bc29cf73b02ce3caef4391ae53591410b55c353220a947cbd5a2e58b652a1402b20310609cd8ba9f8f3e8018ade600b98354efc380fdfca00aac09faf8122e14f94e1ba31f11e0f4a000145d7fac91ef310abf38c67eb3c201fc5f1840a3d54c11d6abc3e309e524bb53ba77d4b1dbd200615ee2d25a9a51a526520729592e6ce3bc19ab2868e2b64c0a3014d99128f828699279ca687c9917eb278f4f3f44fbaab49b9c1eb832c9226d1258b26ce91eea749ac2c78cb18325247266cbd03151e2a6d8474b2e5d9f8491721a4e8c2fbe4126bc7012dbb9d7469bdee4cbffa00878d602720881cb997a223aaff362b38b37303848fad3ea813f1899b787dadd893e182a9266bfd9e303448b8530e8e6554fa1bad037f0912ae02cd00a425db965da359b0b5ad24764830d6ff14231b2e2c699dbc4d5908b55cf0c7b35b52ada5a0f14b66adddf0c2b9dca6168ef77f5208a7d4709bef07f20951f72a9e49bf5277a91cc7c79f609acc361ef2539c586f45fbf87b709cc671efcfebd54033e6f88508012e278b0317cd54b6b6c8fe43fb7900036d1a67db7359e10a1fa41d533edd729652cdcefc6bf8057eb5eb8c301b31982463243cd25dcd764ca9e69e653e48217ef0c226a0a4a394c6fa9abdff08beb436b6480c3fc12639e6eebaa7514e9999cadf0d96cf21f5ca7e6c213647b716a16b496024882cc1e7b2004d31d49af893425a0a5f57098d90d8d7c5b67797c340d02455c984108750dac83df44766c9ac6d54b8325c1a1c6635be3be06c6524aeadd9045f90ee9129243462b167ad4c3ce6d83db2a7db9becaf9661b179c647241813187c393304acb09d2e2cb0e4709aa17c514582f748b4a3569103a1729a4005995ab98fb710d25b8b0d6d59c88fce47854d87b9c491ebcb2fe5474ce6da9fa4c0266841bf97061af004a726305d538877693260e6283999958b3ba8ae4d8c5d98cd722530ac2a63c59650941f0b4975cd547153536327becded91aad8c310e8d5d9b7a11d18c1b625555a01fafc133a2044aac46d1963b87757d7d410decc2768753ad8a28bfca8ca9ac175e2eb0187e22dd8132158ba026d1529e4f1cfad575e756a983eda9a2de3c61e05d314ac4e1a9030325636c14563cbda44cd2d3080c8fb63012bfbc21ccd5b36e69f34ab90eb3948a497d95a0f8fc7a1f0c0f906baa1500548958ea72ad2f191391344d3941b88665bb46714b7c78f3b01d805e2b3e27f416394766c87e3b6a46f9f40179d5bc036d51e14f1d06a626155d9ed35ac8677fee1a88a6d304ab6896bd0aa3f3ac82eb544d0b123575b4c0625906c23d4502654ba550a04139d0d49bbcad2a60966d8b8aa3dabc4539411fd1681275578406ba16f14837bda4559e9c9f7b49cfd02daa9dde27c091c84fd1921b10613c4722e57a7bccd6a02deccb9cd5c9da1b6b87d183f555586f3cca2ff246b44c7b483f00df454295d4bcebf30d91b4842204f83a521e6632d66a78e3b08740e19775b5c4882547ddcba488bddf26f3201dca916583c63d2b384e64770d7e5b259b9c2431b9d001f728ea499d14b19a4bd10fe96a8fc074ddc7dd64c173b1484f867e0172fe322c75e37562c55b0eab3f8b1054f9442aed826a6565e6628e63138e0bfca1c1e4051b0220ec93e0b572ec98592babfa73a3f43e5d698d72aed3c4a88ca2015a952c5757d80972514eaadf3b0e1b6c84aadd2e50cfbd5e8af9232a5b6cc89051e27c91b28f19e173702ca13721ea1140319dc46b0c7b4ce004c1e6d204ac994c193de88b58294659acbd6d60bc32d4d60d0fec2d88804f0d66555d76a030e5f6fe4150094055fe8516a8b05ff052884f7242a493f81eb5b6539c313967b74b51dbfa8e225fd3ee21325b1b982f1ab800d12b5d3ca603b555586195848458233282544d0f0b78827510cdef9cf3a1511d03da21dd8bb4a24b77ccc91ddcdd0b4c311af9ace5750b5ae0045b0c6227d5f810cd0e68ee6c6ef79aa61a39049fdf70727a785c0be3148597a1f09226756636f3b4e6840a1255bbf5f9e67efa7a1c0c40ab33c439d3e011b000230f33a1ee5954b0ceca447d60cecb8519fc923cf751eb5c179f6d675a6d38fc843aae138677c3980092082ea4daeb0b2f750b05e8dcd045de2847016a36cfe421b0c544abe39a24f7fa8aa0d86c063a327dd863cbf77b9349f8e706fba838e3bce6473a9db24fe4afb5e2e0af48ac252182273623f678d714bc8443883af38914d3bdd2026f0409ae3ae72998a30460c7fe391840539b6b74f28a0b266acff7fd6ffb17302dc9734bf957268814084769918d0ded265db8e8ba9df0fcd31590ad14a55b4ac313060bdb2329b60a48282239f1cf17927ba2a14ac97b049cd5d7d4236cdda307cdc847da1a17beb4f9cd240bdd3070d76f5b7b2819c3a6dcfaeb1302dbe1a3c3fcd6402e40d5ffe708a75c87353a6fe822db85885a2876706b205a9c655cf52ad40b3cf6e7368659be3c074d553ae8da5d10da59cbe26f112b1a41c3ccbfabc40053e90e2187dd37a05acae9ea305cadb3c26863c60fd726880c0d40f7aaa98ea623c5bceb6cc719f2435ed3d92f1be87018edcd2e11dcd387afa629d6aa662b246dfcf6614780cc739fd24fc48e495199a7504bd2a606303456a68cf78c8b462a0ac8a121a3d2d9738ac5fa236394dd969a3ff65aaf1db1a3583fb55c2a8013c95198827f914c502f542f6af823cde2e05380816777567715aafca12096c2817ad2907db65ef40adf71264781fbb28185bae3ac297bb268dea9fe11fc39f21c40edb28f2869b2797f9bd26cbcc30f5e4ece5a459cf8364cd23103ccf16b57ab36d2662e4b8f98c693d10547795d9e6d571fb584e952954aa36b95bc9763878f61b31852b196cf8909f623e0bb9308feadd0a3b98a0a5b64f0d158693ef0ff441b0217bbec29239627f95b9b57e863379024556d9f3e7e6e28e9e5770ae681fbb32e59a19949462f3ab9784c3bdd2325d76ac03cafc462543f3de3c86a2e60e1040de57788cebd0ffa957cb0e97ab628984202663bc45dc9935a40d370f108d78f8600f1814e21ea511aa5f0625f4ad58b1aa156acb045fee162149ff776029d0329cb2fd94ecbc8022d86a836dee7ec56e6a7175ec809b7a812452e952abd7187ac40e3302f5c701fd017cace7b843c01e8e61352071b27f635d4d650f337f68eb52ec06d130e07f61f1fcab5f68f1a5ad08692b7e813170f269e4c4e4c8e4c94803758aafd69ec1671d7c9b5b9330608bedc113182c6acedb6caaa915ebef7439c3c4e809ae33fa4c13af993c8e8c1efba2b9924c9144d7c3e7046d76c71b474a2a73038c6cf1fc8dd42507ea47ee72afe572f7cbfeb0636cda81a910019b6aa09184ad20bc8f9cb8333a84922c4febcb5b0cea592da6eb6e009db0b70dc76dec470e9315331307c29c506ae315ba2298591e1ae0443815d54e8bb54ccdcb0b28a5b41ab5e99aa668de9078b8b79c81aa21b720829c812e0ba85f6844ee2a33412719af0b21f68506c018d92d9f8f4f409ff2a7e03196cfc0752c335d296667558f060ef8b18155e12fe822332466a2c35f88e54d22e66d84a687694cda85d4ccd3a4102427681c5ed7ca6a632cff08cda54c24e8b73c751b46b8a43a584e1005808efd4f90efde645030e4df00965223ef03c51153b275bece6fb418d11636f247d470323e5ca2c7623f6273d971475d92212636e7e2d5a552724b5596c277145670c6126442fed6a11da73fa64d4f1eb848bac992d566f71d87a449186eb7255366402408b1a0409ebf51f67f1b6012a40571230e2e762b2598ea45227ff08e5616385ff7ee84522c339fbde579fa9b2de281f723fddf2017156e6b9c96065250673120ff544ae2d867917f240eb55210d3b42d08f970c9397d4b495790f56a164842f8bba22b61cd6756050fbc816052087c19bb6f4e33b2aecf816edbb525b45e719a0ce413642e98e88c990504dbe62a1497f825aee53361f8382c803f69adf43ee30bfd868d4c8efd59ecbc632523ca70b8a47d2318a583167f371ecc01fe979da3f158eb28043ae0cbb62351fa665ebc4edf925e7d1c41ee574c0fef0a58be8efd916bcc52163dd8ded14a8d1988965b563914dde3117f8ed15e075f8d73856d9959e3e057729b3a6f4082707fc7bd5c728039c47167c2fe8e404b227fd7c82a79651970c63064b0b41134996f4ea13dd1ac8f85e54547be27daa72b0630141ec988cb1ab7ccb9e36b011a1ad1c410bbb75cc3744784fa69357fc0c147af21c4db8bd814f2c8196765fd8c5c8040c30ec66e258fc6c5aa5b7ca6d33e1c61c2d65b16637885b661e55f833c3ba0b0229f68c2289994f805c4d1087be1cf170cc5e428372cae2e5fb0a19ccf6807385276e040c012e3838b3231ba67ed05e74cc1b12405e1188dde641c84b2c9c4646d19af40985e79f9c1fbfc915882f410e0552cf0de0a8bddc3c02f522f0680e1c0fa2e6b1676843c41d43e7efef8f6761c946e40ba851af096833a0e83834c416639a706bdfb4b0e5e66eada174f21455ed7e3250e33961ca379f976618f34eb4b9f34f3eb72be5b96e550fc6675477b33b5dcb35c10ee0a8db16c42a8b5a9134a7173b9e9bcb7a5328ea1812e2c90c1b29a21028f092cb9365dc2aeacaf4b1ebae0d22e14a3814c4b050416b061f14e2f41732cb0fcff279ef931c9f750b0ba4229d0f58960846bcd98a0f1d44c1920b62fb873828233d96e487966ed45e143b3aa8b6e80d041ba51398d98a8641d207299b4e4cd18ba1535188c6e6f125d2de06feda220f092448422f7dc922f1160fe440eef6a7dc33f37dc1af304581a63df11353de8224a9b108cf9159244953a0e26949aeadc0f1b7c0bdcdd48a43b058e70c849eeac3ec099c1275c48645d6d08250418df9c0d4107c0f75681b00a7cc6361d20a5c6eac41054e51ad2abed2682c119014e253aee07a0131e9d25f7603135f3a676c848e250800b19f2b0542fb9da21f5bd7272214873e4a99fe0d44025f6083f970ac7ca8a059e841b0708e03027714d75615cd6ad27221ad5aa866b735366f06d12f4f9fb70f053c1f47a764cf7d60feac3d4737cc703d515323d8a54fd58784acd733773a2cf2ddd04de89bd456d725995c73272239db4ea486e592c9433dad030ce5a14a5dc4e7eab6cce0f261d797f5788cc7a37b4aeb74ab4a76f92d99e03fcdfe00c5d5b69899ffdddf4ca40bdbf026d1b634edbbb7b3c2475ea56dae55415ad65888c4663d88f963b67d8ba53fdce00d7f6cac5af7bda1b4726a69e5ae38ea89ecf6dec6acb00743e77774bd8eb20fa44b9e5d0e1d71fbc565420fab5d58fc0389cf3fd40e79abc2163203d89a0f06f81edad795faf5c6817bc362ea677559259b5505aeead962d6ce2743ebf5f4df7974456de8f92b49c53c9d272801fcc51ce28f5625a663f99b37e30fff1fe31eade6a69e3ef340b782ef670f4894e8656d93eb55c2510a1fd63c2d7d4db49ac03a86377bc0724a07e1a1881261338d43f4e5e52396243ceda316417c1067ddfe60310dd95970de2fdff604d980023276169e99c5d737c7d32042fcbbebc39cf58a24e8a61939b52969f8bf6e80ee7a73643f6759f8c1498365cc9f751abafd08765c548eec43b5ca43cbac7eafd937156f2fccd6ae641c3a99ef357a695c1f50c3cc322ffd81a0e0b47df5f911e1a1ac5f5271548c8a73545264ded69954038ec4cb42fc881a5785b57a658d42e8d768a8260ccaaabb2dedcc89b719904aff1f4d073b873b66bb27bf37aaabbd15819a2621490b7e97edeb977ea7bf0156a18c5f8d28a0cf42410e9cce8edbe4705b29f17afc73f497e0e325ea30757c1eaa83464a7ab663593153b86286583e922a2a62520bf889917a0a3a1d56c4e831130d3bc208e6c3bbbdc3aeec5e1b83872fc4c05d2f99539c3c5b750c442418b5a404191baeb45c3513adf61056b7daa3c664f09644638f5f1a3df42668101a4ceaceff123b8cad05dc9c5eca57233e29562fd08d9c12b52a8690aeeaac4709157a58f4db8a0119fc5168f439670b50f34dca18df282b59ea991221d6f18c70a84681c304692f8e63f344bd309dc21eaf0bf88c911ffeaa12e659c90765b18a0735c82b9338d34460258cef55cc3ebb0da716131083462710e50d18721bace8a14132b6665094ac19832abd8c7e8d6e1bc480ae7de44cc7c0c72d63ba632e7df5f98bf92bb36906fc7703821ee81179874d060351c4d75cf016680574fc66beee625b2b6ac4ad4e0dade3a7d955fd7797595d757b9769d6b57f97e9d6b53c1af2fa7ca660bb344be74c63e71ea66d1cb36e78cd2d13a025ab60c66ec2d8a8d845f9f0e8fc23980f6e27804279b2b3bbe4d324e3ae35da79edb1fa34998f198bbe85ccdd98e662dd876883a8a40163ecdb838b6590b9d37f136050cbac54f6940cc491c08875fdfa26bfffca8bcb32d8b15ff94f935a43bc1a9f1ba88ee1435b7022c50cbfaa24b0d789f67faa79ca026a8ae595ed0611d145682b82ed441b36a1b82bb39af03401421a7396f0c0edbdad132821c273873a628304d129b5230eed04ef815470f93668247177df986236c919c6414a1acfb69428f485f1b100aa7572460035b01fde26c6a78379a76ee6fbc355e1d6443c6d69da36380db0eb080d09c1c012d62599395690eab4bcf3645d6d76830d96459fdfb88585132990d141faebefb1ac6eca81086924da056a31ac76123a19012d66f150adeae5f35fb40f76d3223ab8177e9d0a81b068696545d5bf320a5210fe87e09804bb687d5aab9b4dfe8cd411b213c09587b59e4690f339de32079226d73ecd4ff13672973b89b6cf2c935551824a5d26fbcfa3203fd2e9b33daa00509ee31bbdf6097709aaaddfffcde0aec001c6cd2ff1c86563de775c772ec295e14453272d3d0898b65568c1681ef5251b24218d601a11dbea36aa6352952b70a8e39fd6c4416c9544a34f66aadce37a7439c62554ce6bbd28b741c49b884da2d953bc3045c9f8ffe8d2832efeddf5142aa1d9618c78d46b2c54359929f3577f69927572cf4bdcedf8927d48992c8a72bf331ca566dfc433edccec044d2393602eae1ac883a65cae6fedc78e5e407306f94636c5716bac0763eb3aea5593f61b349c300f3c1039709573cf119b55a55951ca6c5f4bdbdd3b6bbe8638e5763efdb4783e300ac449ca5429fe35aaea121b09b12ce462ade1c17b7797f03a9469b0151800b199ce4a1e9f8376996633906278ba22c6e8ecb309ace6d770b0f087d110ee6c5ca1cbbb396092565f6b54a3d2a65a5398e133d4e084fde57ad05c20268d81cbf674deb02ad2c33751ef079251b2cc6f8de46d8a1e764dc305544a8bf0a51e1cf0693257f526db92141886e80229dfc4857baa2711594f06f7d02ec59dd4a83a6aa6ba2b127fdd87a9252f546102bab814791e1d349981b5891e58469e4234e61847407e1b11244a2a5b0e4ed889affc9f469627547b7a74f32e86ca20ddd7d6298c0dab9a6c4414fb8756e9cc98fd5810e1cc4993cd0f0c7f05629403363394fd573b2f62591a96cd01ceaaf1e69ec720d6d72b89dd8c6e408e62f2df7584502cb5b389c40026653bf587007307b405c13cb00a17ec739cdba02105fa4923fcee33223b103b5e99ac83c2b56195cdaa803e066d5a76eaac3a0b30b828453f7f6306383eaa995018ca7ed57383240dbe94c01edf231a094d9a38af9bdfd2c382bc96bf27e24f3aa0912baaca0f949044047d8ff80aaed80a23fe97c5ba1161bf54abb031fa6a34634700e0056d005499baa4e456b73ea413ee40236f69367ac2fb0fe2ccc139f8147dfbbcca0c036c1fb3f6b03076c5d772680bb44d42b0e09a5ce9a058130fbe40cc568347c3a31398328b68e737c303b6bf24ed9f16904ebef596bb33e8d222dc466d9be9acd1f54b7d05f1ce695681dc37f2493381d0d2ee96af24f3853e88c5d72861b7b316e440179959f9165ed053138099441a28b5171a41079e3326839ef63d6db446cfaeebd89aa93c3ec29f1633eb97c6084a7fdd8fbb559e0ec4e1cf7bdd1b6214f60643799a6b10578dfd4d0c604f5890486a24c4b04ea9b4ef1b118546db8c1f368d4994227fc7d126ac3221bbb3f9b855ef0ca4847d299a4bb2648002fbdea8ae66a1784b13af8621012a9f5394013f10fbea8dcb4c61dd113190c76e18b1250e4b5aa085edc609e55fba81f9b85e8fa9382894f2892445b36368e3a041f4fa0ae11907ed071e6500a8cb48e621f5545de87e0cc609fe08274fdf16114e311925933a9f4a5b5210210fb68966503c1d098a09308f3f59e4e706a20f7033457f500f6663ae1141eafbd40a1fd14711617ee31b54f2fc76b20310b446c2cdebfc5b9750a0c975eb3b557a7a557d3c61e96145153ec53487fa9c69a667ed2f842f14d532a64154f403029b1959c401e69f40598b5780d3f18a349cd1fb68a5d7ef77173ad272d85cd0ca8759e444f38b8e65fa358134570f6fc203894e266f5a446a8dcbb8fd2ad75e399766a0d88602556931716c0d6276e4ffe3e9347311ead1b9721bfeb3ac86c25fdb619c76c35e784657c63c6c6fcb87523aa0c0973097a8a46e32c61ad17ea97d66ea821b5fca6f6ae265b995ee80704e8c2a727718fa57b904a31d5002da3c62c42fb7a4b9b79d6216a02a8696ce581c450a46ee585665685d4d10ef5bfa67bc4d6abe6a7fa6648241da8803b2a371957956b39c5e30c317cedd8de4816fdb5a97a2c054504d6f31731e7f60a7feb5c45e89c259082b7717e215600ee9aba090c8baa1d120d91e6bc1f553f96f1bf81228f3f4149ed31438e8ca504d502517ede9044d674cf099a6a8a69297d7c6c1f9bb27bf8ba710c40ecc458b0e9f6fdff93572f301e10b30375eca35d5f8c7bbf65bf3611c3b3ce85781acaf20da30e6e5d1163b51f7e0dd475120650bbb2709b785dbb7529de6c3a692ebb426bb40ff6a8c1cee13697341f277691c12e7d7650bda51c7874d8bed343d4474690b33a84dd80663a7490e2f7d2068cda6a7901a0658cd630d3dcee14806f0c772942877583ba9b3e42e86f45bdd3a0e655bf9ac56329e12e5c8ab251616deb65a282b667b62e322df736d7b20d489be4ab079605b44853f1dd102fae2f76628d57e9867d352e187bae36a02bb3463f7d53daca2adc40e5c0f15f2e47bd5b34e12ce9b416feefb5a674ae90a19205bf053cfaec5bc8c2c9dce66e7520c24db8134b93d4d7e37391c341132f39349815603c51ca3ea8144dcfa2a842245bb162c9c6a2479970826e23f5429a55e5792c36197fca8baf9927497f4a17a89a74d239e8541ce96ed5b2bead75260e48f338ece8ff437cb42ca90f0dd926647f781954ee75dfb201efff303ec00cb8d8f10a3f9e1e69c1042d7b35fac6d6c83462788e28a2574d9d34140d06a1809518d05b12b5c600149ccafbe32d4d283e2d644ba589d79230e84d69324115728e3c6f3b49c96f6a712ebc2e4fb746ebc213a9496e6aa02adc01fb4d810ae873bcc7143b602f6681c393144bd12b55b8a4091de3a577c81a157422b5eb66bcb7137191899fa33d012e878ce6630848781d056485b9ba1ecc8259c586ff3b5c7a34f733eda289f6734810c07bb986efb1248439908a51eee5378685bcd56cda22828d1a5ad52da972bd82309a6336d895dd64ea6335158272e72c9317be85979aacc9769f13840123afa97b75d0102748e9b7450511b64fa66a6da498ba30a448e220063e711a1578469a885127021bfb9a466829b1f5940176f81de5851cf38969291c03f627e2a157379f8b6b39a46bcb097168f912644f31077de8e37a36e6239f1391deb7262fc5680fd13e7ae18ed0bc5435fb4e7ec8fa6343a9b1277c6541d6e44ac32636c2cad3dc7a85d143c727d87ce52e223b28087b5c8c0fd251d41407c7c2910542f32ef2fc4844b0b2d3dc5cc323b59af80e6c562dfa7f37eb2164e2fcd31a6e114d6ec58971215338a0209c07b2f9127de6b745c75a8928b2e013ed5f910ef3ca9cad7c6657bc6be649bc921d3a06bbeb356aaf40c81c21e545e7d8e6745d053c7fdf5ac0c85505930aa871b10025bdba5b8c12f5369980eb5b45ac9098164b81ecc5ed9a2ea6718064c36c0919b2d19da16b8371fbfee218bf48aab95f10d0f1d50019c4e35bc1df9cf637de55df27b01b20ae89804a7a78d87755a8aa247e159893be92fbdbbf872161f51251e8a1523198c8c07f3da7747b5e96ca30575448b8c00c7be9fb04e2ab671b98b841c4adfc65e84dfde225910c92a8b591432575cb5bfab10fd507b4fa1fcf8ded54696d236ea647b8393ab7996e8207bb26707f921f111f65c7dc30361add6541f35abe49c1aae4ec60e3dffc1245ec083ef854889de0d2b75c7b237842ac394a56b51ef2fd03e71bb8dca748cb82f50998e840b6fa809024f9af3c6dd585e7f884b0676906dc3355ba9438e27341a8f3ab4a915218cb8a8ddc43674761fdad05e6e0db5a688c5d192e32110a6d0c2499c71f0ffc358395312ef1537d99abb0a188ee921cfcdbbe08b165a0e8bde6c41b8b543a25705ae2b779a66466ae3ee0f09de87d57d39dc1ddd8e8147c3efb55c9baa12eb77432d48652f4e6ce633856f3f9d22cc5318fdb90be6c1b6f189df45be601e8ccd8a1f9dc1dbe3322f2c8c45052e302655f2827a5f6103f1324e51e30400eef4707b55ecd7bb6d6e0817ebc90d945f4ac4a6d414cbb082ac678c9346932ae1b689bc562939ba38e14ebbb362b2d03e399340248620fd3566e0d75816d9366f4ed100cf6522900c08ea31842974c6a7e4c4f7bf8fad0e54c07dd5b680623da49daca3bb8c0930056d9238d9025f4222b5c697f5cda4c8ae2705866fcb7ac900eee193e5b42b90a78c0e289f13218e5774a41de2e4f61640de216315a1500a06d8866a14b307f52f33275c983e72b307391f9bf3d17228499b18c0df05018399756abd903a669f0d296c9c8a7d7f0a06c03cc9ec7812c33cff56450b3864c8502ba4d13fb04f41da7b61b36b60aa1abb4cfe7aa0d101254b170a1cca741569feedc91c202364a58ed990587f69de412ff0fcf87ba34e0cbe5e721824b8f756a157d149e42688d6089442bc60aa58998977dd7a4fc6128c42dac0b08cbc87a397fcc40e17c30d272b34a58e2189d091c5481666425766050145c089963e34f047e4ce0a657874ca9bdd760e81b2c4c795972dc5729af27758491964bbad39c91f083701c6c9a3865e66b9191b259a2d03f9ec6fd3696bce0bc6fcffd50db19498a2c8582ef5e304ec72b578d2c1a740bb1dc56382b93b5a1267690edb4515f2b8b9cab8b8f43ab32f77a8bcf5ae54b4f70598a1f44aeb26be505b1803399afff4121c8d3f6376f0dad2af843b18232a44a0079da1097100eff785ad9d9558f0d820e50e9a411b430365d3b0c4f24b20044192234a94f796e9b137378fff1346b6d13e9de578fbcaec34396b3d0446756174fd4a6d770a9670d8071733800ddb55e399751f915ca91eb892fb9be4b36ca0ea4e7483db55046c116242d2ff6812c8cc950d42ca399677cfc842205d77fe9c423f7ff0ae683769152c24213ace6486b4c270b01a131b90ea08050251b786759e914deffbd6e90e2563df0ac2625df2772a2ccbc4114f15473402e9613e1cf3da5a5ab0211200fb2011e6316420bd2b458b6baefc63c11937d9c8bac3e667519db92b576f938f3263cb54529f64202eedad59a079ad718b54771d4d202c2b1ce21452579dbdf0505903c05cb00bc81391c51ca59f4c0d88b37bd16523f73951753d5007d93657741a57c45f32835aa2bba8458be816a1720d5c65ad24239c827a1617c1f702954f98974e4b80ab836d25a77ac33cb342981b48921b3bf7611331e8e54d83914294a29b5e7a1d3fec9b8972b83f90367b691cebe7549f603f0117ac46639b6a12ee07ee07f54fe5fb0d33181f515f7308766fdd1e9695182f393abb03008d0361b2968b7887ab077a988c184e901abf0c040436dfbb17b9de482395af14a31f5a96176747eec1be233099306ac7326fd08b370d8c8838b185b6ff39940fe66adf16ebe06f12be93c507695cc6a58dee2dfc77409c9d0eea569cfe3a7cc15a6f7d39294a882af1c6b26e8ae8e7640cfca3d2368a59f36de6e94530331634296668e626bf5bbe907cda8f1e3d021b79543dce2329d90e6172430ca966c64a24f6cebc78f91095f3639626241dd663ab37cc74ccf4986bb6e86c2d908fbe4b100c4375a3e9ae1c43ac83de565c7cf6445af5505ed258b1c7994174dadcb1fe292a225ae3da2b6fed5eb192c6fa387fad180b20d63ef9e85d1e1cde26cee0b7f6a49f15a3268386b19eecc5f8d6362f727ca83c4b26378299d7f399e08689e9f82a02792248a3c4b251e26f4d69e7677b13e83ea1538ddcd39931bd8e79fb85c0b81c6c448e64eac38b28a57dbae35971c8a47990228372921ef962f8fcf0778ad1b4f877d9041012ba7355da1a3983487fc2b39f376325dfea0bd8c445db7fdcfe1bb32c95f805b0e08e1abed9a1749a0d2900b489ff591fa4e2c136e79e0c4a545c4d13f8c04c5220c64c3714048457052286ac165b4c4fd46c18561a0b232557479443142a08d87974cc459e3a894cad92b28fcf7e2732c89f84ed21b9bfd99c19f24ac32bb386f22d308cba9a7226a217a22ffe0c19138d856c58fb8d0b193fc0502443834f3bcb4c5351c7c05878384cdc5a8f9b1777b8103a11a82067ae0ac7f8091a3be410b23fc02e2252a9a2e448bb959ddade9342aa70458e4a8d772fe2e94844d1e45fe184f071011a7159ca0fbc9aa3b8eb09d0f02d89822004bdbd89e09ed1db63c735fbff2e191438adb9cb67e1b764a026d67b269fb98c4619f19337c3ea8206c4d620bc5646e14794639af72e283bdd1ca0517f2cfbdb514b982fe1eae10e124a6ca1c85fdc1bec323e3ebe1d097f9596a0e04262b257ab0eb76604306cb316ac7ff77841059ba0eafd8f96d1d16707c860662a71766a76e26e1b9b09449066d258db351d1a6fa12f4dbdfe001aaa9a593a97e999d0a726f3c010f655286af380cedf9cf2b2047c3382bcbe531952cef6cd8fd3b9e96778c8e4a2944f391b94c2af0564bfe3011a3c502b6da6bcbbbecba0b6331afe6f6df1ce3a080641afbfff1aed1324cc507b35481dc1925ceb3385a46c8e12f24d1a07be3102f57d555b42ca1a2198cc2931e48d35612d1ea960852cb9743fee3589918511ab9d0512a02006842d1d74b68e585822b4f785d3b6a01050e8976cb2fecb0ccce7c4082500fa68a13d1c03f37124e830c5a62b406bdd7c7d192531d0207545004e74909c6b6d751968c4da3e24ab2e9fb46b91dc31a5a53beb6b7ddbc408bc615f33743342a8daf029695fb9c01d13b0872162a061c161e2862b9c3c3fe237aed834342ae9b2cb8643db8da525a97db4f9410fa14b3c4a9d6f3910ba4fabfd3de8199e6a7acf6f9389fcee4dbae8136539b94dc59680330d38badcf22f514cc1e0157511d077fb642ee26174c1a74c2377ecfe1a717ae84b53d892b900bb14d4d57051ec6ff60f773ad283fbdf7d9de245c2c70c6c4c4b7d0d66cf53c843a188e4bb33875c8e4fb46e0bfe195223fc684effe6f8df0c6bb77e9acb0f125442ab8d2fd012e66ab7b2b106038de69c5cbe6484d5f62424a99864b35667aecfe9e7ee090a3738faadbd79aff3e326c896ebf4eee0fe40b404566591e8d277c39fa93b69b1c5e0b4866a86f178d04afefd03766a7d13732f8790769782fa0801ba3f2c98868e09f1f4c967819053b2a104fe25f3d413415a0de6a4975a5ec802e53b0b95da0ab90802162d23b0a077baaddd51dbb6255483ccdb9ffb929abb430222462307c24cdb904b5a7e7cfa4ee500fa84197e0d803d825ec3a350897db50636234e7957252fbbf35495bc97a9b04f83d1eb927364da291373776d886308dc09305386600a728c085ad7d0e0dde7aa3587d844c530f2f46bb2a3b0085132e1262572acaafcdc4358d08dd82a6d8f6f0689200a5004d293058cf2928f53dc3a56ca16689cb26b30512cbcd5f807aa4b00b497da2be49a10b45946518f9f3bef00bb6de50b4d6a2ca9b88de99c4027aaced7e0d536f275c486e1dd6438aba782cfc17790bfa4ca1800f799c07b37874edf947bc4bb73ab3da81940bd3f86cc43accf6e34af87395f22b7772c6e72a5591165879684b1f7d0c115bbf74e9bf7d9f8f56ac0ab92ac4ce81e242e2ee61e5343aabf2060b1020d2d7704d363ffebaf878ca77d4aaea506661dc49cdb31f23d6d3f9dfa045527d0a8e685c64637dcf1fc3c8a07bdcb94d8cc930dbe0aa1959a17ed09ea0f07d852ba8540fa6ce581e963cbe3514e58e8d6a78f0056fec9472f9665fd7584f0f2da9a2aa0d8dde0206cf0504f23dcf027be3dbebf9925cd250ce431246579cb3f066ef9f031c39201ad9dc9da1106b5b5b7d18e371fe809080838e22e4fc0e45c95836b0310070ee58f1720901631df55e4763f60cf85b97af04bc0cd523385d0385ca3cb34a39ab634750657b26b6132e07f300a7a2584016e51b0be097d023664e0bc15fdf479976fab32a918cf95d2754d8cc44a5ae7d1439144896152e8280b31bc831a10ddc06f172c6e210c93b14e33ff91d2cf7d51a7646760fca0742a50606fb9843dfaa22e4c21d14b7fd26476b7a2be039ae17af3c46e24cee711f1a2ac491eda93494d03283f6fdd21ec8a0d5d2e756b065f43553e17d3e6f8e7ff3a995851ee8297d650d08ba7cd5fba5cfa16f9038de3cf72f3f3ec8f0863dfa033523a1f51f83ea99e026f631f3fc6d19b91b4859edce007ebde186e2750685d98a6a14af648f4b2f5263fe6b53025d14cc3f0dec59b8c37b8fb567667e49b31036648f199aeed2aa63dbce32800354b8272040642d7c23fc2c71175b2294641f2b01b12744ed7f85f4cd0536801de12509a491f6633cf7fc2f7ad80f0a5b306131701889069271c0151e91f9c8279143b325fe52e90227d0df1e31bcb1196cd86900a509033d9430e9ed4c1f9302193b06c820f32dc878db4f9a658eb8040c185e03b991a718e76be59f53b1394656f92627692035582da19f754a264e0b4aef827dbd8cf4b16451e2bede7668d7a16ba362a95cbc0aa94b997f408c9448ab6a932630415aa9856070298f52df73cb78032feab5808ae3bfd20f52e81f65964888ae2ed577a5c408b376ad8caf729d831055d135acbe6ca534b6b209e7631040fd2f2a9a7f881ac0f0bafb82f4a209330d9c788ff671d391b6292afd450b3b1633618d5d4fa705c4b3a120e2900187d5fc2ef538d754d481fa758820c2c07185095a2b1c26a85f714ae5e6b0f54f1965b9fe6a19ef858aebd566d245bccc0debeb7b2c70ca0a17da87594bf3ec7721d87baa57d59738358dbd8c0c2713f883b2e60a677d84a1a5fa3a65fda02eb84bd6735171673e11176afa388f502474e5b72648ae209f893b2d6c252c2272722f6d13afc75ff50aae94ec19b8482b5036a69b0dbd4ab0f9867ead7e5a84dc739975b96a69e3c73fe364eaf4c17a1ec603437333519e425829f4e9455e444353b99f1a90436315efc352ac51f04da800d6f774948dfdf6bc75cb2452491fdfc249b896ca4c55b0899212a569a7970c493b1049b3fae5aab6c4e5ece4a817d825f2863df6ca3ccdeff225d4501e18bec812638db0fd360d25867eb788868d0f8e9ea424c2f09307f51a45de45c3a7b1ebe588a15a8e59e4badcc294cfae8d5b2fe131b79ffe13447d6e919e46b7b06523f9f5899d29bc1b20b178b34af004589d4e6eeedde77c6a88d493511cd5bdfe0eea1ecba7ceecdda388d9a31acf81c7c45d6d1a7c8faf123fb566c6d86b85885d9f52ed3642a46a141dd9c9b32e3f010afaae3ca718a1ae283254e699d8ad819e9fd3c9155a7b6e500b79e0deb7b2cb0daedda416bb17b246a0409a6308ae6de16e0f4fcad85b0508463b55d5cb937c27029a726befbd1ba822b58360a9f5cb78a6df789958e1af989416581ee065b92c8a72c86d8f9016cfc296f8933fb0e9f5a5a3200be5536c7d80bb1b8c2f339b8e13b093644f9848d0c5d7d2079ac9637d3dda121e1db9c773d3c2c718da5652b21166bd0b5b423145a4881c388a3c2151fc4bf7160fd81341f4cc7ac6fe152aaedd8f6d4db3612d1a82749f153e5ee6994169834fec24a4c9cc9ad1ec5e370687720661a78bd0bba8ff4b8c2e22bc8360880ca22f144a2e1b83b45d5422427fb9f6fab8f202fcb12eefdfa995e22b361b838f19f8e78be3b57fe9dfc1f653b06983b13f58d3400117b50645c218caa0112a5c9726be1d456fcfb5dc513af3e36fa6aa0972f9fd2415eac6ec00c362505afa5fc91a270618a960d8541dc53522180c3a0600c635fa29969ab8684c184423f9bb47c62ab95676a61437b068ca26382c06e87c5e2d8006c763bae2682cad0120f7caa0b45271339655aaa15ef85b8d701ed0063f9e65c0e8ab17d501229518515aa8fec59d6eb8c099a7cddc25983aeb418102a71e328ced5398bbabd2c4b7ad87108e3d6c7051dc057566774a6b7e8d1511b585a2147a06426ad5eab2b118127404e2d4e170bd1f1d8adbd40cbf3f3338d4cafb7599be6b8b91d09fd8c17b22436f021e1b138f17dae16a0848ef5450700534e4033171a6b48894effbe49d2f34c61ea377970efe0142c9b3f655d1573ba30d7e302b41d0a27b26c111f3157151d138d7c395c7e390f5ed3fdd9ebc600df95d198f3a80b6d9a6e244d17805e1ec8a20fa7d1529374a167fa483d3d42bb2a1473ba8b74cae0ddfe468491b1915f10d104e9df74d0a6b9a8ecaa97488dafbd88d930cf92ee45dcb7d3508fdec2058f494918830abf28a5b822251284c79d06479607a0d757a6e9c49fa1de5129b56fcd7209c84de26eafa9ceecf619d93b5cce61e16993aff3ce9429252bba44754ac42e36348b59dc58e5aa17e72ca20005470f457b6be538452b957371715b11f0c474c744742224f2242e6ce50b52ea522efff5cc35e02bb3bf15a101130b7489782389d0080bc77045cbaa520a4389f36f6c2cbb527085bea61b3dec564fb2334a6d766bd26b0af443cb45103ca99428157309a15a5393588443e3ed2561067132e67baa0f58531f7cd567a10142bcd5b7a1ae3c62a755e35bfbfa87743c72980704f1b1004f1cd9420d83046e4e49d9a5b6b177f07ec45af00a33d82fd66b7b5dd48376a224242761b08d807b907f6f435bb3b8fe63e4d8c96ad79aef4b92a9247f69c584cb7250fb5f674fa2fde5094ce631946fea7513fe32fd95d2e437b8c9f4c9f7848a9e52c4d4bf79be481014f9650c825920aa1208a0395bac1050e686388cb2a0abb73ce39e7345196ea01a4f3cd0dbd233a3def07ca6cef2728e861239c8232daa5500645f3c59b052488ac828d948e9d060c0e3233bd91920b36527abd0c1c031b293dfb091b295d3bcb0a3652bae82623a58fde7853626615aca4843b302f79a00d4743ede9a8d4267932fc24d9918852cddaec74aa3f3c924a353ca2631fd049e70d844ac11bf1a4f30642c114bc016574b245c46ad1a1073b3b569080078a075c51b00c8a68f4f9cbc9750cbf289750d52e2fcaf08332e2213951cdcb129de227a4e19dd12d7e4d54198f955825c22a4c2803178e72bd25f4ede01b500656acc2a413ecc3e7c2428688e284e774034a138b128a728222f4987b5ed32475d5c3f33a893b278e7ec06ed69a4e2f53f4c4e0070494526b87e69ce00b2857a4410b22d4400434940cab297eda605db6f503526c010327f2660f4575af7f79734bb8cb8f08ec4e0a2d723f5accb9a09c93abd376b8a0bc3925e46a6518ec01653210e5f591a5b212faad62ebd7e69680049471c7ba60311af7d7c4c9ec794b600f18297c4fc62e6a7c8dd775c3f78980ddaf04d5c5d8c637fd7f023964b792c28becb41d37377c47381a7b374516564dacba28e9d62b50bd08abe4e857109df3f5362a9fcf589e1db3566e9d447a093f201256591756d17a51e9a28f26e9a3aba89c65c584552a229111d929fde825d208ab32acaa97865559bda8b42676ddd148292f49a525a7a451c9796d89a19d8b99ca8918e2130453a9e465dda65edad8cf6340d835fc8630ac8a3e36a253eb36dae34b97af3f2bafbfb08de9f3d69e845593aa1ee3eb6dacc76b3da417642f7a09ab4a5fc1ef07abe455b0aa845522acd282b463a7d808958f8555d6ebc1aa8861958f867ba87c2a56611807b65027350474e4947af2f374ec6990f57a243c3db1b00dc254e7355da25a38aff5cbba54504f345ad7adf96b5ad8ad6be221d775cd79eb9eb07bba54393451620b658a808f78086dd85027431b734eae9d9d6ed8541314a5d6f274139ef7dd11f33322b70773e32d27c7dc17661cf02d11044d90743281aeefb0dc1a8232f070486848e834f47bb797efe3fddd5efe0ddf9ae74687cbf6f62bafee02f639d0063eaef406b151d1be0eb5ef4df60c937e83d8a86c34aab2b08acaec06481053a6b4a1e539bce52ebb980be4b51c87b71c07eac2a3e5318f798b1112c8bb3efd8775787db76efdee668314a1fdba8dcaa5c42a9f204548eb2ad8412d1b6261d5128fc6a77fe1874d78a38f4088e42d27bbecc8e1a5e7f0d2e97134ea0279d86547e938bc741cfe842842fe1a62e9701df076430e3f0ef7345c78941ef318ac04cc3737601c98ed51b9f4a8e580793264041424ae5f5865e127e39b7be2f2cd0dbd7c7b3a34337e79afbf0b01f90bab625c7e5e550ecd03aecb43e0c287c0ebb14e38e090f72302e30141991897bfb0c623be438d47cc8db77a7ba7412006c65b0e8dd36a647e786bb9c5efefaefc5e977f69a0ee8e99573ee3be97fb5ce065dc0705cac0c7b842f2b6bd201c98ebe3ddb637b475ae6f1e1e1e232cb70effa2ccc3f70eb481b5dc8a5d1576232c38303ffa7955f34658ae9237c2f24bde1d7995cfbb237f1dbb3bf2f32bf7a6be5fb5bb23efa0cc754d78c38138302b31f3fbd6423e110309223f7c33ba03ca2dd4f02f08e2abc4ccfdba441034d7b13b4cfabca6dab9f01091ca4bef1a5922081ad12fd3b7165a49c145ee19b7920249866f2edac6a3815e9ca895c11632f8c95566873686d8d3af5bdf2c865310c7af6fa979d11796c8bc8675e6e5e5316cdd75a78e984d78834082c82323a2632f917090ce7d23d88611d1e7696325661e612522dc01ed345428ab5889995f1084593ce21b25d6e3f18d92797a3a7b5e173ec1d6c9355e0794addb0107655e07e6ebd37acc8c2d9401ca4ecbd1435ec6c04a64e63c228f486b3278a850bc2eab94487624d2b28a5dd49a32c286420f3e38baa2625d3c4dc7f3c3db8b42b91f33b4bdc3b74684bd2f9f601094fb2f28e7804467a4f665c34bece04cec1fdab976aed520836a76ab28868059014a01cb42155388620502a128aa108150155651f444c1230528e504a59ca410138339c19c604e302760ac9268b18a6267e5023660438087177b827d0f0a6994d35ca36011ec43b96fb45fe0051664a545a965c59515c8f20d0119480b303057b98a0a2af7efbd2ea350357ae686dff00d01b9bbc690d142318d193702dac8fe5e4e17026d8cfe1e7371b05c237edc7031bed7358a06de5c10cc758d9a81372794575ee6294a963b680345a17391715127dc72310b5e31a9a04a9774e948a465f5fa8032f0d8ed3104948110f66c942b11a939135e52b8c834b25bb9c08a5c47eeb92716c082ac1631072184a2d3539decba8c041238b08b44c14640b146d4eb42b0113f8440c9cf0dcd8bc4a59693ea8ab06ee5022a324c762b2896e43a6a27df7b6ffbf1207c1042d8af48cbf48504d9f7d7ffd1a89e433f1af58ef40c9ce97e47dcdfafc12064847ec7c1e9990d1e27fe47a3709660e1e537e745eedfc8a1fca3518d9fcef3c2bbb89d9023f407581086046c8b24d4a80163123a8c1a1d460d0c0a1811562c005a3dc164f5c4142b1e1e1514592561b242d2848bac4376ab153059f1ecac56e005b605b60516052e562b9862a5022f562ab062a502242b156cf1302120f9c94896ac5230450aa2c8db534c64e13020053801a5363184cf152de82983d0154034d61852d044126a2dcbba13001a5260c4351871880a0c0b265c71054dee38b886f73a76a5bd30c7aefc93f179fb469cc68c8d4298d70a710661f4024636dc8c4e24c3bbc1fc5e9fbd67f80404e61beb1d47c72fde0fda677d9da36778eb6c1d476fee49cd2084db8d18501bbd1c7efbc183f6826fac8f0ebfc53c27de628e8a88dc86e47919d990b73e4eb79c489e778319c286f36e118c29ad1a79681d6f7128cfb73cb79ce0899d02133667842c7fa04cdc6e3cf9f0cd7ccb256c892da46636864873c0e89df086d32ea7cbf70b7af969e0192eb8c5013be0670dfcf4e2fd308fd338208df7b73894a5d574ccb77c3425fd0bde5aea636097110e7a6ff8b2d1c038879917693aa00667a4730676f0fd05bb60193120de44999643f6e46a5d37f3e9ba6ccd99df95f9cd979db6a3e6968e5ebc01cccfbef038e0db5a606c89713ed0ec3e44cf90ee6806f2a6647bd2dde4fbe9961c140f25a8a46263c506cb37544a08c43f7860b90eca500be31bf9ecf0d6175b2a4b0bc4c3e8e1741ee11b79ebdb8b79f68e0cc72fde00ae85b7981f76a142e209e5a2088132505a5a22feb1365a3ce4ecdb0f1ef2e8a26fa98c75ce3efabcd57464bf19e1ed595a4d96b30b8136623899f7184f20636f94f883876c5d84b5bbe174fce2fd9059af387e81c5a17c599694d28a5f448c88cc1141fc03d931c6182db7439431e29bf7ee89b0638c11bf30ae67fd2792721dbb0c511aac3b9661f7aeee91d239dda9bb717ff5be8baecb0ed1b1fab2f6a8fdbab55ed833e776c8b44f6d4767d1b30dbb761cddc7b0e3e8ebef3ab7c385b7bee8f68dab69faf8773d9bbf1e9d0fb05e98b3ce59674cbb4884eb0e599661180e78c14cef4ddf65eb6e39402010d54dbbf0e8bbef38e5cdbdefb41c2e7b96946a02175d7cefbdf79e03fac50823ec37a78b4f3e195160fb2e461931956fba20397f8ff0bd9e297882c3e623edd17b78db5e7e54e331dbd27858efc3c6acc61acf9b448e0e039c1337d873808069356dbd1eb1fd6d7e5e669faf19026cdfe11bec31df4c9cdd0debc377f7f11663b4acbb46d1eca865e1b773ed30c5aa20ef7ec4ca6f1bbe913b2406f2a6dcb83b1eee525aee39975a0393dc8f347842bed9ad96749121844bb4c0f19ac6718bce871beb1ec8db11fbbe6dfd76bc3b7cd35fb252f224af964cf1b49ac983dec178a3f5986fe429a68dba9b8595801903eff03713bb20419438e57720b00d3a59099adf83e09cf23bbc18b2971a344714cd5e6a348410427a03e13cec29a38c93c7936fbe29a3cd91892b09523245568224ef90dd6a065de4da5965c25611d8f79bedc527c47baf71d6a80d890c1f5d8678eb16018410eaf49fac27b052de64773e3061dfbc7c04ca9bb408904aacc9c2db29bb79e79eb9f95a263aa146fcc04da9d49454aaea8411462a15069492825252777973ef03af05ab18f48cc0de382bdf28998fdf68d6a8b7596a4f7734d1eac03c7534f565b387c427782d94894a0003080a28949aa1490c8a48153640a1888a383ef1ca407b28a524a03c5064086d5cb425868b8cbba7a08d97bb4b84a3e9614bcfc5fabccac7e6ba30cdb0cc27880d766b931dc3aa7a0c9f4ef5984f109b5a6fa3bdaa306a84aaa257d1f509629365b7113dc32aeda22cc3374637b4673e416c34ed362cd7b02a9e45c3438c9c16af399a1a45a2dbc48bb08ae55124c23e464e88e5a2fb04b16161616161c11918399618a34e8c58c8c8d9abf2b1b116bf679f256115e9c1e067dfa3819f7d0f3ffb829e1318edd9f7ec6b9d671fe9aa7c6c4824dc4d6a5209ab4a0d839bd44d0337a91b37a93ba849dd4f9ad43dd4a4863a4dea52094358822508836109421a189620c4b00461102c41886109c22158821196a0cac7464505c7a812554c58658a3038aac44803479518715489415125461c5562548932aa44d355ad60294dd2b482552b12064b939434b0344989a5494a1a589aa484c1d224250d2c4d724a935cb92a1f9b95153c77a00cfc910c0f3377562e8955b28767f2603f4be6920a731a1368069e4d661398eb13c406060606ab60829c4c273030d76060609ec0c0e0b93285443e416c66ccb80d8dcfc0aa19a781e7100d1a78ae4c28338acc380b4d9d717d6c66ccc03a3366e0196565463972c2aad325b676366b67c67534f5d4f382552f3f618b07ca583c2f3f2f97815532fe82ad2515ded15419402e58e5d224fb6635c9d025280656c570b2594e5c3419d7d1d418d77ad282552d429b2514e33a1a0bcae9842d2850064a0b4a86d7d1d0ab724bf750e6a6aee8dad351a91ed18a32af1505ca585168cf09005bc82794de88921a4241f99393900d12ca945a7b3afd28542af208453a254f14b22c9afb5ab37447732468c789d4018ad264e807ca92273d504608dad8b9e17fb9dbcb2f8f7713b2bd2ce334be45d34d7f5a0dcdf8d55dc0f48eba942a1a001812897416ed3eabf0088925e600780c4ccc651e739998c31ce631570d400d96ecd79cafda7d46aaeffe925800f0d301f0538dd3657ebacc9c380078a30100199779b90ea7c31c8606764ef2e951cb91c3a510b4f124e8899337a403a473a4c9919e9f9e9f25fd731d4edc16ee966fad13e35b1f91ddd33fffd640387ceba039459f97721e021786403f19f593213d24ba0ed4e92118047528b537893e5130485e3137c9b83a6025e00d0ecce1eec0323e0e17be072e812d1736b910083a19c123167f83419ded638c3c3f4d809c18b9e1d6e11c82511e75a08dd1e1633c12636ff826795a359a2a91546951556fe406bcc1dcf186ff867b1c7dc39d77673ec6e5dd993bf32dd7eecefcca457767ee4c7c6f02a71494b11e8408477328631d48dfc0acbea3a9af7d21bd2ed7bb2e17ee0f19f2f0102230ecf4e1248a8e5dadc8101f9b77ec43863c97cbe5128161a7750d0b8132d6455fd8895d32895d32ecd263fe15bb5c6f970bbb3ca01f5fc469faef4876373c6b9482ea7a0843805252504a6a08b061d721c8138d4fbc6e75ed1675cdeecba25bb1b0303bbc9661f9ebc729cf8e793eadc601e9e8449a88c196027f4decd412f9307a4c46d5e8ecd77b2954ada26bcdacc93c8a91edd534ab7548edc62c7a8999e8427bdf28d1edacdd172b13ddf7e3b2666fac39b0f1f07d99e5cbcad7a5c967b53bbb8d71a28e7a206e8ae9c6fc2efc30cdd05a3d2b5bc5f0dc9eeb4bcf882e4d3d632f5fa1bc2c39a01995cb2fa067aea36af40ce9a5cbf3d0335b895e5eaee08d5e2a2bf5f1472ad75a556ecca45b47f5a25baf554ce79fcd24e9c130a4342d15932d98ca0edf58a7b7ee96b2aee89b6974efbbdd59d7b652b5e150c589593aeca2f67551e1ab8c1a85b5179da82cebb039ac8ed1484565f4d6728cb452a954229534d1e568341a3927d251fa941ca59348a43b2d0769628b6a4dc3224dc39bc975ab5ca3f0467a8974371e3249835a0ed1ebe8be97b0bb46c2e9ac1d07ccb41b47529907d67d08ec9e1676cb542dd3ef223695dd23d14651b74367555847eaac073e9c9447f203923e8ebc23477e60b75476ef212ee2177128cb9ee8451c82818f175404651e0ce50064b762d28554ee6959315a56b46247f8bef2b0211592e5fbc621297320930a2407fd05a40216d6c3c2dbcb6e879c9c8c45961185100e0b3962b8c51b879378b956f8ecf574e35b2ebca629b275171ef0968c5b39623c5ef715b703dce047d637c8448b6c3d326192ebe173c438145935f5106b59bcef55d361dd747a534ffae86ef5a397ae4b8cbb1df0d225c64f77198357c6b1ebc2a35e864b0c2c444e2edd85c7e9f6a7db5b9598c54b4fe94fb7c47237edf42e5798c54b1ff1564f694ca3faa47b436faf7be3de68d9ed3f4d08eb14bb5c4fe2e5f87ac16b28437a3dc910437aa731809ec913b2c5801c2c9ce600b9491c1b25ba934917f9bd76e66ac41fde1c9b9c7735126f2a0d88902220f8804e760ee580a8f23b09625238d3cb0edae8ccb4027bfdc22619f5053636103ba769201abb7c2da2af9d887e94d6855d27449f8458f71a6a8d46b9bfbcd6d12d678c31cee9de71f47b2fc618df9b13f765d74068c463c491312f8d725974368aea8a2c1123bbbba59cf33d09e1df7bdddd12bf98982cbbd3501b1563769848d1f874c71ef9bddbc1fe91ea1877444c7698ba3ba13a68a375ba66e436fad39b0d64b7548a879ea18790629c8e1088694fb6caac2b1676ce3a8f88c937990fec66b310ac8c51ba54c581ddec4bcf6c3f5239daf74c9c61040d21615d9c4635a43ab0dbd3116221f1c496935fccf0d2794d8d9248e014a1e9c708ef4ba39aeac06e0f82529d8ccd5afb104dedf5de7b3878accb8ef72c67010f89db213bbc91b31c945e7e084aede947a15232b792f8be710349eed7d5c95a61b7d3fb9958a80e03d6ad76a04596bf37f0f1a99b78eb3b3421a2dbe12d20c78e9e71ce8797dfcccc9c0fefddc0badc28f8e033e74312af5ad765478c1966a7edb03a99deba2d84d342472753ec10fb7559c799f90a721d67668c8645b173352cbcc14721b04c5e3e93a29c6387db2108cebb5d9465a693bca66910421833b5a6fe941242ec3a477bf009696332a5b6ca98df7d955a8e0a71a08e8a5dfa1903a10cb2b0db1fe3e87b1e9832650a13b2944965896f524fa89aac57d1bdfed233d79fa96728920cefc2e33abc3dfc564d2ad774b7eba5ed3a6592e14d3b9822cbbff48ca35a8ef9eb6ad9e99f733b6ca61da056037ffdc2a2acb51cf326955f17bbca7599f48bbaf090b72ef32e3c9678343bce1160bbdea32bba2f8dcab07dbd37588d845c7c5a8f9f7f3f62b264413fde236294d04f4c718433265b33a67f703ad5169c4e9906441946670824202350df0f3104314f0256877befbdf77733b7435f4606ac5be9608a6c65b7d2810bb2f3c1bdaf391f563a20413eb9950e98749ba0d6117c0d2706828df0f36527dfeb6295032bb25bfd6c910b90ddea8705d9080b50206f4a0cadf06f7b795af7b50a6cbc646237f7a4c77c3fd8ce6ef5c393e37f5adec56cafa7baeb733e08218438f52ebcbda9f1c0b2a5e9f062e68b38d433af67eba0b9c6ed91022b9481d3a9db87fb967a82127ad04bc16bddeb9960b0410f0dbab0c1911a6021ffecdc800df901f9a0387de4f2e1e348cfc01ceebab714cab4a951f10585c4bed31bb91d1712f001af291a81524e50ca292606c2861042d86140d807f2a6747e4dd261dce8306e2479500a7c500a4cf2e08311e8fd3d237237f5b16be3a5b5febaeff3d2cb5b8ff5ebe826adcebbd91c9f13e77dbc9d78f8a0b8a68f0bc711c4b0cb1b9cde4852c35b67782cca086f3d5ee299a32212df83226f553b912c1bfa788fdb4332b7ceda5f3d2221c6698cd39b8571a2bc993571849775c7e57df4db793fc84f1c2947a7234dc7bcc4375a4df69a68e2fd205fe30873d1f2f59aa623fe668e9ec5283f9ad172bc0aaf93506679658e9751ab9fa7af373a1faf89f7c3133ded1b4ebfa9e1698d1e379c96214a83dd70fae6d77b17de9eec8a71a0cba586b1eb3e7ae6488c31de8a14da2644c9599e87b2870a202a76b20d846cf0630328b9e62c0ed518e783bd735ad89746997ac88e468edf1070cd680f4868f0cc4042e2bc18c2db8192c461010b6e8a1392a4a1081492f080a40b3dcf888b628218fce0084b5e12dc15a6b4402807242f8a7b021b9e1292e08af06ce0be5092e48a2405c85884800477843678210902903491e45581248a242b48bcc0c4099e148e083f54241141122090c020c913495c18468f09750d4930245d48227f884806c0021c903c2848ce90c4b5010c554862002441107a3b70467857a882fbc24bc1185c17ef0549662099716448723931670c9a608227b870620a15c0a0994bf224c21132a5214006033a6532299074185987919d4e598fc9d461c474183159cf76808d0032f1af1d501555c6206527718ea740de71fb3db7438ca3d7b045126226ea8c17ebee667531f16e99730ebbd89e78a319122be1135d37603bbb951648362bf37333b15111bb34762fcb4c8296bf2f2d7302c366d913eeb58d5849b7121cdd498897ae7b80f058ce6f52de484c63c6020b218413ffc8721f361632629c5aac8b95c516f169f8536dd878c5beb70fd5645da4793e8782875889a562e5ed0c6a96c49654aa102f9348d55a1725aa8fcaf2693571477cb9b192f92d6764f3e612b1cd59de6c962ab01bcd324bbd295564459a2de2e3ba87223eee460e44f551b3184a2b0fd8e974d93c4c2d0fd5b22ece1b40ceb93780ed79a32fb05b2ac58304f2821645b25badc0c802c86eb5d2a2691685dd5c500f9b9eb94afa451c9f14558897a1755615e2e5b6700567b7ca420ad9c154e75c2529200c4e1ae5b208ca2fd734d8ed396f36834d64e1e4a92aec00d88d422d3e1fac9864b712c24fe621bb551652b2d376cc879f754154678bf8c0223eafbfca62899593a8d1b58ae1ce390224e14c6c0168c58115501750c82feb6e1857406094b25b6551a4ba7e0e7683a1ba964110ba684d1961bb55163cf98b1f281f703262922b0d5a90b3022ef0608b259c50028525409d2051762b20277aa40089c00b5834b9c208509c0883142130c2096630c5142c842a16bcb0c2e249beb25b6131944a6521953a9d9e9c4e950b5564b1046ca02552a92b5c018abe8204d9ad806045dea85b01818aec6ec9d3b3c18b91fbcb14da505188692e8786ba46f928e2ba87cdc889b8ee61bbbb2e633517b6379b6b94e92fdf58388b98be682111eacb95b5c4ae9747a33ff9d6fe94106d38fdb41aa9fde19bbe3683e09c3eba12f4a31af911de6a46b7db2827673f5d2034f28de82ed30b84461669d97ddacd2acd44a36bd7f5aef54ff64fcb4142c2e1acacac1c41d2a8d8e33a09403f6f8b01d2c2c991d7e487090621655152fa86d353abb9de78bb5ea956f3aee14dbb7d6b38899cdc721b042eb25b01a18b53762b206c91ade822083af969ef2b8b2a3a7fd2b41abb3d0da7f3cdfbc436899c9a96bfdbfb48a0ed18bd056f0fc76096fb7456eedb7945a6608d68e234a577bf9d9ee96b7f3a3da37da6b52cfba951b13ec13e892e966ead4fab56c001657aa66b2c7c4346b582dd9c930d758a3e24106d0c21528abf9182364c58a774155cc4c869546ebaa97b684c49271d6a0f703425ecba87edd47fd7461ade487f38c6f40c095b8fc701ebe9e5e4341dda4ba370fabd7b84693bb4abdae253a3dea8086d0c415d3604d4b0d38e65d86f384d1af55304abbd7f1c6d4717a771f2eb6a85293399a029d2c4d1a9f646af57f646c7d1758471e08df67680866da3e263a3e26936997df9a8304403e25dd472f4fbd16ee71ffd917695783f2e0ff86374172023910863e0e57a97b3472d4756b35a310cc3341dd745ff32c5f28d618e08ce30018410c6dfc0d7c058c4750f4388dc5d211e1017d6b14ee7adebe3c2e306a7339c31ce399d7444604eecdea23ae79c945a8e1c55969752ba6c730d84c8fadce0334d74774e23526d2a204458a5129d88eb1eb43b77eb1b5e741d8dd3b62472a885c93b2bcaadc27885655996352d25da6b85994584a3d1aeebb26011a30fc16e594a3489c58861222cb39c8cad321389321ca488d2b517317aa98487943efa105509fbd86b1f619feca25b96f47ad24936b32791326b3391557dae5b96cb85831431ba76221ccde81a1ea2399a21aa11f6b9aed1d74bf40bc38ea3afccc2f096c3035a4f1e9b94c974ee6df4ae6bc3be62bcb25f59b594683ba7d13615101a56f988aef2a9d79e7d8a46a38f44ae51a391e8d5ba48bb8ea6afcb19ac33535996bce56a3dd56ab0bb5bf77a866ffa7753e58dced678e4f0c8a1d6733ce7e65f76e1110f21a64d65f046d14991dd0f3e78218cd861aff3ba8b06618b1c7f412cc4aa7c6ce6c40ff26cd18ba2580b037140b97bc0012f21796b4386d8e98c2ba8c8ee755ed765b9d1ebf1027919627a713acfeb68e0c57e9d8c137b86de410cc69beb3bae4778a75d5b4e8e9686d31113e91c08a70daa6b78ebba556b92789a8e58dfa38f5acdc349e4c0670ef5800045154caab022f7a38fb92d8cd379ce43ec1e452ae52495324211ca45153af9ca6e55050ba434a1c9163eb0821396a04d9e5422d4264ce10765f8c1cf0f80721d4525aaa7f5184284feba55c40e04544b3c1a7a10d05b2eb60ec53ef116f6e9bf9a893720dacd0ff9c647c83f248e903c2656e2657924e4fb08f9a0eb7884c42e3c224e4011a07c44028a00e57e138139b01b0deeb08eea84ef0ed31af709711239b9a9080214790a01df5a4dcd367112393511bbe6414c5dd228abe1a322860fb470e2c47a423e6092ddca0753e40164b7ea011850ba5bcb71e1e78590dd1e142850bc7842420f88ef1711f1cea329a288912068de771e0dfd1b8232d69d1685ecd6bb48cf946ebd777a46e5b2b748a65f77746bbad623cda0157d316f652af7e5d2cb76841f944659598eab72615f6ed2e4ca6a156ce6a449931f2958ebeeea228da2827d3b8f07ca58b7962ca1e23d3a9361253c3c50c4d8fdeb5da560df4ecf90c0baabbf1e1b88faeb14fbf5ac81c06ea30a9dd6a8f48c36b5452d1d9a1901004000d314000020140e87c442a1403498e8b2e40714800b92aa42744c9a674910a3288c310618020001060000000100883140546602e2ebfe88164f632e1230ba87126fcb35e15d124c6f42a3de21dcd17e26d6bbc4ef99d0857721620eee13e036e145fa43a2b465b40c81e6cc34219d24dc9458efc4bd13ee26d49fa0d7043724e859e2de13dd448a3b5c27ce4de2287a434bd0b02641ac09e897703fb17e25ea49c2db2580de84c61e21eec695eb6f48b10db7c43751e29bdc13ee26d693c43d137c3bd13ff442a454cbc01a0ae89d869921ab6f976ba28872171a715717dc43cead65f41542cce536f17d623d4be845c29b09a637a1518f10b93b187f849a58cb886b88ba3b0d9f212cee8ece35c4fded8f047a97a047c2ee2660a41752a55bc69610a277e42233c4ca369704df49bc482f54a9d63a616348c0982ec43dedef09a6378194de216e373e2780fe8417f50e09f796f13b84b893fb84f725e859e2de4b7c9fa067097b20c16d02bd4b989e2434de84b8787b01b93418ac261fcd7e445223e6769b39b9da0eac48df463f40c9d3a33f680d038ac31e5cff80e8593191c80cc0d4a0a8757094585738996660457e9796918d3f41e10f3f4cf6771b0717e04fa6ee0dec0c0d2b903ba2bfe68f25307da6fcaa1cd784c1fb7991dce6de42e9ca018ad8e052aafb1400dd6cee036880b6f3abe2503a5547c3586ff505c36079b55509f5ed0196a7caa25c7d2f3c2cb60204d288799793a3b5445652c2c056de85cc419c897bd9d20ea142228f341982ee8a815d1088b0fae2e4b037ab39c1989fe4efed51dc6f92632afd07a3cc839a621863e42d9d4444b35c17a50e110c1f66bcf3aa1c2403a5991de42ce2884110ce364f6c3128004328ca968b6c03a752fd2d1464fa9bf2e98c5735ccde00e05abcc72e0f00752e7390cb033c4d88a1d7816d1d048b203640274e4c15fec82a3c7b6b95b9a93a3b21e85d95ac8a4536dabf2ea61f65caf232b42d7028df16fc44e184129ca1c164ae210a9b307d51aa202856abc7528642fb3709101b1095a1f23273db6cb7206efe9b4b6c71b15406d7abf4c3939d3b6bf50d8dd6e0464887f39e3b0312d5d392a03be6b1e2cc73d7c7480a01ca2b3e28c8d54922104c25a360155b4b6e4901faa914f6c92a9a213a1fa9e6980fc3943183a8708e23596bfe0bac0b712e63635726db0de4285645142540af77cc1776261a5fb34f1140b4364af767076a9049144bb0a7c67214f0dbae0af041f3a65cd5c5d22bde9f445b9e9629ffd056021d7401aa02e6e74be127b9593c18e7c2f3c2457c690bc3d7690fcc04ea160572141d02cd435bde1dd0e21c81240d346d371892b69d844c88c443244077ad9d881ce6c02559d7be2cfa20e3b939846542768104d84a5349ef1b1c042b92936f4a1704a79183568be75aa001b02b747f2d60860780445431fdd00a5aa9c8b98390bb9141f51bc74fc9b313056368bc4643eafc78204a6cd32628a2440579e7ee5072c6d1fe9abb5863dca017b21ee9f1a64b580a13515caba97f5e60e8fe9e75008d85b2a7aeaf31b8ddfb866680d3fa299c6f3c63ed631c110a89b44ccd73608b4df4ad1390c083161a46005336e6192ee60c2a2451e39e84a5b0738931f2d93981e24569ec3b03c55222768c441e65a6c01ac770868911346498ea21aa26e5ddc5716ff0df6a78d9798da76bef1ffe2d2768017d18b06119fb151b26bcc04b2602aeb0a266d2848e388bfc0fb4f3246f4d638b281251aa5deba620f2e1106a61c6f42421e2cc7377ef2f0c5a575dc6e3756ff3166eff6ea0cc5ed5cd0d4a2124b3ac4ac086f2c5a41fca048708e3152b8623e615e0595c689bfe6fc6c7663cedcea51e8da7068964e920eb3e397f4f3022ebcc2c16738cc3ebac58fa6b2381e24039b8d8789fc4f5f774d4ff9570a0f506e025dcde5a16473f974a6d25037f26f91330da4ee906ed940a6a1b9e416b51d77a8e1d7dc4afb82896189464bf7754b4dc32d4b5764877ac9637f34426afbfcf050f01dc1725709f30c39e4aa7d19e7ab0604d3c84009f6a383fe3f25006c049c90797b0ea2e8871ce399e239df8d183f04407fe49d4126cd9b4343248021ae88c6166046b657561971912ddc29a1c2281999cef4d0b2d7b620cdb2c107923bab335429019d58f96d06478c4b82a79ca126e545cb94a404b26a241091aa001cd0059828d2c91fce703d379a2bbcd9269ad91776aa4210dfcb52d254264dcba15dce04f1be3a9c0553a59e567af3a1064d905f1b7c0f5b59a343235876622998f58bfbf31bfe2d9c6f5df6ffe0ea60ece5ee4e859f370206092f181faa73102dfeff1422056e6f55363080cdfa1621de8840d1a8c222a370c758143a535541696638961dc800d81c11e17e101d89161fdd4a68f09fe3c1b01b9d5dc2b004a2d1e569400c56c1eac38b1895f1d0954e52835f1f59d69ea1a6979a0624d2164129ae28c3ba45ac275e4165593bc7fe091dc8df8e15ab71e647402b0da677a340ac18d7f9aa61c114ba04a8f2273836e8614523cc5aab198b4f32c46381c49e340cf80452c5a3e10a2ecf85b32977a3feb91e7de84e6456f5e6764f85a50340f547ac6c36ae8f5b10b4be91353885802a08674817a3787c4e55020c4a0aac11eb02855642e18f7f2c6bd6bfdb0eea800b9acf300e0199372f1cb4810d636c1ccf9ce13e8760eb65627bbb5e07a5c39d66603fb65b599b20e8051227af0978ae2745c056e0f5534fa649bac5831b3f1443686d96de8f0acbcc08cbdc76088786acf45fdcadc27c79a0a4bee1c106e2b073314f2b93a1bdb410359e0adfaec8ee8aa46391ed737f5e52a680fac0bbecf4a1946364731c581b084be0af3d6122f7ea69a8559d824d36b7c94a2a6c1369b3a6664455bc690e8dcf84def92a99356f4790d86a4accdaf42aecb1b3e5644608ae065caee1dba4544c9c606ad856352be75f2bd656218d34b81c25647089f9c49400f6a6a67a1abb8da9a6dc2aa591df3988a83d812d6b5e0d7d854b3d8e498cea9fa4ff91e93cd05482a3cba0f489f76abc3195bbf9214583d91206957b501e31ff0c90dbb82262c13d60bc70c098ce7048267f0038844539ac1c86c023339fdb6cda8def534e2d586ca937cb8873270edfc92cdefcee98b4980994caa0fd511f10172ff53b59bb939073b503ab1b413ec9d7a8f076ea7af821a7f1376c91be93ec36e3ca119cf127f64184304e227899e671bed284688471f58625afa8b61b6429645202944672abc450efa46887b7d550abe1b23690034817be67d5a8afabd14bf313931665c942772f50fbac8173b90845bf5176f5b6eb0800f90ea0911ca165f52d2124b6d5c2400abfcb2dfaa0f1d14671d0997a9fb5df93755fdb048d75b00183288ab8e25010438b524d410a6fefa473a41949db0b060b38cc26c9ce83529c3a7feb64eed25c6483066effffb9ed26b8055ccc05c88edcd28ef8ea6914f7703886816e76294577cbbb201504e5f7fef81e1bf1fb237a82eff0195336e091cb2452836ad42c551711a5e1bc7222b28c6aa6b0937aec1a5c4e03b93dd20082361007ceb729bbe6d2c67ea4321a8fc09e1d2ed53282b1c7fe28d029d0f3c82d04b4b83f0b539948d6a84002c37cbe6c43e7e41840a7319b1235f083a387db44806434d9d91ceec510c65baa94b8fac20a56cb1b347f1c1534b21f5b99fa8046b88c3034d233c665b8d15769e2f68b0e2693ef65a52540b4a09c136d7e6bb0762b2693022414fd0e14f99884fb17ee533778d9fa5f7d867c97c976745c4d7bafc0cf4aa2575154acafd964cb8b0502f1efd8a9a6687ad0c87270c652662fb5d9b1aec63ab98d18504baf8902b63c60017bbdbe0820f47c6b390146e706db11b1128e50b43497d488ea13b7d794ac902a2843957cbf213146e3e25c30ece7a6ebc67e11f2d8c1420d48cb816a0868193ed4984642a60a67b65b03c95ce084884ce664d6bdf140a88e33482c6fd085483031a38c48d28b610590bb4ceec58086443435bbf80003b2fe51a58c592b3376b01e29038d8ab30c9dfff2aeabd5eef72c4659dd9342397eb55186a1beb4ad0a20485af0667288219e01b7d279fbb074d1ea189caaab6c4900b68adee90e658b0b8afb3da2c68efc7bad768ccadd470a896f0ec537b170eac31a5f42863dd85336e34dd6bcf11ad6c996b12cb8da50eba3a4e72a08abceba1652e4fc05217c374dd4f408ed7818568fcea6878f915df98c2e91179ac248cf0104910ba4d7c54e12bf0011ad6b7bf3c6e3e5cb06a33d79ab301f1fdff4a03b53c28ea6c6062d355740a61912b18c7faf08c34a86144ddc4b807e63070e384434712531a45583d6924524b634a306d472a49413fa94a8f3579976426fe5bec28a9f0772acc5785eeb88776ba2b5b2312e08a316a883024054c4717638b0f4ea2f6b924a00be12be7c801fe544122b798c6ad8671a637a4abc9df8dbe94fc436d87d342f858ad7ee3b56067e0479db03080a6cd2120b33836ed6ae72b8ff0a88d5eaf158e351908948265509dbde8722842add68e1d8f679c4cc255c9fd59085fa255f870dce5e8fbb5ec3b1b953a414fb19ffd531f170ee76189d3d27aae4fb355897d23540b7550613ea889c0f6247e068311a1d7260ca05f91c72994cabe85870504ed0d0f91a94d57b0f68101e55cbb659541a9612978c2c51ace1d0e8b01a159385ad6dfa787360a954e06482e049cc524b8efce3af6a6790f761da59069f841c15a8cff24a9adaf266e6dd4c3fe20330c56a95ae695a83e70ff11f88164f24bd482aa6793538e70f3fd63fb5610ff555f6d19d034948a657a0e0b4d92774e2ab7bcdbd4cd9a7a2f6bbf855c897ee0c3097c014110b4b33675e9b0b32e90c4a00daae81fa10147c1ed0694aed97fee3e568389844f8d1ee58c8b94261f2a2c4dff522fa9645db541a963c70c015814cef2f68d9a189c9636b40d139b2f00d361cb9925eeddbd76a7ac9686ba329a512599041c928b6c5be378f3fe4b320cf37de5c6c9c91dc3f5cd8aa1e2b7201fd2bc4dc045bb5cfbeef5027523eb10fe1042d6b1dcc0b34d01606f0777dfcc2031e31971ec05d6c618ba9b700d0d5dd4c506a3206453f2bbb159df7272aad70812f1f24da4c622f70a8833291894ba1ff54654edb7b8374b935760448f8b9c1201c2910943600bd3a763fbcd057d02ee7eff053e60b57b3b860c85d02c49572cc6074229cf55688139bdd5abf53d0434479319440520be1348d8c91ef529b8345ceb61d180b99008e2516aa22279e9c5d4ac222f0db3c6a2b9aceba7ad53817a0017d3cda021314784568014d51126e524662be6b4236f63811aa2ccff63d685f3e9ca49e4c5fbe898f32f7a4fb724786b6473da2ab67e757196c07a21d3d8639113e6139a0bb5b8a452445e6bbae0fe52ddb56efcda1693d26911f8c608da141ddca13ac66e52de966d6271ce91c1883e002495aa4b7eee534835361a5e1188008c19b0a885b30e2df6d5863087d69c9faf875a7dba56d7e07563ad6875840f5f6baa129cb2f3d04a982620ccce2ac45ef8a40a96bac6873b5f3d3d41a47c72e4e6842c69783ff4caaf362e4cfaa3a66eeaaf11643f8e6f03e04c8eb46fb7f451b4bf7133457caae413c7af016a6bafe3fbb94c176154dc9c88246b552c9f72586fcc1b0b7287da51131b927ea50871d70b0b14abbad3c8e887a01b5d4d23dacdae2214b426269712fce3f21908183225350f078265719bbe35ca81f87bbc0c28e2ab03f2a552d16ebc00272ed7a3cedffc4bebfe703221bd409940e62d2a8eefb773543986e5f008acab2bba1c8642755099d85cd192d5b4c857e5e4728a07ddd1ad7f0ba63c091ad3de503b52abfedc0a8acff3bd26d482e0eb8ced40986738c8423254c093ee42f2194ed00af947c40fcae0f2a7a782961a86d46765a07022d783090e03a3c5c547655f1a54e1900a9a2bd3afb96e5e6adb0f8c64f153abd3078a63a912ae6546527b02b1acd568d1bee3dfb996d1aed4fd5be2307667784ce356ac0605a7505a7a9bf9133c09320d0ffb17cf0060faa2c128b6f3cd66a368e1255c9f6dc183065a479ba3b407aa043dd7549b619268df7147f0f5dbbd1b7ac52ec8ab75df73193742d7f01d0efd8201003f5ba40939f4ba040c8c00c889a3f3d021cd0b90dee2d8a79d2cf655f3a2bffda2ac3ceefcadf5638d7f126218a253ca1e12f047b037cdcf9c8f715f5be1f68228fc3efcdf398be3340eb291bcd3f38f4b45bff6a8fbe24c5d62dc62fdebb439b0659531c8627926d4b494c60e54579f5b20f0f7e7526765f1170c6b86c0ad618964a7c9d0dce877cb836cea45491635057853107abcea4adcc97e28e6bc45e18fb9da8ffc3d449d27c4282a62d3a15b9673c467b357a372d9949fb22a901b8a8673f0ce0036466ec3fea57a0f9ec283bc9fcd81153b78c4cd2feab7ef72792598278164318965e5f5b1afa4e44fcb08a9fc982c705625e4ad1038ae9e31d45882315e5e87f560a64e95f963105c9ecbf0827439da43795574dc08c44f6f77092fc34d28307b3c116f90b26abf470878dbcc241bcc374e734018cf80c8026d7021deacc3d8d5739914c969f5eaf1a8863ce5bc12b93ca2866cb5143e608ba8a11b209d828c7f8163c9b483da1012090d41236eaacacbb0d1053cd9538215780ddd5e0ba2036aac1a288c1ae37fdf5f1a5f826bb0e570998fab4018a01b8d1271c7c29f7da729a632683638c72e8a3f8f6ef51dd93d258338bd21689ac97baf0385712c7c7854482fb36579ab7e19f7c2cc48c374586ca7714d3cfe53d36de4d69a186333c04c86aafc1d9fdb3017eab55cd6f876bda94284354d166d9c9d461af244e09a6f50fefbb6afbb74aaec040a318f39c0f1dcdb5160e52960a9c199957e75b338c534245c5baa1971a1e632594d9d5813279989d0e385acd6437eb13dfa067aa0997f821ba45d9adfafd7e43e71187da255d041baacf54b233172b3aeaa0e757c7580f37d5a1f07d8e6b5d074c5f29a589d9115b150822aff499de99936f3ee0918baaef1a4768b406c56b4ab6181fb1e1642151818a3b925d8f58eb986a8105c776292661f0c33e4b8bd79d71e25a39e8761929d4c140dab5977aa129634c503b912be207ac967d37b6af57ae6be2b5e5735de278cd6149b5e84ad9a8aaf60ce7a4a0b0933ca07beee3ed5f994f09b370262b1ca190ca055c7d8f0eae20d04d2bd376ab12c31dd4bd057d982ca653ed2fedc79bb69cac7cab03dce6b7ae328028328365c66435ffd6fe5b7cc458d068902e245ac708a3a07d738781a5a67435c437f5e0362387ff5399432f44c2ce154246454d1941f385ab5cca9c1685cdce4fac32ee2938902b5eecceb72749b7d8b1bd2e3b2a96abe9243de45a36e97f6a02a48ba38cda3b4f4a98502a4fa4fd6f8b08b11bb97d4b562146c260238e0538d5013f983710b4b191b0a160a9c03a855f59f4b348985cc362aa7bf35fda06971d2d67183a03ba5c512289aab29448ca7f5179ef4c695d897f0b6222b47d79ad0db4b6a0e293b5988932a9fc6318a37a5869c339e520052b308faa85004facdd811937286fa83e184eab9d030af5649fc07d98848a7f1d59c4f92b43294ddd4a62f4a4abf729c3d005394b11bafd0bc7f12c24ac9679d5ab9667edcb46374476cfe9e0a3a8b18f6906add1b58e354dde1b237640402682d3f8e7b643e446b883b9b5eb518ee7420d49288a4122d702b63d859ccf723d5d572e795246f6998ae0d4caec145ba65f54642ad16c474483897cb2b740383ff416fc3f56ebaf61e7062f663695a33bd6d181bdd2e8fdb2dcea1f35fba779eb512e54c1d0ed9010a50753818e5c6dd6934e67d4e5dd87844ce84177e4d6f971b94442e8d7c633f4c1a38718bae87b299cfde6f273cecbb29d206ed8d7bbcad5b1dabe0cfb64070819e1de0e16b6ca0701bfb4ce2edcf912869d36e601e5a1ea71ff952211bd353c9061cc461e757475e67e09db4c1090988e20e489ba74e7395e56df324ebd9030f64cd5330080af580ceaece4e055c5c083f13613441c3b13f891fa2e7a4c0995a08a94b0aae680908f421506bd89cedc5c5f6a011492f566168fcbd2234da1d1c01a72e029191acf7081384590ba20aabaf61c381e38494d00f273808468e14e5038271535369fa9deca40775425287198268fba7daba9566ea3fbfebd49ccf89485663c52ed54554772e2bf274b6359a22771c543ad687e425adeb3239319afc0e1c52470ffcb00cdb325be24945ee23d4ff5a12541750d202c3a4023d3b3780b2460fa1e9ac26bbf5bc9c7876bc384f9e510ac83900f96abc11c41ee62ced122e005084d9013ea619f3bffdc82ff4518361ee3d3a67a4db7baf42d6bc5e80a1365c976c4322951e84e54fcee40b44a57b7b0b69d2eeeb4b01b6a9db0c6bf2057442b5df16304bd9d422c963262559c2b5081d287b93917d42217182181a362b0fa73bd7ef9d54a2162796af479a759cfb1e91c04748cd60bc12e3690310338c159d5cdf235c64e62d67b16c950ea461c4b99234f97993af89040c928a80fae8c9e17da594fb84b92297438d4818e174833d689c3238c58507fd5740aa970c2ef7f4dcf4347f3369cecc336032092a829dc7777014eba18f9259852f729cf4e1942c6956743e142b62dd20a2489842c3311b6c9c524b54ef4e746f20ed702ba079f669673ee297a481ca3f68d41d27bfc1e6d2fb518280495cfe89ef0f38d31c924db98ef1fff76afdb74dfe462e493c8dd75e71889b092e7d057eb5aec159972f00277a7289ee58e5fc17233c47dba43f1c971eabb8202fb37d805c0a07ae8e7ef18e747e57205ad70c3c06ea6fd17f835c92da9639d2888b12b226918bd089f21870fa2cced03b31506373e8ef56f509bcb293c0f5a0816f73c8b5a591916c8c27b01348f646c1559e6b57b7614ad1c638222f1cc76d856459c8c26937be034e40a29b56bd5c6318121f8645aa1686691b86f998a16c430adfa65db658210a1566fef33f9a503816446186c5a150bf97be3f73c651829755b7260be85ffbfe4a3afb1b337246e7376e79742fa899dbdbe3a1dc49a5847f888e50921b2a62769ca1e306ff7946117e39244b730ddcf4a394d378c1de304327e8d6850308372c957c68ad15343b725ebfb509ee9133bc2bd9ea6ca6b498ba6ab4b9b0c283cfc456b0e8ce7cda999c541d24aa6e4765dfa847316774cc349323279cdb3b38e63ff432e4121912fc14ddf38f63b6f1ca2f4d777bcd6506c081ee3cc07acc936aecad39acb037e16216b73b14c453f971adadf2508a53bccb4f9bf7850bddbca001dd1327fe69250fb62bd7dfb06d18fa5fe6438509c74080dd18e6616999458a5fa7ec28df3511ddb6f98d4ff1c97ca3e911e7604e8a1bd9cb5fd50fabd49691962f136616c13e5f0ab212298fb28f6d2835434218b28d44c57da3216831fe34aa83b60eaff4df89211b8b69e0af3f7041079bea6a89f9cf59001983c7938f896e3147e2e36449a8ab018a1fae02434c9e3bbbfbdafc5c77c82a8156f7a4060f112fda5c5eda88712d0cfe4254aba3763700f6f09aac8ee679ca1b3c99af5da121de12dcfcf537bc0bbf4f5237ebe6611e22c04a4ede9e933293c7417245d43e177cba5502a01b5c26476417fd460296baad554cdf97d809f4eb633db1e76bf8b10fb494b6ca0c91e3e9964957d5986bac29955172e37f8b56aa942282779d0dd809e1e6b9c30bc8b75c3fdd30801f91bcb4cecd426966d463d23b18257ec5e8a00bd4d15f1035c63ad7f9473e531caa99d95a76558bc026c51a987caa08dd003df249494c2daed860c6441f4765c25cb0bd38c9a7324a6e542e537d2f96e7b029892292f195e4b1d63688c977b2047a5c564e22773738b5f1aa3107af0139df9778360d78a9cee43fd493eba04e8344a1b1a9aae5607a1500e57408c6d39d8f34921b3dd7445941a90bd79156a90f7ce79b454e942900628ff82b7b34c4865b2d975b79c2c7da7229d7532de7c0a636f431207025a53a66b041d4a61af57cba9c9be3ae5e8045b9f11b2ecc4167c36f0f2f5dcb1d5fe9cd821adb726bcc1685df5a299b21915e66cb16faf80f9d48acc2fd738ca1b8849b5cd09744d7e416516661f1ca1e0e199ad8cd9eaa469d2b60724f8cf020e2c61e05e5007ee2bc8ec32daae8a44f668bd600c111cd2216a22e3c24df2e8772c8a0c1682d03627bf7da0a99a0dde297b9ff2cbb3b521484951e943a012319c4496b4cc74fff463ee9453499f5f731df56f66dfa0ff423d9f44bab8eabad8acfc07ae61afe3a538816e6c3a2bedfc9eafed5e12298a02d9ab5e035f5e31b6b94ef9c37c443f3b29cb935b1933811965d37ec4548664d68a9e326f5ee1230b719692c116747cf0b5aa6afa5329dc1f7b90547a3d8f326a1559953c3c466a902a1f43d5ab6594a198b70b9d259094be7fe343194d787b07736648abe553fce410f1c388f66e05b190ba5684b94c2b8a4c0a2c03d985d1a515b861b68584aac0b21197834967df86dd56081e3c469f7e926dd51068a212c3560124d1f1d190bba271141c07a384ddd6315da7c6f1f40f1661590a94a600adfc563f836ad5dd201e92565cfbbe0de6302d9e001e11f4e4f157a810712a4c352250e5389f07e96b1c00bac2594051cf9450d6fe7f1614754c60154ba7dff2b712df069d30f580be2323acadfcf70d5a760807c61a59ecdd061fc79c8071e8aa11e84b5fe24bcf3c48ac16a689549c98ecb8e83339620a845f200864334df6167d9fb5d4b8fdcd4756ba60c49db8132f0362a261328716bd3b49cd92ea580a35de0bb1ea8e76cc4a77bcab51ec9e054f5d3a7809eb67554cc7d6273b1898c54b34a4b697af66832607adccb3cb57de68695aeabcef68e41903644646514d3f648203352d7c6c37503832feea9e02b852ad1e1567f7ad8514d2c4198a0bf4fecbbecc90a0c9bcba105db93e581b0c1b7915bd70e1546ee9c7ee68b63c36ee3eec4142864ebbf488e293f98578c7c0f35595b9678f722b56ab693b2100376df5e2045ee2db8707c658b368eec3369c15725b10725d90402b4a61d681a9b6adbe60e11959624944f96ce11e1f812b014b4dad49292c3b9074ead4ed63766fe9eda042b0fce30bf85ce7cf5d5f46b44ec48c89d62382518c657106df5a15c72a76db43ea54b2862c93e75d4770f620a5a8fbf25a3165532d723e232c768e551399fbc943fb20a28aa41892514eaea04c4a5a285d10a0f06c251024c63dfadf3035bcef14378b569e1025654cc21654777cd0ff0860ad8addb6b4bd919a8261a46f86f03cecd504975843557ecedcaa91f1dd78c04a51c26a47340354e423e808b594978fd685ca9386f91b6a63cb9e215d5cd78049d1952aa49b85e75285493b0a844e5dee04f3a6b758bc6d5edf186b4cfdf3caac167b390fd40c2b42426695fa32e56473a21ae21503c076223a90756fd5946283256fd283b43865ae56d521725f6266998cb500b8eb15ec59cbaeb4c6a024354efced41b8e3b643a3728a2a7d5e85d2f7585e5fc325ba251b777f618c70d5a5005b6be2fb95542d7bf690f372e79892caa91027c45d7c4b005fab4d9da0c5084f45c517b365363e6ad1c1af6d7254bd44fdcf8f469f1bb03f4bd7ecb479dd51222a8bbf838501ec9d19edf08bfbe33bfca75e0f8a6dc05c3328ac5a4ef38d0c742bcaa69a5794387b1a5c6625cf01a61869a5a844700d478720068816f20f72985dd990b7d14c163f8955254ccc00b45662c7b8a36f5965863336acc5fe8a8e31ba53356c7725ca32f79e987c7d4950a825ecf81d213136c5abb839cff7c6e127500cd7d58d1971aed13a309a144631fcc77a876fda7d6f03fc365689a45dd5ba9b2f27127efbe5697983d75277b1a9629367a495c0680aca08661fbbf21d5885662d9e9848b2dada08ab469b4319e050c817ce8f0635c38a2cc8e8e132d779575914ec3da1c67cf18f1a6f0588dc9f44a6a159c17193e8d090d0ed2498e05ef92233e444cd945d981cb10175a83a98342383ba18f4b1fff309dc4c09c49348d737f5dd776df785553425d1527fb3a25925821294020317f8cd4375030a688fe044919f61457de173a5800d4a964a3b70af07a9da1aba76036f1ccc46a847d72e5f1fa7c472e9ad44606b5ec23fdee080a4a4269e3f8393046eddcd3b252828028ef51c4c5a81e581c65616a5611b34dd3e3fe22271bdd9cc3d21a37f49669942311d6bc4f67ef6af409bff7677de03186cceea6b05b1b53e53f52e98fb64c00665975446bda1756cb6e701e792674ef62764300c614171dcf4710b459241dbccebbe88351dd616fd12034a8212059e2cda0bcbe3e45004e43dd5d946e215aa138cb0afaffb51c18bf8398a223281c160ecb55ae61f687b1e1cf76f309b3c694d09a200d4cd51faf35837962e5331a2fccf9012131717c9302f6f24a61744703eb272e3d5817d584b78d96f51c984096f47be2d2c31f244dd18f3602100455793e0d2f8d06514a20ddd0a03c68bdc776e7013fa8850e51430a8d2417ecb3664c911034418c89a70d3151442959410115d3e911684828321ad70cb20b481c34e2af133c2b042d2b4d1d847db414c3b68223517df3ebdeb9fc995cb04514b254b0492457eaafce5fe945617ca2552adc209cbf219fb509c2919b88c22d811ef65414f1425fd05009756e2b1a05794c37c46080d86056cefc989a3987d738b108558a786d1208c449a6d423e548783991158f9fd4aca858ce8292ef398f709f36ef9cb98a8c2286852e3d490257e6723b797208652b930d870a48b19110271dd4d432c5831af45062d84797b066387ebadda8bb0969e365d69193b0a407db1f6f37feb21807f986eb92e3229d7def828d75fd5cdb765e89052fa091204beb56361aaed014df4998c9b32728c08f068b4e76f16ff40badaf1f7b34c06287622d530a966c449a93931dccb24ea2f9358d2376cd5f381a9d7f5810829d133b2a556ede3692f3124e77726b3209184032ac34d1c2589afa11e580b3554070df558e41e292e2414e3e5340c5a50d3c46c7e52c54da5e3a25114f71b3377752c13bdb297cb687a7f1df5d4d725a5e5225491a02a5cd0f3bde47983e9dd0373e5982c41e68c7f432a726eefc91660a2d00919ce47484006a7718e82037dd4d8f900bcf6c404efa3a0eb8cd5ec37e37e9aa151700af07e472dbe0e0e0dcc3bdd70bce275193944a93229ba62be4e2b28973f6ed7ded6aeee0b4df3c097c9bbc2935c785950b80cfbe225baa3ff4db05b8a20063af0197052297abaaa860a0aa0d84b47e41c7c404cdf9d33e1e225cce37a8f82825d7c8f639129d37cad4148af0cbb3a68e8ae3677c9478dcbf4d350356fa23c603e7a87e01ee58d244e8e0f4944f4b91ff443ccac496a797f20a530a7c480544b16a024f42823dcb2f7e28032815fb17a594f701f9f8d4c480f5ff37e38fc9cc3e3fc69d57052d0234573b1656627e891d7957e34758a8e1e80728c43eed01da78c3f935b5536a3b70fc877ae14799dbb9180a89b6524fcbb47a6fd7380e83a277858895b9b3ebe77174050d7742b004f46e261bc7f9e5e3a966a1ee949459fbbc68959f27ecc2dd16d92dc01107b99de27b0110d194c2a60a73cad8188d6bab920a50628f00105965704d8b48a75d432445a1a85a89da4216088a96c6df10b91f0ca2714f0b76a425615431fddbd443ee45cc8301f499bf901dc846fc332801a3a6032c9782a21e59327ef7ec4f33fdca6887fdb26b1256b857411427b424984720e53276b591acc2ec2a89e7e2caebef23dd37aa337f26644dded607c9cfce4e50172c6f356e5df191beea019d6e4d1f9e70fad9c61310ced66a346e1b7063c099a57039a4f152b8adde87a013c9180afe54c288ab563179a0a0f712e465e3e394d21d119c0309693031e06020e4dcae36a724b84e787e58ca47ad4489a64655e6f72e3cacb16342d5a9496a9151f765526ef21c2d4e5a62e2a49eb0eb01485070db6aa8b8e40653f0a4281b60eb28475f559ba367a10ef38fcb6f91629fabc550d67fd5b1e75759221b948a28067833df6591c62e8e08ffff6b8480118b1141b78c6f15c4f282175bb71a1de9207913175fc6cd1ab71cdf6726857d36efb319561dcbe0b6e8110a9d1a8c8ace8db4e7062233b6dc160b6a5978343ea8531431279899a71ffaab14762611f24a8ff1cab595852a46a050f1d6ccee5c322224b7af0960e321a10e3fd3d61c506eb166c490ffd5a2b316e0e981afbb7bed1b44bd668a00b66309238e6a981caab1b0d81fd7d126ea9651d056c0b3cbc35be78103885900da147e3acedc778b3caeb2fa1017ec7c54b66444678a25315a65a6bdd22358073ce06b1cab7519242fdc0ea1a5a865f7f2830aca59a0f91c24a78b7e016f4e18acf221632a4c0e15377904a9f69f11aaa18057fa5a2d65a0cf756251c4afb89973c5dd3f884b24840ec48d4b2c560f188dfa96ea758934c6be19330ba64b96cec9c00cc7ca40cf640f7208d5b193aafd3d8eca8825d10998dc61d6a6f28c8136f7004ed3c95e6b5e0eb3935dbf26b361c1714d417e969b444ad9581c2dc673216199e2235420ac4b13a9b9d04ea240c6ccc077cd24c4a7fc8ca2a2eaa1a2c837280ddb45f00e37f5134d348afa1ec3103e01ce6db3ab372a6553995e1a5a000de660aa180b8c30730367216c500684ea347a83a500449fb98200fe03cb5de49033e2133ea3c17b5df68cbc801cfae580643e043ac934d362990d0ca0578b1e779952cd6e5153a63274887f09d51d309af4e095b940f593a7fda66b4a105b94fe3c4a1279c00ac76853b8d24374de9f25320cea7f982d9cc4b191efaef2ce885b8ab8fad3a51b93d8a9a2ce1b645dbee93790af93bc017213d80a9e2304e8ed379c7ba17b2698a38561b906633052b924a1f2c9f4bc0b97296e290a594bdf35a63ba99cbe710176825a6297de18a3ffe04088e3cdcf10c3864a839aa23a647697549945579fd4f008b4091d8be3345b2ffb50daf648715fa3b453ae93cfbf894504efaeb2ed6de34d0ca0c3c494c7071c188df3e22a6db4ae1f163260011b5b40239dedb6250b695a4db020b72ef06d822697bb13829f9506a000466701472271feee166648f1ca4c8fe6077c5f8b79db4e9e531a5d526c191a0278ff940cf489fdf4069fa3e615c9edaafac014940ea3e15274d21e8c9cd7aea26ac0dec13c21daa9a91d5b6588f1093ef6159d0002c0b1fc2081ae94caec2a793847363514c0d19c7c133c1130166a37230dd0bfb27ece19c081b258e04e7de0af6a5b66a6a65bd9359a10f8798fe94ece06c90a7067d552935752cdd27f2308d1e41c4c488d0e1f1ee778bdee9b62b1972d5c3dc3939312493b40d3359125c732806e460361fc385464452c90511dba9edd6f6249f55ebce02fa3952183aba8c8dbcdf9ede9df0298cf548dc3236139d8bf72d1a3d6fc86bd17df79cdf504df0df0624ede27a30852b0772813a8f4ff2bfd642d00f610e76d0d319b869eb3d801ef7a74f33e2aa63b6b7b40e5dbd508a5518bb11343d97854473e766a74186c402b378c5af8a91b6036e3d9be4083a2d671e80203115779dd1ed4c0d2b3feafc1fc6bb245f4eb0440b8286a95ea1561db37a67f7926b7bf37ff7700611495c0fd911d86dcc75d729379005bf8fc7716baf742ab024636d54e7c92888fd58b015314c768966046d7d28dd33edcc5f19a56751f2e4256ec5f847ab5149a8d71e4779ad88ac0dd7d4ab9885fccb7e4175846bc5ed6223cdb62938338a04e99e3c3f949c2688fc85b2a470b4be67c738017344b8694528691c56264c15522e47180e3e0a22a533ef4ac246a7e9079b11805fe956bc5234c320686ece0c516915df5ca602465bb34b714a021398740393b6a28b2d20c1668581c78fd724f9cf01a6cea3ef0273dbfb570d7d4f859d4552bcad364b9d41ac3e02a6ed8bd87ea27a89a19127da52e4b20628cbe21ea41c2f601deea6da8874124d0f4ac95b9424478a0fee98dfd4464e6be1dcaba06f6810bca0b61f26f8d1aa9c3a26c9d8b710c15f49c6ff2164c71feabfcbc4a03f1bd49f1b035dda192d1cfdaf7971b1426fba215b4b8915bf750584cbe12dc5d164ca9f5d7e09b923a1e5b2f2792d7b2891b3581bc15bf9135827400bd25e51cf2104733a220d3ab2accce4a903fe8c4ebed0af004874c4a347dfd3f93f79eac8f5e16e41994d6e96c8d80a1f3a303f6cf3c4cd93f41cd0762cc75068760fa8f36d883e94032693a646659116d1925777bcc44612437d33bc87577773581812919bcee4bd1dca4ef80599d2fa7b33fa24f6a2d27ed702af55f295b5c613c49b40132f43ffd08cf8a1d73e3a9e4f680fa0b816a95fd069283d26cee43553ef04489791d1b19b4c2e568d927f9bccdb203fc80fa473f791a26149bbdca8356595d85a48c4f0821b0577844d08a037cbf57bc68589d0fea336a01b1fa4f1f67c8696d29eaa8b786c73a3abdc2a2de401981b126b19a5ad4ac428620cee1240829d2d9b9933e0d0aae3e07adc35ab4448c29201bd82705a6de5ed934ba8c3021050700a10204be476758b6e076e34e7901d65bcd5251adfdba4cdbf0afc1da431b64c613fed81e3799505021894ee3923a6f44bbad3f74d348e095b15c5b6c8e16247a6e8ee397aa41f36799dfbfc9eb67d39487334f7f433b1192e7b0505436cb08ca23afa2e538741f7817c1c2d438de532c58246e166fd10e4189439d97c60b628a8a524a4b1abfaf6be4bac77db82e678a0dde0af560368e00f6cc730515b804072c971ed8998f8273385f44cb343550501be18e8a836636587fa6e6caa55baa0a605f7aa9bfd4c71391469ffb368980893365fa5f64afc673c959b8d01db6544948bf92247c4beb5c8e9683dc288554698083f331a37db500a7bd561cd1d60004335b4e97213d339acba1b16aadbfaabcc1141c91f0e2a6dce17d9b8746d8759685ac933928941991af06bcebd6748f93b2a6ddb59fb1aca4af735dea6714d93f63bc8eb0587f791575b2addfc58dd387e4fe078d86d5a508f2584812e16c53c32010b57c31cfd8b3964e1cf682eb555476aa1f999860d6e574848b0a70a0a3ebd35902490e9359cdb5aa5124fdcace37b63c045e3860f389c5d2056e7a8463e38129537c569f3789c512f43779ef56a40cfb4ce50ac3808c8b6fab3517c8fe4f021e081e98c2d91bdb6e3c918368e66516b61987a22c66bfdd071d45e11c99a379b47dccb50bad16255ae2f37d26715406212f63936326665569731fe3eb858e9a99158bc2534195e72532717f935c1c6062c06c33310a22bdab93f5e0ce4f3a820b83f8db35ff06b0210cce802c9b151a2187e66d7287baec30e2dc4bbf2b72540c20afc65eea4fc04c8000a580a6b519da7e35531a7deaa7636d00445f6f79a69b0a671d1f86380af0b863a0839cd1cf8bb5c4e4369e24fffcf2fc49b7c38ce4f90d152715df3d27d38ca336a95306fa84122a507b8649ae9a58faf3faee30554bf54d42096bbea2d57c6a088c18befe994b34a6560fcc4640a7d80179354d9073eda402f002e72d29bf6220b787cb166f391bc54b2f250d72e0b59cbc7bbfe98a0d8ae3fb7912235cd875ec23534eed1b836476226d4d3da4844f66add707b9ee0e5595e0fac40e2b873c7704dbd73df49bce925f600b206f430af7db5d85619c160f3959535e7d3c9bcf4ff395361664fbb041a7753ef7bfa2a099f5b14fedb17bbf0a8c60d22b549c1ca5653ceebad17492d51bd80efce29b4d7b4807e659717bf4d4d507b7af1808656846560a39448e3ae3892074e16d90f0654cb7433faa6f784084334c50c3accd02c00e062c53a7a1a725ee2fc2e249600ca6a1f645c1c93afc58f5e14328349b0c3ae06314a4bfaea7af5c46e557ada9605c11e6c2d7bbf8b9d485480775211bdc643b139d081586c7125b4e13a8bbdc24bc2ca56e854c09d79f388883a7bfbcf86fa005169c14d837a61cda48d290f6afd30b0bafe5438221adc12b4352cbece84cad5b84bb13726fd0d3c3f1ac1eca7322c3fac58586cd0d5fc2f5484ed4477644a2beb1022901f731995940dbac80d662662806752ac2d64d29873c276066e364aab77f490c4edc1d220abd9ac6f87f5f942d98876950d0f4de2fb35a60aea8fe1e0316cb28e02f2dccc4018a133edc480f6da5873ccd78f67c7e044c1b77282a52debf0527c2e08ac38d93fda00b77688cccd39f861c58bd0355a98085588d42c90a7ed7dd4e3cfa98fb136e7cef05b4908e796b5ee7ca59a310fb4a0610e468e37c31dcd020c2c2062129e8859edf0383bdae7914eef59023420a5363d6db15df900a4b9741652bf50d795fbe9061f69edfb7bc46c48be9c486277931677844364e5d0f2f83543054ba67d235ac365247469900a402110b80c847ee73f3e096e3d082cfbd38bc8ef94097262f11adc3eb4600e277e36ff3029e123f99f181ac6db6850f8d68ed15b34e5f90398aa618fe60086b4252c7a21aeb2b40753c5555cb5647b6621c8bdba24c2436976133be31f55a299b0c35bdcb9a8be66f7f8f48b416794ac675f31e12c1a51069a18eb3e874d4c59e9969fbd06c6086e7a836375260e9c63cd5418ea070c1247f3a6d54073029cadd076aeb9475d7608ac4911ea2a488a2854e48e062a818eee33834e3b240cd88bc1f9c13c313370c310648f8d217ee04cc045fd9652e25c907f45a6640126426dd68aff6cf9e4cea7891a8690313aeb12f016db30f554e7bc6ff0eca47f3775edaf2c2a7a7074de4cc444d3c4ddbb23195c928b2178bb4168583be97d0d999ce315ef119e5eb4e6cee711a0b10951e0c66d03fcf341caf81605bfee31d78f900342800ccf28480076cc706f2c7ae4288691a5347d5096b2eaaf9348c61e42927719bb3b9979c60ad776aeab16b83034530c739caca8b2e0047531dd9ccd1a136a904a7243e2041c2b15e6b50ad2770b0a5847616aa11a8c071e5dd63881d51f30103429029d979d37165d12c428a64f8e4118db3f60e4df5bb57ba208ad5531dcb9bf08b24b7854108c6798ddbe47121ade501913209f96c93ba7292be3b2f8b1acbb566d73a0e075b4a6867a36a810a1d475e3d866c11890f38140227edfe3884308b1a753d587d41627d42b873168923a4a9d8c6cd94512137fd099113c9fc4df5c3dba412a7201860ce63d17cfbe75f2a55454d8eb3a824aa648f120afe3218ab075c88acf9601bf47232fec6216483def8d1093997858c2d180ba7fc2993c413d2586d4c668dfe7a2b3194202d2f8ffedc7124723a8a071711dcfbb20eaa450719439420e4a11e414a69a9b07bcc1991351f36a31e99929d67b25cd93513328bf596d40999d7ac9c2d5995d3acb399f60621b29f8190666563827cdc5411c7903eb5643765b0ccb5667e971e78f4cc52b1b84a67c989b792dadbba464881c7b1971e403a22e5031081c06601894a9411f4881c9782a0d3aa8daff5144eb695d0c64645011d387ea2ef7b1b041922f636569b42941c5e09d0f104531197bd849b405a3371f4f9b3c373457071f28ad09a638b191cc41616f3bf33ea00f4e05666afe623d5a435b2dbc6fb9484b0a609b1462a68efc2a5f16f06b2cbdc1076efeca7064c95db1a8cbf0d2d212c37cc8c95d0454caa3d6671e90122c50ece5652d8524963d802c607e3c2dcbb098a2db44c612d4312ed8d5e224cb6d7c1a67dff586d307e7f20bcbf8fa6c3e94b0f1aa0b2c235807b4785cfb8b98b307a61bc4f940a8da8528b65382e52c060eb896c383d90365f11c788c84fe22b73d43fd689e18c11ed5c2f7a4cda7fe4a1b70e4a77eef4593e82ab596bfb9b6a61109c19e53d8e66335f3c2888137feeb61c3f8b3903ddcfb230fbb9a2091164a9f746c057f8e86ca3caba17812461dbedc04942cdc836228cc8069d74a296945dbde0ebdb6eebb3ce685bade39ca28d48f77a67e681435fb4dca8e515c19881137f6a10b5608b1d0f34277302e3c477fe00b57cf62de8cd44d25ebf16239b6833c9f7016d14aba68d4216e37c491720a0b6657c9e7f67bd805ca87b5c65759348fc2890cba130c0fb85107754d3ef34ba4051c0fa6974a37470038731c5e427290a011f74638629683882568263cbc90defa80e7350e9ca97c0e353c126c21dff399ba7b8d0909cb81075c4d5f9cce36ef5a4aa2b62cc54a19bc07f7f9bf5fd392db109ddf0ef32709abb51167034abf6f00a16f38ee24437d6917f0fec8abcc5396e56d14d6fbeb69c3a3f95e9e38c8be38b62dd5551e18aa2bb5264e758f7f3540935be5ee95f8a2b13bb6346fb9d4816ffdddaa4dfcac21c20dceda5f929081f1ff4efa488f1153363e6778ac3fc70f68005b6ca08436de0b05e157328469829b7659611e653ff07c0ad7b8421bff4310bda5b9e13e2a2f6a04280090b3ccdf8ecf87d604618221f0b846a688141538cc204f488cf1f7b3124983382998030de0e53f89e68c270215770903563226c05690fbe14266c425d8c5a4038caa1766f7b62004baa3c445382b06cd89de21b6abdbc257fbf52d63f61bf11974468cea394445ada760e1bf6929673ca8566272d8ea710ece6016347c02efcb40682f5ded358db7bad6b713e289beba570c25975663aa0502f46c9074e42f4629c40c7081beb4cb6bd9e3f16f2300ce8e6a41906226c27ecd37dbe8b2a4c6901bc21440bfbf7a58d49d88f57a46ef53a31d764804b8bf0a8b5c6de18e6143cf199fe0535716876b5a868209c99498da63cee82f6c2fa5d03c0248dcd416410559b83c216d5cdc1e07515b909d02f391c0265517fdb9750255a16735a0b1f2f078f439a88db4309856b7cd7a26b197ff4d768400214c3c4e8f1b1b05c5d784ce94e0c01213e81b22e892081804066548023e1f226a982201d52882d3c5914e6c4b6cc11a294000083a77be37bd7e91d3c7151dadd915abe5b42b3c4e5645439a8bd4eec2e83cc281aac57c8baa4539a4274ef47c1a1d02cf6b96983ada8ef4306758f693d1ebb3bdd81ea08d61d345169140c13f69e86b50ab0d5c22580dac06c802f21b588ddb40f4a6092501e4669869b018a1ad88b5b05f8c875a2b03c794383672aec59cd5b4795944379aff9fdd0c49a980596ec9adc53f41bc4bcdef97543c16882c645b3c76500ee5b0e895aa21c68f50c7950c2606998c4ef5381c6da6a5f00370b53f57ecf53b7f2be5c5c14996bdc3fbcb90614cc457232970de8803e98b2940dc0fcfdf5c44681021afa0ee2c44a0366f15ee8304b5136c7c0afc5470cf3c3ddcb12a44e9bcce4f9a883c531c60bf96dc11dd1eefee5896bd81de005bddb2ac0bfb12aeafc626cb135a509b3cfae480b25201c3ed0f81c1ee803600a453d7e2db00773de5ba1186b4c105ac40dc8901595907db6a15f48d219b1272ad6f0d667b8766f92750c5e2f26dc4cf42d80268d4cab64470a5765497ced87073fd0b44bdab819a57a4da3931c8604b53a204a77ceb6a10f1a9f41921da92ef9ec29db4229bed64946dee3b8b21c559a44d44cd91e3edff5f529987b70e333924a5f9cf139a5685acd751819d89918b6034152b229febd72ab66de1970dbb346e758f377b40d1bd23150099ea268a8e38f9f2d19eda02ff25d146941471fafa1e61e115582406cceec1c8368bbc79ebd0690bb0d81b6050dae408cd9e40b168751639f4f2dd8198a54f396067a04ea246f84ca2b04b5d8d42f15c4d61b319ff47005df0b460a33f4faa2363421e615a8da7591a51db125035a0e4da55cd751bd3c4b1272cc301e8e281c110b0ac6f8e7a6c5f85a55c3fabb74e146fab47a9a361fdeb4def88db9b0353b2a9999373bcf31b31ba0e9437b30d7a674fa1cffe44ffdea5e0e585e87d1204b7d7b2a94d4964dae5ddecf67dff52f334fb6c5bca083e3420c554a7e361baa94b104a1c7c9ac2d8061ae40fcc78ca6200d04a4dd6d7aabd8e87f511a63f403254610c703396acf72ae2e925c6d357513953224026595bca0f6e4c317a37b768b2fe622ef8315a6a31101e98dbcaf24a8fa76877745cb01550c88e7853266977e4a2b24157496ae04499843d57849a385a04feb6de033873db3766685af47742cb7b52311a0822451972392237518982827b6564235490f8c281c8f2d5e4dc465962f90d92e983f339498414104d66da6a136ed7ba52fe77518b61574a1f595fe3082f5af0089aa0c90de343eda3e080c0df394748859d02253ee1ba86124f994d03ab976c1159018895720d172ad935244d616811f2a894e29b19f0ab06aab4011a758763805045fde8570120ed1bb695c2cae13b8b4a4eb768d1973b0adad1b22c2b37892d20fa9e215c80b8eb4f487ab6d92fb2ab0ee0b92bd6cbd8fb52944ed416d5d619147379c042a5034bb3f27b30adf50813f9612a645c77f0687da1d3f48b2964382dff5a11ef9c31a9242e14d01a1ab0057bd53dbfc777f07fdea90b2556284b1486377b527a227d93d129656b5bfecd176193f16faaf99817c59f9a81c81416b5d9e86262fac3e840bf1fd15b2dac6ed649d4103c45a02ba8705a8df5ef0ca11889df4ccb68b330c89f13588736848fff9eed5e688c05419e0c6d60c8e3943977a74a706ebb16399d3fe133a25593670b69bb415509748a6d77c45b34871c16fae84a2cec8854ee4d284572efc6d9192a0599b2f0e9f135de6c8a4309545b0e0af278480679b86a1d40d8aea5017e2334ce8e5a244f8ca9c04db25b5562ae5a7c03f225ab8181614ceb26df407b25a354d8f35970bbb2a2aca49bf5380ab49c4b1615e73c91d766e2403d4c2c0f5011c2b1b3469a5f5b4452b2d1bec52d2e42241b81347e74443db40e0d5a8f6c36c4d073a34903b4de091447f82a8d00f89df8d9b5a6a3400db3d966019fc09cf1b2813862239b75cab187bc6e4ded6a8480b56226631de87d2d02e256b84f5c4a559687ac5e09df6a54c7693bb439a49bdcb39039324561be30c5b93ebc2751615baf9771c3e51b8866d77a565017abecbb99cdee6d35e11189c2b4b50e16c7b28008440284c8089b7122eb26abfcfd9336f161bca05b2a69308671f0609b2ee2b469371fde4f408fb93cc960235766208690e863437295325a6e2bbd00e8d6326de72cf4e350d775422ef9754c1c35b0d2c9b6dc9578421b61edc2f0600ac32c9860a60cd930c80f6b79801ccc112944af31cf588e1a63d899f1daaf6c90d2e308ad67277d04bfccde15281d84f02f7f7bafc09233f8ce67043125552e1fa961816560537006a92c5a24c6c268f01eaed2d8316f130b235c67a1a45ee401da86af3dff446618dadf0c77d27e08969e97cc9f7da60633fc5723bcbc03447d74a1ea6187ccc6096830cc71e73238fc59b42043491aadbb5019ffc4dd3503f3905d34fa8b806d67900bf22475e03f3e7ba20f57f09eae4ee5f6d76ab97048cbc3903b8840622be5568cd4717225a1640583a5fdc49d39458964b630a45fcd50a705cf9e4e1c7b4600e0820f07245781d991f1b422c85a81e3dded5fcdaf8dcf37bcd7f3a606e204876dcc6f86fbcb70203f78eb27e7e5f83e119ba0c989e8516dff1558cf41ce2ef79d79d7693b95a90fa1a58bc990140acc208e8445dad6632ddb4753883684da8b634337f655ab250940da9ca25e821e711e282400b67fbff099b8e32b81150a75f5160365a95f26ffa131e6ae3550b9350e5f7a02c035914a8f76b9f3b5272f0ba03fe6c8715cca1271e4c03bf0782416ad6e95696005f18f91373b3af8218fa73680a872a63a594c456198f021208c6a7050b4e4a9859f8c4688a6cb0e6b275ceba701d3af0dcd49df5b08008be989df561aca3e08062acbe58ee032e55dfdfb3f44fae4e9065a24bb5802e39c2a8eead80fca7fc7ebcece29babe5f9f052940b5c860a50de9662185445553a88a75413137ddd9b1c4ad93a31dcff32bac96f943dfb2221389a169a7aa24c74ee712dcc54b0a66abd1b06b4218313e96f4b97c516d37471f04e620595a650a1cdff933f886637b2dab31a38d10ab6a3b3425ebbc7eec65a14aad1ac04ef66ead9860a0dd864b594dbd875ad981649c9ced94949bc328a2fad141e1847a3225a9c6ec67344fc80c01375fe8d9c672be7cc74002795de608196ec162b48912f40a80a60413c716db929533d377fac4b211cebde76368dbe747d8feb9af5a6658bd8301c0f93448caa54cdc7b5a5280b4a9214882033fe6b39c5b286849db59a1bf0aa542b13b76f963adf8c20a1025348725955a9842f8426734ef1000a295098125973dc59e809a1649fcb8ecbff5543ee83455e04eccda3f05e9732b8683c584cf872b711387e76874a71af5144f645606a1e5aa9940fa448217ffd9f7ee7c7cf3c0602dc0a31c56e284addebf2f0fc60afab3d8622eff67776b6ab84a12ad910c48b264e449301ff4f88473634e0d0a18d087abc11871e35a0d0210d0874a81187066b40a1470d38f4782372a8afc0456c764b311b6e833d4a93b9aefe77ea893c83d6ea3715a051e9e2451adb453ccffa87b8dcdb84b5c590c3e06c962e7a8612985281b5559dae95ba985b2a806dcdef4db60c4a65be59dd3c9338cf1dbb1f8c23b0fb8c61af040966b21b25a1c0ae74998a9c407be2b8a28a4550fc7278d598380a1b28db8208ab949aa43ca88e4c209dd0a069d177c665322cb9fa58e49d267c64385c3c1340d405002c638991480db979ce22011685c661553ce00408eeb05a0400b04ab956a0e55a196db7d6ddc22022d9d7cb3e3d502fd78ad78b6812e4971d38f833e35b697dbd4afd81b6f529bc3e6165cf27ba7817576e113bfac6ac3ed1a99d2bd81f748f79a24b74f34e4edb577fdab1fe426090868d2f9fef2a89a7a995d8667d401deacc9f703bfbecef7f485bf7e78b9d0f2c3a778e78413add0748649412b3d453d6ca4012f4742ce1eb99d8de3a12940cc5e6079ef230a9990ab2d8dbf9fc76d92c67fa8c7edcfd1708e9c79bd9d66f5c13e818d3bb5faadad30855f227b62140f9d6951f1430aa8f14f591caa79753780832b4a266d05c58541256fd62b70ef450d157c672117d1d1b521894e592932938ea90a7f4bd5b4693f16046b3595c059133e7a57b22ad2788f5e851a858109da6813490c7fe92205afe76f6d20ef0f4883c8591191825736a541c9faf99e2e7b6fe43b6328cc9b1d1248b99c8329db0186f1ca61807c2d408bbb4e051c5926d1459a70a6017f24381243b187f76e1a82a6ebab0a6691ead40f87e4cc5996230778f40b95a954755dc4388483b44b1d778311ab4d978cc9159481526bd1dd27117c95f5c2b79fcbd079a82788c15cad638a52f56239266d66e18a040a8f42e1e05350550c97b88d60e1095797a8e6300dd3ce0e1264470ea7e292011f37d71f067e7a36583ff1efb0516275a2e241de595b53304751641a634b7f397c1816e87c254188245cdc03f807088aad750905119a7d60085146b5e673d05ddc82c782b5dfcf5dfaeaaec0f7d021c2b6087b7793e59ddb51527785c3dd39b5c7e5adada9c33977f664d67207c9a3d58036486e074be0aca58add4a4ed88bd6578c64e8904a8039c6de12219048a5109dece0030a740a6a68f1015b0e03b817058c6ea454081330b39b2b188a41e7c22b5bc801439a37a725856e573e130702a68c62f44a4d867cbf745765e6a02e3ccfa1728c6f826dd64862f438e56d07976b14e3d0853fe10cfad2a031916e656bd3f3809c4bc671f7a4643680b030c8fec2a90029969f3897c0ff39ebf641120ffe45f599e4d1491639d17cde5aea3f0068590caa03b82c067eeaff7da26a79c8f6002cd39072c87cc416a7f8c5e019fe745a8010957e0d883eb50f61c0aa018684119baf86d449a3c9bd5ff73835e54c90f68d6dee1147c9060e04e2d7bfc5be296aa029a7a9db2cad6a0829d7cfc2f2b480b174e2d1ba79e94343dd44a9c57a56a307bc9f36c0d2398f68042cbc77450f229d184205f29a588dcf8405a2ad772e7c71842b44a12d9dd061c24c7d20c9bfd9075eff71fd11e3254b79c1cd079de4279b3d2c24067825016ddd34f6667d664f7cfdf05c5ce1a2a3a64d36afc3c50900aca0f4657aca8595e550378db37e2bc3d7ace6cc37024720539cf1cb50638ee953730f57ae594d0df0f237265c6de6b6cbb5322688771e780d31e4005753bef0312b9192afdfc54535077ebbdbfa4cb83f5a121e93a7a358a7edf4d05ef9ae9bfaed2382e03802d138a23af78f61b57cbadbc8b92a88149f6b74cb8cd54bfff30bccd20675b6e5e752a7fceb91768b144b326dfe3fa73300dced8d0504f8ecf9d4103ba126eedcfa01eb7005f00bcce881ba3d8bf12667f82a8ad75fc8960c9203d74a77f08ff2bfbc7553b2519300e67d15a132386c81aac3361ba49fa842edfcb613046918bf99f09f1069edc0395e32bd12ad2447d57e7a42837ca10007f5e32d79ce89a2503ed8cdb9b62c3777a56a351563b193960eb3afb57a5bca5ec9fa424145f03bad8afd45210180e8b3a1a0e408bb680e0b6a87cabf0e72ff0050cb400bc42b20257ab41a34ac22d8614fa5bba99c8e6d0b6c4caed1700cdc986ffd3d1df9c5a472091fee77b0d0b3692d36c15d8228b30b2b5bdb74c01970ea30d3a0c48b77bcb23a21b8fe988a968a9e826112d151d191961de50b9f5aa0e91e24dc53df5a27f3fefaf4a4fd5a73fef37f1a94ea9ee3ec5c9100aaddaa84e74ab99eaba7b030b8c3ec8b00432ccf22ff244bec8a718d55de1d4dd7bb8875f80b88745b87b15272d1b5ab5edf5a7dbe1ee0a781077d1012e86e1ee1b38697db8bb0ed2f18a5eabdfa9ead3eed3fb69fe1dd00ff0aa57e98ac36d74d518caee4d8ca2b774f71cee5e73779abbcfdc9dc7dd77dc5dab36225b918d4848e31da41a322a5a2a311395c9c4549454969848e8974b1bd5eadb672fa86e7df6b03a947bea2d6d436889aa786b2a7c35847fd937e4317787912ec7dd1970d2d5b87b024efa1c77c7c2667a3e7aadf20fab40afcf9f4f31fa4d8fa9de44d7ecd30fe4ee32f7d074771e4efa0d5ab5ed1fefe5eed64357b3aae24fef9b3855d78dd54ff3b9ef4ef10fa3c0dff9fbbceafe5e7aee7d7f6ae6fd0d5feeeec349e7e1ee3a9cf42377bfca284fc556f983fb2c2ff0965ab595d84a7775d5a152d5436546d13b1454af4a75a2eeee1247770f4505c0e1f133595939174532dee0e1a9996147b0238c5dbc8c503ba3d68098a814bef5e203960a72a297b18b97d1c7072c15583b8527262a65c91242f8e287607ffc2c3e4c75f1f24eae29d9bb3e84d8efbc4f9611dec9e593c5cb3b892ff30921e6e37a984f082f1f978ff8fe21bc6cca5343a3caf5e353e8f2f19c08a2c580c7b188610f1aebb2454b8e89e7c20fc722c6711c5d6fadeda9b23fbe7d1e9e2cd6be2c8b55f82e9f2d7e1697e8ca828108b918cce70aecc5efa97255b97caa621fbecf95f06dcc671c45511cc5711c4751cc11bebfb5efefca81c7adb5620c8b98833d0f8fed915985ff7ad7d8838547ae2af419733b3e58b2e464329f2be3db980f962c39984bf4c122e6aafcddc35089588d01e4f84d3c1e24f6b39e70a7c73a85fff2c90adff2f07c8c07369bf5b8936cb4e1d8d3657c9eb73d20c4de86b199085959593d2354e024beaca78b17eb24fe0815388de3cf7e8aa767367bd9ce7bb14eb2b7ffeae9c2137b0bc2d9db1e10646f633e20f830257bfb20ec7cf8ee24dbe999f5807d05b92af1750886ef675e3d5d76fed5d365f676e6932576e162c597f964892f7b994f172fef347b51fc590f082188bfe393257e98813825468533598f17eb24fb588f17eb14abc049f65eacd3cef3843db3b73d32187ff61c885da688e0b4f3f641907d08c2cedbd7083e60a920077beb546383c4e271e4603e553a04c3d721d82303f1edbb68514e3c961635be7d15f17285ef62930bbf6a74d76f9183bde8399b7b521b83f4bf328a0fb369724e833a930b7f14633428317cdb33ba684b623c3cb3317c9b957b8d5744c88d968d90f8a2cfd863d5843fa1cd8d73c8e4c27f292085dc4fced18821468ec741c861d38449575c2fbe5b6b63d65a6badcb4583727d68416841a8802072e1bf6ccf95d7bf963c71fd18e4eb472b66c9c9603d5746510cc31d9f2b56bb0bc11e8625cb1511c41e2ce215f15f6f5d34a8f1ab5e50e3c37caac4b76972e22b14234dcea6c9894f2c1439b149f8a38f5593a63606e96fa9709ce796843ffa54893e368d9af0870a17f21fc3f3a2d28ff757222a8def632cf0894a43deff3d821c3508245040080f20ef8f252a31f0ee13f6f800fa9f1effe35f3d11f86845f03d0feb791fadd7040ff4b19e213e5aa1eb873c4f8f043e5a12f47c90a7f540f03a7a84f808f9d7fffc023d3e3e5a11f8bc04dfc090d83bd0a3e5e3b5807c1862e41ef81d3d5a3f7cbe04394100e47f7c8e1e2d2040bec7eff4f0f95273faf7e1a3e5c0e7f81f3e5f1670d2827d8fe7b1e3775e811e2d1f3bfec7d77ab46abfc3e78be8a4d5c0e778598fd68f1fb5dfa901e9f13e7cbeec70d2f2f1e327d0a3b540cce78b034e5ab1eff1a1cf979893960f2d9f2fd6496bc7fff8057cbebc9cb46a0fe45d39807c0471d2e2f1395ec8cf7ab484f87cd971d24ae07ffc0bc84fa025818f17bf27878fd617eb24fb9ef779dba3f5e38d3869e578203e5a321f2df2b574ec7805fe8b7502f23e3e5f949cb464dfc347abc77fb14e3d3e5af6b5c2d7125fcbf5e37f8f968fd6ebb560af157bad9d97bd556081d762e0b51a782d079e07cf6bcd5e8bf65a39be468a604370408cf1509b138621de4246152f78798003c2700ad38001468d0e9a3a5968e89c509b436b038c117232059000e38c8f24bc69218d21d69c70c20ce2136ddeccd6cc904073460717248038f3413ef6b11c62315254daf131a14e0a7500508313a303460b6078c95df9dbac0031d18990ca1a14ce28f3441c3396109be0c1230e0f1eb75b4dceed26b67113dbb8d5debcc4b1f6466ce326b671abc55098a961c59638841863883198c8c59e0ca209225e394743c7cb0ea3bbb56eadedb1391fdee3b91d3edcb37c7c78c9399a396ae4782cedc95db43627c6dc7fec5bff7151b4eea228fabcd208736398340bad188a3e211a3cd6fa782c7489a3edb922beb5aebf62abec15ebe31a5f6cde6324c9c3075790719cd326378ee3388ee358cb225d59d47e20c79ca39953850e73a040835c2237f6c8399a3937cc790108fb7f5b12c7d007f2e80a1a24c78374f5ecb81da199b32527e61c8d9c38723334d6c85db9cdbc60c01072e8ccc890d3060e3955d420078a1ae49c9931408e11b42c393fd00e20078759127262a0212187055a09724aa86d91a3250536683098b1461c309e88e3456d2bce153513e24451d38a830002c421402d863841cc0a1047072ce2cc307b23ce5602e284a9ed10874b111010030dda00e088b105e70d173859cc0400470a1a16709890014e12b323e00880c6061c1e683ac021332b028e0bb42ae09c4053038ed62c026f2491060dcd9b316a33bc89334bf3668b08bc59537be18d1363bc29c02c8d3744d468785366f6e64d0d0e780300da9c372964f1868400448036860368242c40015fcc39e18b2e6670bea082cc17691af0c512b42f0630a3f3850fb3017c71034d852f6060e18b15665c7cf165b6c61759342f1e401353061d2feabce1851bda115e5841841709a801e1c50104e0c51133365e005143c18b1c68377821432d072fc4acf1024c185e6ca1b96903cc193335dc8451c7cd17b4366eb0a0b5e0464d1a6ed0cc1ee00689991a3742ccaa70b3831b6e02a0859b166666dc9840a3c24d171a00dc38a3014bb451c02c8a3670a068a3c50c6da6a049d1a6895a98364acc94683304106d7aa8d9d086862e636a2db4416166459b11666cc051861ab41ec8a0e52067d6051753b0a18df0c4ec0a0340a0881a0e666671d820c40b05e842050874e18536451c5bd69821c1005a187468683373a20a9a1350d46438336bc3881f7e28018705c450eb81059a0b5c94a005175a786083a6c68cd90f60ccc0f082b6c215342f51240001b51408104410342d1d666e6660622b0061663e90b29ca3d9824b6d05376866d220838c1a99395ddacc1a60058d8528680c4033132289da084380516666860d6dc0501bc3821c2dc0cc16a005179a1637bca4511343464d85393437dad0d65831534014353368683b2431fb628821cad4cad83013038619152c2c9105181a105970a145e1460d0069d4be9041c3614e106da4b082f6268a591b34330424d1c41070cad098b0c104187a6081d6051660e0c0828b116ecce6a4a103196ce6ccceb4a1bd60851251704143e322891a98216a2494a1d96003ed0c0cb332589819e00a30351eaee052bbc18d3869f840c617736875da8cb16256260a2bd09891841143842943dbc2061a0f30cce2b030cbc20a303414ace0e200377c4883f6858cda09736650b4a15d61052d4d1472d03c41c692983541c686986d618616070e351866a8b9e0c20c4d0ab30354f1a51644155b72576e8f00377265a8502377e576134534542c2027fe188ae22df4b1146861d3c2096c6e30f32547ced1b029220d98971523b8b818eb84114747630d1c5ed8689150c3c883dcb19373346cc2e4ae90cfc26c07b2a685a41980dc228517398518605c53a4a1c2f83f3fe10f01c818bee010a686986c8d105a3ffecf07a1e51c8d9a2d7257fe26db0addba1543d3b2d68662103b378ce3e87a4d91668a3368a6d8620a31723cc21f3b451a3cb39d9d9d1d1e9e30af2e396431d89e190ee42c478e1c394812cd9a23d608b1a30029e090204518616a4820e768a448a306059a26bca061a2855a1a990d32992c014ee840ee2049179a9c2c8dcf8c86586c741ee40e4b3b8304437b80145d6831a881a306c58f9a34d4d479858e864d0b68d8dc20cb391a3666a4802345184878fc7bac484723051b589a2372576241e41c8d1464a480418a1442d9e863c5c393e6650517756668ac8123c723071bad9acbe1a945c183070e3c78cc6ee019000994e31900292a919b4a620d12628063061aba38f9fb8e5a13a41bd28fc65c18864d4a1ecfd5be20ed8ba23866d930290c8be0f1100a7925169e6ad29c19738e460d13391e38f00449fbce83a776c4e8c402d8f0a869610736dbe11a7ff6340fe2ffe3b81f170a8304097f7678de074f4f109e203c417ea7c7878f9cbd227b1eb2d92c0752f6315955ccc7c39f9ed0051e28e4951f353be4ae04c93d718310b9d03a59343c36e7238f87a2005c098851b3e569d4d80a2286cee8c396560462ec0a6da881f3c456156d5805c0d66c39023c8b97189b82650015496ccdd96233860582b40bd8da1a22668d03540124c6bb20634b85ad20db80180a429491e10030d401f3861041d0c99179bd5eaf570d31316cac1b45acd9d2e25a7461577031ca3881005a6b00000d0700a19523638602626c16f686333098cb6030d88f3b4880c17ee081dc41922a6cc960c50966c8e0d0c3114e301f7230d898f145048429ac904604882022016eb881c28c0b39323dc45813dc38c0e338b1c5c4961c87838b2d206206b005c516165b3e4c45de1ed1430e5b481488e1d180ad345e6cd57c88d1c2ca7013e35364d916ce703475b6c66cd1cad882c0166ec98a2d316b6c0911e34dc04a7852c00c0910a3072c8a78a14c17b9006cd9121273c5961a60a248c0981102408500b4e8614d2e00446c3d2026ce9c25e0d8b24270d9aa400c135bfe801e395b62c234e051582ec09cf961eb470c04fc8d03d4b12eb801dac2459829c0a05046191e9a482357c319361b0304623c0d1ce05823bc700628b185c6d60e3168b6941c18035edc9d04771fc1ddb5dcbd8bbb7371f72deeaec5ddb342c8e2ee1fb8bb07ee1e74772c77bf72772b775fdd7dbbbbc6e2eec0d4dd7fee8e5e397deede73779ebb63d3dd4bf7bb73b7e2de813b07ee1ab84b71f728ee3ee5ee5219b87b94bb3f7177274ddc97b83b064adcfd02774f82c4dd8fb8bb93bbe7022083bb6be024100bb46a2bf5f97b4a82e0cc107aad709149555211dd8692cc5b69321129211d5d2224262223a19f151ed27bcd5525f69543fbec59508189b13c116d85d3dfe7ebd5b73f48835c131c2e09a928caa7d7b75f6b8cbe3edf0898ddfd87931044b9bb8a81f9cb73e39f6f9fea85e0ddb107a75e3fefad6fa9e21ede2994bb5b2a277f98712222db4d48085b9dfbfc9d2ad056913f88b8566d4175a77808787f8e440042263ec47d7ba7d5b554b737f229465d5d76bae6f28b18d93c8cea4c348b665a18a5bcaad8dafc22451ee827c5a8ad54351812885e888762fd458afcf6f54eecb3e19e893d70772a4e3ed08099d3218cd54d35a4318ae6728329a823b9a8dc916f7a2cf3acb2e4c0169fbe3e1c4e636070eb8e9294f8546c5eac844715ee6e2405ebfef4ede9540cd461ccd305f7a9e65305eab0ee0fcd992ab84ff50275419d69e6ad4f5477f55e81e9a983b82aa755abbb2f12284b484951504f4bab5ef7ddda482f33e96554df9ecec47abdfb9a4692908a943495588a2e4f60de5a63d534ef5192125ca639c53a7f1aefa0d35537163e4a5a81bfbb35fe9ddbc47ad5e9dbdbe7ef4475faf6544cf55bd324a4a228c18daee5c9e39da64ef732aaf1be5bdf92889404d57b96270fa7984aabf8f7cb4948454a7cfafa2e9001592fa3385c2f3399910b64d1aa0d3df7ba00ad48cacd88a988090989e866c4541405f5142c6f0f33f9e10db5f5c9446b5c9639acaefba6bd53ca840a42c1e1d27cee323785a2f708de17ab47c21f6bd024772f9d54c08c6bd576b31511d96e42bf15abd8b7b1f55c2e894d182b552c41848c1220c070f30312118863cbdd754e26f086df886c372115f3782b9550559951aa2a4f1c4049e99a3c79c2c4e9892cad540ae0ee569c4c0004d7aacd44cf95aac846642b12cabcf414c2e82db589d3dea9b56fdfa85fce28956fe35fcea8530e5e264a6764ed1cf683f958c43acc5d3a2ccc73581703b6666345a3928b62460860612ce61a456bbd81d0e6a1db0cc60aacc388b83c746bad182ab11666436bc59707a10d2d2c64008ab52f0bf3d0d26c62f87afdecbc1dc3704cc18ed6863bd601a195b9cb8ea188adbd125a1bc6a2843d421bbec6d092115afb0a6d06b6016bc53086c625c26a96016b178889968c7d85d686a2ce86e38eec289c592331eb0a2216b1b0301c89c49d30b4403992ec0723110f00421f3dc4c18ee2cfe80aade8ae2d2bc77ae82449ba753bdad0966163e1106b4357188ad61ad9211bb3b3300cc3d7112b240cc7d0de441b8f03b1092c2d81074217ac2b74c08e56b41e4685bf63470fcf97ffce9a207a0f1aeb1638118af6654798a559714c18c670a25d126d188e1fce643fd6652dec361201b9d970e7150badb516662dce86611bf16565e1285a599f70b55614b2329ed0c66036b42084208420fc21bae836877d85a1a58da438860e8461685f76e4595910cbe30aadcbd694acb5d6f6083178f1c8424b159bc1429b818d592b8676b44aec8f9029f411f284b0d065451bda9027848d567489d62a59d1fe58999d596b895808c21d116663a30dadc559fb6220dc61c7d0ba46cb14f2583184c08a62188ee16899c2d03e10ee58998d8da1b516677f843b30d18eb1d15aabf496c79058934881cb8a5666471e5626c3f150e901818d60b461f80a61d8920bdc7894581bdad05a2be43007fa9438ec1953527f2971c460238506393f44b9716e5271e038949e2e3c031aa8c019dc351e4583123244f5e4274fe25c3983490f04695c10c7c78d89061e434cb75646290e2d8852cf8e4d8a63e148dac53143d247c06d3b372010daed1006c1c92107fd6d08056482cc00b2fb19906f200127a34015dfb954f01fb9b88beeeeee6ec4dda190b502dc7d4dddabcb8e045164c960b1d86b67e7e5e2117fc860a24b5c6036a5c5894fece7b5135b1a6739ec38836d30db224d245d5b707921eb550b61b23188f663e987ac1d2933730caa69098f7ab8a28cf6d58480ac224c90e8e0128e3b2313a00764c1e9625d381d402cd0128e0f884258645110270b485497057238698917682121cb01d994d98e17b2922c008ce99d35b29ab6ec82dd0a244c26d25c55e397305a62a30e51c8484b1835c88664d125c6860bb590c765810e18d3b8045309628b02ae9f9d243b13bc3a1887c098b61080860bb65081c250175ac9a40426b278561e0c5c684539ac11590e2469d98131bd7662355109ea02f1c74e129816289a544c498fa7243b32253329b38900590d8c41493b2f9c02b4d70ecf938f951cb276624a20a00293e51249977d65f0da7111790dc955c0b3ca84c494bc76600ed090c8828c4e640decf031c1030c0c89fd38813281969d980d66443352828a82cd46d8032e9c98249b8d42de02980cb6330eb9968c4b1658570fb1c7c5c04d162b45a627223c623b0cc894b41c71c27314fb19838c415e3d640da98d485c14b8209005197de420127f6cc9b20d5991270a8da2eb031f2b2ce414881fd89c0902881e6e28410410b074150f973b2b1d70a081942852514c3050825b32fa994082087e74a28938cc584018151891c0e701076064a450a3430e193c5580fbb1c08ce7c5841248f8b0830e37d840031919a2fc0819b2c1f0421c6fa841c58119652ca1cb2ba070f28c10d981eda0420a4a322eb6e061071c5352033b787662301f3d8c184007d87ce20403a8244f339cf0858404e0201500881f7a10618a14a5241e3b462ad8a421c548912419ec25c4084808a086165800f3410066980185274e8c101132b36e841008d918cff8324231c630c2382e38b68b508b300b1916b32b422ac235a112221061d578c50689fd70f9a0391036102e6077e850c09540a8c392632de471ed84b2582c84c15ce168456b5f4ecb21f6100d90359a903532790d790b73801632872c976b069ba00b2d230d446303b31bcabc4ac81a99c818d8f1c1834b966c83910311029efd9ac592c4965e3b22111e3bae28b2624764ede8408b4c4994a101b33759ae38b25cb307b2c89a6d1f0364c978d4421811d7904b8c9705781c7061cb18262b474f8e1e5148c7508c878e38b6b828882dc19ac41c6253ec862cb109d1d06be765264be4793d3006f11089769c8d413b495c14c036783df0da795d99ed98ed90f1903100db408463cbeb0131882dae3459125c197faf93e0c7889be578e918ad28241e19a3680cbc42d814580f9813d70235fbe2115de34c14c55084893151b6e3631461516009e488dad1017bc1ac081b8fc6a1d1c61c107b6891017195c9aa99d1a2e335f68821d932bed9e2a37b8f23026170b105156ca048b3f6a45448e1c9a982224a3935a38c2121648e188c0a074f9cc431c515550041e136c6050b5e78a3c59a27963002081d866c13b4b06e14b4ea0034ce7083c5154d14214208563ae04083274e2e4802048206185022091180f8210410743f7ce41448edcd17587e597144e0016b7440a501067468f184130758c288010881c2095f74563698f2c409d49a299c90a2006394b4e962cd144f34b1840172b8018c161734ced0028b250ca08400ba646113ea4907ed8c3a74de40d144124810c1830a26605367a5032a53a09e88e08074d0d64c01850c30a8d0059b5630804af2440457a38d5e87ce9a2912e04412481021040f2b9cd0a50a06504588e0948e888012d0317a1c75e87c9100289c6822092484e06105154e30a18b1c5d950e2a18b2bde1069325396a5ef848210c180da6dc6a30014c10cb07591c620442385c6e84108895197b08790875b045219178b3361e219102f1190012fab03d600f880e581e63039601990209242092630e5a8da43d307380c7c78e0e192cf68285af97cb25feb8fb03a4cc0746a9ee4e4f153884cd5c9ee92ac2cbc9d817642c0b321604d0fffc63f3d4e9f9fafc7d3e91a07ad5eb2bfffecee9ebf341c8312b648c0332c6c47df7bdf44cb1efea81be48d3ff1469faf4ec61aa2a189c180f197377df3d2fbf3e7f07a9aad86c362a5ab599f907a5e4f5002c05d7aa2d55f1de1738a46edd018c0ac6c4cd14effbfaa148980f33c57e44be16e05ab50df938f932e28583bbbf6ff7528c3e2f3f2e4f54bf9a795bbd5b3feea557c51abd3cbcaadbdd85b8fb04ee2ec1db3aa40be8ee4c446fe455752d8730312d312931253121311d31193115311131dd98989696969496929690968e968c968a9688966e4b4c4a4b4a4a4a494a484a474a464a454a444a3725a6a4a524a5a4a424a4a4a324a3a4a224a2a45b1213d212921252121212d211921152111211d20d89e968e948e928e908e9e8e8c8e8a8e888e8e876c464b464a4649464846474646464546444647433622a5a2a522a4a2a422a3a2a322a2a2a222aba1531112d112911251121111d11191115111111dd88986e4b37a55bd20de9767433ba15dd886eb71bd64dabb6df9a0eed1f0fabb9ac426527e867e7078407e13ff80fda09daf9e0ffff3d82f15d418f73c57672c8310b26dcdd0127c732eefeb8ddee713b41bbdde3360fa3ff3b3ba0edeb9deaffe661f467f73813a3e7e5a958eb5ba448911e8d7de5be3f77ef79725cf7070911f2fbbe89abca33bdc091897884bbe34620777f274799bf3ef74af5af4fecdb8fd366ba66aae7e5df6bde6b1335abead35556d5ec448a74dc6d36209c6627bb4ff3b9814f6c0feecec449b183a1d2c8343299783ca6a4245c747138dc944f5fdf551af7140381d7f7e993ab1d8017abb92bacab28777daf7237dcee6a47ceea8cafdcf7f7bbe957e0a41596dbf03e75d6d767e5a3a7aec0efa527a6c2658a55ccc3ea67157b2094e6f4efeb738a5c9720d72eee6edbbd9a7f87a2be7d3eedf2e6fdeb8e5c499b995e8caf36a67aaccdab8ca2d837456e36ee2af0b16f0a454f2a15471519ad46f08a5e2941bc049bb93412c44b9a4a2c45077195cd49bd86b641b740ea27b50d158e2da862abd767104581b0d5a9d3d7e7eff2a903eadd6b14bde5cfef80a47e9eec1e97751b6b5d7acbddf3b0300afce5f277523ba9a7e08f0039a9eee0fbfc6175e76e035eec7b2d64a7f89766f5b44af10751aa1fd63a4785a7f42e5025812b2f87450cc7c284bb8d97379622b140c13292c033ee6ec34114efabae65793f6ff5eab16feb20aea25a75faebe7bd738682d5c7537ec810dcd3d413274386d8b04e1e56811745efa3e8b904780209dcee3b20a22af5feb09a1fffb27e5c759b90c007721339895c86cc2590b947e69eb7a1e8dd17abfb51f4bc7a3ce56df9778acd14036d442f6403227a215ede1dd93d56b1efea7740477e9eec5ec8b6c3662e773a98deefa567367fafd9b7cfab8da5b0bebe28acaf0fa8778acff2e4f156ad55fc5b759a4b2c6ca64778188a56d5271c6e2a9d82c34da9d844f32f0d4ef3f3ce5f83b8ea4d3407f7b9536c9e6f625fb9cf2b5da503156773d5543a78ec9bfa8df12a1da8543a781b2e2f0afcaa9cf76fbd5ec9fd7eeeee2a36532c957d57b854d72c85c319294f7d1fb856e5cc04879b6abac2a91114bd47703823bd9397e623afef4f353561652714bda80b414ea255eebec449f46d2a7e7d0ad982bcb3c4408df57a9551f4be79f1d6e919e4db57389b469055a6dbeead12afc4716507b795415c7585d3fb40bb2b9cee7e7e637d05832b0e90574277e7e1e439c639e7e4c2c8c93387d20d796ee0ee434d1f81ed76bb05dd889e821d8ade72f7d8eadcd7ea54f10bd9807efe9d903c4e9fbc904d9b17abff423620a29f272f64a4e923b0e94c9cf64e299d3eb16fca969ebd53cdbfdb3943d9fd7d8dcb73a7d8b7d79c566dbe31feb837af93790a09e9eec6bfde026c90bba5c08d4c3595584a952223b3caad080b9baafa54f5e469aa37e4cea49751de196ed3cf23837dfbf5bd22791a045174e5ad5ac849debbbbed536c75f6f011ee263e35c6bcd7b7a7e27db7d4dbcc1463aad7d797c3633016c63c25eeeeff53334fc5c0cfdbd75b738a7f67279887bb3bd03cc3c418f31ebd3b1f31d9b8bbed2aa3c0d7f7023308779baf77fa3ee7fdfafcd7f78231e6076e64aa89f7e42869bd4692908aa224211529d9e8d546803ee89644a4e4a7a9c4528c2cad4d2596b2cff44c422a8ae27e4b22525202bf77b5c63f14bde554e9ee6e4bcf349fea45cfdfa95f9faf4fdfd4539d099679a7e72fabbc7faa316efb26529e3ebd8f57ada1a898ae0d76146d68adbbff70389de653e37071b8bbaeeae2abaa8ba74895d84a67e2124b31b199aed929b84ff46e3537a92ab1ef88d9cb4c762edd0845287acb2b5d03579909c649925c5dd5f4ed73ca556692f3142ed3ece42a33f1f54e25394fe97b8189d39387cd344a9537dcab78a9526a1ab981eaee4b4e5619d3f37199e60fa2697e13ef6b02575c9e6a94be17a46793a9fbc3be52eb705fd471e3260702ee6edb70dfe8b952e534bd259117c22af0a9979960358aa4d2442693ed682affcb5baf476432d90e076a388ade233452032e38f0c1dd89e8ad4f2cfc41f36215bd5805dafec9a65f0bf95e7afe919f7a32d55c62283bc5569997ba3b1bfe00775f03f384caf377d3a0a9db00a701180d7ea406411a48b0dbfd6babdfed5e287df236a01fb27dbdf337e47de5e9bbfa798dde54c53b3d5f63f5a22536ff5138c20c322fc8d9b8a7deadd3a5e74f87774e75378c7969d014dded943353ccb807f7599e5b5f148b9992e5287aa7f8a6444d09d258a7aee5141feee51412456ff986fbbe3a290b7057b36faf57ca15beaf0e9bb99472c6dd7770f7f2d4974a27658c942cee527c2e25ca5dca91941dee6fb88aabd47ca5e3f1721438695ceba298711d458c47c912058d3275466972776cd14cb9712122a1bbf16fc877e44c82910c59617348ef14ffd6322321a7d4f89411533198a75556816f5ea7a8a62e56889c9c5a72f7fba7cec0df2956b12f3d5fcad468fb28bb2170524a8dbbed9627ef54b1d58f219582ed54f75b31a4a276ceea5b39ee429c94221d49175062c056b8c84928543613eb1fdee76f8d7ba7f9bcfc4e32e001a71989ce65739532712fbdbe2341bcc43ccd558acce0874c26dbb1e9d3b73f482593c9764cbcf7f9c30fa485ccf40ae9a12123aba17cda6cbacce6d0104e03f7f6fd54d929b6c2541efba66432d9ce4eb1d553941aeefed8b7f5d56573dd5867e274d56573d5d95c3519b5badb82548fa93ebde5efebdb8f51aa6bbe8a81bfd37baad7ea719a5fa7e7dd693e620be2aacfe6aa79f977e6eeb16feab3b94a61f55cb190e1ee63dc8a8a8cae2e14130a0b9ba909953b37bafece8dae4d70b86cae5ae88905eede3b7f9fd3d78a418ebbe768208105ce2071f28c949367ac38796675f24c084e9e49c1c933363879e608779f29e0fe00e9c2e8a40ba4932e0071d28522275d78e2a40ba7bbcb6639482b649cb4c28393568e70d28a134e5aa9c2492b709cb452869356e070521773274c8e929a6cd1c44c9111164d96345538639246ab362a17130ddcb3b93269621204f43f8fcd5caae1ee2630ca122ac8254ab83f8eca7f2f3dadf20f435932c29210c8255996a84b76403f7ff7353fe8817efe837a19fd5e9a422dc9b99717a31889566d4355e5dd1a8753719aae2a0ef7b3c2ba8d51f4027f5618832e2406400ca830884262c0c409832577aff2389d3e314f87de7597f7831ef7418f0b7a1c2ed5356b2aff693e9f6c0a24941aaddaa8ac308fe822199977a868a9c8c854ba212911f18c8e928ea884547cee34ab3c39741c7b70eaffadbf13ebfef27ef4ae58b007a7c6eaebf34d0c2573f7ac620f3e48f5d83cad4ef3f3fe0dfce1bdafbbbb8b0da9248c8af7398405a9e476c1990b6e70f770e782089e94bc9648243e77c7bcdfe974d55955ed1efbf4fa2646a96e8a1f53fdd6ebefcdf43e7aaa1888855f9f2f14c4554a44b623db4da897d135ee3e85bb4be124120bd464c56c569696ac9d2cf7ac2c0fb35cccf22f590e068cfb8ecbdcdd4bc87259569696ac2c3059ee595925646dc9bc140a9b57ed01a36c7d994025790aa240600eebeb8b9aeaa5a7baa574408d7f37dde505fef2111caec4662ead8a8c56233a1503b1ee4f45efce5b87757f469ab0eeaf3c757aaa1b0bebb0be54468a8cd626154761dddf2f9d426f6e051547691c8e4955995127232606024f756bdc4fdfaba6260bc63ca6fabc7feb8dae9787cdc728d5a9532ca5559bfee1ad8369dcdd3e4185044ae6a5504135ef6ba6b7097a9fa0f7a76627c11ba5f106d909dea77a655eaceae08dc298a7d3c10bd4faa2477ce5be407d22d1faa2e594ab0ab494c80a48addacc146f2c4cc40819c75be354a7e27dea7e59e5e94a0cd44325b63232824f5f5fbae2dfb9d355258ba8f1dff7dfc40738e3ee49c8224245625ab50d0d0d1d11e1a52323a321a2a27b53322a8f4c23a3a3a51b5612c2fbaa5b53ad1abd4d36b8cd6613b2311ab42f567bbfb393b7e947ef45d712bde5fbf679f5bdf45c1fabf7f1141c8aad30aa739722e5ee0630b1958a358682b19aa4d4e70f87d329aeca1b87d3fbd43afcbb2a2ed38b5ea712a8ea803cbdeebb7f590aa7d9c994ae34724b2252d294f72d8948c92fabbc22a39508d2884b42ab368d9e7b55f1c6bfac6f0fe827abd883223d8f7b2636442b5ad18a5614455114456b431bdad0eed8980d6d68432b86d6ba68452b5ad18aa215dd7acc25ba440b940514e5403f3f44fc6865207095dad9c906aeaa8a770a6562d44caf2f8da273287a8f3ca92aef9602fe560c702fbd504c8c9100314692739a4f7da2e83e7f27935d5e75a7f90836f391146a63cde33dd1f702335d93f09eecf5899946391215dcc0df130154ecdb4f80c0bca5a098d83ccb7395c2e1b09a4bddcf0aa7595f0ce50877376200ee5e0411eeee406c1101842a1304b9046f48e0c588baf50795e7be5b0b69baca47d0bb6f927d623d6d155b6128fbc47a3ab19e4c8ccb7295da27d65390384e41903141824c5de5230990111c619ee8b532e3ee657ae0c1dd7770771ddc3d0777c7c1dd6f70771bdcbd0677a7c1ddc9cc1083bbc3e0ee2fb83b00dc7d8cbbbbe0ee2d88717716dc7d057757c1dd53707714dcfd047737c1ddc3b83b18772fc1ddbfb87b4b4544ebc97320d9c6dded071e94e507a9deeafc6155abb67d522d1511e9b48a8128f675a14204ea15575c71c5e8a3c75d635c61b838e25aaa979e5a9f4ddc6df02ab8859a2d78b8f3b6e840ab36dfbec0a1e0c6bad25baf50be87f5fbf6053e8ae670382d74d08296c5078ec5c813e70a2df7aa1ab0aa7c403f29defb54af744db6c92279cf9a836afebd99622050822a20e0becff244815898822a94b87b95a3277294b452a1e200eed66a4d422a52d2e47f4b2252420596e79025c79f641383bb8b6bb6a0c093908aa2e022467ee987fc119b771d9b19d804e0867563b3c5ddea34d7c071f71e4ed328ee8ecd7ca4484a9a2392b246c819234cf596fa34dd9621a748e254ab3e7fbf5c1e71b7eebef3d1478fbd61eefcc050d98e1ca1c4d6c48aee0e0a78891d99099ce19972f26adea83992000d1c8a24dc75fbc4c279ffb2ca83e2a6efd5a7b95b1291922bece40a3b49a3857937dd4d5724e5a6bbe988a4680c054573a53e9b609c44c770b8b221d6f022ebe1745cb9bab171e44c0376c019c18c25f8d865ccf2f16a3c9f307254cadc1788a16cbc7566b2f58ac4c457d94c9f9cc04d30a0892d28acdbc4766e8dd5ccc3c0fca66adb38fd2b9cde6c375b91d567276f4b83b0549a5f5795190da6b9b7697d77bbbfafb15e7741d53c752fcde8ddbdc69ac7cbd8bc2afe39d976bbadd7bc0108ff468cdc7d917c90a9467d9054d3eff449016f13dcbb45feff3f781cee1fa327f097cb9cee76bba78fe06dbcace6ad51e0ef62e1d7fb4cd7292829d413b63ad11c10e32552bdf4bc184930bd4d729e72b7a9bbfdf9120cd0287a75ba5c9dd5c93a629cac8385bb37406488bb4fe00d30cd31e3e41c344ed259c0493a514ed2c94ed201809374967092ce174ed2718093757c3859278a015003207177775b65af9c35d8150a6046abb6dfc5ead648b69b10105589f4a9e67d55bc4f2cee1e024925b430b18e8762ad03f29268e3ee8b046bf7a670d953afef883e354ef1055853651777070277b0204980315ab5699d8a81daee4e7deeab7556cbfb7b223bacfb0bf24d0f84757f4186b0fca0272e7fe8b1ecb68e10e3861167b806662364a0c2889bbb5eb1606da4492dd373cd00c2709beea5e7de587f9af5b966f331d5075d75cdbd9a93bcfefbb84acd577ad529d6692e3fc53afbca57d7bcc1dbb45ef7552f10787f35b30afc214378a7f9fabc57d8e96d1af8bf0af43944113e7c0677227cf6ba13417a095cac147172082feede4bcf208a7edeaff749f5bcd3a7dddded1452004c0c71bb1959290afed41be51b6badda4a241b91cd4848c8bd8ebbf370773704c063e7eebbc4aa9a6fc0bbf5efdceece84c7d341873867dc15e043ee5e0519041df723db92ed26e4d3d7874f758712048115c40da248d33f6ed74bcff4bc3facee7eeb0bb4326f10241032e0743a274fa0a4a03c49d13d5d9083f2644a4aa7c301c1a38994a76cae521db85b2a960377bb81bbd5c04e7177eb83123e04d1031b06a0749c0a18ee3e7e592204953574f868e0ee76871a7888522089344aee6e2b5881ca9314bec8a084bb5b30640001525d4d65dc3d64f254411d3042c03cc0ddc505506053860b6394a8c2dd5f2f6cb161afc045c00277b7741ca04296375c98a3e4ee230c3b18007c515c79e343156ca608ac2f95196ce60233af3271b86bddc65ab7b176b74f646a56d5cb7b9ce6226588b8de67a9cf1fd9c34de355eb73c857e23df4fb6e3503b1fa585f8c029f88baf2b0f917871f9bcefb81e789027f175fed7626f0b752fdfd8d7b1f94a5dea67f073cb756f1897db84c4ffdbbddee890051f0447ec853f018f37ebec803cfaddb182502043cf74f89de5257e47f6354cd497e68e8b19ad3de19b4f5aaee76bbb77d90ea838080e7fe9cfebc5010bd9faeaad04e6fb943ef4fd5693e7b3bc569069efbaf795fc5fba2afefa6ca9ff7ef30e6e9768f7fafcfdfed5e3d73f6019e5b3dad7c1eef75ef76fb44d75fee3536f391a9aa3233b9fb22799c79a9dc9dc9491ce8b83b0e36b89f6fe25d6220164ea3dc1086af2656cd8bcdc795672f33d165157ba04b736ae50624eeeec4dd85743658d0c4dd3271f7aa12fb8eb83fd5f083fb5576a28378094681a73af594d35026547a5e9fd6f7021547151945c953a68a4f148871928d859d689c62261a4573bdf434531c6562284b4c6ce6235a93a943a600644c778f5a429292b2a9f8e4a555f7f779ffa7e7af99eafe554eabde6606b74f922524ad7dca8b02b18ab42425f5a64d487a5edf056fd3775fd3a7af1213a7ab0afcadb189e69fdf37799bc6abbe548fd313bc6d8755dfcebc74e7f479e703fd3cd6e84df2b65d91d1badb65fde6aa4efdfafaa23b356fa9b76d9dd1c75426de39fd8c85d3bcd35ca6d8b77fa7d7c757cf3b7f0714545566d409879bfad93d0606b7c62ade18f378f9a7cff4fa4afcfb5e7a569557dd1a5b61f4444ba1edeb9de8eb5e7a96192dcfadcff204e69a70de25b6fa0b84d59fbf40e06df2b6ad4ff47746a69a76be7d5efdd073ebc769d6b7fcf4e465a1bde6cfbddf39c5ca4e6f134acfc756d7773d38f54bc951bcf47caccfab37d1d5f6697e335d5f9fff3613bfedd50b0c7a9b4f5f256fdbeda4de6662ad719955a07d7ede5a8806dedfcfebb769e06d12b47fafc07f35f3d2f347bf0d09d45f742dcfad5ee0df9f9a79e9f92b0f78b10f877fd749898129549ed226c64e4a0c942af3d4112469769255cc419a9d9838098ade23eea2b23581bb2d629b4c8ce589e0df5557333b916aa1480bb616825ae0d1024f0be3961b5b686c9de1eec0fcf38ffba10792e08324781c307f9004fff38fab42059bb9dc42628bccbe8f73b744dc2d4e8c17287af274c08b7dba8db5d6ed3563ad43d1b34a87f575c23809922652b2b94ae90f926a52731294eaeee070692e751a9b2b5aa6a72ec5a679fa7427f0ea801a87e3a15863ccd3469a8ca8d8bc58a7f90c9d423350f8a1f0040526284ce1ee5ab5e59f152651c0a1f0e3718fa2f788919d0f3af2414d51768a7fb9090e377595d313c813dc841d4ce8c00421263410e689302b842912e6c7dd6d4ddeb6db58eb545d9a77ffe9f93b5c75370e87cd13c9ee79f9e7897e40986ab7b1d454fa44dfece4e77750bb9d994f1547fdd6df999e4d7641aa5ff369a5624cf5f86e21a9bebe20de43a91888dfc455d92a3df1efdc62b8dbd49d627d7e2fa342588d02e30418126ce74fc55118f374fafc6595a7c3386f30ee262e018e89c912c6d880d47c5a5d1fa6d2e7af04256e03d218db7a36fc5302e96efb92c63def95fc422667ac735ff2978cfe5ef3a7bdf444f2b4572a9d7d575edc00e5fdf3a41716bc58e0ee360c0cee37cdf47c5b9a4bacb7564f135be5dfeb7b25e585873b9124c0d158b7c99b589bf8775312827021ac029d48003a7a5f9fead658fde03e49b0e06a8804d2dd4cb19411d89c185d4dec2b35b6fa1c3982175fcdbc1fcd994a7785d3adb189c34d61acf2c8118268b1e1b6a9274fa0dc23365caa99f741aabf51b4a8b4767491d3254c17262e73b824c1050c970fb80cd962c5960fb648a0858e7b04ffb6add553c57a352f56ab4ef4b75e317820bcaafbe7b1d5890231aefacffb31dee955efdad317a3bf6f2f3d7d3ba8622b0cf4f3675590bebe4fb1d69d8fd3f3a7e29d5e8ce64cf5b9c709d97827f02cb18adb6d8dcddd0bd96cb672e30fd2415ac5c1f406a9b07a815805e2f47fcdc12013df4fcfd79fa7def62656315510d00eafe7ee53ace60f0a32715599d10fa637bdf8a7d3e947d15baae74e31a9a58b16295a2ec852c36666dfc6bf08d0dff6d9a26cbb5cd5ad1f67dbe9bdfa35071fffce2d0113d3adb2a3f2d82702182234418a7082084a21c009c18710ca1048102200c21920dc0082082008c92227cb00b2a85988909cfce00d77db4f3b21f99c7ed61ff4e9f9e485aa7ee7f4ffefd5e3dfd5556abefa1db63ad1ab03625ca5db99e98adead57242aeef54ef5f276ba2b9cead28cc35d6127e9131c6e6af7ff6ae661aa374f536ff585fe6dc17dae543a78afd09d2ebda50eabab4ef1ee85fe71506c7bfd9ca226be502f64c3526ffb2f5f0383d05b9efb547bea45f24236359b184815a485a8d82aa7f7f336cf15cb894e7d80c20751e4073c1e2c417a80e5c194db763b6775f7fa04daed7e3e089b8fde73a7f82aa398eaf5f96a7e8c551e0fca76aac0ac0281f7817650e8dd796af7f3e95db53eb16f678dde7d7e7a62ac26d9dde7650f4621823a04a7dc16bca88aadf26fd5fabe5e6f89a9d06b9a17ffaed40bd94c8ca93e787f405c62e10fdaa998b77b7d3f88eef2623d69ad56959909c62a2fc51e6495a7c398b7d335ffae8a4f1e1414f3bceac67a42d17b04872bcf280ff82c382fb60aaad8ea09bd6a56d5279d792954e6a5a7cea7af929667a814cccf893341cb41a590991912c1200000331400303824160bc70322b130c9a4340f1480036ebe60703c908f045190822008621806421006200418000801c6188594c1b001e4d0b4e6b2dfff802545bacc15744b37d8d6172014bc216480c4ba982f12e39e14d710ac05e20105463cde2a928049bf87c900047af076408fa85db533c9dda6909b55790c1e9d89b3cfd67113e3013475cda3465805fcd565c0b230fde14ffb2f534d3810b3b964b01dd01f243c3c9e238dc810ccdcacaf189703fb19f1a202f1837376f0d891d80176e60ca4d25aa4d7ac647c1d1f846bfc0585f66e4f497eeb3164b0bcf77490aaf7f73de3b563e920bdf91885577c9e17e6977c293b14155b181534338b35be7e1fdb5d322e6d26a811877d9499eb02a07b1dc058335b190290ebc0697021aac80d5e38d94ab972adb2fecee8def0295efca19756611ac96a48070ecc6a91016ae6466cd8603f10305afcb9c3b51caab42caa2c936b11fb6710543c0cd2797b7950387f7f45bd3cd55808aa2f65523df95aa51ab1fec63dc3794bed76c7e12f5f7aa45fd2876fc3506d36f3c378f759e5385d1786f84f4e866df82c45ce22b78a7883b40472773c22695b92e5cc4becef3c109ef130282c51a3a24258066d8c7227c7d7eddab100f4018a74bc9c1456339b58b06980092a73199f8c75eb4120b3268b9730e18a15bba085672ee5ad5ddd63fb1edbc22d8d3d1503a176bae003c3e8f29c43c861c702d3dd3600691f41bf1428e2d386bfa1f73cdf522f294ade70c887e1af97c21af77486ebb14d9def35d3ba027a6436240353cd62d37159a4079f732481f684632e58447c3f230ad75e441959666ce9ac7c6854b6302ae8cc620e7fc71b829957335100896112b472a6421fc55f40f5bb9072424e266a4926c8d9d50d7087ae3626202343b2408ef30c70348dcc60d13ae019651b676b834842a515f6da8ad3210fadddb5777a0b4fdefde5dca543868b11736ccc824923ef52eebe7867a92f4839458663c98ad91133a4fdb9c27cb1d16a07aaebf63b7be049d15fbece821bf4a7fe190ffe370cfebbb4f8e14065accc2331e3355c7e29052f183a15ce580cc16061ccdc5f850d47811321d2c6cc457da15175d24c312e48aa46d4efe661df190aad9f69e0c7f5c0ff17eab35be26c9396de611f7baa3ccca4702bc66bd817a02060c8f1d49b867d926e609d6c9de14f4ac46290ea32444929f0a9fc6676091ca3e739afc58b5b78798af8ead16b06c1619013850ad1f236eb1cf5c35195fa9ed5e1bd4cdb6e3a809422428aa0f5960601efe5ec9f12b8b367b86102698f8f18ec4d31f3b6c9e1aebabf919f67a67c4fcee16729ad23e9a8661ccdf8981381772427c9d47b0f55a1195926cec4d5a52d7f9138eb8864e31cf6f1f6886f997bf83e92fc65b9e19c3a3a68e303b0e17df8831a2d826eedf5f0092b8c3ead0bfa4a1037107aa33e6c1e7d9ce5a8792900f5c16ec4d1c0548a44819cd0af4ff839442448d8484fe4fa1195eb46e2ba27306e84719384699104d34c062218bc26e7fc9d57a11c75329f757db8ca53cd2702ee795785ed6db8db40ca1119ec11b66e027d5834210270e3184a0086972a0e6905a92557ba64e15866b2a0a54aaebb2279324e2cb37259d96cc1958411bc06ed260bbc97397490e97b3c1b7c9c9b8c991e2a96278eb39451deee52d4879debe6c1ecd4a4cc7c3716128d504e7afc907fbf02998b8f59efe9f9e469c91a6e38a5f36cac6a3e5e8f5fffb9caca734a25bb84c74b34b6186023ac6feef4a9049c42465e75fd7af436f61f9d806de387bd0a4321e1589be9e1d809642bde2632defbf3ae0dcc0f382a5f28bfcafc7988515985a2e23084524e245e5a0f67b193079713dc67a26163942fc6e084f2e8700185e244720289c34be7e079682051ba57ab857c1db3c80da916a3269e963e7fbcdbc1a37829a860a1dcbe12b5c88cc16ad045a8d7e7cb30b40db19753689319de7cbe7b24d381bb58c4db3d1185025e73a0d39535bf981e35ab0e6ed5c05b338781ba98836f919916f644657bb87e8ca3aa40c3f5527006bbb6e855048688f475cdaf5e19e88d78570737a1a057b83cd00f3935e47ed327283980717a0b713363c5b8e59aa683b4d92b584e327b750a1fabeeaab8a987c418c3eaf8fbf5dcba7c865f32da5a7f035329f5341b96671bd0316efad385588bf8ed9d91ae9dff3f17279dc8b5db7ab641c4cc38e63751e082a813899dd132d6d05ed67233a260450dfc13582373b8c3db16ea0f8abd6f3ad3c5b5755a8fe25bf9d5796d8f7a7f3805b96427d5cc571451642014297f8c0b3888afbe706002414e29e6bf3d61b16fc3421a52bb40d73cda1c79af2d1cceed34f172c07a9fc0ec16a2f324218f27694bb0bdf82c3a958e4061a43f3eede6ae45c63a3ee229d3306ceee6ffdfe6ff471eaa530dab622054c31813460550b92a829b10e0f935925ddd81850c041c585783b4b624e03f56e3567f936b8aa03b51d1a736502b8bfff1130af405cf388c97a8248a02f5ed0180338e39bc3499136e6e55041efe6815e7fe466a4f988804bfbf6fbad4e771153e323a25b224a10b6563bb6f7ba57b37d3d5d2cec8b7258aabbc8c20cef88cd820f43072c6e836d252f9a208181e3200831ee562a4d447442784a733c9c328e4c46964f4afb2e27fbd7ac8f6765c15c08649bcfc4438a8ae5a44437520159b8f0c2590c3e5dfd088e9380cd888c4c0a78eff2d2d060fd5849098cbe8865d852d32d1d152b0b7abbcf72519f0fe7c3f7aadb48cc7f3e9e63a6ea72aff09e9d2091af7085d0e70eab88f60b98575de775f969097253de9671c1493669f0dd4fca4bfa5cb4711f1bea5808843d30447698e31daf7843fc7cf068ecbf6cbc9a47b526576d2eabc8ecb1ed02c870147ebe321eba657a19f690c4a83d5fb9895fed3420c6256dfc15fb0bfb10edd7431f097cbbc765ba96dc908eab9d4697bce2c36aefd24fa2132b13c26313ba214d4261e7c9427a3f98305fed54148705531502555d36937dadee98bc9aa6604e601f9dbe0d7f011b93831a9d5a54e585b92cce3708d89e30e36f787070a9862a914041dd4c77c3e01210b07f1c1e210a3dbb662800eff32b30cc4f9a0b57fb1f965c650e77ad58ce7feb99fc16151cf82ee46adbcd13542e95ed797ea6dab6dfe36d730d5f1b28e8e6b0f9b65682082d95e23a8d06dfc8edb3390d40393775d3c89b8abb646d41f28278fac172998a9edfe811d55a1d3f88b3c2582420ac7964aa376a63bb1747210b569e4480e919b5493b8a8013621d875b44e1430a61a215307768e02e108935c2697e2d89c4e3d48c0e0933e1f5098543d5456e4ab362badc601a18d3f6cd519a5d4b130029f6792282e0364a2244e1520f45887285254f7fb81807a4c180f070a98fdad67e402bb71ec326de500cb7c031c6eec615f68f10b833f20f67398a0b88d927a011f2574c726fd146e0bbf7e26dacd5499e0a04a01b72ff76a1d07aa73e91007bd9075cb72559e7fe5d54e14572ade20a0b57e8ffd5c589e7e02e2ebef41e0c600d15cfa7904899f26c92ee9f726b4e89da726140939a51f07d98671dcc62b9425e3dccda46e412b731c4d211818500c3fc35d2960437614f487c1f3a2d9caa017798d247634985162ba32ae7e97fbb13b5439661adcc91b09c17b6c86d8164734f31b86a2588de6403f651c11dafc4448c81f49ea4d6502d6d071bf8e5c3ccc2daabf199a96fd11989fbb31573cfd420527b2f4ae47c6161a5bd2e9e340bb4055d9a35dbbdee85eb9692fb484526674e60b1429b6544d636e2d07210dae7685e721ae26b84282183b16c50fd890ababdf35b971c8eedd44b5581e883d52e0debbb13d65d241f64c1fa5dce9c8b414a906fb1159c2e1b370934e4cc08d46764bd0acfc1c83c92905dc1065bd60c7ee07aa23542c519dcb1cfe9c0e7f9429e0f95e53e9ec267a3b179d666a8b0051ca74b225c587ce34abcb46a728939b1818055d13096b641d634d9076bd280ac8e33d33adcef24ce64d35d6978499ef441c01b070e91a7dde82f5d8ca65e099babc0fb3a22666cc2c49d208020ac35569814cce19f39b9cb1e250f24f2cee8afcff0aaaa718b027220552d5b836f70a11d23edc6894ee2c7d5c28a28084e67cd7ac9918d5068721b6ae68ec8425d531ec83f1dbd724818a37c5e569b94429b543bf13496150648a0ee4520a216086b32ac4b2fc4b6df7db8d9c7f634eaa16d7b4afedd999a7fb93060a0994fb294b6c271cbd5fb6c9ee518ddce313116db2f51770084c537907467b1ea60f60e3c5a9a94c2172be9fc959beb25a5a1085d31771b2df27054e168d5c5fb62e0e43a6e38a2342000f492f128522b62da64d7d433b443d63ad4387fc4edc181c66ad5502d173baca6e037021ba15b87ccbbcb5efd4a730b93beddb935ddc8e196625320137ffa3e1766d38d7230dac8f18f90ec00c2fade13424cb43388afaa2a4d86fcf45683e6c01c1798bc0870520c82964fb1d6ac41c5980e69c785d2c59600cd1beaf4651804e46df5f260ab6ef5c0916071f07874058f2a569a2088c62a6b1f86e475d5124b0cfbcee77b771d865c0b0045834cde6a797757d48213c360323c1733ce00a60dd13038ac046daa9159e649f529d60141b0626040885586af305716fdb0f58af96313f274bec9b124dd3c2eceacc57396ea58c03bcbe5afd61e3fecfc85d936f932e6e7d8c178132bfa81d980896cfce6ddf4db2ef6d13ec0bc825251a30b0ba83a655d734dedad392cfc8d09166cb130ccbbd1aa0de1be53c4d1160f4736225d5ce08d45fe6b2775f9811318d9fce8c390a8ed8b8c53f724b1f831d7404c22350e8b592e4f662d759e820e9664391b44776fab4ff3b9afb9585397f7383f717095966a40e2962c5dd80f75658d221d8ac2ce0aa2da21611638da269437711ee03102d490ebd4f07894592f869e0238cac043e5fdcd3f7d199a3e6010fa3981dd40ab945fda713343445bc9c1caed0f59f7a1e84351da8c32303c570d39d936c827bc2885967e8e0bbc20d974fff3273cf49e48a20bdf1add77a526dfa3cbdab0ac22171355ae219b91316eed34513331981a9898f22315f4774cf88f8ae2e530ff6d05b5d721469e94e989d984d4861d8afbc10bb8f6427c3001762bfafcb77fa70df8ec4d487e19f51d3bc287d1be4fef1136f7ce7be076d4230d69405d9c49a00d2ebc4a0ee2d9333f9b86ee2d7e16cf51ff00610f99dbaf10bd52f9f49313ed685787814ddda2d404e020ff96e055c4106d0805ffade88e6602b320a816614935939d467683a9b2fbaf28d20fa71779d0bae993b0a004d758583e89ae31afda85f47de29ddb4c67f274990fc3ad8a7a459ae450a9f8fbce19e03b9ce79891ac2e05407fb3c4139e4f814b725d7e193b53a746361d860940c69d693c139987006efbe29b2fea93975029e7fde29be323d8ba148655382d723ba1be67e96cd13eb204c3295d8ef78f846505757baf10c5f1b9529e68a6e7dbd56da651cc71d5979f43e1a6139f01113df169e0aaa6353b26386ac9fd050b45bfdbb04919842018651c00c187a07b58d382784ee8970771f8b9f1bf3a137f14bfb5a46e611cf493ee7df5a5809e6ec066599d38526ff8787afefaea151100013b430334798248b7806b0c0c94ca94be6b0de8fda836e2f1c47cc809908ff79efcca7d2fc24de1f8566d33bff8f6697b4c1ba348a6f481fce6c8f5cc5f566ebd0ba0fb079c961e848939fb8c905064163c66046e0324f6a07baff34a2ce677aad495a99105bc50eac3e6f288c3cb632f1b0b211ef18124b32d1a98a6ce8855aa93887015f8f5b5ab9c87a729e9251ad335b68302822707f959ac35d24734ede7e00c04ca4a5f03478bc7262789f4f4ea86dfd4718767bfa4479e0a00048eb3a887ff633beaf05a2f34cda00eb75a4f5a58dc57d961d1e07b43de8d2781fdf8cb51c447e99ac8517a0041021d19cc43e60ee0da13e4db7e66927315e36aeab8ece75cd9acef0aea2f5313a2fd2b806249f06d89bd0bfa2f23e529143b1f6d9db1684b0f127e9d2ecf4c34eefd6ec9757249107d30f50bccf7da1d0f48e2c75f6a1239bf8a196f7868c41daaea6c2fb1f33ac4ada5efc401b558f758dd877d6019736e0c99ecc3fba81e9a97eec649a33a902fd2ff4c98a2f673781379de7a6fe83f91dabb436283f6454fb67da66f2312011d0d35d12c96f053b04e3c465116639b8188e6d31c4f1b2aab2e4a23b09c0a9933163993add02c49490b4ad87d66c932d7e28a87f257e76be985256063092dc5110d784835d4462f1dff7ce8cbaf2fd698b992e98f86356c00137ca6287db56bb462aba48870b35b0696e6d4996c4aa49a97741ae6440154b498eaa4c579d6659a01c758290a2f1c9fd449b38aac7919d8b24eb2d10d6339f2d82d979b8831dcef9aea99a013533ee75157d1659d7829cf1dd666010f19c9bf743b93a2fd8f412e4abbc62824bbe1d3263231503683957e12fc26f2f4b0f49678baddf19207a019a4e18207f4d869b9227e1c39c947c418572c42434045fb385a7115a269e4c49dfe8f451ebc21417e0b6f3a4e9b0324702ba5cd8a3038118521adc9e488cd11ba5a6ee0a4a946c1c61f187ce361026917ddd8d889c6053b3ba4eede79fdd3eba806ef2ae4f066abfdfe819fd0dcbbcc60c4d5ac46c5f699e985fedd74092376def276c6f04ffb68903aee9c7448ddf91115cee721c776aed9d17a848d0426c8c225e5a001f4cc87587543ab87cca05abd8c2ab620cd7ace8c4c5900554b0c9e1e82bfe77b4dfc96bdf0bdbec90f863abe129111b74f0d15f37266e4afdcc4eb06a8136089b6632cae903ff6543bc11c1b371caab919724dbe0c46e2ea9014ed06e42d507c954ec81913726accce5b6627e6f6199f1132af4b936774594812058c5b722d70555d45f586b7a64327495a100ddc4f0bd2182064c75d9d9229b418db94159e2b8f187f14e0940f2d4bc8201b7e59838ad01b8bbd2fbb39d4ee196745f5c03d6b41f2bb05ba7259c87352faf692570fd6950ada44cc9f0f6090c9695ecf9f3aad46593646f90e26515d7600bd8f3829e81159a5b5f7d0f0f96fd1243628a901c9e7f10b10d421bc8c65a46c3974aa71e3b9a48ebc54a1ada1559182c55fb8f67397af11f8cbf6ab9f511594d56ef58206e17fa9670df8586f722b08e2f98b8a564116f323d1df75f42b81853aff2613e0930f2b31b54f3a9a951a08b13b41e6ab6fbb262ac198c8ff72d302650f54047103d2bfb05ee3a0d36d98664b1294899fcf662b787dbcb2a444f901036ec6c7e219565cdccc56483b10cd3771abf57d5b1eb7cfd2f7c3a81f8207c0b66f9ac17c0b1406c555c0cb98b90cb33d7060dc35bb0077b20ac4a5211709835f7a976fe559cbfac23e3026fe0bac503d8b66c592965f8eebebe2904598c5664ad64fbe4b574b2a9bd684086507bcd4e48d129d1c53770af926f1152c0772b4d29916a4cc7c5228326e26315a38c905070c32788bbdf4ac42b5a1d748f057281f82861cacc3094eedab4c04764e08d6274bcfdca83b8d3e7721576f1f10ca760fd0586bc776c4754d34bd8fe7eea0729bb18aee7678e06b0dae10e85ef3f37db45c9e0373ca8c64edb6839224264a8c42258908dcb306f8ee85bdb7c234afa72be88ca5ee63c37782ffc2a3cb814e8f00f3770b62d37f2ee5b206b5ef945ca118610a1a3e776618870828170075a5624a4d9863e8d9fa0102189c7916b58779160a6ae546e3982bc8296a5522026fcbb96dadf7174f633650f88e43cd26e17654088492c4c7dad169cbd94c238bb634a05c8ed1dd26844c80092d7b064b6721f798b784479904c272540aa8e76847a8539fce073f5f48109f5976f4ccc069755216879a0e9a3307e3a69f08818c8e3dbf538f7d5a7e39e7d61c79e8c8a76c20b9b29b5e3cec882cb040c96cd993cb7bd5e5e666dda0d2734eabc3b309cb9e998aa76a68c430e6b15cd2f249fbdc300316a04c61640dd4b6a28001d7e06fda83ab9a3eb284bd66436cb483c53b31e56f9326225702e8d6cbbdce8f633a461ffb0b4d5c04ab49d9d563bb910040050aaa9cd3fd1698b58568a47f4fdf8d12c595b96990a7b9cc88f41f7259716c8a617c22064866b38bb35b6d246ece260788243f6f4e37c27fe069e76d5eb209b1d5fbf8a4b02e63343f0a484d8b6e0c16baa511115774c21c6e64ab06d436faba3440429617bbec26ed0ff140d2f5bd2c81f5b648200b596fd7220c3ed153770ea6f9c633de98ed617089a9e9edce5dc46a04c7e82171740a671b26cb89ad6002f9d44838b43caf5628cbcd8c01fdb5af7f17f6eb6c353792e3dfc6c580ad4fe99d4be78cf8e8f84e1087ab127714e7a4258751c9a440c20782d816218c338f02bdc7fa4028a7375dc8c9dfb856e1143680e9283ac8a70039bb6c5297a63a0226cdc2f8e3119721ccfc87cdeb80c741ce08863faa574cd1cc0e58f63cd371ab42f762f1193339c8dfdfe3fb39b71e5355b2aee3fec7cd0744a9030cb228ccfb1024d6d04c82d5e3009a7d16226bd94282ab7086adacb3054adb0d6147fe592f1147d19144f533c55e4b83ad3995b122ecbaa572fa4455cb4a8661eaf4047ab46e3e7bd03f1f898734853b2deada13f58be48a40a7e0960031ed18a08e0d26f22b4277748aae276954ca234c496cfea3ae8b7577865011da5ed8aadb31d702271ca466a9fb6499fb21f4dbb15d06bd0d0c2d5f5dea061ed5a26c7f98f2f583f39ce5d0d27ec23ebfc9d2bcf8d82c4a04cc29a770b9fd5a8b42c9a0a3a12aacc1bfd803efe17aa1041ef1e9de1b57ef18a3d8ae5a4cb536ebcf99831ad82cdd696177b778391723976bd19f5278f7e4047d4877cbf56bccd4dd529a0c87fff570d678df96fec47974a565bd0884c8aa71495e7780cdfd79237787261972af29af31236ebb1cfe403d005d5fc628d28034f9cd6f471d4acf29071ebcbbeb0b0cc7e24b784b8138d544ebc98b3c5500c52de2753122c85967d492babb2b7c4c98ab475bb3644cf01f7bdf1c0f8f8b905ab2c1a470879de524bc616928cad92ed1b83ca456b61a30904b2e524e4c62e7499d98afa1ef588a84629370052fab5cf524c090179d6c60fe836f6380884deaad58fb8df0738bef419d428e8b878a1f6e9e5cc5cf57c293cc2ed6e9c479e62f1cffd9adb18a76213a65defbe9e7289f073ac8923428401acd505575dce0cf3569897184000080967adb176b672a0e6fff6e2630eeac5e228fa90062c0c24507b548d9d357da5a10e6a2c120535e3cdccdff3268ecd98a74340e29b896c51fad2672f2b6dd2de27fc7d9b6a0e69e6f10954a32d96acfe4ec16cb3a1ad3a12547a304f2112ff02cfbfb136c6b40c55f7ecce2b5d920b91701eeadf0d113a4e8eddfedce423ab9e82570030f0792a2fdefee17dca90b9181be468b3641ec71bb75bfedca1703909aa675d34282748406eb00fe15e2c116cf14cae2898f46298071ee56b00a48586eb48f5ef202969d15fbc39fd4c8b5b7301e32d90ff525e2ed074e07da5b0fdfb22cc9ce302673c479f8573f6e944b40b1c022b91fb0dc9b775e200eb593502f83e299b05d44dbdd4b87a446cbb14ffa7456f87cdf3f5fe412d34fb4291f5508b4e168955296ad1bfd7a6b1b8a8454ff66d0b3ff253f7a486d442f31e874a033e923e20b596d81b6116f5c293a985daaa47f96c6aa1663a3058a7162a3f02036f8c10d57f55a4b114a900380f974fb120172147070029f9dc378e9e8ead22daf2c4b910ee5692f783b9ce445ab84c901239ed72691ea0e113d63f673736b3c119b58d9083649027c881831d0ef142989ed8ff6566d1d444ec635777fe5c5e3750ac9887a1f1f6dafb843a4fefa4c07e8c208f043d06fd1cec9e24f45120f24f1bd12bdbd31a38024df0731a1d6ec747a1b5cc16645cae425f44afd53448e80a9c1d3dbc51a858b6f8b77dd4d0f7f8f310f844b707f1691373d2d298c650a5de38753531aa7e617d85e171886f9d76d650c189a0e89792d7f913863bfda89b77686b5849295058b8e68c565c0256cf87b0d8599a37918bb7d2f5a46904ab97520df31163de1c646da3dbfd834791a6d434b18812f06dc93a4323be4206f42f3587659d7817ffdb501e4073eeac89ee78f7d620e19a4e665f3f7f9a81343c18356c78d3747fa8f9875c46f3b0336e53cd3617c8c784687f0a7ff48b38e60cf08dfc8cf3f72a94f13217e6f1a9304350b0670626797c598a1489191f1ecac9bf702f0489e561449df5a10de87b5edf1e0e0f644cc8ae71dee9f6f0746a4e889c12f012d7a3d7d5f27ffb7228362b901e60de0f73ce123ed4a961118942182bb10b380aac26f21a32f78168a1fbca284cf6d3c416e9c763a23d23983b8c3cb8235c5d19829e5b117ece9f3f4a4de8fc5c706aeb366582d57f8bee2bd45c453e7c34a1369352280965cdb7abdacfa2f81f41184bb849bcefd856d46ae8f0d28e5cdb7a15f79fb0fc01904df02449fe554d055c7faf6ad711901d71bd8dc429fbf62fb5dbc1d35384f107aa29c133759b334622c22149ba450ca68151a6e0de23455ef375b31191459718bbfc709f8b900d0c2d3cc838b25eead488a3a740ab9f086d68167cb94d247b50107f83244ef4467c9024849b19b1ed10a50e513dc5acf10b969439a9d3b9a1a777b73347bf39497a14863814a33367a214a5438b83d72b708cc8860869686460e18284c3d7646ce310d956b26f005bb9a2bf63afd8b0a2514ec854012bb4d5f4e7166de75ce30984961de774cfe79150cf885ed3283a74483d92a660133a668d442c34d0d2abe12d72e0b01629f99ed38a0595ba78667a4bdeb151f1fa09d66698e5492d08343c16b13f66b6ce87e3489a4157d7fa3edd11bfd01a7b02400132e1874d876a1405aa3edb1690072d67d80e955dda89c550a5b4a2539f3277c98e303b718af9f3456e0c4d65bc1fb729529c45b8b5f57c32ce9ef7aad3e1f47998b0c97850813ae5894695c7c8c5637253072c8fb83dd7f536cfd27649ea7e83c139946655fb355ff613305bfcd059f5177d57f30b2dfe671770be78ef759db677459fb13292968d6ee5a492d81642542b0a6323e33371086be5c5496e71d4d30f34ae8959a164660299e30c953da660f76148ebb1d18261140b2137ba003845c85582d5981016056a1133f096f074f53d4c53c0f9098d07dcae8cdfdbe2ca4eb6ef0ffa2c224953c07bde4ce10463e14dd71e4edacdb72053f7b38df4b112aefece0f5575809c719fb4d9ee4d5cf1c703571cb105132667474be87ec23458cd903d9375cf8a1c4f444bf19bb413a77bd3aa71cb798c9ec21d4d907bf3c6b44316452c8070614448deb44fd0d4e385fdd776a573fe3f445499328dea68f027686cbc64837b8f5f49911fbcf3cc033959ade5229093685a2f3a7531e25385248a108fe886fd327abb883469b07e2a686de18628ab17fb2301b7239d50a28c99011c5d9e23cd90054d9d28c62ecd50db6ffb1bb6bd06f0279f31d855ac4d51d76be43e5f7055cbded47b40d35b011d8e825bc0554676753169eaa15ce2279043f0a108f78ea8d92443418ac6cabbc9e10987d2fffe3dd8fd60387bbd5e41f31f1bbc99d8f6e0efc07db9a4a58ab91c5eb2a7cf6e615cfe7921ae44cd0640e54d8187b907298b4e52a21ad4f22e5089ebc48cbe88a03b13bf110d7a787bf830e837aef71977a4b718e63eb6b57c6a9ce7ec36fb6fb34e5257635afccada29292ffeda72f6d8e5d1dba6bbf2a1769f0b621bf1d0f59bb5c353ca255e6426434d270e538ddb6d35d90373b844a37bca1d8fd750433c10f225b6632209b4ee5e3831236ab04cfa7c8012a979e3d2af629b1dd475eb73efe139bca26c35299efc2653d211eea6d2c96d769be89f23cc9466fb263e4f2d53ccccb1f35542de873546705d61721e53ec44093e7bd41cd28f1969bc943d0c543d58ae8cee763dbbf4852dccff7cb4609396e08d3c21469f79cd0f257ecb3b0ed2a2df18add3c4d5f66355f7be36d7974e897670badd8cefd5b16a23dfa13b592c47b3203f75ceca8f9f00310f24440d91abba2a1d4a35a26a262ff777354c6cb57ece62d5d1295a893e8c3df76695bb24d71d9556892e6ba9448f58e4c131dd66bcded3a0f0c7573b0a461917a412fa0397eb7e44316134c0b9c3216ad405cc8d89127d089f1c8bb4b29f896e7ac1322e4a18af466f8fbb32c6b7d4e87565d89ad6ab82595ac6ce0939020aa8ce64e47a116c3f8c4fd355f529b53c79dcd3b99ae83835cc8d300374b538d9d0eeb73b2cf8670be39709bd8cd7c3e8591ae30250e3431c19301f68902e80d50a0ba66edc831dabaae3ebfaf65354e00cb92c8ff8f40097afe0525562de5f6acd3fc08afd02fadf9645aadfc130585ffabbd1c8a4fcbd42fbec18e71ac5dab9e5dc8334bff805355ae0d784abf3c2ae7649f9cf93c43f92715dff9bce9fe04b8cc3ec464239b71ff4acd74f9670a27408052e7c5760df77a9ef9a023fa3c3c6af8f422e4b9e28c16f88bdea1da08a6b61e7ad232ad3a34beb0da783e4a7b3751f31197f3cbecde4739211648e272f4c5a4282029bf74f5bdd658078b1e0cb86d39c620ab5d57bd71ff45b321d6cd3f55dcd0ad71d828e76e88b130d57ff176a25b515d417a4ef3827d0db8542ffb4f6f122a6826335e6d1f478081980ed6fac115ea9d8c4552f360471ade41dcf1efee447502f616a2f9d69997d9a97799d59ae5bea16b2030553bc0d656b079e567757a88181fabc0feef2f3b948ad87a33717965f722a95c6f6c9cba7974d7023a4711209d79658f483cddab0eed1be14cf553132edefadd865a5faa984faf3f782c6b99f9e1666a1ff6acc977f24a082f1e36f2c7cda0cc6e01fda673e92d9121db2f59ff221a54bf23f5c2e57384584e772fd7693952ad27ab28ae06ca222d69875e89ec845692841dbec889280bd433ff5cf6d3de4bc69106649d8f973ed07393b5bc102c57cc78eba36ae607efde7c798764283ae4d111d668fbe7b55f5414b95c23fce7c517a954b7abd213246bfd92cae38a5e43791600c90e9ad726caf5a034eae2d454be832a6bfef4fdfcd709684f629e0f61596249801eab0e951d5e7886b00615a4f5a55abb6f0f7886485838710d9bc01fbd57b11d0b89fdf6270d51dcfbd7ec429e454f7f70d010418e72c3230174a99570cf610e1fbbffba95efd0f49f931a7007694e197999b00284bd81f7dc7db41a20b9603a2ab3427ab2c3822232c06c42f94b2190a21c779eb637bab514629beaa872364e810bc32a7744d7e4f23694b76e6756118692a277c39c549f2f5a62a9f7bf2594e920434912f77c1dd45732e42341a49fc661c34435d34617b7d7116ea0c87343e4a6b12bd9e4061237ee445b296873a278b2f50161a88beced89879d3c1c8e495628bd6469f2564480f139ec8e6e344838cdca4ca2f3d653a054d9fa9aad50eea54fd50f865b4bae794678484a073860261ae494b5d144695edf554f88197be11562660f25b9a5b3f582041a64534d7be41379f55e52930343be8d8931205a7263d401c269b942007b888fbf4f22de063b6bf941549f93067121cb7ba7612103af7c70dbc3d200d78d02bd7b1bc35111668425bec3e9449395e8209ad95abce220ac6326859a6815e0ad354eabaedfcecb6f2a7fba63397474e40246281a1d00040c87d501acd273eac04852692229a46a3e0975cf219b1410e64a2551c6fc75cccccf06d7176e3f868b605e2536c9c962e0e376e5f91566a3f3641e8d8290b8dbec5416f3bc6950127ee9784f3584a9726129a415a3b331c3b21b9e7f544b332be165130f1edc3fcffc4e9a273dadecd9aab1cb1583da1af0bb15ca77aba6e16a971251310b95b7a015730c7eecfb87215315453fcabe8f6a58a7a0f649acfc449cd476081f2bfd0aa3639863e7d196eb003391688a6ca753292045befafee949496b45059677a6a221c450cca852c9a053a6208a2c6b3256065e9e264583fed02e14d99b4a2b3a365944534a6d59a51e6d3cc343e49ab146ba1f593c6c6652995c020af441f40f484841719555cbbcc50aecb9251de970a54340045218714aed14d585adac8ba83a1d3150c2e788a580d887a4ee33e844e17da42cc9866a45b31323741cc425ecafde9a2574670b015d1ca71b487a276e031fefbe78212331e284da460d448454302defa2d794593c999a067a87ca1d008c9d1549f3d83d2e9e4939ee1e3afa93d9b2c3cb1303022afe65af74594938293d39530f8e6b2f4ccc661cb1b1def9fc76c5f1126055edba042a250495f901e9015f8ae03baecf25366dd723ccf9e09ccc35d9639a8f85f3b0fe88ade2057dee58b4de1b1b28292e7b7b63c49a0c55eb7e1ea98ffea27cc5cb5b782b974158b334189e12826e3f214a3c35e5cf19ab1af6b0261cf8cc5a6de08a15e7ddbedd7776af681c6389c1ea596de14e3c9a22b3cd927d813391431c7315b0fc1ebf51066544321e8a1f4caf6dbbaf9275d97ac47c9c6a0d46dade376b4a1344a0a28183af540510b504a67ff6b85d76128bd8c70ea5d942edde53be213a51de8094825a0c610c6eaca4b761a13e2af336981d27575228e925a0987951a4e69741de58b3839dd0aa577503ba27840e942bca0d455aa945deb3e9ca09426faaf933ebf93ab8f9a933a8303a569f78e06a5ce26b9a1b4f63b9ba78252172fccf303ddf7471b94ba8809a5d1989f504aaf1421517ab51f0d4ab79dfbda8402417d5b28bd89418fe8bf8b10750d9a5e346204caf3678fe6f574263ecab5726597565cf6e46fa0f17d8160dd6c2b03b86cb7ed1801a74348514f67d45ed70241fec93fd13ca7cffda28b60011b174019166abb0ed535d9c8d7e2324dd2abc4bbdf98f50cb84e5cba072185ce6fc2c13f9415e73a783f908cb14bca4f145cff21ab365827dcc46b60a38f35ca9b64466c4e2a87f01e2149a4c7b527cbec03b6421926fa3de0d87e2ae60869648f7f5714188715e2a69c41bc4db853c141d707247d598bc7fede0b261c7e7d476f08816d0516e157ffaaa011450dd3db00090b0ef4498f1b3423b5ceb43f7681a6203058d0db5f80e4b2da095e8864d7717fa2911c58a768046e140630ede4383a6fb15d92047f0a424e76009a3a5cf51d17de220c6ab5c366478fb4265889b173d60b2f2d05ba027db5fd732f53615017b1bc52cdad3c419f844b09604eea56263061a057dc28f72a2acaab06eb4a17e93beeba62c03bdef4b9057a5bc2887fbe589999d15e5e3d50e7d01b7214a580bbc920bfa9a8d0f35dd1687a9decb5398c1c22d43d0a3ddfa37fff2c35a315ff9de5e63def3afe0027a886d4b3aed65705504cfcd5962a011821ba13bdd3095022d2b5015cdc557a051c48460c5c822de5adbaab18c72883cf4cd849508af184c4c88f51186a4eb40ba3d17d765038a35401ac208efcc311784ce15673759fb2af58c0cad8e77d809fb8baf0135ffe453227b7fac54f6278a6e421c96a89aae242b921430f60948e95f5d66b55b8658218cb230ec04e1d6197f81a8e8217cf278a6e54cc1cfd6ffd84318d44b4f7da9f699b584c31071c825e867f5eaa2f7c74dce5e755660f253251160f162835812785f9ea9734460f53612949139f5b95bfa52889f3b182027916df0bb27e008b925f8442196588d23744d1e8c7f74c2622bc66a33c3139c86fc07d3b88119546267b8033cbb31f880bc5f66c010d0eb15fcdc15872dedf36b38da0129d3596e22a5588c8888a32119eff9058ac056873be3834f0123cf1323be84822730b1eb3bd62ed76b6f7b276769759fadb1f5a6d03b8a7d787b4addf908a2de36244cb32f076148f28e760e901b121f5a7d84dc265e8735babd90d6be43a781e7271135785039f085f0188f76512d1ebd8d81a31375d80c565e36ec35ae832dd990c57b7a75cf3fec300c1c277d5351956b6e9f17a8db50e125684257157d452bab2aff23ae48a762db4d9e4a04b1b41d239afa11e7a53d6d58f48eacc3fa1c8624a4bc31373d3f005489c2d16e1becb2e667a4a68273aba9b4fd07b5ea6ccae589169dd6f80bae73b74269a48acfec2a4f6fa2015a62b68283fd13bbba621cf4447b9c8070da7e803b2be20e5ad3612d0e2dd80ef268697b47c3cda7267a05f8d4611f7659851e964e864395e60700fdb32340774c7ed9831c690d5ea0799f6cd91226d6f4c49f567c86d71cea2f00a265d3a49395834b369fee070d83c823e41dafa1daf9bbf239615021795a9b059f5262e9cec20a97ee3715c5f80a41411b3fa3356bf6a2fe23948e5d2f959b20a8f28b2f2852cfb36d489b71b96d517b939db93300dcce843e8987d613cccb6f50a7fcc135a349f98b3c8bb978efabe2992c3f1f9802fa87ae159ade25ef25ab8697b2ebd2d6db07b3df12b5e2f898f868d50fb565894ec1e8c8cd79145cde84591735ab345dc93b402374b3dc5fed7ab0a922fd445495f922b52eea5fe8a7bb56f22efa31d54e53f52767137ca5036add53e44152eae84cc26cd5c1d366845ec0d7a093f9356c6c6aa976e6103ad9cb2aa2b05d1c4965f8ed437734f0055d82e8193b170d1c42caa49fcc5be2b1c4bb65e84a4ad17a0e44e196ef3cfd0b0ed9647885b7528c1761d20b4c5f2d303727f7bf2fbda26c8f4a274e7afd329ea4e29129d0800cfda4a5d927a77f3c8f8cf25ba7bdd9d8838f5f3721b3ca8e78a1f17a259e296a12a30e8b4a17784dbadf7008a8d103965cfa9c9c71300a5b8043d15234cf28f140c434ede7e5f323bffb3232a4dd70b6fe57fa4a625cbeb37a2e1c06e4e8be3a99ba4c08a3c40d04bd0e6de29460f4ca2501d59486952a07a390049e8ec5543674ebe615984d7084e82ef6c5185b7676487d364937fe699c3a8bd8adfb0bd7c045b6bd0a6e90193084e6f2c9e88527b102acc2d68640a2c07119839280e1a7ef90ea65ac3ac28232bcb2ff2e9a1564cb02d41e79a49ad72417ce55c45e73c92ec612f9bf7d102e2db6b6f747df89e693afdf47f79cee0085bdac4d1f87dc60c9326ab5aa444eb719d2d26e688fcce8ea76a6fb66caeb821adc569829d8d57cf7a022d11331cb3ec641815ecc2b9b3a9cb35cb5a59d5857994a5972c84589ef497845d57cc694614f10fcb12a0453028e00915f3617005aaddd5a70a02f11408c60b7aeddff3422d982fc4ff2d0a85b202d6e117631a861debab70c4baaa20303d0c5bb7ddfd92a204c611ac868a9eb020aaa77ae2fb4d80049fd9cf69197c08a1430b476c7ed5134d09c8648513e60aff3709d86c4d567e191061fa1a6e09a05192ed9ec4390ebf5a938e859aa1ff8be1081027f86d8ad14c2cb2b14d482cfafda8a22ada9a006908ae7e554d4e9af077c8cc4101fbf78f6c534d29ddead4e48c00b2ffb0236f29f762cff5c6c82bf25fbabad3424ac0cf7c62da15dd3e1bc6a0ea1a42b39f13f6395786443834011aaac929619b12abbce53f03e25bae4695bd02f30f84e53f1bbbfed9c97cc02d5ba59ddf771cb3ec0411d9d0644c4d7ad6b67fb31c9a230d123c3c4eeabe400193f0aecd3d13a2e0e0a8e6acf2433f71707d7c861f1f9837651f9fb6e1e406c9a80e118ead6a149e7c2f1ce581909247ff4f1ff44d1e85307bc02eba7374c1e90ea1b19f846cc932e1042fa93e4b476157558d5b372449ff32c96649db3dd418b5349cb8220fb7429c2fc6662674f40fa0b98c768a17a2875ee611cea8d80fff856d00da22f2bfe57a5916d2aa36e5d62c0a2a96c5aaf7aab3fc0f036e1c60cf39b6591e65445a13c422247e30eb2078d35acf08f5f9cfaa06804af5376d83ce96a4daeb2190fbadc89f330c16058612ee88fd2974823a7440b676fdad24ae7d03fd129f8e0407217a12918f4fa1d7236d89ab99d1c04548074f03335c9b8719119919e4b72d383d2216458d588337ca12e538c434da7b01dcf010f3449e5744691f5b225ced1983672746e8eb50bbff7923e5fdab74a2cd3d1305be28e288e02db3e74043d3be0b9fa2660c5bc75e4258fcabd7cabdc0ebbe543a6a83c06962535370294a5814ee390390055ad72484e9ec22623eaab29a94a8acc645ebd35b807a021114d5f447a72a7be4e42a6a872aeddd341e09075613392c9b1f412688616bf49022c612757570fbdc8353ba8645427a4f34eb36443972b74d6d4db455653d6c3cb5524eed94c57abf86ddc1b661002326d13b7f394aa3eb492c91634055be3de9790ffc4296e1fbfcf712ee151ee81abe18e32efa079b4d2499056a64c778ea113dcd40933b1dc4cfd3e0b975900eb008b346dae2d5769db7a6c5d39429391d16855d20e6ce5c08e0e610d46026084395921cd0cc11ddae66386a4f14342a3d4d8edcda428d85488ed802609d8dce8e4f1e55b6cfd7d85de49fcd7e0b44bc287d36850aadac5fe618210314be2de7b5d670796b0545c0d6d20d197d3a786ca5b5ccac25b528af2f701045126eeac0def29df84602efa09eb09796817c0889390d6b430a6da1276826b442ff6d19ed879a72f94ae80e45baf5d51d553684b8a33a0918b9862e6c434f409d087da2a24d201d6dc8dfbd37012d0969248c7ec20b69424c6af849e4bdc4516f43d9b59449a83ba13a135fa81bb26c47d19a42703a8e27de91e856a29b127e3f21fa7721646d192a8464b99b27e88be470762001a3bb10f6ed284d68a81f820c07a3a6d09ced03126e25ba119549a8d4463a2b2736894563727bd7ed515bc7e46f818f3e6f10f93cbd658423d4cfb55b42da09a59b88316de809a75f89ef26f82eba745b4369481bb7aac82d603147b8aa93389a6b88823664895127105d249735083079e7598bc30773e0c75aac99edfe77d763e9317f70985ac81e6866ab292cac59b41611cdd66ede225ac17821da36d79c02873c82284fc10d8b035e452f192c933ceb59894ab72ec93286269651c6d09d795245b7d770f4d86038b5907b39added33718498a5c39802dbc6e7c95e7996d76633bc02bde5c74935830debe5a31ebb34c8dbb1a8c76434c377c27ba99f0ae84de4d68781f529bab2bc55019aea612da3be1853d21e36a191e86d4e234560a7da64bf4861072b9fc791cc2d6501499d56c92b85f823e127b275adf84a2f48672b77524f1c2db109646a5095ca81f3ac379e34417f784e06a702891f17d489b53516466fb260918f584e0da389ce886843713de9298fb098dee426a7530540895d5b279a28bfa42c5e940ef2094ada51499dda6610206765a06013d1f054daee5a485a8ac69e833e67468d4fde6170712ee16b5bdd0936d5f09372213b0b80bfceba9418783d15e084cb78cf0340d6567169cd4eb6ceb1cf7059a1bdca21de8779e36de178c1daf8951fa4ecbba5d5def84d054cbd037c4e2569a407fc2eb4d68a81b92b1ada68945e90f0547cbe0286456a7a142c82ccd0609ed9fe8c29e905ce74108bbab54225d897449a83ba1cec4eb4d308a6e88b35b864d21399d0724bc9df866825b12de4de84d24d26e8948f2a352a4befc3e8e09cc3f78a23af0258c2ba1f112308e19faa3b93f31dd04f412e927a22551e92634a209e19483a16fe82d2d4385d064b92e6c0cc9ddf24822c3eb92a9773ffcad039e8e4697113210b8a3a403fcffffffffffffff3fa20ab4655f7c6548624a324580e8487891a800ffda52ca94924c0cb5ab42600f7d447c14c41224112211c799280d8b300f6d329c109e7a6559140dc926a5f73dd4d47bacb22c790634073bfd9a7ab543335cab5a3376ba0ce2aecab29c32a4eb5435a8969ace9041cd902e63ad67f2ff5496c5c6b0d2fdbc2a4da6ce26ae2c8b11c39f4964ac124a5b5361380a3d2a1e55b3bad3a92c4b020326e7eec42899856a526559d017927a359c944a557bd40be7e99539a9f4e9b7585996ec027283b690bfa9a58d5cb05ee4b90a613742670bab36d1171e1ba4f8b4e04aa536be8891a39f555916ab3069b2240b893e2d747efaa843d695654961e26b4992263dc0c242f693501ff6a449a9245748075326f4b97ff0e4120f8c61855b997ed25a3d75744d65598e2c49d2a4075538af741d7392525c33ab2ccb92244d7a4005b48edfac37a15fa9acb22c4904634c0135bddfe41a9fe2c7cab22409c11852f8fed757cbe8d9fd5912108c110535f44cea9edc18762f81021a75d461ea7fa527e913542f54adca0d3a4a7d72029eb1395d673f65ba274836651712248b633461f1af4c86d6a9953bc7929366823762b38c4a5defabbab22ceba4cd184b30af921b64dfe896e22ae16426a634acf6976d2acb8292843bc888568fbb614452618284b32c4f13a2fe2a26ad2c8ba7ccc143c638c2b5b5f3e2a373922a569625e544c91846e054a6acdfcf3422cb518c63e6951f737e46e5756559504e8891d89b0d7d3a8f4c2d253b0c5dbd5b8dce3a193aaf2ccb098a0381c91161a032e6365d42b3c5c72bcbe2030f062fb457abd6b94178cc1bc060344eafd0cf29e5f44c7e81b85bcd79234c374bdff0453a2f9e5a9c1ce91e120fece805cacf3f649a18ddd95794bc71e476f0e2cc5a33c7f88ddb325e59962572f82eaed3a694922bb5afce2169924417afd4e93ca554bacca46b6d0876e482fb0c2553c9ea0d39e3e2541f5dba3c88cf325559967592e416e9cc42647a54a736876cc1a7970ea1e58996aa5596e50747562d322d653fa88c428d075596859b30a14542ea643a43839e86a44992592447bb0e5aabe7d9a0555996b5f6033b64e1c98ec1bfec3ec5e7539605c9fe60c88e582473aae879136d737965598a9cb10316be9ae6b82a3f7f6779a5d246528e2c6963c72b16594ab974ff7e73bdb22cae308d56d9597df0cd41ad2c4b1c4c964506cb52831dad709578dd5a13f1f3132b38ef78329b5895c934074a8a923452946caf1b4bb68d1dab50865adda4b13ca70ca9c2ac647b274dfbd5eca92c0b933588a078ca1afe068ab3b12cfe068ac760472a94693a6693b959ce7aa858fba638196b569e7a2b45969ca0a0d13b4e71b7506a5eb374cb124d611ea154c82c9d71f253599652286befb1365ea73b9d146a39df79199598e8acb22c4b960d7794364ea0821da338c36dd6723da243efa2d03c6b9d53afdc1cb3a8b22c2972b8926529827292b2660c7163c80a966c1222293b42d1c71bff11fd7f7383e2f9d6cdf2bff362c3a4481124ab04c505cb95c4e1821db1d8f189b472d94af89beeb7dc13eff6fbf6c7a0d4a9adc204a5493b8a9123cb52c4df586914f97516b831640543529ab0b12c280e07ca26798f81af9316a8b12cbe4e942ccbb28ca1841d9d400bcd2f42ba9dbe7938814ea22d94d672d9b3d9c4faa48cf391aea2b3aa89d4a509a97ef3556ccc841b4bae97d6d275898a093f84fd0869e71fa6be044aee3cebce184a849025cc56f3fb597d4be3ad462514f24cd4997cf9cf943087ef721be549b9a627a194326799cd23e75b92849b858c1ef447f1aa4591f054afacf51cde564b489c65f5ab342d3c8a898f48352a5321940615ad39227deb9bbce4bab794a92ccb04763422d7e8b2f3d9ac361905c70e4624e744caadf98d9d93921d8bd0cf75de7f65f75975cb82e26bbd623b149108f7a4681935baca4347c45998d430cd98958bea1048b54a95d23f27d3d3864897c8776821f4cf290ba1780c254a567d0e110991f2b87a5af3cf9cd214e91d83589f6cadd7e9fc1bd4253b04b1cf6a179ac7f56466c9b12310bc3855132db4acef5510760022914ddb2df3a7d48e9685063bfe90c7f3283ba758dd713f3ce7fabafd3d33aadc07a37c77e61ccd1bcdf221579fa5ce398d12a6dfc32d57ddebd416a2b7d383c1b4b8b797f15ebf7948d6ef869df610ca3495655916266e2c0bda8187b46b93502bb675adce77dc21f33eddffaa225eb36f9cb0e08d1324bcc30ecaac329588307921c345968597910a93adf876fb0a54b0a30e688998d52e84c79a9f0e07d161a30bffd2c9f539a857d7c9dc1b53c8a8252748fc074a7c59901c49693264871ce2b0fcd9a8fdce436bb1e1e02b1d2ea34bd1e0a27a83dfed214ab68658fddd8012b2e5c7bd173b4aa80de82cdf648c5e62fd4e6ce8930ba1a3a7135a3a3e3784b0630daadbcd512655aadd5e0d26a135b78dded2bdfb1176a4a1d3a5a65bc8931f19a161d9aa5a53ee8ad2794dc28e33a852b35666fa4f752d25ec300372df319fe854ba45b7c3083bcaa012a25f756ab6d5a33a3748b0830c47adebe9cd831a51db183c75fb3aefcbb8ddb718fc1f99ca56fe4ea370ed0843a32a474fcb93ce1f3ec10e309c638e2e7acd837fb9bde30b87a64da99a8412aaf2424a9d169e41b46c9aad0bdc0af52fd3ab12e2b3d6d8c1854be9dc39469dc3b1630b7f6aedd8e1d3674dd8831d5ad88508dbd21895bcd8506347164cab4cc9d1a576b3d45496650912946529e24878d7492b496309129432986c194478b0030b9614a73307159ac1dfcab20c61088ed284c909920e42109665598acc80068e7272c6b2a0f892258b12c7b2a09c3411df7105749a9d149dd59fd65f65598c345992d2c405cba23bac90e97319c2e4e831bd0f61471556326b16f120eeef3d15ce6ea673f46b554abb95931425464e52941c19d24692131414b42f91c1b210d9a1841d5360c506553dade4dfaf83169431823670c004c992244768b0430ae760af64307ba5529951e8b5d0e26414cd54f9ec80023209bdf9157aa528d38e2728fb37e749ac4e37fd0e27a83d2797abab336b0f2b4be66863598c18b9c18e26ac25630bd5babbbb7e6559bc094af72e4b92130fec60025236cb67eeedbbd35bb0630927a9b39c262983ba4715d9a184d43b85ccdd49774a13754712d232ff9ba698c77e3cb1b103098ddf08d77aab4bca98cab2a0ee38823ae7e7adb60efdd46f8711188f1dbd49889ffa4c6559e27025cb82e295465997014a8a0c960515e1281af3779041a6485365594840043fd84833f9ac5572ac2c4b0986c09cdcf769efa431b8444e0869ccf27973d8d5ecda8a112647964505a131cdf17257eb9c9359599665594a3c8957962cca1bcb0284942bcf5274882ab90f4a0a132236c7e253bd1eed5ff58d427272c244508e346c88dedfd36db23d47b2a449ca09e260ed750c72a4ca533a55599663e48d26eceb079f0eea52e3a5f96e5a5996214dd42ba38b7cc62874b92acb72464a423cd9e8ccec5362aa2c0b93c3c460af4d990c3e42d9898296fd7a4f37bebdd67de0aade0919ee5564762d59cb868f317f46a73155427092870d52add6581f6d240225aa9794a5b3a6b749616559902cca1b9ea2e48891b54b328919737654c9ce27d75696259d35319292e43f8064f1fd41e9b0236e5c5c5996931425478ca03631e24c507689c16192bbb144bddebe862acbb2460f945284e75f7bfddc1847b2a4491bea88e11d3a679d8474257395655948fcc82f8b0c96caa9933cb95e2fa25255599610bca128319a5a1e95da382bcb62c61b47bd48dded4c55b562c6da17c8c0955196d232b7d54259dea7d6ab4fb64ca52733d0685b4bba14eae454d7ca306a7d3f865dad36cb28da5c8950fe4aebbc3ab5b22c4c940789f61cb3bcccf79b5195655966e4dc51df062d1f524ca6b203e59dbd0aa5ec5e35ac2c4b0774b0585919b3bb529efce4609772f2e5328c76595a92e4480b70a02c9d2fe5f733773437b04b939edfb0d12fd50091b3816fe65d6e369bb40ccfb148963039d24794ec0b96e5e4951c89410d6ef5f94f3c0b77cd9c37941c01010d8e696587ed6b3d5267217043a933eacd7452ed06991a3370b35ce91ed7d467bdcb820489771a6db82d6594c146884cea5696651d31e24be6485996227328316359e650b226835578aa6f6a19569e5659960bc4601dfb3c75504a8b4cf34e13244b921c21b22c499a2849010cfef174a63ee733664ea5c81b4dd8d12822c75a83c8b2f81b4a1685880a5ed006ffa03a2eb54ca5b42371264690ec0fdcc8b2285117605f6a6fc546c728d395652952a4486a4204c553d62072c6b22c3fb2e4a49785098aa72cd9b5cb82e229474e5a807d90513d8e7ce6f22c257e02366eb9dd59dcb490da350b525a49e9e95bcd7a9d6c059e4cf95164beef3d57a900dd1a7d195ff9a88c5ac3ec59b7b990d264cb8e09d438e6addc2cf4c6fc845270f628736ecde4b1a137a2c49118410305db6ef8d86d2d6e44278d45869aac86d68e6f68d8fe42a3d46b426cb6cab2a41c79232729464870863963e2b349a53734e704a7f07c13d1d8f7d8a92c4b0aca092f05cc40cb49e149d3e9ca70cf04e731f972b47a65d2572c015aa9cb7f9616d94dfa411147e620fbdd3688156665598ca43459b22c45529ab0f14dbe092fcb372983c996610312f063fab54ebae9a4f2539ab0b12c294d92182142c45073edadffa351ec119cebe2af4677e72cb32acb1282a54f9d1b52e9d7c163120814fea5336ffc164fa35eeb04d3995b5374cebf1ffaaf2ccb3a51745225e39409cd1e957aad93545f3f9352a6373b655026f2d47e4bd71c4b88644992234696a36ce5a0729488ed187ff38a091dbde665f0cf3a9d187de5cefcd6eea694c9e8a79e24394159a2a67dfcd68b0bf1f9aeb22c4b4e50d610b34eaa5b6f8e27a3369d8a919394108820719e4cdb94adf2792bcbe24a4e90b4916501410850dd0fe72e62ab6faa2c4b916541c206086e1d4ff5b4385bd5c2cab2185916ffc149926569ff41912188f2ef4ce24b579b5c3962e403494e4e8cbc8162c408100f18b684a81d33994a5d956531821d50c698936e2972736455391ce06590b1213626f9722bcb12c709ca1b21d800f6b7c164c68d52abaf2c0b4a0a130db0fab4b61b7955960c20a75d68cff15eca56aa2ccb52b246fc0728be2c2dc040bb9f36ba5229b5f2ad2c4b8549932546504edec8b2143163481c1b836531c10592f9758c4ac71cb44e4f655950b6d24696a588a71c41a1c1b2a424f932986c19342823a549120d10198105ece4aaf149cd8a5a5d65598aa4261a206244c911234b4e50d6b2a0a42c3115384bdfa6dcfc5aceef95654941599665214119cae0d9e683ee6d35a7ca89112448b697c55b890b94a060599685c992134501234c9aa01831f2800924998004cc513e0210300b3ce0539a48c0010dd80003982ce0010a80a397912039f140021e8000071c200206e040012c4000080c20020240954000e438892365020010a27941ca00b2811f47868f1e152647941c790ef0b8c01866448e4d42811d3a06008c209cd8c50e4fb24a7a04e10431981c59b24602b063093a740040472262e1093374b4810d6940c319cc5006328c410c6100c317bcd0052e6c410b59c0c215ac50052a4c410a517882139aa0a30068b0404701d030c40e5f004047225e610a3374ec70848e1d86d8118734c460071b3b522e5ca14347080e04706cb7c3018239941c4969238e93339630494ddadd60726489194c8e2cd937941c41b224c9115c50200d24eb324079c1a2f8a2a4919999998888888888e79c73ce39e7dcdddddddd9999999999993367ce9c3973e6cc9933a794524a29a5544a29a594524a082184104208a9aaaaaaaa666666666622222222229e73ce39e79c737777777767666666668c31c618638c29a594524a2995524a29a59412420821841042aaaaaaaaaa99999999998888888888e79c73ce39e7dcdddddddd9999999999319590269eb3246be8d0618302b8020d1417411f3941f11bcc710234982c254d5070d2023f82c642d2e48406719c20f113a4381326662871209ca0a060b99219e8d0b123106b4fa043c78e44c480c9490bce40841287e3103a74ec3044a5931c61018acfb12c3869810e1d3b0aa143c70e42e8d0a143878e1d7918c432599d461a3a74ec08842b3969c10e40e8d0b1e30f3a74ecf00392264ace5012c789123894cca00373ec929423488ef02a59c3519aa434f9b55c462505e50897b16528e91094a16453903461b2ce8ba40c261b87192160e229274a988c80c911256f1c61920a35e8d0b1830f3a74ecd8830e1d3bf4a0a300a910c28e3ce041870e26ab061a69a0e182335a90869118b820063148c3481a2c98011a2e60c3480dcc606359cc50e2709cb48172828292862369b24ed8484d8a24f19435d0586bb892236f2849e30c546c40870e1d1de0800e1d3a7690c051dc700a13304109c11c6c8409935dd2fb2058831a5294ac9223498ea02469a2c49330d938ca3851e384cd28a3c956e470533862071396a0430793142647e4d0a163871274ec48021274a0b13c069bb22838495932074adf5926ab1d8589b2cc5b4b98e800534b71832d23e5c833d981d2831d477604a10d5f68c20f56300a5da42839d2e48d234c0424bc294d92ec18821096c771828272c2a320328a0ba4b3192c97e3080a52941c39596264b91c477e598c2c61228abed3249d3509052d9804ea1c856e3ba963d6471232cde13184bafd98d1810f24e45aae729949a4f4d4f07184cd4b4b197ae75254ae1829d20691337c18e198a164ccfe687f36f528067762b7aad32b4f2f2448f60c941ec458b4ec1cdbf2b3a541b28e142942c491ac3594b8605998c0717252b121260d0e1059d263182a9dfc4e2bd92972856ce8218ca396f1c335b9e9ecad34f408067a6592ede1bd5dc920397c291942e40b3d80b1ceec0ca97684b0952bcb72dde317b872a53d6f798cfa616559b8872fd89c2bd509f5d62cfeead10b5c5b555c466b72e95796a5480c78d083178d948dee4af867bd1a297202387a198e1ebbf874c57596b47f21552227af648d1426272fa8a41ca101111bf4d085273ac6b0a6edf483b958ba5eddf951bb67f31eb8c065e3e30a59a3e5b7b73879ca1b75f265561eb485aa46aace9da49bd8eca0472d5c3b573a777ac6ae88097ad06216b258e731d9d96affe486b1b0f47a54e962a58fda7ac042617332cd27fd5aad768d2155e8f18a7b4e790c2dff4195dd841eae40cdb950133a9c8c195d428f56a8f5a4f6be762a44e8c10a848ceea9a635a6b5aeb22c9be2299b4264c7117aaca29562659df8e410145feb6a10d901861eaad0d39f96a54f692d55d6231546ad6aa4a7543a8d7d7aa0e2f5fccac3075767763a8519635a931b444f89af8d303962c47fb02c325896d5c31428d36e7672f7e26a3c4141496347127a94a2d3b87964cec6ecb993e25b0d7d5a8ded6b748da2398d21bc4e9790ea15c51bc40b2db52d6b3c27149ff8e62f35b63ae7af7b8042d951f7336327d97a3fb17639a24a6b4778de13ed6a1dad1f64ab945527b63b4f9db42be941e644ef593bf86b8ec93d3691fa9d9baebfcd3ac7b4d143137b10ca4eee2ae93a2813863f1df761da61939868378a9ce6a43b86ee2fc189b986cd67e7c26c4b1cb56a9996f13e755625561d7765a5f9a7533225f252a3478a1df13e9d49a06d3aa7915a84b92d897c7f4d995637b239357a44c26427536d98f70d9f43425dda4ac88f55526cd62312f2ef646a790d32ce8e30cb1cf47d9b2a97133582b71d29b23cb78c4f19c1669023a51a3595a75c84d28369cce05aa3f88a78e59d12a1d243367350d0231199ebd86adef954c65305099235927224c9111618a9a42cf1d53d1081894ddafb45a6c6a60fb1997c5de2938e2557e8043d0c815ef1909f6ac5a91dad61a4093d0ac1c870bfb97ea2b17528e841084c99ae16a74af7ffa8b2468f416cb72a859293b1b460d043102bcd4ee9b927e6a525e81188839ceb5553df28a4a9083d0061d4b669b642aa912ded8089c11003030e08a1c71f50ab43cbacc1f683779a46f735f56dbd1e7d30bba64bcdd80d2f9f0f06cd28cb746b77adfb3dd8518887cc31ae95ced2432763af42f698fccfe6216daaea52d394ebdce2e1ac52aa539f53b5b17487d55eebd6d6faba64d20ed8eb9c75cca5eae08fa8111ae67bf6d301d11c758b8c713cb5e6f08bd99dfe2fcd964f0ee6b969275bdd319ae2d0c7dc7dd5e94e3b66e0d02b293ec6d7257c46ecf1865bad103aaab39523643a7082216670c08d1e6e500af9a3ca348654276a0332f68b4e3d1b305be9bfc263b4d7988a115f32471b4c00d1630d29599752e8be9623a48684fed1fe32a669404e79c8c9186e859481034913de218a1e68e8b36cbecd213366dacfb06d164a9e686dc78fcd80e8245cbca6ae2eb9e95106d47f56b7fec8995fa9a00719ccb90d1ad6f463400a5bff0ebaec5fbe9565e921067bdbee37aa8d2ccb193dc2601cd9519d8e5a6b8d32274a8c80c18c2eee32bac989ed0b9f86fab8fd1e3732ef85746b87cdeab92def0252f378dafb461d7a2eb82a6544acd4a9dadac2f272de52d40b0d1ed7c251e732cd1da2e3cd9d05cec46e7656eaa4548b85ec56871033dffa747505a5ae7892b1cd305a2bfca922f4eb0ea52aec1f9fff455d07d352419db53467f58ceb4939855dcfb6f66aa9a4d04bc1cf41659232f9da99180553f7c8f8eb715d950e0afdbb5e9339d989117ac279ee4294ed66c68e39611dd3c155de6ed671d3a309eb2e75caf6468aef57f125468c74a0071338fbcfb9bcc3b57310c96b8f25f02dbb43c8ddfdaca9823d94d0a65b2d5c8811a5e154599632986c19a94712fe2eedf852f5fd65e96fbc71c28225272d18410f24ec32c8ce2615ad29d2cab218a3f6cb52468f23b85a3de6d142e9bdfc3d8cd06bb98cafc3d437cc3c8a91d462e72e5c85fea4621ec458caf11a2dd7a159839565a9019133780c0399fe956861f6e97450186adbb78d9ffc658e9a127804e357fa2f5a0bf9519e72598a14690111244dd858162235e0018cee85fa14f3e5361ffdc551c6073fd37e9953e90b75c88f6934dffe45dc0b3d3f5d0bbdfa4eb69017776a21644f6b70a17c3978ece24ce141a97ad2215a9b83872e54dd62f35198ec787221f0c8057abea6793267670c6a83072efcf1e09d36f9bd76921c3c6ea10bdd326b1a19c6435cb105723aabdf371d3cca58591626462a2947e26083472d107a44938cb251c4b45809fff38fbfc95d45956529c244063c66915232d6dfab59168790da9dde29edf32a16ebf224bcd56a119e7558bcdf263eaf9367a1b35e919ee8a81fe29b55c85d617a55b3a56ea34b2b8dc0a315c99a3dd94d4ac54d3c79256b0c81072b54e332ef272aeda596083c56c19c79292da6c7fb4773ec0b9af050c5aef99feb74beb2068f547c26d57690baae7c63547cf23de697878f4ac353a43689919a53fc6e565596c508ca8991147f6359cee0618aa3c7dc7c21e3e4e6e7518ace5e29e1f7df23344d0a4566681b29a36e07a9512cc5940a4ffb4aebc7f010456a9496ba65bb3f079b880e78848213ff96dfceb3b1885a131ea050634c0d531a32c58a5ee0f18967e3cbd8cfaafc45e589e3e83bcfd73a4b5bd6895b8d8ccd3a09fdb9339c58471fa537c34991336d22edee59bd4fe988d769c21875e2193e6dc6473361966cfc899e769f73c00313bf142746e4a93ecdfa12a9bf8a952ff78ec2b5449a2d7d4c693b95bd12bace2b75fb7d2b25934e1e0543d620b264d92052e14189cfe436e9dff01a779da4285943098f499cea1dc4c768fe3fbb090f4920d253755aa143c6a716655fe04be668638e1422f08844dead526b3cbeb6abadc00312cb30224e9e4c3242863ba0c0e311c6382e224ad6a9d32d263c1cb1a9cc6d3fea748ac9956559928272f28232986c194492f068c4520929af318eded14234374ac08311cbd96e4fb959797deb093c16d176d4a574b0cdb153a90a3c1491f99ef2ac2bb3781475d0060e88a8c123116ed4a432b3b49bfc2845c9a63051727206da0f9665c7157820c25e192bb52e79694253031e873026d5d9a578cdf71a34043b42a797f125ddb3a61077fc476d1dec4f8c6621f1232860c2041e84707746a85275d5f2b63952764081c7207653cd22628454d92c243c0491862b999d3da7e6a091f718f88047203c91325d698711e253e60108536e364fbf515e98b2c2e30f9d94499f563a56464c3cfcc0ede8afe674fb32a63cfa90ca2c5b8a8e5a53b6c9830f8ed63d22a47c978c591e7bf8957fd6fcea9c356af1d043f2b6449d9fa78ca616f0c883f59f1a27e54a9d53e1419d7274be5f99199ade6133f3b85188aba9f4edb0fe9dd0317f0ba55f1af1941d018f3adc2b5745a6f7a4b3ce8d140da0b1e48934e141874f55a60d1b4526d781a34f909c600e46edb4e1eef4fda7d784871c0c7a756bb914ff52aa4d78c441f97ab367f66ce1a62602070f3820839491d9f1f3419d2a461c658991a5e4c88380c71bfe4e528edc2af3d9bdb22c4c96fce1e18633dc894ddf5948cf3e098f36e023d44b2d3687020f367c5a3385d4372d2b3b1378ace1e4b2fff2af1e5647d5909ad0f82b73edca45d06883471a54192a2b6446bf97180daa4f0d532f754348530d1e6760e7845c93e2a51b9b01a95edfceedae4eef9761e96dfa4effaebeb8c960ea7a6c73a5a9ffc56348dccc3b6913d73a72244696a5172346cce02186649c8cfc9799c7bcc5230ca6e9792d5b7e48f5231e60f8b5864dbe42bfb56e787c0125c4a637972f360af1f0824a94f6fe6a7f215c8b47179249ce7dab1b7fd9d213a48007175e691a2eeeda42776262ef1a4e94b0cf569868c1531fd27477526243f4c609922c183487fdaad34a664c91c3b1a0dc77756264d6fe15c67182640e14ff81e271855e6564e9d63253b378891c6e057b75e96cff380d2bbbe4518557feacfaa798f7e037794731c2645998a43039692ae0e72a47eb8c3cdda5cab2283972d28333a680c69d7a6750ad22842a25e021054cdd6dfce898be67833ca270c9b06284f6b0fd7b31d93796050a8e8e5989ea9cd3d5cf934631018f272046db896691319bbbcab22039b26f3c9c70a767192e4d538eef952329501e4d304bbd4ae9f23de68f2b455cc909923358c08309af8b8755e92bf529cfb2a0f058026e771b1a64f60a0d5796c5c8b2b89223955e368e87125a19e2b9e3af94d9e1b214f9c111347824c1d451fe5bb8bd031e48f885e82fbdb173162eaa1859b22c45168a0b90ec9114947dc1b22c49d22fe07104b4554fc756194f68cbc3089a6c12bfe1f376f228246314c32cc466bd724f33bc3a05c57f400c43ae9896efaa7e524806630c6355a2f46b960d324c9f640c61e49ba3e96d99934e725a638c602c5f870f274584d48a68408d3180a1b9ebae4a33d1ad4dbf587c96f51b1322eacf6551630c5f742a56c408b9fa7146bdc045e76bdff49a693abc38c6a4f48a1557ee1fb38b6cb44e914246e65872d2680c5dac4ac678687a9d652326b938a60fa532477533297f03170a571a3e49f97d4fbbb22c27461c0847d85896658c5bdc714fe8fb50fa1f5d95224574d0060e88c860c7b0c5b9ecb34c295c899abc16ea8d751a44665af02253ebcc1be5a34db35806d55275df0b937959a45d5d86595732b61cc5c292f54fd2f5cba41a169fce7616eafef4ab728c573c5ae96dd775cf354257e85147dece0a29761ba315e88fdad1c36fcbcf5a5996229ab706912427282858962663b062bd69bf7953be65232866a0b831c62a8c41aad8f0d6229faab5cc5896b35cc118aad0e449bde14e88de1025156d6ca91bf54c8815915464b02c294758f366b0c618a8f07fe43b8c2c5b551ae3142bb919837ca92372b3719c9cb12c3f8629f4962383ab33fd62663796854929f664a7a3f07f25cb440a958acf63aeb5fc8d3a8a55dfaea7f967fe7f2d184314effe6ff7ce78be570a05fb5a5dd86b0a395a50bcbe79b3e99c7463cc3ec1baadce33b32a9b356378e2ce7b1ed57e6b8d7b8c4e18853457cd6ab24d9d956591c339b1d65a273a1fa57c37a17dc719df2cefe40b6942e94aeba63915176e569625136765ba75d89cc1b4bdcab22826967f8f9ea9b5ae105de29c591955c670bd41b404aa4b63aeefdc5f53aa2ccba94442e77e4dbaa1449b7d634cd6e724649330acb7ecd641938ce14a02a1f639fee68c15b35596454522979aa5fa94b52e1e48aca34e7e9b3537e9605796053d42ef7b95ba7aa2b3ce117ce99c578f9670a937021fdb2c84eae0c1c6ab2c0b3262d71a2f73cc7a6426556559ce22302df3e8f4b174d4e02922756b9b3d2a1d3d5f66e3609288e4ec535f76328f29220c5e32ac7b127f3f0f71d4195cf4a3cc31b354591634c4b539ded4cbbef84e218c51686e5d7e5696e508d189d350d7393df9368883e92dd7d66ccf24b4a4c91204eaed35f387ed5c5a201219ccd3eab4d9f60284f1d37d099da52cedf9833228ad27fea56629f2832a626753e7e45a6eaf2c4bf621217b75ecd9a4ae1d3ea441b66ea5c383cc9baf2ccbd90322636430995f478bbab22ca7074c6d1242966e697f97345979706f36ad2ed15c1f9d8387d5da08dd7193ccbab67387a34ed362eeeef3b68e1d9adf713797a639fbabb22ceaea80e9d525524fd76a121d766dd7516b34a14b3407ef74c6704287b82a07c75b6a30a9c5d59b71d8576bad85cc3ac790796559100ee6b0aebb71e67673bab22ce70d47f1171d2f74d6c9756ec0a4dc74aa326a7bb95696c5da80cb9cf4c8acf5b9ca1c1bb8f530651b566bc85d5eb67c911ba1439565496a30c9e042cad80754388c7716a666a452193485366467f1e8d9367c299c398fc7311db65728a3a03cfd979aa10305be73a8fd0fa927987a1f2e1f3b6b29368c00e284f32af1a452d4dbacde84547c562b5a69dcd90061021bf34976c6da0d1d0f312e18625a30c4b031c4b06088590107765c01c8129c511a4cfdeae94ca1cab228a1d5b4cde1a39fce20eb0390241cc467d696a24c6695ce9172c4081024aceb370a4d95aa4a468e80fc86be8df143fb6d0820464846297538ff3cde9f25881fc530a44caff351880bd7770069e2b91d81f8418cb5ada62769e2e6dbaee1c730949f9152e78ace5a37c2507348ddcfb823c3e3c1f0b5e37bccb4355a7c80c167ef73ef6c77e7d92f96c1b468f9ef39329b2f106ae5f9faaff8cbd60b65e8e6332965943167f162dbd2f590e2b49232be0bd5d3c4689c7e2cd7faa10b8467cbe9c9dbd58de7a2dd2c84b88d27d3ccfa810b7cc4847fbbeebb09dd02731d719954c82085c71647ff94cad48a4e95f91cbe82213f6a91fe28673ce3340af7687192e2f2ecb4f28c1973f06316c98a46effc3b5ffac484c9122626f8218b6e5f6356513d72a3eb472c36bda5f262649652a3b040c82044cdb7c70f3f5e91f228b4d21da46ed0b7036a0c49c110140c4963081a43ce187282216670807fb822953144a668101d32db8a33e7185edbbbc6cfe60f56a0a5269963547575bb956531e2284d982849638d1fab60f496d472d9daddf00f55b0f5cace745697174a856142eb35e790b23e6ac90f54fc38c5726d46deaf96e7094db1cc6946c64e329447dd1e7e9462a13fe8aba7690c7a77e1072972bd1da6e4b4d897fe289233e1514b3989e24f7d9aa32ed5980cb5f1831fa1b084d65a7ed022fd6e502444cc9efee71cdc5d9f50e4d8df8d7e9e704cfc3e55c484cb51a513894acdff10b6d13ec98965a69725d647b86b596513ac69f927edc3e914f21efcd08429fbd47b77ecdcc2e1be6459e0e815c18f4c98d2735d0919d38977c9c90f4c2cc44b634badfbf7f4083f2e61bb78a5b31653a13e4a841f96480855af4c65868c8f56c28e5a89d2519af1c506093f28f19da8904d595264b72acb42e4c724d63d62623bce76aa99a428d9941f925046e59fd853dbf7a4cab2ace0472412d58d2b37e6546f1a3f20b194494734d5768976a1f1e311e72621f74966a9c5e62acb72821f8e508a4d9d2b4c566b31ff6884a63fa48c7ccda55793f28311ee96d9eabcd3eab588446cf3ab923a95ce88097e2882d7f80f3a9a5fc65027c224cd63eac887cfd0559665597e20c2d0f933bece920f8fc2e0c72152f0c310cac814cfba29ed7504c992256be44721b0d1a1a38c9342a71d559685063f08f17cc7f8129751e23f709419fc18045bca6cd3952e97315a69e38720cc197f65cec64c5f063f02f1e777b62c4f6e236d40a455f34c7c94d167e43ff8a6bc66c65675ded60f9a56a2343bd6deb5521f54b27368293caa098df2e18c51465775e5d446e6404959b26c2c5fb2f8b1077d4ee89bee8e1eec3f3532c7cf5b6a6b1e90536bbb1a75bbf99b927284c9c9921dfcc0034aabca0dd9599e58a1146f826493fcb8836247e78d5d3331aaf5c30e86911bca838a1022e225fca8c3e14c7eab9a50b126fa418753867c9ca8d249b49f436a755f630e2e3266a11c56d7a4dfa7dbb39e2ef8110755667ff3d61f67750e0764a7d1ea6499fcb4ef1bb60ff10cdd4a6a98d50d98d27d2e34da86855022ed6352da2bb3212176c737744c47d959c32e2a7554ba525be8981f6a307bd7a7e9f4d39076c7a68d52a2bb3b1a4eae4fddc7d04933e86738a4b710797e3a487b994113326b514da335ad56194c526996faf47abb96c9b0a78e1d264e3c86fb5c545df3cad25889c1d2e2d9ada9dedc5561506c1c59faf30486d47fccc65696bf287d41f1e6b7ea738c5825e405436ffcf348d7124ad9055c53fbaf9642898f900b667d5b0fd79c2d609aa9233e44bed0322dacd554957c2b0b2729beddf388dae41a13fcc002ae5797543962c74dfde30a9a9edf9d53e70f2be8bf9d1977c6bc83521b34f85185a38e981ea1fa57abfa0715d6dae3260d2adab9f61f53507ae7149e797fd434f821059594aaa54e2b2d5dedc68f2830eb7dea5d7fa646576559f80714145ae6b9834813d98f27e059c678256bf34767f0c309edea749fa48c6acc586559ccf8d1847d4c556f8aceea6988fc60424af377740c71b59112d971861f4b38d483901a65ce47e9893812de32fc508242a612d3bd1b2f94841f48506a2e9d325e3e6d9012c38f23b4a19b436354dee673655998547e18e14ce63186ce9a8e39aa3203252e58962447de20a3187894a9845036525bfe890c626432858dab4811f5726559dc206318667914bff3de9ac4e464c911c810461f544b09d1f5f234e2284b6e40463092428f949b26947cd401c310b14a06bdd15a855f06327e615899456b2acf4ae6e30619bed0e493982c512e5effbde0c59e46adf5f3c2a4a53cadcb8427b1ff2ef41cf4e6ae92e2b3f87581c8de9815dba542f8b948b969be5652553df6b85084fe4f9e5628f1327f0b5ee9acf6a529ae73b785dd52a7564ae8d52b7b2d92ba75d6419f9c16686b9dd13395d2647c16cdc69ece4147d65cb2306d4ee2d9a5f050ed8a85caf5a8aa143b9aa2058b55d36aa13ff68f8eae576827ce556b8cba562e57204ade7e6e094d1fd5add057cac918bc5d65daac485f84e8070d9523d3ab4067271d57f44ef366559cea239eb237fb6b4e053aa657cd39e4e3c68c8af3567d55c3d7deb4a7e07df3790c379943b4a6c83d6cfe2c3d59916e29deffdef8e54a4609971429f1347a3d6835d3ed286ce55d4a0b3fed6252a2b05fd7977ba6d33852a1b05cd889ecaf6d1b29502426e58bf718fafa4f9f7095d03f22efa5cb3b79c2b82356b754cf714ea9137bd8ea3cdd9aa43c1327504aaf67251ba331266de29731ac79dc06dd1869c2b315216534b3d721cac4f1a50cf949bea5f8204cec219f7cd5a7d9e8d025d6cdbce7a53ee8d9204bec35ca4e6cdda9b2b5129aea13f2d5a58d9c9412edee095d52adbe94b94918638e2ecdb7e44e492581cbac7d35f7a68690466221eaaaa367fdce1c8584c174dedcfdce189e3e828f2b7ad6b3aa913a4d63481b3d20c31189dbdb30ead58883eaaf98b795af1723ec2cf24fe55768b8b908349e583de6a195865211b6d6317f36f5e652271371ae4613fab363299d44044a6d944ac477fcc8f210c76ba56193c6cfeba321323b99539546f1e463211499de9d5db678f1424298c1b49b54aa5409350ee22467e39a0cf5795414c4ab35a8153f9a43aa4f202e692b4fc58fef990710b9ce52a3169b293f76fea0f0179eb3888cb97e7ed83634c3e8fcde1a531fb88db6f1fa2385bf8e0fe8d80a5169ae3cb6b7875cc70afb963e32a7d3c332e66f1dca4d769b2e0fa736dd119132d5bf0c0f6a797907858ef15d8a975abac7ec90d22c3376890e2d791d1aef34cd50d3b62a3a38f3e549eceb3bebe6e0cbd573e2abe75fc6902187564c48a17b4d94cb69872041b267ecc0021971507390fe995b7b568f21030e7b965ac77466ce062932ded07e6aa1196684c66492e1864ccb330d211ba3ec8d09196d38e8a9ebb8cd7fefa70a1b5471ae6ab5566de80332d6e08c16ed32d6dd76cc6440861acc6aa3c89a91fea3593020230d4b2183ccd832deee3a4ac840c331dd43de37f7df661c892f234550505e30440644504e883421e30c66adebe693c8e852fc4ac830c3233d8306b15a94e6bc0cc9f8e42d2f95cacf2e26830c8a5332ecbe97ef8f0e09648c611db48c7676ca9ecf12435bda9f36e91c1ba4198636e8ae1f9927348b460618b48dfe36fb418f6bf1173ecdf5d83adfc724272f24350be15a67afcb352bcbd285b7c40af5525b5a77be420617d0ff231a759cdd286432b6903ef98ca355c7207327430b76c7a874aefc5597d716c8c802e7714f5dde848e5a96226944810c2ce8ee49a62aad85964dc6151027bf5a757b9035261ac8b042ab75d617afd58954bf0c86b441440b645401cf6ff9a92e75fec9dc400615961e9587fa56f755fa293ca7f5ab3a2752fbe66448e13ff3e02fea93cea011818c2820bc7fd5af1cf518e910c880c2ba5166c73c32c33f2090f184dbc7b5b73a79f1603ac1e0eb5ae9d629329a80ea9b483962b64abee46d400613ceedcf9e3a3f8d8e67226309b712f53ae87ff3f69292a10495a7cf2f67833ecf9b0fc848c29b74a4f69426648bcf123290a0a7bde8905939dd1c294b92b89119907184fb7f37696e539e5126c30886bdd0a5b532f15aeb952dc65209993f672eca75b8b22c455ee08318ea7779eaa566d6c484c92e99838d2c5732836549828f61ac83adeada2b51eb5ac2785bbf94331ffab33a4c7c04e3186430bd694a574d050cfda5e65ca1e4d77a76c4c72f52f32177b39fd4398d7cf802a131289126fe4dc8de472f94aaa4cd5864072a7cf0e2cc79c38777112144b78bfdeeb5484fab556ea30b737d92d5faf4e83f7d2efa98c38790ae548bedb8e07c54a8bbcbf36ff716aa1b11fa85277dd86251195453e7186387a8b22c32f0518b3f65d58fc78d6b9b54810f5a1cc443aa4dc245dbbe59a833a6950dcd37a56a30f89085bb41e9eeea132973c7472c4c62ba1ea5b70c2b9ecab294c0072cd294f3f25e0b21bb14f87885ea44cdca999059fc19041fae58b64768b1fd02c1472b7cb0e2514f5da5ee47bd7a557cac422f1fd19f7f75cc9c297063c8ad6088ad60093e54618ad59bd5ee3fc8181bd9253e52c1a9cc68877d131542a848e619dd7e76672a3367f0710a5e4d0817b263e67db2b22c28274696fa30c56935958cfef74f5a3b240d22497c94c2bf17214abfce1c4f6dcaa22187af20f820c552dbadcde68badd5156122c7b23144890b862c25475630078a3781c1106f8264dd18726773f80a8618ca1024dce4040d191859962ef818c5a9e48d18f935ea2bae2c8b077c8802f51e739422949cd8530f7c8402f7166be73206a1aa5272c408121fa030cb5e8ed89499958da0e8c0c727eed33978d0af4e088f2bcbb286107c78c232ed6f255b3335bb3aa1b7cbbd99ccb95e456ce0831386c9689d73bccd67cacab200e1c826ccd5bba741b77ebbad09b635a6defc21b59c8e8f4cb49eec7674e797613c25f08189d3b644ae0eddbb27ab2c4b1c3e2ea16e39379e5d1b33234a4ee4f061894a50621292880424cec7231c8104c9f6037c3422657d3022023e1691b219f0a18844f41126cb8838b2c48c335e108309f838c4067c18a210841884200201883f94e1c30f7de083017cec410f07f0918700f8c0c3413ceb199d52bfc699e22938f1710764664376a3ce741fe4c30ec6910f37752aca4609898f3a746aa58c41ed2492031f74f05b8caa4d3beba2f7310793cef04f26a3c779f3c4871c921ba7b2b4ec4af54a447cc4a18d8daefce4687e69887901077cc0c1d051caf10d9e995955840b3ede609649759e91795a57448e9313c4c0871b4cca94cfe9e43a4c58f0d1065f86facee8b86ac5ac2c0b1b10d9265375cd52f0b1865ec652e61b756818f950037234b3cc8f12996357599629f848c3a1473f530b8f4ad45f59162af840c371eeb332d941a957a11751e282338654528ed080091224660c7163488a1c9ea2e4e48c21692c4b147c9ce1941b756fc46d3ee1aa2c8bc3b129ca8719f0f3d498522957f27e19d65aea95f24fd5eacfc9709e26e1d264f3773b867c557b69d9bf5928971890a673aaa799d7210d4322eebdd3548de9120c4b1d7322e69e416dfb055dc6ae522f0d7a36e505549828a563fd46a593baf0a89319dc857e36990bebfb9c62b4d26e59ea16ceb13ba8e770d122955a30770e4248ad4f33ff270b6d5a6d4a47da46153a2c1ce38c307d2a4b66a55d81cf1d5eaa125e7a1f2bfc3a8f140d32f372f25105d34c8b79de8a87e67c50c1d6f85a45b7cc13f264041f53e8b4d4d9ab5c06a9fd22f890c21e840e0da2a1f2a517828f28acb3e67e34ffeca353fe031f50409c7bd4f95bea8ebd4fb8734c42c93cd9f1cb54591627282ec556e68f9141fb9565597c3461e5ca75ca16a7fb3a579605f960822645dcfc6390f1a0db818f2524c264f6d25984dafce7c08712785d064b58bfce2827d2cdd5c34a48a354e71bb3cc5109150092b086301d8466de1ced23610fdaa4781df3dbc80d008ec0aebd34db11b991190046b865f65af1d156ece68a91fbba2c979b9731288991ab8b795eed20756a86a1b7adda922e5b7fda85719d38731575aa311c0cbcbb74feed45a9fe4280b107d75429fa56347084fc023b651e237fa79e4224427cc1caddf7785a2bb57a56a317da0793e1b5b916b13f2f2cdb2c4d8c9ad3e032a3a6c62eceac2f91d9a3786caa8b93cc24cb358b55ff516708c985a27bd4e455b77387b8d8738a38fd253dcb5bb0ea54a7ebfb249a596a08b1c5bafa9dc6f4b5587bcf111608a9059f9592f1b9f1399bfb86105a207f956d46e922a6731a4266714c3aa71b5d7eea7e553143882cecf051a2afe1d9c47b642971238e2425e50812224262919f7ea936aa224f6c6071522e5bfd35979c2fbd220f3a99f23a7922842e85b802f190efaddf744e68509aa42c9324a415c6e7e63619f61f1c59268415ebf231ff38f2d64c4343c82a0c6e3f1fea3ab4289d515383080a84a882d57c2b758358311b4e45ae53987a8c599ca8470e5703c5e33861c111820ab6f67663fb8f16d70a39c52ac5668aecc90c6db5408829eecf346ae73f3f6af50221a530374cabb989976e5a5298b5417ad69b8ee2d0dd24b49e4c3a4f438828fab052a606d5e49f8342a1edcab0d37351d2d5230801059ad56aececb175bae613a8ceac8cf3934235ed097f95ac0e52c886b55527d0f5b2ea84a871cfb4104e1893ffaa0d219b60d756373c3679bcd810a289e55769ba895719ef5459964ce4af62c328dd54e7394cf8aee19358393719849645c8258ebaf5b72d56635c422cf1a638f70ca1ad04ae1b4f6adf56f27ea584faf3b99cfeb633a59b04a24ea89d9023b39d2f093ccd74daaf48b3cd8444c298514dfee9cc2ee3091247d5d6d69a74421ed1c769b96d694a69120b7184fae654473ba469fa0021a4110b997e3d08195b269a580861c437a7c58c16dba8a311b28864d6da3fc713eec25b8a5088effd32cdb4b26322feac3a5fc488d0b36144a049ec89fc57ba6aa40ed1c6f3d22f426cae541a62112e2e6d644aa5af538885a60d25eb2f568e84f085be9d525fab1b5339840c0229a3ccd2468709af5f106714f78faebeba750a4462466ae53a768400c2a021750ed1a172a4fd87937ae87dcbbfe9f3fd70a6678d3ea62fb4c6f4a1b13b79e5d94d83fe7c38272fd742574879dff7c0a9ea970eb53359470287103de83ab797deab28ff3011928754be2ed5558f103c20a30b1db54e9a737d90903b286bd59f90934168d04c20c40efd9d87dd2c5a9abf0aa98359eae8f0bf2bb43d5712c7899193367070d2c60b84d0c19cb5f8cd3267e7800a9dd56a9d47a8be901cd06b237c75fdf56b9413261f101287a4bb992b79420a798a41081c58b11dd40759be52c96ff85e64f0d8f23cebf482821037bca16b44479d34e8240a6983db7da3851693399a52081b0c6e72a49461e5b4cc10b206e4eb36cf675a8ada54881a3c2552d4b9f9ba2e6965595820240d9bc88f2a2373aa7347081accf439b45409bf5b0d2167b0376bfb1ca9b37a595220c40ca8528f3ae9346726bf9032246d3be6e6b40921833adb88261b21d596da889031f87bea3994afc98e5942c480ead420bf746f0c9e6eb284844129574307f996be83e1922e74e4c698e9845a59964208f9c2329e8e0ce2ccff2372b8248478c1d0b9447bb414a742424817ced92e5f4e696dd8afb22c8e848ba4b42f61a2648d6571247ce40d254dbe1142b880e7879cebf33e7b170a42b6a07a4f5fa25aadd45d09d1c225a26947ae48481612ad57b45abde526b484600157ef58d2737c7d1b9a43c815ccf574b29a1d2b1c3ba67a8caf77df2f108454c1937de5b5db7227d486122154304a53de426f740a8b6ff854554f0a684c4a6390621505d385cc6ad4a85523aa1028602775f4d7714ab9fa843c21d1f275164ab4f20fce40853821912993d67147c6f89690269c46f7ba525b4aea7f4298c008a953add057353aca600992182c8b902598b59febf8a7c383aa04c533878f9631326b5612f698a7655d69bda710242c3e6a215bdb7c04dd33955cf172fdbc09310227636e4a13ee9afd294290622c3b84905ae46a92d2138418990a8f292b63f824843b0e116418418471ec789a3387911b64398620c1c866d7e5b649ddd45ac040e9642e736bf45dcf6912e417c69ed8be13ed5a4add176add94d9c274f8505909417a610e377a45f4ccc6c983f0426deaf589cef6121f06d905aef3b5bdba1571ea2104d185a3ad95a878e9b5322321482eceafb77426d5f264c84170f1a65dd5ada5988fb156960508416eb13ea964922a577399101182d8629926c63ca34b93aa6a21482df63cdafe63f6a8ae426808420ba4e9ffaff83c17ffdb21c82c0eba293f49311e2773e0104416ddcde9984d4c8ef4570c4162a1ab1132dab4baed78c1c23aa1932bd7c852b23708f28a562829df335db8fc798e94237008e28a5d575b8b0c32adcf18a415e913b927dd553b692956207548d14fba3e676d1a4264152b75aba31019e5557c38fa248e20aab0bcd59ed8b583a4e2533bb2374b8fd1ddd50691355ab02c4cde08828a65d2e339cb4da7cffa53b42975cccfedd331b5a6484e9d87aab954eaa25258a7af1e34c910aa3452a0c675e634a625566c414671da703285bb5aa9b51b4414b9e68d418ade3d533d4828d0207457c666d6aeb4481b414011e413aca8d716fa33e7383692209e303ec8ca75dd2b57959d68339426bf8f516a21e3849b74a7d74a9992fad14dacce7c546ba99033df1b7141104da047094d916e5a653c4992e4a48db4204826f8f0b33abfaa5a3d6162f524d5b55055a17cbf845ad86c8e2523eedf46104b2c4a074f99b76c955415498348921fa4f1031604a9041e32f2b5fedb965653c260ae44b790aa77b30599842f941671cab5209230ca51f5f5bc9b1b652acb5204258589068244422d93d9a875d041c38544b2849aeed6d950ae3c09f288e7d54fcbf6ce9031c611e973d9cfd5c1453b79469046f85afa7794fa5409613f2108231c15f549c995613c5f2604590452ecfdf6f66be9a5f808822842371d7312f9b9f53061102411efc6d99cd4f3ff7cab1104119bce23357abe51bd2321043904dfb92f6ddcf4b396852188212ef5112f55d43ecb2c24488e2429449be6bf5ae95cf2d34a8846a7534283e78e914fa5d1083208947e1d4fd8cd82786334b1f2a4cc179a09c43a5a2bf5ae6edd5e09109eeb5921556a99aa3441fee08614cd9d7352195c41fc60f21c9daa8550f9bbb780881782f4c19c5b5fb67265fbe2e283da53b474ddf81e12f32a958b77e92113320a91418fbcf5310fb69e69bd8c9eeef004c1c35de7ddfaa65c0b1307b9c3f2ec439690adc1b4d9013786ac800344504e52f60841ec7010fd526ceb2c9edaa304a903ee598512f5fe7dd20b4207a4a89052c6dcdfd2dd2073e0a4fc75f95a0f366b3a6b12440ee9d123e2baf3ab8d576912240e690e3a77fc06cd5382c061a93297998e39abafd41b5897d2cbb334ee6e34881b50b641bef77a6893671bbe7b7721556729d573fc480882b0619d75b09d7b6d0d0a152723ae5a0a5f0dbff97f8b881ba9465f49c341a8d490a6f77c56595916399aace66d20081a829c61a1ad35657a68864c79bc300feebb992b82023388f4204819d80c93d9f6f54b85380819dc954179d4283eb9fec790fab90b971dea467d31ac252ba341ab5e5f3d0c4629e34fdd6e0cf2050655ebe82dffe763e7fdc2b242eac924d3f3a5d60b7ad2d5d2ce502b85db05b3e9f45d2d3aa6d62b2e9c94ac32a1639d8b496d2195f69d5ad5b68e56d2023adc4bb61ef1ba25ca02e3ab958de80fed18c5c2a6e2bd57f6aa92a92bf82d5e5fe2bae49fd20aefc9eceb1a4ee92a6515905aae35c64c71172615505dd3acbd1d4b773805e586f1302eb375744921afd9b8bf596b975151e877df63294f263778a060caa8516979d2a83be7098988d3b13265cacd394e50ebe650ba739415d335210741980083204b08a2841d04498259679983fa28fea48f04b337bfacfaa897e9111adf50a22f931099b4204658c47994f2a5b61aa962aca4182994f0ac3d4fc45056decc6b914ad53ac7225172645990ac0a800cc35c934d9b74a8c8d40b2329d34c76dcb2d15eaf31c48d212b90c19226cbd15896254d96af27000946fa5c4f7bb4894f7255591660a41ffa94ebec4f6a42407e8168d435aadb8529fd5614882fae95d5aa9e3ea3c693407a71b7caa83967a5419fcf8417894fcac5c89c63a6c74a1134882420bb78365fb68ef6a01d3a04a20b20b900828b95fb9a54e5312b9dad30b905b261d643cab8619bb545ae4dd9bc6d3a71f37580033c00520beea5da97234b951400a1052ab5ace718936d9c49044066b187fbad9eb237bdcf019105affde4736ca7c8fe80c4e24d4a5fb54c994799960181c5497572195ad9a98b0c1120af38e848d51c39dd9f849547e24c5c810e7f4ad6a812b14a6d45f7ab2164cc6156dc9f63b94c65fa23056415aa5b719b93fea84cab0a3d6eb4a47f924107d9817084c91a40526192b2b1528f090415664d2d3a6b66a27ded059053a03f84f85ba1f3c9d159965d0031c521e7ebcc83ae52a448075ed0294338306448910e7060c81c285ec40d22438a68de491c6d381c8be40443ee342182a47d1961234b9800f10590521c3577c898a49d8eae2e10522cf723365b6552cd111c4046e19b70edcdde65aa26031185af5d4eb8cce985def6044828588f2d34461fedb9ae050414e6177275963269a8162b3138209f58d367d3aff5d285d27b62bd1feb59fe78868f3ba146d7b1bcb3c9689664952c4b1106c209f42951eda83783ab57599613209b303e6b4be52a64cebb35f1ea986d4f27d998399709fe54eec6a834f3ea1213fde80f4a6969104256402ea1a999db749ab7c4e662344bf92f42efaec4a95293c915a1424915104aa0320835235a6cda0ac59120d933763c01c824966a647a46a937ebb04b022147becc9b5fccc8a024472a4c42f0832004410d2091c04ec8ad15a54497b82b080824ec97b9d936c9a8cc5503e41169f5591b329a6b5391233431716a4a2a9393cf1d056bbc014823765b531d4fbf9f46ca08edb4e71d772dae4e48099045302e368751bb1f95e89c014411ab3d17ca3575d7c9ed094012010411eb64b2594daed28ff2b9c104208768fdbd734a1db5d22204628865eab6e61c94d299b30ac10b3f7b2d45f9089da406208458ac49f371cfa05dfa4000320841e49a5bf4ec649a4a248e8dc10e3a0009c4b98496e983677c79f20a1040a03ab5a8ca15ed2d7e6559968549ca11199cf1485c0643ce20b2e30c40feb0dc7e12938fcd9f42207ec034c3b690cad308a9aa2ccb0a80f4014dddd2312b0d207c30cb16f3a96693d624af2c8bffe0480a1a40f6d0682d47b3a70f55f6cfc00543ce2032472f4b8a124f32471b80e801cf8ff69e6abbd36e6c00c9c35945487d2a4ae53b04081ed07aa2a350a33afd4d670ca901903b9893ef66f29aaddb0f1c40ec806c8ff6a1f4b7d46837903af8ab937de9a4a3bca90c840ea9f119cde1dff2c3448e3488349039a0e4576d94de2ce75b72d0d4880ad1d6dffba91c008983e1c3dc852751111d0e7ef79ac689f6d8a7da00c81b3299cd568a09cdae7d37fc314f94c875b541d951651022653628bcc3b47f64d052730dc8967adb6c5df6bfa786564cb5687a29b2b931a2e48d2461b2711831729242022069589a4eba7b6ab3554c151b00418322a649cfac14a257aab22c73ec1236dc4843890b3840240640ce00c40ceadc2fee77fb4a9a7b40cab050727d6bde5cb6b3c8709e93fdba33a7d2fd18decca057faac8e6e4a3124cc73bed0317c47c330dce17bd463d2642e322060406699766e974a9d895f4867ab8d41668f170c6dc277ed64574307a40b86cebf77eb7ad6be00102e284326e5a97da23aae3800b2053ec3e8f11bad0f918a01102d00c902afba5bef09ad35c916c5538060e1fc191f55c68e793da8b22ccb52e404c8158cd9e3736dc74dfd792be8eab6b9e7df1d1faf8259375ba7c93434d90191d4a8048f47f2502c0c05026130100000055fed19014313002020302c1346a3f1782a0be3d614000248444e723a26282a168c47227128180e864401614818c43010057114c3632c0b4b2c1b0001265b27269559b8a6d245fc62328b3f918ae0c5b2935b1baf397401ca7502652cc2a37233461982aa4019282e9bcdb5876c3fbd16739962d478da7665018f43be0982b7873ffc3dc46ca273badf57f3e39fd3bd4bb68b14089c790e8afbb56c2708309c86b0f282722e67cf198ccdd9a9514c457b31a5c02a7d21e61bc02e8bbe96e32dbc962bea0c6ce0e2ca6e95705fb76221a4ddb43a6cdc79dcf708b6f70c6537f186eeebcec0da9bc0696337a36ae305de5450b65fec58f0f494f6603f36e9e8991bba0dddc8cbdb7ad36669563b7c7df6a467ec017b54260b0243d23bc596569aea9619c125704c9b86142acdf1de2b077b7d2d7ec04426c39e2fe1e773b6e610866d3e7244a973cfe13adc0337d5a7dcdd33a47248e0bf4acdcddf8706c4f072ba76a837ab4804b6a50f6317890b0fbf9876664d41aacebebe13984d60c1d788203c4d56d9d96adb973c0a5866037f5e757585c451f92fb07fff92166149072829e0f025c7efda5c1512bebe482eda1bd0997bd07c5e11491d37ebdd1de431816b0beb75cfd8974666efdf2500c390a351312144034a9bf80b28a9844cdc83b43011abdbe28cec1ad3a1d48c9790b40fb7982bdee016c63d5081d9ad75894449a4fe2d9ee5f7e59fddd3f834449516928e1fdac5b87106c980e781b83b7ef54d0d41f471adaeeaa60bf8c3a18deedbc3f07b48cf92c58c9af59f9e5fa64aec270c2ce6022c7f7b795ed93dfd629178506bc877b55e0f4830a549ea883c2b47278709a27c91ab9f47d33162cf39e1efab6ac9b37749eb68361976503dc8827bdf6969bb105cb5a9183130882b50137bd13287a14a6551ffe61f3e0a3c7bcf497d2b651344d0815449f1038a5cc4f531d4eef9879c1b3bff75d8dab7d960efc36c86d329660f11b2fdd962bd6caca7e6ba30c365e42fdd89119c6ef1f4ce18d0ae729d769ed4c26be5cdeefaa158210d4fd051f530ad63a728bdc5b343203d397db634bf6c4e44fbec6c3feae72fa7bed5e3e620f97d4e54803f82d5037305e3287a88a095e18213707e56249d63da442e232c0e3dbd62080bbe23e536d8cc0e7b5f70335d902b06367324f62219159d2eaa2ba0c9c17a195fe68fe954b24fe16c752fe9bed97c8d54b99ba5c58110c918c76d1f85114dad55fe59e3a8fe0eb5d18aa10af716457126f4679ec38d47f21964e77818d6515e4ad0194fca3ce2823d3ab8fcd54955335a2583b03b5c811784cd26ad851df85ab6be5f4d2479a9f1d84f0e875d4dbb5eb879e96126a6543feda10cbf32571bf5ed0ecd62caba311566ae9485adadf57691048f389933567b79d8b9e61d47e29ee440b58c1b444ddf124add20796311b9bdc9a6f1649cdb7cca35717bc9255874e8af3684a482bb3f3477496d0bad4f6294f43b44a63f8f22274a51bb93b864ad81e31d82a5991acc398dc52cd7f0257a46b53c44e136418880138a7927fb7ac4ab442a5c801d838b8c9a0d2ee0ab0b60b2c3a151c92bd97c428191b1b0c6d7fc1931d934ed1e0210b040f1fcf11a7293ae110ab8e9e41f41836528d5808a40c840f91396dcec2144f8edd6c1345c4e84828e1f3ae1ebc96e2708882440586a58e1de2c1f6ca9714289976ac9541f6ba8991224d83a4dd4218798bb231ea738b8c7047d3aba8bd21fa17f1ba4f0f6c31e20fa6e968def8eadd147d841a366b90181ae0bbc8d4bb735ddf08cf911da64ae4c08c4d82386dcddf80bbefae8d38ea19e7e3bde6c73f2f646fa806139b685c91e6991ec673698a2301dbf70b27b59f514fe29fb7afb791bc7fc94ed6716e9e013322e314c673b81887347b997b101db5174e1df0ba4b33162f211b10e9b1cb5209898c39b333f5e6e39959eb117fa60dc9ea119b4a107615211978c9b7d13790d99e1023d204cc158d1a3db6bb4085e88181b53f8c84824c7304b28319758ef3048ea4bf78449ae62b968bc15ab6bec4c4190093cdcaf7b7878e05b597056a2b55e8ed7e419a288dc27b0f7e0947f6db2a771ed5ab1ce65a1764821236f391b4f32218047d4689801b856b6088b5d7d91c528102d1cf30d2c6d7b2d7db9121685692fb5ab78b21b040f35a64219fc890dd5927fdcc5fdd9939ad3635ba0a3f18d459b75bcdbd63dcce0df3ccda492b559d8adc2e06cd0a81b2292532db59df85183594e4510d8d1aab252f646c1783ff5f53bd815a18270d90181b40afa25037c9ed204bcaffa25786f4b75db81ca47201f4a16c2f0c1c215e649ad5b751e6dbcf0e75ffb46395b9459d4c82f030d03b9b38009c35060f0e30724ffc19001ffa4de942b4ace54808ea81462e182f540324a9fd7e36f0b1778b5371043d1ba4148e58a4ef55e2362859f79b1f24836b6a13c3bda46c4f0f0ebaa073b750bfe3d70c23fc204728b8c3088a4e5083a426ea346c42e1bca482dcbb9801964bb59a4849b4a918ced0db7f2578f1d3f2886ec225d20af1719370a38d37f9042f8463285f3666c4ba2e1530c47ff60373673cbe01ad3944ec988f88fa345ffe5d0fda528d6c21f6fb5d91e37caea639400cf3a25c038474f6645c91853cb6bc4917e6e0e479ad85952160d0f69e84f4b558793479e26f8543c10f9f82292294c58d1292d5dc11ad3879f210fde6a0bf7c13d0497869a49175da3500ee493026e2b56dbf269109e3fddcc91a9073d40550ce61f3ce4006626fb6f3f8b0b0b8ae5d8eb5ca75f1e51e83d4a950caaeb210b2b475ce6dd606a33e2a19b8f4257b12b4f4e07a5c69c5dfe8658a3d2f0bec69a4167d8cc8065f37a084ea8c687f46b4f55ebfe6b7ecfd94ab7b600ac5a5a2309f27f6c914d28d126cc0ae141343bd66528f90497d827c1ac94f9c654baa18d4ce0476a39c88a760637d399811aa9465073aa09944c558399518ce0477a39788aba06eca8a39e41cea31d2f03cd0d6522163af3e054bf9e126fe0ce7540373aece030acffc179390722063e4e83a36a4233bb23dc4be1f1724a6482a4eb14aa03dcfecbcfdf4f8c614ee23094be33a41d741119741418bb39599462b142acfaf1dd8d06e62489c73ae2facd0ca676d7cb9fbf84a5fe505ad59e42aeb1d5c1f7a89486dfa039ce38a3f66c48701ac311e09d07fde236199a47b27b2a4596473521fc0bb98ffa2fb5d93840aaceb929db1b6406a6838025d417bf46f8a1f7934536ae194911d1c4c147ab11ac2362b7d6f8cc401adc8d0fdc70d528978b4a8ee3def844503fa100d1feed4499824cb664e10e0bd8c5469c7c067bc2f7b27458b3fcbfd9860636f887ccef6d5f8840fbc3efc089b2cf64457721a0b616a41ab985f4455dece3fa155dbb40a29305736a1cebe9437c4d5e82ee820f731ae19377fe10ff431693e12ee2a9f235c549ec3a38807e1193ff51745faa9a2f39fadc3cb06bc050e0895cd89065f6d44eb3c7e11e90bc72d4a071cdf4df7a584811a7ea674108805ec806721581b45ac72aeb56ff7fadae5c3f816003818cc0d774ec57555f3abd91a83a8f1e87fb34b7d94292c2a99c4afd6c67713e3e8883455c54272a305209e8182f762629ac7606f293ddd6aa2125bf962e214b2f1782d9f391a7dcf25678e03471fd7784558d21275996d6b2fd59b3d740c20e3e6a3e2ae51af7417c46946e977e5919a8254b16dbf74469228bd55a6479591373aaa446475f9c7912dc759203d7e2a00911b7545d9ec660654f68043c4f22164c89536a1faaeff1eae62097cf6743e89a63f01859b8a10af32ce7487dcc38c7b208541b096c2d2271ba08a3e992c778d72a5844680c71a4669d137ff9b60408998cfaf072b75607c4edf6647fc1bfc1243dd903a4f8cd6db7d13ab66ecd4922fc1ab568abc93965a41ef4cf21e5be7019aabc91b9eee995b7ab7895d09872eef30e715524b27af21ac606302e9beeb89bb52cc4429c6619fb36b8161bcb112bb36f12cbdf83f7439c8069fb063653549c2689ce3301e280e285597428402abc6786ae6b9aa93000f34c5f55ddf80b97650bf34f1adc24a52a948dd47512ae169e39c09205747449d0564967de088329928f08ce9d49265cbfbe661fe91f43b4310596d084309b9daefa21d0749ff723a33ba938d615133bfad917a33da615374ee7d789852af19f8ac3f65720431037b067049039579ee961e86338f8b3cd885feeeedaed7e49a662a5b279dd46e28227fd877c0850ef61018ef17dc2ed3551506e45d3ce55413820cdbaba89aefd58b1fcb3653782f77c38b4a7ea87a385da49331c22653cb4ecaada44256545eceb5a11ab1ed27f1132c00f2d44b4cbdebb38d3f619a8519749ed214c0e6a1d199a0c2426b322df137f1378978621e93b89cddd2281a50ec740ceb0755206236111b6c8f791897e462ee4d235f9e5f0dd1231a62ccede9ea7b827d51eb431bacff3268681be07f879ca90d9a77f9b8101f159a96770a249b60b8854512e78b9996f9a93736cefdac9bde9815cc16dcd8a105adaf420ffca21b209b8623004b202b542a251fce68775ca02f8cfc86e2a8f1e3d339c5bad4f45cbb0411b3d4281bc215b9161314655beaf746566185b6b83e0be009249393d6db865f649027b0fa9b58c632eda6a89aef247209dafc294a80873ac356a19d2768eab96c43189c763f696469640a5bd13e7237cbf31d1776e1e6cd741dfc4303ea1c347ded4928613ecea9a8ac42eba875b660eeff05b00ec07be52ccf8fdd9e2e482a9af45a2ddf00415bbb0379d8877db0a539b7b6db3e7367b647baf6fe9e9db9ad3a69a90f83a5b13d745916f5b73f54f41201ddba4342b0d7560c1c0b65665adab48b3a3ff99d64421685464ad4d39c889f71c1f75ef9986ae49e1860c83f337da7f75dbb2274062b94f70dff43c6e01bf1eae827cad7182733ccdf334e9d60c57c3ac76c78df0faae8a044136dd107a0ff6b1d3ce20589b9023481d87df22dcb13cd91ae48bdc6b44751c82e5d9cea0f4d47bf786fab1f70c17ecad5d6e8477aabd3f923196b9f3c4d702a86de1f574218c7e43fd6a42eea33b48edb74deb6f6bbb0f84e8899ea8d68c366de6f9c977ede6f4e4c78c300c4d86adf8af0f9f262b8f48211e0dbbe2be843b85778c3c0e57533019a5435e4936890937687d6126118d9d1295b48c94f9454af2888ed43ad9534a5aad33ca3a0eaafd4221099a1cd68683f3735a79660dee8ec83a73da6877b13b84b5f0e231041c5a45d80f8e8b4ab35640c835adfb8ef7be87c7e79e80ed4e15e7692bd5130268bed1c6391a2f527f32b377a073d55c12ef224284350da66d549e246ab3d4c457d1564329fb120f74382067ccca2b9a0e68931b4f63ff36e86e77cf80b35c78364ed14a47d2a67be19e53858e0b6f7ec8ea34163e3e8a53ffd28bc23037c67982adb5688fa7ea9d22f612ec3cef2d903ba36054d3ccb93931b3f6447fed247c818c901b07f6494eadd650b4d199d81e1a5d38fbc122d8a27755c662ee37667a1e57651954aeac40f74cc110e41c0cae83a2f09ccd05b0daf2f787eec4bdcbead7220094107bc3400d0cefc616f193e36dbc5214e272ace5f4ef1bf8ecc65f890deed454c5f46881c79dccc5940bf7d4eeb8a8d1b1e957e41e367e1446d9cf21023c38d2a4ab9a2a7dcb3d820cc167d50f7e8e3b3f545f8abf37a57f5f44d255b7136c0c845e3b271a130661b0b68e18d4c89517b1501e0b5367ebde3d452bb9624498ad35256a5460846477b2d773b9cf306a228784ea13ed2a727a04816ef5fc245a5c7487615bf9b2f3d72a0bc9f034676e999672839deb6c3d2e2b99cc5b92cc73c9cd6d8be66d73d72b57ba72df536e7a72ee7c9aa42ab110c4dab7f8dcb546551cd8290d7f23e693a72b9620e6524150bf8eeea79eb8a8a293015534f1c037fd9098edd2f35c6d999a4c6008cfe98010c363d8543a3a20b6175fbd589c0023dbf66170b5878a6cfa15a2c02c5ae68064327c0ef3ae15f6441c43cedee5ae2109a956b4712c695caab6bcbfa0d21896bbe8ee4e5c3d2a652e007744c58844ebe71ecc5af8aa38b5cb28a2e905655f27da52d211492b156962be4fe66bf886feb73ed53c73608af92e706f3bd5e9520e5f5879f1b7ed549c180e12e644f8ecd6c6b8606483ca7550395118dc3a408208bfb2957de27e270019440e238c24594d1670434dfaf5621558ee1e01b7a40ac065f94e76fd1e0404c56677aace8d053772c3d76849a41c58bc008dc2a94a8e6d39c4a2ca101e37907b594fab6e2ade558d8e2972d5cce366d3fd9c809524fd200295ea3fa195d4bfbfd8f5ec3f86b8f7be756b723842f7a8eeaec7643ce34297f1a7c7190bac8d8f207295b8ed5fb953d1f601dc0d75870a9f1d96614cc759a2ec47a3c4e0b44a6c49a1d864c5fc9392428306ddcbd13a833ea26fccaeee70d4ebb6b610ba833e03f698684211b92f883c0f7673cee7fc23cd8161ae4f8f737b6fec50d5ea4d68469ef2853577782cab9a5773ef12cd36c3731077a6850da4616ec476d93c6d264512a66345d4136f4e74268292173fa7a1a49be4e93325d0f06dbdf1a7f9d6122ed8b6dce4ac9c674368830a4bcdd5a65228a1ba95e2e8f9166ff0693979fb7421b249156b851a9632aedc95491c88bd411f61e93a31bc0389207ed50764ee051aa25948fe9cefe205dfd6bbdc9538dbc20dd9ac065cfb23935a5cab22ab2185ab2e574a34928585d4e698e8e8d9b266eaa877771d31623b4476defe6a7afac660ed6b9077f98e342928d6fc629ae32082e74128e4a298905fed944c071273e0911251b00fba0f371b15887673fb997fb5abab4d1e52d9ec6522f5ba3a43c9cfc3b2883fcf162396497b57eb647f31eda720fce78ca35cc0be1ef394707b6882dbe8102068f2de310df17402258e05138d1b45460762e1e9a0735b0af6d8f39fa1bbba177aa0e0e1f881f13ec2cdb36ce502946313357684ff68889f4cd4c6219776dcd679c029c3204fbbf0df3e7988cc8ac27ff6f98c4d12e3a128bf58b0fb92e93a150f98c3819e7666b262828d04a81f9a11200c574371898241439748142a6e2d17cde5b2a13b71644bb13f3f1678131709850f1d86e6f821d9f4a749c7d44749864864566090ab970b65560df80dfe6861943e68dc043cb14207cf1a173f801d312af429403cac92d84088b079be2224d35d20bf5351d848b0795a6740f7853c84f9ad49226dea040e90bc0983c82230e7db623b7f256f5d40beaeeb2dc171dc11223a74e77e9f232b3735b4ba9796e0e156a383492709f99f325be0d0c45c91f57ba6e560f79da3a2db39201fd6d35a2eda12ea85924fe130ccf097c72f22d3be238e50a0e4d9fc2af25a021b0c1654a3f0593053246318c6cf2458b9326128f5268037896423eb374e9821c4f4a39546506f157a1e52fed6f17e65c8a6462f682f6c84eaf66700ec39ac4c6f05dc3560975822a9d1e65ce41d75fc7c1382aa2ad6b364828fb29f918d998f256e9916df53a46d9681d6bfd8c6565aa9ce1e3167067f505069093260b098a0d614b07ae75b00b168d09415349e1a0f8cc6534f367be30d5f402ef12aa356f2e69cd00ba5cbf1ab01d5f6caf957227af6af7ad1dc39d4160e9c1b48d71ff4e0a909e40dd7441a2ebae74882a11b7a4bb042718ce3f608db21411419ed131694408bbf81a83754b1750bc20acecb2d502d4f69f5e5e0fc1047307541f6094ef3c197e25d12f5848b1ed3a634d4f3e33401de062315dc09004059313952e64b11b922f1e13de8815bd76dbc81afecfdbff3da4b467424da43f84b4c654de58bb90b6e37f29b9133e99dc15a15aad3cd1bbea1cb7b4d00190052c380ec16890edb14f16ba8104526437704d54359e4159014c8b25f1cb888d9bb8dc92240c59b3311499db56dc5db41811b1be17d2060efa7752f550858d4df36d55aec715c689d0f5bd664f9cc5aa77237aac05cb31a88e075c353bf7607f09185bd7fae7ce7535aa3183a7350c4f57a5893592e34c4c8480e7ba07cdd8737b2f61d1bf9d06e01135874c6cae8aa4a89e77fc8b6ee4e1fb214b0107245daf0f32a77b5d619ef9fc21ded54bb856406aeed76dcbccc10c939cad52782d9d572cfabee7574c23acc4492681735ef01e2647fbb3cf314ac09bfa699797ccac59dbf327a7b628b7258a075c2bf74c40b99392d1a32b8f5f92e882c867939dfecf15fe6ab435edea89aafe996def43f5ac999c611746c0372541019359c6ee9eb0dd73ba12054e716056858cace057f4d828a9ef32111036550c79d582865c01090f1335d2344a23e395700b1aecdb05c32db9465401ad42d2d3b73ad1a2fb8a51fe31bd64ff195ee6bac8934d75b33a87928ea16dd088dba4587e451b7e82e83d42d3a5992ba45f7824adda25abedc888e06e5e5e0f35a28f1868edc4dddd2e59553b7f43f8de975cc8092a0baa5159d1ba309b1d748015dd476d76367c0cf27b8a95379cb2ec87c97e37e33ee342123dd9f39b47e2662ba6177626e540156d8fa8c3d11f4e1101a4063e378843a7913320d07c437532a7d793dc4d71057e455e5ee907b008564bf68d782d4fe80ff5ec18ddbde04d234a42e0755ced4cc33089e742331451c5212ce44ce3c3c0f0ca16cc01b35868163346962d47d10639b7a8e6225487a1679b9ce51d270b24cdc92fb68fa73b5a3879945090414e0e612654b7c3616dd0b6bc65a1d2aa88f1063e95c09f9480f6718433ace4f595a31c246ae2955fc2377cdcf2749fc18bb8b3262caf82afa6c6d821f0925e7989c5abd30067725ad5eb10b2e6f2777692396393888dbe65356e9e54bae4c0064d679306b45b9e43757e2e97ffde5aba80b3e04384f9c4a9e587530282d6003db011c62847892302023983707aeb7c0f0dae2c4052c48797b651356da04ba6e0e9f14c781d58fe124058fdc604d5fb72288d8b9d3b68f2034b213e0d102da820ff4be6c69938b2c24c51964df8a7ce566896b5d74c2c226caac4aa537fa01bcd088f5b943b5278ca44600d24520439c51f5c22cbb47c2b7be1f1826bd3af6e2113bbf4716e6bee49278e5a3a33e7cbb3b6ec7dc14badfbc3c688b81408217879b6cce418e96d8583860ed2d157752a29b8ed7c6d24ec8b6d4249a61775361284b53d55aeb51be5a38a645ac9040e54693553d88e59f1c5a79cd02db74eed0b13cff1c9e749ca4eeaf55e9fa198be7f1333aba181da6dc4af8a63e1b4c6b3832f365845bdaa42fc03eb72cc874b349a2d86fa025b108669830a3556a263a520344569188da75e732b2b316c37096680ea3d7172c7cd8172565a22411e259701c3bb9c805bf45b92e89a097284c8118b16adb0bc8bb1fc334d6e2686c58d37c422629b4677b1b917a9556f4c5783a983fb151011d3576681151d343ae77584904f50e97504fc915c922bd3aff5f011338d5801ce0485b20b7fb45dab3743b030f3cf1bfd7c78e182fa217c13f7704fe79a531a7b339179bc871cab4dd4186e638f4b004f20495c606cb3c14d442a10737bd004b5a56717b8559ce70540e0e4a46f99355c92bfdcfdd72a21eda617bdec552375317437fe9fe6f8ba06de23c3b1cbc5ce512f772d86272ecf69990d9537246179096a79479144c2f29fad48cfacb70d489cd9f6a8e2b85cb0c579006bc6838e586fa45cf456341004d08e257ef230e90feaa7d08c121442d7583ace04ec542bedadff3eff815b69bc1fc7d000d0d9717dd492a0100608b54087b65b40d3fb7cc8f7b301b1f44ecad8e47d5c74b61f2c35b89c22d9c3295f10867d29725123d8e868807e92bc713a1931117aa471d176d91226102ffe63787bffa5d8f43a1c151de1350e4591d70b016a838dbce09d3ced187eddbbf1859ea15147321ec939abb711971f2c819e64203bb4ebf9f9eb0b23ed2457230f5514ea5e3b2bd85e3e2cef26959fb76399333203a96dc66cc70d640cc70bcbda4ce2e761b371819d2d0e7bf9ba40a6a63a3e9542656c17787ca1504967f03c55fec450b3e470ea02a51a535c7f3797d489e9963e837a53c9ea6008c9074c21db74bbf7aa72f885ee6f59df79d55f36d6404fde351c7424ea5ca8f709d0436641ce93b7026cf56b505e4dbca065dd7ab1ab296357c6f666948ed4ffc8cedd2f965bca3ed30679c73640fce97f95b66046c19cfc0d54c24b11d38c70c7f1c64ff6ae64c53b3a0ce61ee1b01af1c31446129264d4db042915f9104f233fb467a3b1151ec0f3b422c23a20be0f673869864bccb0d6649ca827191d084a53509fc50a43118a8886f3953465a78212cfab4dfad744162a899c896a33c0d35ffd66d9583e45250507fb7a53450a6845eb55022f0741151a631203475a4c9fcc03ae8deba675b6f2c0a187343da9d03ad02900ce7bd821a65cbe2cbe34fab8073367186cf764adf0ec7571fdc0557efbfa20eb8c6c2e2264929fdb61f0f93a2994afbdc5f25db8473d3b18e5fec391020c60b84d276a15a517e58dba3e021508036d0bd7454cbbd0ddfeaeb9dd1733ab330a4a4f0ceba6637f745f0b9f15069b1317ea8a161c7d1ef6b6a288ba409cb84a0af0f880418f11b672c14fdf677ab072298ebe87c6b95e2f6fffe37582ca7740c0a3144a86ef6243182f2654185ab4f1785b2280b287e2eb58dcd9c0cec7566b82eea57246f6d0218ad66a3ce3a824494b09e5815b249a0c4b4816aa2c2a48bdb40d53e1b3d1300be7aafe47b9bbf41b3f72d08603867f36d332d8bed042f854bc4a7b403730ead5189eb5beeea088647b3e38cd1ddf68e5348b6407b910817263dcf98427b3bc184586575abae2836336573379847a328a98ef8299dfa5e0820c484c57ce6c07a706c102fb0a77e6c13c721df84d9af356177c9bc482568621d3847c44a9aaed49d6352246854b3e13842e05aca1506b8adc31ff626e3f39a77c45a8c690b081726a5e90e31fbf01704865dfb78166b0c23157166624a017fe36be8d9eada89a9fbc0cda9b5d693c31e72cf1dcd05cda2ae72f31df686aaa7f37951af55bd63675f69aafa0d6425d10c293de5c2e11120001acdcee445c8b0ec975b27655db4d21446ba325918423064e7e6f2b16c4c47e60eaebbfbba0544be403329e76b4613c249911c9a1ff206e8f163e2129868ab520096fdec7252e71b2d815bb00009c6e4bea1901d2b70af8150ed0343154c874cc433274ef001b3ca8f5c27d5b9b2cfd32744a5a06b59ca0aba6935861cbd20640be953a05989ead6e68a6922efe64473b95b5ddfe72bdd9f90b6fa0c030b79b971c58f73be77430c00da8e6dddf7511e82e7dd317fe13eea34913659c4473c9a84ecfae27c61d59df46569d45fafb68382180673a0164607dc9b800ca5bc59e2e4e13631f606cc3e597ad68dba84e210240c515643e4caf57bd3fddf48bab5e14b9b462164e45906f21a2ae0eccf9d5d509795386a33da7fab60d5e07a6ac04b978cdd68ef2cdc89a1d6ed9a8a620878abc6614ed81277060e538cbaec47d97afe1da61fcd803a125227607b57cec3eb73ac5d92275338882373468b2fe58639b2dcd0a6727215445d48ec83ea377a2739d1244c7c8145f34aac4cb3d41cf1bfcf184231412d5aafbb7cdfa9ada014998d4da4883b13bf42f2981128571b978a8fca5cabd41f50a57dbbca221c5ec12c468d471cbb7126287fbb875cd04eba85495ebdee89015cbb11e0e31740a00abd04d038240fd84bb921a9d59471a824ef9c326484c7b2f1540154ccbdfc1d3490c14bea727994456ccdb15e64dbd156ae7f3c786eb9429051b4c5c905be9a51945152bdd537ec6f5bc648cc1ece871e1aab44f185156c9a630b82e3e950057adb0fb436c51b9563b22d1ae3b302675dbdf01a9ce4ad696f289796f6cca4b877b18fb194a66388d89e97c5a2b79dcfdc94fcd7d01d99b7205075a83960a1bc7a9ef6d1f966b8b24fa58fc578c16d99d14cbf6cf4b6c1cfd481ed7ed39e43086fa1c6512394c3024e3df467e09c802e2d5eae9899a4f6ccc7e995c93a2cb4861cd38f3eda467c6a54170cd20946571ab77fa0393dae247e85095b5443a4fc2b44ce5d516270c363e802e24d37c608a8dddb106241b8bcdc68238fce539529061f18ff6bb6145696c920557ed2d3fe1bed450faa4e776c2377ded70275a25ab2c3078d1ea112a2cb47e4e755d034d91039b26ad15233116df0e6175804807f1842d681695388f4038b9c147dbb7153f66d4f016466475d8b96220733142397caab0ec1bd21c915933900384e5f93f6fd66dfc870babcfff1cd22d5911c42e56423a5a9d8b2b15825ec8386d921f7c03e2889e5681aec041bdd0b33eccbd311c186b380f919643679ef72f63db2208f847143aca0f2f73e419ef3c937f0eca27ddf67ceba824727e7b140802195213c4ccd31aaa29ee3c6917afb7f222516dfe0b9dd103ebf421def7113243b250411c8e620efa2d061c801b28607290fa2dbea92760d498ec10dded6843f98e157350073ea3a775d24fa281ea891440707df9fdae88e3706935778fc22072ffaea6c5b06a3c3aac33ed4fda0b1c2b2fc9d9eaf3e04ccdb2e5916c5c29e67e7d09c3fa578417d58eff3942f73c36c3b43e9f0ac86c482a8bfd359bd6ade4a3cb2d401e697f51c46fc2ff50f63b1cea9139466236e8c8ba466a55e982aeb5824baed63404f7c1d35c9f2ea514ce8468400edf8930c11391f634f3e4b623d92dbb4ab51a2e8e1eb1692d40f3d00fcc7ff6877288b87eeb0619b27cf292316381343e324f26dd90888b2174d4a61d4bacdb3320f29972358111fc7dd56894b065cdb001d07f19e327019a031303e8a33f8cca1304e6fb06bff855f9ad071902a2c15722d7c10c4753025c977a84e5c3d851e4fe58e133634367765bc62ea9310c664c1f4877097629441496337d01e1419fe5d52cf58bd3481d09186bddf9c5ebf735c5f432c4903bba76c7b1b7231169af8d7686280864cbbc56fa112454e180f6c393ba366f5a2fdc40139ebd4f3494abec27be4b1e7f45dfcbb36844cfdd0c98c4c78a3791388911f8d0200974f970a0ff443f746c6f895e88811cbf0a2952ce7f506e173809727b87223567138bd84b84022cb6f73a0e2e57f80b5b8057948e1262e46f35d72f778925849a22fc0458193e044c6a8f2cb261aa6ae263a98f5fa3007be26d5523b148d97829a70b46e1d5b9485fe74815cd27892cb52e7b23ca890c7267f990e5ac7a5d40fe4a41cf8eeacfa4c838a5872a1995be015db631b866378318c141980a37bf432939765f30b22a5ec34dd356dedb1177da6c0d23ee618491676b991be01b509f7e75b0e66154a766201f8942efa535a23f929ef289f97db4f9d27685914e173ffc2c857113e8e004585f2e7a9ab2212f9e4ff0d6205db68a341fe4d411800a3447509474b2cef8287f5e4f8d22931052ee757bc13a63858f05e9454a26671f04512865b390e663e3bc80c8eaa93dba83be4b9d41157a466c3aac64b2ca8f980794c7c11fd4f06fea165ebd798433ea7f53185a17d686f8b9122d01d39e25468f8fd9f49920588d2f50fe99393f8f4b5085a283a0561e41982d1e37504598e440c3783c675fe76f5c1899065d3f1ee1c22de1ca90c96b2154a73581ccef417db6b11b0f43cdc5c34e29d036bf686b16cf15c4353f5093f1938e8880922cc84ae30755af057851031020fb9f81d80bfa995dcd05554232cdfabb847e100ba726f1995b0363803ff22a1e0f8b827647e811074d84477a17906edb1c2dcd28cdb2f576f86ac563f4f8732b3ea72385cfdd5fcec6f4cb264816f06610eca8dc078c4c306089d0eb892ee08ffb1f7ffa1942d145bbc711cdf90029b8c19668847fb59717f0b454ad28e9f18ec84c58b07802eaa186e825ec205b9f2f987e856df201ff4acf6d3874d4c6e42f3a2aab60abfb99918f90eed31e5596a9c212c24a1c43bdfd455306cf85af89723c92b0d511b50cfef0698a039672b400f209220fb9a0200cd46893cc2906bf542139aeeafcff1b048e522ddf34bc13dc608d5030bf830485402c1d2627969fca00a96647c8468fd6a7a9ba46e4cb43c6096b581f31d0a2b3988be13947d06f0860cc5494dff1252f35f0c5f0198561180c877b2bd4e1e27c32b79f7495320fe84ba8fbf5d44809c97089a44b3ea0935ece578c4f5583505235d8510371db397e4619a1d1ce119519f90d4842b3ee2cb8f6d47e90e4a18c36c838b2a2a1371e0d3378b06d3f0e2314bfa91e0b8fbcfd6388d5ce83b66eed87b2095218f07c42bfcb9d313cfede07c95c7b6b9620faff3dac272b1f469a3375416ba15cb43551b40d82d608e766aaf11181323171743c27cc601be94eae2a8a9ab218b8c3df360c9f08df476faf2fd152fb771951641653d890f8a3a1595f31c4272af9d965f91f9f31eaba84271bce9301ea0762bcb787bed294e3ebda0f9d409eaae3710b58635428035f0764a6400b6576f73a03e78d41cf020c0ded1383806900aca52d7de86d9983949c005e4c61e6ecbfd08c13211ec42dea8662421c187c87c2058ad715535f52ac60580120b9ebba4ca62de3e127c16d28f0b21332bd6047b9bd3a238db969de369f319aab3176ad6a9120aa67d611db345719036f3b3263f5c8049ac9d3703f4108fda7c5106461324193a02ba79d9f881866721a265cdbb43195771f8118e1b9ecc8e72fdafc6b3a720ecbaca5cb76ac7d2b9154f2bcf132f60af98d33b93711d9e0e72e6fcbc94194b38c00a842ed0059da2d6817bfad61e537384871951ec10d3408364a7b818eb4775fea65cbd0bce974a6ed7c49cd99dc224aa5b1f38fa0bf35ed0ac75f1ce8c7907c0446f6ddc5ea13366263581b839c00a1689f809d2524a1d58f6c76213952b7599351a51750d88e87a9e282ccca368e9dd15a1c98551380170a2c47bd454f6dc96e6efe2062288c4f39e23809d1f6de6b8f56da0db8d9665326fbe0e4ff8ede5e06c4b591ed8d25ebe713327178cbd310529f10942e29e905315d10b1b50ff5fc0e19fba75fcfbee9771a3d45407edcadcd5e3e444747e6b30700af0a0eca99fa03648ec36aa67da90a1845412a5ef42f441fabb965e48bbe1377d59f768b69000bc09664a8bb2585876b417d280855bfd02d225df4eb91752883b2467c1b0a6b610a9c0d94518eef83943f3857447fb2f277d215a7a61feae2f24a94fb9b681708cabda393a9d74f885f48601376a7e212a466ed07a28307a21f099c0348c1a1b016a3aebd802ccd7bf100182957d56ae57e485e85edd1722d7a61137876c304e2b0b17d2a373da259dc0105d1b313044775ba92e4473836889f90b69123e83a6bb5c88a6d242b0a1fbcc708e73cd82216d9416099175c04a22e44f08f2b6765021e1bd902fe7e632e1e04577271faef364e2838aef4e6e68e7e98980c1b28878e2dacfbe457db876de9ddfae83d6c135eef9db4f68b50b49b3510f0057310bbf036012ff26f061d0a3a8a8198db33bd10e06a3c705a2a7e3676ef5f56d4f8fe4692aa6bcd538b077c93abeebeca3abf05f46ed04cc2cc96e0de34d0b5ebf24d7beecb157a93d4dbffd93fc240a75865db5171a1baddfea41885414d94b733a76070ea84fb92af364b9533ee3d109896d16cdad6d721ba99f3dd6d61f2b1cbb5ae3c4f870b5cb678b446c5e373e36b8cecac993e0eb6b1b9a09bda9797c3c98a5dd1f97da742f1a46574b755fe57c7835dfc1dc919d7b4f131468bc5739796c9786c487f23e3fd75939781070ef724333a117150fce0db4b4fba860e0623d8786c7aa2e1e2c1067f9b2d9d1c00a0be71e06de5d6d6020f05ee5c3b34116161f941bbc5ce7c8e040c5bd870bc5bc3aab5d22deb213dc54bfcd85b5099aed96d8b6bb86236b3da8a640d45c92ffbfd268565e9e6a7e317e41f2b47e4935fd627897e4ee2af3e87e07f30ebdeb74e6d17a0fe63f54f7e9cc46f61e9e6fe8eed3328eec7f28ffd0dd4e661cbdef70fea1759ecc7c54ffe1fc86ec3c3dd3e8fec3f20ed9fd54e6d1f5930f92e6230f41d83d74729e6964c4b45ff0c0408b75fc6c6e9c0dd3866983d2342166b3f6808e0b3c8c6d1e5ddb901a74ef1674566349c622e98a8ca3f608f9934261fe27ee7fc2205cde55db9a04be51180682d1b08155f04c3960e52e7c9533c028a7749dec480ad33da51c99ef76a7dc1377f2fc5aeea9e14c71713c800986ff266f3f9f6008a87f1fb1a459f743075095b1ea50ab2165b01e7845469286dfe8db7b1088eb2b143f2fe5227a79f974cf4a781441dc30f6b83819da00c609138eaeced0cb2558795308a4735458b8cac9f2125721c1d5b952bba413fc9da0406ae5c905ff4639c54d235e81aba22840514a750f766ded02c11e351e84bd0ee8859b638d26e6b760fa8131c2235232b8a521cb3b48d32acfea6d0fe70a206e8de68851a6336c51a305f324eb65a26efe7c0c7b4db423cfde5bba4bef37a3615624cebfb4e6e41d766ca80651153e3b50df8fdf7082b545be1f03d4f4a546ef2a35a45a9563826e8201c72df065a9915abf7b28c037eeee192e2aba33e2bf6b1dd9997df30eb92551fd0ea5bb10055597ca2d86f5dfffeb578312ebdbe50d1711392ce86d6b76084c04f23d10659895c126fcd4b00f9e2a06a0fe0802c17844829513884756486bf3ef0bc25fdce16016ce2f47bb376440b7dc7dd84d36ea3b32767a2a39770f416bed15b8a4ac0f84f1d9ca6285ceb9931599bf0f19e6358ce55eca716caadffb4c23863a7d959f60d5f5f12634e4e89a498ae7480a437b442f242a9e0a7c7c8578f26f8843df69cb1be584a731cbd2117428c492e28016004b5a2c223d5cf8162b8d4f70c0b0d5f1fa3203fe79c831ccc656ab96effb7240d16f54196d3b307c8d07de2e74242cb7bdec226dbd75f0119d98543bbec8766fabb719f13947ef72166736597ffc55ec830856f854d867d0ab491a74e185ffb648b8d51c71d58e5c6158d209ef45680da5198402bdf4009a1242543850ae24c901cfcff033fc0c3fc3cff033d569058a7e3bd1ffcdf00d65ee5c8a8ae83cb50a6e49999929f7a2fa0003000000000858f3fddc0462052c05ea04d61057b0f1f21b3d75ccdd0ca4159aa9e5545eb317cf59b14ee6c714235b059ad9a52f4fff758b1980a8c2e8d4397affed1189580006490310928ab324a95dfaef637a46055629a3e75a1fcd77c687c11f1f0c39c5bb5372ce26e96fd66b8ae4dd89cabef0a93123034829dc39e96e2c4f0a35a5864fa2b5fe9a4d03328a6374ce1c5fca429824a2f0bbd7e299b89b6e5b28b84fd25ad68b794c3621a0f04cbe750b69219fe0a372c96b65376eb7275c8b1d9344eb4cd76827beb64f425d65bf241927ae4c5b6352492566fe9b602c9ea09f9ed6c4a65a7f1e93cc06af3351f4a73ca3f16795c1847eb2a6b61c49cb422ef17dea3ea963c86b352d6125a963a667c8038c0e48256a591b4ff1d1b14ba1c497bfe48c0b791276068d169d5e5f632a44128b4a47c607ab8f1a191f376c781189442091d84ec7cde2c287998a472432a3c6c77784f17183860c1674214303617cac0007104894a7339f2444bb8b897300f20832ed9c79b09fb1501d918a6ec447b76c0a7e23e897f9f8d539cdf887115cccf9293ec7afde4b0078005944fe293fce445768464611e5f598b3a6cf7cf3750e2089484e5592305bbd26fc75688051e3a30b1a323c5630e306104434f273917a2e319e56a0069e8248a406fef19043d071e336ba9bf05f9f21cca962a6dc157feceb304c47185e7c21e386072085d8dac4bbd3ef208420da738b6858d2e09d419ccd3de7ddfbde5f4a105c4de5c5d4ce6cb904a212839e49161fc3d40988379ddb4fa6902929f9872ca5ebf5a025a888d9f105cfe000c40f480793b4ac4d367386f4a173314da9f7e12d851d617cdcf002c207def5656c35f6da7ef640fd9e49dab5e77925881ebc74ddb6287fa1fbf488443efc23051880e4c124a4a634dd2975d80f040fa8c6db5c1e4ec6c53bbc9e2e9c9cc327696ca301b1c379a36b7c6ef3884464d8909140eaf049629aaac8f8cbbb3b3e6a74d0f8f01b34646c0042874cd2d2e6767a6d3c16b80983491089dc904143060d303adc84c1332291193e630e9e64fff9339e103958e721ec574ca8fedc2312f9e8f8a2c6c7e9a051438677e102481cc83ef9a246e49f87e6ad82770e740181433a9a6a1fb17729abef1cf02fc2580143dec0c65c7513334f26d7ddf0653bc13ddcc3e48e206db044f1f08c9319b2f2092a704386175fa8e0e3460c206c308da7be54fbb4dcbf06634eee97931a562cf500440dc7ecd77d1715a73b08494349b6249fa4547b7a5718dc821a36580105206838967877e1a3d899b83943dfa9923afaab96223314378d26e9e5275c430f70401972c9cdce283aeb26850c7648978b56acb0d91c836d6e31fc4a92b3ce6c6248cee94addee84a119d578fdd179db392a8080414b69da4277755b4abca851c3b000f28584964e79bafa366abf028817eeba93b1ecd353554900e982397f1ced2defd86c05205ca0fb6356c35aa898f205d982b549ce39a75e0f8f1b7c8248c4e3067f118984716304102d5cb2197d35dcda92982cec3225f695ebb7af07c1c217f583da8fffd57d0a720563677fee59d190d9815881936e4cb67017b38eabe0555e7fcbb93e272b15dc94c40c576157525b5350243793f079a1a12329d4aa26aec97ba255128fc221e9e1a5d1aaf144a15068328ba71b3227cd3da18e51328ec9d75bd9e384d27712354e8ebb890ad2845b55cb3e09f1c9d38409a65eb264a27e8e2b0bb204bcd2474d257dc792d31e1d1f37bea8f151102550f37a252fba319605920463fbc46c6294ceb34290c05b9e7905edfdedcc11ecac8ece3c5e59d5f530823f7b5294d5e53249280229c27ac26b4c265aca29b61022a8f1ac4d38933f3ece61f0171d1f2dc3066b200390211057f2c9ffeb53fa0b214268f384ce97568d041204cbe448db500ba7b121e3021020201f736657a86904855ee7d7ca32722b944da1b2bfc3ec5b5698d97af5b9dcccda5b85d9c1cd53aa97d87aaa78ab3bc7abac59532f15c9b6956d2e9b97781e2a8c359b3c65c9e697bc53fcbbe973760b9eb13b531cdd53263969a5286f435df44b52de8c146baefc31cfffd2594691478fad5a7e3f339d28cec9be44edbe71932e14b6a6b011b318517150582da6492eb9d9c83f916442dc477c84e63de1e4c7e68fec24949c4e6049ccf7d13968123c9c38a85fd0581169cd26ecfe2c915a6b824d26b4ef6590af3a13b455c798a306138485f706b91cd5d64b9843aaad929c1a9e5a82acd0fe0b6127af5809fea4ca298b68943068ccd49b29853c399bc4a55b31ba56122b76260924cd4a2bd5ecaa6691f8c3847ea9e798c80c12b9e7983ed435274fd923a8b89892de32471873778af8689f62c51a51a50aa75b79d7553246a8a1e1fd4cd2d4ec17b1650de6569a6deba308776dbac27b689b9c44d43148ffe524c5936c44b0294e9defebe51273883aafcbcac8c8cf6c88a2c8683ca13dc592ab10054d6b69a653979d14210c92413234a6da4f6b108826b51c3e77415092668c653351c7aa409cb2a4282d61e7f1074415d3de44bee5dbfe0f678f4d25dbac5be57ec845e5c5efd387a492f2fc4c8c0fbdf980fc651a8bf24edb1e88bce09faba40d97d143be157442e29287bd32eab3b278403b6f8c214f7367923b5c1f242dc536cdbd1dce755e41542c73b80e6fbce65b99f9b3201dd0c8f89c129fac9c83a1b44fb47245b19c1cd2206297bcdde4741c14f71e8b211ebd627028446e66de1d3feb0dc9e9355f9a5055a152dc6095fc87ac4fdfe56d28ac4d67d4cbeb7fd850545891580b7f256be8c5b39d281593bc1a88fafca83a913c0da6458b0ed65f57361aa813ed4227eb356fcef069adc59c3a8e6dd80c4d59ba18dd7a6b19ae2475d02eadcb54c970968e99735277770cc76c9246cfde652e062cbb68e89779789162848178a9ea94829f9afc603026d5dff4738d9bf20b6e8ab93e2f8a2588e185bab34bf4fa789f707721fd983a9b247d977b091732792af3c2d89a7c598c2d2497d23ec51f4f295f31b4b009aa931e5a15b7ea2c24c7d53941a69326bd7400022b78410c2c2c7997fbe6f9f37f72c6152ecb2a637fb26d8a218f48c4fde3ad708c393fff98d291582ee3e346158ef6ebf4b812b7968c41852f6c379a5839d54a32c6149274226b2dcdda3ff798400c299cb573da68af546786624461abf4901d55444d8ea0c0fec917e72ce58b1921084303366cf0094e8d0d44223888f1842fa38d7e7c87b12426e33f041ef0408d1936d8061d3688e104738e399e5c55f64e723c9aa0ec078fa541ba4ef03c2291e46f80c184da72946a878c7b094a74adaa6796589d208612caaa9fa4b2573fd12b1b49f8dca47e35b9061230d193a4f72b9763947844222a887104bb3b492dab315a97e61f1b886104d3d9e69b943c9ae73c461128b9c355f0ed4ab52922ac15eb36732c3193b71e91488c21fce1ff6ed9539c3499086208c1c90f36bef9fb43cfee4573204610ccbd77a1a5cf378ad4811840703e4bfe4485ec58528c1fd471acf4723d0795d203317ca0cb85ce6aa6cbcfcc2312f9408c1e9041325498f5c7340f8a596ed46a6bef2eedb1033bac4dd6703d229110c4d041ab6715759d00920bfde35e438adc96b8c0c2b5091785dc0231cf2cd6257944222c80d8a292abf058314f2f0a20b538e5cbe94a6c084700a1c58c1a350e0099c5a121c30634c05000441649eb31a70f1f4b36d81e9188dbf0c23b3e6a4062a17cdf9464e27b44222080c062bbd42564668f7baeb1d171c3460d8f8e48440390579856199131c50a5709f6e934e565860bf3680c4df2b740b347a2c4d8e2dd2cf9d35fd27b6bf1b59f18ddd27a94d0829c7ba912e9cce29c2939eeab968571314e4c2556637fc7e29f75b94aa1f9b16f58b0df12e9ee51e3f77e059a5234c7545bf1f476c51d4a6f32c5e46e79b72249aaa87027dfc724ddac4888e98c61299c1833bd0a75739c798a510525ceb695ad57fe3915c74e3dcb31cf16322a5a91f3f8922b85c5a730758c394f480d2da9298aa1dcbd921c4337590a4b4fe7fcbaca4db249c1770ce7953da395608f62dd8aaa61463bbfd6a2f84a948b51f9b9547528d6d3cccf7b2d59531a14b5ae263f3fb3cf537fc2f831dc92d455b5d49e28f38931d31a7dd1774213e7ef36a6f6c3c389457b26a5d5f6a5dec47d767fd7f91f93184d90be9f39e49958cf9948374ec84b49bab53026f62c279f68e99a213697d0d62b7db4a4fbb93596f0de3f5dac2671f6c45482d0bfdc605248f9a0a144e25c567df6ef986826817e949ec69891441ef364f34dd2561613892a474d1909cdda3e24b2fc5b9268a8cede3f02954ab9f6d33fc9bb239223c36ee593df9c6ec433759e4793b4266e18d187dab158322fe214aae48327295bb6ac08534e53bbd81293240927a26c9b5258cb21cd2461449c0409cd75ba6975e54394da2ce9492bd29ab221d4d3cd5df2d897985c88c387a8b2ceb7e02213c2d8534b6286caaf1c0f62393f4938e962ae68b120aceeaa8dd945c387381085efdac8f4694a92181068091593fffe076c33cdfae8e74c1f3f201bf719be3be568f701cdf65da5dbdbbbe1839d5274fdcdbef8eea118bbca72ac14b3c97a68a55fc3dcbca777f380a9c74e27d339d478606e35b7ee63ea9cdce10fd717eda47113333b5c29efb6c410fd97aa4329a389bd5dffe7153a6075a696b9c26b7e0e5cdc1e35a172287139d86ff72685d0f82d6d1c90b849d3bb12648743498c96297aa2f86f28aa7f5d97096df6bb81088b68f19463ebde86f3876b2ba1c3066edc4f58cbac015bcf2b25ed7f975583c1234b2e4ad2709b6e8bb72629678986ecad2fcc45d2e4ec0c4a54e45ea949962e33d41bad93c5dfa9bd0c9418f24a4c93a1f0ebebc12c63a825c369cca1440c9847c4a44949180ca6d2299e39affa6040dd33b4d3f3054e92c4ff4eb91477f682a21adfc3c55d286a634d5f95497bc2052e5bfcbb245bb063df33099ae547d542993ecccfb665bf6816a8b4e4316f50b150dea8bc5a1e61bee9151ad5ea7827c8d85c6a05ce2ceee956474fa555306b8b89aeda927d512a5c61936ba245a7f044ff554b9534272e057dcb3783a7bb24e5513858aaecb3dd1933070aad9f69a8d6f594f38492279ffe207e1e3b01cf39dd63496713f25c278ec9f93b632713d634255c92354be0ebae849324cd3d672ac1a98f58db3062e298495043a6dc61be3d872e91908f7af87016afe4943c8273bf6de247972455d208869b4e56eeaa51952c02561ea2d127bc095212e13061ad6b82f5bb3f04c6f73ebf74ce4bbe10f018f6520caf12a70f82b79d62b2eb40487c3f98b64b7cccf98119c4b25c6776dcdb07f5a6ce289e52c81cd3032bf777784ff16a5a1edc49b4d41abdce9d1ddc99c42fc992595992001db4dba15375aca07e2ec889e91473e2228db7b25a720b5309321722a22dbaf2df7097c35a944eda4d6936dc7986b4e832855f47cf5ef1c2592ce297ac7aebbc2694c56ae1bd7263cab47c2cbcad2475efc8d9e4b078b452df89e92d46fe8a2fcc4754cfae281d0f28148184225045b500072c200c2f6e78742183460448029712280c204000c230118801801b36c048c10002e05d30185dd0602f0e20001b1f8e001600208c2f6661326e78e161833b3a10c0210b0370c4e28b190d0b9371e3c3c386171d1d08e0788575741c80c31537dcc60c9f51008e56dcbec984cd24559b9cb182cb4992dbf03f7d35ae624fba26e57851edc35c634671a86275cbd12e7a8ed3937a86178e54988c1b359071c0e8e84000072ab6b4b4509a292c5dc723a902462432c33f3a6a20e3741c193668c8b8f131028e531836e59b2dddf72498241ca6c824c1c48c62c98468cbe30422488e52e865c259cc7599144c8f0f83868c1bc4410a76254c35e5d01972e218c51d3e74234fbceae3a2c83509e29ea4908c8e098595976c730ea71b277180c2fc3b5f417365051c9f402f66ab684dd9a49cf1047b2679d87438b53be9c4f12726f9a5cb3966e644c14be2426567b892e4d844992fa384974e722a19031c9af8c2a79c327f69c43399f03d55e73826653dfd94800313c7baaa983695e5db735c42b3d2a42e211d9a4e76c061092eb6538a6d4f3a95f78844bc603068d0814a942c4a9d7bc959649a8312597ac6bfcfc134653f055e704ca2cd96d35be7cd26c5d9c12189eb4f4ab2f56ba7f9cb1f1d8844f8c359c01109c52f9f8a49a1463ef4e080c496f3b5793406f94a713c22a94479cffb330d1a7f0e47641e437578e59724791fe0688471ec624c36e12e9ffc0c3818d1c7ce0de239d4b68f876311f6a4749d99c949ea74171c8a48b4207221277b54878b2311897a1b2ac9490e9d24594464a9f462b6181ee2e95d378baa702195213a212aa5cc1661912607380a61a5105d4b17325c47844834bb0e1bb389bdb141509b39654a997452150e41d45e56f7a131e76e3010ccb6ff9765cdb5df7100c22c6f338bedea6337c71f923ac4c6d8d9969ec30f273959f3426c736252810de6e8431f6f9b4dd6d51bad78f0e10e35e97ae16a36b81c7bb0e6b23bbe8268d428871edcd81bb6e299e7868d8e2f6c70e4213198f43909152e0e3c248b6aeccfbd7026f71dfc9263a5cad56322ab1dceca5fb79e52ea874b1d2ac9df3b49b63d15220e3aec9b4eb674824c848b1c73f024932a682699430eec6613cc5c4c12fd633c38e2606766fdac13beb334649819353a12e1804326f67ba26d0a6b52c7f1064a4c2953d8d9cad212051c6e38ce49312cc6aed54a62028e36e86fdba31965fe35fde15d7451c30b1570b0a124fc068dbe4ababf71aca1b0e931a7f474f25703fbf5b661e7f7dd4f03d6fe9e6a536e448f064fcc8fbb6292c6a6cf807a57b2982f74ce36c31aa59bf2cb6530de776fbadeba0a93c1be1cd365edf14be1312479c8d9ffedbccc8ae1e4714edf93698e923018931e5dc22e6c8c82818b6b920759759ff20b6ca98c9a975cfde885dd65dc73254d8a631738f724e52865d625c885e37b70d71435d805b7a06aa533a17d43264f0bac9c7cfa76f759bc2c306d5292fd9fe0763d163e8f76f149db2b2a7f05dd4c926b23aea2a6b782274e44d9445f0532c8eac996a6c4f95021293b939441dc24ee29b86371c44faad3132305ff3c13054d30d9ad556efd672814d772e70bab8f3b5fd28aa599c64e787a3dab6258edd03641fdfe8db2f92ec609138a8a21df3625d9bb6409efa6f35989e82a5157021933aa06f5b0fba127c11ef1d890329664cf914058647aa55f7e5f7e04322e652f5444c7722350eaf53f797e92565e04d784ad9c5d63d55c9c086fb4a77dce98ece443f872d0b60f5d08e74c7e5b52bb477b82d0b87486f02427cb815059a858279b749224fd832ac6ca1716bee6f341aaf9754e8ab75c690fca2d6f32a997e5e6815ffef9bd37659cb983f4ae633ccf71e8c03629a73c8bdab8e6427f0383a6a8522a8aa12088811806411084a275920e820a120483298ca230a528e5bc06124040318ce318886218084110044110044110841042083184105b9ad9b601bbbdbec15e53a8ed4a3259a1f92a8a12e2a21c0bab8e9be1921bab6483217ba93ec35c9fd534d9c376f1dd733124e8fe375f3480373e5a60e4c4426580e912d857c6811d7d8b7efa4437ee1f7f99e15e42749293036a0798f4cf2e53609145351878f4193c89462388905305bd9407b487b43bc602bb71caa90021302de6e490880f98b65c85a5408e37277d2183d531aabd4ef4e12bd2265db8c3d4167ab8d4ca08f56d8e102d942db85ff54506ae5266195d92d164e194ff9f20a2d35145dce140fe0e82eb8ec97f980f05895574fa10f1903e4e90d77d6581a2a85380b61ae47b3ba9b16d8925eedaf6c8cabfd4dca35e530407f5e03b2918f8d3e66fcbb5bd2b30922660fb7049b72ae6e08cee219c72f4cdf766616c4bf74e624b853e9819e122933e6c4b09b252c9f08a71c5887081e394154cecf9450dba0a1cf41e2daaf8b0d5c7f1fc1f5ffc68adddf54241e9a0d4b13fc5ec76796df3a08aed49fb4a4a4129106853bdffc512e45248d7451c36712c1c94b4748538ee5304a80fea3252f09414ac442602166d85d4915160a74561e786c79d846d15ab9b8784f49105fb17203ca4fa336b067398d56f9eccc0b4613e4406aa7c08e9d4e8a82ee78944b4883ce49b6c3a7b44c7d97975dda005851c7ddfddb474a775c7a364554e589bf5fa49e71e088bc0f53863a3f8a2af37698ae6ff7b3c87b22a2bf72b0d8dc877573a0bc1e4c6b08a6650622b0290da05441e20134c57f6a05efea8b3791f7dbcfcfdb18a663127debd90d89983bdbc7629a9ac04a69647e7c3905c2fab2e627717b19030aac8edd5fa44d6fb8b6ab7702c7eaeb19dd7edd0972c2159e5e6d981665b77239b70f2464742743d6cfa9ed07be2dace0294c5c00f086fdeaf10b053600382bf7b0188c2b185583c1d38838590c890744f55611704a69bf300eeeae9313995e6e4b0b9e45060dff6ca1acb98c763524aba19416c7e3a8b33bdb1525766cb2ab3ab951af7685cbf8bb2ecfbae7807a6bf15e94a79a1b2dcf2a466b64d14e2362f707d556d9b8b4c9928b0589caa9bfd24329c20a3d2ae2cdaad73e9908bdfd996d15696b244130abebc5650fbdb4afa52fdfeb847fa9d70107184fb76895ff7da7dc3bde81770fc165ad479ea46debeeee851bd2363cee8b593afe4bda4bbd76164425b5ef0ccd70cbe82339a32bbd70bd382db8454d144a32f10335bebcffb627fa4494ccd44cbadce6cb2672c475edbefd31a00d041e883de98ee2576b2870b5a22e8748890b77499a005f5042b551544a5936c3630c797235d5ce9db9e24a2ed700b642548b0cc5a339746e6a37a60ce3cc5dc58899fb50435d71b619accaa1cb2b2bf76c06e8975f2e5491a63bbe8fe7a6e24c220f82ecae46c4f196d4d254d1fc14e1e9b4e78796d13273c99bac2d12efb5245fe42414e681fcd4a98f2551861653bfc3f84e4c0344cd3aac9388c54c25daada8c7cfeb02c4cf76bd9ba84db41432908afcdbfc848aa8c4ce1947483a454492924afd6b01cac039feefbebe7ffd64c828d2de1062c1662d00159bdc1024c1035c97fb4d24e3251a4db31114cdf8748419c3f3e34b21c7582a66d061b24111f8fd168dd5447a73ff10bb79bc0bf3960864d05a1539e86780105fd92721eaadaa06e5b33a6df9518e5a893029d3e8e96539473506393f6ee817f17d7f19ae7aa5b369326b62f23e9ae300a2959ca54f77a4829d111c998a9b4a1e7e35f2074075018fb3469f7c1c1879332024b48a002834d039b1ef980f0d2f860abf42a1c8c69aa6d5675091f4f36f1800e4d04facd3ae0901e79cf2ee213ba44b8ca843b5f619aeeb7e640d001a63d3da00ed40cbd5731fb75651f6e816437bf6c25ec86f919a041e212a9ead9bb94c5a619b206d5f75438bd1353a741b8f9c1f18b44e1f5b068275704c473126af109e4f0ca24d4fd2c3578d2bb45fd9a495e061a4e0281258f9264a00518a63816fb2601bce29150d56e6a62ffaa6803920aec11b52e1012ea9c4b4d15930a2818c80d29d07a6e90d517e8d76b2afb33e09ff6790f1ba34bcad0f201a1e2c2d4a9d410d3e9095039cf7376b6e035434c9da803e9c30c2ee21b18785eb6ff065920bb378ee88654d48117624759039d76c4adef91d62786327a9fb270473c6305b3cae84250072ae749901c7824ac10529d783dcbaff91d4feb2867b6ab6d7d5128f421c4bc9a82b7d41b87b07ca06eb884a9ea050775910156bee10bd0963a3b4c24d7b8195231dca0f869b8f5c02b391bf4aaccc34ee408d49d6cb0cca2d82c4917fb28a5110f6d410554b1fc4a1f1994668990767baf3da796fec3410d867a3d08e5ad2866490007468077801ff27c02afb6f354d7d51d4ce480b702d859210b64e58242298e06db5ac95ec2aee5229053a7b836749b263049549deacf54431af024e6ba07dbd7c055102c07324420c7cbddcc104f00d3da0865df9b019d5ec4e02803f8cff09c9e31a91c9ce175dc41f44817f4283d6b3c29687d20c34b814dc2c1080d633837a850350cfa4a08e19625a89e5302d2c716f87db5fec7a9e708366cd4431b545cdb8c242ed8c81db9b1dccc14748414d87aa1dea366935dc008354ac6cdc40d360183455e8bd4ea2a0856c657b9a96bb355bdb362636fc50d874550ffd2134c4ec4577f30bb4d78597e07dab7f75ca303adc93f832b2ec0acf92dcb7973847b1b3b2d19dec298f01b5a7eeba5ca2fb4dbd5e045e0395d26c6f4e39e2d2ae0677ef37bab556a6fa280387246aee2675eb98d7f920ddd1b6980d69e84eee825e71c7d4daa967c80e3ac2304c75bff9c4d95e73d242ca06985f2f694cc9c6608b8a639cf68356fc62f3568de77b5fdce841fdbf3272a88be7ba474faefc451175252a5c3ebb8e5e70cbeb3669dd349870e05cdd5fd2a77b065e0fd60c6246535167f89673b4e57e0d8eb776303c473337bb49035a78b7d4cc5db8154ccf7bb8d5f8b1c5b0947f2664869116e4e643952697adf7116d4378183e283a08558ea48357cf60d7237525ea5d61d0301170983ac51e06b110f1e63dfb448092508a13126dd504f76f9970c0615ecc2f28b43a05f28f8994d06124e6bf93245e39408c988d49ca3250704d6cce15875b2a40fc28c5ed1d6684b59b4b504413d7949c7491b66ffe90ba72573a19cf68186466091cf29bdc0c036e5c121ce71d42421a4e5c2bf4e859927601bf3aa60846376073825fd7f35a161e0500b7ff33afce9c7f70316c66631a817485fe938a92788b8a8952ff0e104c291b580ff7764d37f9655585b2867e4fcd823131c101109abd984a97b77e2c33db7d3875c0a", "0x3a657468657265756d5f736368656d61": "0x03", "0x3a65787472696e7369635f696e646578": "0x00000000", @@ -45,9 +45,9 @@ "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x5c0d1176a568c1f92944340dbfed9e9c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0x1acc419fd6317a81bb62e2e9e88f2864ebb16ca143153df2ab3272f61534556c", + "0xc1fef3b7207c11a52df13c12884e772609bc3a1e532c9cb85d57feed02cbff8e": "0x48e80100", "0xc1fef3b7207c11a52df13c12884e77263864ade243c642793ebcfe9e16f454ca": "0x00ca9a3b00000000000000000000000000000000000000000000000000000000", "0xc1fef3b7207c11a52df13c12884e77264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", - "0xc1fef3b7207c11a52df13c12884e772697d99b40aea431100eb0e0bbac467815": "0x01", "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0xffffffffffffffffffffffffffffffff", From 5994d41fc0f35917b4b3423c1924693f83107560 Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 16:59:44 +0800 Subject: [PATCH 5/6] use ghcr.io/defich/metachain:7b261315b038acf886c189e5ac7ac6ed72bd2a56 --- packages/testcontainers/src/MetaChainContainer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/testcontainers/src/MetaChainContainer.ts b/packages/testcontainers/src/MetaChainContainer.ts index 92429487..f6842e51 100644 --- a/packages/testcontainers/src/MetaChainContainer.ts +++ b/packages/testcontainers/src/MetaChainContainer.ts @@ -12,7 +12,7 @@ export class MetaChainContainer extends GenericContainer { if (process?.env?.METACHAIN_DOCKER_IMAGE !== undefined) { return process.env.METACHAIN_DOCKER_IMAGE; } - return 'ghcr.io/defich/metachain:cc77218f794ac2c05e76007ca2c8b4e890686903'; + return 'ghcr.io/defich/metachain:7b261315b038acf886c189e5ac7ac6ed72bd2a56'; } protected getCmd(): string[] { From a0d65ceabc5c96bee6531a85d2ef35b3d8887998 Mon Sep 17 00:00:00 2001 From: canonbrother Date: Mon, 31 Oct 2022 17:26:41 +0800 Subject: [PATCH 6/6] use ghcr.io/defich/metachain:f0f2c8f0ce6b3d9d0017b860d110744b8a904c44 --- packages/testcontainers/src/MetaChainContainer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/testcontainers/src/MetaChainContainer.ts b/packages/testcontainers/src/MetaChainContainer.ts index f6842e51..b623eb14 100644 --- a/packages/testcontainers/src/MetaChainContainer.ts +++ b/packages/testcontainers/src/MetaChainContainer.ts @@ -12,7 +12,7 @@ export class MetaChainContainer extends GenericContainer { if (process?.env?.METACHAIN_DOCKER_IMAGE !== undefined) { return process.env.METACHAIN_DOCKER_IMAGE; } - return 'ghcr.io/defich/metachain:7b261315b038acf886c189e5ac7ac6ed72bd2a56'; + return 'ghcr.io/defich/metachain:f0f2c8f0ce6b3d9d0017b860d110744b8a904c44'; } protected getCmd(): string[] {