From 82961a571e8256bc829e2b1b9893038a89af1cb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 04:06:14 -0700 Subject: [PATCH 01/33] Update pytest requirement from <8.3.0,>=6.2.4 to >=6.2.4,<8.4.0 (#396) Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/6.2.4...8.3.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c03a7b84..6a66636e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ cluster = "sourmash_plugin_branchwater:Branchwater_Cluster" [project.optional-dependencies] test = [ - "pytest>=6.2.4,<8.3.0", + "pytest>=6.2.4,<8.4.0", "pytest-cov>=2.12,<6.0", "pytest-xdist", "pandas", From 5446a77cce4bbefa152c40cadc7074f1779bd32a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 11:10:51 +0000 Subject: [PATCH 02/33] Bump pyo3 from 0.22.1 to 0.22.2 (#395) Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.22.1 to 0.22.2. - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/v0.22.2/CHANGELOG.md) - [Commits](https://github.com/pyo3/pyo3/compare/v0.22.1...v0.22.2) --- updated-dependencies: - dependency-name: pyo3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 92fdc398..8ae01989 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1298,9 +1298,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e99090d12f6182924499253aaa1e73bf15c69cea8d2774c3c781e35badc3548" +checksum = "831e8e819a138c36e212f3af3fd9eeffed6bf1510a805af35b0edee5ffa59433" dependencies = [ "anyhow", "cfg-if", @@ -1317,9 +1317,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7879eb018ac754bba32cb0eec7526391c02c14a093121857ed09fbf1d1057d41" +checksum = "1e8730e591b14492a8945cdff32f089250b05f5accecf74aeddf9e8272ce1fa8" dependencies = [ "once_cell", "target-lexicon", @@ -1327,9 +1327,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2baa5559a411fc1cf519295f24c34b53d5d725818bc96b5abf94762da09041" +checksum = "5e97e919d2df92eb88ca80a037969f44e5e70356559654962cbb3316d00300c6" dependencies = [ "libc", "pyo3-build-config", @@ -1337,9 +1337,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049621c20a23f2def20f4fe67978d1da8d8a883d64b9c21362f3b776e254edc7" +checksum = "eb57983022ad41f9e683a599f2fd13c3664d7063a3ac5714cae4b7bee7d3f206" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -1349,9 +1349,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e969ee2e025435f1819d31a275ba4bb9cbbdf3ac535227fdbd85b9322ffe144" +checksum = "ec480c0c51ddec81019531705acac51bcdbeae563557c982aa8263bb96880372" dependencies = [ "heck 0.5.0", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 29800fb2..bd298d9b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ name = "sourmash_plugin_branchwater" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.22.1", features = ["extension-module", "anyhow"] } +pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.204", features = ["derive"] } sourmash = { version = "0.14.1", features = ["branchwater"] } From 29c3b84694254d6218d22f9970274f331ee05db1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:36:23 -0700 Subject: [PATCH 03/33] Bump predicates from 3.1.0 to 3.1.2 (#403) Bumps [predicates](https://github.com/assert-rs/predicates-rs) from 3.1.0 to 3.1.2. - [Changelog](https://github.com/assert-rs/predicates-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/predicates-rs/compare/v3.1.0...v3.1.2) --- updated-dependencies: - dependency-name: predicates dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ae01989..9a222a13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1172,9 +1172,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.1.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" dependencies = [ "anstyle", "difflib", diff --git a/Cargo.toml b/Cargo.toml index bd298d9b..c6de6945 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ streaming-stats = "0.2.3" [dev-dependencies] assert_cmd = "2.0.14" assert_matches = "1.5.0" -predicates = "3.1.0" +predicates = "3.1.2" tempfile = "3.10.0" [profile.release] From 40990dac46daa081e0e1c90b88bf3f8d09dcd854 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:36:37 -0700 Subject: [PATCH 04/33] Bump tempfile from 3.10.1 to 3.11.0 (#405) Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.10.1 to 3.11.0. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.10.1...v3.11.0) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 5 +++-- Cargo.toml | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9a222a13..c4dc0b57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1827,12 +1827,13 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.10.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", "windows-sys", ] diff --git a/Cargo.toml b/Cargo.toml index c6de6945..a8ecf768 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ env_logger = { version = "0.11.3", optional = true } simple-error = "0.3.1" anyhow = "1.0.86" zip = { version = "2.0", default-features = false } -tempfile = "3.10" +tempfile = "3.11" needletail = "0.5.1" csv = "1.3.0" camino = "1.1.7" @@ -32,7 +32,7 @@ streaming-stats = "0.2.3" assert_cmd = "2.0.14" assert_matches = "1.5.0" predicates = "3.1.2" -tempfile = "3.10.0" +tempfile = "3.11.0" [profile.release] #target-cpu=native From 1c379761444d0b2c09d22eb88b2823ae0a3cdc1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:41:35 +0000 Subject: [PATCH 05/33] Bump serde_json from 1.0.120 to 1.0.122 (#404) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.120 to 1.0.122. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.120...v1.0.122) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c4dc0b57..18d6d1ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1636,11 +1636,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] diff --git a/Cargo.toml b/Cargo.toml index a8ecf768..1b895ec0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.204", features = ["derive"] } sourmash = { version = "0.14.1", features = ["branchwater"] } -serde_json = "1.0.120" +serde_json = "1.0.122" niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.3", optional = true } From bcec1caba0aede5e1cfcde527ee2d140a3078618 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:06:34 -0700 Subject: [PATCH 06/33] Bump assert_cmd from 2.0.14 to 2.0.15 (#402) Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.14 to 2.0.15. - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.14...v2.0.15) --- updated-dependencies: - dependency-name: assert_cmd dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18d6d1ee..4b986644 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -143,9 +143,9 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.0.14" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" +checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" dependencies = [ "anstyle", "bstr", diff --git a/Cargo.toml b/Cargo.toml index 1b895ec0..eee7502f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ rustworkx-core = "0.15.1" streaming-stats = "0.2.3" [dev-dependencies] -assert_cmd = "2.0.14" +assert_cmd = "2.0.15" assert_matches = "1.5.0" predicates = "3.1.2" tempfile = "3.11.0" From 213f157f6fa861e46ef093462e3d8337836adf1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:11:35 +0000 Subject: [PATCH 07/33] Bump sourmash from 0.14.1 to 0.15.0 (#399) Bumps [sourmash](https://github.com/sourmash-bio/sourmash) from 0.14.1 to 0.15.0. - [Release notes](https://github.com/sourmash-bio/sourmash/releases) - [Changelog](https://github.com/sourmash-bio/sourmash/blob/latest/doc/release.md) - [Commits](https://github.com/sourmash-bio/sourmash/compare/r0.14.1...r0.15.0) --- updated-dependencies: - dependency-name: sourmash dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 205 ++++------------------------------------------------- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 194 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b986644..c42fbf5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,17 +8,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.11" @@ -223,18 +212,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "bstr" version = "1.9.1" @@ -261,28 +238,6 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "bytecheck" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "bytecount" version = "0.6.8" @@ -291,9 +246,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" [[package]] name = "byteorder" @@ -301,12 +256,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "bytes" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" - [[package]] name = "bzip2" version = "0.4.4" @@ -411,9 +360,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "counter" -version = "0.5.7" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" +checksum = "f009fcafa949dc1fc46a762dae84d0c2687d3b550906b633c4979d58d2c6ae52" dependencies = [ "num-traits", ] @@ -595,12 +544,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - [[package]] name = "getrandom" version = "0.2.15" @@ -632,22 +575,13 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] - [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash", "allocator-api2", "rayon", ] @@ -709,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown", "rayon", ] @@ -1276,26 +1210,6 @@ dependencies = [ "yansi", ] -[[package]] -name = "ptr_meta" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "pyo3" version = "0.22.2" @@ -1369,12 +1283,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.8.5" @@ -1490,49 +1398,11 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" -[[package]] -name = "rend" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "rkyv" -version = "0.7.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" -dependencies = [ - "bitvec", - "bytecheck", - "bytes", - "hashbrown 0.12.3", - "ptr_meta", - "rend", - "rkyv_derive", - "seahash", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.7.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "roaring" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7699249cc2c7d71939f30868f47e9d7add0bdc030d90ee10bfd16887ff8bb1c8" +checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" dependencies = [ "bytemuck", "byteorder", @@ -1579,9 +1449,9 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef8108bdaf5b590d2ea261c6ca9b1795cbf253d0733b2e209b7990c95ed23843" dependencies = [ - "ahash 0.8.11", + "ahash", "fixedbitset", - "hashbrown 0.14.5", + "hashbrown", "indexmap", "ndarray", "num-traits", @@ -1608,12 +1478,6 @@ dependencies = [ "bytemuck", ] -[[package]] -name = "seahash" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" - [[package]] name = "serde" version = "1.0.204" @@ -1665,12 +1529,6 @@ dependencies = [ "wide", ] -[[package]] -name = "simdutf8" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" - [[package]] name = "simple-error" version = "0.3.1" @@ -1691,9 +1549,9 @@ checksum = "bceb57dc07c92cdae60f5b27b3fa92ecaaa42fe36c55e22dbfb0b44893e0b1f7" [[package]] name = "sourmash" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f217cb77fa00caf85439aafa5ad4c6fa41cbff81a23149fa60a74a0268bd02f5" +checksum = "8655e639cc4a32fa1422629c9b4ff603ee09cf6d04a97eacd37594382472d437" dependencies = [ "az", "byteorder", @@ -1722,7 +1580,6 @@ dependencies = [ "piz", "primal-check", "rayon", - "rkyv", "roaring", "rocksdb", "roots", @@ -1814,12 +1671,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "target-lexicon" version = "0.12.14" @@ -1865,21 +1716,6 @@ dependencies = [ "syn 2.0.66", ] -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "twox-hash" version = "1.6.3" @@ -1935,12 +1771,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" - [[package]] name = "vcpkg" version = "0.2.15" @@ -1990,8 +1820,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", - "serde", - "serde_json", "wasm-bindgen-macro", ] @@ -2141,15 +1969,6 @@ version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "xz2" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index eee7502f..d0a80d94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.204", features = ["derive"] } -sourmash = { version = "0.14.1", features = ["branchwater"] } +sourmash = { version = "0.15.0", features = ["branchwater"] } serde_json = "1.0.122" niffler = "2.4.0" log = "0.4.22" From 763e6897372ff7a15703246ea4d923489e80181f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:51:05 -0700 Subject: [PATCH 08/33] Bump env_logger from 0.11.3 to 0.11.5 (#401) Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.11.3 to 0.11.5. - [Release notes](https://github.com/rust-cli/env_logger/releases) - [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.3...v0.11.5) --- updated-dependencies: - dependency-name: env_logger dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c42fbf5a..5c08f73d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -486,9 +486,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index d0a80d94..48bec1c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ sourmash = { version = "0.15.0", features = ["branchwater"] } serde_json = "1.0.122" niffler = "2.4.0" log = "0.4.22" -env_logger = { version = "0.11.3", optional = true } +env_logger = { version = "0.11.5", optional = true } simple-error = "0.3.1" anyhow = "1.0.86" zip = { version = "2.0", default-features = false } From 5ae424dda1e7c169b80bc6ef904c138abe92d897 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:28:59 +0000 Subject: [PATCH 09/33] Bump tempfile from 3.11.0 to 3.12.0 (#414) Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.11.0 to 3.12.0. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/commits) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 59 +++++++++++++++++++++++++++++++----------------------- Cargo.toml | 4 ++-- 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c08f73d..1eae5794 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -93,7 +93,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -103,7 +103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -510,7 +510,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1440,7 +1440,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1679,15 +1679,15 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", "once_cell", "rustix", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1905,11 +1905,20 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -1923,51 +1932,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "xz2" diff --git a/Cargo.toml b/Cargo.toml index 48bec1c2..f359d165 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ env_logger = { version = "0.11.5", optional = true } simple-error = "0.3.1" anyhow = "1.0.86" zip = { version = "2.0", default-features = false } -tempfile = "3.11" +tempfile = "3.12" needletail = "0.5.1" csv = "1.3.0" camino = "1.1.7" @@ -32,7 +32,7 @@ streaming-stats = "0.2.3" assert_cmd = "2.0.15" assert_matches = "1.5.0" predicates = "3.1.2" -tempfile = "3.11.0" +tempfile = "3.12.0" [profile.release] #target-cpu=native From 3cf2a9e750d0cec4bd3c7f8ac5c4294e5ca36b89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:33:33 +0000 Subject: [PATCH 10/33] Bump assert_cmd from 2.0.15 to 2.0.16 (#412) Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.15 to 2.0.16. - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.15...v2.0.16) --- updated-dependencies: - dependency-name: assert_cmd dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1eae5794..6197e881 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,13 +132,14 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", diff --git a/Cargo.toml b/Cargo.toml index f359d165..d007dff0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ rustworkx-core = "0.15.1" streaming-stats = "0.2.3" [dev-dependencies] -assert_cmd = "2.0.15" +assert_cmd = "2.0.16" assert_matches = "1.5.0" predicates = "3.1.2" tempfile = "3.12.0" From a888069a78eb28dfcc7ab0f3115f3793f63a42fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:38:24 +0000 Subject: [PATCH 11/33] Bump serde from 1.0.204 to 1.0.206 (#413) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.204 to 1.0.206. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.204...v1.0.206) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6197e881..35761b7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1481,18 +1481,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d007dff0..ce594b7d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" -serde = { version = "1.0.204", features = ["derive"] } +serde = { version = "1.0.206", features = ["derive"] } sourmash = { version = "0.15.0", features = ["branchwater"] } serde_json = "1.0.122" niffler = "2.4.0" From 62f76e0c94202c1dfef1ad39a8e673165d5c8843 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:43:49 +0000 Subject: [PATCH 12/33] Bump serde_json from 1.0.122 to 1.0.124 (#411) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.122 to 1.0.124. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.122...v1.0.124) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35761b7d..ec8ecc00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1501,9 +1501,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index ce594b7d..3bcf70b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.206", features = ["derive"] } sourmash = { version = "0.15.0", features = ["branchwater"] } -serde_json = "1.0.122" +serde_json = "1.0.124" niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } From a7804407f03db4ca6d0b37742e49f39309be39ba Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Mon, 12 Aug 2024 12:48:49 -0700 Subject: [PATCH 13/33] MRG: provide `--internal-storage` and `--no-internal-storage` for `index` (#390) * add some tests for subdir location * more changes... * fix warning * reminder to clean up * make an actually breaking test * upd * yay a more complete set of breakages * comment * force error exit in mastiff multigather for failed gather * upd sourmash core * finally, sensical error messages :laugh: * Use the internalize_storage method from revindex to make a self-contained rocksdb index * make use of internal storage an option, default=True * fix cargo fmt * remove verbose error --------- Co-authored-by: Luiz Irber --- src/index.rs | 8 +- src/lib.rs | 10 +- .../sourmash_plugin_branchwater/__init__.py | 11 +- src/python/tests/conftest.py | 17 +++ src/python/tests/test_index.py | 133 +++++++++++++----- src/python/tests/test_multigather.py | 76 ++++++---- 6 files changed, 191 insertions(+), 64 deletions(-) diff --git a/src/index.rs b/src/index.rs index 3747e6f5..0cb6a97d 100644 --- a/src/index.rs +++ b/src/index.rs @@ -1,4 +1,5 @@ use sourmash::index::revindex::RevIndex; +use sourmash::index::revindex::RevIndexOps; use sourmash::prelude::*; use std::path::Path; @@ -10,6 +11,7 @@ pub fn index>( output: P, colors: bool, allow_failed_sigpaths: bool, + use_internal_storage: bool, ) -> Result<(), Box> { println!("Loading siglist"); @@ -20,11 +22,15 @@ pub fn index>( allow_failed_sigpaths, )?; - RevIndex::create( + let mut index = RevIndex::create( output.as_ref(), collection.select(selection)?.try_into()?, colors, )?; + if use_internal_storage { + index.internalize_storage()?; + } + Ok(()) } diff --git a/src/lib.rs b/src/lib.rs index 4c1b7032..42fef4b8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -179,10 +179,18 @@ fn do_index( moltype: String, output: String, colors: bool, + use_internal_storage: bool, ) -> anyhow::Result { let selection = build_selection(ksize, scaled, &moltype); let allow_failed_sigpaths = false; - match index::index(siglist, &selection, output, colors, allow_failed_sigpaths) { + match index::index( + siglist, + &selection, + output, + colors, + allow_failed_sigpaths, + use_internal_storage, + ) { Ok(_) => Ok(0), Err(e) => { eprintln!("Error: {e}"); diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index 1e4240d2..1a5c3f9b 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -190,6 +190,12 @@ def __init__(self, p): help = 'molecule type (DNA, protein, dayhoff, or hp; default DNA)') p.add_argument('-c', '--cores', default=0, type=int, help='number of cores to use (default is all available)') + p.add_argument('--internal-storage', default=True, action='store_true', + help="build indexes that contain sketches and are relocatable (default: True)") + p.add_argument('--no-internal-storage', '--no-store-sketches', + action='store_false', + help="do not store sketches in the index; index may not be relocatable (default: False)", + dest='internal_storage') def main(self, args): notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} ") @@ -205,7 +211,8 @@ def main(self, args): args.scaled, args.moltype, args.output, - False) # colors - currently must be false? + False, # colors - currently must be false? + args.internal_storage) if status == 0: notify(f"...index is done! results in '{args.output}'") return status @@ -217,7 +224,7 @@ class Branchwater_Check(CommandLinePlugin): def __init__(self, p): super().__init__(p) p.add_argument('index', - help='index file') + help="RocksDB index file created with 'index'") p.add_argument('--quick', action='store_true') def main(self, args): diff --git a/src/python/tests/conftest.py b/src/python/tests/conftest.py index 49ebcee7..052837f6 100644 --- a/src/python/tests/conftest.py +++ b/src/python/tests/conftest.py @@ -6,3 +6,20 @@ def runtmp(): with TempDirectory() as location: yield RunnerContext(location) + + +@pytest.fixture(params=["--internal-storage", "--no-internal-storage"]) +def toggle_internal_storage(request): + return request.param + +@pytest.fixture(params=[True, False]) +def zip_query(request): + return request.param + +@pytest.fixture(params=[True, False]) +def zip_against(request): + return request.param + +@pytest.fixture(params=[True, False]) +def indexed(request): + return request.param diff --git a/src/python/tests/test_index.py b/src/python/tests/test_index.py index f490d2aa..69faf8ae 100644 --- a/src/python/tests/test_index.py +++ b/src/python/tests/test_index.py @@ -2,6 +2,7 @@ import pytest import pandas import sourmash +import shutil from . import sourmash_tst_utils as utils @@ -24,7 +25,7 @@ def test_installed(runtmp): assert 'usage: index' in runtmp.last_result.err -def test_index(runtmp): +def test_index(runtmp, toggle_internal_storage): # test basic index! siglist = runtmp.output('db-sigs.txt') @@ -34,50 +35,52 @@ def test_index(runtmp): make_file_list(siglist, [sig2, sig47, sig63]) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', siglist, - '-o', output) + '-o', output, toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) assert 'index is done' in runtmp.last_result.err -def test_index_protein(runtmp): +def test_index_protein(runtmp, toggle_internal_storage): sigs = get_test_data('protein.zip') output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', sigs, '-k', '19', '-s', '100', - '--moltype', 'protein', '-o', output) + '--moltype', 'protein', '-o', output, + toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) assert 'index is done' in runtmp.last_result.err -def test_index_dayhoff(runtmp): +def test_index_dayhoff(runtmp, toggle_internal_storage): sigs = get_test_data('dayhoff.zip') output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', sigs, '-k', '19', '-s', '100', - '--moltype', 'dayhoff', '-o', output) + '--moltype', 'dayhoff', '-o', output, + toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) assert 'index is done' in runtmp.last_result.err -def test_index_protein(runtmp): +def test_index_protein(runtmp, toggle_internal_storage): sigs = get_test_data('hp.zip') output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', sigs, '-k', '19', '-s', '100', - '--moltype', 'hp', '-o', output) + '--moltype', 'hp', '-o', output, toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) assert 'index is done' in runtmp.last_result.err -def test_index_missing_siglist(runtmp, capfd): +def test_index_missing_siglist(runtmp, capfd, toggle_internal_storage): # test missing siglist file siglist = runtmp.output('db-sigs.txt') output = runtmp.output('out.db') @@ -85,21 +88,21 @@ def test_index_missing_siglist(runtmp, capfd): with pytest.raises(utils.SourmashCommandFailed): runtmp.sourmash('scripts', 'index', siglist, - '-o', output) + '-o', output, toggle_internal_storage) captured = capfd.readouterr() print(captured.err) assert 'Error: No such file or directory' in captured.err -def test_index_sig(runtmp, capfd): +def test_index_sig(runtmp, capfd, toggle_internal_storage): # test index with a .sig.gz file instead of pathlist # (should work now) sig2 = get_test_data('2.fa.sig.gz') output = runtmp.output('out.db') runtmp.sourmash('scripts', 'index', sig2, - '-o', output) + '-o', output, toggle_internal_storage) captured = capfd.readouterr() print(captured.err) @@ -107,7 +110,7 @@ def test_index_sig(runtmp, capfd): assert 'index is done' in runtmp.last_result.err -def test_index_manifest(runtmp, capfd): +def test_index_manifest(runtmp, capfd, toggle_internal_storage): # test index with a manifest file sig2 = get_test_data('2.fa.sig.gz') output = runtmp.output('out.db') @@ -115,7 +118,7 @@ def test_index_manifest(runtmp, capfd): runtmp.sourmash("sig", "manifest", sig2, "-o", sig_mf) runtmp.sourmash('scripts', 'index', sig_mf, - '-o', output) + '-o', output, toggle_internal_storage) captured = capfd.readouterr() print(captured.err) @@ -132,7 +135,7 @@ def test_index_bad_siglist_2(runtmp, capfd): sig63 = get_test_data('63.fa.sig.gz') make_file_list(against_list, [sig2, "no-exist"]) - db = runtmp.output('db.rdb') + db = runtmp.output('db.rocksdb') with pytest.raises(utils.SourmashCommandFailed): runtmp.sourmash('scripts', 'index', against_list, @@ -164,7 +167,7 @@ def test_index_empty_siglist(runtmp, capfd): def test_index_nomatch(runtmp, capfd): # test index with a siglist file that has (only) a non-matching ksize sig siglist = runtmp.output('against.txt') - db = runtmp.output('db.rdb') + db = runtmp.output('db.rocksdb') sig1 = get_test_data('1.fa.k21.sig.gz') make_file_list(siglist, [sig1]) @@ -184,7 +187,7 @@ def test_index_nomatch(runtmp, capfd): def test_index_nomatch_sig_in_siglist(runtmp, capfd): # test index with a siglist file that has both matching and non-matching sigs siglist = runtmp.output('against.txt') - db = runtmp.output('db.rdb') + db = runtmp.output('db.rocksdb') sig2 = get_test_data('2.fa.sig.gz') sig1 = get_test_data('1.fa.k21.sig.gz') @@ -201,7 +204,7 @@ def test_index_nomatch_sig_in_siglist(runtmp, capfd): assert os.path.exists(db) -def test_index_zipfile(runtmp, capfd): +def test_index_zipfile(runtmp, capfd, toggle_internal_storage): # test basic index from sourmash zipfile siglist = runtmp.output('db-sigs.txt') @@ -215,10 +218,48 @@ def test_index_zipfile(runtmp, capfd): runtmp.sourmash('sig', 'cat', siglist, '-o', zipf) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') + + runtmp.sourmash('scripts', 'index', zipf, + '-o', output, toggle_internal_storage) + assert os.path.exists(output) + print(runtmp.last_result.err) + + assert 'index is done' in runtmp.last_result.err + captured = capfd.readouterr() + print(captured.err) + + +def test_index_zipfile_subdir(runtmp, capfd, toggle_internal_storage): + # test index from sourmash zipfile in different directory. + + # this was a tough test to get to fail!! have to: + # * use non-abspath for zip file creation + # * use non-abspath to zip file for indexing + # so that the relative path gets things wrong. + + siglist = runtmp.output('db-sigs.txt') + + sig2 = get_test_data('2.fa.sig.gz') + sig47 = get_test_data('47.fa.sig.gz') + sig63 = get_test_data('63.fa.sig.gz') + + shutil.copyfile(sig2, runtmp.output('2.fa.sig.gz')) + shutil.copyfile(sig47, runtmp.output('47.fa.sig.gz')) + shutil.copyfile(sig63, runtmp.output('63.fa.sig.gz')) + + os.mkdir(runtmp.output('subdir')) + + zipf = 'sigs.zip' + + runtmp.sourmash('sig', 'cat', '2.fa.sig.gz', '47.fa.sig.gz', + '63.fa.sig.gz', '-o', zipf) + + output = runtmp.output('subdir/db.rocksdb') runtmp.sourmash('scripts', 'index', zipf, - '-o', output) + '-o', output, in_directory=runtmp.output(''), + toggle_internal_storage=toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) @@ -226,8 +267,13 @@ def test_index_zipfile(runtmp, capfd): captured = capfd.readouterr() print(captured.err) + runtmp.sourmash('scripts', 'check', 'db.rocksdb', + in_directory=runtmp.output('subdir')) + runtmp.sourmash('scripts', 'check', 'subdir/db.rocksdb', + in_directory=runtmp.output('')) -def test_index_zipfile_repeated_md5sums(runtmp, capfd): + +def test_index_zipfile_repeated_md5sums(runtmp, capfd, toggle_internal_storage): # test that we're reading all files, including repeated md5sums siglist = runtmp.output('db-sigs.txt') @@ -242,10 +288,10 @@ def test_index_zipfile_repeated_md5sums(runtmp, capfd): zipf = runtmp.output('sigs.zip') runtmp.sourmash('sig', 'cat', siglist, '-o', zipf) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', zipf, - '-o', output) + '-o', output, toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) @@ -255,7 +301,7 @@ def test_index_zipfile_repeated_md5sums(runtmp, capfd): assert 'index is done' in runtmp.last_result.err -def test_index_zipfile_multiparam(runtmp, capfd): +def test_index_zipfile_multiparam(runtmp, capfd, toggle_internal_storage): # test index from sourmash zipfile with multiple ksizes / scaled /moltype siglist = runtmp.output('db-sigs.txt') @@ -272,10 +318,10 @@ def test_index_zipfile_multiparam(runtmp, capfd): runtmp.sourmash('sig', 'cat', siglist, '-o', zipf) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', zipf, - '-o', output) + '-o', output, toggle_internal_storage) assert os.path.exists(output) print(runtmp.last_result.err) @@ -306,7 +352,7 @@ def test_index_zipfile_bad(runtmp, capfd): assert "Couldn't find End Of Central Directory Record" in captured.err -def test_index_check(runtmp): +def test_index_check(runtmp, toggle_internal_storage): # test check index siglist = runtmp.output('db-sigs.txt') @@ -315,10 +361,10 @@ def test_index_check(runtmp): make_file_list(siglist, [sig2, sig47]) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', siglist, - '-o', output) + '-o', output, toggle_internal_storage) runtmp.sourmash('scripts', 'check', output) print(runtmp.last_result.err) @@ -326,7 +372,7 @@ def test_index_check(runtmp): assert 'index is ok' in runtmp.last_result.err -def test_index_check_quick(runtmp): +def test_index_check_quick(runtmp, toggle_internal_storage): # test check index siglist = runtmp.output('db-sigs.txt') @@ -335,12 +381,33 @@ def test_index_check_quick(runtmp): make_file_list(siglist, [sig2, sig47]) - output = runtmp.output('db.rdb') + output = runtmp.output('db.rocksdb') runtmp.sourmash('scripts', 'index', siglist, - '-o', output) + '-o', output, toggle_internal_storage) runtmp.sourmash('scripts', 'check', '--quick', output) print(runtmp.last_result.err) assert 'index is ok' in runtmp.last_result.err + + +def test_index_subdir(runtmp, toggle_internal_storage): + # test basic index & output to subdir + siglist = runtmp.output('db-sigs.txt') + + sig2 = get_test_data('2.fa.sig.gz') + sig47 = get_test_data('47.fa.sig.gz') + sig63 = get_test_data('63.fa.sig.gz') + + make_file_list(siglist, [sig2, sig47, sig63]) + + os.mkdir(runtmp.output('subdir')) + output = runtmp.output('subdir/db.rocksdb') + + runtmp.sourmash('scripts', 'index', siglist, + '-o', output, toggle_internal_storage) + assert os.path.exists(output) + print(runtmp.last_result.err) + + runtmp.sourmash('scripts', 'check', output) diff --git a/src/python/tests/test_multigather.py b/src/python/tests/test_multigather.py index 132262d2..b3649ee9 100644 --- a/src/python/tests/test_multigather.py +++ b/src/python/tests/test_multigather.py @@ -21,11 +21,12 @@ def make_file_list(filename, paths): fp.write("\n") -def index_siglist(runtmp, siglist, db, ksize=31, scaled=1000, moltype='DNA'): +def index_siglist(runtmp, siglist, db, *, ksize=31, scaled=1000, moltype='DNA', + toggle_internal_storage='--internal-storage'): # build index runtmp.sourmash('scripts', 'index', siglist, '-o', db, '-k', str(ksize), '--scaled', str(scaled), - '--moltype', moltype) + '--moltype', moltype, toggle_internal_storage) return db @@ -41,7 +42,6 @@ def zip_siglist(runtmp, siglist, db): '-o', db) return db -@pytest.mark.parametrize('zip_against', [False, True]) def test_simple(runtmp, zip_against): # test basic execution! query = get_test_data('SRR606249.sig.gz') @@ -203,8 +203,7 @@ def test_simple_read_manifests(runtmp): assert {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'intersect_bp', 'gather_result_rank'}.issubset(keys) -@pytest.mark.parametrize('zip_query', [False, True]) -def test_simple_indexed(runtmp, zip_query): +def test_simple_indexed(runtmp, zip_query, toggle_internal_storage): # test basic execution! query = get_test_data('SRR606249.sig.gz') sig2 = get_test_data('2.fa.sig.gz') @@ -221,7 +220,7 @@ def test_simple_indexed(runtmp, zip_query): query_list = zip_siglist(runtmp, query_list, runtmp.output('query.zip')) g_output = runtmp.output('out.csv') - against_db = index_siglist(runtmp, against_list, runtmp.output('test.rocksdb')) + against_db = index_siglist(runtmp, against_list, runtmp.output('test.rocksdb'), toggle_internal_storage=toggle_internal_storage) runtmp.sourmash('scripts', 'fastmultigather', query_list, against_db, '-s', '100000', '-t', '0', '-o', g_output) @@ -240,7 +239,7 @@ def test_simple_indexed(runtmp, zip_query): assert keys == expected_keys -def test_simple_indexed_query_manifest(runtmp): +def test_simple_indexed_query_manifest(runtmp, toggle_internal_storage): # test basic execution! query = get_test_data('SRR606249.sig.gz') sig2 = get_test_data('2.fa.sig.gz') @@ -254,7 +253,8 @@ def test_simple_indexed_query_manifest(runtmp): runtmp.sourmash("sig", "manifest", query, "-o", query_mf) g_output = runtmp.output('out.csv') - against_db = index_siglist(runtmp, against_list, runtmp.output('db')) + against_db = index_siglist(runtmp, against_list, runtmp.output('db'), + toggle_internal_storage=toggle_internal_storage) runtmp.sourmash('scripts', 'fastmultigather', query_mf, against_db, '-s', '100000', '-t', '0', '-o', g_output) @@ -273,9 +273,7 @@ def test_simple_indexed_query_manifest(runtmp): assert keys == expected_keys -@pytest.mark.parametrize('zip_query', [False, True]) -@pytest.mark.parametrize('indexed', [False, True]) -def test_missing_querylist(runtmp, capfd, indexed, zip_query): +def test_missing_querylist(runtmp, capfd, indexed, zip_query, toggle_internal_storage): # test missing querylist query_list = runtmp.output('query.txt') against_list = runtmp.output('against.txt') @@ -290,7 +288,8 @@ def test_missing_querylist(runtmp, capfd, indexed, zip_query): make_file_list(against_list, [sig2, sig47, sig63]) if indexed: - against_list = index_siglist(runtmp, against_list, runtmp.output('db')) + against_list = index_siglist(runtmp, against_list, runtmp.output('db'), + toggle_internal_storage=toggle_internal_storage) with pytest.raises(utils.SourmashCommandFailed): runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, @@ -301,7 +300,6 @@ def test_missing_querylist(runtmp, capfd, indexed, zip_query): assert 'Error: No such file or directory' in captured.err -@pytest.mark.parametrize('indexed', [False, True]) def test_sig_query(runtmp, capfd, indexed): # sig file is now fine as a query query = get_test_data('SRR606249.sig.gz') @@ -347,7 +345,6 @@ def test_sig_query(runtmp, capfd, indexed): assert {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'gather_result_rank', 'intersect_bp'}.issubset(keys) -@pytest.mark.parametrize('indexed', [False, True]) def test_bad_query(runtmp, capfd, indexed): # test with a bad query (a .sig.gz file renamed as zip file) against_list = runtmp.output('against.txt') @@ -376,7 +373,6 @@ def test_bad_query(runtmp, capfd, indexed): assert "InvalidArchive" in captured.err -@pytest.mark.parametrize('indexed', [False, True]) def test_missing_query(runtmp, capfd, indexed): # test missing query query_list = runtmp.output('query.txt') @@ -401,8 +397,6 @@ def test_missing_query(runtmp, capfd, indexed): assert "WARNING: 1 query paths failed to load. See error messages above." -@pytest.mark.parametrize('indexed', [False, True]) -@pytest.mark.parametrize("zip_query", [False, True]) def test_nomatch_query(runtmp, capfd, indexed, zip_query): # test nomatch file in querylist query_list = runtmp.output('query.txt') @@ -429,7 +423,6 @@ def test_nomatch_query(runtmp, capfd, indexed, zip_query): assert "WARNING: skipped 1 query paths - no compatible signatures." in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_missing_against(runtmp, capfd, zip_against): # test missing against query_list = runtmp.output('query.txt') @@ -506,7 +499,6 @@ def test_bad_against(runtmp, capfd): assert "WARNING: 1 search paths failed to load. See error messages above." in captured.err -@pytest.mark.parametrize('zip_query', [False, True]) def test_bad_against_2(runtmp, capfd, zip_query): # test with a bad against (a .sig.gz file renamed as zip file) query = get_test_data('SRR606249.sig.gz') @@ -553,7 +545,6 @@ def test_empty_against(runtmp, capfd): assert "No search signatures loaded, exiting." in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_nomatch_in_against(runtmp, capfd, zip_against): # test an against file that has a non-matching ksize sig in it query = get_test_data('SRR606249.sig.gz') @@ -578,7 +569,6 @@ def test_nomatch_in_against(runtmp, capfd, zip_against): assert 'WARNING: skipped 1 search paths - no compatible signatures.' in captured.err -@pytest.mark.parametrize('zip_query', [False, True]) def test_md5(runtmp, zip_query): # test correct md5s present in output query = get_test_data('SRR606249.sig.gz') @@ -633,7 +623,6 @@ def test_md5(runtmp, zip_query): assert ss.md5sum() in md5s -@pytest.mark.parametrize('zip_query', [False, True]) def test_md5_indexed(runtmp, zip_query): # test correct md5s present in output query = get_test_data('SRR606249.sig.gz') @@ -676,8 +665,6 @@ def test_md5_indexed(runtmp, zip_query): assert ss.md5sum() in md5s -@pytest.mark.parametrize('zip_query', [False, True]) -@pytest.mark.parametrize('zip_against', [False, True]) def test_csv_columns_vs_sourmash_prefetch(runtmp, zip_query, zip_against): # the column names should be strict subsets of sourmash prefetch cols query = get_test_data('SRR606249.sig.gz') @@ -1145,8 +1132,8 @@ def test_nonindexed_full_vs_sourmash_gather(runtmp): assert fmg_total_weighted_hashes == g_total_weighted_hashes == set([73489]) -def test_rocksdb_no_sigs(runtmp, capfd): - # make sure fastmultigather error-exits if a gather fails. +def test_rocksdb_gather_against_index_with_sigs(runtmp, capfd): + # fastmultigather should succeed if indexed sigs are stored internally. query = get_test_data('SRR606249.sig.gz') sig2 = get_test_data('2.fa.sig.gz') @@ -1163,10 +1150,45 @@ def test_rocksdb_no_sigs(runtmp, capfd): "47.fa.sig.gz", "63.fa.sig.gz"]) - # index! + # index! note: '--internal-storage' defaults to True runtmp.sourmash('scripts', 'index', against_list, '-o', 'subdir/against.rocksdb') + # remove the external storage out from under the rocksdb. + os.unlink(runtmp.output('2.fa.sig.gz')) + os.unlink(runtmp.output('47.fa.sig.gz')) + os.unlink(runtmp.output('63.fa.sig.gz')) + + g_output = runtmp.output('zzz.csv') + + runtmp.sourmash('scripts', 'fastmultigather', query_list, + 'subdir/against.rocksdb', '-s', '100000', '-t', '0', + '-o', g_output, + in_location=runtmp.output('')) + + +def test_rocksdb_no_internal_storage_gather_fails(runtmp, capfd): + # force gather to fail b/c we make an index with no internal sketches + query = get_test_data('SRR606249.sig.gz') + + sig2 = get_test_data('2.fa.sig.gz') + sig47 = get_test_data('47.fa.sig.gz') + sig63 = get_test_data('63.fa.sig.gz') + shutil.copyfile(sig2, runtmp.output('2.fa.sig.gz')) + shutil.copyfile(sig47, runtmp.output('47.fa.sig.gz')) + shutil.copyfile(sig63, runtmp.output('63.fa.sig.gz')) + + query_list = runtmp.output('query.txt') + make_file_list(query_list, [query]) + against_list = runtmp.output('against.txt') + make_file_list(against_list, ["2.fa.sig.gz", + "47.fa.sig.gz", + "63.fa.sig.gz"]) + + # index! + runtmp.sourmash('scripts', 'index', against_list, '--no-internal-storage', + '-o', 'subdir/against.rocksdb') + # remove the external storage out from under the rocksdb. # this will make gather fail. os.unlink(runtmp.output('2.fa.sig.gz')) From 670bb9f5bdaa7820fda5f5def053f60c4625f713 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Mon, 12 Aug 2024 15:21:19 -0700 Subject: [PATCH 14/33] MRG: add pretty printing option to manysearch command (#408) * add pretty printing option to manysearch command * make pretty-print default true; provide option to turn off * add pretty print test for manysearch * make tests pass * oops * revert threshold for manysearch --- Makefile | 3 - pyproject.toml | 3 - src/manysearch.rs | 4 +- src/mastiff_manysearch.rs | 6 +- .../sourmash_plugin_branchwater/__init__.py | 12 ++- .../prettyprint.py | 43 +++++++++ .../tests/test-data/hmp-against.sig.zip | Bin 0 -> 448154 bytes .../tests/test-data/hmp-queries.sig.zip | Bin 0 -> 66516 bytes .../{test_search.py => test_manysearch.py} | 84 ++++++++++++------ src/utils.rs | 9 +- 10 files changed, 120 insertions(+), 44 deletions(-) create mode 100644 src/python/sourmash_plugin_branchwater/prettyprint.py create mode 100644 src/python/tests/test-data/hmp-against.sig.zip create mode 100644 src/python/tests/test-data/hmp-queries.sig.zip rename src/python/tests/{test_search.py => test_manysearch.py} (94%) diff --git a/Makefile b/Makefile index 10aefb90..43ace8bc 100644 --- a/Makefile +++ b/Makefile @@ -6,9 +6,6 @@ all: install: $(PYTHON) -m pip install -e . -clean: - $(PYTHON) -m pip uninstall . - test: $(PYTHON) -m pytest diff --git a/pyproject.toml b/pyproject.toml index 6a66636e..70a26945 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,8 +43,5 @@ test = [ [tool.maturin] python-source = "src/python" -[tool.maturin.target.x86_64-apple-darwin] -macos-deployment-target = "10.14" - [metadata] license = { text = "GNU Affero General Public License v3" } diff --git a/src/manysearch.rs b/src/manysearch.rs index 09c871af..a200b52d 100644 --- a/src/manysearch.rs +++ b/src/manysearch.rs @@ -110,7 +110,7 @@ pub fn manysearch( let average_abund = sum_weighted_overlap as f64 / abunds.len() as f64; let median_abund = median(abunds.iter().cloned()).unwrap(); let std_abund = stddev(abunds.iter().cloned()); - (Some(sum_all_abunds), Some(sum_weighted_overlap as usize), average_abund, median_abund, std_abund) + (Some(sum_all_abunds), Some(sum_weighted_overlap as usize), Some(average_abund), Some(median_abund), Some(std_abund)) } Err(e) => { eprintln!("Error calculating abundances for query: {}, against: {}; Error: {}", query.name, against_sig.name(), e); @@ -118,7 +118,7 @@ pub fn manysearch( } } } else { - (None, None, 1.0, 1.0, 0.0) + (None, None, None, None, None) }; results.push(SearchResult { diff --git a/src/mastiff_manysearch.rs b/src/mastiff_manysearch.rs index 2f10c6b4..fac364c6 100644 --- a/src/mastiff_manysearch.rs +++ b/src/mastiff_manysearch.rs @@ -91,9 +91,9 @@ pub fn mastiff_manysearch( jaccard: None, max_containment: None, // can't calculate from here -- need to get these from w/in sourmash - average_abund: 1.0, - median_abund: 1.0, - std_abund: 0.0, + average_abund: None, + median_abund: None, + std_abund: None, query_containment_ani, match_containment_ani: None, average_containment_ani: None, diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index 1a5c3f9b..a9e821a4 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -7,6 +7,7 @@ import importlib.metadata from . import sourmash_plugin_branchwater +from . import prettyprint __version__ = importlib.metadata.version("sourmash_plugin_branchwater") @@ -49,7 +50,7 @@ def __init__(self, p): p.add_argument('-o', '--output', required=True, help='CSV output file for matches') p.add_argument('-t', '--threshold', default=0.01, type=float, - help='containment threshold for reporting matches') + help='containment threshold for reporting matches (default: 0.01)') p.add_argument('-k', '--ksize', default=31, type=int, help='k-mer size at which to select sketches') p.add_argument('-s', '--scaled', default=1000, type=int, @@ -58,6 +59,12 @@ def __init__(self, p): help = 'molecule type (DNA, protein, dayhoff, or hp; default DNA)') p.add_argument('-c', '--cores', default=0, type=int, help='number of cores to use (default is all available)') + p.add_argument('-P', '--pretty-print', action='store_true', + default=True, + help="display results after search finishes (default: True)") + p.add_argument('-N', '--no-pretty-print', action='store_false', + dest='pretty_print', + help="do not display results (e.g. for large output)") def main(self, args): print_version() @@ -77,6 +84,9 @@ def main(self, args): args.output) if status == 0: notify(f"...manysearch is done! results in '{args.output}'") + + if args.pretty_print: + prettyprint.pretty_print_manysearch(args.output) return status diff --git a/src/python/sourmash_plugin_branchwater/prettyprint.py b/src/python/sourmash_plugin_branchwater/prettyprint.py new file mode 100644 index 00000000..f948f792 --- /dev/null +++ b/src/python/sourmash_plugin_branchwater/prettyprint.py @@ -0,0 +1,43 @@ +import csv + +def pretty_print_manysearch(manysearch_csv): + "Pretty-print the manysearch output." + with open(manysearch_csv, newline='') as fp: + r = csv.DictReader(fp) + rows = list(r) + + rows.sort(key=lambda row: row['query_name']) # sort by metagenome, for now + + first = True + for row in rows: + has_abundance = 'average_abund' in row + + # + # display! + # + + # displaying first result? + if first: + print("") + print("query p_genome avg_abund p_metag metagenome name") + print("-------- -------- --------- ------- ---------------") + first = False + + f_genome_found = float(row['containment']) + pct_genome = f"{f_genome_found*100:.1f}" + + if has_abundance: + n_weighted_found = int(row['n_weighted_found']) + total_weighted_hashes = int(row['total_weighted_hashes']) + f_metag_weighted = n_weighted_found / total_weighted_hashes # results_d['f_match_weighted'] + pct_metag = f"{f_metag_weighted*100:.1f}%" + + avg_abund = float(row['average_abund']) + avg_abund = f"{avg_abund:.1f}" + else: + avg_abund = "N/A" + pct_metag = "N/A" + + query_name = row['query_name'][:17] + metag_name = row['match_name'][:17] + print(f'{query_name:<17} {pct_genome:>6}% {avg_abund:>6} {pct_metag:>6} {metag_name}') diff --git a/src/python/tests/test-data/hmp-against.sig.zip b/src/python/tests/test-data/hmp-against.sig.zip new file mode 100644 index 0000000000000000000000000000000000000000..1d560013f5e301da9a2525dfbdb1be4aed7007fb GIT binary patch literal 448154 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 ZH!y?rULnE$fO)H13zddn2%z?h%TO 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ⓈAE??lZ^fNH=aH zWaW9qe0)a$*?a&VoI~p1-vtPEgIFG8`d{t zYXWTBP52(DILnbLbFT-wUbARlnIFevHCu(+ZcaT6V%#<=wAqh`TAsyDX3ra#t%yvM z7hd%;O51=)OP!bJn9wrC+oSg^6j9EuR(WP?#@5iv&C>U}N2fI!y{)6+M@#{%d#iM4 z^nSUPvpt?@?q~`nc4yKERNRektzlv8o}N;(6=1_Rz15tzq0%$O<2CChf*@ZO45IF-nm9bt`n0_t5vmx%-yy zc=8n}X&DdEd7zQu5iEAk10^`fm5<6i47M3)#jScv&STLJq){7ay;x&4SZuyP!vz`L zIbUE5mSyWveUABcWu}t>T-h*v=>(e509}=cG%pVs8TUR)U3IbnRnAiP6;MX+uKcJ2 zjj{%VP|U$~1bL33A+cT6Ay1B}XohW=L8TO+nH7Q2q~7_lG;GcqeYS6K>87<& z81h+2XGzaS`_}bV0d-O15sSw|dA23BsD3lXFi&h31NVr(YKiMhT|wW@UZM&Vci4PO z7>GWnH~X|OMO7u4DspOB=I9)yY0gedd88%G*Yma*8|+;-W8RHV8_*Ux+IgaWpy{xf zOP69DTbtg%l!b8n#AQ@Zc?*&I0yI@LH%0gQlC+#?q+9MyP>On)s(5kE!X!JgX>7v_ zRITiAaJwHySLYbx!Z#n;GK&!dR=td=$fQu1_i(kT^DW#bjJO+)0(IUHtKyHTz-*xv1CL_UKmrMhGoI^t!t z3p6*fa!+k_(8pD$Q>*mYNx-R&58)j}`%j zh3yDM)P+5CZZhyDsG}KTx;_3(Zm8?1D|bO|I&q#N%$zZ;MK}yZc`0R9)?HZzQfo}*G2fDz z33Xd9b-xKG0@2dYl$IamyfajqK{0 z*C?z{g*APtPo2tWxyz15t-f_$}7@K{4;YJ9+vCFyrl42dTp!xQJ9>qxX zSm^Xo=Q1*;tg2RMFHp{mQl{nYsKlgknGOB942J7^R_p7iXNqJ*l$gbNs=yYd$F1TF zN?oE&X0-3)QRT=GEZDbSvW-!CrWuXvE88AZ6>A9HU&^v|pYw@{<{Rzo?RN7*Pdtn} zdsND-F|X`o(7S``)t9jY&Gm-cm$AWCcO!*yTFRo5!8*M!0JC9(3EvY}Dra;#n9Bn# z2(b=9Mx8hTsIwbZ-MGF~58J9TIBx^hA~QsHruvq&^℞uX|2@JB(!^gnSd!Vck&y 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�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 z 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

hZfL* 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
?8yQhjU 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 z zUsw2wZO>QbdM>id^vcgGuTAF;*rzL zRoksovOG_{dV|~}w(sleTTI8+l*;)KsoQCy0`8At;~F(~qxm5tlBQqKz5VoZdqNZb zK~Et``HzbzxnAUEa%<^?o`<)-L-6Lt{L$xe$@K_yc|L$V3zuEtntuv3lU^4{+~cPh z^*s?x!ux_oTb8BPdSf3ElfO&3KiJI*MJ9G0{sqU=+Emu7=ioY4U)Tje|*XpGY;3je7;45sb`1v zoC}8xtMXvI=*m^u3GOfsx$D#_w;dZ47{$7z2RBfrug(_U-L#n_@??PV_AV>hA+XFe{Lo< zOSD{{gQzPdF7fbWC?m9Kz59@x4s@~{eET~%K4-+aers_eW~0@{Q)AZyZb4!_Z$b~< z0;o^UFFbrBh*QtsWO^zD#8^KK39(nxG#|;;mWPH6y!}o8!bOMf?H_ZIeg5U|w@O|g zCJAfw{Eq@J4($>8@xEpt)zr%TH?|ZG#_U<|P53f_aM`ban`%z@cfS`*8cxH2&(mr$FiZ|UJSX%>rLWmq*Ke`va;hT6@1J!Q*wA!QuRmTZ zXX=he>vugqn_@WVjPDm$uGVK`zX8S~2=MJBTmcR!s4a}A+-{r=g{J~r8&ZT+$*%0trJ^n7^#(!a&P z)x#TVhL=>*{BvIYxDCa=eFDpr@!CHx>Es4`wB>}a9#vVuMtgo9pA9g2GRTkr4m#>$ zm+OAzx)0G(6Ewey*jsQgxz1l1E+ur3KlvYYvdpb>plH1Hya6HL1nqTsua)2|-~OZ_ z(;Xbj{Vt}9QDm9-TZ_5ku|SwlNeugF3;nInM-n-q?1z8Vt(#?}-!HoxI**h?c=qq! zi(CXJ%lR9r>E+<{^rw5gSKC`1c>Y_kNEfI+whDgzEo_-)R_O{;f`4nnB?0x+}^Pw`S9rcx?p=e-&zQHGN)Jb@D}FUb!|BwpPQ-9 zJnXgS0XKqxX5h+U1K>)AdhBL|%iL=lPo6 z1WVE8?D_V(wxVv5{rnMK3=N}U{)2$8%3MdE>vvl7+`)ADe(agkJ$)g~^H-Q#j)r>o z)rb)tQW)pu*M?)pIav48v$@eThaNu<#s zMW(KHn(mi6ReLcTIp2E4xfZ}PKOwVIo56wedyQdN$=0`?SSxT@%`+bjrtE*^zpaPN z#on{J8PAu9l{_IF){8gJDa;Nzo(Bo$p6Rr{7R+BvcW`&|`1pxRwSsR*-oCer8Nue` zyFgT~ol39Xoy}nanf>@I&zo0@-+VVfD4FQTXCs#xySk+PU0l{)VzlM@wkpX*MTg#g zLE4FlzH>cWEO>1&>xTTwaAZ&ZwiW$V0ncmQBd6ZQDs zR9;qDb>iVMkl4$J@Xu5Fn2yfudzp-{dW7e^-H*TMy{RbP$A2jd-xW+g#ciF}HJ%8=&ouPbyP>-5HH6ntmwU4<`uk0{c6!pNGvoIS#D@Qy z+Sn89@6M^FZ?iE!$fCV3CM*5@px5q>BD;yB_dCwO5i#@lWKVZ_TwCMkC9*G4z2&C) zK18CW4T4Sg2RWBYwbXd|lPNO8eeTCMNlphQdt#lBO52doo%P5y)MBRv&l~a#7(t^$ z-mj?Jn<}8!^;K3+ZE1RZf1(n`wv@q|`a$Kn9t6Yi;dRxFkwNjSZxwFaU<&lxZ!0BS z(!bw60-@+UDxy|&y`_UHCP?QnpS7nq zyXBU7eSPVIBEx-t>sg0xNJ-)m`B1V1CXs0iM6~%TEK@#VzHV$ENk)QnGg*Uroa?H9KnH4H`c}ZJU{BFaoz8H^j+?D)^Xk%aot9CVdL`-WOrs12Zs3piZXtjz;k|- zfGg4vPfzsZIs~YJ=Mjhv89M;~{0;tEy&$&ypYfciP8+@F?-u}=je2vk-+97Jb&mVl z?e}wFv=C$RT0Xz<&Y&(F_xca!a8aC~|Gf_&5fQgl@_i4BwUNqZLGH&ymD#YxefcN) zU^oTbl^?u3bpT8HqW!}+YKED)n33z}VHne*MR$E(FRf7{qTN5a z&hx~ZPrrJVW~25{v{dq!@Egb2s8=%Z$O6b&7L=(8&jOYF)`+|aa-M8JM;K&mKDi5 zkN3LX&5jGj>DZ`!XkFc7XG_RVl1BXT5ndSnfK$ug-eAk^ZkVXP}qQp`*?~sNViW zJuiO+5KE~R7bajcfMB0s;M1mUcFlw_yo*|kH7O;AYNp` z>x)@qQHZ7Wb)Mdhwb=8{pVvs84Sh6Uucd~wchLPl>r-I?X~>7?>SLcOmHv4gE;Xl{ zoY^zqtDJTT0~^1!$Tp;U{rw;gD!TeP#95ES(m4zf{rDRxxl*C|^u2kW94o+ichwTgt@Lsl-B3zG>yIq&+LaUe~=o&`rpfNE*(>*fqL&7cVg5u6;t^$ z5n&z;f563CbCAr^$ofw>yZL0V4D5Y>D(&6DB;Fd)*`r6e-rD1A-*UHhy>2jX(nrQJ zc#R}5(}kGxdT2IDVp8&25htfs(&u$Tjiz%&^TzudlWqRj^YL@1quL-gPUgSe=>%pL2M;CPL& zUz=ZI%1!S_qI!RcwDyi zEO>zCn%VQ=;}Vfppn9!mnc+nAU=!ckeW=8$+wZdm8p}6oE?3Hu6enhkH=T@j24_&)bO z)MRdV^5L^u%Iq~Q_p3=y^c)%G`*NBZR@L5`nDMy7oR@t3zA`PN$7D~bU%dJ))Ws~% zdy9$^=WKcPy*yasD_?)x7Zm%ZZlkR)5|~1u25%mbJ6(~Rb!R-=BewF|Er0&C*wcA^ zzF!Aj9dlWhZQM_EGaznb;ru{$$8pQQ9^O=(7Ya5!Zx}hG2kAmzJUe1)0oP~!LFPG> zQuOb74{fV^^46P!Q`MzCe*C%hPQOzu-@Yr)jEpWH%%7Qv#fE<+&;6K4EMGV#&3EF4 z)uuoGYX5BOK&$H^c>7iIjs5_GJ|EMy6I{~3=08YG=zz}GkAb$WfHk;#{*$OIMvTE$1UWNXO+D+8kAdV(fsK$i)crf$=k2WO}QIf z>%kspU#ORG|A`EBlBf0in)e(G0WtaRPcvsNI^0-}$#NSKF+QgJ{ne<;{(5@xUOwwMg_M8$`*ZJacAbkj`T0Dq{NQ3T*!}p-DEjhl z^68_i5Hl(8#w&i2z{1;iFq($PZ?=E-Q6s}$0d48LN zJoOs?5(O+#9k5#TB*=l8_m3;nvH)u?5z5CpQ(hQH-sor@# zu(nT~BltWVi^yWkoZr9asI7`nsOfr6b5}VVF|_{oI%Cg3>DBMe8L=&X&BMFy8>jRH z`}^0iSaDG=BBUS75L^rs%I>#LwK9pB&9_$H+{KW$UQZj4hYVdA_{vngWPA&#%|h5vf?_hks6t?M%1a`O?3N zdj!Yx#LU8$s;AcH-Rr^SROF@49}`HVhO{GpycW}z2-oO(b5a@)3Akmx=?+BnUhTp4 zd%Ydi1s1GVa{OU($N68pD#H-BR9WBD_F9WtBwoA@-Ewh*gY$3XnDHWZAD)%6%h6tQ zZ@+hITX|Kl-q)-;RRDbWp6VG&7-=5M z-zxXb!m6I@uT=&m#HnArC$Dj;_RKtgABYpcAnE!#>g+hj$K%J@QC(xXyJS5&&fI$T z?Ed_-=adC?mHXAT0#QeCoWJWTsSEGZ`glE5-{b~fe77BDI}xuRUK(y^m0i}iXGazhFbuk0z)OI|yEhLQ z4b5rl=Jgv?w1~XMy?Du^I&%=pdQ1en2dbi{y4jG#(Y`VJry*sb3V2eCz6q~)|0)} z=|k`P?%i+R>PuC6!tnM{=zxb{UDgi?cG09X$%n^mOGx$J7caE+Gyc?vzf=BXdfk5B zP-crax(ux2m5#rh=#_t-N@X)^JL2r{N@=VbzVElBOjBrzUua< zDasn(!zXhSvneZWJj&VA4%6lOq}*n!oL$yeQbnJ|HO#|XTn1x$cb@+)z|yp@--o|v zDl-Dq?zc`TO3lEV-;LPltm!t1AHKD)n%sN*y}m|P8~y3G;jKZ*r_Rq~`)@a=PM70+ zn>{&U5?Szh+EkA7VX|m_cA5#3tSp(&jx&c-_spA*Wgj;0kajd5<(WfOPWHpw3^)b2 zJulvmi-kXDgPu2++nI+zmfr`s*Imx^G=k^%B74=9l?(fybJzNksjGVH+^ra<*}r

r|Ny?`q$&Dz#UV5CVc$WrM`ra?|!_E6E%y>vHrJReRB-V z?;7UWF*>*A$7jed4zj39`~2{3pn-qMvi&HclLMEO)$%$wTGNUiU`b zp9X=Jt7`YHtJ?8sSM~UCN{cZ@ z_48LppP{n$<0qan3(-{%e+$Yo`MrJoub8vV#`yaO#nmBRJ`9~NGg96u5$GR71yH;O zvyGS8m2-uz_WUSQeYbU8b>?RpC1Za9Z+)|j5Rh39@3wJynB21-RXOr;xry}qsH*)J zT#tQdzAw=rA%F3|&!{lyL&kvq%wrdPIdUJKLcG@X%JZaB z&n&_4Z}TfL(v|h}ZaRKbb90xOetxUA1+mYJzI;2C-IYr_+TU|L)LWQ;>!MP-!7c08hio2flizoR@PT-M z8^-<-Dk9)=19z^^>l=&}h<UE189lROV7swOPrsLUVU$S9|LLKq*A ztB<>@KCh>)HBmF7=M&SLVU98RyLPb{jwe8$KiS-N!5Y^Cudc^fNq_$!udOGnb(BXfFmK)`#_ciMv=M(aS?w=i?!EX)<)SUV zvsy2&r-nwv?|xOy?V_?D{*<#7U3_)BKVG}PXCr(|7#~|mR*&0he#0%{)7=9GP{k41cI>Ma~BcllTFr#l@?c1<-v4)MB%zIo#*#45nbB5*(kpK>81i~Z@8Z% z#x=2(hWrtg(-#II$MsS(y9)oV*H3QZT#?w*FaKT~X91?3|HXPhI^xdvw{<#yicF^G z;75v>Ii$bh>7z6+INub?dMU+m1)R+FeW6NYtIEdu)(5Pl%{Uw+kQ%{cmGy|sZlF2Y}|pRPJ5$1Dx&daffQ zrcv21|9xDw$XVy#2hO0P$eEwQt$_XczFw#hKG_vwn^kIV7>upv#Gl^(s9Z_5*M6K20_ z{|n#>o~v{JJvBAcMfcfpZ{KOM>!$WTf9_Tt^1}0Ie<2(p_AY)lGl9uu&eP9pTtBMK za{o6=W$nhv_SI+TY058a6aM~Tvt6kD>#`pILd zZm0TCnzX-(scY=!7_U8yb?WA(>SwDn3fVc8Xa3a%##Z)0-}<(;FV}gDUvpJcj&c3t zcy=+<12w_7PaxL&70HLcxh(S7+p_-}VYN!iKd&-2=ApAX*L>>&#h6MC-TyjM&6j>y z?f9d-`f_-_wj(rbW-sCXSgMKZa6HO*U6UD|nziH4b`d_EsA%`yYr8g1!MvBRn?U3! z6QcLAVd7cJq4nrVMQg9U|E=o+9Vs6Y*WWW7F^Z{u`@(s=p7qA{ICM)`8gU=rv+_RB zNy-1-v54uuGi~)b9+}JNIb*iz!>7Mn;`&CXs_iR3NFM&iRZGiBe(Pzprl9-q&dFnA{7{{j z@7%45oW{X=vn>@lOH=T^*PGd5<(%=@J6`pK|9boAlqbV}_3#K)1I~^9{B5|_ZeBh; zNS127+1=KYylL--YtqA$1x{RWaMp*L$dHT0&huZF1Ff?69$%N<8zYR*=Fjq?E39_l zKL2aa$s*Xp7k|v*I5=Zo{Ar~8@cUc)y1K1g_2VmdA!mwpc>PtXGq$eWY5S{^f!axv za6eRr)>U;Leg0G~tlWT;>f1M>YBQ?u#rKuD7jft3!-^JaQ*L9=i{}M*EXUot|B@(m zfH|~2T7~9x8^ZIyqW_yb>*e{?bqkf8VS9fgHuo)e%Xk|uHTzJapMPt)xmDn(V7=@- zpseNXc;2^$H;-iOhu0)>v*ZuXx4kL<;c@xah@Nh9KfUwnxnxv~ue3VP(`uxQ3+2?~ zx6zeQCtKgzmB^`;`TDi1E))ghKK@?w-0ZT7kKZA-*NR<_*O$|E$I>RP*Hx&BYoW_O zzuWV|Xf+wP=6fY^4d$48@#wgO+fm)_*A3`y6l-zLf2tg14QBeq3){FG%YN3+pjN_K z%b57t+XZ`LIM~PMI-orlXHGwRC(St|%4vQs5{$mdot*UAe7E*QVEERSITRO{TCY1w z2V5U~|5=&Qg=#L(KQHmxf-M>q!G{ME$c=SY$nnz|SUCG_yfro_Fczl1{c)?KXV`fA z>pAYY~wlgz^{`W+eF$$fhcEK{i*{=tVA`|C9>=kazd;u~{7l zct+p8%H(1ykUpQ6yU8Nlb38qAFA>YGF1`A0Yt+Ct*7a2wPsqtyS?>xYsb*)C^|Th{ zkGML%`YMwx>z)W`ct8ZD44ExI8U%L#; znk()A#&d0Z6H`0EZ#|uMHA}&ISvTB<(Ai`DT~mIU%#(a%e$J{^bKRp%zi(Z44u>h% zO!Mh(+z8dq@bH_PMgLa;^J~N+ZYFvC@{LI+qdw*$IwEf(#dxmFN0U*Kw#!bUB~vj_BD1?_PY* zHMhp`^8A?^HUiy>a(?vIK>$-vKlsy18+Bhjz??D9U-2{PJDeq^lIL@!D zw_ix@(tot>hj%VglUsQGpYFVa|Fg{2V|ur;u{o6U&)k`Ebncz`jauIB6;jscv6MMC zDxY3+QGJ~1X}$axSc9t8f|}oXk~bNHqWLh8H|BbCYky{7SiMgF&L@*S-64$1^X0SQ z6W?ih`sv4-j5c(1ocXg@5my`TjOUXrIHi|?cV4_6E_0{i)km-@xxqxg_-RBZc`nfN zLso{OvDbcH9yz?2cVslrUjVq%Z%E#H$G>`!*5_M`!EHN@-!D#4W1=(rf_}W-jbfM# z*ZGuNJ9Tz~f4+Fii*Pl=ytUq5<3@A78SnWQa>7UV(D(K`wr6OybF8mO`xnz3-hC#$ zY*UrUH9uXmx~N2z_0ml@6@f}vZ&?S3lU2uWZ3n0-#vS`PAIk8`F|=^s8Wy@ur{BD9 z*e%RR6>mN~SLGI=BetA>yITf#uwK6H@$8oltIxl6)_~ZQaovwoT+*lISTNs{CxaPXt#|&tNA}-596^eQ%()@Gi>x@gLaoJp7~g`xYvK#( zLT*(BXYY9+i2!I|)n~BM> zf!<8yYL&~UN5x1+J+$;|U{uKeMd34KC~F$4yN6MggQ;Be@p;N9r)Xtg_`JSas;l38 zBx>)8T;RYl?V$TWXLcfxXO%us)L+oT4q`nZd zUguR^*3+Xj*(gg)+-p=h8%o{c@=LpjoVa3=AF=hj5u=--ep6UR96u*n9KPNfjx!PV zpLuCJM0J_PhTrEiI@a1;M4k3wbfQhX&LF-~>`~)dW}29KbJ{)C>Z6a%N35Gsfvl>X zS4$%z+wKf~ZD=HhU@N3Y{XuXl20_0^X7tcsimaNi78_{byr}d|pMlWCu{YxOX^I51 z%Cts)H?v31Vm5EO{ljw`%4(Xflv?Ed8;S`ZyA zz^}(u@|Ypm(Zm>0yF)M=uY5*tL6~XcY08+aBYPwL4+R-ER7FqB6<=D00is-(;uj;= zXmp}UeV`S}ISp^?3B)pH#rb;K?}BAtsBdam_nQ40H}1ZCs^;SXMaOpAzjGQFcD-<9{l!!Mw2&hpaDz6*(!x=9gB=E;%E(-!(3e^?H7S z{{6;5r!x~Jj`alEz_LZBYCe%S8z<9-O}~c0&3S3BH!z#y?Y$8W4|F@3iM)oDv!?Gj z$>Du@`m)T1uk=96C+2xDm3{1ut2g}1YQq&T_LmqZ{5#_!`DO7SD6`YrewVa!&E8`Z zr>E(P9clMT?ib?c*+onWz#Eu7tBNR$PYG454sv86~TCqC-e(MyY#;699N z7H<4?aZe9Rvv}3bXg-X2V~z5lldn<7HHSUY9s4i@RW=8v`^vXW)8S=@zgnO>s2SRI z|2$(EVWq~@dOdzWX#;!=?2)=RFd130=$Fy4Ur08Jg=wo~fify09kglP%rv7@h=%$} z@IYN_$U5G5D4qe8E;ouCexUG_OQYWAhXG85H{~yGb_VVyXClfPK8&Gt?gOr2Ju(!* zrWeEeK-I0}WDDiaWo$Wm-M@|fK(`^rZq(w}Ff$IJ8#Q0Z-Aj8Tf4lVzY1iJt`M>v! z%8c$nY)X0u$cDiR>g@W`X6_aer0zGQA|a$BP%mwk^Leb%!FtrQ8WGvo!1d7CVCSvWEB9%d zJ8h>@s`zEunI$T!0-mwV3r?AWP4E3QZNJT~<<34H6~o;?ceyBct`f^#U!yu!88x5B zs(@rP;+Myz30W z6WL9m6dsh%;9`cUIGdiqb9iGmQP_8)CfB|0WUia~JYe4g*T{TX22gcfhurYb!-%|Y z^zqI5jOMbZ3cSa37^Rd^F#W0>MTWE$TmF~p%<;VvLEj>|dJ@hR{oAJqd@p%9H`~i` zjq``cwkNck{`%U$UU-yfQYmhlIp2BVt~-s1 zuGtUtplZN^^gM$i46rB{bZ-jfj&*Fg+?c1SqLEA+26$<0U;>?PMZa2H0)`GU+kHHg zqUc_(X?z&D_eorRU-_!0xq`BWUr4(#x1T)s8YNsHPZl}88%8cBMgoQTcqnh>S=lf< z4~*Q%98`yHo?`NQN6&a2RUcC~+XKezxP9esRL&P0!2goW~QFIhv$C zLnU@09jRB`w(^3#lepLY#Te~bm-r0x9{AJIll}o;rqdNGB4_lAp+?#=l~Jz^?kna{ zjJ1!8^JT=lv>&OD=~cIO?iBqIJ4{u!A#hK^i#mBT(ltMii^+_!v9mu9uiVtS(R_1y z-j{ORjM|sw%*xEZ`u1sRgS8rrI{BDh$_f^Z8uM$oQYHe?_j-G#R9zK!_)g_@R}VMG z)IJ^!MgyeV@}+IpI)z94dz>6vYTvIy^ydMG6fAxaLR7OFYTm~VH*~&QNECB zcyU?5H$g7D5HTV2e$=@==VLZg{Z%XGGpsi54+FdCo*47XvN4wdY@R;Q%{o>LL*Iq+ zXc;qgHvnveRWYRX3e{^Vx6rxUJLO_TY_is){~untf4XYkH#^d(HJBGVL) zTE&`}4I2xGn$|hXGq8I6oALChsEqRLYbV~tW`lU!JqoQAv*9|KCTC*5;7GtQ|e8S4L56?REB&!Drw(t zxR7`+ij^`(bxk*a4ZdMqU#4B_W4h=#e@TwMEI!&g*5qhjUn;OY>KSn#^~!kB8CUnd zX|5^`>q=#^k4H5^>b3UsZp*5^?CG@h#8b=$T;?{E^E54}5IKh>9*-JsMpuIFpY^D@ zc1~t&;`O$e=>xe@&+Hh1 zEWT<_p_#$XeG}9%xJL_}^QyIBn0FlkzAPQwC1d-^ai7u-zx@V(CUlRE`e?L4Nv%0*-=^F5IZo>0n#9G%M;cAaPz zF10VMD@Vvvv@YtU1tR+$I}i4~;%sn}(@bafr8Nz9bfH@P8FbKKDnj*vULsAk=knLX za&1$)Tk~Z(V{URdb&vW4)?8wWqjv}=MpPsW``&VDvYx-xjD9D|uCou!_?G&fWVtOtD5_+-5uaVU)XaytZYZriR>=HrF9fAhs-f zH!Ax(>V%aDJEX2(_lb?T8i@5C;zfGBjY4;QpqGoR4d=!SQRKF=hyMB*GG+~Eex5TE z^X5~Kly2U6QC^Oj7mWNs)tqWkF{lq??yjOHSoe7_Er9hI_IqWqDhR~pSO9&Xlu2Qi zIs6Q=5OB)a=7+JSy_mjBy+(O2aczjIeuj;louGOB-cmk0QN+}3)f???V~EqQ#&^?g zPd3swdk3D#+XI9nu5%xcMNNpEQsB$N-L4|9uiwzElG{;8-wv18*{(pKCj z@;M(t=yJdAUpZu`?Vf(12X$j^Muo@Y1{sLf(i`snjeo^VLB!MJ#w3T9HHcTsu~wUz zJ@pO$QO=OliLO`vIZ2ht+}!sBx-AWcmsjr zy&sv_&`{J3`eb4@c->kn|IMillWV6m^VdonSiQlkYJOQDdbk4SqA$zDj$?+PJRcpi zba_2MylOiL+w2vb_uTJLuChWA3AdqRxrsU>_kLMcpqZMvNBSo_&UMxXE+n_XhB|O| z2ZdKl8f-{wT78d4hAyM_F7XawXLU!ihhD$5>BgTYbE@&ip|g?sFkJLJ9*GXej79aZ znMY1{S?P%4JRa$?=^o9P&zF`$?cR8PK7lM~Ryu6*>hst(V1)&}H*{^gkVZxSHY)Gv z(lT(?(rK%Lmt&T?dl=P*%(=v&UoAFxRC}|>!7l{JLL#qwAJc;B1WX~uw?h{ey|^2- z{}n&GCNhSb1AUFEsWJn`VcrkR?NJoEcFgp{m|k{WW%PSN>rxn|cnw=04^^*$M%24< zy5wcEu!HgedInu)pLG3eIH&B~&iDkX&1#B1G}~X=8_Fq*RUc?aj<*q;+}F8|*7C}^ z>Rw34R23)F1K}gqoyBzb8JYDo?L_TO7ZLBp*&ariQ2951Lp*cLc57$8kczJKeqivX zu%BU~AHVrR3V4G)I8(D8UCW#R`W*KRNOCvV)SWx zgVQlPpjSQuFFvbA?}5{ZsZukNc~5ot!26 zGUw^x*~=l+mi<1AvA*cdOYEz~Xg68@*?A3ZtaaMH{~*O_NCpb+N-FJdf!L&*2ctb&+T_f+rU7IqGL?V*H8Dz z92%d<9_qLmln()4aW>%H1EqG%3*lx*b3%vLsMWymE-(81?}PecT&E`&*Ls)ZIpB)5 z6+Q2m+F)_F6yQD8J-%bE8?3y~qagcw4e}jzYmZO{C!4R@Lj-X{-TkJ;6knJ%{HiF~w_%wBu&BPQ-`=LB@G+FMi{+Vqy6;VJ_;mGnEs z1HI)X#$wE)Zl3KlQ_Ni%)P~DY$?ICD#p72!Y}0+9HUOr$Ez~bYUpP%uhp`@riA*%> zI_TlIL0#D4ri=JV8+Ktx&hU*CVzYSH7Y%$E_70&mOnrtUIQG8Nd`xd6P5zkiZaVm{ zUe8&u=AK7dDNNOE1$|8IAujjAXYakiKEowlc@^l9LYB{sm?uCVMo*)9qs00Q7NBxa z$6ikmEa$_>nA$h|Hqh1Q_U6_rKPNPCb!5C(7MQllUk~(07TVJ}cFgVL;kskh-H)*q z%S~Y`X0-iyR06D3-qQ4_ z=8aTC2sOHR@1McY6RG6bgne!3Nyd8Lp8bIiMyihD^sA*kD}~LV?wjN$(}&V9&-T(% z0cGbMzBzT}457Fk^mPFn7I8Bb`WyU^sz6?#-UW-d-QBYri8mj}g2ub--lvBR8%SIz`eC4>;FDUh*;0Z?Jn9&zw>CItW~OinWx@777oZv=4m*{>xoKl;Yjq-nHIvqt` z!J2(jIL#NS04{`bZk}n&l6~*J7wF9dIF6{wAR-W-!=Wx z?s)7^S9SAIUr{Pt5A_?eS(qV+d&57DSG%%KgBXJmInk~4Uylbpps8Ww@*95UOdvZ- z_ss`Wr5$AS@e3)jMgIzZJXkkys&rDkYT21^C6%@J28O*<6xVk z8S47$EyqcfB!Ya!k!1+!WA9_in<-Ub#4n4Yy3u>YCo)xY zi1wlAdjmslrn{e}iVx#l7W3K<+C*OQ?;#KRkF@731oHpNAN& z%<77-{FQ>4TRZVF-HiY`T#fxag}Z}LoVTw&9?PDs?9zQFYOe?P$_w4ga!wW<;ewj4 zm6urzwh&jZ`#7V+fj*Mj1xxYm7YCUI}w@evBH>Fz71f-jqP~ncB1Q7kzJkVbiz=<7+BHwmNUUj zgSwv`V@;o-6j!O(F|i44Us)zV<*}UDo4ZwuoVHzqU4!Q#tuoK#+G&G;wnachWn zJw=y4cCXHGg%-lSwPA>7u#opKvSYkw69+F#_FPb&!0UH_#fP74QoW+m12l)+d zkIPvPt zV!U^UL0cEJYa8JmF<`DifS2_Y!{lLb%fvp_!3kd%Gvs|DV*|rF^=QA4g#j{`ao;$= zEhssoq+Q>(mv)+nD5kjk${$o$mZzb2U$sLe zGz=nsvnWiynzZ=~5oR ztCj_$P!*n}$CTv;O*uKY-#C~L(mASQzB|YUhWRJE`RjpUFFLF4OFJFvYpK;A=uGEn zMpykBMV`ybW(M}d&>1A-%m<&x4v(wi);Gz##sL~-=qaYC$g^U~>tDkyCtb+)eunDO zvZp)eWl_zvps2&gRJGY>O#dO{W%~QWwHWMRU z-rf7@*KC^6?X@D_KgG{hPxnw6`OU|6hBcksta<{i0aBaOqp!EiLZCvEtk=0E7?s5- z1DV)z02mfj9>kHt~6^@H|$_eg}Eid%`&Ty|iP`msJ{EyvnfyOuK}hA)@IyiNJDJ) zYgRvuDpZB*vr2eOy*AIx9RK=4P)@UXG1|wpW>VUXZuA#2;;^iV`n|!jICE797j$nN zN;!GCHy8VwU1|`wJ#a!7XT#J63-Dt1 zYkdTZVdsa@;*n#TQy&kAt4=}q&P$JC!Z6#jPr{aFI3L6>u?--luI&0emT`$|;pW$H zQO4U$vwLZe9ocSU#=C;qx4PlxMc%6g;owCZsrSv84FHEgc)x6(>(jhzi%4d#c2RS0 zq){>q;$kiEH4AF)YS zHKiMKd74hLd)uJ7?>R>s&iTSmyZy?aybMgOwf=fL6?Cs6YigdRQ<&(9v{k;fX=fp) zsulB!n>Obz=L)>n9*!%KHY3BgrmG!AYSL2({9>q;x97;457dHHDRkU>2YDQB;@LLd zuSZWR(?+~E1I}VP9y{{u++6j=+c$&PIU6j^QE{bDLZ7{fHaI`UYmELmsbkUWoJJbI#EXckfMc|DT z*~6sRiFw4RHXIZx;I)z$Ih_Nc-w&9{yNE@%D*6eeKxrA(o`_$ANiwEvdrwm;LzC)= z#(UecAs2Od@Ns^`RBiwB?IwK0REoxCZ5YP2ylCrQZjaf11~`9IvQBSsg+OMsF34Al z4MVjH5NN86 zn957QBGz}&FFhA7oYRLdiz)A6JRJBsw>vdj)wQ!djO&vsoG9vJdhF?Oi8FeA*}EM} z)9&4SW8=l#(FhKjH`?bS2z2!Nt3gdl?3)hGcV1kQB_4(ccwa5o7fjM4pOPm~RC!a{)coLp4 za9Tx`c5Ob#nYs-EIySljpP{cRdWXI3HYjj)Z1>ImaBrUhsWoKQyFL}uCb2rJz82XA zU0=@CB;6@S4dgBq2HuNM2b;S(`d;wKftmAV~L_{x`xOb>RC zK8%Yl3(yx;U$w{1$7^c%QNLaBic|OT$mp=gntHy0QN|1luE=Sh9vKFaBCq;Oo7Joh z8pd8GmUV8(BGy@6+8pL~sxj0nKbet*%`~6KBe`+K3aY+F*`T^A_RI7@z3fw02JRJ? zoABDSQFwhxe;iEC#Jnj~UMIpRySy*$0SruBbo;0~SBlw9oBJ`X=n5k@L+3eFwP`5? zGU|z3h+tJ3{oYurCO4*)NxWBl8#-RKvhBS~J%h6EG&}oYaK+Rd{N>AX9k};9V?Q3J zD%W$N;q&l*NTKF#J?dS6rW-uGpY*Dcb=OsE^ry$$iX9|S_hAfWNwbw%Pmd;_H&|Eu zd1#%{D$VRSFzxx+M0L&JrS;IpD6PU#uXBi@f0-4bm)0WKKhaM1-q?gZX2q0={9@Fo zqtM>?(wZNuQNfI_`{?NHDu#Bxv{Sh9O zU_dK(h@3O0has>F6kYLG%jP<`+td6@{gl!6LFk+HiMPm#Wz7SfFrVPG+0^UYWSMzH zgL$7vWlE~j>~BcP_rN9E+}??rE-}WDy?oTi3>sT-mVTN}D-_uxfOi=T)YDFY2|a;k zOhR{?+xkKVh(m6kfn4nfyhcaiers7d=saacd*d*BlXlMP)CYQzS>~l8o1L~~ujIb5QP6PH!&YX5qzl-lr{3g&xw zN)}YvX~u((*v8ErB02N)&?=6)$MYLpf8>Uy%;Rh2Ml?pfMBx!LggM_V2K9>b4ZlDR zD)D|0AsY?~m*3NGKDK;dbZb>GkH=!JijCmC*FY`Iu^|7~_p04NqXU4!HLn1r3tLm%vFrzf5itNYZAg)arD|{HxMaEfRuZ>kQ#Nysp`ve8H+lgd)_3!Q8Ma4QTG*R*K;#F zhct$J9VsWwV#*jB8ClK{)mGvsZ8%KhL8wh^!?fCeOj+mo*zoR(<9o_gzK}k()O6yt z>Knl9L~!Z#_1Y`F4gPUBNOZ&AS2M6WNUt*BU4=1$G) zO9c*27@XSIhRUezQPv1wh^ZPPh1z|3ROL+XwUgrUsBUqQCHgd5k80959ZHM)3^0Dk zw7C4z8oYbxRQd!eW}z?QvhD*_C8Hup$32WoxF_h*{-*VOZM3(yzRq<-X*G0D@9EJ& zrA545Gc!hqKi;SpF|XRrG=*YC>Rw;ET;&4UiF!QR`_p%Q+}|u+(GjyppOgnW)@B2k zvGFs^#bl1F(d&MXhd5GEr}{O>L{GV}<%Q_FdnPg)PvqVR)CPmpYl97K1tE8`KI*$; z9=q`*dl(m`*y21O8xYr#xG`To)lu2SWon%5c|gfIk)7}VRpP>3sZMt)+!&PG9v)OWp*%a)I9jQEO8b z&eFYc;9`8L)lc}R2X|L?0=C|FTK<@Q(cCJ2V`%_pr0Jo))1UxXZo!z)1C=M--W}be zSBo<2(;2+fJ08la+^NB+pXy2nO`pWsFQmeoQ%B5uyRdldIjVasgUeU5#cf%h?}8OF z?m`6d-cZ&`ZZ(-oepjF7RhP#C_EoEeMnky7`iSkY#?Y$W*C;una9Y6|FYQ?%uUW}Y z(@l5MEy_Gwa_b@;r{H>O2d{*M`gKJtNrA z@9dkTE7#LU_4;yl-k8vizUSN!N$JCqM zman?>J?Cz+*aJk*`(|}-blX=+?R)86ucWIM3cqRhd1LZ|zXpGJt!jt79}!$sDLUqQ zdtJ*J+zKhPZr^tW<~Pzz#d%&n4_5NBvwF{ZTqtn(29Nt|Xl~;&ZFJ`@{Niw1iv;1@ z@)`Eg?HgYZKY8Kb*{$hpxwl?c%;8$u_l2BNQY;1dMA>6Eay(*Zs>aBumZuCD=T{T(J2I+H=JkQ~@3-i)S%zEUEwgFvcP-s=<2maj&OS$E!VgJ}%{**p1Ke)v~K; zb@9X}Q0{p=MiC@G9>=H}RWv`7#+hE{Iz)B0lbg}=NaaQ3G*++t z&Q+!`@}E~+R~5Q$XZ+U-=_ce~+j&0O*Qn~7sAJB@1HACZs)%=PuctGcLUimK%N{K= zbd18&qiI)VZc_b@ShFyF*qVEf*K2+Rwz_XV49z^Hi<->qKA#XBu^|B!0vmSF@gQtggf#Ko2^%;6b6`K=XPY<+W$%3u{<0YD z!lg`rpW(_?Xw56X^5Hp;@GJ|^qduvCrfwN{poT26rRbYCFw>E)Ltq)!n%Y1Fce>QS z9;b~Q8iG&LL8O-uLB4Sqq_C!9a^H$%r`8-~g&+wa4eIb(GBK=TRYHT;Zm zF^c-AJEvFOGkh;3H@lheSD}9~eEH>Oh4jmVX1Uv*xQTrtGm{Z6RKQm)D^woEiJosP zS#E#N6&3dcV)bE%y(qlmSSRYPDt)6^AR;Lbm=(HyOgRbrfSj3EEvKSq6|?9!bR3b& zB6MFZR0yxvcrAROs>pgkE56=xn=BjK_OF(6oiOr7&aa_NBe@gcGbl`uskxhbnkuek zcWP>0EvnqAy~~aMJj!b+qQmVr4|R27(zk)@`wSg{RaWXdQR=xd4B2@9e0`ee1U+Lh z^YpNRG40>}>*-;`J{q2E?U#14s#;mLziK5Tssh)j&*K}|lqUf7c`QvU75(Zpv5n!C zm^Iwjxy|Ulx`^C;gS)+)EjTUrwZR76gw@%;mt~Rmc4=(v7Xq>nAi#Oloosu&IdU&w z+Ign|$&Kab;n;9>wTJq6&>1bU23KENsw`Dibp0|FMUOzXqz}WGI6*4&bCyf4*W7W$ zBX;SCV)QZbM7}aDg=ph@`@Aa>S{D}DHx5qjN|AR1yzXCb!t=+Isk|(`*H=QV-pkb; zoIq9)GxvxcATAEV{Cdn~_e*p2HR?D~U3v5o_=wps?e2I?-wXU5Wsb<{f!^7-V~-kj zt?%Z)C9*mvOYhy%k3E9fOd#FZ|?V8bZNWXRFTf zzGKhNePbZCm73z#hk>nT%`4HZvs}*#@UPyWg1r|^6}V^W;@!czARgw zi*64=>Pc9aYU?$Ds~6HyVb9!-rRNfd|5in0Wq7Hdl;SOkyU4;547E+L#WvO ziQMHzZdUH(JRXgXiA&0L|6xeaCD4Um9#fqeRz1Wo%V-jDOIQGx-wgL*O{xMPb!G=E zxfz`2p>j8oBm4Gez^ZJefL{;Gr1DH-lwF%BU*&xP0eVj#F9%Jxy_Wg9O>wFYWQ<6n?h5 zJr0?uNu)s&cp(#GS{YlJ{UjWJ4wDJC>AjFQ4v=yhU-?s3@4Va4y^)$(R=Eecd5@`w z`f4x%xycVhbC&oz$a=)a`EHaK?ENsVu-lR4N6)XJchFTm@#(?vwJ{dJF8M@e%7wR7 znlCLYrf0ez*U+KSIocIm~UoS~y|p2F)zJfpG=0 zeqo-cR|}Qb6ATXf%c8AY=j|-N<@nEDIYnZs>WRz?2yC|cz7QX_1_Pne8!4rB0e7N8 zuND=I);>V~@Y34Q6=3P&(?bRLBAq;0CKsn3xvII@?3Y#}CQAOZ`aqey#GaYXXYft3 zxwq}qUx=CZF5?aBOS{bJvKS$KwHOJ=s#9M->OPV+?YNoH7h=bahRItr6Wi^c0O3~D zo5HE_WP9Y zcrNSXF>K&O6X~y((M}bk_V9TyjbG-Us5f-Sb`^IP1Nsa~6JUmQoX@b4T`y79H+1$* z(=3P9m{>-DjGUP1N8JXdThhnWI&DUo*W8`j|NWE=x|!>|#(35SnorE@=zZY{RB zFXl7IXd?`wzqD=ea-K<^M=G8F!ilk{_jX}}62ffE`5WF!>nR`$CDIaRTw*m~aoz=M z1M*_fUGCOPd-VQo$jC2ChG7)t?MBi;)*SS%dZhM;pK=30buu(gh z*pIsW44*EGk?XO{+%73_)%SX9!_M?T7quV8?m_LOG-d0NSK=Cw8SgU4yp7_#$*g`% zE0!3YvNJ>GUg^N6Sf@X>sqOZ=3$wFZQ+~A+-j$PGHR`2}g;!jcH=F{_G`=0| z;oy+W?(Q*tnkE-q(iS=o+}R9RGt%WnXmr z%AzvyQ9tx7Ye9Tj5OLRwb=*kVbRzK>f(#{O1`!%%n zn>V=?_l2NblukhF*D!)F3autS!yHnzQMz|0=NoJ)?6rs2Iq>Q_gENUQ7^c(@61i#X+_OHRqju~Wr6EuuY zyRCBh5o2~H(%kBO50t}!X}g=9U-!pN3(dM1+aEFYVCUc{eHg-ZAkuH``{r~sP?U=i z@l+piiOoFiFX)N}Ky><(LCtHj(OyB1I>Y`}!X?Jn2F4s~QIznmKAK-mO{eO+9c(~U z?@i(BEfbN*$#e}LXzF|$l%ngqPwDhg$fzP;Ev$%BF)yngbx*4g*dTG7*K7hO7KBEB zA(+}M+tX367Df1m*@KgPOhsOeo#yHZL~*0D@0jxrA?28>VYLRexJ^@TjEzdr8LFa!41h2Bpg5LvJtlJ*B znKe&!aWWeQD9iRjNJN+Ogv)sbwRbGN*3O@SVV{{O?mOA?F_5M}l)mCFyo0SO_UCcu z6WABo%}0HM?s5g`ET194a%Gn}^)S{3Wkg-~z22^;kJtf}{q)%4DKD%r@54auMRA#l z*M`N$&_vyuebw6FsLfodzmVB5=k02I=VjS#HRgo=+aHZn}-egN^e!`eV=VZb<@2P)~?HbpzHYB$E4mkRBW}n;Ssa-^MD6+ zr&#*+FiUgD6l1?E$C#EEjq}A;8C?HPx&E)(%v{Aqxe@z{%L1!%8ODCKBru`g3RHg{ zb_lH_%kbur7DIRkEuz0HaAj&O%c(z)l?5s0)Vn?_S-ibyr~AXuaL{JgZ~1whd|8HF zuMK${#W2r1JYtp6F|{`+y=slRDH2!M$D=ARWx4~+>unWwHjAy|uLphYb$fvMjYCoB zwbV>~X-kE%7z3bQqe@*h(@OPwm8{xs3Dbk@HyR%G2hO;K#EqI1Xx zijHI5E>C)A4(8Z>-4V^tFu?81)FofDF?Mb9azpn~#}?t|hi2{Qk%CF)l&Qsis>2bd zJPn5*)4QBlwH0{Z6V?RfRc+<+QTOiUiZ{LcsvXymZj~jvcS+Y|-?*=p&iB0y zS&%v1?BVt+j>DKpb4BX|Wsu?CX7&44w5Z5nbWi%@E6#XUqFhoKermW5L zIHHHLiyvh+Y($RT$GG!q*~mJCX`A~K`Avs8liIt_BPW%+lQh+bQDH(<7gn!xJ}xHY zq~q!ykL@%OhH6_+k8Pu$%k9kh^=PPqQJAmV?eT~nYjW>R@*6c;A1>HW0T`dvZuYc{N9uf znu_UGMt@AG< z(baZFT3{&UPz%(VsTteqLYB~mYI&*-;WA7;v)FZPqUe!&9_QX*ic{{K4bx6)7@w`r zqv9$I(xv{g6g>3U5puo|Z$y&^EUE^%IF)dPeT`=01ud`S4(+q60?`Jk9tiUCXpAwM{JI0GwHi}0=aVY zxJ<-;5*F<$F{8S^EGpIH&^!D<)lz0#>%I>|xQ9~}%h#yVkfmr$jc;57T|JEghxbC# zrq>-l$!zpTeO>=q8};bJ@aCoYv+I}XsvKQG#(s)j^>IRxxnFU&8Dsv_eBYcoL)9Z; zuYCWEZo>#erF!qx(jlbBtabkXLK;)(;AW!ig zCygi%JLcH+UcYRRLc&6EZ(xw&71w##k2-Q)CnsaLk12Yb)sU6ir@9Spci_nVZU^*} zLq*KolMqu8QL)!EUzWL?R-Fgun^SPy?YijT`!2enY~s4P{DvR0I6cdX!N)_)+1@a{ zeIo_2X57Eq;zxb^Iu9;6=HqeM<9b;yy}OUAxB@+L{KfE)j$>%!7c$W~A&!;YH`*4$ zZK`zJ>g)bglRZ;|zE|87L3+L;L!Y6ukYyT(_pEFea3jZ6&DZP!y&sp1em@Jg2g{#! z%bj{64-<3DG~~VRJDv)1lm19L|A$5yF zCix3`&ND=X*H5vH>I-g0#dnZ5%Mr)%#z)LN+4Bq|yph_@qm091KY@0#UhzzjPxa*! z^){@*{$X$jW`W51Fo?ce&6@A$;ZB(&ysrK{q+zhbO!>xPwN9AGbLv;^>TXiR6z9X( z@szEpF~3?a6g#R5*Y_?1kE_x94D$O(y1d@mj%t2$dSwmML>u)fc8!R;55Jom`m`Us|+|s_Aq^Pn?=7GpbE1w*qo%R`~dpc9OR?G%926ckU^MNS)DqfD=52KhD z&A4%mKV=V#2ZSFg^NuM3Qyj}y-1#tYW+r#Vd#(lXq7e;bycYo*s=U9QF2zGvVjr=_p&WAlDKy2%)ovgygl~HJMX7(NP$jDRqL0B^n9jN*LCn6F z*5fIEbm$yjEybmWJjvWQr>KqCK%*F+Vznh}+;^HkJi61V**d+x)cX4H;TlE$GBv-m z#8fQ4S}vxlvBbVJhmLF&Py7R;!$i|lbrpI{I~#S!t_Z&JZCHw%H47gP*l^RbLb3B1 z3}VjZrG7mcEmU0BA8C<2l3qo4)O)g+m~LvmENVhDv-=gOHDab|@I2Dj&=+$Uk1 zf-eMCa_%#1I^!MMd0!iPuXA}mmGK>qK2e&Wi@pbnC^qrVQ@r~Fh+dO5QZC*>M&`IN zH`B3iv{8ZD$(XBtrvd(}xslbYR~%|MW^ZYEUx*8}R2+2hON)z1GNSG5;kN?e@Qjb#XO{RzWsjk>ZvRb)cUz99M zqlw1HL#du&q_*)uRWWs@>!5qY{#q=J-xxeyl zIPXGx?_Y`Gn%WD2*6|f*A>!(84Dw~!gsLL?Qu7++<2aZZ;Z{$etvSbc)+^9FJiacc zVltACht=8H+%UgS!fkmgrgO4B43KH2a4GM*0xXp02v3r0e4tSG_H8BR)v~KQ*M3#| zo$L#Pbmny@o?>Pd`(>_~5F^i@?F-r}wJdec7GVa1f z6efRpFc#%zp{&sJU{6P29e37af~|1I0OCGkgee{4h;#QR2teoD6L1?QWS%l?F80^p zIV_cZ@LusJHi>%cr9SGGQii|ho@G|eZ-b2nY9(1PYN? zD?h`>@OngbJ?dFnL?3eWZvIKr=`+wqzL!lKBmhwezLA==P(9Ug^i5@fat0iZCqh8U~=lwu_#Z{;)**lo}JktANs@wZ+ZChtX zm|)j_9&Y^Qgyg^{Vb#u~^NOiqIHt;cRLv@U!y77+3gKrm~ zyWkg6E!}Zv>Rn3HU6~MoGkLe6+i+bNn|si&5L-lb#%Hk)}NzJH$^RF_=eIPE-QC}Jij3#)gc;2tCkj=glLcTT%C@11Oims~r7?%mp$_m-Bg;0}6YxZfkX53ib>ppI}N3QwD*RB5JaIn$Ucp z6IjFUuwx&w2~FcFCbyp+Q$Uvc)ZO0%jeEHM91-(1+XlL{)zo|!>=^qw@HG2Gwt=j6 zwLAL;cM!0D#Ov*sb~J}MS1|QznYlX7YDs({+_qCT6?&?VQoAvVsrQ&4S3Xfy!Ha!E zHya(82?Y6JxI>XOTjeqHNX>$S+R83`X|EF8t|IpJWo{yQZ(RGnw0D^soX*0NkZA&D zo7{ZgB@HV{PyPbcj|Yt=-bX+6A zQ6XECzXoJNDUXdF4+>l3jOMTs{m$HVOrGhp z`@WC{OtnYdpMP{baM3RNZS?zW2d8tIlZMVs<&Bk7@6M>w3!L z`G|pz$*E=I1BJ#sm}b^)HUo#u6QYFApyM>!iUr+DhVHT_4b1*(S=qKllz+c0?!zd9 zXViz0No6VTsCsF$Dj00<=l)@EEQaS_FH54%u)%(Q2F>9HcY8Jg0neTCK7p#v zyiioe`^Pp`r)$^6%CC`_j7foSW#h@0Vr!5awRtgs!%&ZwLW* zre9iw2lZ6ta_5C0{d>6f(mhaA;;`e>gZ2$W)YB_3d_vxJK_Ig(Fp(*P{#o@@3=P(khwcmhtqr>8{W>#ZCf73#^^B2 ziT85lj%||gAEUp{O{kBH+>4Lt#1_XGq_s50WJE)~?%up=r?RT0Qsg~>2BESBm#FvV z$N}lPv*+TQkD)bJh1mQ=wq6OwHr8KW7EQFZiAeSv+>r$@SCWH$)iPAa(Fnyyoyl@| zY)ta;AgZsLGqdkmNn*+*u$RpbgBj74>-z*xF=}eSxj7Gpc~I*zyt=A;M~s_W-7F67 z5#u&;%8;k;x=^9~pFxs*nyQ`c(p<)0%|kth z3RQDI)rIUV*x#IA`9k;j%#~*A!@y=`N309~JO*CHRPEr6w&olWKC8O>3{1~h^G(1! z38h$dn58MdYGpA0(W2`++42~G4(A&_Gj*Gs)-%vM`_gX4G;wY(zcy@IhU)RXXNE7N zp2+Trru77RPzqSs>V2B-+~z9g6#aOZ#@LG;&_3$B)49QA?|Tj8-a>`UELZ0&7g3Hz z%?%&u#muIug;8I%mx(?L>wfhEy%eU4PNRLq4(+rTJ?)|&DB$_PW_R_60XBBVy4`p7 zPmHXp$k~3>PZxgC>*jb=AI4SRBuBh@V|iEJa;8%6lkjdUZoul@*W0s#J6NmI^XqZT zD!TTjvnWEj8-47BJ)Xe;{~wLkmKaA8!Yw)nrPX z0_y_xjP`qyZgaG&0!8gU&$UHly0=h$9|jU-T~mlJgORn(O&+hP zG*qd#U!b$Yd*{@;voaj&gEs76D1*~6ZgSyiao_Na>e-41dK?(+c5C&eJ%~a_Tjm^7 zVRlx@Q0)CfNPE^8b=6el@hCW5DagH%YVVBbg-wGe-!=ox{D#pE~BEV({ekXr_r-JQ_Kb* z=%hurM$-EQ;962;o!f6<5E`x2J16T50^Fy@MHO*O0l~-knr88|NTPh$s1C)%16(t) zNaMtnRiJW9iHJCpk=%CrB8a|sgi%%2v}nKES`(J4+M4~k4Kz*Eih#=f%E8_2LpzYhV;cCG~iy{`=vr)~>3 z4e-;_oc5^du8)`?3>%fzabqb;zQc6!?F*z?vZk@*>s%Up=siL5IwuA<3bu@z6PFRX zjI9#RiOc9F#?V>ymY@SW;$T8jvy;|xJj=cMhCeyeF=R>5sm-)?AI*&tUKQ1)?bz7f zFaJ6d&ME@~xcSJ;(wdm5-iJ|Zvavm^`7qi#+ynrB^O34KHAKep$)607t2Qyc!OiK` zB@4KImnG_@&DGtJ9>Hr=`HmN1+dD4+ah$}KMPJ!Mu+7q8@tBs(Nf@|kaRwD8gNs=~kt7 zs_-k@W!m`xfHZ^@c*Cdx9%b8O9_Dr1)YPN}ucmM3e7 zJka$D%PLq}UD=HcV{#jV6Q`=y1jHEome5?&VZBy;JeG8zrwHw5^<}vo6H&p5J1(|N zlfG#xw`cOUGnzg<_&_@EbSizwv2TfvU=Xa{=vK!?nqgi60XWV zEjuA5CY)*cF=mldowmqdAU%5Aa&YpMk;&PpDx;Vx(B2Vr)%}(@+KOyInSU{&JX}`0 zZ>X#SYhAt$jk+AWK-03>EWC^e&+-YX`_eK7?*dv%csHCe3OtdR@NWsLYT;{esxM<5 zxmu_xv3a1HTvUzM@M^A z;@S?Dl%$UPe*?ACM~z(iB=<1Fob6s?Dc|Lo^4uj)5d9hz)>aM=ug_Dx$N>zpY0sdD zlD2lS@wm3oGcoXcG8i!Qq7x;bjt7_(U1n(=CtoYfyh`FxHy=o@ zgwnPnZ%$EGC5JZ4?tg0>6t~=6OSaArl%_?LGQ9YzXmY|$y^49;18dvXtZwDWF)T7k zwk+j2M%T4&)8)!*B|~trv5@3r%2=&0W~M#0ly20tMQRuY%5)`1dKMmawO1=W4YMXPWTLZkFCDm5)p25<#6Awlt>^~ckJ%GvRTAxc$hQ!%2rvJjNPq1 zEm@k6>?LU(Q64*3rB2hCeqkqm#1YsD;ieR5FHO) zUI?Hi8ZV=~z17Yt8KU8zruu5>1@f3mr@Ij$@VED8vI{UT<`Xy5UadKIr5yD&(xMnt ziw{Etw-Ozm%`3aM=*C#FUn|$yA+H8q^_GN{alK2bzQF2=$&lf^0D5X8%Y;@zupyikdhux~|%sWul+cMgNyX@2ALYPjLh~br8A8ggSWj|sY zHZb_ELLWP2p(K%B|Jr1umv80T1MX2&cRq41T}jtjT+bi;FO zRdOPpw(}Ggjg&m`!c7-P+73uAqtj#!siisR#09th!19UXg zMeTu(I#$`@#yr<+yEhU>%v0k6DG*pQeW{mFcj z+_VapvQjJF66!#RRZpn0CQ!HhfI67vQb|BfoI1?CJ&`4%zyMwPz8Q zsoTk`(m_!*($ObQ3!;1UpXq*fprYCtR+>RR&~X*cnht!_Z-j?TmvyhoT5iq~j5oNw z)&u4Y0$)Z&#eI>_u~CAxCHHVucAT=zw;6oICITdp9$mMACaO?Ys%rNju#(i-X<^y- z>0}3Ks_Rm_d#;ZvaCK=qw9Nsuga!yFg5kAmT zx63Rf7U$_y4Kjundyfh`EehKnuE5Eku39~OG^hAL*Av{1T&tV)*)Xr>5|~rFDzFx@ zoXK0VXlTinb9kN8{^>CRy7yca?Un@0%F^SsXyo0@J@nr@a#k9h9MhSyUq(S0IrNDK zTHO^YTpoC3Yr0*P)AsdNx~MjYj?c4j8=ctB^3F%S>k8OvqUsBDY7#1t`z+Kw(JTR9 z6TG^wKmcSF<~)tO>_(^`cdC>vNg zZg0~xxB{)pw(d1Dza`^U9-1K2zs@RSq-+{nZW`?uU}u;N>p3m%SshA?^>$TpZ{8%D zRlF)5p`6@K3i>i&Oc@)!wO7_N8oC_O-1Ebg=*dKMhYMhB*xdNPX#bv7E=yn>4ZCstp(4W+&+U`Kdgl;#<;R!n3|Lx*AFcT6M|S} zFzU)GbI@XqSd9ZL;2QVdDQ^w#1twC4GJ5cqkZrC!qy!wOFjZ(fOG__M?cx%dU2|%q z8`>9SN@8BdhK=4@q(=1x%0~d6hNS|q%4TKAVtj!$j*&iz1BD;ldSQ{cC6UYxsJ6(y zz-my{2zt-?0ijL|a@+O!1qN)CuUq);!{A1mAwquNe1JD_9c`i11I?|$62117E!iM4 zHC}t-P@RMtT4C`8R#z(GmOL$8mc9uKl{wIzo{-_J%4;Qdvv<7@<7SLzEH%@nU56u# zE@5M9wjwVKdUR$m+CE|mEc=+m;yOof=Qe3$xGD;)idguBehYV?mCX+M$v~R#X~|Iq*FCQ@`c;{98?(&b zILFG5_%eKJzJN>}1#BZg!EfaX_RDB%E&zu>c)xB2;^bHF6gqWswVu~uHIo6ty1X8SYB1N` z%Xon{C$=iW_8p&XG_|dx-0HM6N;!1Tus06Po=}m7Roy1+Bomyhsy$-e>+DUR0B$4q zNVpn6hDKR!XieXsh2!&xDbQw;hKahq^um+I(U0d?FA;BM0&&E~!P@HCg?i_AVbzt+1=B*_BEXkAWC7V4SXFs-t2(LBK2STptcSU8QH=Jxa%(WlxUk z?W@u?PG9(Dzbez6BBI$xzl@c8s|}!4Z*WI#sEEw+kLkLt1axLXzv_hE!K2uXC_NcK z0jWu&S<7uvU&`WQ_D1Yc-*hj@8C%=4a0{YEdDis{^hC5X7<-M{4il#^@qYuejdb&1 zDt;z!Q`fX51o5`|PK^=_%W;);v!wvSrKSbyhM01%g!O9H-DoRfOyyC;6d*CZoo4lx zP)eDZ*i5k-rY^zb0#9%|gWD7X!| zojOn5CJwTLo+r+g>+9JOm3PCD3UidEEN0`Xc)3~X9+RWl`GbdrZ}6H^eZ<1xX)#{N zIO<{Jh=jhPu55U&O=#m<^$P&)5kb`Ossv_}%$c;*1i2Wh#EhFyyedqBl2%&wmgqVy zT?A)eSq{n~yEL~t9b7MgO3fK(A82ks;)OC)vpou{n+Mx7`WhAO7S3sk&MP}5Craas z%oo@wcJ3qt=XxwRS}4KB^%jn%$WE3r%OQ_C76Llf`*hM&D=8RZS)EgA1z z{gvc;WoKZfb?%JoK6mBM-aF@YE-gGm2SA4Lx}OHU>+EQIj)}H;WINsOLBP`sp+=~Z z{uA}|4W2fMxm&aV-8C3VZ&kmH0JbMHT?$@c(@edq9h@HtD;U~#svi%CfZnl{@tD%8 zSiTIrt)7DCOlTmYPJU*gyuxkb6IW{r!O0rx%O6 zH+VTGt!pfNuKOz2v!X9S?=UD811mK9hNE7Q&GhxCe2z)kbV^<+c73VDU@8g6-GE&$ zMWM2X`?gqRRdomn#p{0ME;x$_=Q&nAXvdVd1jy62;OH7X*_YAArA;lUuD^_JAF2tO88X?UkS1jH~l(H zRiZadVw$$s%7(9DlVN;qXwcM~rET@AlA48b+#)<;#m(+Q4f=LvcUyo^MtvDGL*%GP z?#tL9b5}&_@fc6d64Xv&j{1mpWwe26rl?QAtRgw#bm>rR&z^ZwK{T3 zil)kwO~dte+J)f30eIAB)~$xAzt8oN_{tW-+P;j1AhWcD{V&!j*IZ&{~<)P zgX&s`#e=ZMmW*Rg|vi?d3dD5``Qq;(0#T&j{a3~Ls>aJW9E3cmAP}p zDpv-D0>ub9YaL%;yux?d_K9;C!zZd?`7+QB2^Y$Qc6PXYsV#)jQ;iBQ?}?pp#BNwU3^QTtUbZ4!5I_)y4`C#_o{@hE#Ow`^99Pl8tuKlp%dnK zGqz~GM?Dxt;Z>I1tuZ1wWh!CHxZXw~tG%MT@dYSxC=-#_h7k53GuU+>RwKqICPZ$% zuKO{f6}cnV_6795Kw}y5G2OJb90dJ76$FHm8LdM&-Vy}R?5zNKJd}!BGlb(#DP5;y zyVV67?OP?8QP;|8Oyzdq%Ay(xXGGYSp$i#>$<+n50UMK|?WLdB23oqwMOT?R zEwsh0rh^Yd3RuIcUVF1n??%-wJ@(2{iz9niguZ|f1Oxq0YgCprwM61wgL%y+e+Ok` z?F%FpSX=}))SNR-h#>U#feEJUQI6rOD(?-!-0xqL9_%PnkC4GI(%Qo^XOv2Y$I+g5M zm>e%EjcxTZ7M(;Ct?G!C%d4K{#O8rkc;!f2XU?5;g%0IAyETU5Q7LXRqiw2Qh62+p zx7kO%+B>*Gu-{l#yWUMvZ2K)yfY=2i=ZIC;N_d39`G}1#t=lbqZcgh09j!U(KF4ZU zl8(uq`=A*LsD3Us@*U$f+R`QM8pD1V+8*L!fN(C*Hs01cw_=`SDqsRqQv!SQ(Mfq} z?QV!)0HKS~D|+&yv$RQ3W5hc?d&p_ehY3CF8YX37w}%8qxH!9L&%D8Ee1afDw0`tn9D-`!&(+h`L*^bPJrtt+Rx zV$Kg4mC)Jht0ga^MifJXf4Z)d&q;q(i7>byXp&!?OE$N49E{yT85`) z%qw3;MGa(0Jq&%qPx~-I9(;5t4i__i-pZ#sl^0*n;PnKOWw6V^6KL z$U>E~4lQW1_{#3qmZ!UzX$lcWL?Jqxd7g$%dnW~4uS$R{*C88uuDlGNm^#A>bYqp_WWl6l*LG zRM$p9CnFyQVwRh|wsyaS1f-2sGNf=%7Ya1EW9R@L23P3O&A^a4pmpsyU%-h}BH!{Mn+e+>*A%uu>^~p0bOq*>M-;moXkT;^MZ?kJc3Nn=a?_W?LHNtEIXnSW7r#qGL`gkD|lVma!Z!j!J97wtw<()ZLTjR z!Wm<^Q*{PamRVJAGvb(5&ZGddhOhfo&{{+XaKAl=0&U%qV)B)(w3-}xY@U{Cy_sF> zn75-2KjlZa#T%F!pX#7~bU&uk?hW|Z@?5W-wF<8dyo@%EYFZ5O&g8ZQx$6j<)6(v# zPWP%W`~u~fb)NVA%NbfFbTxRm*9HYrI>NWn=X(35^|<_sJwHUUW3jprPku*<6nr{5 z-x9!j4Vs1y-!n;n~ znQfM4Ve{0gT!e*SI`J^FVx*(F8`phJ!Z_1)SuZ7Sn$5_@wA}+MW+Hl|yqh?2YdX2C zx0rGNR)96lLWeh`=6I+dZWX~waTBNl;ucCA_LY^=Y)+#=o|g4cnJC-jeZa$_>Fc?y z-t%K=JL6*FJ~xG1yNrfL&T&(?&8jXNO3mZZGN7%^S#MXa077qlg1jvz1jNFS9Vuco ziq52pxnpWqc>%;0`2;;Y(_AbOJ-6ih2ag|1$N6&DEXqY5j2)ZHkMa5=*V@H{a-@w z^S8<7sSRdPI?=12hr!x#%|JR^yOP0PZ{2(r!AFc5D&}nY;8jUmOZV_xp2;yO*^C&o z))Z2K$q13RxaS~-Hr7_;&h{LJWOCQblR5*%1Kw4vOxL6yD3Cp>GDGM20lIN%-r{u= z1a25I$F$^3MxvaZ+nTX6S#K-Ba98fhM^{XFg^jpe*#S@_(6|RQVhv}_uar88>Tu3!1UjaytdS^n#bQOsZ!xqt-jC#*`>=L|gJ$rrn*8#F83bvLhdlMELm1>;0H! zcE?(D%wG4Ild4gf^6ix^WOs!-7cZmA8nVl$`uf5uOq1R~KXKJIp3&B}udEVF95%6a zePMMGF^TZ|4I0_7lB3GXdSwSAZf2X_H)E8QM8h{DALyjHM|I8SE4w!EpxPn=D zOEzjUW+|7hw<&&Q)}zVXBbHmm469zusV$3zmT>grK+D>@=x&HQ3gi zk*cC*MBOi^S_Wu^j)Xr@ep)0aq-c-2GCgZ{x~jR%#71G&<^cri;$SY8Po_>a1mp@8EfQq!J;jBeG$&wBVFt;eU9~t0<7fOzOn4} z=&Fq9d}q)&`cBy0n7y(S)(ubF+BmhtO}D}D{!`h>jL}8&wYsuXptyRK3+^(;EzBjB z*c&PFN(ZA1+y^?$XqTnoAI7WSj8NbjB~mIf;cE6A##&qUIAOjgZo>i^Z?}$juN2>v zHZ;8Ih%I~&futdB))%noK&-Bu+NH6ePORCN!A>f_Va}IP`kBtK)wYwktsF>&>-*c; z+eTIC7|*u}w^7kqdg@v}jJ~Zk9_IN*Tf3=xSzAHsP)b!tWA%4fVwwhE0yRnBUm)R) z80Eet44bToZBO};#u10ecCVI&X%$5zv}>a@V`<&qUb-CBYJ&nY0y98QYfjU2Kv&Ni zIC%jzvfb#KDc={+JEe6%QV!H3O!88NoX5klF7=8|#aqJM^a6EiJ+;aM5eaA9b76Y6 z$|0~~|CZG3_DsR-iSybTPZ&*C{*d0(d_`#!@&g?k8DPVX>r1*Ow}i+jhQ=X%J1x>9 zS#L>r7$&Pd5t^}-C|$KdOvD)!gnFYClzHQU7zV$_)&sh?G5lcSlwqJ zU5~IduNKCM3#F&RIo*4$jJ8}I$5x3t3!{M!ScMfdK^dALroN)4USJ%}iY(32V><9y zPQX2{FEJaTVRl6J%h)WRn2;s?bIdcG zsPX1CYCPH$h;sCe!#Fc%=;^8@(D6(%)|Ix$bbL%(ML}(;hXJ#2aIA8#a|0{+Z&^A0 zGT2+NNEOEs8%_>uBEfh|5?$4B6{{PVDY#8T>z0pLTWzRBcE1~+NMb3Vs+gBCtrr=S zzV$#C5XMF>_f9FzY+{%}7>=06(PxyCV|~QdR3<{G9&fZYkrb!dlp$AT9ms6!tc_!; zfL4i3md7<}1Ci0`rqR1`SZq|y2m<%XBA1wnuo-MVjI1iR`^Kks%T**NWqqBNtpF@) z+ZK;{O?5Ss7Wt|)8KID<@qzX@%8G-0PX@c{sUt0?`PAw(a+BaLa{;m72vbf~+XvmPVrWsR*_ zn3)FnGUn{5xZxYQuHt51Yzq0huRtXzpymxU!%+*4(dOT_=j^3GZ&r;>hp6C`2wzm2O1_hTy+;0`i)ei`FAmGPz3b&_N z9XGh;+fmT#;^tKeTMNtW^vYWj9*ovm7?Px&UExddFOO|r*+5&2Yh7X<1|yK+8Q?yQ zTR`Mk$CDpv9?S@KzHvAklyA+k+b(R?TK>Hx$ao%MI>z zhmry@yHV70TwmuUDau`(`O+) zEW|0>wN`UVkpN?q;`lOp1mGFNM~q=97guHYh!HrND!klR1(}mRqe}S#w50Z1qw0+% z>8%JBl5lfM2FC6`_MBsEUou-|9cK{FKx>85>n&NEap%r%oIz<78icMGv6YsL)>LlD zhQRr8VA)wE&_vI_veg#V5xI6Z&&q07 zrMC5chd~NZeb(d-`lzSgrG;Oa`dvKjA#1waJ%XmXqOd?h{CdWO&Rwa(*PJ%p>E0w~z3wHMgy=aJRSDW*8 zL*)!$2)55Ps>-Z_p&0vRjJGn(G~Rnm+u%MMVLJP+N_&9S7tH5aM|gO}n(4c=bcjf| z0$z2UYebh%ptAN0&?KbBGxx+bW#Xn8rSMhBMYh+*_!HMgG;H>G zjHghpH5t5SYp1PEBn!z0%Ef9H6y5u$qnd0vDwJr;Gg&>;Nr~K!!YkWTk-6z%c|$j2 zHDMv{S+B~B*H)^b5s$~{i-st%eStM!M6MTju1jJF6;n$*&^30tsL8Mgx}_4Z=ExVd zQoFMfoswgH7;EVub~dffk9F5bbs$XjwM6BHpspYC1p*jPs}i{*rq05xjb8J_9UUPC zEAttoz>dvfcSK)v|b?*pn zvtip5=u;xr<{6c(xv{#Ptw7UQGt|haQ3|YEZE}6?|3hhuL5;&p-Bq*O5(){A!BQ&~ z=%|KSv~vESz_=E4aJuDsTZh$pxpv4MISL4VvFjRmHL7i`-6H}a3c_%QrEn3kxUvq< z&6;W(%CUC(m~B;zXl-^{+~+T2C-w zXL9>c)3eCTox{-b#&lJA-EFNy9c-iaRMc}lTs^~VSffu|M3og~O!=H+0k>>5Ev4zi z1+-)h71ZcSexwOj2rD}tMn;%X|Ml#(G7>}!M>fQ%jcmw{g;($~Z4RmtM$9eI0uMxI zP4-y`R`-s(ZMBBKk-F|Iw)v}qM0q$AKpqdIzDmodge0a4bkw$&|EhFKyiGHBk3BM> zGR(qqJs!p?RVL4jRv(6@A>1Ouou>sGy;;*!k!KJV+y!h>5iOx@1~`=OxK`4|IK9mC z!=Nvwe66%EPChC75)mZ_PyPiEn)Jx5BgWkIa#{=affm*MSZj}X810U`?5sSK*#c~o zNpL)jPQ;jPn@l~XD;dGq9(z;B-6`9v9D7yLG^B0mORq1GrLkr0Z`(*Lsl`Fby_k7)+@)e`n05YUL{vT z95LbLc3an4zJPp)Od&+^M!P&Mh$@qFXL7khv)V6R_dEJ7*M1B&x`^j#g@}xY{%DyT ztH>7ZjsWm51QO;OVcO4^QE9MTpv3tF%6mId&bY&%8WXD~#CCpxO08D$Bu-rEI;PtV zn>Tbds9sGTR_YFPSRtm7Hg!DO0NY5l68B-X+bA%TbXZ-Lw(6PfQZxGuYIkKfLOri* zL;EDDV+^#r6?BI&<#O#b9!Aup3B_T3L#MEhqi&MpOl~r)AvsNJ}c_EF8s+Vrtv@ zWo)U2BRH=OgD{J(5{o__17`NZSIZs-GO_}b+GSscE-7W&^L{bYlZMFVRI$&($?oPx zGn)@1_qe913|>b205O!+eV$H--USO{cAhGLL>gUt^_QVV1y!m2FlMA22Dg0~Gb1MK zDy`Cdtl~2Zj>uoeV&keZCh-DPmt;pSG`@~W(4xgRU!YvoEUon)rXG2PTm zZ&gI97l%>qWoC}G`&7_7?jzJu^}hMoNzX3R)PgtKa@43l=4mO%#v*B1B~-gsj)eJI zArl2HQJ_0!hk?G|NspGdb-=^)`VV6%d!kra4^5B)&~j8avP6BXMq9{lS+C|}tW!K= z;hp)av>x(Uom0WLWV~4;m&{XI#-`Aw7I>%;D(i8Rk&Vjk19kWi9c~qmy2~J1ngx=F z;Z;B`3B-LQ9&a}{8rSlkgA|~fQ5dpA+hcr8w(4_q8E%plD2G}N2cI~X+a4+A?0Zrg zUt$zUwC52En@VyrXs>KURD-C|Wx8X;mTXecqBz zC6xs?d9G8Unl)aN{W3P%Hi~7$fu@OsEK5?gHFOFMH$;Yh1rzH()oTycrRQaTU5HQE-{1^ECGk zl!~F%>P_JOfoh7KQa*X$}*P`>uc$^)%LIRZ}L`cl;lpp2gTEm<3` z)<^6s+sI<;AhY5%s)jJXFI%2LH3NkJw(Wto*)=u|It|XCwv6ry>+HI|Tq5M@PDGvS z4QsY1GX*cEs!CPTp+dY(*fa~*YjLUL(M-XG78K`NsRCs=?x7>(Jnbs@MK*0-m8yk_ z4IBLeYGt-z4dAKmk*y&jx$_0qC$!wq)=%69C)6cBM#prO4<7@um!WYn&nTaRRmM2k zw(9iqb#7pj2x}T6q`1Be1zJ<(VLsQn)pcZ+Bw}Ai1bt1|hDS^?!o%s^@n&pcZIP>Pupb6) z0+X!TxXwuhI&7BFZ<{XNylrz_GG)-Fb4_m+-sk!j-IA+j{fJef6_L1zlfT;6KD*i= z^*mjjyr%nAEe+)6(pJ5Afi%}U88E9xDWkV?v*p@-23pfgLOaf9M!RyY zth~{w{@vYF0VPKUvzXeZYg5^6?6A7e9&1ZE)Sgqm$JEWX#JoHmQg8SqPz6n0thd7->ZuZe)?t)brtC2K`rlD_wm>-fMUDOgp%Fj!KgHizgxzh>x>R$G@0`7GN4^S z1YI7U$&^vUSSTSMb!1X9z}!36mzc7iPRfEC7*d-q7h^H^(Q6ghtZ-};UfD9ZyRNs# zIYyPR>K#b&wKC1CU2jnH)TUcioh8n@+#9bie z&d@YfFHo^-4q_gUWWdx;MERT3R9)*d+s$`eWJXaXR*A233UqjTtyiD83sj@s&G@u* zlt9~{cHKy&u8Kge1n^8w&8Y5t;=BB+XwH*sngHi@KR2?2E>>c5)E68ZQ_kS3l$q9p z8JoODmAmSOXIk#dz!uaDY{VXDF&u1g3h%_N#$dfIW9B@qyOns-x{OD?)^p2aGkh4%rM)Rhyb-CTTv|!Glri~swE69AOWiw=NmyL6dSXXu<5@J&iLl@hu z;nj1F^;mW%>GI^n^$N>F&XVy3ie;86JFgABV_w!~iPDLxHY}DlWku$P(Iv2HWXa6Sn6>t-Or}m4n!eDYgb*43yFkR4 zZL2Sd3wRsZMEddtVvSSYIo7-kL@I!48Dn2yx6nH%jRQ4IW{Vhcx7^E+E)$Izi(g>X zNn`n99%$P#%ByE{Zpnm{S~@njULXaQ+3C$Mqjk-v!lA*X*}9GU>?5xwZaeKWQJZ~g zJ*s0ZJmGSTrj-T{b##+`OX#rxx)?f7mBEU^$T+Kf8D-nhxnn7(Z%OU=2x>?@IcmwI zr*rGlj;SvzH^f0)>y}89SeTsbzKn3!38FK{Vl=qa#W88uvep_ciGT-P9#re-QwG)2 zXJ|;}Wk`XRD=qYO0TE7ERhI7kFEAk`XXdURQ1vU96WTy&RbcSFs1#I#{rZp=>2 zjYAAY)z}u)KMl}gLo9rH&2Sm;u9QDf6|a>D^SA%QO%Izi1t?Ixkq^fMvCCK&?C4{H zGBQj|^*(n})RC1A`RwR7$!N%O_ZYS7n4-xH24U3WxiH4Sp%pCV#9_@Sv4KRyfojtk zq_84!lZ>T<)j;_(89OAA*}1qSblOB^6aEEqHZqM`%A2us#@u|OL#H;4on1E8KCK4< z1*U4khm}*eJtzpZd$}>XztGZ_lDE{)I!`kq&^21wb38I@wyPpN_GNU$=BOqGE^*me z<}H}9JqxqPOFGiJaZGc4f~6(Bbr$B{_KB=2#Q9N1CsemxQGu3z_7o#5;yPEJ4ilN& z(1$Zxg-(IsMlJF{3&2Fhdi0l(nK3k*j5r=u-bjn4pl^FrMY)O~5sz3E(2U&muG3Nt z=iE2N-;%BgC2)X!puM`jh7I%!483Byo&MTTYHcMNal54aTcdGZXFxb@vSFj^)@^SM^&WBB>fyWIv{NWt|P+ZDh%u z^7S-}J*HzqEfgo^nYusHYJ_RZR;Xky80+HS-b9e#MUiK6@sNS@mOD7w$Wu}T_CbcT;W&i0szgK zw-I>;Ezss#A&1`Zt0~bvn{@VdPNE}LCS3QgbKBg`L`9G>#zRN1fjkMB8xw&bPtG}2Ks9Tu0cLLMYjJbtpSz5qnzCbwBGCJ(;mCDF4 zeJ-OW&{g5vZo5qj${bIop~lu=_9s=4+YbKBf(juUgPy9Z~R zJFE}GCEgu9vg3jJ3f&xrkC;b6eTTRT?07`!RG#b{#h4L#=Us;v&$YHki`4JXj(7uZDzRrbhZ#b(W>t%>50c5iBs)T#DDzX#2?uUn( z%+1uqJPhyI2(@AI^(7)hS3S)0Zm%BE@`oN>;E9Vw@XnAT`&Fq~cQYGRy(+M2(;+uO z&NT|QVLZsu8d(VUFl;s9^_IAJR!*j)-jc|w(lA7Ooymao&I$>#>M#)D>VItZJ`Buk znW1c6E5Xp~0!I8!E!Y;;s0zk8rhqF~ovE(Vg37SFONhQcQw?VQY>(D%o5 zXcM95kI4^1{K7KOGjqf=e{R{CWyS-gGi^LmnROUMt_VbOGmZz*Q>0be&I{y>nQyr# zU!V=5W4 z_ps?H18Lr(W;p6;-DMr4o-0jou!Ly<-%3xGO8zSvDR;JGuqO-v%{Z3 z3E$03!+d@uxV6>B@jdxj=;5}yG|)ls*;dt=E8quOmg!4|$G&El&8$t&RMv?rx0+$V z**uJLW)vqn*jJ^Xf2F0eEkJm6^toOYM0wXF=Hyppw!_m5UzN7p zW>>*JVod}wwHm1#m>OAyrX2EnxN^}jZ}?qXgW`nx#_eHkk+)>JqqPD^`ax>Kb* zjz>dty=#nOzkupZCl%N_>fM#IX6+i0hcRqd&*+Ri`K^rsz5rHRjHYRRuJ3e& zteI@Yb#8U9NhzhVS0;y<298_Ul+k|-^9aET7dtAeK--|Hmd~n6m`Lx?Nz3~np+MQv zX4<#Z?69;|C8C|HJ*R*N+?0|NGFbsZB3MYjhwrfRD)_oP`(acJEU;;QCWjR`GY)!E ztqdCmu)*=TQz~p7oNB6eORWMuh)nC4yd`e3kiJ5|T!u%}x*{pmW9rH;8+WtpFRB8wvZieOH9CL>4V0uw;YQ6NLlDF+jhe3ENGR3r+d>P&2?eZh~ zJ~xC*+?IFQ#(kPsKrgasbk9e9qtc4Yh&`sE_nH|fI?u6)Lq}U~)l~@?vXQxFt0|12 zW1yxfeACSj!E+0isN^0p}r9X9YHc~g3mAR%S z2iWxIdahLUfbJ95{S+2jYYO@jXo);6hLg3Ywi0dLxnX<1L5nJ5m0PVV=av+TTw9vW zF_m~gBY3Oc2C8m%%M#6sBUZhZ%r*<=^`)j}Vv=K9Hy^b!3vQx5du^!QG9(MOam{Xn z1Cu_EcWkwD23-x-9FGpeOjJdvzL<7wM(4P*>cq9cQY+YFedExofUMJlK4Q&S8X_G% zFN2*5kv2XLG&51HPW1o4#0s+*ejl5nbLrL-=7v+-1+G^;s8^+`J-mG6 z@zYY>z8y3mUfBjMS^#?gmb8j?h}dSojEP2+H<$No?C60f(u;+;UD?xSkv2u{3#>8S zr386T(lKV%k&JQXF&%?DYG}qc$r8b4umqKdF(I+t5=p#+UgAMo=no%{Ym#+#ZL6;O zGFX-`ie2?E$f#ynpyI?$qL?0L9`kr4tEzVhqwCT7 zvfu+9&?DVUqkNs4Q6oCT72k(38x2V*iU=KsDm?h#)+>-Syw;fD7Zh|(p zw&j4HOWqN@oNU4kYWnqd+bpNTwyPdSi!n<%oA=}x$_T`!l`_sC1*%|eYmpy@Uaw)7 z#?!KWj#R@N@s^BM2WsTvd;tQ54WoZ$7iEaBX}jOD#ESB4uB9NfZ(-Il3`%#y3%IF_ zg%2e8k1z*v*S9S1qqzd>5HKh%Y7{KOGebWpD{l$B$my1ARBxdfECvOpEAj(Y1kc6M z+&zriaMsA`)`u|1BXY`CzKL;N8zT42Bv^fSAVk%!a>Qi5B|TlIYs&XwER?;N zOyu!^rQJIp&!+{dNOWwlal}Bssl5Ya_q0I57SUR{Z!D2k4xk(LMjKf)`AwyAvJ}!8nqZD3kUUwTf) zImRrdy4MCiV%I3`Dnth#v9g?5ZL^4vM@5pJCg3ll!3uSg$-T~TV&p&FJ@_>~+gAmFtxBrJxMnwEVA|FQkq_f&rIJab=IcQ{i;HlkUtVd8Up17rLSC_U_Klz)RBbT!Zw~>3L z1}1AOc^U86o9q^3o_w9F#;TwaACC#M+Hf;qkJwN`(ye3d-8>ZtPDPKnpO&eeqZEz3*nRkqKmT!}6$WVNlyLGQp$1 z=_%H+JN{v0Y^i(2G`x&rCuTZeeN5$6g_~O`^M-C)y_>e(t+*N6m3J-+r~PixG_z1? z4>(E~3NXe8@U7doG@mKjU@Y!olNP=m=sXztL7B0!^i*$F#1v>vyTuTD9|0AZ5Pp=9 zN}Z#nn_E{JSZV{U%y+}R9F!jlIMB+;66ZfEz)Ar6JJ(7DCabH)%=oC+hSSIucmPOvtN6{uL zC8aSZ-&Mn+*PQu0^~ofby;=ETjHP+h`*GsrxRs!D`_r-|S_3zE|ClO(nXVq&CvHnj zZ5hbcjOnMg1#Cmb?iW=elyJ0^jpr?il%XuMR^}H_-8s!QaaE$AiwuTxUq+WpOGeDh z85G^arUK~u>_J@!+ZC(Q1!;lbo3>QwSqQAJPc=Fo4{&ISUK-}8BX`N#aABN5n99nu z+QiFRqn3f@)(ryt~C2c%J-Sn3_EtN5(a47lrTS;mqRS2o_eOl7P z#wN49-vp&Id$KpL7t)fE>mtiagN_Skbc?m#ZodtbF}pouPtdp<~i2p@Pw7;&SA9hX3~wb_lb`k?=q(*_J+S>dPmU?tG5I_!SMmW6W5I4 zY~{G~Wl(Q==us*qPdnW*$xdfI9+hj%@rulcQSDNaV8Ps_BG#R72NM`BLbjD?lj6vtEsIs{iB=UcMAomG~xr*`&~BfKr* z_RBhjG2TejdAjH%ef1uB7}9DgQN3$<)R#^cyo-}pcGFCI)-BF=S-9!pMwdfh_xJpf zWE1&3aXV5afM7%(vDN9bwbMSn=a|m4Xp<1btca;bRalO#y;)b_reShQvnkLtPB9u# z$_;KxHDyt^dCbGeu5RX3;vv9^GJ3odVUB!d$E84>64+j_tq|8Sk2U_!Jpl0`Bbh)F$u^w+pZ&Z~!x^~YF>6?JGuEx2Z+RX~k z#Z~inpu4(0UE|*8SUB774;gh;!k4kFS@7M%2*uNT$D4a)12(8ue&zkbEQ4WC%^tUW zpqV>>^?J<1DDhZ1JeGVIonuis=h)4dOfWZ7jkMdhsX&oE6|{ZC7Rl=KYwk%pW6R`> z^`l32P`zAYfh<1R^7h9XrPZfwahSkG>-(5z-keVt89DQE9+<7)1H1 z)Ko_VxBVW!5(Ca!4$64l$26*$M0aavr_2$;m7wS!#;W%)D~s6^M~{t^J7czo!C2%4 ztjV*GFqEg$(x2;OMp{=_cHc-bM;r*1(=}CLiGkO`ZRceaOPASd=4*reH0unOs-7RL z8ND%^s<&@B)=WV4n9z6H~k$K`oj>I0qZK0XL3#iW34c(W14D%&@3HOFGHKy ziBWem&r{KI+PJS^UX^W6Ot5s{dBkpxMU`1%wlqx-xQWL%pIBt?*r8=8LYc{ zQ3qO1$D-NjzTQ?q9Aixg^D=PuXKZ=)ZJdYg9?HVG->IxGa>q#k4lZ9S1HThoL0q{b*_l*W7^vTdU}u#bV@aVK-UL4 z3yMdF+g!72zP6SU&1A`Jx=im#7Hpa_R zgK|sgQQ?&lu}7?#*+gf6^U5k0p;oVRzknNxZZ_L*Ni#IEo(s=wLw7nFVjJ_fz!=pGb*;0vfren7SvmRq7~Y+~Vwr|>Y^qG~PMF0t zdq(fmz049XuoxGNr*&RmW_xYj<&y0YTVp59dl~%#PRq^b>iu6xxdBme-%|9(L7Sno zt2~^0@|O_#s3vDm{$|v6J1XkQ-yARX*F74?V=HKtIL7e;Yhl~$_MFFKWs%4FjGg>4 zFRv<|r8nyeXwB3{!tS$2>3el7jLH<#vW&Fqu4&sB7|(2QNvZi`nFf}Vo(mO!f%1Tv zQ2joMD`Sj?$*j5)ri4^z0iki{X}OUj9?TV0VYsFHwy27rdRyuUUG3{Gq{dQ#CbKM! znQD{*Ta9s;88shAVm8LER2+3jqMD73Ds{iqCj~s6X(PuJa6_$St7Q+A?z7twrBz2P zD`^`+tNWx?GPJ{4=?T8FtxSe05AZOWqD6!X?c>n{b0K$X;eig^i-ygbhp{j#F3!}$ z2(R4~Xckt@u7Iys3v_yqdH|zn$7XbJqqrf9uSp%CL=tWFj((xiHuUHRM=QW#FGm;*hsB?_Ap;c+(@piV@IN_34 zyx-ImJ=ZtFz7^TYICpASn!u+U@U0t| zjI>ViT-QbMNW#jiSetcPl9i}hbm-@0bij04DpqmCa*%*|yOAd@wOg(YW4Vu5*_1Id z+~e(rawj<~5zOOJuFGqgJ<->w@}m~%AigEx*r21l_T*Qzn@cwo( zENA!zrqZJjmI0qv<%(2}`)=J~P|0>6hbAzoElIGoDfqsztWxs01)|>({2JNN&UDtf zUJVC5R^WY8SWSVMY+uf+(rGF3<=cErhwfQi*50pOO7s>)Z+pZ!*6!x%#ir-UZ-h4wA~TLhC&o9-L-1dqk>YQ~*=u%J zjJ}uwOY>7gn+xm6?0+oY?EIS_K9u#e<*?Ux|39vI)@2nrFt{0X%k)7wq zNC>iJwfo+|Hn3FlI|lJK@-R1BK$~^H+N()NdlR0suWUxg>~tFH9Ggsz(^%H~s^pHP zbNiCi$|;|)t`wDd8Krb5);#MAbYs|2v30Ibw_w*Q*YF(cZO3F;&R(-;^mZ!kX5m3F&scR*d)s0t0^-KntrOg?%wwbnQs@#qC1}4-4FXJ2!F$SWUW8CY@X4nkP zyTn-HRFYs+XIGu4+nMSOqD1GYuY@@wBR%VZPOV&NX8;1L4LF$+Sqy*OsQ3%YAp3`eI5o=f(IF8`>G_u+;Z8`64#dK zp4<+r`y{SFmUFmA{VgdoLTW1J%P1@5gIddnQ58Y@PR*TkZ8}#fwdjgyU=&ChmS(BC zN6aI9s({SKWhekC^R-4?S&zxKZuZRm%A_6cb_37sei;-+TUi>GYGpe&cx}mToI#%E z1FEAf=l|HAfod;bfxaa<#hJyRZb!AZ+k!5p+mF~J>xzI?XR>doP#KnXL)X4lf{>?H zd49-BrDUXX?rz!Yv2LFfl#7tT=Ho8J$vh>EbpHu8wNm3 z=wo-%U7&m1*RAgSXgIv1v(v>$Jm9oiLm?KY1tJl>8GvvvBb>vIyyE8=;Js?~cG%t4 z8faC?t*MwJ23o7=dOIF`?k?;@T~-^ zuG#3-QL|~awl8C%o56snUgt19fmr5tpQqTv7>ku-he5;2-bIb!_APA~Zt`)^FW~8I z-aE1PAfN(3MZ2}AU0)d3B2rRST#ivI(u%I|J+U>j>6K%%b@%LM(K1=HwqHh#vZ7w& z&LCZz3@uBacszR7Wmm^AANA21Z;Pb9U)i;uZI4;+Q_FQ#sHuSM1KsGxn5M|{T<3O< zW{6=z5k{KN*r2FOCoXM0yH_1F9%y=Zwso(09%x2^RLCv*h-ECrL9noT0rZevk*RN2 z1)CjK&dNG*Djwk;?8F->g}t3w%8O%~HLfLVmUjP|APyYR!@Oc&m2u++nqzqrloMEs z6iD&rBL@r5bXDq`k5qbTZ-=;iT6A_SGAEdG^2>eohVCU-M7=ybTk5wZ@&aH%t+I;l zt5Qhy(ihX#$D^>(F8$f_4#%RcDjPGCC%+ED2NjdA*$RkBd#Hc+EY(%zHcYeRJYr)} z%0al*wV`H`NTV`7&{g4eZ2@KhQxL&AZm3hS#}fA}d@LIImI7wYel8tA~-wO*+=>$?t@3s&-q~ z9ZJ1ex14EKy((LkDu86Z`524b`$Y;ywx};--0BXjWuE+TlltCX(;m2tuz_fwt#fVA zytuicEw``i$PNJVCvzSKN_C<@%)Sg1!m}&5dm}Y$j{q{-^9w9wM7nL)$)79&S9_%K zc;pO<5lhyIyA7*h-*Fd%%V-+aXN34Z4E44Uwb*$F%9@**3&w%#+yv7gsFDUoiHo>om|ft z;IwR#gh+WM&%$lj%l5VKzV0h9sDOE4Puz9{d*L&2zp7|$HGrKprVby|7Uvu?C-SMC z0i)47o)2_g)FGBu`Ka%SM-pLp;+B$HCFFWf2D|H?@GO-U=$OgnSWI&6ZaU^0*4Z`Q zA*N%XCOM6sTT*+06IN-15RWl}(&N3}^FWy_IN6xde2l3F6M?FjqppBgbWUUEh$$f2 zmDzrO{y0_^ZIfQr_X$UV)$8nF*r*L-otv>)UUQFu3P``+mAtJ-eL!y5T2+661XK`Q z5xy!rM9`a#d)gXX5j2){#U0W@mdVCw4d2~76_`p1DniM^a36go01KR24@AR+Wzv5c z0a|b^f}=)_imk{OJ9;!Q3b>KXh}ixG7(V3@b-(OVMnvkIGd5biRX~op+d4g8*)(OC ziL2i@jAu?F$Fwy|r<4N4Y1uhhb*=P*dY_$k)*sW#K#!4ad>Q&VUHXi6buMGw5nirP zou@9xfEcY~Uthw|$qgSyTt;Z3H@cBibMp~Spn(#LIzPgf0Z_ObFC*ZdGqjC;7{TFG z$ZYW!kBCX%WG8LTv8Wh8%SCV=XwkxfLB(Sl&7u}D5WK;So{2z~KvbV?nk z@`1`pY41uH-x6-JiNNeriwqXGwqkyP-D;R_JBgDo4sITUsQQStcd^UVig;BzhG<4) z@-f}^svHM*4}<2mCF0C@Q%ECiL!sr{m3qf9Deu-I^@Sc&QKOT`?{Q<)R8g+pw0>Ki zs=6MY6J5uH@JN9cvg+oP$VOL}n0x^d(KSe|R$moHrTHLL`e6{IFNbTkeu2Sk>g#I* zslzXA3KMxF#b*XEbbtGnmDut&_{5lmOz^CQj5(yN^_UtoRECg{fPIi-4f z5IWrUWkgRZVyK;Cny`pOb$0AkNpyxxMwN)j(`SwX(C z1B^=g$c}R?^=ZYFu^hj9_T(-D*l~}$i%t1PE@fMH+@7llY>^dh?-(x@!^WGC0U}oH z7^%O#`C)K3D!J2mRZ56m6$ptu`6a;Zg0K1g3Tdj+)LT`b$zxhoYwJ1d^~>1ltioF1 z_FOfEhH6LPwy6ST^k5nK{7}1mL~VPRw_j>1R$ZYF?vYmK-MVQGJv-x--Jk%in#r@U z7OGdOF@Ded)0WFD)UqFs_DPsAyEBehho@Mxt?czhE(Du&E^wf&^~R7rGjYUvWTzm; z!}&186l287fNR58fcmnI>Qg)F#B^;Y8(c|?wj=s zY`C(_=Vb)h$?Q$xtG7cbtFFxGJnF-o+LXpA+?-BP(=;X}+%HgWj7V-gaZ|l%X|}cb zh&A`N4kqUp$nhHAs=^c3HT0awn0%luvofN3_+`v&&syx%+YM_}@3u8Z`OdMmicCHMl!AS7&xd7dtllp1r!ybNK(TkQ=QB7}T_RSEw;OgLZ>pTuEn;h?`Ldw543o)gftZRbz4Y`ns>i*h> z$(zt_vDI<0Zf4@$6)x2Rb#uLzuI}k8>lQU*U1pJo;qK*_l-X+LE%8a?gvpRRwI1|b znn$sYn1{4lmi9=ry1yP9m4$@Gok15U4Qc>YuP@4&Q5Gn9uPltUrqUksK+An%eAsy( zB&1b!)dKAN%GMOzTrl2evQHIreGUCE!bURM2A((T8>~QCcTl@P;v%&f+{4pF@B$Up zkXmygU7*)2W!8Yt_1HvvIo*;sFfejG8yr_RB)FRmrf$!DWF$ z5_f@?1JK>mw9?sr&klQU;M3++^?2y#LM5s=Hx8(-sBPPsuS!>R7#B{yCF<+$ z+S~SG?Zo zKo*&UwA?&T$<<4Ggf2Xcsy5%~l=;^NPSCx#wf6q;U=?UM9cIMM7}w}(0O9sF5SJd= zUR(KEsX*UOjP1-jF48OwnCi{@D7t!QYpP+6zOotQZSJT^p4yCI+1ybs7u1(TMsAtZ zM;{MCS2Sp0lV`F5ogJzG)(do5ZCoXLn=rcoFca+i2)Nl@DiqSBmsdr7uFbG)(Ye5) zH`5vR#qpd{b)h? zt+F)(W=gKYZ^`-g7+9vBr`i7G5^D37cJ( zE~@l6$F$Ouo*vuxSiGH%^<3Tdc)z2+Kz4wwINp+@As#vTTcX3q#nMpuHc+qCG`TGv z=U8ufR_C$|Ps^4zj;+mZ9n-N4E0R^i^K>G~82DPmiJK5t10qsEIX1CX2p9u(qpf75 zd*~pycWezt9NEZJ@-3lPm|6gAUZaM&>1h+LRWGBZb=R=VQ#%~4!}PB5G41Kz66j69 zEs+vf4ZE{X?M$F48o9*NvNJ{Z=?vcOb)yVI$e!)%%fcetMP=jND;KWClZ@&<(A6vO zO1eLTmbDuzkI{XeZsxcIM+WABR(GRNHThh>+%*P6XeaJ?VIgv6nSW{e^32XtJn;gc zGeNeiQI}B}-l7{R3l)$omtnrm?OPJrq2YBIH!lDyRg?!#JsD^T*1I>&S5Dp%dKJM1 z)x-eC!C*Tri$%!6-<2h`|sByl|4)7X0B zBMYudOk5`&(%=^;tfZ%lU_KsgG1yAef3IxY66A&fbxYcFyf?>u&SdY1(7cqb?+d6} zGMsL~hq0waOqd&wdgz6VrwDc&k1#abvE8%hScGM4Lwx0k$|^9?MYP#ts+s|-a$|iM zuo+egr@stvORUu{*N39CV03aLMpJfbBXcV>2@T*8t4MNP)Q9J3RCX*|OY6gEwD)SR zX7Vvz3+qd>{sqF3*kR9@sKd;(*=DJsyRtBV^k8-D3pleg+%gQu1D>|E%N%7L1_H5z zh|V{35Y5N|(lBoc2i-c=I%L8vDeBf>9z9WKG8#2Hj+pv-#KxDS8s@Es2_fy&n&q_n z+!87QoK^9``N0^&)aWGkxU$3%DMgxdT1ab#JFfZ-4B1}g35DwBgPh#$C}hUXDa#|R zfyMGIDev|?-vlo$tVrm6xTl_B(%6=ZUT;i4(9!ytHlKMzN4*hyMT_x>Esi#w6Yt33 zjtX0*w9ctbOV?kU@zOo}UMAUXqFQ~;R#)7#Kj1ZwN4ggqg_Q22E`$g-G~MR~!WMug zagb+WhTg^0W`ajOqjv<-q2`<)a-|qn?OORT=o+0NG!c3{7cp73!kr}dwpg+wZ7^Zv z!$_EhSLA~Is#Iu`12_BiGTN-2(c=CNrEI&GVv76)iq2&qCf|~o;S@SkL!`c>2*R*f zXP<>-<)IRe$uHnRM5*7*H@FqKmNmiQt5U$W(ZYpxBULoBu;C`>sF$$q*e+YQ*R(1W zx1dG)&h=^y%m~+3VG*nDAiN|oJ{~>WJfe=dR+b!P+C((cF!N^9Cipoprv zRyG~X;M%NyJ9-&2yBj&dI_h1Ph%kWp4y7(FSwxM8ZsJ-}<%Thbk>_boq_;c1GD%%NPuEA+x4c`{tL*xEPX#NGM}4C~lg+Ck zdZ01T_3#Ah24VWozBMMopcsY==6j zO4+J+89nY%jYaL#GCI}~*^p5$uv4ijp}89Ia5Eh0gH?ZYJM43 z-FI0d3)7}!Mz~5pbG)bqtDr3>$O$-lg}oovrGBxhtVCmwT$#RrcyAT<*1#zX}Ri=*5zFp*Ozn_z185@ zJ&cSRCA%}1M?GPNZXuTK%Rm@cF$?{Xrzw(K*&9`N7xTn+FVQdaGO`N0VeZ8nsVs~~ zG@Y(rGNq>$gvoNP$wz%Gy>hzUp8VW4%L@I>xhX8YoylTV^N1<1qwCq|y%{T0QH^Ab zTi%YU17H_95-4Kjgs8irmgjo;POnaivBDWt2;oIQ#P^!5#nGOno56l%nI=YE5jn3c z*Sw;bfqoci>=u_X&WWpJ?jWlo@yh0!D3z7Po5CtYTFjctKXGl83ZTmPs%VKyF77Sow~^vSv^O+M+Cy#dc3apJNKN6+27VS9ZfG_W}uzYvm%kP${#K=jno$*>s0msL@`CfjGpL2wb4l`(3$} z^I;5a*$b`O$79;Hsv`ktn}!+6OTYov3jhWx=S{IJYwb{!~)Dv-TG zk!^hg6G5QSwL~k&1+!gsW^2AB871yUWZy$xgwhFHha?>JP{EF!39FCk z7?Nhi5{xWVm&vS%l`~JvvT89E2lO&D7*@6|qDLKuW-PsJS9?y0wO!E#v%9?p+0ip*gF-h0hfVBlJGe_vqAV+gN7zrY?mC1Bat25eFrUAD4$j?tty zEsUJFC9>2kJg`-xeH%>gN)1?g#Zi}ZOH?gqcqTKuODQq#Z={%Nlam`RT=~Ijn)h%l z?{j6abTkH}7QYNxYmT+v%u~xXAK0wvMEC`WF@?$3Id15y-Q_zUv8|nUIK<|}rFn`* z&y4DeN4ltXXET`BxeTy84c5VvpWL;m0Wq&irchxS5pv`(l;8U6+p$M1E5(F{TA{y; zO{)>VMLZt8dTU4vpKC+PYjY1!-kyc2g4^OSm3TZ(ltr6h-#C;l0FH;}J<~-wMy4nOQ6A;EmMjwU(V;M?voschM=t-o(>dF>qUdHMc@MWN*VuLjOxd5SCOpI@Bz9pOz zi?of7bG>r0=mb`q=9ZMD3qZ!T{*g;$+;*yCnY%Yq?Q$w}BZPU|qobRSL3P&+|0PEg z7O*}G8%}euJbI3Y0>cD~t&vdKhO!IY+jR!MDut#7#1?)_wdVHcf`)C}D33 z$6z_09kq1^jj_`J(+;XHqq2J=a#>e)tZS;BGnvo-Ry?r|f8CY|Ao_saL8nVb6`7Igq5n@h!OE}m_6@ue-!=#%{tw(IUC7JH4 z;az!l7LL|}DQA7&XirtG7+}Qtx<3swuHKiR)Z3ZJhQx>2M}06Gq2s_+`(-4d^{|OI zblUQ>Noxx1fsQy>Y(rLEUuK7zSgfztWvpT3htn8wL${7huDM&`sIO;bj}kZc`l7*a zCtw=yKF}4UF=p7&Cw~*|7W6cMi0S4yA}mbCJx~R@Js0Kk0#%*XmKplGCDq%_%Jr^m z_V)F3tV|t$OWG@(3cK+U6M^+1YmF~s%HYoBWgY0k5C~-zpW2`|lm$V*M;3U7Imt4UysMI}H9~J_~(QU1D~0-Vuzj)_%}ya7WEX zxTZig1zK~h3~%3MJ1B-?8p*(<@?-lg$#fU#(pJlJJvvCl^puisNmu%|XL&y!x>mhY zPSMe!gjlO~iUqq*ZEOs=`ksBqg)*`+*a)w?izzV7<5IPAy@f&kb*>iV^#ztfV@9=p ziiZLdkzU)|U&c;`2C1&rWq2V~qxADN8?K!@?X2N5Sq^pPf{o%aMIc&pSsuOTI`kgt zvU-f?2QXRC1nB*or(n1@m=XIiE%V;$cK3W41x`k@^!`<;EiN0{VtCZsfQXwA)|20! zvMY>H@s>1`v|*^HH&W;>?Yin=+N&~~E-#=_euIl;5R>x0_o&nKQqoyiT(fDd<<%CQ zd7YzsEn&Okb!7>+a8ZbETonZl#Jf_)$z;;2tioHb&M{`S=}(&ZBgP49_#zd4Jfxx; zL?HL^xD(jqDayaHlT*DtnLTF^x7!eMurS9o1@3ZawCrudv~g{va%$C4&oC2wjdjG8 z&5#|aC7JL1$QU2X@7=ISXCZ+PMo+**IYB(!g-C#gmz0Bn9I|WnIjZ* zxA@DTEGtCic62`;9tDMdc_;Mipp+AYsE9DVl5W!mG&B?pHRPxkh905Qia=dl=s?D*@k%Iw?~yn0$e$K?fq&`~1)fR@`(X?{~rK`)~r1oYn{0)@Y1Dg7ezYx)|l! z{fb`|1+v*b4D5N@BxAM#F}yZ3Ghh~+-h14D0@XEHXnR|%%hurGsp=23IGXN(&BVi~ zg+;<>9j{7@Hvsr|@nW||X7B4XR>AM&cn1*f)m5eCO)tt#=Ro+WW z)FU<~A!#v#>MN^TQ-rnoVCF!_?}hTsBWwb?@Z-+5|flR0V=Ge7z+9eKf zaB!Z^MA>j9GWUUwra@!qio6@n47;|&H}&nrtz)BHD}5iv1{6b++po&PZGF;w_6A1Z z_mb#9T*kgDswmh#gVvTEZMD!!Ratk_js%zWsvMqg)1WJ7;leYRYcr7#6yw&Fo#4BR zZJ7oR5f=0I?UrYycUC*^a8y9ArWt1Ui*9UzRc&q-JaH>dipbD5ys{llAgSWdbt!XE z!D3i1V>4`Pf+$EF1qCF`vXt_dG+^2d8x|{r6i}Hkwoe>&8p|8qUdh`p3bYM93l%r( zw3IVg67*JCnp)ECp?7@;8?7yeF~00;wgO5q*aY+m|9EuwZlWxOc7gH8EHif-jRS31 zI@k@>I~slk1{20iZ zScuR0;T`KH`JrCCC0#Kdi7tQgeX+J1@Xp(n40E5_9B}KHhP=##xfbPNMCjbN^s#E3 zxPZ#qdbA~udVooG%y{#71lpX5%64eR7~EX_g>T%05hG(GEP~)o5TkV2(>rbVx*wGS z6!5LQMn$!*DnpLOSr|iBo0V47Te2%XmZfpTX@Pl8x|>zKvas!74pAKk3g@kMf~A4>Z}e z>!9&9ifwD2EM?*3v!^pke-m%`*-IcIHgsM~+?Cr}XJn=BbL4K>`nG=diAyta@0e!4 z`AAcOX%@njCyew{Qv);~MpA^Z2J^}r+)P+)Waw=kvCP)XF@tMz52FKGVJ<>>j%729 zp5%Bxj1_SpRmAfwEc0y9=v?wZ%fL$7mSo2tca@XoC3lfi)GI3%0fodre)kb9?VQ$k<2}lwOXE= zAkP@dFDhB%;b{AoWR|BDhmNVX@Q4kpxujdf<1yuo z>{Mbt$EK?m)gJrF-&xBQ;Nq!m;Zc#S%{P`E-mOVBbn+bQbTd0%8*^2NcUz)btpPKwI;(!48cuc#-4$1Pp zT`26oqMS-7dH zVcYG#*K9p?(ImLCF~?L;*rh>Vd!5@Vw+V;p&r#oMx#vySh+P}DZQQ&RjeR^?? z;@wWv6oexPdcU&cZcv#L#sl3o?fZ4hz6X*tvk;8R#9kZHTz>?R!Mw9DwHX%-*ccB~ zf#{TZ1D{Y81wap__(rL73iMR0B5Nh43dosEnxpSyQyRl88iph!E-i-@wV}5wPtyuv z0hKDY8l`|H5@O=Um18L(dDAnHuqW z6BOP?ODlBcIVO0$at$>3dK=()3OZ^(P>gv_mX)j)vA`s}q$hB*o6YfN4UvwC z*a{VT#0rC|hJLPwKLu{)H51kM(LAGtm$^;)o*yu^nnm;Go?{Al1gwyqhXL1Vt)xc# z+b;;9bRLw8>Xij|%DF~Yb46Vo*hA0s-Wy!V8Cy=w?bdSZUr71V*=KkiC zVYJoQ!R3QMiJU5P8UqhQ$=FU&jXW)6u!AWvcm|PO_cl|7bV?;NjJj`03ikTKQcp(* zkD1K_?ew7eCcBTiR_3Cu>8vw|yB9O7ndfO*o4ZBV;+~{4eVIAzy_l$HBp}bqE$?$f zYO-UuS+RU-b-ghZRMlQtnIQm`0F-tZNP;l5GEQw`YO-{>t=cmNc1*v^E zmAA#R+ihKPqHt=nx5Bn}*6)Eeb5gDON29eRwh@G|3;Bbm1oyvK#cZ0UiOn)X63nda z)~`3rS7mf8WH4F~*X&+nvzYDtsw{mXP!;hGSlCEftvj<016~#?>u8VLV(=;@RZwh? z7@Si{mxKA2v5}MRZWiY{f*WQzYxZ^n(%djxO{>$Q03$oHqF(2aEIn~I%YGTnNy(Yg zg$Ih>lpsv7&oPYGSWTqQ{bPOWinV9=z~XiTrlQAe(|XPiD6quVP><9odgkbPTi0G$ zYJgW<8Hl|pWO#XybjEX?5r#0SYs9sZ*#_Y#kFU2PY}K=^q-PLCJJB+rac{g^&EO1( z1oKQLoGfEcBF|(p#`GsAyB`mUR__buwWo#L@Z6z7{4y4LobFw3M{xks(#j&Pw;WQY zb_dm>lRsmQRQsIuKv&NZ8S>*V;D(4`0-rd|M!C5!#ON?K-9;o~tDn=|cb;srcH z%NgMGi5m~qN3Yq;m$55c=o#+g!Jb&Jt?iKdGg;$RrWNqW*Zs*X71_?(IOZsq=~tOASm z4q7oJA2!zNYo+_t3+xQgl>k?c!7Vaq4t`7(7^ra9y5g$ho(Sfoi<$ZY1*UA-NHz2_ zbh)q-9o{b^b`_gR;~X*1ET9+6T&aauh7)N9yZ>LPKyxc1%k~HK=JZPtBiBWBb^*nKrV;S9?ENF`%s#ol-z~;3fYN}v> zJd2|qm$196@aIPW-foz5t&!`2jhG1L*qe_~8#}CN8+hU*)L9miy^q+ec|^6&E?lEx ziO!9#jk@_rYpdQW2A>vbD`Ts26^?0!Rr;cA#YQ}`+{W6>Rs6&y%yaaWa`FqL^0`dT zo!Ut3y6?vO@>b-@^Ga#h4C z91smNg>GOmrWbU~7#;iMGPzm)G`qBI5qjCathsW$&QnglS zjOAYEstzh+lr6ZY$i0ujV!PJJ1wSd!S)d;_B=tKk|iZd@x5(^v~%?U)mX z*-i$6{YJY4K5a`_^jk70j}c^BUK?sdE!gp9;{0eUj*|6DPy*HRTsJZ`&o>V3Hd>Gt z*t<2N!>TOXqz9+AqeT`1?5S&Ir^8W7FDX9Iq^R|#7v_PMPE#Q|CGjok@XB7%1RpVQ z%h1Cro`sD`MyO~--zIEP6pIb9*~eqhw&z9IM{Je|o9Sv?qhRCP<=N055z|$jXdRQ$ zdu5TdHme5w9iONOsEpa}{r`2K8ID2tY(7u|*7~jq95Ilwp6J|qetu%{@C#L3&Xg`imrLo8J*d-eP1^Y z42-Rn(OEB$W3>}e<@XUZ*i5sA`(jTVhmqkGyVchQZZ4}M#{7+?5UQ-VZE}u>#>tfv z!6mNQlWcd_C|L49r@UjkVsdffG&Vu~>7^p-%XBnPGRJvpr(5~n&9*0Q)WF=)X5c=i z18RBH==nTQsLu8fi$0TwJ|3MLiacW42S}T(3tn0ErDUJ@_iMu}C@wj}z83)xOD3XJw>gE>+&oN7rl%u{;wqd>=GE-F)@U|Od!M`P0K3asL=k;aV)`4&@;5=Q? zEF-e2;w;oag^|5(J#WbXrlE6Y-^VUkmC3HkEPlkc5;s;AMWMOl_A!WY`NwDhRlj`5~=C@>l7$h4r;1_idYUR4ISkuM;_XHCA% z!)TkXsaS5xF`8Pf+Nr_G`7)|`6?+_Nr7|Y9CPX4WraenIbfxN*1;$LyV+Rj|xfSD< zZFpMP4qaQ1ymzlOQ8+J!Y?1}Xq_tBupQ#ac} z;soCNeY)vSPDHfDEpf4Im*H6*8cTY3ON^m9ZgAjbFjS z@?JU8+r%?#Mzi^r&}yv7ZMzwxk0J|?j#y10{hqj&F6Z6&7#6c*z_OoXVeD*ASZy3= zn6ydfLd`ggaHEmT-rUm?2Ut^Sk#i#zo=LYpIQdoZRpE3L}CAN6VF z%IWQ@M{FIIbTbAIBRxbjd}IBUO)u{QRD2I3Bjl<8Xq$(Tu`?Fv%%V0jvud<{I)=D$ zNCaYfpgMRM^jtHy^?YqehQPYo26G1G=rBPayWZs6)=>0y7d`U#r9nhLGbYy zW3zRA3rD?Xoo-OXzKrcKj_X3+OKa-r(JW=|Y7VY!J4}MNSdlLf)|{|f>o}$zawgVk zYjs*$)nS=bGvWnueYGNJ7RR(p#M3Igz0dU)eEUQ>D{pYSJymaknfn}ut-#2RVv4Wi zcZb9_8em-;8r1c*^xZo74V{7R#Vz9TAS*i3%=*(Z%C>Qod*8tHu-AiLg?)jY%&=ut zJRYznhPJ(lD+^DzE$3M9Ook7aDgT&rTHu?G7_~R{)IggSz#j6`h6HV?Il}j!-r9EmpXNw z$3xc_A|dYHr*>dMwVG}``NNHYEG;WuD`$J)*|p}lB`Z2P7Utu7-QTWGS_oq9(+w`r zQ{HILJ*G>uG7AA`JdCNbO{!+p`LQdAc4=jm%8r?brm2jU_xkh#?6TxKLt4gswtULg z2O5XbHR}jB%N>D^Rk~K7iz@$X1wdt&r(25HC?8^EqTHbaMTWD7wu`KOJSe{n*%fl- zFsPE53vyaoMvJ4T*$m!o{sOI$MPVYK+-R zr&W0~HtwCxt*Hb8gMfFPg$iix#wM&rhrxJ;U|7NOeM>UBpoEfRFHo*Xt!bCe zD_hAlFA|@Ydl(KzLs^oqz-){S6VF1mIk!cAD{-!SPnG;dXqHc$x9(ZRWqa^Eb@*gq zCc^JOV2)2mH!1>ybIjKOZ|Ah_frcr!OMb3G=CF%~d;YU4(Fi_V-l`RR?w&`Qa_zGMQOkj1k0Wt1UNY0~_N zWvzBYaU_k$BX!+SV4BAlkeHq^8-b~niQW-U>#8|VQw%get>2dCdU8~jS>n}?$D~88 z&!qKvn$wyTZz~hU16^cxZo{}QV+Xl2-8*}pmKy>w9$|f*tMF;hH2t~z%T$!CGs=wq zmPEU6$3kmvq$*HGtKn9ixT=cWWNl|W&_Xz>W6Jx>0E|%z?7l#^06P-MuPn?!WYrE& zexU)u!CQYMuIL#oGB9=G^l&rv^swHN>2(vgj(TmVS&L0n0v+fhBn%yiN1dQ0>uV9hl2sfDFwhQ=2vErVc%N#~9>;g>O6 z9wy^OOs$%n&ID;^vo~$(Iy^Gd;!aGn= zjGW8hi6~ByUMG$!G7~^X<;!q`uHEKG9x)2DBH9|LYqkO#TuYkcWfX?d4t4fvVM}m( zXV27WA!6xc@~Hb&(b~0$7);-+lZg_oGSefOOm(S!JgfE%45z(djTN^?eR?W8M7;M^ z8AhzkaJM(ON;Kbf8C`Xbja9X8Zxr91a2y)SPz8KUZ%4Z+jiWsAn8@_@^~8LjQ4QCU z%6fi`0yJGEBTk$G(~J@`pKJC6#>Ifu+mAzGaYYEI&KY?OPrfTH&;37r9Y%JumI zDMtVhX8SUV4gIaA*ox^QqT6JSrs0?_FuP){o%ak{TARvj`0gFB%jy7oGAq6SyQR#7 zTaW3K5Dv5UTOv2;!}O88zg{zDSGi6vUybEjrbJZ4v>skYCMvlq5i7L<6e${m=_g+S zw-A5j&Fz=93L;7sY(hL%#J5N%N~#aEM|V!|WbKIh8mz~~#y9Wfh61W+MeSOS46cb}`+jH6JTF(jMNOo^Q!mTEo@@Jhi@|E+XM>eJ0BbT`6;Ig1C&(qg1Ir*sBtb zMddbPZumD~hKK?-pUI&Doe^LIrzOVdMW3{<`>|*XF-@6tOhckL-A>Nyewv6HuvJP zVCPC9IM@AbB)cko=g!kjRnwyxFWi3vR)94UYl!S?R5D22acs8k{<6vDIx5wLXHec0 zJHwaNCqJbuY{M+MFR*E0Z7U@Yqs;6Orf;2wzs%pbn2X3Q(L`z-0y$Op`gBVdGO$5k zT;~)}<9Akm)b&<*CatUl@4eVom`grUk@rGTfgDC!OxSb1qSOeV)~jXYH=5b>a5on8RyBK3{Kt>C2aPn)na-}+9r|eLjkW!o4n-uA=UMzy@7-=ObAJ=m5lpP5+vWoeaNzWg+Vi7RR*_Soops&svYueJTkq}Lu3|LHit3D9 zR{;-nWLENJv>pJX<8k&c&;#^jTfZtzjvOhG!8NLpBA^ArnMaIZk5z0gpC2TuBIYLe z5tC0q7#Q;Xcnm$8X$u7}u%r#rS}q-i;%Tf!P2ML0i*$!tFHpXnjgpcTgo)nqKua|& zIvHOEkV&tJlzvqKqkP=G8TaoV3t7w_^HFb3KG@rIX4bq3!Wfx`fbm|AE~ZBZm(5Jx z2X{*gbE9oJh4v950M!KErY z`w}lh-fb1!>9|&Mjb$21{p7jM6@dDf74v~^x7BVLyC2h?tfed-xp(4r(6Lyl&I46R zEPbO&43#m)*z9nm%zJ@p*Pn5jevXapbdwbu`!L*OL9m^em*G<5B~vWwm`<9rOQs3v z3{pVyQ9;<-l~e9OcnfJBXz6)HZ3^cM8tit9rsv>x!!W|S%_XT`#+Y5xe606Qsdbwr z(-+1AU9Y_JD5DW)^7<}!qYKtA5Pn;G%(wPBr}`ci6yta|@hyiS!42nI(sE+aZkF$6 zA(~SnwtBi>#?sI(7XAiiaXp}EC>JjSt@^0+=6iLqj3(ruJM%o<@jgA22JwKI`%o`9 zx}&ha3sfL&s)E@Uh{`Pyg?q;fjP_6WN}kGUNqW&(N?`LcapPdv48UGEpy( z)mt7=m6w4C%;5g+;{lovtbIlPmN2s1JXyW=0;4VN+|;J?3ru3VjA~Tk1w_en#xV7k z3^Z)Ct`V9t{2HWDyi-FT+`&8|0jo{d!pq3aUJdUAK>&P{zY9DA=XQ-w{m5x4G7;_4#B=Q^!Zx6J0TI*h^42OZ!E^qbL z>jes`>$w|8J;I>CwN6-4tK!ysdYZa``k&S7et5V~7{fYPF$-SZ_x$Sb>1$4$o8Ojj4l~i?Ru zqjxu5;76=EHI=TNIB!YMMKW_E&vnikf`^@bRV1|;>O$4+swP- zKqpjJp2X(X7npS$mL@6Qk}Rn3CVcP$C0HMip}l5LyShCpfsDrkU{;QEY>%nnthdt< zQ`g&>Dx_5gs$N+QSWCUAG|$u7<*fNAX>PRFuV9vLsR# zZuaOQ6}LJb64~pp=+WKqGRnr#jhNQEHJD6@@z&SKyO%NNM0550RjIY8P8x~RvMnn+ z*0Vich6-$D8qMqW%OZ=JZrIf)6R@RM4OyY^$zKNC*XihYOWJ8fmZHNw*R@gFZB?Ox zGkI5=r3|c;mB)0uH_Hj_RypPtFt__^UomwB(!!VAsV^|yta_j+_LwTRo@pI2;Y2Fm_FJ|WHEQL(-2u|u(-ZJ zN2uzU%sw7|U=EGm{Z)npWFbr9?B-P1-UE#6$UC+a$fz1OXZG>%)MZqLnYbTDyEwOJ z!CxD^3)=YuOFY-Tdm`K`kT~iNj-i2oL-XMRcesyt`j^4(OvG--YBwmOVI8dYdY<}J zrFW@ez1JuonX_%sgSck9c92^+hjw=$50gXg-Dz7IIuAF^UBs@2>@Xr!WCY-ryuL&l zL;KV+x6i`JOv|$BNIZ;`iUMkNex8;<*|I|9EguGb>21vHJ5W3nST=hn??Cb3q`6Cy zZyoiRbe%}e?ZP9b%!;O?5!Z%TEz%fvP+w|;0BTtlRl_5e7CvoL*qXCYfuehJ((<&V zMW-hX=FijgRHMQ(?|3@U5N3~9gb2LARupVl9>+8@I;yFoi#(>8@|(n3<6cU7c1-TX zko)||&KajIrr(SuypdyY;JKbiGgV!;!3|8Je9Ag22d^xO1!lVvo;Y-*OR~Gy88IqH=AhL{GND z>^BY~7+8Ze)|0OQ#6Ua0z!cMbES^D?JByH@4iT9eP&9$;_W9&?d zFJ8u!_cTI4`s@N;Bg$B2HRdwf?A(n)nP)b0rs{#n%RSXIZc(J`3SQrTiQP&qDanJVVhDQ|Vm4LL&{4_ZQDV-Rh&Z+j?EGyzU@U9%}IQytMEF>gt?C#$CwdjWPg zd+0XT2Bxl9>HHI;F936^1*%_fSv%pUFuAWvyP5Rs*L)f6(`=4P#lt{sBVnA3YbB+$ z!nG$RpE!bA9?XRIS*QS_%p=<0JzHpz8&x4HXCX(lr?y>LH*}mSOjNH;K8#I04BB+# zc#K6DSv5jAljX6Nb0d{`%~n9Trs1fTbup<6^?Xy`AO76E^_} zp~9`|Rmq@{I;6JoKnoSwZLJPHV(n=eH>FVz15}|htIl{!7_twr8hd+AlYmjkW|?ov zsGeI+W!;-q*G}rz>};y``Jr3HTAJ+^{+OQbl5K0`7q$pDR124QD0!Yi?zYWbVsRrmf<$9iUL)Y+suAd z^a$&;WbUKBtgs}ky1u}AMsULWj+`*pxLk&tZ2KY1!E}%8wY#f_MW(n^Z1fFX2n)lg zZu3#uu&zXRv@=UX7sl4pksUraxC&@9+Kh$cK2!-Conu+pYM-}cZAMSMn~=D$Z7Vhr zs8RP7Ab`#6@VtP#1x?M^+K1uMMxh{Wc^Dq75-(HlR!3iWrHiE;s=oaa4scX@_2^zp zg%jh@$W)|0_=f`QUTo0(?&{$)-BGGrLyc7UdRP^yzTE9Zfk>|jirrJ|8&e#nezj&y z8G5*Rl|gks!X!4UB~M&Y*Ba6kI*$jYCA3D@6+6tC6|@A{o=B#vDdk zR5VTsuTfFPwX)o1oIz1t73B;`dV!9eO0cx{5$jb(?z$qHpa@_%K=*-M6%ZZ1a4$Tj zWV=}^b@~w-cQeGYV@`gk`*2&2n0vbtv9XC z=T*sIno-Nzp17>;@~TY7Yh`wCWCiG$he6+Aq%e~wF4^0uaUR4oIf>c|Z%lm{+%Pia z8Sc{!Eru05J+kvG6k4amZie*@U9OL-lVwqF9HdhoPt#TW`jR?poZ`CPb@Iz50ux=_ zJaJ{KK8j>@yuq!*Vpeo+-EOGZ$!3o`AJZy=0TieDi0LQg$k1-o%>h%^G8!Jb^=!a3+K926_z3!v9A@XS{0x}5nz#uxy=CpuCy3?#`U)eEE z4U?|bw`9s|MxL(kX`w7fjGK4kEK~rq6I~npGP2xaIK*FoyWM6~l^Yn^*j2%1@nMA5 zb`?NSK8&DeM`~`OUfJv&ucCLxjT94BN=|d*b)VJZ6pIdv zhtcA^Yn-enpUv3x^sTvFn+~(6NdhjfcQ_ol~E3+2K>nvv9l$G^gqB zbzeoCkpb`E`7t5skqsx_VK5oKfk@2k%Se62j!E*~(21|RsgspT7So#saaO+>AF+xW zr>;)r!zjo-R0h?6Thh5hn#_<(FVN~^X<1J_afpcK7Fm0Z8mus^5CVICaJ}5e684%s z_fWyjt#|UzxO2rfE#_RGQEnI;IKQ%M9f}On>N&QM*vjd&cfhXYZur1G zU-xy?#FFUV=p(jn$}j^}=?l0>w8LQa1rlW*7(tvt>tZmQl&^IrZ?Kr@YzSEfZ5#un zbtKQA&C>l$2vl>=pe;|aZ*R!|TT&b9yZCwb&BwNJv(?zeeIOFs?#rgj>v=qSyR9PH zrymc%)6yHjYr|rUa87HM-jZzeN$yI1T4rSx z*K{MwS5|#5n_)<{K+~+`Rfuc$Wu$p!P0+#}0!>R7&C$qo&RdclHAPl2<(M+YGqeUo zt4dm#o!Z`>6jKGfdxr(feV`q#9MP&i>S@TxsVKVLt4{@*MMgOT4;1t^PgFG2mo%D% z1+z-=cvn<)}rv4oU0N=&vc}4pM}xoV0w-(uML56R(La_Z$1J&+1>J`dDH_y z3l$T>mFoe<^j3{^9MiyV7gAN`J^;v|h_wYUjK@@7Gr0y0#i@;%k}M6GDepjMV~hqb z!6}etJJh0>obh@#ZuO&W-Bz>@z5Pm7u7L;#&gr zA}6*tPfOCrI)OF2*D#rr=B&8!_%ftCe66kc_FQh0S+t6pt5P13W!QknF|G7ncbX0N zWz=p?SI6@HRU`FC5UKm6YMt8ZSt(vq{kLxmLx@@_Tn}{2$0ATS6>?0!5t>wubJk(B z&&J9Dvfgg!Fo(FvXYa#kH9iQD!ScG_kug%Nm_64!CKA@|Tl+F{q_oGy_l;E7ZO}-M z>F0XG(3ue^@AI_Pb%ZTd2oFQm5Y8C0IzO7hOk`|lTwi+4s8GV&Zj1HmX1DCLh z2u2-sjJKgQ{|cPR*sO5M;vrwguExoCZRh^WNYZ>JTQ5;;_dsb|BhS~P=CsgLs6`h$ z98-F?3hAB^y#D&pBW^>1hFO)iQ8hLL&?HM^7VyHcr2#lGnqZ55F1r_o)QtQ zFEdTh`9W|pwFZ&+=P;T`=NoKBEuzWMdv0VlUUZ;FhH>W1ki&+yl z>yvV~Eqh{kV>zYSVU$JNzCcI7s%SO$7BF?Lq^b4C=^Dx$r46EvF{EpMg_H)Fc$9W~~Q`U32YHtTGzvQy_4E40UC0)Dz25=7W%5GuzH|U+5>bl>dVNj+_XrWN1f&Y zs~wNm%4J)aOs%SYehiG|RatfKPI8A69(t0DhoL~bRmrB3>t$Y&lK>kn9wo#B$P{{L z_!WpMv1g#pWCa?LZ59zFlgnZz*UQs#z9nm!6W02xkt)j-`f?kp_CpyuSDVs8D6&ui zgq84=d(;)6WtK^fe%+F3Feb`Zi5J*RsAR2^a=mP~;LwKX2w7NeG1b#rB~!J;tvh^X z6W%A^wFU;VLZfsUaW$(;(UN23>6Tt-dB1N-qS`Q8$vNr{OY12|WS`o5aPDEr`y@|S zdJX2PIo}c*hm0}HyYZE?JImz|<>c`odS@8Xnd)u%v5xJD08g#YHVd$#&0l~BHMBPN zn1;|pU#kS3mN0i#Sk%rQ({S0rG*$0APb(sQPD__k#Ul!y$(ioStD?0#?k@UOH!#tb z^c8m2;~~aOon;^66ZNf@}u2)@|FVH${$U)5AfUC5CqsugV zeW`+Xmw6|67FJh{+^{M2N+v6?i)1?UUItb{ml-4dycZ-@ECE;)ns-`OX;%lkEr<7C zXRFN%*s&{ZQMi1kT0+h>syAuw2#bxI_1>v-y$H|a0c(?1tESBtm@*OVFyk$OOH4P4 zH8{tRHldN}uGqIE8SQ~WExy2H7kf7AO(9TKv#y%xhXIITSvosTEwIt;dJgVUSD<~H z8I$*hra*e;PMBBRXe+?Vr1{i5rc{q}chDU#W4FBNAo?|m&W4pbF}1gZ!B!5fs~!)g zP9Rkp>coE;<*q4gN`78%Spg;_&EpLW3$SSG^s3v0ERZ|BoA%CR6HTurIDx)_Aysgb*mo0eE9P*_*XG`fwdu?n3Z;?vkJD|G7eQgeN_(zN?I*L04ZgC| zEe1aH4sD>eRjLQe!udadX0^tkACCn))-i53r|l-Jh7OVORBshfUGM7B4|T3REQe{y zw!1a9r>U6)iq&eA0$!1A7EzD7r%uw0jhM~j;bpeSa#iL7Ef0&36!x9`?Tv$#GVkYy z!*+c(TTD-_BXh?~Ah@Ax1rV9~RrzUQh;}ms@iApAo1S6auk1vP0%a|(KeP(yGMYIW z*$Zr=JY6JePh40@KE34F(-I!0Rsf^S6Q^=w8P2S2O;Cp@jkT@l+$p76QB_%%b0TatbiN8jO|sWN&R|()rF;*`}SKRX$-5<>qJ~eT6c5_6n&p-cluaCPm=Sr zWau~uu-d%N^~^SDZB5qa}fLCA11#x*-zhfbAch49svM6kyujg7Yi zjI=Vngy3z{PUaaA9poJKq*5vqEw*Q}0;-v`8sArCVtv@{brQAi!R9@H|BkT^$qP^FxmbxBWUQv8i z7%r3*6O*;VU__O#5mI~@3}#omN!4Ci@$$TJ*8n`V%wW~7mRj5y#1yqF;Mw~Eg|Kdv zMZD9Jx*8oG^vxSf>WTNdSJj++_Quq9M$L1bNJw4|uoMomE+Fa3Sz$8=F# zk+XL1Jz9a;fR}LV5reyM#*vw4;f!HAj11saQDYqu)WqD&(Vn3ddvkm1F`e;lLpFVG zaMx@+%8cD_H>?TKEh6OZb#5KzlQw9tFTm3JR3-F{gJ@IxA?fXVJT}96R^KaRS*YR$ zaTG|tbA7u)ex!Q~`7%V(b!|A=H|s0rlQ&=`5tqT-K<$=Cei_}Z9wdu>ek|G1;x)~B z8B=2wjSgQ?myjieI^hE~ZErGX}Z+rgPvsiR1b5gIlTZ*hCV+ycvk;{ASfS9E>49>V+iP$MonV$B$S0ckF177r;(~_BHZPZGg2hx%??CPux zd#yjn%qYFO68J5*#=P^`S zSR`u4Q&bKV4yC#?XXDhuC#*Y%p`W)T%s^8#Gp`L2xfVX$9=<@D?5J7G!O0hGb~r-v za7>XNR#&nRZ%Kt^vqg<_Z9u^X<^=s629S`+oq{Uge1O>nBNeK1UE%{-6C3D8d`^t7#RVE@P5|^b zg@koQ)zJLiEQl=qi7fYhpeWMYI!dmol^kNaTpgWvpp4BncN5il@+Z8P1)A!drxR=` z9nZ9P7|8C@;!d0(fsRNZrFgya%1$TT&CsL2mmw@Rb31w-C{`RuM{k^k!(^ppwhvwg z*Kce%!SEW5hmg$+* ziCfKRZpH++ueS@@aayANaF zG3$w#kLdzya2cu4Pc>!bqP(No5=V<@wS>x&SCXbWUhNkJT4j)%$q$s2{iXypOD5B_ z0B{$R*e}rUNuYXU5ZzRzQe-3c3n)J^6T~CtCe(6;!dHEvM~vE;HMZ1op}>^0tio)L zn3pjsI@fB>F-Np*Q>c0P z8JsF@H772tI33&Fj2Dnu88Hc;JA)LhN^@-I+9j0`(8>a zkT%v?)%BQW!=tUE1JA<5s+rNF35s()iL{X+k;pSSrznp+YOT-09F8jM*IL~Y@v=M! z-@q}gXjdWV2;h@n!3mpCD9E>R08QeX;OJhDAkcHja)nn8EsWlaZGNTiq@2Lg6_{# z<~mzkx0NcjEI^Q57W>AMH4ZXu1-^pz&%QJ|KH1~{g`#>qXv-Um!>4!0%*4vT#y2FvHRJ33 z?@?O@RgdXbIz}}Hag)qt(2?Afs<&jiz=Wmqn2tqns4uXX;~_T)dYAz`Pbb`jyF~PB zw)XVwdX|>-iJLg7>Qn1PysbVto*t;l=;JYET3yzNm}}*21&TI%;%!0&m}0%r@y20b z5Yuu4_xw<{b#!UIV;*%nE&B8XUKK9NygS?GEzvn<p4Hx$0J(9Sh;UWRDfoi>wRhkg$O9I?D5#NU7L}T%D1GtTXte~&v#^5|P;^UgvAYRD-^@J@%-6X8-zCSG7@nvnFxzLS4vyCfH5xL1zcEk*YkYV-#@bA)w;7t9 zpQ^MecXYXTWYA@Zq6UhW_%hbA2xjIrYK(!a$hLu8A6t!5u_qm)zKo00q8tsoTY&2fXB57-ZjBkm<(nQ^&TBEIuS%sp)=l<@3aLc-8e)xHO(0&Z09^)ACL_0nyRfuJ-aR(ea*0wW)+8`7X$~Zc|>L$*y_uEcZ6f zfrclw|6^I+ml0uX!qlC?sg0cV4fBY;+uDc$7E+##JlCVPGqz=6?*pyXl`(?TM=Ye> zdK<;wGdU2lEZkFz-x5T3$(8cJw?y5x5BJWo2}#$yV;PIbbTT~>=43q{(={1e)G$Bl zA}-LdvFHn=W#;r2R*Ym&+6sd?N_kAv;d-)JGXFqDFte&FZEj~zrtm7LXErxMnH}^5 zt8sTiWgwN0@R&F2St=7&3)r1Oin^%^bG@JISxE%D7{l}9Fst3eeCE_9I)uX{4KG7> zYnn^(=6RZfGQw!X*C+*c9HGixIzA`$lmO}4!4Gt|oZK12Yj#<&ETG}U-Vz1oN>`@W zEvXE%(36b%mSh&YO@?VooSdO4Jua%X$s+vt7oTnusa9VlvBUa@tm=!?0NiMiE z@=Dvi6Q7d39#L{6@IYx@nbsG(-j;Oxwy6Z;QKw_J!*X}Nj1c68kb7^>71ON2oW`Do z62fs;N^HF)ceeP}raZl7*P2HKa;xsO!_-FTbwsnX=V9!+C7sRcHc`K7LE6$CcZ$ z)90A@L@;9_i`U8?Tcc`P3+T#@nu0|21u{P%i+{`Nz7VMYd z=F{d#?0xJq@Xit>&_Yrb_*kcwLtfbj6Wj^6C1baV^#IOs$f8($7M+%Wa6xaYbQ zQAdco5b|ZLEotkntfzJxndVCu)DJSfh2L&QNqhmQM=o5qQsW35Ah*wK8fnyo-NSUH@$SAA>R9O)s9 z$=gxu8Ls|j6}@D#0(9@_&8U<(1=iu?0Ud6Vzg|AI-b*XKfEaFW0xgBo;+-2c8nTh9 z3lPO=>-32SIu5|P9HdOvkVIslnLYJDhZY5R8|EBy1;#xR67ylO%$ugNH-+o!yd*o# z2IrXXj9?jFRcBE6}h7M=Zu- z1t-JeHsQuj#=6ocsQt2O1(E7ZN1w?VHU->@eoQkfS{?ADoL$g5T!`qT`p4O^n%dCmaE8AujlQ5da zQE%gF&viTbs|js~ZK*9HYDC1xt>wV}OQjcb{XzA7!6(`%ONanw5_RAB?tee%0x zAI5>$FQZvGNwm6fgWHf(w8)OY!(fFiGfFF7#*_~NRb;)gVzgo^jRMim?rD3S(~;0$ zM)yidM>5Z`o~drF>z3$SvfjRA#Ady+tBTd-=ChCb7G|xG)^FBfzB_3(^gLp)W>bR) z*4zZaMoWAoKk+ggZE1>2-pddn>)e6$eHglk@(OCsS-id=+6-R1Ie!@|4a=QkUn}MP z%yi^d^jp&K>z$rXeHnCfO@)rycx9WrC6Z2_-jeBz zsPG8GTcQGk8)jsl+R=FJhPgcD5!;wXA~#@r6SQSfP`}Gjw`40B)-=z}Q!Bd>>v|G4 zFVMC&^hmdFi3k}tRb2xs$5y9Yu|vk;-V*NxAe1EXUi2z}h?;3D9eHob1by2>H_`af z%wmv>5sC~_AeE~H%`w(xB(e>_PNrR;bZNp8n0^>-Rn4`XPF_Z*t1%*_@_7OHL}#^r z*%v^XJe0nfw*(WSP)-w>Tf(bZp77qcgcaLu;!^O-&^)v;r6A{JjMGGfu-Hd^{T231 z*I__&XKn>D*pI14^ni{k>Q4Mc$?mJ-Sq@vHPd$UYyjdsm;;sPV-%C4x5$78DGFc-}}*L@2) zEL!*;Mp&ss8AXVjFcjDxPf(fXNBDSf6>wd zBIv?M?(8i&eG_TcwKpHZDtfdtEMLYL)cz%^_VJjAtaY^2KI&@@iXFrC4ITai>PuQ@-mI(G-?>A134vnn$VSK2MYs^iHE-*prqA^|n5Ta!H)G}$R@~bi-spZQ;KVl-#+1l)_ zhCPh6Df86XQ|Cu+)KoG}#79p`Kl15i_UH9 z+u1c^oc0mSzKmH+M$*i9CfAzkdg`nDFVL1@E7U$7ZRJ}u(yWhZ8!8;5E#!4o+U2g6 z1TbG9qUfmVh`9~aS&q$?$MHt0rLKKD2cdg5t!pxCb9Hyv2ii@Fg%hc_Udm`Tta}}) zmpux=JjO9_*C);wfSBaA4hWo<1|z!5do=ZGlmaOgy$S3S2Tpr?4Q9V36G=u2DX#l1 zLa3lmVy|;OK^96!O!X5tJE0m)JwH&GjSGWei_3uZV67=r-$@6z?edsiU)tgh$ z2my9b*fI!9uei#{cx87pB0J@2oFsXJd=}^dMB!0S_6HAq>L(4ELOyMuCr$b)!o9pai9_{Sf0K6GUyp8HKMQ2KZL=c#~9kI zjyjcHY#*cV3ye>5+8sHM$JV-nmep@8$2GHV#aeuUC^#$5ls<8jN77u4?PuYnXar-X zTd#v?I^Oiiu62yJq)jXu-5qliG%fgRLy>(Od3qr~TOQjUv4MG|yB7AI+JPh7;Vm)` zgJoSJ89}|=P}#E#)<80D3N;4Nm2HT428p3%jkQjpLeYFx3vrgX^h$vE>BWkWMn;aF6%&9)d zwz|y$vMg`Lbe_3P8mo%;Vq#nPQ^ro#!)UD61g)aZ!fl#aTfjt5qrLRC8W4iNky-|8 zw@0nu!Z{qIz3ZRuR4A{q%XK59cRuAK{%f{O*bQrkJw6&S__#RU? zr%8~9gD1|VKO4S1GT=vd@7yg*`h*5XfpOo=MSS8sBG&@0GJRz|lYo=>rL0*KY)n2L?JzFNh@!5QV^^CM`-J{>Ygl$8J zrYVUtC_K}mMI(Bz+2Pf~MH6#33mF!MFjJoDh*_3zqGbl2;Li$*& z2by4@jA;TtjA{$fbP!*ao^;P(h~LQ%c#y|dmCsWJw#XZ z+G4z}*;y4j`UB9eJf_*cF)BP|k4H9CAu4hcZ%L1(cvlUm!@v_oI;D()lVb^Zi!4d- z5d#I8l}Ogf&jFB*z~bYvZf!dq`o3{UojtT(OLiPaSy@(S?~m`zSOw^zy1ojkY^871 zwtnCadao>JFFd$73#&VOI5lZs2CR$nDJ=6mEf~{$a>D8@VNw(7f}TBMHLcWDhGYH$ zE6ghcoVc1ZXic5sy+UybXj4rFlb6wvEG}zv_gwEXkM_>7exThWjycm~b>q-$ZYxPl z5s=zmDFwPpkFE_cxf5#M0uKWQU8;$8zHxwqYmH`my(K=`?HP=HyFm?!gi81}UPihq zj25^EsVuHuq}hnjjROj;#qPAqV~TDIhfjO-sRbh3b~*-etrY9FbbBVhC7`uBnU%`A zD$sGGRa&G~7a*J1v9OqH6vhaP7UaIs)(V%H;6~gn+99{1Brxy6VXW(#MG<*-b!7x= z9A%BYk%G3;c9_eAzTVOVkTB|2seksN(`Ap4<$dFL&|9bEcDc{n4fOS(fNlGoV+xES zJ#_E4BpcF>2lS->lwt=W~ksqIUe=Z@!gY>k9V&WPd&?4 z8w>|JX3^TATk_+0jCq@$cyjgzMrN2OOjsq(gD zS59=WrLCsxs86gGbF|`9J4q{)Uf34!@Xg$x+(+{JNsu3=pB~QazcBv`jp$9*PVTQSF zQBeYN`6gya+403Oo`FZ!-QOa$tdlwrZr7SiB`o0xAUEW71; zcqG#zs_AnW9%vL(w9v=HGxXRJ>AY94;YqSAGJ|()DX^v#teh;F99|JJ2igP;O`!rD z;r13QPQHVs#ULzj#KLT1IBumG7Ihi21yZasPky*p+S08jj%heXINe2!$}LeK=6EXQ zs)VzAa^hS&wc+x+!fmEnvmOc{YsR^D;}8)*#72XDQy7t+J`okRb>bp*Gak|azdN!n zZ&IhIjnfren>3{qfhC)PNRSXNA1 zBx+UnmQ-eqYFZkvbEyD)n~k`4(V+m#X|`H*#Inm=sFoD?VW?#eu}opS3}qWQ-M`7bx6YG8OjPm^w-nC^KXXGqzvn6j%h^_2X_yQRbwcG?uT~YLIJ9qsTe6<;>mF!t zMVeUAR>yc00%c|FojN}Xy1?0Wq1Z^oEmrjc*fo4T4_R|mI&S{-$`cNN~8 z_H+b>HO_gU0?g1t{n(S=vmLhL(*8CwEWKmYl#C}1)~*DT8+A9F5OgLh%|P6Nf=X;# z`L@psFg%k!u;e)gMwNG}FnK0pQk2r0t+@JvDU7I&Jo%O^JVVh{=r$ppdYHRCUFR6p zl(vCvjeCG6sOQU-+!R%5A=+FFAoKHq(zamk-28~K*`DFu&g%=+)hv%1i$`p1 zJk2ZnfCM@ouA~~~K4Rltt^HZco4Vdklm(XI=6&)fZ2^mM=Y4h&Q%;{2 zZI8abOvM_Dtsu^zX>@r77$#~+{tc#{3L7nRg&>UD$ z?GcZ)LK!^=yQfwGy{NT3ZTHDUtP>*L#blk@jgcSOYmt3^tXPOCJk$1OOaVANG&J)D zcPn8nGpZ(DhJLFv)f@2)T3nfob}@fd=x&X52jgaJnUHBM@t(J%B%mn-Q5VQ*QL$Xa z*5K|yX_f|qTAOn>J_Vp_fQwH{ZJK)ur(}^-|Cm;bFh;D~XbRIfS*&H4;4edo6z`0sO~G!?uBxj!P6o~&5H6cUqD`Da1-N=TN0*2YQXlIInWR$qI{58?fne>?w-jm ze-=hgOxwCH#9PvWZInfs{^gx10RgJxUD-!H5bX9OI`ZVlI1M$spkuvYV(-Rp{#rObL=k&Uu<Zph6n@$u`erXU*Q zK=M&f?-Al;bv{4RcZSZY^?IN}%u0RF+|j2;a5*@oP`)aiTiX!>e~n7{kPD9zwJ&2a z2zMX5jhu-JeFrCa=SLqt;*w3)^6PuTC+DWWy3Dt=;}U$%993fXER?Q+MVtdUSCE~6+94=b7l3c zCLPVPyPafpH0PdV?~PP-7U(^T+6USsSS5$_S6T!;MQA$2{ec4QF+|t)qmFwr6)Ts| zkD@rbO(2zX7?kX8@2!ZpL`Gq{GphRrx5hhsaf0&6U-v9+(qzRAT`j8Q*qGSderX$h z4-mC+)LSdU9G1IrJla_iUYy(F;?YsYwhDyZ>-FrEqdVD9CnuX?UO|byGe& zm=|DJd7dB0Bi2(k=4$}?GFB7|%>;4c;1h`q-^f1dD(}o~Ugk$&SyZ+$tNVG2HAl*`NUXEN{-pRe@W89rzTWt z9tP!HMF*34-RBrx9{zOq23Unms8SVE1tt`?L?KzS2Fd|!= zIk{7kuMC~YI3kQAroe{DFih~|mu11$dLpW1P+7636pSp&)3UZoBQv_GW?!I3K`Jq& zR)HMfvD)>Upce>~t1@mJ%Fsi`1?&#kvQf#Y88?eZUGq@tepFe!vXfn5Rla+!mkn|h z+|JJD$5s_5Q%SfbE}|4yYb}w<<>EXU+h%!fP(W)0;E8w^dMyS4M*B0!o27_;#^E7GuMP{dRlZ4Ckwu^S&QkXg8wffb3T zKU>63OO&!lRECIGw$PS{3=w;Qd+r(RZd~_cT5w_1NR>8n<@K4y6-Ix7$gS-%`Ri`)Bk48y8-lJ|n7QsZ|t5S%AJ$F`$$xON-4a>`L& z%eDKQPJu=&J4=Gj^>XJsb7CxXI98>PC1>r5i$`U;g)K@u{?t}0FgCqlpJRo@rUhLB zA1EM9O9rC84B8ay44Ug)u{|}SV-~LsMNFfTX7!lX>Z=C2?tK=vg&AyZXir@GX0JuM z$CKaT-42aZS|8I+`B5#wi+C7G!Dv~g@t8K;GA@tV*V_it97ER3F>MCZYRpZ9Ei_Ys zXqCaMLhES);ki!>Bg<^tw)luKkjN{=IM+d)YA(OHpM{t%{h>Bt*13+Esn{N|`vS`t zRc>GKh|zX*)9I<2ys^~vwg|R)zg8-M(kxUXza?3VfG^YcVdRbyEGPS0QW4o3lnZZ1 zvD#@e1wC=p*%`Ka?4A1pkhmRZV(JCxuu%6pE6*Sjx{(1LiN4-a>ie1ow`UNS0ZDDt z);TsN=Oi87m=|!1*7{u5T$OQs8BI?e2dabCv!|oI;>yauU`O>leO=gUCnI?QDHJWy(bF1FzU(>M&dR^vVBzRsy}X4I7@6AZ0j|xE6 z(ALq%qb=vZ1zCk_ujN^8q)9EJ#pgPu4%;)29AdU z8266Z_yXR=WGdh9w$|>X_wL$OpIQ&4OKR2fPX6|&F_E9LoG$~{wJnzHmxUf|p@1Dd z*E!FX$L>?2cUnZNF`|i>`U0JBok&~7e;t}QGna> z{nT6=WF&WBmQ?YpLWf6kGrG@p)kt3v--vpFwN7;pMSEq_IId)D7O!l2C_{B5Vs!>} zy8aXiseUsiDFaolCHf4?pbAY)pzB5|Qvo`2uyJLxa^|Q`+8dbc?y4}21omOfmQlRv zs0);raOqK1_fnzDXF`iOl60M`h^7JL)SiVEqS&!p;eFeqG6OSdUfnMv*IBM3aaCE4 zRUyklC^Pkzw6miKrhhyT;t)aetaDu}mJHY!?qjGf6qfG8-RF9ts~J+9`C3`TCSWFy zaDLQ;o*=LQ&#@YGFFPx{9#a`NA;gG&@;kiRw&Cs1^^QPhmj_XY(Sf<$(LLaGu5&$e z#}c{MTLm;t0~eJzEiLV@N+RyI)(T9AEvkIa4@CxHoPzN!f$-Mlbn@<|-3n-1Hacx@ zS2pu{VmYV}bRr!gCCNScQY!hvbRdRw-c`oNJ^Wf{AirX$enOl@8-NfSygQN%HtP678mASQg=K+ zaOMPipQqUA@YIIcoim6=fhs4$`m``RCQVw=yd^Aps&t`uZjxDdE@U`}cYY|4T~T*e zotM#3x0zZm^zTE+CZcU!-;8-x5L-DzcYotRK%~rMN#lQYhQMWgR6aVwDe8 z>WQ5;(4M%hF)FE+#q(pklZ9A!;02JX=q^;R>;58jeAM(f<5fX%Fbo^M-Y(dTrd+Ie z7%YZYsciFM5N4*3>8v}~cTDAKJGDKYACp#Tifg;Pz~*LRtwimWU4XQi3QM&?h+zn3 zR>-IyFMzVmhW83X0rkPftONN1B30NbpGkQNbM=Ff0<9AVi!LWhy)C>Y(X9fht==mw zuqrqUy~BAKMIh<2H0}i&td%n+J<+W;D9|&6g?Zv(NJ%hixBPZCZ0=%Ijb&-H6+l#O z#j+_+VOvPC)m_@}*ixX^WI(|3Za8qW?q!Ti;4N|MG6ucb4^%xKW^)Yx1JYg@tJ&)F z!+j0e$hE!~Bv7D8CQZlP15GhmkBl*D-@-*WaS7#p;#{*L8z)SU&LEdgtJq0Iyd@}e z`Yf~Wl@gr00I@($zhwnU$axtfZ83w)+=sCki;2*Z_yU^8)ozKh=eqAi%_hs7Hy`1K zR-+=(ebmE8z0AsxV=qGsWXP0=KhQXFo(@H+IYp$?U5yWRK8y}SBAM7nJrKxDPZ+2< z)l+DuiD-*CPlHt%9n+TaK!xQVBh8Cb8)TKGEQqcbm@Ng}J?%9+*4);G6L^EGxcA7m z=+0Y`!gj7P&F&*cNM|K$%2~K6%x~ST-RUm8O)Vp0HhO-^#rcMpwh7Geoan zZxgJ|MzU?L4ax8YQ|#s|J87-%Rp#a^J1thLg#UpJ{ps=uRnxvL^R-lAWa1{Mtkb(J z(7V^DGIc)23FIEr@?@@Sjm4gpa{b|;eS=3#PczGGx}uLqIcSJVs_M67K$S3X_65=` zQR_^;-B9oerp`!AUH6OL*&V*tcs$rO?ByiqQP%)AD)$6mUuxSjYc`{JRobGQC8+7V zC2iwwofFqz`Jupe=;oNldKvB+o^Ec{r=_FD5VnHg8Pr(=i}dz=ed%n1ZakA=Q#Wr0#Ga=}uyZQt+G@8X zH#|))&FrZ~sYf|VsEjiRl^DU;s?t$MO(nex?R6%j+Z>s)iO*97GKS@;A}@p1#@4XV z>)HU;lJeXXe#FLm`WCw1zgYkaBC>Ma@888hw_&R@6_v+>?u{zm&%BYMgw%|S{PYV% zdv7PYjDG=P$~EZ97Z_LXEdjn$ij}GvST5`QU=>Qp-9ouDh}Au;%I5BAVY_v0a1C{h zQee`Et>5N{p+3jb%lYme1S3NTQu7gmn3@->yl-HLjYL>) zD5O@B!%)Xh$Y~iXTZU}$uZlJo zM6r9j^Qez+Y-)Mg^kFElW;5u`dqaasN7T9_k=HqGc?6=ZI{21!bfGGwWzY3dV6sf@ z?s+`cI=5(YO<)@f!@hlB7Ch61r7mc%;bhXRn4RX3I^44Ru|hc`@gepJA<#$DhxVyb`^ zyXY-#)dpH@Gc+U`sMc6sKwiz7?e;6%woz69-`zwmN{S8%uh+O*z~Vqcez})Ie3!Rr|_%Ni{NA2);n;pluW5 zo%>IVblA{~vy*$CI-JpErk{5xDI+bKq|y7tIaQFbn2dbX8MPf`3FOO2Jt9xR-97Yx z&^W01rBx?R_Lhfd%;J?DYwlnxC!X4IInmbY4K#H0$una;+u{pUxTR6WaP#471Ne59 z4v?#&@vydH2I~>q*0jO0I`UhhanyRZ4PHjXmKd>i+2>fKcdKbp(fKlRF4ujQ_peP7 zUuH84rR;%*&|zFf7S|W81n5DnjF-{0dV$$~8LVP^ub%F!!Zw{9q2aIlzdZ~Y)Y?J` zCLXaF7}dp+sPiK>cB7zEdgl6)wrdHREuY%-EDF&P`DJ(~%aB%62bwOaIhDSC@70+Z z$S!ir=c;7)$g{99;`VKF0O))%mlbk7hnDR%?V6Am7$xbse&Q`z8+0;)_JOLaYw^VA zRVnj9MtAtm7ibN?hahxx3ACbNUM*Pc?aE5GjY-wExGGgK=Mhq_p17*=n)Gf~{{`fs zL)%xH4zwU9mdv$03#(=pmRrbvJbK{rY}@Q!Fgxo}-_WMEY0r+AA<;PHphrnPz;Bv1swy!MQU1**q z+%pKCX2$GQ?8@ROMif&L4irLP3*QLa2O4M_t{d!aF$BkbXj*bFH;C9O(*)#*fc!v) zdrlau@IaGUwWD?Zh7P$yOaWE(n3mws9b5G*MC~*f%Ce6~uOZXi#-4l#Bvv%C^CNbT ztqoE6&SVVMHZ?(Bq{BjB z>(I|QVuL8F>~z@Pe5i-asdW$VEurveT(fzH!LVn`2#WnVHXJ$FrmyM;x?$a@F{&SG zYy023HSrAk8X&FW|YX?Z!rG=^X~kNmgiG)I1(srHo6@ z@*LZ-&`qprVEw90hSgRUywk$!PVF&EY?@WHLrcb7ix-%h37M=w zbT>PaSj~q5B>=B(feCah!rL=a^G+G0K(9zm)Y$D?1-3$hd}z0UF2Gu7=Q3LpG?vNk zEs5)W7&%>#4mZEvj#a4*VNLOn9|{b%E3-H5W#CwcM|BluA%hecp?8&9Sg#5;BHPCG zrGXh6okm*b(K|0gz0`{Zs{47}AD2Pn>1#9hc4gcxhB4(doFKDL{0j`d(#?r8 z$UVyvZRW8@-81N;^%dyz)XTCW6A>EkAIA?~0*bMHeQ`O=>g2Y)&Uv##lR0e-?d);5 zZDHFDe4r>5@zGM7FF2&6jDj_v!% zbs}@6ap{)Lp|_#F0Q5YxqESaZ zQ~2fsE7Xs(PLgBCF zy11YGBvyzpxsDf@v@CT?p7krMnweq~Lh8v540yee%~Fjg>` z=U7`;Med;NUc*d#Csnsn)Xt9%+i*j|GQL1$5W&Li1I?yuQa!Zjy5Bh^?jpF|=X#fW zc8LBEXHXZ@999cF$GVN^(X_MihygT4qM`coqrq5^q4vi0wh8RYtxd0!-y#o=Rcc7S zfCk09gRGDG!oAxTS#K6`Iac4CEYC3rV=swP8Deq!)pTzYxMN2 zKw0S9Vr-7t()5SdIl{tC(b=w7<){l6BG)%#1Q*er z=&px>MW*~r-#ORCkxj1UI36f77tFF!*N?}zp;)$QkLj3?o>WX$p8OG`+=@iu4ZkkS zysWmu8%sfiIXsHq$8@|ycW6ay>&mM7dS(uG@`#Nuw}S)J8>yQxRBQ;nABG;w0;FTV zj4BWemD&%ZsfdTlNWZiUCdb+C%-8JUc1v$g=Q}=UJlrVHO$Hsh=vl?rtjJG5x5o2RTK6ey{oG3Jz9)5q^ z8rn?6oZ8)h>*nTBvl6#vblJ`9l@mW+ptpUNQB+^n+~h;IS)p|p$c`clIT%2WDbO+S zQcG*zlIV)mSL=bsK^eQ@?#-H38`d%_Eilql@vYun85sq}eOKt)RZ3B+4MNl?mUdptiT!IHrV2|7PUnQ4~g zoJW18tH)?1K9{k2Fk|NG;RD@v7mZ==z2#YxdSk#ltrsQ z^)+a{#?8K4qXG~^_lS%_>Q zo$KB-dWJOzkE!^uiZtu^FjPM(vL^HKfVncVE%#@)V{rv*I&y)%6oY1JmvCKCBSP~y<(@mx=@zUOYR$25IC zFqJ{MB>5Sx1TF7LUMn-g(soQ8uOpUymKw%KXT~i#weEwOt}`eB1UKgAV>SDDOJ)`*S_N_9%Ge&$CTsV~D!@$({mwaYOeg6f42S1gSn}65Ycjl_xb+#KL^kf#r(9t5R_;Xcw6txLT{{ij1ht^#;EfjN zn0A;6ICj=>!>@UYF>T}O<_jc4!P=VM2P$<%2V!vdxowy`YB?dN>N-=Z7kk?8rmlwX$~#+r0s; z6e!Hx#tO~s%YbJUr-@MRWw@R%UBo2v0xD?jfl}s~3{k3GueO=nrl`;}(;m?G8HB=; zyub4rg_`ZkLAmWKE0tE^!I*jhgbhnjQFYx1Mw>cK7B61Lv}H4~RNA8%HTj%ak%>g~5iVZV-;yS_qog|eRY8y&H8cB;i$RRXMzpJc#}wV0kv82=CBQ=|SU23z4S7oPsFmA+L=hl=jMFYm`?OJ%YPyuBMbd9-=nrzm&zFy)P zk!Y_2UGG3I8IyUVy)JMCwPxPEa>KO-(%ZzfQUSW}dZoYH{6>d2u$zo815QSAg#5~8 zO_XE9wqHh@tI`hB=S*I>xlag+_cCx5n4I?Rv3hEeWjeAaE&EZ2s>N2dI`OKIi?&Ks z?wPy;>S1Ric+K8nwNJrvU$b`u6T!9Q-q7tbHwtOi`OAb;4XAP=)f+m4|VUwiGii4nxbWtyHNrbXpR=Br>x* z>N29SmEK%R%VlV*jU&QK1EWBprh{Gt`j!+}>(O1+Utq&1(BSCape4G(MV6<{Bi3ld zMo;y=0AtaeDY5%_uye8C0vZQl%w)4=?b;*e=7DbOLBYjC0W1TqJn#iH4~B`Q>uvRz z`>M~;Ygv((5kpIaaD!)%*A7+(LmBdcc8;>}&?Q8|Yjh@+UHCH7< z+9niI;07j=S*gos>M;#5lC~+BRT0+c#R5<&QagmQraz9E03I*71Rqf6P@M*9k65RZn3JX zX`P#~EGrDRxm%|tJ4`W$SH9hl8!d+zJ`59RZV6}uE-kA-Syy$tll68~c_Z6RCPVM| zbVP*5ZYEgKr=`+Xk1ImxXL4nwc&MAH`Ul#f1?%0wyehq(6Kl?lhXHq$ZZpd_mW4D1 zTxI+*RUkCP%UtT?bn!rAp+5U!Z?tQ(W6MpWwbz$gDknn>>+iN9`2cs-EaZF)bf?1k|^UA_yha2csc~uaWf|*G+UPd%WJnDQtEePcR#)*n^ z9qAz>V%SPjUy!Pn@?(l`l2MbW5S#XXpq=jBLa5PuEAl}8jcy+w_UYo;UJrmC1=qu1F*HRGT;sW zFn}>cB)`Del;?(H=Ny~0cEePVugY4DXwMk6N<238JelpBy5nNYuSDg>zVmcD%2A5| z@iLlKS~Y~v3y5ENZbK7))R)U{i^(0F>$|>HJ@UTeOx`_?)U2c4zTG85>$I%+Eg4xt z*GeJ%#?5RAvvJ~xxw($1gf?DpiicZ-dqR?+RktKM(_>PW)t517Pg7C;1;k5&P1;f> zyJfaE%)s12Q|MM~bCp8Gin;;=6sKl6nnL-Tu?=RG&BK7ImKnwC#z7e>I9nJ5)fWY% zZL%jSsR>eGO9xg}wav?*wd?Y>gYwjkZc`CN^}Mo^C?6tr@s9o36DDL6Tjl9Isq2%7dl_3~MzQ8Cp z;i>2SFtmGov)f|xwD_zHZ?Orxage>Lx1yrVJ=epUm1>NyJz^14#lrb7sNFDAFZg)Wn)OV!jDJ<&9;qx#zA2PYXPSz4 zzM(73U8amu!w!_@TcNDXJqv5o77=dQcPM#n*~VIn3eO-JPAjnho7Wey>VQwV&%H2m z3D|I3@8z4*Zu8RhX4>AmgI@Geb)lt`19Hf^h?DD&}_&^H5V z=5{wv?@iq5wHSRwFbbe|h;kFb!;q!X5!z_+n8K`fARRStl3^KT$+6kFDTLFw!?N-@ zVu-?4I*`LJpv=zHFbGUlkl__(s?xY-qhcr4(MDdQptyW?lPx?g;+box8^wB{H2R%o z#d+sCh-GP5OH=VOrZ5`qvH-pSIw}U-=?A)OU}@EO2I*03QtCYNGALi7DpM=^TB$(S zlyYL;$xoY*Dyyt|jxj{Oy~d|-Cmmy8H1COiwnjWS+gPH{f^I3 zxeR!Oh5n6C*Q2#&Ctc%sZI~>OTIC*jt(;Cs;7rBjtI{xWbg|gSbP(a;o^IIlRN9qn z%k}CzP(~ZPLkozymn^}lD|j85u;z20tOe5=%ldV61iU5**^tFk%6j9m+# zqrOd5J`ReU>)Vr4Ih24s3m0nInzMy=Oto8*MvqAL;~^VD1;#t>_zV%qG`s$Vb)`bipsYHuq}cGp&TfX z(^gg~0t$$+031pT{oBbz7zQX?-+qmfSVV_Knr82oL~<;Qq41TBgWPmZ8nlr^Zp4~H zQxkQbMrotMW6o$!LxSH`1dUfL8!7 zAO&XCquWiK{ERNI*(%s=N z?Gsm#*?>|c`aG?27|dUx8~!Sqcwzf$NnAB`%W46j;w@oVvb|#)UjSt@YYwkhMaR@? z+r@gn?$?HAnT9B^$F#P=4&O|FgR6ijj8&V=zp@KkRTcAkOLU=1HRVU%>yK#LNSHB$ zd49B~m7aII=0O-87FHqqSa-liM{Gxudd{~bbT*EjtJ!&4x)ot&6T$PNn-)1hi`>m= zqpG5(5dInkk5Im*0dsF80!~=6rY!DrO9iCU(nD!^t<=&o_g+W$IR;TPX9vS^TV2&H z3O;Dyh#@Q6Y@qLY8MU;;x^F%C%3Sv8TYX7B5N;U+&A$v(n1>d1Wi+=9Fd@ z)9pT8rTA>(C3|&n6LlC0?6S=@(e;+NK+L7Tu~&AYJ1M#0^%t1+VlPUf)rP51 zg6^(c^JaY-ZUygZym6Rj&H~OR&!EwaOhxGL*NwJ}1!?zKZ`gLOuFWFoJ(o7S-z<5u-B zl0Xz{(S5DlipvQvZF7uSXwe+gZLMf38k|=aW@^=rwB^Z{Z;Nb1yT%(wwYH z%%Jt1kvg`tGRj$8bqp%2fEbDrYLeRp?<^_YzFB?0%p*ox}OCXVf)DIp1}y2lP{ye4ZiHFW8w zd@plt^n0dLAi~MqbXoK_3M8wuBC(K#=}|397D&;%jA*YMAW-M2GIsQaCgENmXt{Gm zUqkd9Qw7hNEe~FA(>sEvFUDXz-p=aNMCkuL8~m!pfJ#*i0HkaNoRPvy9FFI zXL5Lrcvosv`!K@C>1k1|$rSbQ)q+T=mnRoU6f!rHzSrz1qdaw&?fEdOIbmATp4WyT zJ2%v*)aS$Cc=+hWCLac+%{Zc(^Dw%4cR2-ywphk=WJY#DRth7X8Ii;6zAct14aMnf z+FTn_sqNDktvtuFxYd(ZB_ZIWUet`O1Ni-R6Ipus84TBiem7!qB&5=oNhXW=w&eD%CQ-TXfRO{rTrrH$k*El_bpq=Q_jX|72o0r-fxO zHQFbLSGJtlUg=&R4|s{$+`4)hL@Qw$Gj~f$vaQ)ZW;%C{Y3Hc7Ui7RRDUN9c*a(kD zeU|iIH}6l&iuyWcGWJ#3LU%Do({>nb*=jbnM`o%@+m=>@B*(*O&uT6693@{y%qlR9 zuD!l=8Yeeg|K_T6S;WS6iTwG|Fzbmn!S*@UjLBJKX5`D@)%VO@?6tDF$#I_we{JZF zQ7{Z)`7#=$j$0qw*X&kFC$(ma$3r7M(pk4vaaAU&qE81ru9X_n%xrQ@;1V}G6hOXWY@26#S-zh{4%71~hqFy8Iw;%3H^|}Ty&v^36kvg#;871_cUa9}sqV{%gm1ZbGSr3(kb^32-h+_>L{)HR z-<(!N%veE8StssZyPFUkUm#1{0=;t##WYg;p{H01zAB}Qqd(od=UCLTcBjYe&Y%+K z&6yfqzaN>10fL<>zZ2(Jbhls(ZrF1ybS{`#uMhWu&PWTzhN^u$X3Khv?BQD?J7pHu zleg6?t-7?Jt*Xwkv{iwLCgYV=pi%9yjhppKFJw+cp`Pm*wrRP{KxhM1M(SQz&`#eu z$1-}uhD~Q4k4!e)H9-;e0u}PNITMrDC~+DY5V5R&85q{)bd}Hfk>V7t!sC8#nky$# z*Sk|yU)h1R?vlmnIB{iV*_lmAxV~r*iYyvkmE~CZhNuwo{GLxs0U|i;K;9%*8rRtc z&$ud;Tb}UHOFYnA#9oo&{d%FQtlK~|epM=}f*w894+A#qpz~jX4|<7WdwLv<=CiYmpzjesHtrW zlII74<6XO?-C03lr8u+4B0>W9%V zBB2iAe#%nlj@`b>y*G5|HQyfFaXirRfDh@>d-7@K?&wZ$9CgM(*$&LS&dCgb*1MvA zpiB){Zg!f#9mR?o7Z5K+7P1f`)ycpfQx-GZtYqc9Du{+tPMg0r5S6HQ%d3AF5N(5< zk6(r^c5~Kx=XL|v$2B`jjQs+T($pqPuP-pm%5;x-hf*7s-sB|uJZ)#SZAWq*v5wyC ziF9_|Zs;_{l#@z33p;&p?9+SuEbNTz!sfE$43h3Nw_&C|3%e|P7rwwg(9W^Up(OA5 z(KqWB$Pmz-4m~U@3(NL>pxarXm|^3VsFP7*-SFx&d1Qy1snbz!-%jXEo287_on4+z z&XjXDZQh(t$royo3hnKe5n`e`naa8)^vuv^U{xFssls|qREyDNG_(jg#@yqv#+A|@ zrM-h~y@l!J?U5%=^_46l76KB60xiy#hMhBc3)~5G%7+IE&z3iB*?T+|v!VP+efcuf zIQd0v;7nd@KDlL9ZwV8Y;R0x0_m^~`n2Y<~z-%{r*Q&MfF&(2VJs1_rfSG5EoK4Gn z>!rX(7RzEQv;^w>Dk;hCdpECuFU`YD)ip4%$Z3PuM5TBr0H9L>>G1+tT~jF~RP*g}Cu?tNsBmEvXU`TG1jm2mY8zRieWrZ zb_2{@m3kR%Sqoat+|3iFgiZ-*{dr7v=JU#)(GO$2R^zRiSU&1^k{E}c`Kq`GxntVJ zPOXINm zfuqXHY%yB=0{XVhIn#U89lJhhnfm-NT28=Wq@uTEqLx;kTKdYWYMH3G$e+o+>a-8C ztnUnhuV;;A+Y0zFHt23;S-YntT<+8?vw7z_!q;q~$oe`Lxs~XQH2oDuRB|&^e5B!9i*-EGtW%(6w74Z{nWg5}qg}Ngcl{Cx9BV5O$vb{36YWAaEFz2Gx zNDZsx7yN3lY&D}VfSgp+k@x(8+KDkuriwh1VeHY_R zvM*yIQkOgZa#Og9=e*cII`pkWFzwb*wn;L_Z2)P790Z(B7%M14!vttz@B^Jbm9)%v3i zggW_cQNh9t*=KSG2i0m4^D&huMT}#e-;&H?i!8ZaZvxV_ZKWi zT*s1>p1D>|kIw5AF%(~w)}b&n=H2tC?}}ES%d|`w!V8BAu)1%OuSRY(CVS7ZjViH+ zrA3|=UF`6VC>N2#2+dLv+ddygqQblhG#+S~AS$ULhzD9*Qqqa-I_irg%c?UvkNUD; zv0FT3qQ zPs^U#=(Knlc>zfa?|eKG8LTx{-swQE@yeUD;?v@w(^iT~i=@Rd&g``;5&8nWGoH7&dsommy;^(Yl;@t&B`{KL3_JYFDu4^#nl zM9rhx^8)4A4wgRd3}Rwg;;kh$*W0A2ZCUGCIB^OP4G(A}9tOKAD(xO?PD^$~MO8a( z-jeC8GOC!rU0If6o}Jo9cbjLKW`&Xx#kjI^quZ^8!#erpTsL1^CvUXNCvDqBCGXf` z(V4B!7}WK)nA%J>j+s5jiqPLs)|FB#Yuswdq#KWE$u4E5Bl!jw-jtH8Xy=K8k0xf3 zt8utiBFglU-YLccRiKv!Y8>jAq6QJXkdGo=V=;qLMXMWUC5lKfDza?7H4LJ;d zcObILGO^y>kEsZ4Ok@}Mc#IfStFxYOaJh)~%G|LxQVOh(_ZF?sb!t1oCzLR8^TE9} zxu#Y3`v$goU{kCxdl_xI=&=#;wV}f+mT5M~n~&D`XnJ5pe_Opv?!e|~)lqLc%e=ZO z_xxz?8G*54JdBQFMlCAd6!uu|&SbmwTQaVcTA9In>|sw#*;bI8^P}e$8N9MSj5RAL z05UIQyc%5`UoF-ok29@}S+hJI6LGmfA@^E2wbdC`*0Z;7wS9|;O4>XNr%g1+07V~0 z7k13JZu0`$OAJJoaXi+P&_0%Kb)ahl_ilZPcdoDI)(6q%-PeY7vc_%4CvSo_5W~n> z#J)fp>UeSlEODE#%MWhzRVj)V)(DFurulJqTSydM6-}g8Q&pDNxot$+?v4reKwE#Z zOv{irQriX0*4^!hDk$XQNYEQ^dR?)aeOo8Tl z(3Nu-UN)M-%<>2wIqiVUELv#U`QdbP3p02>>Q1dTSQ-Q;an8o-+E{Vb+jjjeOTvZy zKpV5=4rhK$do7o}nO-N~r&5hB=*IN|VI@Kt1Au38c(aA!RqO+eQ15`)5zzG|LT*~w zW@H}q&~nmf)#y_jiSZQ(^~`WgBMB)L7q@$I>}YJP0pbCTwgODwXc@COrZHg=9*nYQ za!gy+hK+$oEUi*qE~e%EPZhN|7Mdb-?Y@jqwFw{@uS!OEr)3sxwD&u6G%Dpt`kl#o zk;wU!m^hcV@%0D)FLwd!pfU}KD5fIYD|ZcptDbZxS0-e?Ps5z*^ic|!+VHV56n z9eu69qH?K$=V3r1)7WlXeS-_{9t+!y-YbhRPY%(&{RIm2=y1&5@FSI-^3a8Pj-k+= zr2()XXmy6OqHFTh0$vh^#Kzukz;vi$!KpkMgq58J-wMtxp-*I{ca`_;21aTyYRd$5 zWtnbH8-_F-C{qK2bn?bkpe)lEtZPE-?K#$LI8dSb=LaeODne&Q^Te?|t!u}|_LXgC zWk#yk{i?Je0v+ocx>lxqVsTGV6%hamWJzGOUYPkCN17> zXj4J;XnJ$5O556$UJ(1ridRp=7_>Lq9dYnvy6^4Ej^czkRoUHdTP0;)on@MN@#v87 z$k77Sw`2=bMR)ICV7x1;bLaZf35y=G>G1`q6SmT->kYp$#k5x;+jFduZIqv(&G6JR zQgDm)dONDwP~qCJy@$>2re0^T+CCmqpS@NtFCXZ-?$?1W{kc~5rY@Oy$f0ZHSnqh^ zR`h8ZH*?4YjomYOd~P(BsK_HW;fOREa_44DfuYpG19@tt0P20DB+P9O864(m8(6$0 z3G!sSvU^e?L z8M*7>h>hp^OqKxnz+DvyP00&1qRFl`z{b zG1i=JiU7DBGf)1Og&TUbWY5B_piPP(@lNfn!JxFR@>|04ZV}d6zOwAD&fJXc7wGa8 zO$*yM$vYt*Scta!eM9enL@`Dlyd~4YoYrgqK(`w^OuC1NjhTn(h2}aAQ~?IMI3Bot zdjXoQUN5eS0&NIY7<$REF*j+?^+w(M7X?Ht#*;>Ba1}@`m^6WwhF<|BS+rT4$z!)Y z^+|f;D~s^R1~#)_6&iYi=(SQC#+Yg>3v(yg-zYEa(+ z7 z`0ZNe|d~Fx>MDO6Rnmo!WuCB^ib$ z1U$r55mwNtw6r}7GnlBEkThOd1*+D)FmwNjWb143<|7khP(Um5T+c#vdyIVS z2dc#t)8WThu4hr&xQOgGL5WPX!w|ENIt`lYKu_%B!SS>icH^FcCp&DkgiGI-A+77n zs#~fm5$wd&RVk*rBq2h2 zo>m*A*fdf8wA4DN5-Ie$p{u30lWcC^z|^XQ3a%~sEQDD&!6FKm0b7q6Lj3Aw$j=I` zgYpg(BT}tMo8Nt3%B%n%A;u$y^_h*TUBfjS@*(K!7JS5LRv;mImFEX7r@ERPwL|i0 z4Q6EuB(E%OH^!`8cZu_Zu}%h%oq03Hv=Dw1&AWRHv%{(t%f?$mX3DgUiN3zD%Us0M zT*hBnJxA!na*|(JO=Jzcix!W^7ClRqI`3CD(}pSRShDhXbR@=O8>?>wszkw8SLWbl zWT1S{jph++0Vc2^4SB@6%obyl><_fK?wgGW+^jcTtYHq*rK^Iq4ALz$6&GNV%uQcS z?-!U{mmKWfv!~m8TA{)0wV}tO?)b6gyA||sc57F}?-s2|Z_k^ zVJb3C#yK`dIJ#z&b2B#Lj5ZVb#mS$Fw4Ifv;)$E84xl#E9_ZA<70jLNW2&Yx%dI+;Gh^<)++q-M6MO}gEOik4m@d9ob3zr#8 z8MGEy8*`33HT)}DrB)tM#LFnJEGsxA>Tg!c(%oikwdw*iQ~t3M8MQ9Ui_iMZc3ZKh9F`_SiZjS7r+FEYk&);G(wp=zeM&(o~6 zX4wpT9uLH+2r@FRFNsaDPkQ6EGO@d!=|*agY|* zhROs4w-dO>^P8rv?c-hde7Xe#A{{dGIabWb8p|}~^`+SK+?-{_^+j%Yo0rJd9Cet4 zWm$yx69-3k_N28xEpW|Lbjx{xX&ewR&-Bo+wp_0sEF2`-TC*3Bmljb$UG1$E+}_FMwS_1zJZMInw|JNbxh!z^qg z`thKr5o&yk+6|ooV9K#-HCY&RcuO7i>CJ}{E2n%){I4&JwG6Rw)|?h*6=$peR zF@?vv4UQ=po(2P0dt*tan87q0-d_d?+nUIVn-7jN-9zE|0$bMEAqzzKs;n}rP?3oP z?U)dcunF&z-{}i+#G6Ge>CBi-#4_vJN9UHC}H=U?oJ0wtG_2xf&U%%c!0sHjW@F!%CvW zLz>drl_cMcjZ|mRBZv3!t(K=&nfucB{FsXBc9XB@$D=ka2Lfq7vG zqM7H*=+x!FY)sw2%z%rD^s&9p&8$!@8|C+7YzZf;VG$m6JZ=n_7M(fo=v!xQGP#_$ zWTR3A2Ht^Vy0QAcj!o7LodVO5#zf?m-Hh^Dy%f$-7vN;K05juE-dr!0b)Ut{sMOkE ziN}{wS&Obo&w8Mhomn1d+81ENBw=m%1)6Y+>e>%TJ)+}7p*#D<8RHZw4gM{F^vnjysatLnjZ1j z}iYe1Y`@MZ~ZN z>Yl}rw5`cjhC6draN9<|pIcL)wk*@ka=(macVU)uJUpy5#2m=iQ|n2<$6TNIGElmz zoEH6)?_%76mKlyC=Iy<$YR2fdq~TTBBC~xNVF9i-bB_3lN0hCHTl#1Nzd#s6_C)ew zMCI!Bf|>C!U_KD+*bjpXsA5@5^I^0gsy#P4jz@?Txp#P_ZhUJou12j*bnmH+b&rjj z5t%b6cD+Dpi_wg&rMXBOQex^%POV-?xa94%Aw69tJKUiO(h^^BE}I$G%~OFG!iuTB z?OT$|V#H)6&r>yWN7oa%uX71e^kzjnPktgjEYr}?t`w*mW)v&B?+smoZ07U^@v1aR z&00^EW?f6VrDtU1`kp~K!S(5(2~8H}ly_Bz0sSzh3zO;uJ?k5y>D|6bbA+{*NWJAvxME!{oIvk;rgmBk1df1uk;i!ymomq9BeUAKtLC!f~6 zprhD*1}QKJngCEIj$sSqcqiZ9XEa56TatLQ&WyBCS0;kjISMU=;<_j5=X7fX!Z+5# zBi<5pW|!!?J#l1usV$QZ-h5CM9Wh4u7ie3hnD$S;la9S<`Uuhcv`ksrXa=|+)9J+( zhzk95Lp)}ZEGpi0BSmd}*#}G13$)WPk!@CeS~|?ldmW3p`RI@|Z zGr1A0h#hz2ZJ@@gXF^5TW2!)QmpN0b)Tri$b?uIt^FXg|XPIU0?I@*VrmG@GZzI=Q zkzg!J(JMQGYZ(xcDkIQw3#@9#MxB=NuA=2yFt6DYAqvMo^Yvw-xQ6iV%qy!duB9_I zB)D;yf+Ng>uzY2aWK}gI=YgWvLfsB4e1VlJ(VX!|eHbF23DKE{!LrDh4G;a8VNEC2 zCihI1va{BBZ%NRw!3aq z5ds?-B)WqtUs;N)qQFwCVJN0}xVckB+(4Yk3N*$e!a&MXw!K8Bj zRsmg*wr+J_7P`TF*vjzG1H3W_H9@1`lk-5kBV*)s6(!$osx#z)b5E@T?PXSzGEx@0 z+-YmgA}c?p>VR8HvsGz0=TYXGJv|!e4j6AhbI`Yc(IqW$WV1#uMs`8f5M3w}n@8tLB z$=bwa-4X1eJ?+P`bWAi7O-1 zY)*b!W>kV~881)Mh_ksZdFPm??XowQ+7ahzxZwYK&h!#=(w7}h_8O`1=W8_F|?d;nx$p~l2 z9Ts&4dA2^_(PQz>kLe?l{-ECfYt`8E0D5I>sX0O|tUW3-J%2xJPn;Z9eDxDEr zrWYT^j-o0uV1Cozt^6(1*%aurh(9s$Z2V>u#f)G(XUC zqe^=7w?u0a0r#msldGzuCvs5pEoqNpTcGQPP6>3uGBji7dQq*qx{<86gxqki;23Wl zs_B!vV(a}fbiHCqqLHucR_~}zg}$Da6>8IRA$cz_P>!m$za=nnWZkQHXArDxT+F5R zbq=PBUF-;bBMhi|WSg-!&LH?eSs4g>twf|*u{@mlGNQ7gI&1Mp3fUnYh)X^BI0~+9 zXclo=0QW^~fc`ciP+J;QaZ8+q0GZy;_I((bVOv$X=p0j8vykw@hruu#f(F00kq)K? zHe(mxenD58nAJkA97ea+C&Jf0wcT1@n&&9q(8*e?ii+*zBeuiCuqEE{iCvl$uay`I zl*WZchGX(D=%!Gvq4M2c86hFoGnTJWjNFJ(!dTq~xRxcB?srmeym1at@pwB0HdxJ~gU zs6Cu?rKHz&zoWyl4c(2~$Q>JV|yyr*%${#ZshRQq@gP{j<)?A&||Q5`VG)VGAv>Jb*uzhl~l zM5UY!{ZLj{J6jatu2nYh(0Ks=><9e%V?efnn!f!ql*j%mh^uGBBLv$9c+Xrex7znd6RvUHX zC}S30ZeB&TA&lToSdZbF9Y$K)Ml<3bHx!t$m@NdUz9_KW>PldHAN5`{)^#}Z7l^V1 zdewlx4I8U!8mh8op#te?;a*np)UHKs$T812>TX4A1Um4_x=l7zM<7qFy9ZJcbA?pp zR;Ep9j(ty@*TyW^b5t(_J6Sa>u~A>bF_+B;8eM2DzPTJXatk8w&*;6M(pd<-Qrq>|){y+g|sx zDxg+bX6{*-1*!6JX}YZ*SvuD?J66c&X);u=1tbDrASZ*gMV9t$B!{fIW_iAhk);~O z%7}Vpr>5C(ZOpgDa;Q@nuE7Rxzm$o$U^)~#wPmu?cUmcTN=1c7&Q!5yUPhEfTf3X6 zs&f^po66`$U)jo32356)o1n@~l+9Ut&mU2RR@1~%ORw2g1E&xd!adMVN5Mf$oMSc7 z%6G^!et{+@SWE5;>;Z7B9DM;n4fJxlDy|BgL3+{M=d>X8!g3?Fza`l^ky%qwb)KU7 zh(u+{_|k11`p69F6E51B%Ko3b;!gQu2Ja(paWb92O4Rdl9kExtgL ze&gLar42p>ylQzF9c?K*vGBd2 zQvjP2jrF{;ooTbGV;yfJch*4nB(DH(f;z#dDt+}lPdn)rLymLK)6Vvj@7?_`kT3@v zeEYVm%S?q?e7$WL**;i3^}Z_9pC;IK>ILT55I=vwZb3s~?Y<*_xIIj;Cd9 z!Z)*f_hl?tC6czN$8^V%USo*8C1a9;u98U)RC{zc+^yE)91~*G7eG1B(+Qupk>p+6 zz-T(!Y6gbxt1_9qKIwYy3m|MX48ZW6QiBvpR$H@<=@47H49VG(Ki!UsDz^FVgexpV5TxH*4PCIx zu$BPiBR1Ak5^Ah`pcCL)Z<*F;9Ciq5P6dT0e^>K2P+dn$ewv#R<}NZVrfF`g6730% z(BCRBQi@0mgT!56i*jDnQ{C4EA)vxCRr!{*yR5N_%=?8*+C+t#r@EljDnR6J!DW;B zqQDNymW(_<(pHFI1wf-2<7~g|Ytw)omTsj4y+(CSL9N0%B<1*owHj zN4hk2gn$J7s$`q(PL7?spZOlY4qOMWt>a5o=wmysq-|((=@MT1Cmn|B7 zCx2!jr!lqkr#91~a!Um3-gsx`xRWX>HfM6?HVu@?)7PjhSJq~_+lRp>gYNoQ=SQ*! z>*m<)htUh)?5M~)gEFUd5pZkvlRu{+sRJnA_9!i%o+HdWjB;;5EOyj&O<}pDJf#*m zVim#LsoW;dUl8QG&b z3>*)LqFI|)_M;B1Rps$=e?td)T8VhMD5wh9jKmbXdE(HzM8EryuC*Uzx zwjC&}Sw%gj?M!D?AoCubvcsWQ^qG2~9b^ss0HQO838T?0L*^X7D_Ol|3i zna5)wH20D#s8vJJ`>l4eGqrQ&GsWo4Z zGe{SaqU1}j1HFLMt)YkmUDq9H)TvyRf1qngH8;B-u?15EHY+BwhtD9D8<&AP~`?FxFdA)*%+rZTkh> z5Lr5AJjJ67iDLAy^L}bw#u&>mAoSheDo}xu^(5w1A={8m*nGrV1Yri_w5G6ZGAe6! zGw=K;lfP(I`m(O9dzqXeM~O11+^JC3O5DTn@b;a^1n+%Ad5o1ok&X|e+QY9Jjh!mtH`VD+C)^97ilvaykX5(Y}nZnOrF* z`%VWH?T$&)xXfyjD_~ob*(l@}NSh3+?&k3bW@zzNwZ}OY1k>oHe@}i4-29Lt`ozVo zCC$~j!3(UpHyRhb-iExe24;Y`M#V;04J$kQ0_hAdFgQLZF1-_SxvK1erWT~jHe2gs znwhR4FAs@)fm$$`9`1Ocux)de6B)D#igyUiKs2^&Jl2YesWu@6CrImt1>hbZaF3D zc&tIMeQH(d1+M-KWeUy@th9%gS>m2g3p>7%a50YC4Z7CZIq2l8LQ5Hwwz^U`{Pb)I zQ>7%{k_*scM(D>>R^@K*?AX2~!iz>$MDoN@-$|Hh%(m}5Wu+&`jqPV4S?x8Y3&k5; zc5pnxef^%Ki;XBophA?SmLnk~9ldu;Dz2+4XL{MM%1*h3R$AWAVX963j`t+}HL6V+ zu3EfoS}v!`X;TSYYthPox=p+y+Zc-?1?{g%X3y3a(#Z^>+wN^1n}QK2SlloUo^TyG}_Hg+}Ze*RGkba@(Wg{3x3xd{#8 zn@^l-EWK>U5Vy0ZYLh6hDV{-ts79ki^jm_II@PS4x$cjy8K%vm`2_&Wp04pcPY1Ko zUWm4R0SbLum8IZSX-BooQQtZ(YsrR}Z+yhowM4JSgSaXi<_k|RSRM5ZaY*P@#hV~C zIt@t2_`Zxxlj5W^<2t8W?Ohb^;)reaFx$zPeO2I5*vu~DHELNgK@H3H{m{OayXLM} z*`eOTOxLSvIdN5>tG-$R7_Ql{$Yg5Mwmqh>B&%YK?0a;Am6P%;FucP628|Xi&1Ar< zA|3?G!?rbaFk&m#qsv0nVV#4d8&Ky5OkK9wZ8O3BE!?bKfVl{2?<v58{T127?jwl*$On})kdh$ zY4IsAIz&JCG6puRR@E4_5@BAs8zlTr2ZWpJDD??lxU%7_TBx0t_tpy$MmJ+d5eFJt zGie6!u=SRq>g}K#cyei{IV%pvM zRhemYgezlShGbO4W}1hl5c<}c8J^L%)saSHS>#ZSQ0LMX8hmdDV2IA}!q{ca7J(nSx$_P35k-NV=Wezk}k6TUXuvf^c^FJ?ye zc3tOEeGb>L-JSOsh}<%^>oe-hkhQrPkR5kOi;glP(@4Y3M>&vHg=EiZDQ`{NC}pz$ z1>#(D|EQPpWtO0Az9qT3K1+EB?OPQe)z7K0>T6Wh6to~zYp)Fo&}zv?StcuR>rGsL zOCWT0td(=n;os^aD?frW>pcUC`Q2w1P9D2y9i#F{U< zSJ>BEr1E2kguaZ8935&x z?U#;@g=3B0*SXHjYS$-Joa>$4Gb%x=H_2TMHi{JN1Fex|?BXVFDi@+ zxGOC>6%%rZ|_>afNOn)mDSFPTSp4f(FBf|0)C%GtLhMvJ0mgZs)Vwdpo09WMhJ*;88Odur7Z+M=ov@dX%V z=7Z>ZODHf#_jvA|Fx&22${urmf$*7i_F^Bg9ylv7W^o3sc#SZ}Q9KKGPx)FcunJI# z9TRfLtp!T+2<3PTxx!E&qXt|HmHt~=ngJ5KD7=g!GtrfsBP|rX$A)X7=AH~_99pX_ zZZQ%^TS06zGv+!+w>)>)F2QP)0&OlSZ8LGi+><_T8W7154|jHZcm^xwIz6x@=yvzJ zozTdkWz6JYyd+oSKrhS6j3xaXQ$Vj5Gx~Qw5K(|#hdaZS>&i2o zKcs=VkB4%KZ573NTE^UVvj^F_70{>JhlvS%Os6ASRb9vM!&r_!3b4F!U|2?#*(Q@` zVR$4vxhamYukJ9@LsGH@FxMbe6qL)E1yp`suyiRauE-7(;NY~7G4I-*&aS4dS?(U(yA+G zR99tT>4wg#;Qc0%u+BBoimVSqs@H&ZyQd2xti~dq@efq2!!yIEDLc@tPT`EoK7&y1 z0Tv^ok11f470^EJy|DzUXe$nx`N}FnI?ZO^NC8u|ZqXTgLkC7f4d)c`Kp7fXHrpB3 z7ZB-@BR4Y6LItEQU68CVgKE52wAY(LbYUa7(~FxzjI|BA%{gBHk*I1)?<*@b({r$@ zsQ)K_8R_0;Ui+4;98Cuh_5w8L#tgHI$AebIW1byx6GZo&%5X07FeptWdF!6fAVx=L zPYt}!F_!!@CWZbQ#d2qdK(g;m5m}kuyJe00={bo^<8pJIXAr^Jbc`&i6Gv>6gibf= zWn7n9Zi&S^wzw7`Q8bm7d~SGpvLQP10r@7Dl1%T?wz;-gRtmW8TqPcwer=Z8QgqyMU|bN_IVkVk<+tn`39zIHY7j0 zHr^6CSp>>Dt}iVWmb9$o>r3}^4zw=u_DlDo!XSI{-tbZZoxZzP`u1Vy78$iIlT}&< zwFsh89xZUguS+GgsNBHgvBRF2E}y(Mj3LsobzAl3W30QXSVrj<=(vo?tWd_|F=4%C zV-?XiLBfkJ&1Mt#YYsVOW(@bU<;spkW@ZN}_C{*T+&sH`t*BRNYGwAM>xUQ;yA$RGufyKbTQ{qRqLTi{tpws^F8fL5qZ8_igorw7;NTh_zy;;MA3 zU6h4wVWl;kG+QxMfSnm0VL1;YuDj_SQzdb2*~U##uZ6}^0i6boarZneZN-Wru%7iW zs+*QFjWHUBHW-TL&a8So6hN4$hJVCZh1rS9T6L~%N)#CAAfA>TKpz^p;Z<>)S!*O> zA5(WXOLQmlo~2~DhXR=;v4`Ph0duCpbyXZOLK9NP%||r$r_l=Y9ThTiP81GD021+kCDh6kAxC|Rk>>v&_!UEyD zR$tkO?#5V`M_>1&Y?@S0%fV|4XxQw18T0}iZ?dYZ3W#HIm9EIn3;unE7nJe@uP zkr=?^sw7}Yw6dByE;^ZD`$#S7nw=`yi6P|4O;AomZIp{vzp}#)8$;3VK&-L<#5nZr(#3~FH7SurTWh9+d4fQ*ZX;l(c0*LHuL-huW%Z{9*Ug9AF zT@J4=u+SoeZVn%)ti{GQ+#jeCLzkz#?192(&BGF9dpr${5 zNzWqs)I{H$a*^VNq2cjpU&=0{^xT`o?(i6Iy68OD zJLJ}GE-Lq^cc4wLSLz<9M3q*|w&y$PI!o7B*p0ffofrY@HZzg8fjU_h>9*}pZI@*M zu>qTx0gKj-%RuJCK=@7>H-k6H&8-v@z;muq-R8+Gn@-#b(|tO;NTt0co3;=wZ#kaeZSV zR-p@5HY~z=^_n&HH90t&&j|aL@ zA;j9&UFFJdrY0^oEIZzk%ogdq@#qIC3Yp6&&wLp49-3jz-`?N0^)WE5@6A~Yoyso? ziZ>2BRyiYii8@bra+V#iM!dj=x1%l1=L_(}Sq*ALY)nOLp+A|YcFfJCr#nWf|5U@v z6VQ@~+a6;99hV-3=@4}VQKG+Vq+SuGF>+2$3q4Vf@9w2$Jk2sENm_B zKv6(|)K2u=*1b}%QX8mLeY4cc@wBMo8Y)7wK3?L{lhMgJ3l)H){9xu`R5m(bv-5~~ z!9sdW65`7syL!wJ-x5X+^kUif7I2(N0WT^t&O+~6QG_L9&vloHw`r{*CbG~cSTT;+ zz^gKuOM}bUy915SrM8(fQ~O1MdyEQK2=$h%StlrcHczdl-zA>WG0zWyZ&ghS?aAMg zt+7@r{+RAc`s7~DbuO$TtV`Q&pOy&KfFm(`@6|^E2p~<!-m_9AhTVTn0Z0Y>aq)e~D%x(4ythH;rWLaF5 zv>eR?G-K$iB8qLB-oM znO9}Q23=^_+k~~1@@8h-=Mmc~TB{Ex35T(hRS_l#UKQA`JS`5G#}p2yp_Ho9-T&n&9|+Vm>UPMlPr(G;2H&rCcVbn?x}Ck=Bi;VRec%VJ?WjX z5l_oz7Di`;G@i-W>_&!V@gug^(q5RjR2orY}m#=7s7rOP_P zO@sZ8E&9qt*VI`4GE_z*rTiagICHJjqTby@^->U#81UpXrp!<+g>%%I?W|5j+MI=i z1+WdW>McQ9vQC^P>6mK8c)H@7H~iev3+hvQ9%zR!hDrC{bFAf!d4zfOocu18;i?9l zhtXhU-lw*=2^C;g>k0#tQ9gwfbw0k|)=5qE0)RKwr680M@6_3q?>&$$CF(9ME zE98{4j5Q*wy(VzP#;wvRB0GI$rF6$#>0xcDcOA z(OD1mHD|-LNIV2U##85S95y^Ki5S^^N=xV;-pxXRa%50q`7&tZ^yIpIOgpBFN_5OwxLs++^h(DgrZVl0jhv7l z+Tsz}>7(!Z3(z+^MlHt+xP_!~BCUn7<|~6~YEzy3^B6m7_D;6MDc~)WO+_=lKw-R- z!Yxr(2DoU1OUwgJ3XEWo^8#Jw3;nB(x1>7-s1u@bZ+X_nqN`exGau8<>K6;#p|oyM zE5Am)ydT}HJ0^UL#w<MCmH!f9J=LS(*l^|RSEOPrpJWc&2z)VVt7Y}&?GLb zWLTuWL|oahb~J0(`X2H&lrp}{(1~zWLWvx@mKcwE1W|?VP(f<55&@@{Zh!YnH!;Hvid%r3wk&)|C_=%HvmdSK1-x4O*(p@z0s&EgW z*6Dde7vtUP1d2cT!%oH+4R_z)(1OaE0lS|cYuND2p1vPa%T1+1m(3=wZ2C6ECDJFa zY=%?pJ=S(~^lgT|McGF8tCFz=7j-~GBZD$+#4W8O=cX_PuvB_Z-8r@*V6tD)*QtA0xSd(ZlZt01QwH3-ac>1cnwW8Gv^uwL&>5x zlarSL>25kYz&?}VcFZ{<*KbK2g(yq4=$N8B(~VZnFQcM3yXDY4iw9~lyEGCWA1Kzn z`^s=12K6!x5gBjBL_puJP#XC%(=G zZ$1p_xK_kG`&-f$GYdECd+J;E>Q7e125$;E9q#4E_C15BtyK-wX7db^lX~5@&8gGU zs)$ZvGULj&$7BsF!tPgktH64)n6+<5b(S#$vM6~~I#J#eRWsj`vK2%((|N>B+L(uP ztzMPlPL+tE`(bD;W=1gc4p^~PeoSK`k9yMsHijIpw}iB6_8hZogT5yrf82d;&yCU} z0$$rZ*T*$;(&ilBldqjOW96h{kJzMfvK+QMx78;RD-(Ki-~DBz-qGczPbW?RrJ5US zp8Tn3fK?6d5xcrDaXssjb=92NEW^@imJBo7 zXq)p+Twzy7w_3_aeJwN6q9q!~V?7hy!FI2+aGhn5QkL2|n!@#-&WK)GojBF>Xy$PF zEeXQ=ASLoV-9ohi&8d4p+oh+aLL!D&mdR~IF!0)-T1_uwcH!|DR@ekwP$z#?Z*+PT zBJx#P_PPYLXV{;cnQ!ojMFR68p&(sGx9d6Qaw;q)Dy%l+*2&-bYQx*M-EX-E>*<82Tt2H+3B}VYAmov`9Oga|$A`MG-RG=Rpx16}^ z7E4}^853?Y4-hph3kHPok6d(a%r z_4!nUsTNRay`N*@D;v<+E8?dj!XkS6D&cXC@S4%8OvLM8M5I-+yL0xf%0PMLAWBo~ zW|6S%G;bO5;Rthgqvo!?Rjs)&pJsc#E=TXI5f{;&&&^`8+A&G4-fXxjQm)zLR#!iz zu>p4nT?C)=u~MW#*b3HHeUXH7w2OYoyHNko!;I&1T6TErZ0d+t1BXmW;1DXJ?e53;Q_3wi52$ zoOwAA#+Fa57hZSZ0CU!8%~$<;5^$kfG5_35k*(+nN7tJT#CC+O->TOOr02|#(3$gG zMHcn+s9ubmzU}}Psy!N-oR1+b%P=ym_ZKN)S_Omsan?Z2G@_#GpFp#fbbdj^olDGYwXGBMebY|%R z#?8d0Q{sI(^Fxlwp}P-up9*G01)06okF&mwYyuVP#`(jtSZrD%`>9X_E?Jqn^ju|y zFMJub@p0x5v8?f^=OL-XiHy-Ie4N|CMrVuH$EVZEBs13eah_&nTiV!utK^u4dt~F= zOLCtq|(K_2x?dM9+J~B?R;FLEB91 zJ2^kjq9>(Vr&c`Y$81gW;aT0k2x_`v);-S+i8lS=b)z4SBJeUNv%ZN^;c86^$MyF( zkHaSD!0x{sIg}|8WBT=-n<;f&EycFwha3XVuyyAzlAtB5huSX>IY|^6hQXVt$@L8~ zcJmi0A2)`zC_cxgmL5=^+q~{5GBTYO3Vb-2bU2$ecsu11vMLOi`TXfBcFb&ge#jGA zQl*6Y_Rfe`b+K9tKV1u5?*Rkx)!GTD4OyH0CSg5#iH>NC*THoZDr)HaJvD9kIIvq@ zczia>-8#H|_QT0`xLL&L;~d-EZs%ALe7bJEOT2e*AD^xAHLmZFD#>ts)nIWQKl!;ikwyR}I~Znt9PeXL}TI+Ky`h{To!G{ ztn1^`ts24>(bq3`tK8JF2nk|pi+Rfp!+O+>5b zi?q^cYFXLqse4O~CmoghRqrt;t2zbrs!uppzPqVqUnF5`7+8J1@TD;X3fA7tyUUCQ z7+%hs7V*fANT1@qdG_!KrX=VnsJAMdsmco-GW{kYylb~fcYVF;k=vGN&9z4DUxZ$$ zG5d5yS$VOwZsN^GR1{5&CWZZ06@=Lh->zTIxV21?mGk-)D0(^qYyCV7S;MsG9Q}JZ z(}z>&Q2j45NWjZI`?;EeZDxC_DNkuexGc<}N57tCX@O|F{(QBvIy^i#+4&|j(W0MW zDW-3FlZ&m5HktHAT0=nWM)*AEvvro(xcs5s2)lWXl{j{6Mtls%2-6}_#&aWQB9gYU zX+NA9Aks{$_SGtbDmlAo`bC19B%~4QP9WYp7e&Npw4~efDJ|Da&g^jYTf$ovJ`jXC zJD$=KHHaHF^S3IaqBJ@N%wt#?i|nm3)azFz5M3;**{@bz8;zQ;j4SKCSLoaE%L&lXN%5@52ho71Ub}rK64EPxgonRp07s!}OJ6tRt3`xY8y3@#Gun|u zt~Sp;pLIq4#%`p4y^uSrbQMso=MOENaAsA!=LDy*$1DUE`DTMsHNF$fn1@VVscf$u zgg-;a9+mHKpb)NFLc zrYw5Z%hM5rTFp0^y2>h)BY`hM%P}K-E8dyVjoR1{?fUxFJHZ)&*lA&H9%YW4~DxF1Y z#Gi+gTtk|BEZ&Swc|bNgyMH)UP|$O@{rV+U3n{7v>&>e4b;OLfsp3gtwZ8ZT!vw#(Oc^yL_CRg18q#eRImxP2Sx8(;N>IR~QIYVBKv*lHW67hg}8;miUz zl=yNwwk_3Ub@w@TKNYBj4;Xlk?Esa#nfY(kH1++MzI^A#ZgJzfZ1zt6&=-Apsv+B_ zOOXzbaRgI8(R90rUbeM5@$RQ#?tv=tF`e3CsK^ZIL~`R)ghl6+yAhl(BGZQ}K3#Rw z5>~#$%o<4a!x4Ay%q`owJAN1|BGPKS<2o3|b)c#}Do%S?vs})0M!a)Fk)BIm z6Vc0}%rF%@S0hzMioD5w)g!w+DTidj^CwDvP2a||eM$qPURkTS&Epf;Y75Wd{&E;> z8d3y4f1<4=w8BLDc0r`AaJwR+`itnhvXNZIK0X=AmLusl|8fu|Gj>?SYpjBk- z>$|?@$O^`4AD&W0W~w^ehaa;195=JgetS7G*K#>DiTH9D%@`(``6087#0uT|xsh!f z+J02xe0+L~HcZ!uJb%i1y(4QA`&LzyaNRp6ze%V-RIws^=T)zuN7s02-G>v)<@x3O z+^Fh>Y2-#sU%v`v8GW$*s|9ZOWE%RLdC}|aFhu?1!;r#Wr{?#o)pjDo#&lerhb0KK z(=vl^qH3Uyw~uK9J%3=4?Gh2_c)J@`=DO*&0{i??1RLER$$YyB6|q;CTJ-!u^`zVE zxX-Hvg(A!t>HVe!3}3Gl%;cBDv{?33=X<{+7VeUe^3D1~Zq_i?G>o4=&}w4Lx%T5T zsM;&I`R;ll!rBH~9!PvD7Kj#3NAX2y4Iy;tLOh0adQF?=q47mR)X=L5^Zr(eW9)#% zsOK2d*Q9^CCSFgOlNm7SYJNCX5bUM&{vxE6Riy4vZ+?i#-PB(fiR&PdBaRMKekV4W zt{5QHk6iWh|aIpB$36o?)@09?RxRl?em$t;%~@BeP>IXFbcEj z!MCd2Y!s!?_Gxc#&Qf6+_V~0<#YB3i=NAdjZKk;_e6>1q+^67W`?NP)l1g-1d8b`? z))oXZ-aGMVjH=U6TKnd()xusWFOT^cQZWQ4yXWnTu|{SH75?E&Y$ghxW1okU3>P@H zJKk?tgr-g)5S1~n?*q+Bb;+l~t2GQmL-x4WS4(v#Xf6_8zlO5`InvSfdZAt+-9i+! zSx)J6RFu%<&pcgPlUdpr)`k~ZkAZR^?%zbM=MuiPTlGBDsj`!LEnC07FHj-%Ir`=? zT&8)nCT_;h!;8#fJlxPX^EyVtGCO<0 z{g8uQ(Q5i4&!4muyKLH0xpF?OM6XZ@*TNTpzPH|pC2zvhnAX+XNBgVQN$5{7d_LrE z@9ycu%vW6tS}(X-`l*=GxREiK{E!zFIWYa5^Du3LMPyB5d9de3?JMJR_{Hm<*S zk*VT=plwnnyquN+x@YNdc((5+hQ|c4Gt1O50w`v4jR!9b)_OOlw zD2MXRPlnUk(jd6^ERhkpiY#{Qb1b4`+Dmfn?d6O#pD~hA@9vPQv^J_AzI@IHDr6cQ zTKKvX*zRQqcivCKG8piv6R#0H?a`FtJTNK&y=rk6|V=%-GQ14<}jMsE*-#Pn4Ov&B&MqKAiH3 z-o8qF+Ou%&i1M!ZBJhlsryUjFDvs8%`)a;@nw?!8W>cuwublKiR1eXw@40a2y0_P_ zmQ2U2q)*J-O=a0^bF4@FB0JSK=g6nMoSv%hyUtg=yq61(rsfw30gij;+P?_G+bWXF z$EPx)D{HNE1YHO9Lf=aZ#_{$}NsfmmH@N$>7m~GA18tP&k5bg-oCOviXLN73Soh*% zh*`0VLC<&o6s=~oaE9+4Sr#j+D^p+ULnh0$Y@-Js&bhj?X^n4R)G*;2A!2w8VN|g| zll7jBbsdiNoNm;Yqx>>obWJ>DgfO~tJ$jxBT>exGeDlqrwgUzTm(Y3sfC8+V^;8?r zLyT#hVrj6igBa@1TBJ>Wt7cklsSL4t$aJj$E1|Z(d1kmo(jgW7`o$mw(M8U8cVPOu zsi_8^r;DOHwACMe`;_q1x@E2JmxC2Vj&I12<4h%)>1A%^m&2}Q_Ygl_^0aylg0uSg zY;b}d;#1GDHfwJ#TciGzwl$-D#yh{hU!=>cB4eKOZSvGp*w*vmI8%HP`ub__*cq{0 zviTvW*G7jZTRqO5aw4j?y5h?LdbiAyU2meAHEM8b756#cL|C)Lhp1EG@n;$3%p+?AWJb zy_we`%bMrUhPj@Xib(7`!!?trW|UU(izH@CwG;iF>hi*xHvZIJcMiiU#k_OgY%G%L znIwEZ&f<%6NK4~&c_~6nqvU+|%4M_NQ>pcJaM!YP92t1J%Di==`OHT2)lz22QYkUk zJAcZmBn|XgaTLQcTDxATCH;P8ReIgtF%uSb-BILfD_Bt4TQ#Qct+$uG`)S!UM7KNA z{97d%v(@2?eG&JtT55vU@h=kPj7D0YtEC)PPH__-vb%;*Q<&rNo)gM*tvB2pG2bfX z1DV}6xM?Y`&1&my{rMt@MpTf+IiJe`Gf2d8UQdroU|C&`z1b*l76K@G&xbSCDxF-l z;AX6Rpt@l;;h%~y&yF^$l8@(DSZ_p}lJ>C<^TuF}|PCRvjE zx|8nOxH@ga_x;YL6p`mEENG(7vGkgZ=tk<#7g+_OC}r~)W{&qE8`+Ox!aN2Yi;U++ z0$_~ANZ+>#jZuRc&UpPw9UB^rbg0x9QOY=VN)GqqJf|C}k;!j*b7`D35Pi6loR8M0$NHG_}g#N#A;W%51v3R!sSesI@QMeu%=7ZUM-@` zlAV=~$B=A|m*-{>Z!*cnnxvXx-W;++sAKeser~XJ_inJd$&b(QEbHi~e7)e>xb?<( z;%Vo4DY%|B`}nkRCOFx_cscF8AfgQWosbTqoC;LmIJxY3%c-*`lPQEJ{E(3EkG} z*i_W)bF6z=<>{9E_KrqwLoe8t-%dFTO~pGq>r-(XrE`3v;^VyB=~Shf_kVKqg?p5A z1FiS;rHB@^j@4W(Jw6ld6UHd|cfXLqY>Jia|MtaD*H3+J_v^)w^zhvc;8mX{$GgPP z^2?dZHtX@Ud7NjXhrtGWU*BcHt|%4jA44$)(B`Q4aJIdYWm-93EtREU1y=p0SLd90 zLKU~a858*}sVt9t&%L#duq~)&=Iht`ax?`r=cj#ZraQ;l_B)>!u4OS1a^X#s)`YYc za&y1x?KZ3s=ZG(7Hlt(-<&y&h*+E{cm;Q{G!u zMe$t^RX;aig+zxBy7OFBq*qGJAoQC<7>%A8Ci4A@v}cT^zP!By>s_1i(GwqzGi)4H zYu2!Lw!rl@ydr1z-BaMfoQjC-*vH4ys(P(_{N2srDpC!Hpm5IP^m&*zj*0u}@``FJ zBZYJOLOIbe+sGE)%js};uB4*AT1|$z0mye3hIbeHFgp9g8G2;0Oes%S7<+QjS;?DB zL_l7&_*C#AN9-V~g+1>%9Kt9=wpGVG49D^ z<56K%`u2-}5oDX!eteeImC12YxSX_LV%#~CPgfd4mkTEHzesz4^vrrE8`4b@B_-19 zX-{9Gty6c{e6xdl|wTcY~}je6?x-SkeOZ<$!6qX|k?9UEoeMVIJ>!1IbKx5~|tXDx$C**5O|V zv(qV)dMx&)&+>?SRu)-^<5QstLThyRL1P%T%@$aS|L7v zswbn+JELoFRnP7Q=*Z928WEhZ$=vte3W`7rVg>*0om#L$nuMIs)!Mf4!X@UXeRV)C zlCbT!m(@J?j`8g1w+e!AubMH{KRyVLPM;1i-?Sj*%)n!(_U$-SrLNkBO?^4FV-^S@ z@hJs%fxvojpBq|1n`{vCo(};sDwYw`@2&@oZ>T}Ga6T0ns8eq0nPI-1 zR07DNMgJmAsOv79f7J_1tghF_SF1){Or^kn5eCQ8VwgWZ1lbvuR`Gl$C&M!&!}854 z8*u6LYW8!Uy~!A1l*;*1DzdP=B`S8#cY2y?~C!VfOsqobhT{j+b z&5nAPHZgCciQZGL#sQuY=>^DT3|M^K?znHW=NF@18p`;Ivwu@qPz{DQPtKEb!a8gJbR8 zQTG17C#|PJZ{4*%HuH zR#`ruH)7~LorwNLid$hQ&v>=AhP|E%F?h8WPK~r`k@1U!aeyGFUUybkQaII~zZ~Lb z8*;ba?uIU}=ks=zi&Tfl=izF4qa(en;>#J;%F-i`?0s{%T1IzMrNnWjSy>gV zJta-GXhye59j$5a35`nkRrzLe&S#B5A>_U1dY%fJ8n@6Q!0P%=%gP9?kYDkw%FRea zO%{(Kt%_9<%|xC*H0V!zw6Wg1KT7nP3%1whoTo9X8TvBuriG@LW96`nxSrCccbQGw z-dEktx7nb)&R;|(Snh6ry`TqFD|R#c^+J)(A$wfKUv)2S^bAY`bteG5HhhC*_~)3z z*UXX=^X7*R7OAA6)Sl1It`UYi@t&jTI+zEsZQQ+nDMBo*-4O5YK$i(wz)0V3)p{B% zjhXYD_w{CuV{6_#YnAA3ZyESb07WFwrz>dndf_`DvQo?VaKacll2DWJMcg7Sbr-6L zr#)O3Gr(bfj)jlPE^?FckR#fYZDy+QbVcZPQkKHX`Et@cwbG+!-$aEXAZOgk=X_*j z72!+CI1fWKwmYX-^C2rC#@k|T-$X@8g3;LC_#(`q1y?EYt>XH)rl}kFba4x++hvnq zPTz@Sj%a&76J{D9Gg2uke|$1Fi^#e!Z+~T0lvrlAX7=UOv>~?&IvQU@zL$z`qQB`) zhA<+{oS*i*YJ;6g)a!*JUSnh;^663}%4SgTe>q&GETi&0128$Qj1-XJ!|71%u4T!k z<5OM+mx&RXZ#R|0O8n&*=J``<{JO^7fO-B@kRk1qk)LCg-mSXbp(_tL5m2Qi6nc^B z-s*5O@28?*Ep|DIzmtuHOwuaMt-tCh&9W6STKsUp<)rvZ@0*_zFPRZ~?fFHR*ci`* z^Q+a3n#r=AZ^HFTZf*E%&+B0A_k?_NoyHIQg*a!|ML!w5ygyxPQ9XU7EK_jWAz#*ga?~ z<63;RdQnww8=D`_crcc|-u)@n`Ve0q>;9DLA;3F|vim#7+B{?EUM3mW3q>}}4mUsK zwyL|yJ<*d=pNq(sDH*wrl) z9kt6Zg65cXcg^Qv_ikpzOcg&I)ev&!LT!Bv2W-v4HR*>uOzAF|7<~-&O|QW%te&f5 z-YB)am;WNVX>JFx;JcqrMWNd^%lWOMbr%`t_Awlmo4Je)*6X1B6TulS`rBVKj?lEA z%f9=Uu15Gwwyb>GXDgd&+gkQGuSHbOMhWq0R|Mtj>EZntN|I(<_gHg_U(U>g456HR zoYz&mY@>9byjtsQfo!fDzFOY1QxRA0?dA2g+{I25pDsmI>yV}5Lk>&}iwV5et(+il7^2)zN#p z+N@iP6!h)$r_H(BkhyC-pB3rkCf3?{{ZeEpb4>GWzepylEZev0TZM9ow$P_OpWD_m z(J}gXD%y25aRo;%X&1DIwT=Fzvfe6BwU6$my_0uBwpSvcLbkPE1ntmX%do^RGJ_uT zLf3OcRXSXWGoDX{w+OiC+RC$6eToP&Dun+&i})cgB!VN~=Zl0Hl|-t<=X@B< zz>rIcS3TUe($l(B|B%DA23=Xfew-ts1R13yeybw5RiUJe=Y~>DhAtcRe!|%i9o1@a z_tuw_B_P*J2VPGPpkbDbiC+X&+@N0bt6m(h3J=dW;T@?{m(ykGXm8uTUC_~tjq)+(d<=WEzSh0@e%9SF4KxLhey3k+iF1V$Lc9H?$TndZ zqVnOS?bOb_6vuNlJ=!{FlX&;{PK}G}Um5)UAK;5H&=ySmaPzJiB(_NKSOc1?*k%g3-J3c<0EtIzogW{)f~G5T`qnv>CGRnJ3xF>?m0 ztG*n_Q<_;D=c|q#u5CNDF@(se5z%me=d-@q1TE9X@a2RQZAKxwp9<8tENtub ze)|j4h%_IYnx_JrZr;?F{7xH1GOQ=)_U?L(1zm2ySl>>eIWm#M7SB_m2wi@1r~A1< ztEqO3jDJrcP21{rva0(jrF*f<3sLiS6I}$`S}*KOQs1-MIR2TGc$H3^XXET zENjqp=r3oEFkv!botQzEl#UlTJMC+qH@ACOw{G zI|xAY)0_QtiJ4?HqdebFLC>u)8z$uIw@T2RRI7JhPsdz;Gq+&z7>xf zrs&zjILAgt=@#Ae$b6i2p2QZyiyFS;JT^IL^z5~_D-{_T(Q>uo-DSqsa%zy4`A&XC zI;C7Hr+9a?7fIWwqP-nAZq|@Wn$_OEP$YYjDSq*u+0M$Y8p|?|$46gwC!OBlFLI+w zR9U{~vGJ_jGrv6FJ61(F&Ipjf>$}F#)lhK&(a#M>VNw|r{&9AiL>(>Kd(J$JiKblR z{up*JWRT2^caDvBLsg(bRZ&gUMY>|bhB?>4@$qsbYOUTmrU-n+vje*~KjZ5WbQxLo zP9#OHpE?fEv!9C1sW6vAGoOdMOf*BE`6A&_n zFvXs(Xcv>*qTAjcoY+GteNBGT8#@u<3>SrmlXf~1tq7mbX=*8BrakLTOIl;*5-aEV zlWyLtwOag5OGYo+yIRBlRHT+o!PPIsFOriL8ScK%vCOg>1+D6v%*h#1EhLB~&R) zR?b&_JJxgxmDT=o#`G6n?D=Z#W~MPWC*G=3MiQf!*-vSipv~3W&3Yb|+I0Jf&5kce zUIoh0TltF+qXCLAymNjk2IkC|^nH9PJ!2jB(O-3i1ang@FK@==E-aHi>wMEv$fhql zGv>`|jWBb(I{M=bv#Mw?ob^@-#5{Ys>z@jE`htDoK|?=QG1ir?J8*%RM~)!bGOfW#f&U^9c;~iRhYYCU(TkDuLlNr495%?v1xv1i;kW#r2LA^S4%G^ zRv$F`&ed_J3n`2J&5v#jgssIo=0nzC!mF(*pi??&Va4S@q`yd+ce+6Z-(*g1k0y~+ z@vl0&;K{0pZw^PZJR4nBw$HH<`{}JViT!X!8S1z`h9Ay)MNhl2KM%zg(*>6EyL+ys zWdIc!{mzZ`og6ox%h{`L8*>+L5_T(mNw4f* zt*u&YL#JrpY^+(q02fxyab9zq1ezWeS6z`XhO}g24_T4&w%*NRpRS9n4nynoc{9Hj z0!WNaFg|3lsTeP9f<6^%8C{{dh$wtH*^H8ogxBo?<-9&exn9>+}ZxL_hxd(qkTVy zBM;f$XsfT5PLb%)vJ8Gct39gb>!xC-!p(ND?j7~+uHro)_QyM;QRI?%r4>`h97cZ&ubujej*5%fIwIbbOqlU_St|~$R^rFq1@JRS} zs~xfZ`V|$~fOcKZd<+Z6O#|N6ugg)*QWPAI4;jj7m2>(J8B9-bQT5AFQJU~)D?ZK) z5dcf=>DRAd7dOL&ykAZ`qMccu`)SuJ#0Q&El$vpV=c-2#(tSp5wA5LQ3-OP*g%V}en zJG1JGlyNdD=!(BuHE{w4oO*6#&8*XAC`vDfdL^i|@pv6fT^tb%jL%bAX4z#*V846Z zmUUQH^g^T$ry^p(ad z4EyG}2IwKI>3F-TrYqHD!tLAdwfeSD-tGOSPU)uVJ0Z_rEoe2h%+7*W3%-`zL}I>) zk{Eqt^djT+3(;m(8aWgEX-AHm1v8_*{f^2k+bSE@a}{tmfZN0O)U?2YlFp^=hul`F zn9K0~MFIvRD&n`Q^Zr%_`OOaoPE{Vucu#|?NYX0@)A5|gFaj7e@;!klXO`a4wG#YP zEQ(m6ZT@hUR^G)+yW9({`j)>L0;ZT@h|*i3L9G9VT6r zJ;c18w%o{@Ld$+nP1{uy!gO!lDPAqht5QwpC7`JuM%f^)W|fZVCP&hgIjAY1`-P*M^EPLl$H`&Rfw< z9heiAPw5JxY^^-4-)>sj%x(}m-9J8vBzD#}^IOH#1Zk;z_49d^;8t=~)_x4fLTMuG z=&$-v+G7nf-wCj5^4G&F{d*eR-JG6Yvq`OTGfSNaEM#`5mS1GdkQ-8_*|><1y-J_! zlqyo`7z@_u^PgWtR4b(myHa|Qrgy@YMk#fH)=rgT>aIMz$jr!5n0tQJJ7pTnnxwj{ zoMz4@2mf;1I*RFa9ORgr2h5V4$?Avfsb)~Y!ruQ&aZ@_knnQtoN?ml$q6*uaOyxk& z#smtYBcBzas#(RxV!m2k8`d`4YS?M_25pN8R(;jSveK<7=%?KWOlNy!?3c4KooSJg z*Bv)sW`=JH^ zR48R)Fcxk2a!T4o@#^7m4(d|xRvGv8G$@LiA!Fo^&!m;F4y4KWa>UVjQnKnVqU0+YsEBGboFM zIr#j^T&@F3(%iosakKG-IK6n_jEp+FQe`b}msSy-iLXM7A5kvnjtvn7g=d2Z%f!0DGLkg#X!6BIF}V_tt=CFuDZU(ZIcQS z|3yx6O~rLg%w; zt@&~W-O5D(wom?>!Z` zp`u})I$-jrqOy~g3u8WiP;zKG9fo}c^53&i>e`iAb+IqyQ*dB`xi*@%7jrpeB0XNNN zLPNUB9hzm;cxvhC+}TQJ)=B%}>0G9*g>?R&mfae@0-J&a9E%>HtF&y9uh;eh;_1`z za+Zcbq*c|aO4a<1%r$xKcCIp9xGQt&``*fpj@(XK(RtkI&DwC5<-Ao93gU@eOVsiW555y}SV?YMPsiz_2sqfP zPCkTFQ2^mHdmfu94(VCJJ~d|8Bo!qKNdB5&o8LV>kdTcY%($)ul6Z)nrH3nMO4$u z+oE3`4yBkyuGL>;C=xXr{V;TIPoKe>hn0pOFGt?#cJ{`6-$lBcwWvq-cI;PK zkyU@UNY@o%c5_t>w?+H+)U8!vwV4`?)ctn1TOd`qQWL>1(#6@@^*B|PGdA@hjNZ>t zZl8jB6KmYJsywu0Hp1g$;a25(3rt)8B2!-7$tFJK-N4GU%#vi^Ox;H7HLpMsua`6j z!%ctgslaV#7K2VCU*%mhPj!s0Tjka?dUhe=5W1&Wm|MV}8ZO~$BG57C4R@ccvGGLp z;c-`|8tCpg{T@3s1r; zR=b1u)a?S;tVCE?-juzRgRB(RyIZ*z39}RmpU;QxZ8dUAj^YpVr1rTZ;p+K$!}UJh zfiC>inC-TXHt+Ah4O6ClZ9_*?O@E&EFiTY~vp?Z55T(y zm^r2q(bMIuaGcIxz?5VgIWLm4!Z$jYx{iB5R13Ck&KIG{2@0p7e-V!<1k38VE~vnA zy_5ASvnUHiT3bFmWTexq(YNC~_*H4|0psP21#^Ta=cmTxnoamv-Fc|ixn4%5gXhB- zE#GkKY&?XjU{lsP{^Pak4&^9%PkI`qdaWCyJa1Kcdqj=JCcZPlQ}8{!0>j5E3(k(v z-sNMFNY#qo+3drke`xyBS!(||A)5(PznYDkR}ylL4<@}|uR#>6%7;7+%V@|%WO1%? zDc5H@T`z7`eQ2stDM)Wsc!y`yxAq)Wu>$SsW0P-H`C7;*)DR9&6^d(cg!Rp$VChoY zb2o2ym&UY~<7@q^Ln}>_-!ay&7mXdvX)QXh7C{^Na--|9V0#B9$(p|ixXDFNKNb^} z`IXP*!#ry>0odmEb0YVWFWXUGn0URmysc8ql=LZIE7EKM@) z5sgXPV~X)!PEJM7DUS(8qQ=$!^ueGrb7uS75g%Gjl?a?$^rBj9-PG~CK@>_plW4v-9d>TCZaf(_Z&iyGy=`;r ztr7`_4z{k?m&1(OZX?(a^E5qMqN4ejYIUWfgSmJ9jM);&k}Um;MClNKOUXVwV^z*{ z$>DQ4kI~J!)2%-r)A7_WsQz8Q%FY6?6%%}wGcnPTD_*DJd|hWs))jQPBr zh9Jjw)xLY&C_BPK`_$hvN|1;li%NC zF(`>FH?@#nWUb12=;eFL&vs~;+33O{R0$*O>s2`A*EgzY!1~;DHayLnmg%@UTi@$k zDHnUw*>X%*&t|<-OX77}#(Hl3R>d?jknp_yzJLNI5K{UVneb(N-RqQJY-CPL0_^F$ zol_f}a?ZJT8&>?PTD`ra61qG);g)aJSTMtrs5mF=V3$mv6p>FcnS$FAQd#e8*;%%J z4Yd5RSg*B(`|v#{>?Wi|j6>K}C(O2EGJ2@(bdiXv6dIO1@gkLLod_K=AD*x*Yki@2 z#W#x=nTdfRJ{F41R8+Ke^@|k55NuuBSEsoZH8R!AH^HzEa9gxl@|#zP03*RNG~cQn zr}9?&F z$(;Or7*2O4L zUg1;~R{*SI5k9?+vMJAR$`LUi90Ho*%SkQp;YNt>RnBO2Z=2Y8mCMVzj0W&92cjnB zG)M8(p;<+y)iiHa+9p-VqS2>MhIvfQ8naKsOto#-#UD`6*bYAB*g5o11e2+IwT+po8Rt@;fCINzd^%3)^#D z`FBoKO|77R)2Y~WD=;kMtx7YxtAW=X_e%X%1>frLC#oV-m&4A&yj2wd2Z@^J`Kn|n zFEX6p85ITV#H{5a-zvaoYn399hlkau%u(p+TxFgOcg@t|MdDk5wQlasLa96M z5k=g27|=`4k;l;Y-IgNAk;Qv}hZ)7(gsz11bXIPrA=v20UH=YN5SHLg5Tol=9iHUv zg0{|Jc~4uOf7-1KWl2>&H5BQz`p(44tJ5A`8Pl5D{&LioW27#f>$+Aoca5=iI=AFt zNwu81XSQf$EPC84_Lox=J?3UHr+oM4Lue3QKgC)pRc%?QQm^TYrSh-D-)2A3UOydj->iOYO za|^b9tp;}yw@_rP*5{O$P=rdDZo0on6Y>2-USw)B zZ7e(bo?C)Qc`)@hgU6jT$85x~=O##|5UDB<@ry9BVY>*tRa5QVgqh`Egp+WGbv-=8 z)cA5zgM4+C(PfB=eXGV$S%BnH-p6Yk5tR}(_wAi8GTmqkCH``_<(*xNbHX@Ht?9M< zPQMB5%H6gJya`UWyPEBU@$gJiy+c_mU9NI&EtTbKb90{xPqX*0%B7yWS?^DH52gBT;HCdSS@(m;^SKIURpFp`mQYj>XewW9gG^3kmfx-Gn7V zNr65V+pcW1kNLY_Y!^-A%69N}?luD{P11SK*rCWLUWK9hVdkp+Ocm^xBUW_p7NYxf zE;OjvTvrESKRg0kEKD@+4w7amS9-bG+`T}NURI63B)(p0t|_E9+had{(gJ}Zrk(TY zqeyRWS~h&XnWlyGDA~zv&rxZm{ncF!1YZucyc21d{^s?)uqh`>Q+eInvZRO>+U?V{ z#;hBywY@)871 zbRW*-t#YfRb#p!Vc|Jw3+Potw@HsQxwT6s!=Bwi#*&dzDyw4nz15#JR;dQ;-*`R^7 zIj6JwPE&xnRi}nWSeO0)coX#W8ZlvLtgm}zyRZdv`gnP@7m@LGIOV;$QP>LKc`WE& zRaVi1$8_u?9YPcP5YEET4PT!_7-l0O!Z^rpf2l`es9%jbuPOqoLT6>}b&s&7b$S%% zx<}PiCTkjRUQv(-bXmFQ=ZxxJl$D9D3$51>zzJy<7~ze03^GNi&(sx*XI5Vsq2( zj-Lq~TO+?hPP&=q1lO!4h2!d!d2gFZ?vB%^Jjjn+H=nBI716~u!Fa1e6g3Uz?3;U~ z(_{h(W_$Wn4#%f$6Ln0h96*K7RJ}SCsq~ek6^F1|$<=Ef);DFnSwas|iSC<4(R_=6 zkd6=Yq$blj<#^sGHTKA;Fx(Sbmdul$RjS)>mGsuFEWE&bPEZbgGi=oAZxyxGVz(#u z@W4ZIes;C0n>)NLZ7D(OPTE9NRRh79J@+EbH+I~G`K?Nm!YnQ}j=P{kyRVGkeZG-M zPDkrtFn^~F3a&AemRY9;D8RKb3h@`|%AE{u&8xg7922fl+|OmQ17I|Jy5_vv3Cn2I zvhEX@R3x%02`+D5of=H~6wT&(byY;vbd1;aYODt=a>jm<_O&c)@A!4^hOcT>CSDyP zw2{(j%KH2)Y`~(WWyZ~`No@89c=+(B1=o;On43;(bmLY!jtmdaI;$x$EPgrCGdFTk zsG9}NP|-HJGQWs8mYI$_d#h+;zF%Ffy_wQ|0y7nZ`#vQZww7M%#5~N*5JwjlY`j(F z4kxqheb1Pz>@3D^XPg>jb*(Lze0L&6m=lhU#_cb%O<9vf%uSF=)`GHD%IQN+p=dPI zvQJfxBhi-3j;k{+19nBgqE5q!u*fcFcizsO5GBuUZTCE06WVL+5E-fPRi3QoXy~g~ zuQKf8F=ZO!sXEv!&L$@NFVe=ZwbXyTgs>Yq`klvXW`W3B-y67Rx0d#t7zk{6CjND^qzX{ZeclI@3dJFOzbXg_$n{Brb=qK56@~> zTbYrfA?5YbQBk=QU7v=Eq#%il8r}rU+}dNTD*g7LBK3)8(suDy`BZdzi~s$Mwe%te zScXk~%9mwxvqp9L5SE}URvcUnV~^yi-dNfrGQk0-y3FN;Pm_1?rn%+4l^f zU4b1t<;&J8*ggsLL#POtZDtc!$1TR&YbjAb#meK`E92bYem+!WXdJ^@zRDgetcHk{ z6F&_-O+;YGto`Oyp0=8ES>mUvrxQ@C75dLD%86A~%aS!;uhg<;S(o7ybJ(<#K0@(% zzPthJ$km53{V;QS%)yejZ`Iq zcMJlF!>jbjV;n|F}sj%vO%kLXf3aMc`&`Z zvIXp`Q;sm}5QV`nr`KpX!+cXN*QN4?+tl%@5Hxh5d+)ioDo~L4s+D)nSHU#(i9t4Q zI)&J6npIbxGYeI6FKO^Q$ErHKwv%f4!%PcXs&?C(X>ryqO1(VK^EEBn-YcqeEMV;u zzJv02k|2Wgo-M6CRS~LK72vQ=F@)T^Tn*QQ61dHt~VfJ@Mff#OX+pteDAuHP)BK8QTv z)oO&g;M;FP^>uF~zri~s+xfY>+AOo7A->2M&0Brk?vsJi%gPYKG{j9%30s^(IdPb2 zWo=&c3>&vs*@cy|Ucb2D=`| zohjy$#tW>QI}2UY4a2^ZjioWjz!F!PpBhBKzw2C8dl9CHr1bIUAGR;3UP=E|?zHrD zSLvrSyHm3WdPJUvY_6_vcL#1>>}{mi=5D6L`E>R<2zcCSZqW)it@HUip|x zr#2IV+D(7D$1MAxOYviAS(RT84=3zokG4k+JEL~IR-nY*hGL>xz2NL=T2mg zXS>n%7m>NTEPK6<>11WjiVLz|q~!Ptns>i5LGL#?U0Hpfiz*|PA)`rJyzX6LqoM=H zF&%DCO%=NLPJmf!PQbZYkLgA@a~E1`|GCz0!85t!KKIU!Sudck?;KMZz19xs^*yhy z_<2FYF?$-Whb+}Sy%{&1O~-g7L%7bXip-X(P3Kc}%hICKtSS!kRtfe5(X7|2w)M-y zJ~rQU7VU1)3tGP%^mNyj`||YyQRZa&JdZ8bmDIWDc&pkz2EydVUu1>_QHg#}aVw44 z5KPN>l_#gb_|ocA6=vq4;n+IyBF-E_fz(Q2hQ$i8&$^1eoNQ#O&NGhsAr#MTp;VpY4z~_g8<;BfA@m5C z?2=~1&zbNthkZ4Sd6-?Z*eUhyK0m_|?hZw2^V3HWW=HGa*nM?6a-+I2xX;Yt9VL;g za{JB%MaoOIOjE66>J4P*mpN~O@Rsj3*3=p_)Y8I>%#>-3e2pK% z(e^?J0C{sqn9Xc-XD>hZB3uJid!+q(MX-&g-o^76BCV4|eIxnypdv0DGp1ktiwtXZ zG6c2k(>WR$NF|Q-F^z7|jOq=4yh2Q^>C@$ScxdjjN@rWX%B;%mu43-_CkPtKINS4` z5{NDR1*_4wzw}O*TBR!*zZ{Lp7?fl8dWrIes@PZNMdDjXVGiuAN+lJ>;31oRyfU*r zEEgGlb5~%6w-~;+n~-JQuF?+Xx8oE6I-wlR_B@}kL1vY%@znubfGicc&vKCf13jqn zyI&y3KB3i|ymMZW0-KdRad$oBW(<4Uvi4QpszGE{R9^Qos{}fhbN4~%DOTQ+L zym+otlMin$yPm3FgsD-C+Min#>D3o)sl0muVA7dDSy!E6Fy@K~7R1d0j`oZYsNQ3W z$kcX6(&Ozogi=&R!W&K>MJVk>V)yM7dB-}YKLPGjBWY7f@g7s4!M**j@*XPruGQdOzL<+lnQ*0UzZKMjG64rKKhANLOT8TxMh znD+E`QZvgro$+0g(v==OecFmPtabIfI&Jg}73XXp=C;X+G^?rm1V)n9mV0r_>So%$ z1~a+4YK~WDLU5Q;kmn6SQI*m!i@aI1fMkZZIiGu*A&}!rs=r8?3I%%mDb_6QcbTAK z_w`!mcF?KGU3+WvNW$(8M!fFXz}wiKllTz=*Fo^M#DT2h5kiQ)8-PDznodgN6SXtGaER| zShH%cc-`0Kjq(kze03J+hCxoePn$88(V^Dk#+%pJObXui29LWg^@l%(;`5!omY3_c3!VF(_63a*WS)mgxwz9T{wN#*iBYz7WHzxwhEr|YQKo` z!z}Zwe>0VN$n_Cji<{0?XBvG}eU6t{R$?+@yM7VHWP692orXGlqSIo_75`Xh-bFL> z@|c%HhR*P2dhpemXtZNJVjiAR2^7~R;*{U1u-%?)uRB{-dRI3(qx12S?5ac8mwGH# z8@`eCiG8zB32VXJvFLBgZDt;!zg{-K$YfR(#P;yCW!R+WbFp|Sf=)8n7<|1HSuj9) zvp$3^lVrn!Tj;NQTMu$Racbt9*B9x+dLywP_crFBtETko<*BS?ghQ4kHbbnkMH_4*KAjcOoy%I#Mfd6q%k&@t>*ZdI%6!<>ZTKIOv_lOu3h)8#<~i(u3dzd?$;R1NBll>@VN^9m_}ZtV$Iv+K11Bdn^( z$4gJ8oIuis*FDYLRYV7!*DnGYaaN>e&SU9V^mN*0o$~2D5$+={^Hz!bsHAkypyDJ&AH_q0lS%|?hHr((T?j?<`cB89gowwEEH)@VdHw0RVr&Z&Hd$Us78-3 z_n4NNdUrD_=k%!vfk7GE@42okGJX34+Wjg=ZMQrRGrmZ|+OjvT`Y@O9MkCoB{hgv+ z3GJmWv(bf5`6{=nj4Vu^5388Wv9__e2^I=Lv>ep=dO>wu94c^k{I2fQMRwBf8L5kH zokf~0U*%~>b41Gd@XQ#sB&mYO9Tu=f1c^MI6&ZC;>H=;Ryh3lt_IU{5s2qvRus!Zy z&tr%SAaZBiYsy9ip$Cv{B!axmi9AwS)BTipUz zDU2=@$D&nw(ncph@)tqE3I;S^ofbI4xk7OIbg%bTw2$-gq6Slx`Z0K`KF-)Jc-;5G z-5axp4Gj3W?|55G#hKP=5l`#3Q8fPG3RHhXEiB&oWsnt2S`0YhTuPO3W9ZTQomRyVLJ~n7;?Wq>kTjgHl4v_l#BApFcNZj5XZNkdc*HCfK zy*>JOyim)2%1=PF+@hJ6$8Kvjd-_a@^Jbca=W!nukQAH&-?M~(*pyoa>%Q9( zdTPzrd39Gfgk91@Z8XO`#fCMrLSUw?ayjzb0#%-tH^H_1$~F@H?v)=wU<5*pug*FH z!LIG;J4rSTZIv61=Z#g(4qJ~!oe#HklvRXU%~NdQvC{-NZx%~UIV%{+y;&^5FlNwp zUw5)QXIy0Kb)N~-JES?k9GXQ4TBalRQ&ka!7j&QV+D}zQT4-x4a_XA}&BJX+h{ESZ zLRILUB7zj_F^{Vh5RA$*Kub()3P3OQp(-tWBjgTCl%}Td$=%*nUrybeBmGB}wi3 ze;{;vI$_*U`J2ucQI8!q>U_vgaaND#_9_2G>Z>dJs>AgXzT8}=r28hw4_S84Ao5qa zWmSBgko}z`bmom_BK`J`B0x&DFnRV=b!o0QIa`LeYO;3C*V5*5FMTM-d7(ANQ_R(B z1)Ol{`5_GRft*qHP5VWvgDzsMyvpjj*=hBua`Ot)<(SaU!@P*s`Ys*cud9<$J*C>F zlk7#dxyY@KI2KV=Ax!OEcWO~#&M6SNR1&=e);ag)En)UG#vtd=LR*BDR05?dfe0CDvc7Vy63n8Cxo_{JULjK60C7x{@?=eD>+GJ+Wrb)e zVpE4l5v{PsYRtbJ*7i&(?^Q0(Id3qWho^*4StN#ev#1E`3b<^=Q>;Srw2g(U<;SZa zFv72Z_jlT`Ff&eu$l=v#k_cek-Yg`Aco^w6^DxtA$+C!kJFeIZ1A*E(?lqO0zOsk) zol!71=nz22M3;kz)@hejj=Jth6PoTu*xendNC{(1nfG-E%a`eG{+Gjnf0-G0yAlKC zFIpFHZh?03)Y508PQ#Wk4v`$%{nuh_x3ZWt^ZZ2;<~(&0r&wdm^d*%suMS50t4shU zk5_lJaV@*-O{cqtS(zoRPmP|MaEAtsy?shccWK30+f#!EXl3k{zx_q;5oYs=;niVe zDwOG#dk7V&jaiT4oMMd5&WUd1p2t|uvQ4AbzB=ex6Y}zS$`fO0zA|d`If@c!4Qth` z*Q=|x&DM}_f~3@Np9)K!8l;pEmMuEps)1Ex_}1R{=1TE0FD`T5nZS+I3R98Ho8VYP zXK5!m9`|upl$KfX1b-?KB$EA<)C9_gdH>7Oc#U9 zwaV~!9&TsQEr(I5v%6)Qe@$YY^$k{*B6;!S3xj7*Np`_Gux*sJ`EM& zPP===D|lv*nKC7 z^b~{5L79NdQHl_jIa!)IEovYfVYTKq*y;^@|0xaWlN>W*wHnC;C=$?mqf<#RvH(Q+4>3`f`f zltGcoWenHt{%Z|ImOdKTWY_1q@p0dt%-E{eeLQw(TQP4IT2U(6rcvW{*Ia5>a29dO z`!?weenY)T7_i@4Z@bTAKJCiW5u5!mM|!f@TB`|tvj|;6^{}S*I{`+KTsK2bjIa=$&m5yI!4L^fr~N@BEqQE-4!uWcvXp2&|FrTXFR1c4^{vphq z%-(XBU5;s1gvYGSx&eM0;hq@6S=H;T7`TOyGQ| zX~j&Jc_xn+e1tKpd^x8N(zL^@EvlcRknU~06|;RT6j?OGwlaPZE{aZ6^7T?lUo(V! za~{+6^z2sY#IaCB92;GzdUd2ju1P=_ppO?oYeT0w>b#-Xv_uX}%r2+bYplvc|6YX6 z>F5aoxS4|VV2X$%&UM&eI2`I!ho{X2FQS8)x9Us(-msQ$pSDM7pob5s}Hd_-JOUuCFHqJkdpPSjXfX;jd7PG?1A zU5R5WA|Lne3Px7z3GGd=d$%;5NND}#ux3h`UbT<=*me}PwD7u5`3m?*mA@Py>yxYP zS6K&$QTBk%^J>o~WlB@^d1`E?Vo?sh6RB0!A`F%D{6q7#jp$AE=|f#L%twMxXIi&W zH@0+p6Qp}jc6L?Av7oPyMYZq5xrL$Y+Dws&yjd{F+9}KAyj2+v`6u9fK4htetvO22 zKE+tEL#*mlK7?pQS#LY)6eA|OyNt|tCt~aJx>KXwQ-ccV{TgGQVr1A>RdDhALuO_} zkTUwbN`=~b#4h^v;%vo)Sxb&XIIQaFH0C~p8<~#n7?Hi4Z4-@cpL`mQiDqm9j65~Q ztHKP#<~yS%a>A{)T2Q|_lkTYl%A1_)rAV?I9N;~ZOma${936YyCl^IkGvN7oDqw-E z*qZb6R87aAtid~@rqC5-y0C8#PDy9!m7R{$XTT;^em|Ip5X+t6_TZjZ=kpRrc)xaU z6*~<&cT1=q3w3CQ)L8QTGiwl>k=Lw#IX>+}1pBAYj8VS`s=TKYbM8LMX$c?k6m(?AU%sP=0t6`3AL`d&YkATAK`? z=r+_ZvJ8n8)d_yPQY!h%s3VqNz2s*RNMqJee}CI6L(M9Eb0(t8a2z)Fp)_mx_0Y5nQsDy z${48=$16eQce2gvRhA1XD|6BLa>mGY2X(sMyi!f8bJ+dko->u*qH4g+J=ZFjk}Ndm zPmNsfQOyYLl5ZPv>%EcxZ9jb3*wRNX;C<>m^Yvw8J)Ma4afe zk&a1Ip|86lZo?fIAFnFzW~UNypY3QP!Kb^Om^$UF$73pkQO`fcu(7TXjd|UfjkK-O z4tlG&nG0BE_QNw#3FYjPr(sP+l}e$-@DL7aupVQ+ug*|!ltV2KifsiqV^uaJN%1X{@yhuX>nglAcqg z;H$GuOQ@fSJ*Laf)PUPHldpSQS4FZiRqP_p(lpc{ERMyO{6VJ3#GUGj1cB!y=X)I)g8(Fv7q<*$R44k*PTJJj1BLeQ=U1! zv(m4EHyw5(rWv)kPlT3gybd}>pg&a=QQ7wRX7cI`Y^vJ4X3x(Y1XeNc;VI7zq}ti` zzB?nAKHJg0T6&cQWeP-DJjJ-8kW{CMyk2859t5WgzeugO%}DEqd7P3=Wt3CLYXa`1 zo+QlnR8=3>x~%bxLnz3#nI66NW;)1RCDA?Zzu(wFnQ4Ur++#ZJJDvKndiAlG7AIn+ z4flk$l7L}YWLMwZ*Af=`Yu}{5Rck_*Y*q2M-`CmU<&jyB#YU(MdZCnKp~z%+lU;S* z*fOs{8^@j#wldsYU>bXBY*m_#iD%7exJ7pZqe|-z4+0t{c0V330xw4fi08v)?1mov zd@{~sOSl!GrCGm7Q?rXP^gQmI-Zc3jydNGxRe{ZzW-YIiF~6!CR-@9$ggFGAP; zn;k>EUYz2r^1yEwC`Zn2R*@yBS6R)Y8qvkiy>CzmOW|UCe&)H zpN5_$%!bifU)SB!GXik^$;0efI?`jqeO5kH<-{P>TwTBKlDa91Fj-}eP!AvtYJ3R&!7j!0IjBf?TX z3{7quyPfR*zVlV2%7!1Pl7+us0S|{S3ibUQO*v>XQbF}Q7SX=lISOT+#{@%aWVkde z?Ln<#>s_WN1KMATsL@cumR3JJBQTt5L7JCVnF#Hjs;FvZI^7^+h@ z3q^F!FT&*C>z)D>Dhw~_y=pDI?2=MLr2 zPv=5M*TRwc-L1k3lj_wL>u(QM2TK?$8+EFx@K>5Uz}zf~UR5^LN_==mr|xP6-1lML z$dAWx`Swmp1L|H?@S5`vM7xu$OnY;OV+GJ0)^9Jv8>P!^=N=wJ(U?Z7`R-p~s1Vbs z(LZr`Ac3;=ez4zjxN^{nbq3IL9{XM_B&dA@`t;EiBjADJyk63eEn>)?+ozbA7LwVi zx8op!jln{{8)5(f$5zoXfG0mB12Q}x2igw2-&mWNz#fi)zBxu?@Gd&HD-}S zSKUmTL~hdDH2kYf$`uU9%$#D)q17%-a-U+&rCxV<^k3!OF6gg(_wY=$N>YROe%#l0 zX8{l2(@@p4d!d0^4F_%qPMh z^C6sqXZ0+Xc_-vIiY)66biGvwOC4jQUB=rxqt>()vwy4Fsx!PA#kZ=Pp|YUi-Gzs6 z?b5Gb<#8V>1=CdnzKG^lg>g4E`Ba^Cm@Vm>?<7$~+s~zhVGobyrZ5 zbGkdMY4v*1#~duC_qlEfXO>bO`69~Lik5*ZK0I#HU4_@(tv@_&Hseqt!s}c0MFfd- z)#issjPSKu?P)tz-4diNtG)4Z3hCPFo#?yos6n}kZn!-0u}}n-gb&+)-N$33PX^ha z$K1v%zw*{~C#@o3I}%o7tB3jPgC&O8Z_3I^p;zAe{8dJ&G0|=HtE@)ek>Qb_hHmRS z!UD_vKA{Rls=(2J*6&{6ZqY3ITG&11y4z$TvsVxfkB3KY4bAX>zPHdXT7tjg~MaPLHEBhpggTh)zS z>kQ`)&scs~y3l*vKW#Qc3MTkiY|Xl49E-Slg+XwwH>BKoBSO7)c5-}PPFil1w~al; zBAHg0an^r~o@%4zT))1XL4YUZ|HeRptFh=NRka=pvjN2Hz$#|HTA$`14BHjek zENv#-t@c)>sekvXy-f8XOas1Iji$w$SK3y7VY9e1!PE7=cWQ;CX2oOu1JT>!N`15 zt{C%SimBoC$|_HKW%-_;tKdqCQfl8!tGcQZn8rN`yHd6$JALDx>lCS})L&NN@xpK{ zuP=jjMeVi=N1IRz#yXftx7;xOeivckxi+w z6W;fn;P|qmDoPVMUg+ey>SE@xK=+E)wj7b?4KQ>Oi|P7x-@@qN5a!%dRoV0s1W7jM zgtpk$fu#**b9mai)>l?BHTl$Nj~qgyiP@WlA_cwSGUB}2j){q6YtgCN-U@0fP1wH5 zKG~dzZi~a*ksTW?DFUxfn&(J1;-`G4w#{($756>0cWF^p47A7JDvo!$Ti51`j4eoQ z3yE+V_KYKK2Nm^lbR1Z>d+*-&uuc;a#?FW7n9>{D8ltaWernKn)4P$rI8~YJuyE2U zk0~qKrzVqHe5;yV+Z4opQ|1O+{RZZ|UV>a1Jr=|7XVBp~XPxp7VU@`AoZC$|icQrw&vT0+)H>r}c+Q-U7%6dDb2>Z& zxC&L$p6f=_oX&L1!c|@q;wmvOyC+y*hlKAy=kE1d-!5ApupXWb6K}Mo`&{>p4(G1T zl))g6Qb&lGlyj~g-YQ9LArI|)m?VaD0!;F&?8@+x^!@}GJsuao3Enzuj zE=@93NGt@y^->`<#D`E31+Z1CWp7pKfLcy5ao$kQ`b#9%Ha9b^lEN;fJa7Pq6bo24K?w*E3)%OLT8XTGGxM5=$yFK2R6 z6SfxaFGmZqon|$TbHWF4#yr@AQ$E7*75Df|d#fUXrLe7R@*-K0dgDNz@)5~^Z!%?@ zmm@i2;gyz$Cj#agh3s}bwA-L+la)`xEN4f6J z3;_2jM8p(W(jsP`sxie(!mDF{t0t9$Zsa|Igf8T!YLM8chBh zlT~caR<_7~+!MB*?)d6luS8Z*V48i;y^$^IO&6}>IXr2(tNP)Xn~vbM{GMfIbNZA8 ztGw3Rah1zHeO(=M``oKYO*jjd^IMfvp=k-it6a9>(=8Y_=gji(&d3C94^M?{*_7At zm!oOenuW;Ls}q{HI82V3ecUSsR?%hj`PG@VM(5Js+^fn|HF9g;yb5j+h18!sofX+= zrmySTRR-cKnr!y#4uyc(lx&X$=qgbn8vP>OqlEcp`|BmuJv^(S;#YYpEOy3??>y9z zfU)vvw>b@AX4oDB)%9BiV^nILGVa+p;ALpZO6S{O>HsQFDrOunge9h$Ht5qwk^Sn> z1>;4kkfs|5M@iS~d!Gz`;vO%wZH5iG)em9gd$;Bq;&}tYksX;?{=5N>F8a_BZ&$Wg zX)B3?x}U0@;TCWmE%Ov>?5YTiwKx{tuDab>=5K#>tDX zNy&^Z#Mu4REXW=s%VPEV>X14Q(kkG2^WtV!RoZ0jO_|H_THi_FFpoPF)L*xI!jJJZ z_3L7Z$ya%@oz}xP%=vlBsC7{=jp%YzPfFxY*u2V}-Wx@w;8fK<8p#k-&OD|=6`foc z*N0gN`omVQnqx7m)1Y=4p_gB;weZNnHmt6)K%hI}D)>&Mb@xhvY<;~6Zb;)b4-bnw zS2z8uDLu^kRq^dIk|_j-ry^Aw5_RL%DV152#*_PcRl_6E zlNsmCEh<#L(cHJHtE)OQ8GSl$cag1>`m5ZOJ{1%0Kc=nubxyl0cz9@*wv`z@PanGa z2o1qLC&=z;o?X+}*Ij+MJIS%W3GN0RmNh=}a&}fVd%j)%O)$;Is^$|X^IMe`uFa%2 zPVaAmifm_k_Bi^(lcsl37&$Tf(?^jKcX15<#_SE66VuH|dGxgN& zSr(n*^I`U?;F>^*>gR;?>P{t~t>>6JJfuT+tn*a$$-?$FJ@C3uWja_D+t({>b`~5p zsGC;^mk&tLANNSX=yV5q&MlE*ZLZX)d*;u88z(~`1IH_r?NgRMsKXo()3ho6agSD( z2hyYOleY|_5uMA*>t2Q2M7&Y<8q|JHg}iS<~3Y;NrTcEz%K? ziyr3m&>`lSw%+TdE)>2pPv5sHrBJnx;&F3Nq>Xu4_WV{MMU2uhc;`^JsGI%H=W!y(X@!rvQPQ4TDL3$Vs;Vt zY>=&Ek>|P!bpm2s#jbKC8r=w4wa!tM%owxbcpcL!cEe-4^C_kXt2)f1_SHd%hK5g1 zo~qTQ%fvEwZeG=*72KNadU)tTpy`$KB1>N&k?lA<2pBUaLUj%gGSG&0hQAX4NzQKO zbnx(?(xQo=b>DPQl04bXh`nBDpRUX=5wBFkV zn1V%&M;2a0q|t5$_?{E6IHOoza7`UAY!a2 z0N<25tTWv;)0$Jh!)XbfH{5rMcBHaR=*Dn(I#eWTn>Blib*_LER6lt7be9Dz2{Iq% zE~My2rT_2{;Iv1l3LG8|Y7y8H*^A7G#EZJ zoXJQ-&9Js`Oc|_!H7w#jt4wAr6OA6ksme^nTtV30US^qRw<@!FYOqpO!V5zjQ&w%3 zDWPIsokE9|b(hCmh4cniOm9jG=c%B^bw4lgRbNoFJFeMxRJMYSue#hB>~R zjP*K%qoUC}<6-=ZaAloMt2{L{QkLASW?Fxh_mi-qgyB`zBW8Q8EGxlomCh{p+zt7G zhft9ex@0FGuXR&rX|khkU*(M;+uM-3^df2IHJIsNo#<>Aan9t;Vq<8t-46Rj(gLE1 ztjO0rYimcKcllQ3mreI#%`ZZ%(RQTTod6SlxOeFbmyzlF_n7$Jf`Ew>Gf{jCyKd~HQ_zRxaaWPwb>9lx9P7=nI#zG z)P?%+l!Y58c$Rf|6p6?!c-h8x0w|J5L5TF&7fGM!8n5-=sxrX1=B5`ySXOJ5$?f4i zrIcaQ3BmNnx4Y{j?VDyJT(5GsIT8xlKFng&T}a(~?sKHFsg5*aVurb4sx%``H+E!!vO?kN>zu$ZwZ)J-|c(?%|9seki|8cVHcxoTeyyliY5ZajUW zo$|r@u3GD!yLT zjLbAR>N|fbfeAvL5tvac)UU7wn+m^AJi3(|gw( zf8Di(ht)~Xr&w9lSXAx|4^Jtbt}`_zc)iM}+={u3Jzf<}we?UT9KzD8s*R#`9E&RN zoi#wqUQWf%G z6Ngy}?(C{s%3R-c;NIaA`cn5DqMFCZyuw4)c?_OkUod0e?nYD!u}DljrpPX?QzOZ_ znW8Fs)j2tH8lqY`mOW;DJ_I~6Ne1W5U6IwQ-p?(sJ94Mm;qC8?0@m74Zr->lqdm>Y zsMtL2XtbziTJ8RFs1VIeo<1i)K$22068UshfRRfEjX&W`UI(lchk>%ZQ)vTuQ{b`FA*^DN2GA!r(OiM5Gj9A_?WYISU z)-^SAj-tT3n|@E!O_`CcN@&;bS0_=Kqail-5K^8{+8WpHC;P=33!n_Ob<-g%z04{) z_GZd9>Q@fw{c_qv*eVhASg_M~%c|C&R~2Cb%5%;BQ-l58^prHR+RcKa3X4u|*5kE| zV15wt?F(usEr3(Vhk1l8B6_3yo&2&-6`h#2H+LQApBPoKmFJD|U?NSn^ghML>4~bT zmSi77MG~a(`*KXb2)D7)DPJVQv#qprpEo8-@5h13r?Vo{NiX%s>mERZ;#+(Ftz(VU z)gPEd`QeG}9dN@s&Komca+g_3wbN&YNO<%v_D(iEO&10w-Kpq=V^;DqRqMpNd!kM8&L%mgNvsF!Z@aCn-HK#no>OP%=`F`EYX||ukzev}b zaklv>4~vke4C}%8SSZ5O%TX5l+bOV|N(!`a){9hxXJu@9e2T$JyUFNZ?>p-h=^SlL zNxJ)bRa1Y$z`CDu!VqODuD4SkFGbR;+LPkekhA3;n)GW3Ae| z4Cfa3mmnW>w-maZVPYi+wU>{VU_?kj^!Du(xC~U~?gQN1;X5T>BWG+M!f@=M4~v$XbAPHKH*dm3Nm+^|%Y0-vgx3!m|fsXp#m4&w@O=AEKQ)vdCkl|=Yh zB$5tV;G4mVl->cJoqPUCvGShCrQNB89E4+Pya~aSE-`pZ#fA1bs87TVfv`&J@|qPJZVzN`o0r zg_7kgwWwKULmOksMc19L2WPBDZrLlUWL zoTHFxoIT~vc&p0etF$P*vkpjm_-b+FOGCPA#;W7z?6@*Q?#9Q!7&IkHuIZ z8Ho_T7s)SFrrP!0cYs~MeNfW&^l3vnOr@9)VH+7tm<(0ts5Xht=vhSHblOdnJkvMt z&WQGfw1QQ{zRKY)j=^p`%pI&$h)MPQ5O&HbMgoC6Cv=v53c`}_wCPGtBGH3i_bQ*I zr|QM)Rq%>#$&+!rvI_{vscy}Oxmd{BVfFq+2(|gnQglYFZ@J3PHwmbrORv&g9KFM9eA8LP`FgU=x(YFaZjzj$U4kz6~5t}redEy ziU1UtjuKdP?{5Nau_cayg)^&=qCeuX|f(I2dNe{APL)Wz1q!`&M-g z12(pM&!Wm{DK@#0iElb>wAs#5gX(Xmw23B?W%@g>*GyK^%G_@+D`&H6Z7mb8`)Xu~ ziM7F}Si2({?k2=>`nVI>-qf18ULKY+Zm#HDFArGtXwb3oBB{RN>6XdQneDme5;@GW zUgb(#88rj`>jkkakBaJhvTE-Q1X1KW$J#ecs4FH0hbK%s1yc@PI9?Hq?n(zcZi0~| z3pERldXaL{U^H<#?tw{bMSZn1zga}nj19E;yvjY~rtZ?ADP7K}O+~bu)#vbz!A=s{ z3Y;3To(WU^;G1b$aK85fy;nIsJZ3Y~x4sjgGulKvkp*6z%(2W!6K=dn87kaTn0RVr zg+U5V2kLl9?(7V!;NCM^Cpz5Atvd6jqX^QQq2h5K%T7;(61Mi`(AJ`mQO1XmfN9f1 z0QW^E8`eIn6(^KknOV9HU2s{>Ltzimhxb0Og z&)phjrOzQOr!(EqE3V&k%GclpcKhp9QTr)t0{wPVrB%lkh5gQ`E+vE|fnuK;mASIp z*8c0B@L(qy!Si#K!>rBC*{4QHiv*n_pN|DY*T<>$Jh!MrPjxdppFYK2gdmvtTn;=t ztSl0>SNV&`KSk!g?(lMp$w|!qa;kkyVwl!{YQP5(Z9U<4W;S99xl33*Cn(ax7;m3C zRUs% zhq>ePWHn2{^H^u4axx2e2wS=E?x~HwnKtUf(q`dzAM93=R!mp%o~#rp`|_s+;bz*s zCl*p^=dtFrO{J}29zqFf*&W7-)46xU!(b}k7okCM^PyIr!?C`0ZhE?$c6e zyHG1#uMQh7B65(n#zn@wn;2|8x2T*#(``gPgi{tODxLOz7TGgx)s<2$^Wj+=L%GxB z(W|`Kkw6Es&l{_{n`p20yj{6IR$5`R-Z!reFJR5at*-J$SfeA-BhMQfC`+SxU|;2| zvLG>uH`C4T9+oQ$w^O#&eq4=~&p+F~VZ%l2yk3oQdory(_Q{gHg-=+B3=3LAJM@;z@T!tC;zQj1>>%R4&}HJ@V2 z+2&M-A>zYK!+JWmE$19XV=my?a?yOMDpDiWqlD;(kYiChwtDetNRxF%HD-(Xi&RYP z&WGXkTJNY}AaWnVMb@{B(fD+x3mHrxVO!VTqe>9u5Ni8KReDT%QAwS5&eKcD#%Xlr zDdzAt@3Cx~Z|?NY8rsULgTv!Z>@1>NB3$Jjo!`y}2fyIS(@h z0EqJ8yzb)@qs`%)aZL4IU=7s`T;=dG55Z~`ySYciY;&>)_qiV<+F&uJZgrRy(ePk4 z<*$1LxhT4<{<=pRbDHHDc$KpuVG2->Q#BM>XWCBhu?R>ChQN&1cP3EHHRAA`$$dHf zC1BU0?hIGXu9|r{fnyp}_iyw?-&coD%ZLmIe>w0n6)prH9=3~>xwZ4W8r(%fkeN7D zV~92+3w_^TFeLA%7a=j8s&cZ2cXbNuH?LTl1(+G+)k$jy1wAcsz0xhV2$U~=5v4~s zEbGn$rl&&8@irWzNfZhbp0rLvWc%Z9(oT$EW?o7dwt{%M9b4e_xUb<^LL z2y?SYIahSKCE*{!{Z7q^sHnb3nZsHJincyymKEFv=7V{Ws0wV;vGZ01P48-z^mcBA z6x4fq>>P^{j$o-!)cztJy@On@`}C5PtG?@?*WFWCQ0wmjrR9>FMZt+RtIDb4RS4xH zT)TaK5t>UM--0Y#`#gl>upZ%d zVZF-RgLJwtaUR2tw+5>{=5H3*%_>HO=Uz^mC8msQ%bQLc4b!12xyQX_?xcQucE6lZ zA4Nd>?TZfAtE?;mJcJ!dudk|cUY)AZoe8b6_Bpew(I}ZQ`aVTxYjPs*Rk~%IpOvwt ze#44=mD^1MPL4&rIuyoS=uhyi+J>his`j1gv|a><20VS}rMJsQ$mgGi43Ocr9#iKr zRyG%-Vus_+LX`G;+VV|Mj?0z1x*U55SyDbT+}HQqLgY-FJJjx!CxFn~hz`EWkbhFY zoRM!;N94*unl{d>Y_-OY7x-gAW=0?^lzA-1X04gV{#E|oi@8T`U1b%p3PZO>eTt21 zAFU^2ai3ywLIU<<%tc?*{O;-AWt zr;%-)y`i;l72V48))Oy>USnc8S^My?W}>D=zMo=L=P5H!yYEIhk~I~{OvcS?rF#*b2Y&g8jeJkp!dmD1#!;CNbO(XBjqs(NL&ClZCZ?hZG}!3L6V6*`hy5QX^M zG7hrb8!+SX^3Le+@vxbf(~!+y>Hg4YkPYu_#OPb+_ zk9)cHd5y&=a{ehTa-C^J>aKc~BecFk+;R?~IMsOVwv#VXUZtwLDXDH1Od+WOn|*k? zg42;5G2S+}3huM6&RfWHFT6+Ot1`NOIqQO5!^+>P zFm^|ED*NVz;F?#iSUPmU4RHQJQ6y+B zyWENWU8o(cV0N9(kilsiZ1?*FZ$OXCvKVZ>IulLP^_slzwgwZss#@9853?x7n18G1 zVP5lbk?P90oHk1~(TU%xcJ=r+!LIkM>WF5TtXRX-rz1^$-D3Nl{E9?Quqfq@MF%Zx zBLg~5zqxmbsBcF_Dc_yarO3v<^QU{%8mQc?mox6#6!fUTd7~$)(oH9Mzn#)EZDJzwc(dp&gkfjB z>NKQj4yj)j*;koXKDqgod%P6sjATUAeKI+;bsr12wO<|A2nQ`98K)0@*p!MyJ-4WU z;7?1gc}`%tFQ#mKp2Jx&f?cq|+yn^|nsn(p`-?#SNx?z&&5Kl%ZpW_ve)Hml?Cm8o zUH+fPaC&_^tZE-WDMa+KP#e{B6`|wRY0IEw&7OHViVPwKTYdXq$!pkNX{ zGWH>yOaPM-ZXX^M$xK!2*vD(rce6a%56@bAPGOB2;-}$y>JLzDJ6HMhF{6A$;yo2? zwwwN_ocLet8qt+=07DAFzi zd-kZ~Aq0JsVN&ope7mZ;h(*WwP!TviJjL#H?*@UMqUA%_-Hxytq5nl_mhLc{=Z)Y{$qH64%6IPc^zu?mfeH!|Q9tIscRgVR8 zYf@SZ{T z)W)5(>pR_^=>TpQ?8n%$b|3|A7GZ8%u+_q+hCr;EA!fV|VOWb5QoWPMD}05T(71)^ z!xItdtW})9Rgu|Lqf+@p7||OFdT!1O2Fi!3Y*jfk$(xhzK>D`ORJHcg5!3&aG)dw5gE=#5U` z8G4>Kz6b;X7~cI|TSAT3%@>m8dabQ_O^{osA=Y!Iw@1rfoh>f~aY0F?0#;b8T zZDn0xiahVMX|L=Uu64Yf(hkc88ihSx?VBDQ+R0O=YKLXUR#W{>Rb6cr63S%1%GncT z+8r&yKNhW`Vug=aozBfLWo<s{)xn7F=mgxLfg5r8hg0RarbW7+$GA%h;zO zLn{((5&n2FWW*Be@O%zu>BShFrTB-CRW12VU$p#1`nyB49J@R<*f!x36;u7XGeXb8 z>z=!(23K-Lv=?k|?i8t|qPfiD&ZUu~N^5U7jl0i!qnvrGMo_7siget*m>jSjNDb+9 zo(f;CMXB&FB3{`mL1s>|scai7QSrxpkj?^7n0MMt8)y=zs-EYkqoyj1ReQXK^}YTY zW*v7m5a%7XRX@yIdaX+EjC0E@)@M3_o#U?aG%Uj{t>;vg2IVp)5#ZHX>#x$PfAd(Z zTOhO3nDcTxJPp5ya5xP<-kq-|#%sjdx@8@w^uhJ-Fc;aTUq}jj-k9WUVPLDflB7T@>Gs+~Anrok? znPtRuG-pe5SHy$0NLp~Dm?9Nz%XX@gdVLY;%7K+vi+ZW%P z*$~@kA=8u<>0}kW&5@d*BEqrtc{94iT@l%ES5zssn#C6xa@&%K@0l&l)?9OdTLZ81 zvbu*kxu3_<+|y=t9HH`aiy{%2AZ%BF{?m1jpbdqucaN#ZN4^D#9aq_7wi@MQSUEGz zlT}&S-Nl!avk0VD@o{&MXc#NwdxF&}D94p1NI!(lVobVEeb11}nWkE=z8W5$#YjaT zE8|7N!lR<;D|R0XHRv%fMdvY%jI|ge7<*HWEZ^zWn)ptev`BbnS~KLTt5arZj_F~! z->Rzeo^7ezuRECD8klM6IVvECtQ;19tFU88be8_T$}~s0SGk0Hk(mk;^@%$F2(fu6 zv|&6|Lwmbz^i^!n39;$x*jC2#Pv|~HT6Jpeug-e4XXW<8oF+!Q<{R^USDU8a$c<%` z;drHS!8OjZj(cXvPAxD=-rQ5a8p5Lfc{?S`V_}W8#9Jj&VQz4}I6r5tgN8~O=GB2A z!UtCUotbIh6=qb1G&`o*yHRZHa$jZIs%XO7_L$}fv&qFw>yh@qN;vE$usZaUx{Qk7B)pwGl{z1rGv&hP0QIQer5z_4Wxzc?YQDeZV zS{VUPDbV>_h45HrIvCfz&}9qtPqF{JQC&q~!VBO1E3LG%OSQE~+FyQmWm^5~HglLe!>E+P|E2+sTZKIW=Iuos-f(A7FH&+zu31E# z8twBzY6QHlPL~5Jd#57DX$3HnO;+Tb>MEjy%xTQSuZQQ zp!w&X=UelNNx~+7cy^hLF0!8Tv>5k<(NL!|Eu(GWx*_ztLTpD%sN$x)H>uK?42$0 zd!c|`di-+0Ds9cs($j~akZ6sH<;&^hz(luV9#d9&ZmF#2d4udUjjUDqotfn3db=0q z`!rrm$6^=Op{!G$8eF($wnBQ!Q;+gx(6M3c7g_XFT95U+>&ai;Ugns7cRi`cE{ASa ziCZ;kS^C0c;Jh&fcgqZ9zX|FV>F&YKs^=(0xMR#>_wkxGM*0Tn`y$c{KH#_P)EH6% zI%geyyk^5-Vh)QrKhL&aR!XD&;o0$AGebw;Ousj(p&TcV#afnGB~mbdIqblcaLxBQ zZQ8oD5b+*ZzMSwF8JANL*L}lfU*}p)-IO;IQq9^zWWJrUiOOJ(S=Q@bTF}9buBV2E zXAAL7kgqa~5TopwdEJr57W;vUU*-0U*@`F;evxsgIto#5)wr_=?`@vzA3l(zLa;`yj3wyh-h1%qugSuQoU`wzV2?d zjcU&kz)uY~L^dEPBlhJ04Dasgs?QtB8C8G}lE3Z{jO_NEynCEmTUEJodiYj#gkv(l z5j+;OCVR~T@#*X;8GSZ+ z#CP2^vOXuc@H)_N@}7;|m$j+4v3vVV@C(@_h7*T5yiyFTtAzdI9trp9+3(2vPGgTU z+Jte|>o5m0y-IEcaWf4hKtqAiFVf5wsaeL;IaoulDry#|j|M)uL2W^MI)^qgfT>|>gl z;~pV3@XJx7l4i3eL|^yJ-G~XBv0tyUDBn&ss8XySa-YDU^{Bd6=`+o`sgJuTv*9p{1PX3Bj;C0Ovio@USX}pV{R)jJqV6u^~XKe$dse9xqp!@ORgbtij|U5Z@ac1i>hi@m9gyalL2)vja;ww zM-qM93mqna@J64bN*8-98rZ0L2zG^yvd{(_~_y z9d;}vctN;x(D8Dz8C_2AsN;_8oow3oz1(3&b@h6>Z_Q!8jqK|*%RIM0Vp*}n{gAu2r%5_KqrQ0XtJ_pFZ8~5Ezj7t?J27ik-^ubHDWNSq(lX z((~bAuRv-v;c-4}Zr2#PvtER5HcYZ|zW){?ogVHR9rE5>cY0~Pz7X5Tg1)2EGF?aK zn=-@9Ku77cIJYPgfpRUacOo&evI<$SIfQB~jfGLl?fHl00%+qgKVGb84#SJT6M&U! z-?m8P@gmxH3$9~;cS^8r$gufZU z%yFLxw=wS2-gl!u853jGTJv_deB4ObmPzo>z1mim>6NjpR|lH$5nN0@U^7FTE8Ch1!<^UmH4 zODSqo$aly8E&?$VPP|n}3!+oQx$k#;1!H}BSdH6F3x=nyb>-7%MTuf2I8}FUtkj_a z9b@lau=GTy`$y#bv!c%P*$vaC4#dWD(CmPgYE zpA!_p08!KAe09RSDqCl7%N&0Zwe~SM_~{%LZK6BfJ@ffTk*%D_jgt8^<**9MKL~X1 zhewerH_~LZe06HGSxph)$26=h8!(vuyzcFEB-^n4Fl)t52a?N zS#vj&DELKsNmFFEZx#+yK%3Me_&HqWriVMS7Z0I#vLn1>!B>ZAon1&O>0|24U0}dU z9yo>i15)xlY_JmUga<;97J>C zCK!>02@cfsm(yuG60+(|IWoX)f#}VblObzvdS~US5jjnIEi~CvHOefZb0Jv!awG#@PFPO%>?9SS|g9Ln7*5B{A&+ER3WRK8&X8KqlC0(0*H;vN} z=^EG)X4U6#q=31P!V`xOIcu4f(^aod*AP3EIPmRtD6nv-S?XS)*%DnRp=hacY_MAZ1 zo~qp@ML$oEy_t5q89i+*JmQDMWn`+KwiR+&#aao*_Zu+X`Cu zdSxXtW|yk{O@|d_)w!d&z3%O(jmn;V8nQd536@ExTh(jZ9KFwb(o>@fAM3GD?&aue zWvJNXK7`YaW|8Ul{d;f(Wn>vM|1sT>Qa(M9C%!skscn!>iHJMv)JF4eCrkA%=gUZZ zYgxx)B1`L_EET$(z{bLpQuX{i-^)N(&D70HA{bhrtt`(i8aLT&+sOFkAV;OfXYTu^ z7-|V4(U>`=L%Qc$Y0(c4KX9pq%6*lmI0T|xD-Yp-z7+I`IET*+H#cT{?-@I0vlyM+ za@to8QtTA09fHmk1Anwq6Lbs@KJ+eE#buxUD{Qiwi08xg+B+3&`7 z5rhWTRVk(3Dzs)NUVz1^y3&Rlsd+h0v74{L7Vv)EnJ_i8B7dtCY4c&hc<1vHlbV?X z$;W+3L${jw#LF3XDuLT|-#f%^Sax(lHu~_S;HeF=t*k%g6#?2at&RK5E6s}{-I+~% zdqxZpYXqE}9=HCur}z?|hU6|w3pL^31E?(gq z#KTi66cwDTe3b!jxJHkux2i))nQip>xTkeXSWngMUyd{!M7B-*m=ZgjKy=-XOCwEw zrqk>cOVcRVc3KnSH?Op{BB1vkciJct`8i?Qx_&tmsg+@a*UOD;2;GS2VRkPCMp@0< zDd|P|k8MIeFQ;=|4cCTyy!?Z@8SCD2y%b5MrK)&;o=<0GSyr;U-zv5Y6ATlxo1kmc zSZ9xuPt`DEb9d5IU4G86(nNQ=SaD7Wlj%a&0E0k$zqxZB%W$J^wpnD|T`wcdVAWE< z<|e2}mq&DO)y+M^oo(6VJmqz@K#b@5(>dC{cac8RuX`g@!DH6qRTix-quy5^uOQr8 zM~lfGr(q1ID?_coQzN#+a=b!E)Hy1}bd%J&xlacyqkWY>S>4LBGjTc#Sq(<2 z+Sc{TC^s6>&c0qM^sVtok9eyx)hL<+=3&n2hRDVQf8C2?BWcKrW11iQrl)@GcS>ZL zWd|ZA?IA2f4#p+W;3}8rc8_up^HzCHh5Mp+4^KJJQ{W8t9Hq#r6sC%AUgZ;=ZiXUn zf|X%W1x#cfcST00INHnaNjNJRYV>iadfk&1QEh9@n`yy_tY~uc;kmx?om<>j89Pg> zEn#>F+ellt&g4z-+e_iYWyZWZBD4ZtzMH3EjfgY5I@I=acnujnK?I+lYd^%{EtK(k zZFnM7Jo-LQ$lCT)nPh@bXSH3*LE?q$t_4sRveq6i1h%=b@p!ulAt(@!Sl&~U+H|w3 z=(6bPgM^g|tp@f^B-G}lt4#7&8PrKawTgQFfjC7ow`}Uw>2DYHj&a^;40==+caU}Z zsLZyd_onAtHR~v{yOXB|R+2S>%D~OEeI}V6hQ-aRqnr(y(d}XGgcha_7joaKO5Z}G z6Ym7*s@`1Gdfk6ZlU?-L?8rhLo`#BM?1oUkUYOaKWmnWG-wd!kT6E_1nu1Jf>0ZA& z)2uSBEPu|VCA#${BX~QPhOnG6%*5$KBTRK`HS6m|8}sH=`QUs=PYoy5Y_eXR==jp4 z^*)5mZb3BLu{wlIE$>VM+2<%$ZOxWa2Cq)Fr@Fc2^v!}r^)ic^&Q}L%C4Jo7`>j&J zO52ayJ&S%lK6z5|R6Sl@)s|&l!MCbs(@^Dd$-~2Ju2n?VzFuT{nMPy&TQwHMmXG$~ zLpT{+On!@Qf*h97+1k?g{G4Ops>#dac}e_guZp*3SIO=dn;k zHzI9BZt%{i2^dBURJ(6F6B{{GN#A^x)4kO&I*^BX3O-o6d)!lZ4qz7WrLm92bkRjE zwqxF^hVUfAHs7wCZZYaCqi}ww%`|PXf~5f-!nK4D1Fhg8T(>c%R&2lf=|(hq1!?$p z_l5*CPajX74;5*R5HQEXEEHMWGj!wYrB<-ng+~>%C^OcSb2PTvS>y?-S`SvXJt-k$3tjq5#ERjE`4Y7OG(z z-SsL92?rI9y}M^wyN5?BXZKTH5x^M{*~YhO{5vDECBdB=Wdp1fg(lB$U%W^sBQ>sX zUW&9ubZC_%IDMwUUH4_x<1PlX(#Dwl+)}oa0aYJ#onr0=pVTkQ`9%<001fuKyCXT( zSS`Ko?(MZ0)tjfh2csCn_T9s*F_?nUwY*cJ9NM3ejvdacgUUpywfp(Gyd}#bljys{ zDnb(?nSPuP;bi%Ew$Gdo%O!A{$GCNWd%415Cjgg;aoodzF}VH-{BnS8)TYO|x58Pw zg~`sxE5a;fgH>_dydqasC$=){m`1rZQ^l*}RjzGgaK!Jo3WjiP0ze{s^9t0Mgm6XY zct!W5J2EDJt5idG#zD%y=bxBQ)E;xQ=ggS(LQ!yfUiUR3y(_Zblw)bGmCg~^uX~zt z8Ll#c(urwp9I6M`~Sj#W#K6R{$OrRka&6iW* z5hn4|UazVehH8{h9Mh`WWrgk7-C;{ttaqXMI;1|us?B5FrUdNvmm=E>0gA{&SnWF_ z3SBX$Pj#9A>1|++SFy!n!=OTM6(@&{NybyGxG=Dr+wW{CasTQJ+IVjHBGfty7OyhQ zyrKrlo|`F5+;>|4#zP2O0z_yid^zD|EKS0(uTBu8xkpDGQxwgrwX`M4rv^|T1==Y0 z)j^l7uiUse?i#-U8LfbKu0pR@m2xxjdeJRObZ*C~q1Kz-yOvR}@|0WU+9-7Mf_i(2 z%lgdA*(eLs*s=Y~>4EfAEzgUz5~P)lS3D=QNmH(wYpPeL)kx8u?VQuO<11rM4SEk@ zhsjs3G`C?joL_fU3{;o!^r_lA@SJ8>?wwjxE4{`x?Wsybc{heT&p)(XcIrHtj#G@~ zG3upI|5jDbxT$=294{7Ck zjRnV5x$mT%ba}8Knlrx~CDY7wdf+BF)hb~`r5ax4>Sl0#(|C>=W|mVKvw2L1BvzN( zwenVRX0eH+g!)C~<&UG@`*HJ{W3d^-4h}+A`w)susYpR7_qkW5pUIK z2h>KTZdz~E7XdxG$y0UL13MeO!g<|Qn%|-Y>stj=(=aAF?Y_@dWG5pueyRF79Oju2 z09PDuRj6{HX}%|CComl?BeL4ByU$A-x-22=8A+O}xAf z9UoKW?6`5(Apl|l>uz>iy5~Kw!l*Lk$!uBTa+p%eou0j~vi!divHmOd=x>El+ZL$-8KAif<3Mc7I7=FB%8xJ&!i zre`cpA4RZJLJa-;^>TOh_HtA6Q^TXJVyhUruX48hty<=DI|W__?WG{n?-W&povIAjbR&Kd zCVJXnc~2nlK{vf=$REOWmRZ-fJr?0DJ*(T+?|U?%v)I@UUC2``+Nds!Lhh*%owJ?k z?s?}tf_kSgYOsen$kCf_y?B^|BQzm(ROdYZaj41|8{$4X7*?*ByT}^%MP6@=CZ-*tv>zokUjYc|Yd(Z01X|0IH#_VBEi}v2m*y7>IaDs5N zM4cL`P{J(CZLe~cG&fI+io44ot9y4GJ8JlOEQ?yAvbox07lEe$&ek+u9b`b)EgVnz zgm4Thf>yV`lCh1l?Xo%zlR}p){pou~LXM?xLZp&!)p%PVT03)3v6QOi%wUj@`yg^X zh?2O6aFma4S;lj3jyCf|W_RzoS1W3EnFQw5*+{o)L-qYk3b`8=F@~r(4NGbb-D=X_ zEW}33h7s62H58$H6wLV-fzgKaLfmvp@2iDSBb&qXMMx`k&*yMOI&GR<-V?s~`ObI@ z^!xTsIl2*TrKJyH_-YB^#&|gy(^;#Nv*uKl^lR%NfQ;UMW1~Ypm5?LU-*il9k?? zggIUvH8*fu{rfM%jv|@+PJq%p5uV>a??i&U%gr50@HB*lK}guUb+dq5t7xYC;1{W? zwB59d>xJ+VbHadkM#&r=8fvEL>&HuxcD6Yq=dBV;>b?RipW_8ciR^B(efLv9*JzoM z`Oa04a8fH`_hyQzO~>?@$1l>bC<$W8n=-zGs4TqI;j!52DOqu?>*4vv6wOhsIXvwM z!G~raZ>MxvTe?@ey)&Vc@Q!7-{{5J$h5Kf#Bi~NxVy2$5w1M}Ygwe=?&sjoQOzMl~hXa&HU1Y2SQA$I`aUTcJ=@P{1cHH<_up?dA->OJ#wAOjQGjr0`TYos6 z*L^Z0u<6tNtCPTPBbazA#Wn|9|C9o~Dqrb7Z3D-rSVjB1PsxaFJj$O0Tn zF>$|H%r;BF=@xY!)4nhB!L(W5*|P3{dnm)+{e8ohKH-&&W3h3hXU+JR(-~Yeiafh$R>vDoU;Jr%zkhNSA9 z?H?XBF4L$Z>xW0YbEb;w`nt<)McN_~ud=qbo#iP3*_34J%6DV8{FOkD#YoS-HdT5b~QtDbs7- zDgyFpxjN0KSR1MF41&!2nL@kKo6%A(>biSoZNVXF@8oYU1$xK9>Q7ZgP!{~CC4Z3- zNAC~gF9%xJ4iD4dKkj+(RO#+33>5O(z{@`=L|H%_1X! zC^{B*Pw5OsR!?h7)$vNquv3+L;;m|Ho2}x={U5^Y$?Q&W<4(~|x~Q#WTgEZX*>bvt zq4_`4)|%Kz*6KDiKX^&N{x^129H;M>PN!|mLlSVR?95zGb3J>Ff~^`~o-(Gp>RIm` zi_#;n$wl#JaaPr&Qj7jYMIno@POHmYL2N204NvD%c|aqkUi4{Lsq9pC@Z6fRo(TA#VpUX0vpG)IO{~qFi+L$U6WVjsFR0T50DD;ARp$* zz(%V@Ru7?u#5W`$`tD#^QyH-p4%W>WVzrTy)W|zCiKLe$>1%Hep>EN~XWZT#qMd7B z!Q#t|PIoqY-S%acC7Ud$*T)@Q>PlHqY<@oU;cQ0Py?-ZmnWpE+n$wV0B3f*~^Yo!1 zI@;Yf-el6~k%)mrx>~eeqUDj?JCW#)ovGH>n{eiqyb@;pSg=;oWO(@Is}64^6;*D& zJjh8w?5@b$3qnGt6+t!k>y9iax^K+jn39t9d}iLM#Wq!*!YcY@mSw!nXBv-1R~N<^ z+xxh8hj%kwy4`+pvO@$S#_ztD99HcbGJ-b=+$awpjg{BSyk$UdnCIP{lDpe%bTIbz zv@L58=yJ}_QcD`)Zn&vyUwDUo#{>_dom~r#@5`8_Dt0mxLoVz1pH^E|7&-6`8PoS*22A)r!sUTZ}VAEG?td@%` z#muo##zv;Zu)bFWzm|NT*dH| zpKxwgb*x1Ac*!z5*^|H?<_V&(k^R}9&-Zc=#9rx#Tcy%WaC9-lH;P?morZs=E=9^~>DW z1fWF_gv--atLd&r^~)oVWuo$X;e1Aq!m(4vmw7$0on!6y?uM$I!KEkgc6o(YfSc-Z z-yE(5OPP_zI$mp=Z5)01o0j!L+eFoHUsMdL46LX;eKy@KJS$hm58-Cfg()n34xy%` zd#qd~=S2a*$hC^9>&1czH7(N}4-b{JvqGifSvp#3sXFt=qWe?19n1b|wS85s1p3<^ z;c0Upi0ZWV?5i#dV+sL=5Ivvi9*L zetE$3oi2mV>Eqm191x>@x;&j4(~$?}-s`n@wWVvFy7Kzv8)bUJ=JN7{**48!h5e?k z!`8!*#RjgrEZsFwfu8SV>+rT%A6v7hp)3>4VF7m!*%3Ar;!LxrYD8uize*OTMnt(N zlx?X?ABzZ>Xn*iFUv&t4h^f1$4 zg+@1m)%ec3j&-l#mh0=~S#P81meKolP;^`!4z zVrprNQ$EWXYw7TMy~yf9S!x{TF-=$!W<u+xux-jRdl9Etc_Xlff#DRZ z;6VMV#qLc)C2}&<{9JseUspC!Ugd_@(@K%3nnBvnQYtzR;+-SV&HQ=gw z1@y~Icc&z*LZ2GNuoBPeC0`UZDkep|GCl#m zp2EzcKNc}_TM0)Q6_CNF7^1W0`x9~ZNDZk`-n&@aQ%o@_xTEJjcSgxFIW7rv?>Fh< ztNQJ+)4s<7)y0tP>T=&ip~O(#>~_!V7f_No2{d@TWRZU`m1ka_uAzsug+1lbG{fqL zcOM>lT5Q8ygfEXQqZf_c#pffY3MwC)K3+_fnF>qH+b@=7kg=xZhnW?K1f5}bH`uc1 z;;$Tmtz$tHsxrGbe|fOuBjZYp>oR45VMxb2*+|GHIG%==N0q0ew=M8k^jBCCulM{c zySWji+uppMa#9x8q@d!}8cw*+suF)bvk0z@$Jc{CJy%mnOB_#~;c^zh&OO!;!X9fkXpxTmsGTD5%UxDR?@6grQ+(`INOY`qeB z+=u1RGk{w^3-qLW%yrOzy_hkx@omE2nIKCJGAxU6+-EAfCPK}?tG=$VP@l{0J#0(l zflp2p>)}~2*dciK!@Ls)E97|peAZPsHih|iXDxHPnbrBWa!u9EeNg_?SS6v_9vht7 zCJkV8Zk1s3Fw2r~bt@&nb!QXIMY1gLYGqft0hazcD1X`r(xg`P(`V&vjZpb``fNo} zrpCyAK0ukkdFcXheb;b}r+KaZ{wx)_YHL`=^5YNif5+Ink>%lyPCkS?W7QhM z^!QkeInapIKj5>3xFTT$=2K%Vy}HWMHgCem;3CcH@!fB~WQhy$RN@!a;dHjeqQ2^5 z!siNcLAXyL#>Q{VWVD-SS@c#0zRlV@=f~E(c2c_TFKS~Muy$qp)EM`ia#V|Hd|N3C z)jp-MSv;RuHO8vaIiF%u6sc-$knIq9_MobkbbJ#vUMvgAv@4UkGu~w^K`8cqvmwh? zFrlsA+hwuJ@fLdlorgzDEsKrC-WH5YOr;4<#j}Lvwy;QA#32lCheghQ6Yy1!Fdy~R z0o?RXs5CVQ1p3vAOd@QzCtnAnipDMI506)TX)Bp9KMWCsn139QpH!o(-wfmdCW}gJx@%{?w2Kt1UBY{_@nWTUg}i z=f}O&m1;2s4Q7>?0Tp{!G*po6Y6BB5?y9tPaTlVx|`qLB?pfnKZm zIG<&(%chxod0-=&3yN!Ab=Vpdmo>OgY354{jS46G&+@e=vccwYM}&9LrF_TBlWNVj zp~LTrHUO5o0cdmQO*k;)AEXuTQx#Z8Gub7OA7-@E-FuY(oe5ATAG1zwz3N+N^kQQA z^3XDq=>ap`%+uIzN*%%1LE17+)2p~XJPb?;-DY~;95P|8sqoo+yqE;H1UTpJ&_Hq?h?qtZ6w|m{RTay<6~wu?+G0-c7M~A>#h3cdOwZi0(av zW0p|g^)37#(=lfj9Qya}Gc~%^rM+m$Q8z8pfor~1&A#qTWD?a%R=mDXNH2-l{eis9 znL82Y>g_(CEHhb5D(|VGqm8Zz4PM2~*pyQPSdFQC)hm3BPEW+of{o==l;hNxj;sY? z8rJ7CDo#gsdB0j)?I6p|-&IB@0=18WG`$lsUZ0T4pbId1oC=74kH?x2+bSnKtWwvKgjjwsNvQj7mnLRI0rMtM_ zG@PoM3R;dQ1@pK|h%F;h)!*r-02w_yrg1a2y{MsA!RPdmg(c7>Io}+vkF`gq zA;Fhwr2NUPnLkPn&yM^s&CBHmTBtv zcnL2(FoS%v5qeRK#JEt0N0tTG+zfU4geSD~?CoD>Sw`Jz^WHi<5zI6qqq}cbLysb| zvXOJVqRdj3_!{>zBMYIfN5`Gdt0|7PN$ak;Nf661=@D32zrIJaT9x2l`KphXXVR@S zL+3N~rGyvzm-(YqImMm0Uc`2rtwALAbWV{fb#r_=4|950ujFaN+pqK*cVbyv$08ki zWU_bUDW3}RNu4DGPK^xBL`J#1?jC6~f-qkTlK>y)3{H0!hl2DhUF`|e(YCKvwC2TF zRqNovt0Lf&aBS-S+>#}WnJ?Sf^Beo!mEd6;uvRbqHHYJw(Nm{Jtui=_=K1!Je=u_o%mH70LWkLd&v+hd02s6rQJy|!s2v1bCx6d3xBqw2Fn{}W3FRG4pOc2Kl zt?9`ajxlc%(1aHOeedavp0$ZcT`lI-8e6n#Vc5qM;{(+-MBd%t>ZSBTv>xz$7=}^~ zOQ_h#i?Qy~Guv!VLuU2{9nvzc7Lf={ZWbP9(ze9~Vbh11^d6{ZTb0L)ZK>05+-d(T z@Ti?K-n+JCvyr84DC*^r3g!$<{AK>iI#<~JK5Z8Mgvbe>b)G(Lvuo8wi-)k?$D$ae z2gkiVy~ilB@$kqJ>se*M-qdwuY%GkNxDIyg>HF|h zjpeRKOZ`vhuFe=nro}!ysP-1k9oDNwD+?t@_P)$qE0>_M){AO(1glsAdYM}fqRmQ) zUUgw7GHgn{{Cvh@tgT!>`=!=>uL}cxtAFmm@_oo?N^|gvA?M&M!EEHe`m{Pn#xvN^X`OqQ-XImzeD>vxCyVQ*m2-6Z!NTatuLYc zm@bghlgzL<7CLG+2Z2Q8&Ck-Y-Blp!RF!2TIio~%)4PLN@N|w>YlJ#>6-7KBJx;cy z=YG7(%-n62#ZjwTpJmIYNF={=<5@b!HH%%(Cp>JtkywhUe4;oWaQ*#G{<91mQawfG zKmRQ2?PeXBA3|Bu!#<5G>tk^iAj>gaXrew#2x}V=tLv$JU>={FJifkv7GSWg!+oeOf0nLIhQ&0cp)48!_6FM!(omKLIBn%s-)F*~ zrK>4o8kT%fJ+K5zUHq=gWu_eJPGdjwsiA|!BjPYVgxj4v($%(pmf4Oez!;~qTUmo@ zwgXqo^?DDp!=%%fS(d3H*o~*Nr`tDY&9u~vm3ao+R~*7hTlra3nL{hrOP8l&bD2?= z-zTMIUeJ^i+nVT8%uxyR!PulGQ$E;;0(9Y+`Dba9B2AlL)OK2z2v0r>rI*2rv~LTP zr<-EZrg8kXKo*Tpd5sn8r^XgnovLx4>w6gJL|TyfEFpK60akU>8)=D(XjJi3jkFrG zFzP%`7&A9TA`F!-GBRsLYuX+bJEr77^3Zhz_#m|=Q?}V&bpiS)I zdz)M94w|=3&r@TIDW^3^p{uoH!3fn0-bBHSRU09BzH3Suj5b46ZjYNE!Las9wTG`3 zGC1C4-S&8)I+)DX{`Ro|4U#pvv_6EOZ&+x4(%x)5K_siQuNDi`Q{OC` z(~#)e4O(&f=9$V-5zIFGeuG)25Z~yU_I_Kyww?8m81akhb`i_5tfxF@^s;+1s)hq`a;I5RWo70 zws~B?x`SW62ItLlk8(?+D6c&=TBB5CHrM9nr&noXw#$7E^L&5xFugrk-P=iwRJ|A6hYFKU=do0${*zF~l zulgEIQtZ0iE^6I6Dx297?Zd3s)~q+I;#J=u!rLk5I?R&EW=!HN@M>iu#8d1Wr_a(H z)e*>!o0e6PYGD@iem?DOLx&vu`o0}#2yxK(qB-F^(mH?yC@*D>N2MXV!I-@aJ@*Mv`Fhg+;vBdbS@O8(ZII_p5^88Qxe`g1y4AY z#XYL_WtPZ-7uFKtao8<;y%_lWFCeyN7wI235V;b+b{!a4-xp_s-5s;c7$4%6Zin5jI@`0sE#G z7GFOUu>y4#kE}^fRL{*SVk>C*jaoiSy05;}3;bDjw$}z(ucxT#&`iPr98;jx@X( zkx0ANhqkZe4y>_G=P_7&2I0<|URiQAFf(g!R%Ka3)o1AAK53Mp6dHHO=mRrW!%Gm3`#^=$ z#?mcbEigZQ+7Z86G)_;?t1R?Tqw6 zXw33w85^ac74BWXYfdB3g;cJGXKZbJGA8k}_>`?eppp1k>@YqOFt0fccOz%R+tTsj z3H$I(evz1OHp0S~=CPjOmpLp-ElsGTjLIBVX5OnT)u*9i#)Ck{=6=eDbuSt%?A0%i zR!bwt*^=|+Sx2qAwA3y>3)NB)SY4q$|2DfHpuFl3z}53(j{X3XOcx zXN0znB;zNlp_Vxrt% zPh;1MR)yNTYl^gNNtoqEoT_OwdKwsgR~h-NbJH?a{$?ygMq~yo%>MI=3@Nj=Q@Ob6 zS%&Jh4%??jR?W5rA=yDs!q)dhqqDz8Nq^i{HI}4;UNSw&kkw`M^;Q+Xd~Zis0z= z+T7wzIFjSG(-87g10`NzLrH?eEDOxd6WrHR)TG=Zru^<(0-YP_T|wjV!o-)Cs$D!5 zP^a3cb3)hQJI64}gx!S2-Kz(*f|bi?$KAJl`DlVrvv|`>&xX|u%;$Q+NUv;NbPM~l zfU(AP7H$%h(&o!=De|8_gzdHzNZLDT3B{zr)%9O3FpOr^8j@2(giJyh$*f~a4pD>% zPaZF}xd~oGPrd5B-HSllyousgSFl#u=Vpv6JwlZ#vtFJh!=pjt56_N@2i50zmbN0x z0n`S$RP?1-tl$!t$>+}dm(LJ4jWzE&By+33LSg$d(3TRJwps=CVd zFv}uh5enm+KAqAd)y6UTeL8n)PfKok{!ZGik7{zFrP}$_O5jL9uRP4i-fb2v^JT_p zaJ^Gxc(dBn#UgFwVo&*QS_EUO)`>5W@+mB&qDLk!gknoLjEvlc)100+S=Rc&E)~Gip1!G!Yk7NcS`hx?bk$$wV^s^Hg1Aa&9xqI}vd4zkKTCUzg+>1I%w`k}%XdC+XV<_y(R*jq z_U!oB(D~yv#^R>j5Vy;#rn)&Aw0X63VVDjE)A;$MnX#u3Y5FV7X;z*E%FpK0FjaOT z5j$z~by=3p%++MF>g(xeAuY0U)Skh?cE1Bk;}$b|qnjU#wC>iE>}{`)`)Aos z&qx(}2$c{bwR#P&`lxawA~jpz7N~oG+VEkP+gIJaeKw+}DnIV&5nQfM7w2c`lESR4 zsAJ(VK(esYyy~8*s5C8t&(ER^6@x18!|XNL!LSayGb$a7T!R+X^P3-8mN9Nh9q}xL zPpD_e{vi}D_n~LR?M`|}Im{)S=VLl1qGg7hdpDXs8G5Ln!F()6sx!OB_lIZQQcuix ze^INK)*`&>)e0MUSX*&%wZgIKvZy~VPY62@URL?IhZHtq%xH1dBav1`bZY{>UPQV1 z1oY)kjVN(%jS!J_8h#tXu=X9sbth``YmdCFPx+v=rDUhEo~0vVlf43Uvlf^h1nq#?th3bDdc@glXA|^e~S-gsH7EB9a`QVreVl zTou?oHPS&Od}n-K=Ge9&HgfO2B@@Qnkej?-Em$w36WDo~k&5rkWPJZ^Sm{B<+Nur= zH&NNPXheALk5_}6V1YglbB~D@RGY7-*@7#DO8|a&rdmCwEBT(zsdIxs7-RZWO{tF3 zDHLn>jy}tp!n_@w&!@bC(96#5+jm(iJlhobi*l5CWh`qibNMF~9WZhH=BLt-Gr69? zsZp88tTKr@FDhA%VOiqN!>nvC1;K|r7M0VzRu-x6%Z!Mmbvbp_coup_k3wf2W^R-a zEG>CD*J4C$<;i(?w$m87_&hJqj?i?JW#;wtYiZ?pIA#5O;6@)*#6&%xn2pr)ZlCX( zn<(2Fahj^9A;5?ZtJPdzb+Dnj3f0uVs1aaPr?17Ig(*eN5xmL7RE(Rsw`4m!5~|pA z#q7&GB0t#)pZP_NNNm@BlrL)Cy4sS&53{DlD>PFoe^ZA|u3>iU$DOuoH6JE{`0`M% zsGYu96Q{E*tcAzAzv_%h*7WQYPBCUn7nJ7JnQvrGeF)bA38UFC z4$pciDvV)j<;Qe07YtuQRiCA3Bytda`fR1r+N|8>s!L|adW@wKUQ`tn)rwKBXK9P+ z>Y3e#2NfZSgu3Th+8hyGJ;X!UKE-uWu)aCequd3;3U9`AEVp{9QtIKuGsw!VkRG^R z?67OvP~LUQ@3vkq_lVq=d0V>pFnuqo%rh(GD0NR&S-6%_Y~T1WmqnGPYOMi&)yoQC zRJEn?%Uo6>J^E4YKMQPZ+M8nW;i(Ur@7J`N`nZ<}I~pFHw%@+j#iX}e_0MO*!!y$> z@7h#01PPRF#y3BDfH7?P%;1||S+>JUYmwcKMwZXv%s7BY;OS+nX@ z_cZuUul4qE_l%^KExMjQo}D{EgvWKTJjdK)D9h8?Wpkyf80FKnl!!AS2Hksi4&~%z zB!U{eQ_MSjRVka8hp;og(|T%fza1#=%xct9o~MS36`9kp?o-1D6vD1)?{8YlS6Ud5 zlw?0kCn9v`F-16FI-GYOuV@CFQ;xV(y<&DKP0E-& zHPX^qG~1kc7SAoDYXy2w)$~fjsV;lnY-H66W6hey^I@7UptRIBJ|995SrHq&*~m8c z4o@Gvo@Qs%<_dV;Z)z&L^j9!79s4p*WX=jWYft$c4Mz3I#rX4C(8^s|`dQX|#D6>X z{#&E^s+iSUwdLU{b2T_DCV=B!7K|EZarSgB({PN@6tvgD3i~F(mN|DF`~YvcMXK%h zX<-$&Y|QD(cDr2dUj)62PeWOx>D1@guU1C}rQdqspG8jV8G++o&5o#8SKz}un6L#F za{DHsHauc_!Uf}5iU56AD6czky>6XL+rB)AWmI>UHJ*=XND3gz?o<5&YzEd|7I&qV zB_g#g-BEo^0VGS)BO-TCQea{wu`tJ*XDGu5xU^nxe$ZLQ?s41K9SBHR2iqoY3(&NI z>&sAg_M!)AiWuS-HBoXxw^?4lFiH!BQ5u|vShrlXUXf6rK6KMz2jtR>muQBuMGW?9*<%b#V!$!{<3m0|L2O6zO3 zNkhir=}BfgR9~K#d9tw~wi5Ryp=TN?(Q7a%>!nDPJv}Z(2X)wZ$nt6S>wes-_H#ip9GwPe)Cp z>2wygkJmJ()CiZ3btls3xh@zq?PG-Ed!j}7Z2@Jz( zTm+9-$bHgKT|HMTjPTJH*7|CN#}?YEw)QZG90XaymF2euh%!}03FYEgL^(Cd?xh+p zPgOVED%~IVsLcp&pn;cJgIe1d=I+bfXwO);&b=XX5PNavUQ&f$l|W4(7(!av#J;9Y@*645&k+@xs|za(`EJLDW)+iP;=KERLxqe!HSBTx&mA;)7-U$R|~7K^4Q(S zRB7BWD=Lngjp|CuqP<66PivE^J1G$TSx`zN{-11)(-3B5LNeJ^#~of0S+XGOSFO?7@^u%eQ0i-9{baf(_M~mf_1z& zBi_}j&o@zAgYtSvvpk)t(`QX#`gY&_Gih~v)S&9>-z>g2L^iLGH-fB zWqOw5blxgYO;}eLPM@vb5`oIHy-8RghoYav&xaYI1-C@(%dFRPcf(~lrppQTvO*uczFwJO8c$J4eyedJTKm`0_?r;jY{krv8_eJs?u>1<4Jzulp+;Mr@8 z;MbkAG&tGDeNk=3%u@UE?y+ed*51%y)ty?h==IP5E7`ovQhqvO$0vRk7N=02`15HR zLL;nOh*w=a$7@SNhCj=q)aahPPoMZPuCz!c&gZk;o|)+XDPOnug<+wg6^!*6pGi>tL2lJiiC)~%mH_0 zsTP87Q|LiXtKzKPHHDr{+ng5n`ZkV^L}%1&d0*chZ8FCu>#jR`($&!gF9m-25m zkCpA=p(t-f2MsqZ-fN-CUL*I58p)9&HRL=W73nE5+<1AyqCA;hi8)?j7+;TN?TZTc zuf^6mb^jG5Bjf~wbF5!fRyv9vW__wkD$qCU8-(K?g{+{M2J*OnPeN%Ei#`p5R6wlY z_){ZPBa<@<`t#B58GAW9FOTp-IX~dPsEt~c;x>N>S4R(R61I_zDi+O*`?3R45#8!O|QHEVS(zE zrn#l$aW6D|$*}Clw6sK>i_ETiK1|!{a6|FcYI>S=?RGq$W|r8d1@=`Ra)qhACU2f4 zg}YL4mGJbbtt|6u4Otv7SYj;QoXY*F3Lo0CYf8>%36C&WYjjj3C7o#o1u+TIfW~Q-xhZecV>nrU_8%*%jV0NW<8Cw0gS~VG!<$C@@ z2$M~Tlf#D)ovK7<&$|+lyklc}=WQ-KHUW1J@KtZn()#N?Zlbs`?P%4{w@v+V@Jv+l zKFML5!Vo5$#?!f7B2SeS`{n6S5k#QH>oRxHq7pu|`}C5k!O`R9tktX|G>RMj>9FE{15YP0uOcn-w|L>HW65ml;LRQ--ZNnQEDduD#t6b8WUqf) zFpjwH3{}ZES?2pJEgkZ+i~Bp zarX*D&voasP-_yl0LDN$zl>8=yFC%BdLWMJme&GltH@Jz5hAI}famthgUo3c$nZB& zi}FeYQuF$%15MAO8Rl7NT)iAy!7oqirI?P`G2HI7l|^o%Sd4G#+6t*7cDsD|;gO}m zm~mz6k3}0iCz0;a{Azs`W*RuXH{oYl2S!=u=Yv30M|a&W%SWI$YDcDT!ewDiC&ILv zuR2H+Ai$FiNZr->WW53djez=4GxjtCEJ`-JvO};nVbS=Fey7M8I?zJ$)Q1 zZswCYd&)b?dxFzm_fD#vmE!e1-?_d!#~ZA$_{-cD_EBXnzjdAp$@}LsUx@9Quy?5w{a%iEei2JngvrHP=*8I-ij*N)S3P;yr zmL+2Fe=j>c_eM@6uj!;st8(}2#DP^%Nw$1AX@_2x?NySHgARj7|aFbJOng!%pAnwvDB~NysF%Nf846SY-Av zYAns_x|~(xW{ONaURj%IdZK>ZC;zQi2)a>1{-V%Tth5|Oe=JnW0PJA>ZCtW*w^S~d z$E%##lWnZt>vFkHaiz!@*0WR-7VZ@_$FypCFbz=UzFNiDEC=yrJWEGsyYS@9@v261 zqiQ{$VlXQGPmH1s$43pW3kVt zmL4IT;N7bWz0E?aAxZMK3G`O-G)(4;V$9|MHg>;-X)u(?q^bWV3QQ~Hq`A+F68iZB zTZWY z*rJp+(Qz|RIa|nsPM(GoFx4{EGQOzsiS*2=sOtr_1s^sS%D8FafSbixYD&H?Q&YOl zveZ~TpLJ__MJoAaZp#Vl2(#+T+y?bRdGt#Ce3sQ3JHYoax9wzOW7ct)Ws!+WR{Hv? zw@+8pSY+&-NS#$q^qN`RxzWj?tOoeJJeBE2cQy81D_cQjUKXXJt#%=d^^7o_(K+iCm=3vqYdnrULqS zshh6)xtq49p)9J?th9>5GgU+=thul6IvXb(PL0RUhho$ftYyB;9HhGtvfs6G^zT;7 z!Tdgb>S-pks~O-!s5Fb=k~-***SK($FlmfV=h@gVZ`o|VD1{ghLg#)H5#!fL=R+3tF!}mqG0i6V;ZGY)e( z5y9LB-aJ=C3TAR7;q!^~8h7*9ImIfS1Lc6*JUkgrQ;-0>Gofl$dPHa24-e>=&D@x} zNhl0a)|~9QSuH)^u`#RuMUm^(?D6J{YR{>}rt86{p#mA}3Yw%L6w$D_M-b>4gZgO$O_ClE5?9gX$9Qj!|RE3}luPK2;%PWeA4P zTrZGeXm2a4_*vkgoa2Z-ol$O8<{*FPm>y-Cv&ZsvM>&=|T^)r}0~4x~v$Emk*@i$? zI;W32b}hSDr5ZPfv`h!K7xnPa;6%g1BQFnKDKfk}xmSxZ`_bJjo70Es=qQf`>RBj? z7A%DC%fni9dyO{gRVQKS$!_bPPrI$ennFGw1*CiQu07>BLdIM}GH&WP;c)AOpgx2X z$V?AR%uSTE^sp)vbFS}g21B%5gz4*ho8X%VXPQ5s?W~PR@j5(R)uTk4ln56EMXY9F zEBk6SoE->M=DRL8;Xs>3&b~Ztfg_=|-z0QL%E3z&-nF2+mbuN!d7ILW+EpI7$0^p$ z9Cqi{zVo@Ks2s_xeACj?voY?O6W5)V_YP>yeJ5lu5=Hc`TKVxB_ugEnl(Iidd5r#| z>eU)=s=k74>sU;d(X_hq?4L!My+Wy{Pt~c}W$3Swr^X=7b4!X~?ra&kvyw~icd8H5 zlV)6TIqtHk6~?Gm)k8>WvE_99xKC$VMW#j8P0KW!x)6A0yv?2Nj`)(NZaptgtH}!s z1YZY76NNCd^o@skie6sBARp#!HR3O3$_qv#M}6+^8S(WtL@a zr;`~~U-i94xOHQ&UoBY*U&pqs_uDU7=z6^@%ID+0R&AN^bs#>bYqVx%z|-bqy4Fz& zMReHDXTqoRV)!zD_;+@@aNE5K7HG71s)U%zGKQA0v2op5w{%C0NsqidZdlmJOL-2V zdo8zRSCfyaN4r)-s#f0FvYu1zAMwq4dCG-#$1^g&-C3t*b4IJ7V#m}wJX8DK=69uD z@80&1D`UP{RolmHqBo-EWnN2mupEukS>jb>2@>r7JL->KSfW~M^)ysYHCpvXMK4c) z5E4rh^kW+1Dodr+jvvBUv!++4OM_3tP}4m*xsdl~Nps}@tBrYh(lUVc9N0dK*vt~U zth!oR-i$Dod7nO6FnE`7Dz5KI+nh3F<{X|J_ejj@-#UHtLT$^ozOSb#_H8vmtEZ1F z1iG9Id=tLPiDYrtB5$6{XPWMwL0G!ufNRtV^)SgBLqnv^Mz;{~&FEI1o`-GKpH5x!n|cu<)3PMfe-3qY3eW)JQY z&K1khdqOuN|9pDsUS&D}4l_un0B;d-+|ka`S10!|MP~+b-Sp#C9|u+vL#iE9$fC?< zAB5{E6TLB=W#n~-6^6=eujW-})mou8lKY}+sIom%QvcJ3a4{)4q}}fsS4g)zJk!`O z52`=W8BpLwF{(Co_>9LPWK-QTQOVisJG-Z)Dg^%C3opl{#ZzA^MJlnqwzdW)q(js$s*UIgp%6n<>5QnFsadEd$`FgdKCC6DX z@6)hbFPAo_LEf}=0T+wV9R4gJFukp>JzkScLCmaHt`GB+ zv}v|}W}T{ojv7x(jn>P<*~DhT94}9MC{i}H`yrGwH;}vY=6QxaX6xnEFVALVC#I_R zlwZRF-LPI>p0!rj?V~!lo~~({vE$5s8tRaNN3lEW-t|icR|qx&Hn&ZBI1`L^Zr-e} zSRrgQSRKz&i50qRjm!0P5ma6Y&*Whin}{$N#_Hi2mU=hKlq{cyDo>Bi)ui>yET-#p z=lF*iW|m!Kf#zSH&oTsi;9({1vbc}8T*{-xLY5dW&uFC?WtJtqy(~R3_*vH4eGqQn zp2CFIN#9`|)6e2d8^*eSTku(6+u@Vd-&Ic*mNBIg6MUH)ZH8I|M*Wh{wippI1f&?u zZNrex1$mfNVKBY)(ZByW%#&t9Yu1V9Q*P26l;vS|hC7%xhVLCT%-f<${M+sOeeP$e zKx}5ZwYK}SKvM>~s?@V=3vh7dIfprH7R?;ndECQU(H?~~s;97U0e0G2CaxC|wlbuz zdz=~(UAnhRDt|wptOm;6>G>>`8mLqno1YI1oixq-toBQ_P?IqlYme28eHP6{)EH}V zECMa@Qc3pb_V)%Z?DxXwhOPX8pcxB0{=)P9{GAjU0EZFlbU{sEVnkfAo&Af#N>KOQ z@0F|052Ad0>bvf!I+Vgz^suqXOjR(IdC48JfkjBs|iwmUtbknruCr+8H9p1akC27S(~-`#$$>wQXUmM zxcx%tp|XsM@@Jvhu(O$S8Y0Fx5Ku~w4jJK7gaviHO01fBB4~pt+plO&!-_R zsM_^i2Vp=E-b*LmtOCf~P!qG~W&`L{d2*Hi|PYgNC$ zI}jMR#h$tPe$&Do`ZvCqeEZd=7(qycKgC)oI;xAPyy?|5Y~*gHzq7X$ogKCwj6>K3 z43JT*I6Pf5jT&$MbZ*21dL>+b@A_eS-6g!WN9CPtO}*Z5Hetkk{kxeoTW?yX9;~g0u9jDI* zk_{RRd%V=Bs*U1q^z*6AQ6cp#pFUgJS?EgTdbJ9UnuQgAnF~2^XPU)r-1eGD!>+(n zW5;dz1^T`j+sW(+xmC==v%wzhtj~Umxj9k@;qB2s3ztAR3-vK|OY^9a8aew_m!&pU zy&%3Xs$5^GNeIS^Dv3yBCcVF@bE{HJ(4Z-KKJ8WOUSZBpAGc1=1lhrOQ7vU)Q5%C- zy%7Z(tKz!sHjMGFHG}$?x@V9U)<(UmEpV?Lfow~9e9%FD{W^id{$*4OIJve4ui4pkK>iEcl(Hhu8IGnYLl-JK^KGTR-p&qYU zQOlh+=eNtACNS;rguglb(3hSSC-QVoPb-~Z-0eB0V$Eu6G3z&D+VY$aF1_!{=otgS z8~yA3@?={izP~E?Va~E$+Y(0d`kuuYmZC)YFefHC<0SmfUQc$fr3)6~6w4{Sww-Mn zsV{R`6}b~my!nxZMQ0*em$~HZ8izvnUGcpn!zhZWQ9FIgzb$}^xW8VMu+tG4rm(B! z6Jc^Rfw*~A7Z{#VvHeu76q=M`k*ac0$##goyz2C++_Ay-dgJ!A%3v6V+BWN z3Bh9lFI4!B{&^N^{nlo6a^8vL;yqnuiyXep&7^HN0KTYYFDC5sxh}&jms`m1?}r&4 z<7x*o@FpDLk;AfTdtKIR0&Ivb=F3w;U!y_e)YSrp$ZQ33o`s)=5|N#G2+`PKco*s+ zgtogfCUd0I;TaZ~jBV~Ij}?K5s6gQIF!VBfv>ZLxQ>IysgoX>ymxtw;YS#fyJfAAJ zz^3ZY%Oi_RF>e(+UPL;2qpX$w@`%l@i0&u-S=wvOC%AF<;m#&1Qp%R)t2MO?>^BodDo|M?8m3h!Ox%d=Sx73#NaFES9pEib7>h%)a&qtO; z1A+)1uMRJ>sB)|MS+X314f^X&r<`CDv5r$-mPw#CN+2(D8M4JHE%!8Rc+cpm+02VV zxv@85)yRuNO-J;&j_o@WnrUeSJ9bWuUfb@5P&MwF(qaUL;0@yEgHqiwiT|svVQ#KG zXZx;k;~ABmNiuH^Ws$*)zWq*{@y}MpuhzhNHq~Y{d8foGz=N8yjyV=XkSq*ham=Q2Bdx(mhBbbKrvLuPQSrcOieOvpo1 zSNp1u*}7{mx^H^JhbeT;E{Sw`G`9MWsAM*PJ~moiR!YOx`^mWk?;8NAOSjsJ*A1> z&$1L)8FP7?k{e`xFr)5XEA)yU)oxYBtG>#+gh1g=3HgjH$Fxk? ziczq9-BDV)wYL!F^Ktddd=Qk|r$)&FkLq5$UQ~2!D~MY-7L}gM8VF$@i-O8~q{T?r z%hQ%*g`wv@Nsb!Z@^I^oynfY0nQKp4lko6N>{@rW_uT^oEWDQ8)LLD2_z>YtEc*08 zx;wBxus= z?rDPplm%U^z3$VeU|UhIepk=Ep0eqgDlBS0pUqm0B1$uJ2-{PoThBG*ciMcGvNoS} zoIbKZvlJX-{(Rax#-PEhQ?N8NbY< z2ell<)MGIWA2S^z^)wXg?(d*+RNN#;mSt%ezRuqnJ~oBSs;+q~#@0AR%fK(njow=p zsUzu|gz@02N=!6Qjd8e7=@ORtc2EEZP50V(`!zwO7%;Qngv%14r!l#G+$R&Eh~&oG z_bHR6CLU>cEW}1&3|Qo8I2CY_cQ@myF_lRVn=a{gm@7+%iZLec9w`Q9X`vo^zUdV< z=2)5g_D$vxma=Vs9lAU%z}`hOuUAXx!EDjDx>?o57Gdifll^CDbx~vnc*?JJ1{u~e zUFLDUTK)N~WtCOL&h}Mb&&-vwVlqEV1>|2_RX6h+t(Mt}RNVWf z*m6DfZfEZ?-O3It_sHtgS(ddGtG2|;!yNh!1?Kiu+f+fI`o*`(5c>;!J z2@gIs(z0OQ^Rd5oK(chue3otV^)#(g9Ctdj8ZU~5h;r&c+7C|}Q^zHW#kte?vlQi% zk)7W}$pT0FE`;Y7)z$j4r1!U{sp;x0oL{Z(@bZlnrf)LSyUWc7Y%SDf9{0*+ z$Hcxoo3)ABp6%;bxV6!^LVS~u;Xc!ajGj5=!=vl_rqUe3@M;CFishe=C}vNhRr9MJ z@r{PH5^Ic}rMilik=Cbt#8iq^IEt@UY*6jlfbVG-B_u6;JN#MD#oAHsy5E{*(6`}m zBkv9^qwU+S4`9x5j}A~fpMl7mglH*|<#fIBZ9&H57iRjG_nTQ+psG0=vp>srCxtSF z=jBoJP;f?8oF!d~Bh1WY|G1|Bnmg1!;&=&%&CW7ub-l<8Rj%p`?&*^%RKm;X+0!SH zF5=Y`qU(FI6u9sZ_E(*VZqswCJzgm|(kM~Eym`){0QY1S@_L#xNLsM0^3~FEMc7&g z~FS4;j8`D&p#3Sx%8 z`KfkxwuUV0&fct+py|@X?S6MGOGh}m);nLV;lkS!jXG6pvpb~)#ragNZ6&C5OXjHo z^W7@T4u8tSeQi-8_IIi$qG=v(y>aid6PaxlrRVbf)IctpP&+g%#}sAM6UKGpUHp#L!;OZ>tQ-f)==|G33;={x2>XqC8=H`&O;c%y=QlC$i2-u^SV@_=q!OP_P@^tZIB+q##WDkn0jH;fOXJ+=x3b0<( z_q3!|EB3ZP<27`4mFHtIZV96#o93x89+AjQGuEl9{hNqRP`mK6fF}Admo6W#$y#b& z%4K;zIkA=n_u5yzN^*n=0_J)#2!uq>0s3ZD4_KBcnr<*IGa*4oh(g_emQF6K)#~qhG)6>U^-sZ?kskTWBXMlQye8jCyGy;^Q*`o0t@JSA>B;-N zrOd2lD<8*x)yrb^$by!!pQ>eLqCfiUGvBPr(y50z)zu%bGU%=V65V3?sZmB@gJ(AO z-tT;tF(E3XIw0lC8eu7#VB=M9WCFsIT_0xo(6kWX#M`ej9eN>wQu566S$MbvIO~_$ zEh|^ThBLmNmK&f1(?Qe zX$$kNWZd~v&P8=)!ul80h=|?{%hz{r$!Xa+tb8nb8J@+^Dfkdh3HP_k-utt(w+7eq z%XK<$I$5wu?6+|h#;j!{gFJ*`V>K<*^txK%HXG%$;{JT1g%49);CdQ~829Z!&sC3# zhSG*d;ngZ&WgOPvWyZFt8g23OA!aOk@?-m9j&=n_EQ)jn&khmZ!-SEb`^L3VMoh#F=8@RV69N981Nr$m|etcY!F zoz7)S1LUY{b+b{{i`}SL*)NZ`PcoFb;^m2fao9re_N&qY>O}h{4|An>vFWafxPA%9 z$R|TcU%#sKYED_z+~?ROOP3LCVseuy)7lKTt6vAjvuU0PIX#~?Iz47$?li7ym51kK z3G1p7m)n0!(6X^De~%;N=Cd>kTCJj}98uVqjBJfBACnv!c( z_j#Sp6f^c$i@UeEOw+oBh3s)1B)qM2#;g1C5J0M43C-M$5gT6LAGy9ft+Y-Djd(uY zsIgIX;^v1Rb+q^9_Dur6b7qYj5xlA6Vw5AzH|J;3gfU8MpM7cwI}0t(bRPGP5Srae z*j%lSttxhdiHqu@MKW9Mx%U^Nvr&f%nE`9-oXI_wcCe z&NsP0Rzwv~jVXGmgSCa%_o-b0Kz3%m%phwS5uW{`K+#ZsMBTfs8hXYeo%QEK3aeP! z8c$V?B_rS(7tQ@Q&ohSIWiv1j;jk#8Biwkk)|_UubkyUeD*?v0hnAQ5bD3~#*W#vS z-IdXEQ+nKNZ20W9p2PZTZ79*FGt2Wu#loF~asm4gevOK>-mHFjwn04){jA4phlE8` zyTxJNbzAGDw*tKQ^S?_wf8#6>B1MyXdS%hVod1yKn1wAUxMrQId!=ht?UFCi6 z(PUX;c)DoaRpztM#fxrpr#dVf;pS#B`)wSoQbnHA-C4na#`>~H`L4QjiBX5Yv*J?> z#wupkHYMlt+5DoqvO({kdIXp99a_yU|ukUcP?wsj1^f%A4U_!;jfjnMrdOAxr zeqJqigw1+?rCuIa-tMxjy3a-7F_L&USe#Q;^oZ1Vtss1Oyo%yE+Pr-I@zV7GK@zI7X^Ro=1$!M?YQ_Q8$1}t;_ zs&7m~gMzkvnOCoS!@}(Q|Mh^d@S%+ai$*2A#l!2WYj&e21L<-1tB8m)v{(>% zlMs;wWpE7MtjYpIRe@dKE<-Zp_juNer$(fE?rI9c@@I)4OF34)pUz6mag<8do!H7V zWeh6|$BU{-&s>cW?>+$mo2p$Y8GO~b-r4ANzTJublxn51y|WJLOt&VlX9739p?iS# z4wThit#m6LQ5**QR88+x&y?2lj@ zx=qmws-GI^_BlNA;5bpc{(73tNRg%W%uPb}6oNZ7@n$21Vv&)Rcp9d_g#|)OK984z zT7IJ7`|>E?q=aB<>kspWP3D5ey4fh#E-!0yBQ8%xW?A|BD_R2 zjP>+c1-VgAyKXXJ%dujLM_+ZtSYupgglc}6Wl?UZN1IP)q(u1Av_~FyWTEvqg{BW7 zvNeI|U61(rbQ3PRw)3i27Mq-`c>O}D3z0U%!eIt{T>=id^$=pr3&z>X z@n=EPxS4QXX8Mf9gqvQt?$9?Uy2_b-Gtbx(jY8YLYYNL?UMtN!Z&q3K=xFar9#cXA zXDpw#=Tz;AWJ8Ju9t&BjSXMCZA^akSvr#+!Eb{L`8QSYK zl$P`f+aUVk;mnkIX0lF=9xuz-F|Yftv(O9wTEU_7CSjbl)`2n1VIJ=pM3)0~dDL;2 zKJ8r=hi5Y7kuWKQ<24E8%$}GZcd1pxiu&*uRj?17%-+Xh;LhA`pU#(uuE3qK1Rown zTRLGfTz5wOgdj%5{xVZ3vJsJW|GghZljN=(YJWbay={}>xv?+vsxb~Pw%w=1Sc{y1 zhnYRa)*V4Pf$Yn(@?W=JdCjp{=f=#6$iAuD$`%wPI{Gx!d{4FaO6NYNi*&1IRodge zT!eU+25N3Eq>OEn1IN3o+(|?ky4~MZZ*^Qr##ylAA>0nP2Ge$r>Fy?@WVAXTn%Tl^ z^evP+Nn|Oy+gc0jH&L{pFU#CG^D(8Rd$?6iaz7TbD4+z|hIem6tBsCjb^_nD&>#Y) z?!dM`Ub09m!$`+G#b}*D1k;0Kfl?KMOiS` zlUc9&v_vDAtn0FT)F01LcXD3lRi(0$s5V#Kt=UzzD~hLv+g8LzcIMr$(!JZ*ZkE$u zmt~pp%IbFH>EnS`hVrehmnYQ+3)^w|f69AVhyFrB#j$YMSV6UI@4k+Xz>N7O{oYqn zmT@tS+U-{z=E6v6*$;qjZ#5%aa{9 zb+Sxkk>1IlWfUi_9LK9pFP)hz3!m#?v}Y*;(=AS)7&lLLDa)KbvE#us*T(QLe`V38 zVvD`mNFPR~l}U`loUvrgl%n!QWhTh#o_zXbmhi~a2RO`GF{I@R&m11PSk>BeM!h^J zs#17#*D0T9Umx|R`>sSx=y|~9usFq%?mKJd0lv%(wcNO?f)8`MF#?9pK7F!-=*X1u z$9=|YGvvrReR7Ac_K+HgQ=@!M4r3X!hp@t+uL?cL%Up7rfa#jSzC2ZATU3wM;8{Qw z>uLDzAuKd84z;@X`OpGEX87{eB7CYM#&GXASPEivX0h|ssBxP$RCK))sZ=FI)G7y$ z#Y~EbHf1ILH<`6A5qGPAzFxqyHglV~Zw?V{DRT!3#}w&SLEA*|XW8n8xm4<_g))-P zW%w_us`V$(DU4rrlp<=1+{LK@I58GB6vXp^;&aQ~kk@6smA3`xw%tmDtLjB{ z>zQz}htFp`$&6fpFVCQqrPgidl!wl<9i3Sl{dC55R;C6qEv^@|UTYmKwQ;|rC*5j1 zsDi`OkUov{XeM~P7&!}<2{S)SZ$MDIs$W#0l)J#HI?OC35Xo&bUYA*oh@I$&dv8V7 zSgy0+GJV{MiYas;8`lfcH_9o|CV!R2n#LfKIft>^83s|wDht!Eg*qD#neq}dCIZtPA%c} zp6~*&r`UvbLOR9U7IGh5@C+AxeiW7Sm?RizG<24S0CY#3(IVLqD=4`Vk{JyX@wXF5@9nV0N%b&0-eapI{lW1hg&DF2HZ zp9C~Pp82W|zwsG^^nPlrTv}tM%zaU7kv6RG@HZ`69UM|*iHq9Wso?fj)iGU|N#}6o zo9p{xEYaOrdA}>+vIq2uvW?SuJK@7x!1h&da&s+P`hR)aEMi@xC?y60O@h<6|mIl2T%z>|f@#vO(`|6a9REu7nqQ=EI}#Du-pwPJi8LYo&@!rKx$A zp+%zP<9O9aS*=DPb=S&vqb8RE7?N83l4UvBB-p$>?iOrJ^$x$jw|i)_JU{zwoGhgX z?JYawQ@%aQ6qu4V;`H%A%~GQ%rM_Oshurn-tiIi8PgiF17{NLXJykUf+|GTOE6gjg z(_7D{N_%T&oBY*6TEXcYzcZ>GBu5t^&f?VYMhlV$&GYfH{{@~(01 zyHhNal$x#2CyZH(_E@`jE**|$M-)Sd&c|7m8C`?8E=N?P5J%n|Ch zyM-0!MP>D-+eCNYY(y@&`m2BI`V}==WUIBYI-LV5O=zGRukV2|GASXY+99Nz9i3@@ z?`}GzSt--!_QNw?LDeqjKFrg!?dG)QO=iq=*f=1Vulj}sY96b4MFm7 z#b0&8a=Sev_^P*icf?c`U#-SCJ$uo0I%jJzfa);+W$t05$fE6aIj2>-oXFUhdDT#} zDb(_&H&>6eax2KcTH9)ZSCsj^r|!xnyq!7G$D*n-O4(Nvb$AK|z-C#>{_!eS+mKqJe^_H21uRQy=@Yd zvKp&|5PY>@Ixi!ISjkQegsBG=UFCRrgf*!H+xy2tKGQK>GTeWUB*bEd5Ru$GUdSAH zvugkFz*8ETHoo6UD{uisc_;ftkxGEsLg#fEY!B8#RPLQ-qf5m@cCUVzn@Ld#bM%Ya zC{9PEW!@Y@xY!Je>pos8QkxrDGp7$t6Q48TUU40yDTC!MGw(CumW8HjYjU~F^zm8W zbep+JkVQT&)eZ0LWx?YsWuYDWlqZ;gG@L*m3o>lWCuReu2D^yVz*1xmGaFfKsZrJs z^GHy5rFXnZ;0kI~)5D(5Z6v36RI@Knn_5{@-5or|+KsiSuJAnW9cf0}Y~q(kmK^sA zWxF}-5aN~`HpI&u%LyyJVt04Zod~7rh9>Wrb}DI@+*$|pr$!ef!-mo|UUj704WQTC zIK|g!nyZ0#W{P5$HQ-`=YINIJTJ)H`6S6mmq|`4V`)Vm|`7ox8xTp!AfZ|y8YU!y% zPckfdJ(Y#Ka8uN)K0!uCIC|OfUSL$AC)glJZe zro*dlo(H`Kq#DM0+_CB9yB=~n4e6{%6${_Tz3bCFc2W<{XP|lcHUq!?ngQK|SX#c! z(?M}>Yw{t~$!4mDfWNavJ&&)t9Q$!!Gf-_zXFTrf<^*j^ai_+*fQ7lw_`7PeJ(YM`8M2%%hfIT%dJ6+vgqaQDGw}>%)9Cs(&+v71|h~0j*HcEdi9eih$Kzt$Q z8T(GrUAe#!G{5N`BiE~-rm2K@$ubtvC~x0yyT>}rOwEf5{4Cv(VxWzSuey9TkeRa9 ze2VEja`nX+9gQX1@4n2S-fXjKy&-+ zpe$ioWoyxYQP2prmFVrm1FXT8F}@Eo#*98RqW&yiLz>h1q6pWk71OwxAMf(n>`DE2 zij8F&dfg`9lQN_>Qd0%|e12!RREo@HJ^l6J! zP}Ur;jHa1qqCH=pWW%$|bVlE_WJPxiRfgk5RaUM$%@LD znY|q>i>YiWQW57(`r;yIl^pTRPQ>>s#rfC^^j4cF)&`gYQEzIvqpdC2CS@wz!FiHS%urI zJ$8e~3ogn#ogDV_ajVc1-_E|w@@c0f9sTq{@Eb3uZ}#bon9BGx%Gpx`8Id7w*~6O_ zRE?2P`F|FsEZp?DPoD+VUJ+C{=FyA(m zT5UF zYuUrM-Lj0?lyMw48$IEOwDDw}Vq<9urpM^dcW#V_MJlykVJ36E zeoaURGo8|zb^TJaG>A1u1P=2+c{AKv&Zmz?yj*Z*BJZAdR0mbcyw!NsJ0rIdw0hl9 z*E1uE8(GI|)~o`RUxAl-P3jdhN3(XkHfwynJ>#9&3ZfQ)Yq5Qp*GCyM%|<8X7qz~? zRAGy6zcyOEF&E#A-!>GI`nqiyz1zhns$Et4l_9&vzy+1{aW@^nN6X72ssV;==tz8+&1Zw zWe$5+*d2}Gz->G5@+_n)#3OjTBw+=jQQVr3*P7F3ql{7csrp$ES*D7+Uw32~DU_4^ zvJ0~;n{ui4NWQ3`XJ&PofSgZ8^>m@>{b63K13M{%{1D2b#2%jEJ3k+2EJ5_<{w%xZ z%?#vmUu*Z6T2>C8PkRerdp7O_SQ}G6v&as98@HxEG>jRwoQH6g(?Y|Oarg7`NTRB~ z7oHmam7bY(?ta_7Ze>PHhk||L3O~yrq<$N@r?cA#iBXEo-S@65bibz$2mEne?Y>Koo2f;+(l-fJ40mXF zS@CMsRM7=M&~GveiD~L{!`|W_HeUe#`M%z=B$q0*3Nl4Os>lEt}!A!l7%Qb7=|+^Y;F?PEv%z$ znR{xiSNaU19Qax28=c9(f6@qW@BRvxf`sA(`VB+wj(pKuX-7} zXPTU!PZhJ}*or&lMcQM^Hgx13cO4tT(xLSHMYYK#tEcB(EbucA=?K-6VXNgowsC<4` z&(G3WQAuL(qPWzadSrGBk9^w3VIjZxPIa1fRZ2sf;7C=P&E%{IbmH5lvoO|$xsor> zu0|+($c(di7RitS6^GE1X*5r`^|Qdbqm;h*eVR&hxDsz>n7;n=&yv*v=D}&rUy!hXU0RIEgS&4;IRHKk_hHP^4` zWs+I0M=x`4Z$=NgTKlEy6J6m|xq9$%|1@V8N4>|3(kVCeUf=m~-!c>p0Q;(^wWEDk zh4OM^PoMM*hMsyhZ+g=)w7^)!>w88_hwC|g zUQ~eFPG{`vm$Dd@#>V!0UqH)PWEO17_PEQ^mfB4%K|B`O16xZg%j2G@1iccdYfjZH zY$ zS!N9VkcwY-aygR96x4Zm%Ft8l9=-RJFY8%E&Ia~)l?#ux13CSCe8UP841e2Q@#VGk zMC{9)MmMiqs>D~lQm-PsX6DUvWmb(_sp1b07E0Wsp76R{3>}Xn;j{OYFP41Jh2HPe zCt9(;yzcvDx>|Zw3OX1yr*kzlLM|}L@61$GcV`Vt^T^wj8X1^VInwd+XePaOhvVP< z7!966)WdKs^yj0}O+7B*n#+Tr$Ojcgym-Ha!!;$rnW@QRUK|r#yC% zmgc!C@YSMu?3ypLziZQ1C&OY{Q0ALDrUq$4o)YmC(~DhlY3cLu5bTX49rM(nsLh~J zv$!s^tJE=fncp086AP~O#J*ZfYBJNX(-+m2a4$odfPR?UR3~jV%ID{UF!S26h?|x+ zWanBIS(mwumS`WVs?(<(m>OGW@mZplTgae27M-6*Wb|g8@?F%i;sK-m5LP1~_94`# zPk*Y9lC|%5cOg%#buzN``1;i>A+9V-&UL5TY{T0!Sg)3fnY`NF_*iu3N-^zo^VOPO zUoRSn7qyw5wVRRi^w~-0bjYjkj2d(IbVjWA>5trbmCxxICXS(e#;^In3isu%}ZK z^6~_ta|RYuhi8JM$>waFs$aM%NtfHZ5)HeyN(Df^TJ43^9}CQ>F|DcyP}F{z$LW@} ziQH3TCv?I4ivI7-&Sr!4w%eF zAD+!BgT$&9)o%{BY#U0;(JRj~L{EbRUlhV)GT9??=Yt?QCMo#c!KykMHL^|T9>OIU zt$;{-SF3Gf5Mg4qH{mPtKBzR$eo<>uH8!|{akWHa!IobB%d@2nzSR?b{aWpC8p68$ zy5knZE)Hu7UoE!`eXpcOuh2sX}pufZ7M6hWCOqXkp)Wmc_`0^ zS(dg^sACwf*6dWLiwyEZ=x*SusTHkbQ@mVX1U9Fp>Y`jpdd)IzzV~r-ubhdXAVhq# zA&Z>pKv9!+c?uEcn!Vypf_q^n(uCaVMWH&vHAd?4F?G7xwAmKxSa@6Zpp1xpm>acY zpaJwx7Hm8_xp)INtylL?;iuKNJ6u-^&a3KOlsU`Wx zD||g0lkpkP5h|VsiU)K6 zg?));pAR$5JQ_ZC_wGS_fCXyx_wY1}(?W>lcanITSIR#DbDuNG>%Ez@0(K0K)yb3!QjyA)l-f_zzFH zN6N@qzR9d`q{SM+w}T}%%Js!@zLVCamCweOx8pPv^=x=sK@cu;hb6;>Q1ke+G_(;p z(S4Ip-L8Oy>cuHmJvr+P^|4RY8ndCNt*~A%1U}l-kVtu7<{72gE)}bv&xYFGh>Uy) zx3g@UyT2${6=vMaYmOJ(rrbRSymxkv@A0SERy=*+*^$)KvN{%sh*^snIA5MfV}-9rEFU zGjm5g>zz?RXtpaSGT*ew(l!==9B&T6G^O-vwe*w+=`N3{(Y_u+w)UoXJm<%qg`Ootq}Ei?aNL=&EJ2~~ygaGNbWYn4 zr#wNW9d;G!`Lvm`=WfK@B;yEG!cFs8mDpg!yIxE~6h3Rmx0f%fY{E*3yzjFn-|`IQLb~BaAvGIbnL*yY#Im7R z3E6Oc--Z&giHtg4--c}acnILpQ>TjmF7z?kB>!|6SiL6 zRo{QL$glwPd^4=>ObAoHEy;%7!z>Hq<6juNPa(oYqJm4r?yHsU&Q@1f7$yPES&OZZgIY+9r4dKzKyT}LJd zhex2Bn-s*^>qR&U%TC4f^2oBi2s0aAcOuyC++7xLq9Sze3ChO*SjKD7HQp~zZbV3< zfXpA$s1m%iW%iwHdRhI&R%FK0Iofh!2UZ=gdb`{!GiKws$3$AtK3@H5t(yq#>XrWX zJz~9lcdHTm?S(Aq368l3ULF;mRGQlDo1ZjHsnY-@y6P1%wV9;r^7Cb`;2M`EzH?Jo>FZ!w%lrCX z<$9KGQM<=omKis~W8TyigRLtt+I?Ogy;|gsMs|)@5d^}zEb=;7>{wWs3hYDJ`pT(d zc^uPP_X(Ei;O2F(wkjK}R>i9Y`yQhW-gkWu=%Kfch49365Ju0z1iD`@;P^jph}Kd5bq9lXuV|0v>4QzCN@r~C%e-80*T2rb%-c2VMx+XSd1xj*loY9< ze-^-XMs05MxG^9eYK9J7Zo9{qjX5VsKn|D z%0=UGXIW1;(@>8WYqDYPSeuszD$nSR;p;omOyw<9+~<%%3JJ!ds_zb;`F;L=TOIKOf1d(`dQf zho{R_*Q|`2*PSkJElPP+)ZyvMw2H_;&C6W!!g916KMRJ~2!}Py|&mCmCLhClEO{z>)<$oo9UQ*Ovgo0rB`t7 z{xHV3gt09xaMdS1NwW~9ieKgl?^)M1YZ0f$WHp1DvogF|iJn0SP|wR#)?O1~%)B#U zimg;~`D$KfC@)fJF>^f~nw2;KZhO5LW`-lw^nTawVO5SRKltNCB+xqO8Fz;k(`{QG zr6G@(r@Nz8fZ%utr+OmGMy^+V%{JEPhT>sf^Tk-Dqvp7;!80~REAkhGP72CSyld`; z)3mLs+@&^PpsG7tIMLS;21OVrfyTYIbF)sr~D$= zrR`7JJ|8e9Carq+)nWy#09Mycl)%|+w9?{Df-I$1TT179zWv}wIQ~@j?JM;M{wNbtm zW!(-!`0wb1#ukL*>I7G~*)TIF8t%_F_W zQC0EyOo@h+QSdtxpc0zurRw&4R0bO1nqhr>luS&SE8MSxT+ebJ04lbV08LQ~z~OV} zGcA1f(PBAI4K4M8RE;N2d0L{(IAfSP&RQ{CP5}x#bUHM`52Q#dk4^UI-5l0NV``0)n(@4oI-AH+@~JQt}hv} z)Or5EV4*@VIP$76xbc`^Cn_IjTB-C zTJyYb?|=+k(`b}CApsR?m5{WWhogZ^mGJ3TJK*J+UOX%E>H-SNGJ?G96r;sGtJ=%_ zDuqj<)hEQE^YR~NDcqLCQnHC$5Z*9EWF3tCJu zWT`wFS5;cd01R{9$+mQ6(%3XXTnAmF)YGfP-_$uO+tf(9-qblu7$#=}1y`wOv}#Ga z$6OT*)(VI#a&Dh`X|*Wd3}JQ9zIOXMu_PbavfeZV{T=NQG40*-OiCy2m=CU!}p?Jv`x{N~>YGsvEqe z%pY=inObUCJPo6i1{Zim-fYB_Sx_X_k*7~g3pWP3Q|nba9fYMo>hH8kv4%PKR-g|j zB~(*-D(Y35X2XAwB{J8+gqX55Gkq4C>Dkm8onOcf#{={u8mV^K{M}VF@`< z%yG`bu*68Wesh?WOcRhs;d+t1|8T&lARZr%ibS@g+E>@WJVVS%=VfO>i54>hE>{V7 z8d$U_^7cDL&5#Mr^0-`OnHj80vgi45Wt6)6c-?;I__sLYwDkTr6{wJw;1Ma^U#?VF zL6`C%d)e74m!vp7`EUwZ?J%j1>wC3`il$jsy{Hy7&6uvb|4xKzxJ{a5#GAUc@SglK z=a5@gpf+@~pq;T+F11N%M_*m7#U`@=GVsgQW<|nV45hp%gLx%Cz)kP3MrfvXiS1Cm zv$w$#btGa~{6#USBdJPMT)*07IBz}eYA=@qW*(A}cIQuf7aEoZ^ot5}E4Ory{IjG6 z{TTK>WjcXy>!ypp+RGv)i&puwWT{V;S>1P9^n`TRB=>1t-$$$yisV-9V>rT=4jVJ( zeJ9D7lxSIY3~uj?*@(9Q9ez_cP)RlGfxTI!Mb!-yhdo?<22iO?QTY8e9)od?fk*k| zL-tm4dPekpKg5I$It6Ltr`SYRx(L}wJkA-(=}KfHPO-^OrK8gF&gUtFBcxjTK6i*9 zgsCbRY}KH}`A~tZ&do(jDUyfOl=oKZqLKrt@$%Z~rG?5@SGY00k0 z?rhL9ND)_#=bgqb-J}~aqj|p<&@ur&F%x<=Trg2ng!munYBn59=_ z#MMQ5K$v|&xTPNsoTZ98$l+8~aHQ0_r21pXrbxqUH0ur^wj-)JFi*oNGwh6UTwWCf<-uo7uRI@<5);XtXIx#T2o}Xi zkK2Q8no1MjM*DCK(2dI~wTI)BOB0&p{wyKcQ!VAVzr2xaOsVwnG7qPuBDyt8af(^7 zsL5K9!qPR%6d4#xB-;K-C5_zRwLWw8U4-;6hEj`HQ9c=s7_H2ZFkAj z2c0_7mA2Jf6~jij^W6X2gDyfwS&c9|92XS@GF9?rr-N5#1@U@69h?@DWq`Z%_1(42 zNn3R0?IzbjX^M!;n|WG_wU0NXugh+3saa!bZxY-R-kzirdA)GRG*uVM8aFKtuG_GR zh&QXw5QN&4RlO*m@?bkSdtVhHJ*wZ_sT^nniChEJU5SXSSBFBck|EEDJ{$#q<>K`akMZv-`Nt> zZ)Oarx$k2hDP9$dkn*dGkd`v-WzjbYQOHhJg=sv7Go6_w1?%g3ib}SoD_eW}G}VWZ z)!@IUPZ}F6W?-iGxs%y0>f&6gn}i&<$pFQ*zJ4W9TE%Gbr|MZot2*NC_heF;{S48x z<5SGTK}ke;98O7#iThB~yedk~OQ=bA%w;blo6PEx>d#`@>Kq>JU$IGmqyCS zJWCi_wa8uGuIzwdwRYlsJ|K*Ngz}x?onfAVP?5RrbXkvzMhT~OIa3xJ@JMFdJF&aF z+zqbL{*W1BrkPz~r+iOB0t_6*RXP&l9o{1RP*~(qi&RjJ5PLp41C@v>;E=~9O1;LC zffwbR+-9sc{AP7Xg9MEXDo-&chj*ur&71HU)oGJ-A77skVRC+=Z8v%+oR*wWQ_qUt z>>(;98)10aX^CK!R`9sm*HWc0cv49+q$N$z6_$1#q@~Owm};p$pVq9YQNb~!PxH~C z-gWzwqF9Mq@tr^yWf3hS1?F1C=tD_Ix*=AtE*Q1bRejHG z)evVGshELYmn#$^TsE)Ro`$rAIrBwR^7Co7hjmS9JRgA93Ry{3mwq*DpgB5 zB?U0}o)XMtX`;=yxsyK><>p||M0@vXXh@oc7sBVdqa-&&3YfXSS9Y)q-(R(D2%+3oX*IDP=kFS;{pr zZo?6NQ6o9(G1`5-(2f`?Q(c(HkiAPCOC;xRqfB5KY}r)y`Itfw06EjlgbPNc9vWKuv>;PkN+ zgn=Ro=IXK%5wmpK>~XGARnth;eDh<&%%kiKSj$!lH5(PScTZ-iCnAp_tgN~# z!o6=209`^9Rojmb;6W5PYF?#qaZpruM_*m=q_Dy2Mf@1Tx0%X44~vJKnLSK6F&}ca z6f_4(p2xWYBW(%c-B}vdUJ}vXk8`_cw4yxy^l_O=bJL*Xso`ohD#<41ecuSz(M(m# z?0!+Ep~bL4&FvI7)5(r*30#-myu(BqQ8+a`iXS+R7*AYXUN%BWrLywjw6*x8hW=%5 zj=ZF2irZD;<66SLhuK38(P3jEJavv?s99s!5afL>M<{Y;q^A6V!?L1! zj6rXn1L2}c0n|Sn3M67)n7+?+KZaYT^*Gb{=^UM6P_X*E@BBx3)oFV?&BoNYl56@)&;Xqk-iVpHGLPQne98OCU zTH4LjZVovjUS93l^5&-jnQ6isb=|t!)l^X&eV-TQK_fDnBu^g##FRM|u$R4^G?Ile zeV_7Ofj@6H#tv6CQ6D>;y&%L$z?KPEA_0LqzjMjhO(f3*|5S zz>^QDgugBi%YrpQs_o9q*(CHa_xSXg9I)lAocrlGPlb34h6=pw!}F4wt6^?0r-)e( z%wWh>HJ2C2P_q@QdKkcM@V5rbDTT1Kl#H`8YoOBohbX)YvqJ}Suud1)8s z>QbrjAWTrnoz+yPVWZuJ#Xld@riGQ7#KSRgwv@Z4qpngV`Bpbqt9}-b%uwnKxelg! zjIk8gsGE6OrkezW*>iiE8k02vchvn2EtO4g4HYf^vubP)T8TpPy|bFyRuZmeQTZ5l zN~V#I*IZpDQjQQ44?BHK+FHCLfjU)93z1?ZH4n#3*&v%7gFhS#)}zRV*zO%>VaK!0 zVKbklwp6JZ~UTms4SS>=V@9wtfZ7x^{b*1d@K#s zc)6D7{&9m`yuu%bZCOpm^JjNL?3lA@AVJ6yEX!i`ujD$vs92|>K52$W?p3i&LlLDHkyeJ5Me!2}r=g+B|xQ#(7H z+_wtSB7rKHRh=4WtqjTpNIX8BNgO}k$<$&Yamr(+1v+G`eiP*~C83_>bEj6i zYNBBypz~&T<#>yeFz-%zcb#ICIrNKS3Xf?MpF8=}L#_9n z#h76-+n1$Xu2APAQiyXMLOnVRJ-Es%5F)6DVs;z%N~_wG0uJAr(vdwq_pI4$L@^fswt^fuz5ZO@r0ZF^rI+=7OwzRit1zcp{zgvM2MH%S_@!&e`QGM}4)INX1l! z*QZZGO(8DjZ!cG6k}eA|;MLxi?e5l7{Vb!N8DZf*FZ&?ctvn{?)ip>N(WDCTSqLOd z?^S(Ov|3q2@q=*Q=W?4CO5G`;of>VfBF3^x@^UrOy2P?DZw@=UV9?f%S81o0G;0mS z+fCgXJz*@Aw(SMml!6|zs#iN315IQ3o^KLHLao7SP2Sl;qB&ZeRHEJaGs^6t*)uiA za11M1OL3<@AF_=R_sG1zXXYTLi)P;B?WPIQO2943PBGFoGf0=G-6TvpBi)?MkC!Wl zTxQIz=2^Ua}A zLmw@UwK$^ufH*4XaQ65vy0W%|xfX-U2|ws1R$8?o{7wtc5~G5c*D}LRzII2h8L36on268>^~^Qz=Sp zFT*^X8f}U^;WnoRSgClk@ff>a&=OwNj>PS+0(YE+$)sQ|%FTxQRr8-Zo!zoZ3~Y|x z$yRRVW!-mL3?uJv|5d@-2Xv`_^;BifJz|ha)6I!~XVEu4H zSh;GWA|9V;)-ywzc+=u3qCwW2$NToa^jdW|7v*1F#ilTEoA&FD7sAAZ8;96eMT>e2 zBO?9g(3#3qAY_4;ozrLDf~5V<1Rtshp{nwSOmZn*!H*fceuV(W8DdNP?c9(`H$@IK zPaj&^(!;oM<9ZPUH6={t;P`|Ms--)u?D;@SH84ug(=Y(%4;gF3Lq=90Kzdz|k3+j$ zOD11WBUDGcMj8BY5*dn$34N+Y35R)9T<7(ImZ~g1PTlW%73CEzlxP^csz$eyZV)Wv zsz@P1s=J};G)&R*CTyF(+S6oQdPc+QI42;;#Dp;CBByIqLM_mBm8N^=a9y4D=R+98 z7~qd#vKe9SH9C0NQ^LciM;+JY%n(&33n_od$rR?*&g&_kGtw?ONV~s^RGC?;m}*k8 z&0a`HR8?E}A(tz;WC4czuai|?EUY_W=67yXgsGOLX}>d}B4biAK`l?iiW*mGC|zDu zmIQ}4BISL8RF+N~zpPNS<6ITpUgLrKkSnz!G;8K{nQY-{>85kv*=U#{KQA%dcZsT& zX*GAUcvW!gWLS+9S>1`Wi6O#s1k<;dn~zn54x*o`v~-&0&>1fZQz71gnl~FA${&O& zU{`xbN=9>iSj*~65R}k}nY!uiM0i%ZdHF+5LOM7I#mZh(v*pC<)HfSlHfds(WNQ}J?j0~$q&_CC#f(nU-HNdYd`6pZN_X?=V~s8xF|u3dLVf-)mD z*wvfNkueXAcG7wlAo!qYv$%c1`HO5$L1g&N*myduk_jwN=LsEEW!upUA>thuy z25E0ANX}N;f`)UpdqQK?poJ8}%_1dsH#IMw!)!>*^Wi!j8KUt;(VLDF<9dGyY)S1< z_QE`UXM+|SPPAJ}=c_B5!Ipo&|CsswM>CE}1(y(?Cr zuKRA>YCc5jEvt7DT3w3tv>almn1+mm!9DGETx(he*fm4XW!EgVHVxQ3&RP*uRms49 zJ`LrADpj6SRcFiuI_-|rkWZX%twcL^Hrn=~RMJtOkMej@6PfWlf7(pDQ-ir;j-}AwXH~S6K*W1qT|=Wt5Wc=Dcw!2vM3mnrey?6Rm1IzT$h4HRM~R77 z7c^@k-EB?F5SFGcA%NM<4Qe#S#=M_>Y;~r+KG`$)sncyfc&cK=#%0<}hPKeOyZL>S8&Q zt!`?CQ=S2#4Vh4zXBiSKVDseLm*l#h2ktW?AYCG^E3i4~a&Y@d?%U`9%xwxc^vQJ!IGRVpMqci*kfS zI~C0P?Cy#d7=&i`+h3I^jgky#-_%vQIB}X(^Wh}@bDNqSFMFmH!M0oeqRPv}WkU6< ztEvQHsU`h#b(SF_#PXd0%{!7b32?Ah!&VZ}DY341`n6`8__SNSz0+nMh!JVrcjIoC zEh-IJudXI#7=>0r-SkpRo{ym!WPOTtn%2r;LWwRr%W~MTJVHK;Hvn}`^gH=Ekm>Lc zl*Q@OokOT;8#216F>z-BZuMrh*>x0*27WJiK2a@E#Y_)pB(&4DLNyL~m{pV>9e5`a zEtS!d&ZM_5Mn^dZOrHG|8_T7q9!{vuHB@J)bqXomxiL`VIFw~_JfBag!Hi&PFFT8F z4!4O7ZdNC%!UFJ2I}N8DSs@DVcaqGgbc?lkl-w5@_dFmFNHMUV4{ zTdN~XtK%U%`Ae!ibzRYK3$Q znXH>$TEVMb_Jy<1`NEfQgwIgV8YVw^c(dF2%A4cQkTC|yMHQvfNbUA|xmuEvr)g`Rsyb3dm3$=b``G9Vh+@jp zacY=^U{oez`m&o!3(9Ls>olahcNSwyU*Bm-r$QbPeu^d0ksiHbGwPMWL~RenH^WDl_y8F1zGm$Vt}=3TL+a_X+X$c*h9_IDktn^&!|kHlq~W2 za6Kk4=D5GxaOOmVb(QZiaM=gZnl7T*r+o9yl;i4(ycuh;P!DfYyYK2lQ5?lqOV0aj z>M-(ez}@orbb7QxML0oMMYA6AiAv)LZ+2!GPoi=n;*{^9LYmWs#92m+LnoS0jjL;{ zW}xAYehkM5Es0do_bD?T=FFpMOtQJAO0{bcqj{C`7`Bn_D7Sac&xmUq$H~I37c)Ag zqb||!lX1pmVkG~Q;Z!E0D(LwbP9vjTqCALGl$V7%YDl1|1}$bKW?^Qtb*&{xFxAX~ z7li^m)2i5npVG(0B@`CYtIt|OE8(FjyO&GEBSoRrS^JqnOQ^eGr!%+qwYZUt2cWAM zEfp5s%u@pPot7q~h@@H;=Xos|%CcnmEr5G@EiDE2=$U*z6A@+ZE!pf~iHgEfgFWH< zR-qD-;$oRnmrK>cQ;hqN`{R7HQ&2r*ZkLNF9ER}9QgC+{alu9aq8b;bR~qG5%uvI9h3nBc6W7Vf#YPIBTRP|Z9OJ?pX~s>(;(i?SY0j8WoBs{3k3s)f6EdCzqRIbGH?%DkSUwA5X~Q2mg3 zondZ}^o#181))=Z$W3V+Ra7M(!x24}$wo+G7At*w{uU~Ew9i1_zcJt#~_UO2_&%?=Vj<;wGdwV#^ z54;3972-|_FCj*3kiQ8JQKrivO73p~B_U%~Hd!fsoI}fcw4x19)v!=_juHLs<$xHb zQRPv`C&(g#LJ;>&3kM)GLbS~H6SgGM(;!(;`?6=# zY1jCoGHbY-rUv_$lak70=i76*2VYbLdfIe6=6X?8-YI502XJ*&jh9K9i_ED}%?d*Y zF*6Tml)ci_sPLN>&J$r+M}lixDcK7JWWheKgUp*+f)U`0vT6p1N9KMb-9G}f8&t&;$xVK_*w9F5r3+5^4kJ`|Am@F;z9PCcOx|vyB|?c+sCiW+ z5Lzx>f1IgC7E;|D&u28v)L6LgciNKPgV9YTTjo^lsUCMVMZYRWF`OxJOP$ks)Dxus=5D9(P8m2t3mP3*Fz6N=1CM&@_<}qo|2hK+$QnzYEjH zT(f9I`fPVpwl38Uc+XBaEzWor(!&NEj@OK#twUoKQ>GGxrU`+z7b>wqx>C>SvzCCk zd4QpZlTwPE48>KdlC8vXjV7t{X+FbB17@os$4kpBEZk>y7pQ77-U^MW=R=3&=h;5b zXK|IP8Hj#S7CGVo-0CV-x)ZWIyJ{y~)dNrwGf{iFywzmjgSc-*s^J!tq7uAY&YC%+ zX~m15s#@;o0=p0D)!|noFw2eUyR(N$85i<*Bm^jV`-zr9BxWSj9A&WIkdgOgN zsCiR81cNFbvUdbb-Noiv0x>aC?vbY|TPMODQ7G8+N$F{8ui$WAu1=~LWgx{DHKv9} z>14gyCm5m8;Z;`!v^!yfV)i``l@D~6kud(d$S}w_EmG!}9hhv=1D&3R@Bplw*_h*^ zf)AopqIzyx5S*0=ldhPTz0@*nYKo`*MNyvWsFdWv`7D8^k4GXO&ZMKOTix#5P?rP; z*;A;-^^|lYQhZXUFUnOFI+aECr-r*%BTxnTaC}7DWIr|h7&B)MPr-kS2 zgjCOcC(%etnIIO@9_NI2YtNX>=^PYCc!D_#{gBJ1sPO=KpNtv>CEe64Cb?Xsm!sXn zn}^(NyG~fLg*VU99x+H&i~DU30emBR5U!sHS%&Aci~0Fw&Q z2s<@O+ySCQwO=mEmE;8K=y9`JI?a8M>Z>5H>AvQ;@zp*Hts6ksEEtnPzaRj zjK!(J@k}}SzAQS)ir_E2;;NwU*1Y5%ELo~6Bbw3 zL`Uzuc#GeuH5myVK}EbXbF!kd8J+XxN+OYesbrt3-2N5S+`k%l+1o8$t3|VJRv7^D z2cY`Y7?$cI1Tn3beQG?D5hd7ZF_EEEi7uo)i=xW;D9Sr(XhMCg#1hV0&H|nCZUZ^5 zswVJCt(sM6Yo{eJYE9+fpHDSa&N1iB!A{ z+Z_HZ+3b!C%fS7fVp=N0df_qia#fAEr+RoiKCJ;SdZNEdc^;z6t@4l0Shse{ls;sm zf;>C;BjTqa3CW}pKg_PDX0FBpj6~-YGh=fsx?*sjab{o(+(DFztJK^lCfrmCr-p^? zx^`LkRk{%DGfY+Q{2{Oi1C(!U;8pi~lcC+E9OLlULCjXJq7zcrQ_wP_9mv9U2QyizQ%9n2>bM~?Yt$&^ zyh_`0ByytUekU^TQZe=~NAc>KlqpcM?l%b`rm6zCdtUaC^e8tn(EZQiCl!-hQnc5L(yS66R-Uhlv{ISO2Di;wb-R)&EuD2_s6QM}o+PQtkHR_Sw`55{O;tSPboVI<>XV-( zw8_AgWAkdyY)7X`+3Q7?jFTLn^>sPhC~FTO>bD1T%nO1f{#-ALODeW<>l~l55G!$5 zWL_Qf7c! zfcQN8FDku-hYRECsoHH8N>L*-9_P*;t^$gA*}KzMP^q}Tlh_FR<1vh!H+7>%5X)g5 zxF}i_so7Tg_VQ>30jw%n-|`tPkF;h{I;Y|2Ky5W0e`olB{jaE(rV@9qLe$37OHel3cUmAL zQL0?pN+G6XRGF+kcMfR@E|ae>hsy;8$k;uo!C83cs+1(^P6>!dOBETZ*j5S&h)f_e z?EX%>mJ+XMlIopaT2iQpR+{8?5E2|V_L+9E-8*YRq!yg{9_RE@%0%!lxZzS`Bi%GCkP>xEh*vpc87@0$Y@DvK1#5l;KsXPDb3J7OH+7RJUf^13KQXuIO&6R+g0G)JPFGGc^kJvZq+as7_}* zebS*C4v6_pxH7ADwQDlN;gDBbB{b3=&L}%vlVyFsFGDBT1(37ar^bvGxU8ai3{6BO zSr;$2<6t5g(R6eB^U+FE85Dny-s~ohpgb}ub=ghIAYOx%ylF9MEh0}#)lIJ%!p9P1 zfm79N#1!U(zRv;}kjRlHYrno*1})WLrTuWSw1QFU`KHAtLPbW><3+(SY6S>5bOrmT8i!-{Je;|x=^t3B+m+*VxSi89D0((oh|5Lw+c?)cu}1F zkP4a1`<4P%?mbvfs@VCsp~Yl;I_&1hVX)w+aOHK-f$FJTspE1vf)lVsxYtdKBP|^^ zA^PQV-ocq)mNF<=yr#yvdCNH)+`*e1n(a{o5&(ql>6H*=li5C?u6o{j%KF_B_ z#>#=Vd<;v|G`uC#UsQz;*@|_}<6JYX=FURijD9YPvd(b80~}EobI2OzmbJ?2cR9sg>55vBzu3RAo4JK384 zHJLPLpN1`z4=z=$c9qiNqT{NtI-Hi-4PR+MKOa?tE1c7b)45d>)ln7oSvb69Nsi)q z%5(FvHQ+c^d_Inpa*OV`->K1_WRjJ|bT3yhjp@zi`|M^G(F|3f>hme6lrCnH>+qSYU(r4uImLY9`Fol?JD|=mvouqfL3&tb=-;VrV}--5{cJkGnZ`7 z-dR1)=4mDgRh_&_ExcSp=}9J>F}JiS6O9qY^QjIN(J4%Ll`<)$qe3lT2W^s#VfK)X)Uao1evYz74)eccjwwSvr?Q%h;OU0>wJRH*Bkxa=Vt;K=C z!@Sg8=5_(#nJK*j%)BM`<@FS)9Ev40 zz-K`v!0A!P%bwZrL>9;AA(L^p3RvO_rv zWLJQ{sDYLGSf<=>E*|`loTc2o-zz-}<>{(| znHN=FtRXYH>bjF-s$r4I6Y*v>r?@98p(b&P6$fA#5b5^nDpe3eIWYeERT`z<ZATq{JpK^^hPopSLjq=cH_NP_)_^_gcdk%ni)>T%osp#?cU=_W^jNQt)>7}J6 zZJZguTug-En@i12OEs*0w3Ff2!5UPOpjUcdcWS0JtSw3CYHw|ibu8;ReVY3oNOdyL z=K~fVAw#VDF5!)wP&Fo~JmuSwEszSYx$GSUA5E1kTcudKdu*DEqpCywLc5*#zZN{)!r<1tUHzeT)(>6c{dBO zvR4JSpsQm@D?W=RBPTNIDL)cLe?z3-Z^zEBFQfv5)$}0`8>r^4X8F22nm*8SdcRzg zrf?V4`a>=XW>AD;PBFGiz}noj?;H!dhlSXLcdlYY+tWVXD(G;r8 z-k@IX0}a}}tm1G~%95jC0buu6sCo-&7gY0*)mmF5y}{mY6$*2aLec3yyV)i0aTT_P zwLBkIDy3#APk9Za7_2=M{cn?k0UC#~$V(=w?EE51LAg=<%g za^a8-;ntEuocJswCSH!n`;Hw3R%j&?$b2~NNj^NswBzw{?(g=BP`l5;FqTAj(#yX6 z6_(zr%`T_ix52Osb1A4B>QrT#PHkjD?et+aRs%TjN{7BO-Kxc{0Q)@mja#jrY^ zA!({YX!PqKq{#?gQS){RgpHXgTJk=L0t|sqGE?{Qfx20Y$3UK{Fq0YMyO8`U52gT> zKx)6RsuJeRmmNEnBjsgx`UUw{Yj~FDToud%EgAmH@(w3bjnxk#;#5VX)mY}Fyq!YJ zlrwv^-6wva#tSrR<_=%Cbf3>W1}=$?#d z$!9^1c~VjD`+gYi(_)o^1gPGTf28gCo9#V zY-Ij4>?o=aH*E?;}hDNEhORfrX|ePMtVFES6A4WLg*#pH{lT)S^^o#dB}lO z!kP~OE_*oO;o|M~a7M#&9Fz7m3<8Uf4EMpCpJ1;_tD+zu=NT_Y&;EP0r?6M!p~RPcNHDnf6<6^6-riKz+COLlyb~G>H3h}U5KjUfzJ|M4Ah|7&r+fz z?L`{68Ow%-gozsBA+rht*bb}L(;P-riH7hy=rSyUSZ9L8ya_J{gCtv>tj;IhJiGWy z1!aAfaHOi0>C0X@1r9v*nYsO51xHx1QhD=JlbMyB(f&nEg_DX5(XTs2aZ;h4=s8tu zCL1lF5m!6!vpK9>fnV({EU@7-?)Qx`$X+wko3mjzEp2G`B7tf@ecGmyN2sdMaqA+4 zY!QTK8=oaHgpHur%kET9byc0YbDprF=3=7L&k`ctSz@kpCrJmof*S$ZdHV2DnHtg7 z^`a_)oGQ|M)6yL=F)5{8FRD|UG?_^J@tG0^>9|k6Tr&fPWQ@G?c|<&;YfL!(Th|CO z#W9`Tr_ZQVAUC7+XHn@EQ%!rP#3+h;LNl%If5j9;Of-^LGB{-O)C}ra_4d~wAgL9t zQ}?;U^E%px)oZ*-;9!-St!7=<(_s)m)lulHixWm1WX@Eb8dIGPG`$8lEz{CvT5!Xc zi^J2fVtRbYY}nF4q`%L~X^wiQh)|A)Ga(*U(ybT8#i=ydRLj+#qCJ@spz(gUN`Z-M z)r`+6PYX4cEa9Zja;86h_{e4epJiO5y-eD6GE+*W*uApKS~X~ia7aQe@3(APYTT0i zIzHrL@rksYvYm~TF5bH#qh{+$842fXhXupfFIsqG)*jihI;Sd$wM~-6buiV01JnkH z+-K8TyvkJ_cIO5y1ZfuzOxkhg8X-rF|M+Jajqp8}GIkP@k0V~=R{m7gn3UE`mNCa! zlU0z+n24WZrli{L@Ju@#BeODT%7NDlT1HaUo8@12a~%e`OLDljc5~_(BWj$RhvSL# zu-3MlAJ$S6Qs_X{%kIr;-E+#nTp`q@5T=NiE2fima#kmHcc-O^Yxcmxt}e@n%FIAF zcE_caRC2or*6A3Qx|ffVA#OITj1OjAo_+nYLNXcacI2L-Y1NWaECTXbI=ww$LiiWO zlTTWFV)Ru3kz%5(qSxU-P@E-1Q=_X3(rk}90J$?N!3W&}TE?$Zn6l8)f!mt|7%Stx z42;z23|PZFV(5Bx0W?W_BKyvcy4V^oxq|24Q*U6JS{Csr3&$o%c5sIN=W3QxaPh{Q#cL12v``2 zWVPorB~sz_)v;ESd?!FC)vN5DvHQN7 z;i=3dbR>t(P793EC^N>@6+x|ZIwc~nt_UlNDoFT!QfGt*dUCDzdrC%%1}oJd`G?b> zf^^DOJkAX*85^D)ALmZ30V{F5X^Bn{$=p$Q&Sx~wI_);V>*kp$+9r*&I&Xebz|Eu% zZ-4WXQr#J74CUBLQ<2ssq9u6@)5L|ciR#25rHfEUvn>#nEeTY0=9d8m^ye2ZeQ|D@L>L3x_R_d3XDL{HsCHWY(u|1{g6;oFQ zEm4VP0)O+|madSQ%9vx=Ru-(@jLp7X&(sK*C^V;CNX`LHk$OpkY@3syqVd; zv%cF}2;=#*VPg?dpbP-{z5s=NAhjigmom%M)UgcvXr<@a9$bEM(q2R7rK z#-oAZE_KQ2>(^K+sCj2woEpO#;9A;VZx@U!OHk&C$YVHeRhlkcHCO3ms1fyc>h)`g zI67G-h&$`12Hae&wE5OmqQ;iOY4yV?u{E*jEpos0(?T)Hd{qWR*HEiG_LO@6`F8_H*Ut(;uFory5%ZXLV-!G z5-GWg(K0AclMvWWU8!ie_Lybid{msd1!>*Bvr3=t;(>*(^y8zNIu5b%=@(^+89q|N ze8`rHs0eHLX{Z$5tE5T3u6B)uRV8}dUw}(Xd%Tm|r5|Ssll(Ts3xQs)j`oa-5V`Mc zjA@qT(J}UVK@=MaAxmKUUdkHVLc@xCXuCs8Mp;g3%qgbRrV%-!ee=U8(y)w{DnB1% zq1qnlQun`2Ez{&E^4UY@^f4WJjjM>wX-Eq}wLmx9sVlRILAhDitHR(c!$q?2XW=J9 zrJ0m{QEsScgP`o?V%D-0I)vZ+m}h_#$FlJ_`;fM)r`7%4xXicIlx)`ZaKaL1hOD%Q zlLGdKwVB;#ZdrCDrbE=?I%t*RlQ!Vm)debLS&{Aa_`nd&snU>nd|;i*I5*)x+Y2DP zL|E>`eJ&Scn#k=UY|#0nH5JRLRrXn+fRS>Q-E4qqT~upmxH)7ANwz}O@M;G!RfTMr z|MWrEXga3pdDG&;G1y5&L|k32<3ifLQ~qZe4wz3$`AxW+Yj{FQv`-(mq^i!s)IS_s zkW`*9@g~!0K@S;o>W;G;`xOPV)O;4_X=v%1lCM&)03f1H;xAYAq^gQm-~ZpCye(n? zACr7O-DT8BP5SLG@7eLUoFd|?>QiFOC!sZ0SJ-5B&>&>FJ^`6ghj~cfw1k_KDr2+z z^a%pBW{i@;RS}^=Jw+@ePx%NYW*s9g@ovtRC2$1r6G zib9m*Dou7mZ3+!e}a90 zq#D%jyB002t`s}l{pK*krDn2QFb_F=LWDgD$;U8K0rE|=*RQMyfa5uhdOie+Y(`DS ztF(og!;xY6a&@(83PCc?Qc{T^CsfCsKebem;Iz!Ev=lv6-LQCdl{TQ|T0u2evC{hp zfiw3zpUbK%Ck@tqJuSwQ4c{ejl@^#kg6Uo3`M8)$WM>v`f0YXi-pTXi;}fcI*#y%! z8FD$?S7~peVo&|~lt(ergYY*k8b|1eSH$a1O~4%5?D6|NZBa}` zZCszuJPI(=p3-TD(+aS6bai_t2`w%WV&mP{uhz-xa8UR6x!i!lA^f-dPTGc7NLNJV zmmP&ksR~TL?0ilRl)7>7wijeF*(fD^ozCr?!-@$r#EVLiVPTF|e?D32nKF>CUtOwQ zHpa6H*PSkAS4%SRcnn+G%*3Vh^C4;G6U~vYE{=Ni80FBnn|i7ZVx%G1Hkzea_fOTu7_h*T4Ys>`hZ+bO0gZ2zX+fBmw zxJ*n+Na*GQ2n0`^I3~51<(~Bx-s@izS{kC3HmCei^S?~MCjA#~9 zi_QH$SThuqX{<|Q`LqxdT4o-OonBgod)J+DtdD$JRH>q*=ZNiIZc!|ugnJ)yGlfG8 z(ukYP78nCC$zWf7XbDFHW(KVCEp8#%ppV>sr^OAFoiOFwFIuRyATu@lS)x46tGz8( zjg~ZZo0fpvt1A&z&cO%Uc2#sI3k&nHI}=(42|j75=ZoSQ2R1Z3A}^O}XiM2x*Zn1@ z)l>=K&ZKr~sF|ovPo(5dFMUwHW>nh4F_#eW3gG}OAGJ^^N1b=8R;@jlKbC`|eoJdY18Jqoz6L7&f# z!I&B>PBD`TAgWBuo{zS&#ck5^`ei_?PfSzW>xE&47!;O)H+AM3(ZYW=cy+cwdqPGs z?lZ29H^Y1(w4XkfsnpC2bbfW^P$LH@f!*{PXE}vd7whNKZsn|G2J^CyM2MuqYaYXK zN|=T*dCEiFr3YcWJ0GaFlFxXGpJLEvrr{n+JRBI6lFS-%J$?8bVL}UYorbVs?n=?B zS1CXj2XV{rqFlShtgG$*CesLn6)!1u-}!mlIvE}#f~yNaWGvO2&s7tr&NLIg!M(aM%Gf&>O7rYlkCE}&0ZBw3B^s=xU!o=51Wvd z2+_AMJSvn{Xx2MzJVwb0m2K~|@p6QBt2C4DYDUt4ko-tKA z6m6qIB{<2!*4mqmP=2Y?=;+a>Mp#a2Q3@BoX`xs)N&)ybS81dN!pRQ#YLCo`a<}lf zze{wAvL0F_vrhRGq!jD)F+7WMoQy~!^j?N(8VxNIdS0%y7A61G&OSc0=uEQ5-u-Zl zEs$^y0F`?tU3t5*VAb4`fyjP7&WJ45VeT(`Xr!xhzi8b4D!L256d=Ur)TnSa zDnf_X$0uFfQ$?)4TuB#c>u#IdJ5^ySkO)XVy|(tY49$s@j5qUbC2E~+UGMXqELsX_k}Ub6fEIU4c+c@^xT~j=kNI_ws*5vp zLNS-UT{~HKR`Lu!9Ac2IOSyizJf>tMhJ~K0?PUf*g~{uChq(ktfy%vetg{%E+3k|2 zMrT`36-$x04tAw!R)tKyvzPrW%Ti26zo-cmAK(almP888+!^=%ut$xZP!VyPt9{H} zNK?bPv~>;CiVTgi_GKT~cvls}?T`oV<)zvC^P;@UW4H~|uJ%D|8S4#b-#m}2O;}M6 z>r-{ylRpfbuA8y(@j{!%)Z7Uiw| zOu*XYzGJid64}Md26#B#i77Ls@#UJ1Mw!d%!b+*70%qP$sAWh?c_V^*$M1hDGNL`q z*DXTDFA6oI8in@WTq79MLQ*lUXGzueno#mw&Lf5CR;x^^b~w$+FnCB{&PRnrgcM2W zDjj86G$NHGw#&5e(~dyu5xI4Zsws0@8a;Q%vA4|QlIqoYeAFgAjpc(hHoLl%ms^PC zb!XHWSXK&G-=2Y^8INI78B9i^UZq-9JZA;&uouOBZ&~Bsax*`siHtFX#H-6p z%7%Oh{G!Ytk_B?W{Z2hb&Wf$h+OIoCB5jdH=eb<8bO`&(0eSs0G+M*Oom*ooHFq!O z<#^bAyBMRKu(lzI*jc5;EYvz7gukc^*Nh$=GJBRZx9P05czjCCN)gTtfBINUXo&<& z?IE{O@hFtnQ`Oi&a7(c~yT6nUlQw_tjK#q9L^p2Re>Qfzoo50CRzrPnX;7 zQ;vT2WGJ0Dx62tGtej)0tzRydspb=4isOtLa-=$JL zt=x+b*;$#iXpzs$9_XnE5vDlK9_`$bOvL1mb0(V(3mx2FDwwhZWa6?cj}LpAi5V~P z>xGv}r%Q^VKT9JET<^iFi`>lJp{DtAbxHtc5S6+zB7Jig!|ht29DgE9sZ;&jJe89I*7aznH?2l?0x-$&3u>j!H=7vy{T4 zAql&`Y!CUm1ou`#KAdhBrebsA?e5@QTWSP6@0%Xa8p_$M&VYH9PIkDAQ`DzeDp)+< z+~@U+5KQeHJ)Ku+B8Gg7y@))Vbg9M|o9=nar>pYIjItj-*PV3Kh-G==@mVdAOwR$z z(>a53wU&s%9&+p{N-%@Q^GVH=cF#?6>s$CsYW(Jkloh~*$rrK2U<>Fw}AZ7w}JGa{+p-~|k&u1dw zXzi)F+Q&@zgi6>`eq33#Wp{o%cbqpG&_TTpPNXuePlxm&PqcY?n7hB3A6D%xt)@Cx z`&0%0@wO3v*<1Ke6%%Bg&NGUc>XMSDDvuaTNFfV-b#a{y)l!}WVAO(yT8W9J@0m%9 zO^#5dac}0L1=8&m9nk&VoEEp41lv4noVvBZvs7)Qnw)9j09GV*6ay!UmSh$duW6Of zCoA2{fXNRhx%tr3owABCs+y(o*N53N=clwR8BKL};4vJ9vNNGM&Y7prm`qekr3Q6w zQPCP6Aw5TBlYwJQ*?aCM#SAo&2L2~jNt&xExEPlIWMnq8&p-a&+d zn7_Irtjm*7-P{+9ikx(Dbja?4wN!*4Sf;$bYgW0pr39g__Oh9Z;UnrHw`ZC|%hb+d zTI3g1;M9DUVee24nyyka*VIvh$Nu+=7Nb@|GOa~5H+EbpWAYXzAaI*oOrc0~$_;m+H0I8xmKMPE}N+e|VJ4p+uR2W@6vTvRN zAB|Cu5PR7jENSRf6nqtfXSr5cdcP_Vs%A5mGjD!CdS2!lUjA@$oV^Q;k-qL=46UOg z8DCv&CB@SWnqSm(X_jS77Eh8ESM6mBB=!?+Eyg-*#I)*=nYME4hkdm>j761ECE4?t zQC^Vo$eG#iHfKrBj(J1<``xc4G-jObRI~l| zPK)`Zk}{XxWU{q$Q!kx%6CO6yVqlRuk0HFISW*^SdAZasn+$4l+bs{}F_xl)g zxmlP5S;o^jLTfbhfL~n<3(6rKlc#D#c#ULO>i$;S5|Po`o*dwL`ebvJm3bg;=SGF` zhusnG-D6mhmetkjc#5@;E7@UqGMo=bAWDP{oOk-An5dFU)cDO$DnY}7O){K5Yq2)Z zjI=}M#hPOZm8qMAgqcTan?hNk75 z-A!w9nq&X2)siD=iE!|8{YvIF?$s_CdpP60TqLUAsh(2{)zl|mcS>1#48`EWb*I!> z4^lhO$GMdGWUY!hHOg2itb0uRswhjVp}m3%E$6Z}Rd}dlPO(CeeQ2=xb2=9?s0V9_ zPoHv4i5z~ZGkbh|l#(&C#=Pu-K}lyr`}w4@&tN7vK8uHm?3B;@G_P!D{brfjr@ z&X2+MoxL?-2%!R|A46Ka+A0Qls2WpFz6owQV^CAjG{G!B`vr<#E9`R2J5;wl1? zo>QzfD+2KJ?o*>p+DJ0YwNJ4&W2rDNPRm0!ryNOE#_q1pZ8_?e-U2*^9)(P;hUBS1 z(8{S%t=zvGw=@eiE45a{?ZHk}&T|tC_Hw1M!mcV)Kjk}1LUX?z*Z!tJobrToU^s|h z?UNm705N^1#E5LIOdwr{yd_wTR5ImdA1JJ3NGJVjpH!crM{33M$sBQ-O5vv=OA;v4 zM9e$u2oTH+6^y;?&21@))R5P~8C?V_*}Pp1XCP!-ETZ}`q`D;n(yBRCXSN##q*K`! z#c)=cS)@seinN$`Ao)R3i_RQY-QK{sERH@dysCFG{A?$PSURLQQPAd73_HrgPINOYH!78t` zc!owfx(|mIK3H~Czq*tqOu&^LeaI>qCWKJOTrSlZ^RQ^XU8SmoNpom;JRfr!bFyG@ zRj9FWqs2AnSs>u{o}s$;8K(*z4ZTYCzk5;!jKo+~bKx{pH&3_WMEU*hpqg1x^zw+C zURoLftqzZQd`i=#nM!l6Us^0D3MnXm`V49+P+5^XnQBsiTUxc;XNsD-q^plZ?fPX} znWjGeunbCQQ8A2+|t4!}?Q}dAMh$?eG&KAP1Ks+?(v$#$} zvbi&#B?;?60y6pdbc#xql*&`XMho8I%CcTv1JQsrhd&?AcvUw-F?rpwNtqDvC3AH_ z;o%Tz(0OMJ2uNqM7xv}{XbBzqEyeS3>&#do{nZZlM5Luebi`W^l0;; zkT{xqCH-((%@F3kZs$Y&Om(NO-qc}QGlQuOcD1`? zRtYVhI8|N8#9D+ciR1c6!s>serja! z$tg)9UY9d7LZ=Ox``6vp%yO7z8{7Dh8*Qf(t%gAmHODsGi zcf#JjC~+IhK!@7ll!Cg*v|!%JMzU!UBklV7PKT!3I7!@hEiGv1s?{U)auL#XDqQq+ zxjaappcROljS7(vgVW8fE-s0R>CD*cY2{Fk885=$zMy4{m2|81b*BnQo6Z!!zg=im ziw7o%zyF=OwHi~UQRI-Pe6^27N*7mNc0xjtEkow3VGXmkyKBU!#$?5)`h@14V=W~v zEvgv5`Dqn6RGHoDIJd&uYT#adxmvxdeAJCpH&<(WyQW0T=VNNjE!7cymA095ske^3 zz1#$r^{c2jRU6C}bjj3s+1;evn5-kOI~|ii21{sv$hi@abi>>vboxlyxKfi>S5{ke zMi-MD=Mr_788xe?Mh$`>l0Bb34L}$tCG!||tE5G$%*S~Y8KGs)42L}6DkwGdod7+J z04bzM9nOe^wsj}(p2fnTk*SC{&ST*zD8}_%UBjtywekpyXK`WOE*J)#V&eqrGzZEb za+vlgITQaXoq*=Fc6+@2HPm!49%7lNGc6Gd)CpC7tfeUJdEfjcl)m)>dH>{8zlJnP4k5$=AtU#O zci8S7lARGFEH}o>1tmm9rK;ljm}PPCLjXeuhDP|! zD$u;0upY$e3```?gcxW1b`Xxta!du^o~2AW0H^u!3E`#*L5Sr;4%1@iUEAYT8e_1G znD)GB0k;Uo4W;AHXB0Xp>kR+11h`KcX z7Vf92hfE^5d9C_t_uwA&uyWL^lvJ~(x7N9D=0@Ryiz%4sn|ZH9ghmAuzPc!aw^%!A zzFf^b%H&R%&(aEQpK_h+j`z5RSnBBgjoN%%B1&~)?mGZ2**0lajyIVMAP&MMHBaZT zaaCtWCG2w1Qsz!%t9}-UvyxF`KQ4Pf#|vB+;PW9Sp(Zl8vSMG`+N z?OC|yCXLSM>sJ)-O2)MEopsR_MgqwRw^KeSu`Y~6_-VM7(r6WzdOjnONhk5NQ$B7g z#6wEvv%noWomu@w!P7(o-u3jE3bzq!oqh~?%@|R4jjJNXRie1-%IkcR8Ooq)+>6IB zwE?Nlipa~JCKN`sLncncv?QBM2f99=YDWv3k@=8qEZPubif5s-@=>T$UKJT08Kz!> z`{rr1RGPY)*_W%VNV)l__cvI}D&;7e8!~REWNT-*wz}BM)e|8elT_^VNp3Ax&rs*F zynDGML$fTU6^BzYB9unkz3vn(6?2`o64JOR6;D(Q!{kO zP-~x#Q>@%t4O*~%oS8Tv?uwi~eJV7<-4coW-eQ$W6*3J*8i$;@5Go};*PWV(90PM# zTfQpkQgrN`3* zU4?qzC3?Eth%@akYD7y@L+JG8XAz=Jb3m@kdDLVwSh`f7KBE~abSlODerluSH#sii z@7u+gYo!o|Os@)BisMdBDL4(sW;86QQ}y+IAQ;P0S9|9nJ0Y1mD0E-HCe4|47;Sbl z#>9hhwk`Fu^d$I9WV!!pX3RuATS7W=b%uzmT6rKb&!UAYowdoQAw_7m#d1i%X7tmY(4TV}`PM45?mCYCHN)W5`rybAm)Yj$&{w$&H(p~fF zGCC8|!lv$93d{zM3DaQbmZ7=EptUBYcVED~$SqOU6#x0OhKZ_5)>UfW+~157?bizn zIH0E9=BJMZ5qMya**`v$W=vJ6xqeX{8!6;OehjN34G4ac^iyLrAm(n;^D3QGudZI( zS)dScnFiqx8R`>4IY6l6%%zAd)EN9K1x#Eziaw7IkTW$7b}1inunnOpguc^;zLM!? zT3TOJM4&`uL|=E1K`Ba&D%GjM^(gO*3BPj;s2mZDZXs7Gs+0(Db$OG37OhRqLhir5 z0bNy)@Mx_)>wt09kfDyWnXDNiV^j8xCcyQY~I@HXIgBf-}%~QScTw?TGYe;Xol%B6V=R@Lr#p?2dP~ zIN20PU@V>*VdElAajN?&<$@Y0QB>Ng5eU|)5u%Fgdtm4Wu~Fpd9G*r&0kyJ+^w^e z#VEBbe`i9Jq))n{-A^%E+OsJkCa*hDHsUa8w|TkB#>K>4247UO3KkJvb2>*`W=aEL z@f2%x)I^WEJ$>5Mh_Yjy4~K)Bg>cP`mwmuV6iE2Y`6R?QedmN-u7tH!5462MA5R<7 zR#x|X93cinM%-WLkRAaK2WKI!uB@Vud$;uc7X+{|kQ%iy?b~13V~!>#t$xVUf?+$n z?LOa8+NxEMX`idKOvIs>F30tv%%#vW5qZCrfT9j_n^*D}-Se;j=f47&JwAm|(F)C` zxaZ?A^&|(6y4owqA8BpHYR)G?9*i_kyDF-*thI_UdDB~EIj&6yi^q`Rnm{4v?UWig zTPCcg+DkGCZaIM zxeQxJvq|%^mz!&_$|}5E?O`4zk%H5(d+!oePN@!OLPRu2tn2pj$gY70AmL8uQ6tGN zSmb<`l2V5iK7E$(1a*VyT_dQ`) zMVI-6^*d>&%MoIsA$9r;DV8NY!)+^dQOT-IakW{_F6!_eo;8{NS;E83vgo_YyO>!f zVPUXErX`V;y^Z$g!=zGCB9Xa@xs=FMMNT+&TAb^o-=eUr?XpX2q!!aBcMEH$B?Hl^ zla%UNreubN`rK!M%b;hhDk^X1x=KKd5RvHBc`fY)lF*)=1X?mO!c?FyyDE!EkZ@RD zU1~K2j-puHu5^WUN9i;&PD6FV7}`zJPBHb=b`LQ6%ayx0=1#Q7C&S&+S($vu8AY!W zCHGT9TiJS5(~(!Hb{NJwR1~MP@}&KqGf!1haa!88-KRX`O_Ao)`ntngR7ghCzEkHG zq9QJ&H22?|Xo=_wuxse!W0BR62xRx^W2sF{OCaX6Kr4gCns=PeM1)sZrAS}xmPI{H zyejUmmu^+5d>p3ua@D8=@nP^6)hsnvR71a9lb#`y2CBBR0TD=Ma-s6N1MQ&5GftP| z1Dn=%a36L)3uDmkDP?t)B2-yWA>s3UqPcG1O5w7T#DKlAaq;J~GeH+rv*P2!?h-u0(%S-Y{c>yJc1tz$m)((?NJ$3Y zcVl;ywUug`-tSiKPJls~5ay=EeR2365r00-sBo~}FMEg%WTIg8vL{?wsjIU6Td8Nc z0A1!*^Z)<;?SK78{Gb2(zy9sN{oB9(9r%yXe;5DPzw%!$_CNpo|HQwm{YMNBQSpEK z{oB9(`~Usl|M9Q?{qO(d|NPs3`~UX$1CI8O^nUuIAjXUSs2;EVu58k8KZ9u54bNTo z+YjH1IY-+S`I+vO=Jnt_+!Mix%{uOh9!3XRm}|qDPs)4!nf&61pYx@BkDvYci&Fgd zJJ<5?51@8Ie#E6A>Ahgeds6g8V%!(GM&id>fBZ{K5?2>XxWcfFs^8W`nB0Zmf!MR{ zGAZa%`|g_@U*KWUk=V^>t_MMR;XC-cbo*O@EEr>c)T|i3F0&8oHKa%TcHy@?d?VMX zxUlH-#@UhvEJfYrAJ4w+4uO6fe=hW8HAjXx{Gn1b2r0&Isqn_^w+GHYarlvFQy1Ql zq^t{_Y0#Be_eM7(;|`hG7I_)d|F>7H+)AhXEjDk!*j;5$YpHPoKf~SuNFZRUEhPc+|-rVeGbOF7e!#m#_E=KGVIfC7oitp z4oHcelxOoL1!QBcz(sLpU#Ypgp`1$F#EcF`>FOSQaK4&`T!Sq~8n}AzM(f@fu{Ni& z^wX7*whQ+HafdIaV5>o}BdiQs^aZPLLog`TbLFF*k7S*UIND1WZ~1`fvDe%;zT$U= zE!Ih73GMwB&DC9_3B0WzXEuL?BN2|hQiE6_NpIblELOjLW5}i#R*rKaGE3wSc&GbP zLNY|@LP$1-2HSWR`1hm>^5Z1Dim@TG&&u4hiws(S;XT1OEh#Phy6!6$|Ap9RA4c?= z^2bC;X<|JIWotDWlm@DxOvCI+ITzY#p?oO5DAca&fqyCPG+C^Tip7)P7P;l}Tb!++0(_md0K}e2<@j?Tiu`HP(FF7?-}x@!(gIkBrju*S){*} zy%L8GT=o6%U}NpKO%JXmU!=Xa`g={`qFl~h^WRQLku|eyq1b@Eq5Ix96Y`b-`6Cd) zlND24F7l^-urMSMXgoAFs&*gIC6_aLz~8_~QV@66eZ2 zZlKb@qW?_z5pX{LTqT>4ICJy)-U+(Zfv&t|v{4e} zD^7qT&7wAr{z-^k{7=Xr5V`NC0G6L#0yg%D2mMJfe{?y|2fQ&v%%g*mJ}vPlIskh;h*TK2rCM`CfFT4|9>|TjygCH)v2IH{}4I7l8Wn zr_ZVjMbN$4ch5|`dobG#a6K6dS~u;tB7DphTMsGt$ce2V-yYg#c#j~$+P)W~__O|u zB;rt%H59Kw!hP;XC)NvmyPL&MI@L?7v^#xo?c8ZtBPCCc9o-i8EdRN3LmW&)FM9kq z{kp50h1}z}rzS1D5$4i;;m0WK-Fi|B<(1e&S@j-c0h39CE6NA(wOsXkzWeyGn*`fJ z*aJS2{_`LkTJ$f+FpSH*fOooP<|94_gOb(noR1alzCN~Z^$#G;Ki0FCAWecXXmNrr z^lcI(2-m^D=8GGL=uICw?=u6wHTrLvy8QX}E>1c{=%p^Z%$URB^>ez%4dx4H_9aDL zT+w9^Oh+2@r)53tkhUuu5H!`bgnrIf@}*3g+(Bfkzs*i3-rTz{sNXG3^&|FTQAiG3 zFp!9sY3uZ>fG%{UDreuUt3+~bS2pP`^L__a7k`u1=AiRuIM(bgLwD2cqC7~y#A_F( z&mW7|U0xvFB=^8FF8w`#A$pGXW06aK=*etcrm2Xm&xeM%-0|aF=#8`8lK+^KZ_HEY zza4MFC|?W742-^a`@8wlosqT|t{1TPSM_qW_`Iku1 zonH5?jVp_At83rc`CW0u53c6M@t(Jwz2{5dy5;!XZInXGHwXuV%2=|tFGEG{bv z@j_!R3|Ht&g1@KO{8$Dphj~}7ttUlb%niejIg&8CO}ZM_k&*X9aDwvopA`~W2fnC@ z9Wu!Tz4k>guJDeD7Ww5buF}kRuJC>DoB8%BnR~Z$>{XbCu>8Tg9mw8rEvT?ElQM4O z^PY9fo_#a=D19j%-)%jUHxwfF@@Lj_tNpElqssuUIvsi^*O*>kNxUrT@5ygJJ`3Fl zx0@#) z5DR{aawX_kx0JuzVR{e5;Nr8yTDYpe`|kF<&u!o8_d3A{LcIz4QMya8k>5IRgIci` z=j}$m=8*WxvWB;iRD`8$);!N5<@H^c!}nE0=|(VJOiHpfF@#H-djN zs_oTz-{0ope%*m` zV*SMgl_M&DHf}FTeBVOol1!58i7k;N9u(ovs-zdYT>Hl5_-&7rsdaHlj7H+IBShHw zBk20xi@w2|Ja?taOpl|%!0lpjWdUfX-_H2&y>Z>wvNYe#GGN2b+qjfuzO^3DUJ5kU zlKQO~zdgk^{F%7OB*uJPVdxGsRibSP=T^_rh;`!wFV2^~SkV7HvdnYYQexjWxXv@_ zM6|h-$~=59(h9ou;m|kt2K)A7a@)WMOr`oq)%C(>vEonreW2&?rF`)!T-w_Mpov(q z7rurmcj>>pdQBjW8~mF_=M$D=F+`aFL?pys^tUZAF5FY|h9<7>dwq+f%3J>6bT*b$ zkH2mOTwn&`1mpa7)hTa3Fy9~=d0idWTX%LgRqPuW4PtUvv6-N$NmBPzU|WMJHgssG zZR=o(#9l{+)cGm%71xU1H0lEQ%R*O%E=2IU5K2e8``WZWW?gfT2e0(!JGdTv@s_T9 z|8Zh;Vb{3N&QwQg-JDil`9mVR%2(2M4z_jEu$V`VR%0~yQWk^Tha0;g^h)LlzVyc# zd~f!<$bH*f`nWQKUJ1c>p0V_G7Dw55C%cL#0&iK@;&OoxWFRj=@kyW4F70CxZ10(z zez(q{Q?ku_SeW(WT%4VL1jmmfz%cswp8B!djBmuw-?}PGZQAs6Pbz1tV>ng2x)iYEHfj}DiZS@y~$ z{*ckWGlm{NBGHQxe5Oy44P%uT8g?4|Zgbz)pHKwgw%ZNOKSq+!1=o+Z3z40T*hkt} zEInROEXK+gM4*X2q`aUPm$cpu@nU1dGv34O9p2z=HtTOqb`OJ zLCbFY^%R5`FjmD20in+iSQ|&r0 z^xqo6E7y5T%rkE)P8yTymi^WAJz-3oAw`T zs^#D;%=pS(-0i_dM(_u;-b2%mIJ~D%k_Q)s?Y19FB;O5e$GeCEvt5$qmn-}MUO-ek1d>3LO>7=L!E zHi;08tZ3OLZukO$R%J0Kv0fOL`17>zmxEuwK*xQtPR21A%h+ud$B)2VKWt*W>(w52 z&V0G)QhfRE4sNP9o0*i?3SK!#%)$4wlZ6wF7h{xCEUGxqLJZo9ul#LwKPp5=KJ%SF zCrR8Rx!K(?A=&fs$7=8Lmu8n`@v(0tQZEbEGk9NTzlz8qe|zUAJ#!KLq3L?j@cU*G z&jU0M*M8g|_^}Y>BR!25-|~4+RG!A{ z77JvS^{VC2o9fF+IIbRE>^)=dL3l%)y%0QqtdrMU^6T+MHL1>T%MTiB0l*B&U>fUK z+dj~!6!O}#s|=z!m;D0K#GkW(@Acz`Z6X@0NunmNFN8~cULN<%$6cc|)S(!mm&q5v z?zZUed@U}+So=@wx3vT_t@RBIZEK**UN&|ZrEC^WvbWfKVa3YsG2^%P`=_X#DBGIx zqv#8B*_cK*;T>aZWh(yss1WU3rHx^{VM+O;(if(znKFF8N6`M9$vjD9U2qUiU7N2U z09_9G-BOMw)joFu(8>_uCAOZAB9$X=UFmW;Fkc0rd(OuewCg{*Xc_mXljr~NK zEnRP|&aA}L^&?$Jxa6^Mwy^! zx+nS?ZN7>3X1lU#ZRo}%7kTBQ@0}b;8u$Rd*7cs`D!JQpBrccrO5K*zxQlDv7x5?n ziM(+l>OQ`$PgmL4^;as(3b`0$m?xAoj1#lY&cMA27tg&|7o9geb~a9Q)?l>o^4mc? za0WVkm9+6=h9+pyX#@5;kNIc$ZQQ!=QtXY9STb0*Q~T#hqVs2$2tADB7USY?1>LB< zk`fnV!+7g-T1VdUuK3!<%3evA)?VxngUkHc$SZ4|aLGuR1;{F6Z}~+vA4q{P^d%DC z2?dt*29gh(oRpI?9sC zO^*!t?u4QtSY*EKp&On{fj1XUHyZi#5#2jd{m8uB_|_P6)iBWBO8j;xNi#PU|zA1z$URtVFp?Pi(?F1Z|!8RP<54 z@M9Xv!KQsCDvT6Jvjz;3rt`QZ3{LklFqE z`sHEBLUZ|&U`v;~jeWO`-J5;w1Fdlk2w&9iAfEy2!&lQ>i>v!aL((uTPk$t|Ui;$1 zhAG#SNrH*@JC4(T0oJ8?ue7hLu5&I3&bp${K5hUV?5rfkdzQ8(1WnBsEx$d>Um%~j zD1-%HyMOJsy#zysa>r6?up*9H0vDv$L=I=8MNmVSJ$E^+bTh(3?#<>p0tiM@S?OV??WNT zkG=VWzu0{kl5Li=>+w%^qjgt*dqO*Lh;fLU+fIR3)P`}Gl`c$mPbA9F^Zrcv*)@T6T?*0JcaqS#(Hf*kgC zdB<-Zxgz_ti+sr{rp(T$1yEMPn0L#Yh3AXUj3N?#D?H1g<+nXD8g*Y>A@g8-lWo!z zyr-3U?_s_2y9+Mu5kyd>JOmrAD6Q-DUc-gElPReJ-E_T+ZQ=bv z>4MGbeUGQiZzq2r?Y9je&NC-%_2U+LEU43Ng+C3M@q!gV14qt1!9 zJiC;x`v^X6v*>jE=_w2(cdjax(iOk{VOG}=Uzd&KtG?Ivn70huMX=NZ-0*D*xCSQu zm@6N*MiN{A@JbVZNQCdk<@jw2{>l7%Lf!&HoHtBKSXp@9GHh-8x|VEauB|%s&z0I( z5J%KD8v(egOZF1gI{a3PMG$)G=02$WognxznAYEyjqR{?CPuJccJGzUo6qB%x$M8S z5oY1)VgI%~GCPEGWHcR@9GQ_0sF!ltiJ)5!Xw-c@x8OQC9J!<)_@aNj%i+t0uJ;wd z%~89EtCR1#sPW^u$GBZ#VkheNw5cuumzFurbl?wfX!_=^H?%bck%4GNf+(CggxYj)c53@Tu(RN zu5F08ShtaBD89Ca2S!*%+FpzcWLA&)k8|_b(`IzWG78>sVGE%*<;F z{k`o-1>92D!bXRFz{~sgnq+q#gS{AkH3VE*K)wPjF zjHxy)lRVn%h6R#M#+Y4M5I!q!69USZ5lIj8eSQ#Iap!BYFzAK{{LKyz6k*`}M_M+WueRu=L z^0JO3@L%>bwsNj8Rw>#(-rieJzT{!a)~)aU*ql3?8XI1}J*jw?YwjPvl_;M!5s}wu zyTBVzN8NkAZa>N6^&?bqZD`jYtG_xx5WS>vchrD({wy+nHxBW;T~rLdz-B9ygcX=)NJ&>*gPZCaZ0_aJ7g$ zG_i5dKsQESdfwWScn^!pfP1)mW7r~6V^+QZTnpkY@5`X{pe=uN;oIh_1tiRmA-wQs zX(rvB=~l=EqFMeNgNXQX6Vb>L3BaYlMcTMVshdlDAjZBk>D}$xu~9O48L@Z2(^Z$( zbIo&C0Td>QUNrnyvVAoA|}=d@#lLaB4xO?1>GyJGJ0OOsFC0#?C}=zk*CAm zu~^BF1~7%9RA!f$7^UP1gd$$8q=g;Zg?nnjTNQLAhWX)N=sS6ld+ZWF&do-@(gRhU zZ;%Ov_~DY{Nv>Vo`En9r+J0rWCIuiR- zl%4-=@$^hCVWa6O*TV%rRkMYxc5H(=Fs^1&T}2UNc23@di;zkfZxm_Fp`llz`s(+B z{Oy}&`4AX=s-c+#mjb%*7^~|M<;n#1se(s^LLV#rI5JdjE=muNRTVzMBRp}$AH}*p z{W3=t&m1v55voO7fm-Ew@MKyCvs3U*-d3+gx(a%Vb5*82l#y`IM`OF?EBTE#Q3>6c z6?A)lUb~(tMbt9%Aj)9E!=gWu??WO58tkfGb(>MIk~$kSXV2^E^1m^`ef|fyG!@7T z%rdIRi;HfTNo7A$L7z}G-GP?qFGM-QQH8~k$}3++Hp)fXNYY|`;cklZZ*L^zBRA|z z+nGC_o}g`8WvFL#Q)O1F93!Ba8I3a*Rn8P<-p)(d#O-c7v6gM7yYXjuaG(lF^1VkD z{Q=HxO`TL_JLc6S(BGS40$rjy$j@Szq~(~o`UIq=o6mm=mRR^Pw$Q}Ka(|}OvTHgF zhGXx=-Xr~?u!{+n8Ku33_vSuk#DfG%Sj$hwooa^dHIoVjJl^zC%UpY2%3?=bbk64H zfMvN1nshtV(7|Y5nSx5XSi2kn%*cURO8O-W9IILQePEu)<^}8{4c@NKmHFH{!n*Jo z%MRj-T_Dfh+zK3%_|B45Nma;!Y6}gz|BW#UO81fZ&zJ*24}F)~E5!~(A-ztv31AeN z(i8D7@=!&! z^Ih`pyE9}0Wblrw8%>PoNR zfeP|U^vk&DSzYA;_po)fl#=IvLr@&2jEA0xS09Y|zRb$dQ5*<(D!3rK98qf>LpL4j zJjY$2sx99uin^5&v<8^_N0?`HZOH!5}sDi?EA3U-$eYgYGQw!o4Fpt6tZkZ@Rz zQCHWIQVEtJPARjD$`9U3E_qp()d3j~VT6ry){VIE%%ngkAhQteGv(MqpLRxjGXIXH zBEq#I-L3xTxOrhw4R4+&Gb&53)T?CpQ5X~I>gZ(+Q?EIc^A6(4W({!`*V^gz3hoe9}xjxGJy&^U}cXK$=gmw3D|)y z8-Z>=tT8=iAyh5R`iY-kWj7E8;qC7m4c>f}W|844UrT>2_c0N?`pzTiCOqT1 zaai3k`9iwMZ>k1pDS$oxh@H$Fm?IH9@?NQmxWqn*h1>E)?`+@YM0}#&+5VhA#h9qP zIGcK>=q|eZ0_}7&^8kwDrrum{66PLIUi2A`JZmgn0j4j-(^9k@!2vLe03rml@XSiH z?dQ96OE0G7b>-}^!^(etbVg++g*BsCP0=QwfJy@rawb>5n1Y%pI24yXB~%k#1-l@R z-r_pI`)E5+qlIefvs2$gaVazHRdV)1dOgJEFUwJXnDahpm(VG6hh`I=fPd1f?urq> zkkiG8*s#wCJtPsDcF;e`{9oe{zi`2Zd!q(Q$sf%!+Ewwh_FK*x^?8cGKFvd4h$jf} zkNAbR!WQJ_?BTyr9&_2R*hhtkb+SIO)l#2xibKwSllou7cZ9CP1>+ft>>oLiZSs|L zx8r6rhnZt(dqdkDogSa{R>nBe(<*SikUL`vDpLoH=nfX5T$?05S4!j@ zRu}uK@BVDFr6|2}c0L4Ws&^j2V3A^`g+94clwPg4!Y~mYMuY2tR_^(RX?X!6d zy}%fJ3c&ib{I*ok-Mmt>jyLFvzAC1tpQoA0BT%U*L;JTz{3FoCGY{sfat6b)DoyZ{ zS7N4R#U1M#hI*f|9`J;WPv@S*tpE8zMUH01?ohD}RAD{2?WSc^_1ygh|QAe3Fu>k71Zd^YRkeo~_ zg#;qeb6(8x8TSp+ljG59$nF^KL_}ycrF=umUZ(SqF1h1wQQqvSayEftOo`xn4pC!-YO#r+^EzHA)p`2Ooi zYHC#p5dZgXnIxQH_-;ZffAH9^z^oc7YuDWim^z03x*5x!D*d25L5x3>QxAfB0ehxe z2D~Wff$L0U6y`0aX7zl4j4{5ffofT&;Z)EQ91F8gq?vo2MJz_hYIp3#H$orn%9gdt zB6icDdu~C%iEXKjRnrVU7gSHk-BQJcbyz&PlN`({Ls-c3u3LT(+n?Orc7@k0Y?N>$ zCb@dDRiff69+YO7{RuS5*q`RIe|p`N1AY~^n|~>sF)hBIK&eNtjEntT`{wK!;2_MF zN%O66uT0@ep^FLg<9NY(yzR6T;cQ>{(^{dq`a0d zLo2G8$bZYvO2_c#&sqOxeM3lHE%!5<^!KTMCO3~y<~^DLsTL$NiB)okygp_n4z2%O z#Tb+$jwd|LUG~J?CG})AuOSQ!`fB;2>x-I9Q>i{T1g1U0-JP$Fi8oA+3L)SVvLkEQC8 z=B^vQ<>z{ui&?Pxob_*#7sn5Gk5R!Z@Lq-y)0U#M52mH6gHtEAD*$VxdBaKKU*U_9 z+S3DssEgwx=(uW-YTUVxm5#bBX(Q)W)f8vl4&fQNgTbdv`EPLplk5xk{SyzNNK@8^t9_xLdUL_9J$;1hG4h$a<7kX}o8h@-p70~(^jNNzFuDlRa%DIb zBu_6^Aq49Fx}FsxFy>Y6ooMbSl+IOW&lPrzQ?%DK!ne75F)(f`7pXpMKhZoA*%I=1cLDV!#Y1b8EitVX_%-aKk=>N55nx=<8&`|lJ<$JmkJu7A-SRuMK*ehgl+$HtA zLm5>`NAT1=Bb`=1m)t{Uaj)jFtm?O#hY0RM=m-%+7x?%?u1j^RlyM&liK*#Ok|6Pde7DCQWwUX_q8D6CJyr@Kfs$;Ndz zynI|Kge5%=s=o^Um1vvYFrhfQfhH`@S|VbfQ4qB_aX(7I+MAKtqA8HF!X0bg2hSCG zg!Ku?b#~{|p5f?;3E)u4v9!@q%;QlRPBk#U3D_|4_m-!4)j3sPhB%J>rRmK z7bY$d4>gQOYaW$3YiqHyefw-iOYI?WerACZh3)Wv9=7JYB}m=Bbi0!9Z>X}0pVdS~ zTwo>Kp)c5MYCsS4SiC;f(+poQh8NGu_8|1H9y>&pJ>d`Iu$N*s#AJVN%J&A>0TojSs#poQ;CQ> zxFvlE>2+_-#jcvlZ0^P;pf|&@U1SuDp##(VhfFVy;U1GkWvfsX|bFcB=)2Fp%$L@GZ)b9&MKMhZf4DW!t(0| zKGRjNK^BoT<8X^0tk#8$7Wh!k(>(phEwOTER9AE1tl2A;q4_OzA1Z+J3G{=lCQ;$c z3|+YZLwt~19y2Tl%dO12RrBCadc|=y{JcR8h^3~%HyI8)@Rwn+iD!5qwU{g1F(&Cs zbB~<=2ytBHJwGhsE_3W?KkRI`><(4+=6Z!U#oU~| zpnMwrQZ3Cq$HhJX9;@>v&Wbt%AaM8Qj_yEeYp$leGp5sL+P+h!DCX;U;&XkIW0hrB zW^I(#%P-<-W{6d;&mqy{c^|WehR$ka7Y1=jFoNCLnqig3bM)+3kGEX0WL=8!=jYV0 zDdr^XY2On*g{B|YOIqC9F%q1Gvl|sJYYH^_o?1C?3;r!r*BKPsRr(WrwS0s55`3vB zIPD^j=~H8>HB)9Po`|Xt3^D#tB1-LX%jT15q{1cEg13{))$$Y916EDlUN}p`xCVtJ?c#uO@9I=xntlAqd>;yu0|DD%3XfQ zN$3JhEO~$_uw9~_O3#Q3RtdxeQA@EyKIX;T3w%csbFn^_ zYo`s;k7uZvTElP#cKZqoJS)K;315viXXRAIUwHrO?>d+=g))8na}?F;6-$6X zyd(qq4u&sCKFY-_&4cyk_?VJ(#WZnr_HWIaKd+Ej6H<54_4{E^L{f4POgiHyaHRqmL#WHfMw2H{tb1~|r20?rV-Pt zYS9sEl@VjE?rLA1A>h#FERf!)5i7KezXVyM@mAan;KM}>%j;|Zi-P;BaxpD(+*ujw zLpQD~<<1mK`HE2lYxZt-r{@K-!WxT)2D$W&$LJq*b+#V01M6-%7N#yH*reUTq%v=* zdqsEjp+5c0$p2Pp!kkIwR>ac(0i;Wx#{b0Tq(-!gmX&3y=(YSj$^jKNJe_Up1TiK` zDw6CG)~lOe)xPPE0_z`(oWQer;F~;j;If&3#UYEXy{N^46w4lHq2%V{>kcEl2%FjhQ6Tel7pstWn9) z+)S}ONZv%Cm>+}GP&-yDS|Xxv53C!+wtC3}!XyF47wrN-7klnE+)IuJ{$gM zq)C+8yJ+?HU+h!WLriz}oIl>%!i}zH;abk;vr=b?_FqEUzpJ`W<`*#(5Qsg+)hnyi zt&(fTKg(z$ds=#{f?j(FR&I0hB(Fb4GoH&Z!nU0YbFz$&D_Ggd?T1 z!Eu(sP~vBqI-Od-^L=_L@2P~T=PND3N4g&So$bQa%Rfjs?68ze{E?Vy_+6$HIhs*& zv48y^WvKFD%wm~=jbwX2hrq{3IG{d`(^kq7@>I@>zgs%BgYJ+BzKnP`gI#45kghtb z%NcCNIh${~E$uzonus26ZSf${OIS|&lcu779D$@!_&-)+7+M-0+Ua0bXOg%2a()p9 zcAvv8*PZ%_UGs>RSh-hezvdf)>1ug^fILFLZm{0+1+1xj!Dyc7@Rbmp3GVENlsW=B z498QQ+!AoIq;YAJ^`@5BSxDOdXQD)s8J7T?|_R4A*JcCm-iTh z{MFnRK$fdMO!73>Ftg=%F4_-tFAYRZ`6qb4yxzT z2lHxWh@FkqOXc+jb3Yd6*%dzeRv--AuUEgpWz44=atCE{cm8I@^0HGKAY zey*NsM9^w~qY@s%RT+13fw#KI+Ek04V}1w$Z^}Z6=t+hUxJ(H-6*)M{3KbX{xS_aTO8x+cl z$2AzhW_YZff6U{#g8L?u*e;rRf~fA7uBnM~G#&R;I8-FZ6;#$!{|lILACAJd`bROL z1H`%=%O!TCyLw+NU4z^DPv9@p;CU=W^2{SqeD0$(e@FBk7sU57C1IrHH}#Wg2d7&1^%fRnS&+&^v)olZ6xmX&QdV zw2J8sB5TJynkH{5xZP_Jz(nwiBjS~2s)@)yi(-?!l&%y#s6R}xaiG71;Eh2gj=><3 z)LjK>BFwvjx>>h1afl^#(mK>Mkhr)0;&>CuoGKkZ{l^@LQh*s#+Cbu0=8=y*#+HPk zolSF$-AKC1c8mv6&v)fvZTa5M=t3X39yQyJAn|CYik@6Wx|8lHH{fUl>y^$lMobUxA(Wv569Z;GR5KtxwBe>cTQlXbH0RI+TFW2t4d zxSKDlG#A5NC^}DypY(D)1Uc=WiL`XYDdrYh5nyS-!OGa18J>vvbrk#E@^7&ia!8o(aq#3XI>!(#4wC(+>{Vi!Do@gPAeYxu!eyJDBY2Q^wi7lSzw-RWc;lyx zE2({7e$6ZOluWCu6z*>IKx1>qv`jMGTOL1PATms}qt3Wai6nGIh-z3Y**9QB*$WW$ z(gFR=G!#>nrnHd$07AKCthgPPLtOgPd<$aKf!8qLYnmVFQ25DNe>)SBf7Qt;uJcAr zmTEP=rJR+SbOJ9Y^}h@%V6)$n^>)7pCrxmVN{KVnspM%HE1p&r#5B|CKoFXECh!wu z2nC$E2O4jO40C4kmg|;r2W#{P5nmZb_N!HMk3eobm#-zsC+_qzjk$t~xv6m~+};1x zgyC28uMiY=DXX}a7qJg{XOA%`KML!wli2vM`DiWI11e81)-Kxsc4wOi8m|mFF8#@` zzK67he?eD%QfBa{q7*X2!jZu5f!;@M;UEUP5JBJC9wF&S7hhJ2njERLp20)uU-Srl zO&yvM58M@HH66RvS);hkxVqldyoud32eJP#+=mxxHqBuhP4bQNIiS$ingxK2)|1HA zG_GmhF&pz;bZ`%rD z{z?A&XC0z`+;VP*nsN9;Br6k(*a%AnbqC{=o0vS(ySX(#s6O1w>;wq&z$fadxJ3M% zD4)NX8RfDjB>W_bc3qT|_7j>qj{9<~E4rt_o_YZXDBUUx)Lg+v2i9 z9?K{&jwMAoVt5!PWd6|nI8f76ayurcGJ!8zH|{|5?spi$yL0jFAOq-(gF#plUsV)> zm?$}VMw1{d21;;vjQDH$8a}y#lkII|YCuz7?20ycyA^khXiC*_zl_t;jlHujH9g4V$;(Ji`SKPw$SbIWxYUU`gklFz zg5RV)Wn5=Wp@?^udbj9HFH?#eI%zhdPT$2s>Je;rO?v z|Ja_E=Q-6{`BZ^#3jG71;JH)=S`)~*1eo{T{$MQ^d9}RI(31Y!hc8jO*;SpAo)RR3 zqh2Ar5_;C-SS_s+e0>0q3AV}Hg&S!h?HBEmTz4d0dHGxyVl?wFO)V_(^nuDFT5YFw5jymiwJe(t^^u%uQr=nfyhDSP20LoEg zxa|*M*m`kZ%3koSMb;sDNSdH38<#?qwY?w=E&$`9Z z@0zd*))~iY=YdSL+|3*Q@q~wpAC!=S2K$+j$v(%|e#4 zQ4$=^oFmcf2dv$yEZ>DI3iGl85V4XmGug4-HqPt(2QE^RZ2ec1euBX`Ss(EJZ%vXf z^k>8uq!h_uDsdP1NAWzB`sCjkhjEm>xu_e*8-Ii)MR_{N=0QzgBu9)@2bn*6*ZFL? zBOF7=@swHVC-71bWk|DmdaPHrd9)q*h~*1;2_NecUwX?+DdTA7bXOea9>6N^`FS{u z{3q-Qxe$0Bsb>O+3CY0nGjb^}-{9vwtO?vL?w)W_v;c?t?)nNafJwYb0YBmW$VO#kEf2n8_yr(WEu!m_RMcLodguY=8lI+?3*yT%aIacfJ zk3^kw{yB4A41xS-rM9dLqIn+aH)q*yG2$=%CwHP&(&jF9O$}l+msF_YsA8^vdBBjo z=UX1@48b28#*wet52i9k!FlN!<Spc4Qn!p==>dN-$)Djv#673jiVELc9(t;aSED z6%rw^{a~*gKP`;7vaU=L3z==Ecv`Rag<|GO50?ZCfBj&8nnBDnnt(8E`~l%1A^Plq zQHIPlFRl2*be3VghhOwKQaIvW#c^hGhamdO*8F&A^dTdN$+{$V_zdg3{oK7`^!X;`Er6emg*?Ny2#kZZM{hc&$6Bmpl_VFHBFD6p z8zuHxe>bD~JDk~Ef_;z5q7bJKn|(Nve5og~XdanS$I=bw(b4+5u}eiOFQ$vTt&Hv0 z^5<37TODu9J8O7Ad;&tuJHAdHD2@cTR3`%Ku^`&=g_U7OgcEG{W5D)T$v%yIuBxEg zevbI)r%SYR_Ro_>v($5iuqQ7iaxLj$r#J`8w3Ij;fi0)*-mk3BRG`<;o|M!DKf$d+ z-NZ=KS)5nH5NW0|n3*DY-_zM$Dux?T<^a;m?QIHOJ?Ry*$-MfF=~t%zeD#ep?|;<2Whfnw0*aIPvqt)jJ?lLL%=xzjM~}BoX_jpB zD8VJ*V`6=jG?*z0=%yA#cWZthGw9Nq|89rQ*_~WW>NtUmkKw11g ze2h`ZLIO?g)`RX%6)S;W>QHW%xjVlU{@@G{2z2wLBlTK~r=*{RAhYUChE$wYk1nOZ zq3vMsK3CM*)Icw~QF|Uia91<6%wq(ybGK#sDPjfyJuOieb*g1yok6ol?rhvZ9inQP z5iEV(h*t9eZZN+X51c^Gs(e#b@XPh(*EOgfTNl?^4eYy{n89<@dcf%RURXKuJHk|T zlzn}5D!F1($R|wX-4%3oF;z9Af+A*`n4)twCCtNdF%4t7oxSN+bHbje^FSiL%~0z) z_)|oYvC8;dC#4zmDx#x`yjXh6Xp##@u_vw>Cgm>f@XjE9 zsX$!3J%;u@@Hl=dwoRK(&`oREWFS&+bZ~d-Eb}Pbhm}J7fth zj#!=sI3o%F*8ppfP?0j8ok~~Xf+nrHtR8Nmj43(L@KYb->EHaWoU;r)9JV`Wg0B+1 zvg&2w%1u1SdiH|MmaeXlTq!Q;mGP2yJBjB^&g6bv zu4a^GZ+StJalv=h_D}*RwwE^{P>u-~%;D#4iZ_N}AMur|6FQO^vdU0Vk}46&o#uAK zI8s+QS&Q;c=oL6?Zy}G;gA0?W=>Mm6M+u2!vn0wDQB$nNIwhEP`7e{GWAVIPQ@fV1CN7n~^UAIL?*qz36uNnZHDL z`|q4|`9!HLC~msgk4}aXru($CFeh zz_ts}NwsWO6TOci7~&N?i@X3aI@sl$l2AB%G0jLQ?r3+ECtI2G)r~f*AI=_EGu|#i zAfwfovUS8e>ir*3egnX?!z1|*5$Ts)P(=IGZ5Grm-y%t()OS)pmk z8hK=E)%JhNI@R;wOJp+L8ZCLsfa*>Y+m#OkDz;Qujb9K7T@YK7J%EbnC+)5$F%Wu* zY!a2CRxVm9oN<$k zwK>a@kSoE>aLe+Xdgd`MY0A7}zN_c1z^_H+m$&Rw$Y-B5Jeg(^^pNuoQwm@MRsn=7 z^3(j62ffm7`mN=i_d}-&_lcw4&@Ys!X0>zGJp5Oy+52jID8YB2BU|cOxGdN-#qIMX zjlfwQJSkL9fCpuUZ1#rti|ygMl$h*yLGvH7E*8K?kG%6kz|e<>@lg=n*X>|gVvEQouqy?j+7)*={$vf5s< zB&2qJPd3W%#F7c=H~4A#uBhU#R@3UH*qir1adcxXKg&M1FvHZsp`Hik#c?}9(r5Ga z)J!zq434v(poaGIVJ(hq!Mc_aq7Qi^XWn>GJdK-5tEw)-3Sx$r17J0mPUPyTx;Dm^ z_XZ1ce>7zc4t2U^Z>c(_EG+wkb%F8LWFl}SVkPf^LPi*|+(}H!_bPGxsu5-KFE$mopdslsnR2R;N!eU89)??$Bi(Jk538?Ry5x zSCLXAyFk%gLt+?K*<9&7yiTd=wX2L>mM8MlJmn`1-6$5v7B246(Y8jO(#6L2 za3`DICNbA6s4UG~(*DgpTKY7I&%;FGv8yq#i>>;q^JVonS=LhHh@2e1lorK(ZspWr zytBE;0JHEurh36d3i9DUtFHBR?!Q@9o#8mE`D~(`!0r%u?GKv7+z)zhE zTNlt-0^B99YP&iJE9rmIMsDJtwbmI;@t~!P18Q{u4QO)z%+=N#g zOf60hk!BqHKAe~AJpoH`n)^AndzH!uTu`TL70idJ_D8krkAr2W0_Q5g({kww^@+F( z`G`?R5I503DGKOZuPPL^d8S3ITi`{+Ko}ss)+r^!ulpG)?%>P$w<7JaD?UBAj3(l$>Bd$}*WrXOSk3b8> zajE$h0crm$H7@^tFGKd`NyEh013yAf!9A4;oZ4qtl3;$IfO=)GLJCraY{(r(Lz)Nv z7RgVL#)bPl`HtjEl&{#slM7J}fZ*z3;AG8v>kL{3%bprL=Q$rzsPFvq;gl(Ha_b4` z=B;#?zCyQm;abnraNY0^l%D{2LT7t5A%a~sBLPt53o}4URSrzep!$vfYO)ni1^iq* z2ANiS>FBQpx(0W(?0cD?u`pFPg;$R8T;X?}btGalrB2-VRgC#Zzlra@? zs!|>O7J1^6B_-z6*eiWe2?sbL-)d@GXCx?u=jMR;PK}bQ_^DIgyYeHC;tXnVDMFMnt!!)?75La(1C21iV_ zIAh8jtH9CJf%B1MW`rIK2jfH;MXCHX=bT-Ka$fP)cV^U3?(~p*{_%GOE^D;hL{H)i zf3MC~NxfidbZbulI0M`!dPjH0d!u0=sRHi#f|)8|)Ty>vMI2LCnl@`L4L$6WuZyPkOvn#E~#pzEY$xLHjH7 zobF%G~P!34EK+mS{4@k;g#1t(4c&|79R~5NxTngTJY1 zq~PYYciKkOogHdehQG_SYB!`F;Yv)eehqH`K1cbJF2c0J)6-o7R)(X9^)aROvIf&C^?|A^bp&!P9rO;Kei92Y;`{D)PwLSFx$+Dt8`Jt9t8);>}1_GE8nPqj{al z@@tAUPl?db_|Ic?bLlLmpVlS^MB<{V?a^YF_IQHpA4VBRV!XwMN18_mo!SMSAOSy0 z48-NG)x7Jg@Bt{OX6l!!nxR*FiG&jPFp=z(N-}{Xe^%mXr^S_gy+A#4y-t)okJ84` z&VDzq!^4TO{6^B-*$!f*V&YI=nq1`gXVZs``etHCdh*i0Q`#vXy4|X<3N8Nw`Q&X! zOYSi17y>1D%I4e7(fq3NJNXz_k^V?M6cbmc#IVUYF1_DO%rwGaAGpvQ`)1^|Kh4uv z1dbo(Q2cpEUDI9dLG+A5)NS%ySM!|TGnOmv!9Sa4<014mGoVLOllcfSb+HT*-U(3` zF(BGw^{f)6Viv}-#H#q7l;-r$CVR=tB%}^ZWlT@=`a6mtg-F&oQ{5um@KBX_r6e}` zUEul+)7$><$lNJ5$AnsA1E0@g)cKHEje%L*_8H@mgvXoA*chsa%MpJu=>%Fu2`k+ZpM8$1mn0x20nMBG8n*sl=88tp~j^$ziC z%D5rkvhhYygY+%Gj$ybY{)HB99Yb7qX1-er=Ro#2viwFOqI5}$So*{@UBL0&n_fAx zrL$u{bgPQ#86RwydOMdga(-5sOBICt|SaE318^py@Ec!z^o zjT5{d?LLP>*4N==K|_TcY7)wn6e`kl_fwRA!hKZp@MJJmFIlmJxyTcjoX8UB1;i}k zcMy-HiT&#Q{K{X=W#wabLVT*UtD$+tj&ESdvB{c}pBO<^aKhT*=EnD`x$9+D=RZcl z_Ia>(lE<>yWa%+4sZz!BF_ka=)LmzC^^$(LBW+bkmq_;SzVDBK#ce$4E*1FpIApDU zu=6Ny)&JgFM1^Pg2hhxDj;n(Z|2g4kTIgr?c97VBlmpA63NU zss@Icaa@F6t*j&!8GIq;D=!XS&FGx3KGdboNX9X4AsJL_Wtg_Y23YGb&j;(T5 z{J@%5hGki3)e?l({SYbuVd=cTiVJ2`%cB`|$M97I^3vob?Pdf|%b#1~Kr3)noFcwP zX7lTx#J|i!)MLe+6Fqpm-6{HDE>&z*P0;)TTshf#+?PBhh$z5->=eaxKBX}C)MoP; zqScsVgYxTuT>%T;7^*`4GEQ)n+|_vxZ!)t~qp2JW#;YR)y`$mW*qKWEKcD$YPVHfm z=R-tV;=-LJ#^=i87%7a4UUhg6C5|sNx3VHnv@y!A9oR9|F`YfPIa*$QY2s4S&AsDl3gSK@#I%BWa*h;q>R~^fE_Em2uR`XT zT;0qTyUm_aN(G$CUOodee}j_yIM4R`n{w4)m+cBKne~Uo}U%12mJ&+o5zT> z^Eg^cziWQTTXA?yzgV99{`F$wyAt@uUNLy|U+M0Ys0yG+N##`j{nte$Vq3_TGc;QP z{kw*%nN$~OQe>z^{QYiL5`aWjVIXR2N*^JCWsy&DnQ7svOD4mbImYpESG9@lVyo2% zsr~t0EWSKMN3STt(-3v-bWJ~Sh_3Lq`k^(_5Y$@C6ZLfV)87*0?^8Sy>QSfOhx$eM zq$Ej(sG;|5v5Maf%;qy12B9k9h@12T8JSn95K+E$%d%=M5hxaZzU@Gi&{p?dw*II8 zB1{pnd?9!9#q<;RCAj6nXB^WgjQc%?Xp8mEQ~9O$fo#F#@52Ms&)^-yOx|RS?tO$*C!V5e-$=~F^buQGNm z_wS|S^dLJ+Dr+TIBO;cS*x_7wUwtfj*nFNNeL2FdqtyR1p02V`i&UNuLCmS^{uBlw zBU-l^3ZTy+IrUtBC3OXu$xuUxMNKh1xnN41QJObXR*14{sfOEWtGOo|@pH#|GO6lm z-vfb~EzIw5Xrl=2k9q8k@Q|#jE^=Gdo z>c@^}=YZj{gT%g4=vG9sZ|sHQgzBjf=uRNW|$0PxV{VB&z%odPw_7Igh z+Kj8#Q;jYAuVU}uIx(Z6^%mUWTTk^#i6h=Mgx=h#jp0=t@S*H797UC1Nj?fj_gN{;O2 zCg3O&M1D>yRp3G&&fWaNzBu!HjfpNl@Y$afdb9TkGXA)_xKr`1%c;tVpvSXp!`hkP zVx5)nV(PHJV|fr2oGB67i#iKsh?EWg9xNLOPYSEjWrKRxLkknBL?Dbp^`7L_9DD`G zo~43^ySFN79kEN1>l{J!w4BBqr%0#NrZ^XjO82IKD)u(aliAO^DXzh z=l7oXea>@!&v}05`SX2$cs$GHb>OSUgycBUVQe*#dpoM;!w^Lk!l|$azB*<4v7TqI z?nZZgZc@Y=x~aJP)bow=&|>Vvy6c{=L+(M&+?=ft8Zhp=2ZK$>?R%vM` zh?}U@BTK4^5a}i;4_D51HbfVUTZ#I7|E4Tsc&F;VpLowztNx4(nQQElsP_9$Z4ikJ z=pO1~=lKG0Y)ksG&qwaib-*Hh+_XPt-jxFQCJ~Nv@ z4jqXzeiXTK&!fE-ptk2Ql{5c)3CGpk0=aMjD%*E&o=c@&K;JuGKLTbq-g3^~$GCrfpGrM%#oR!513JJ96cnH{e; z-*&&|$B6jFGM#kLa_Oyqf$JO3^ztanOE=GPsj=V@M@o z7k_A;TCb(jE?q$kDRlc_VE~Ky+|r^c<~${HboKP5OeWQOzWzragbvN`xq0qg)jO)L zk@aiYz6rj$I;(o-u&buH!29%P`dZ`CClnd;Z%<=*8i(V|>mR00P%L>m6nQ8r@khC*b< zr{I#dV7ueo_{TJzS=H`kU6&jVbwK%y|AZ`8S|hcvWSKrFZ{M&KM_u2AoaXA_E6Id= ztS$ZuXjIB!@`7k!Z&yWyGZ{CceN@^s!zucZ$@Dx9&RX zP0tn(Yf>*|%^0lD@ic}^vlzll3<|xUjM_uKTn>Sdw-gK<)+APmVLL@8&uf3S&M}gm z|N7ai?5RR5J8kEZ!N5S`opPh}ITQ?i?m9wHmi1n%);G^fP)%(+&a^k}SKpA;^&Ny1 zIF?SfsE04E-Cg%LY5lu-#->C;io1pG<10e5tfG44hMnm9ux&Pfbg-`AOKLYtR6?vZ z+>Ys?VpEJB?H9M8FE$sJ67cyHOga|$OmV<*U__z!$-vu+u(bFGkl9=3FG!BZHW}7b zfhm1mI$WwhwTM0lc*;*pVWjf3O}(UbM~m&)LB}>*cribOJ<9s>6Yc~wfG2q_Uju_Q z)eP=f3vojxqWyax?#uue+z#~xcpI@N7CbssLav|8G5!eqHhl2_`(#o%19hu2Gv>?_ zUaQ2mB5#k9Z1lZ$2h#H{LbNhlxq+}E=4B0j7xSp8C$cjL94dS_CYN674A_>8CC6|> z7L)Ba$9Ll1izgkno6Yx9G+_3TIEsOLpjAHUrqH;1t!9MbkFL6gwy zdyTZSXfF^5rUWa3UD95NU{SDq(OZzS+$QJ~i0`T+cWt=h0Mr$bh#UX_I0(pyk@SET zC;q4e1OPULkQYYLPHrv^NVJW%1JcpY)lb=D8pSt5f^b2 zD3l>U!h+sgb{Bg;DEXSgX%fo{Oo?Gz`1<&~N_L_rZ}Fm8xm>5R4xAw=cdDSjH@K+J zy?0Didc^#i_45v9l@i7A!m%{FbUH16s6D7sTBL$H-c`(A7c-(DG;6JryscDPgWTm` z&Og5dxtlJrW5ck`(D z@sDy@Ars4Q(xEA?uhmnJqSNxuHsRHpQMTE2xkd9iOybg5aSEK@m^wRM65(4seTuJv zx&k~P2in&Y@TZ<`{Yl1-W+1>mpnpdHwW$g91ptTvem5~;;kWTbT_~1-hvN_g0v3*e zV)XC^`i4-90Rn@AV-fiCSh$WbSH~~rfB6>+R79*EfdKpXZ~kIo#sA>PU|}#ELLaLK z$6(H5;CfKPbpi~l55*x24fWu9|Ih!|^YHH$)PS%-vA>=U)D=;&{WQ@261ExtasT=U DI&`uo literal 0 HcmV?d00001 diff --git a/src/python/tests/test-data/hmp-queries.sig.zip b/src/python/tests/test-data/hmp-queries.sig.zip new file mode 100644 index 0000000000000000000000000000000000000000..0d54844b292c5d04d7313203995f800e37cf1089 GIT binary patch literal 66516 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 literal 0 HcmV?d00001 diff --git a/src/python/tests/test_search.py b/src/python/tests/test_manysearch.py similarity index 94% rename from src/python/tests/test_search.py rename to src/python/tests/test_manysearch.py index d38fae5b..6deb5c3b 100644 --- a/src/python/tests/test_search.py +++ b/src/python/tests/test_manysearch.py @@ -57,7 +57,7 @@ def test_simple(runtmp, zip_query, zip_against): against_list = zip_siglist(runtmp, against_list, runtmp.output('against.zip')) runtmp.sourmash('scripts', 'manysearch', query_list, against_list, - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) df = pandas.read_csv(output) @@ -77,9 +77,6 @@ def test_simple(runtmp, zip_query, zip_against): assert float(row['match_containment_ani'] == 1.0) assert float(row['average_containment_ani'] == 1.0) assert float(row['max_containment_ani'] == 1.0) - assert float(row['average_abund'] == 1.0) - assert float(row['median_abund'] == 1.0) - assert float(row['std_abund'] == 0.0) else: # confirm hand-checked numbers @@ -93,10 +90,6 @@ def test_simple(runtmp, zip_query, zip_against): match_ani = float(row['match_containment_ani']) average_ani = float(row['average_containment_ani']) max_ani = float(row['max_containment_ani']) - average_abund = float(row['average_abund']) - median_abund = float(row['median_abund']) - std_abund = float(row['std_abund']) - jaccard = round(jaccard, 4) cont = round(cont, 4) maxcont = round(maxcont, 4) @@ -104,12 +97,8 @@ def test_simple(runtmp, zip_query, zip_against): match_ani = round(match_ani, 4) average_ani = round(average_ani, 4) max_ani = round(max_ani, 4) - avg_abund = round(average_abund, 4) - med_abund = round(median_abund, 4) - std_abund = round(std_abund, 4) print(q, m, f"{jaccard:.04}", f"{cont:.04}", f"{maxcont:.04}", - f"{query_ani:.04}", f"{match_ani:.04}", f"{average_ani:.04}", f"{max_ani:.04}", - f"{avg_abund:.04}", f"{med_abund:.04}", f"{std_abund:.04}") + f"{query_ani:.04}", f"{match_ani:.04}", f"{average_ani:.04}", f"{max_ani:.04}") if q == 'NC_011665.1' and m == 'NC_009661.1': assert jaccard == 0.3207 @@ -120,9 +109,6 @@ def test_simple(runtmp, zip_query, zip_against): assert match_ani == 0.9772 assert average_ani == 0.977 assert max_ani == 0.9772 - assert avg_abund == 1.0 - assert med_abund == 1.0 - assert std_abund == 0.0 if q == 'NC_009661.1' and m == 'NC_011665.1': assert jaccard == 0.3207 @@ -133,9 +119,6 @@ def test_simple(runtmp, zip_query, zip_against): assert match_ani == 0.9768 assert average_ani == 0.977 assert max_ani == 0.9772 - assert avg_abund == 1.0 - assert med_abund == 1.0 - assert std_abund == 0.0 def test_simple_abund(runtmp): @@ -151,7 +134,8 @@ def test_simple_abund(runtmp): output = runtmp.output('out.csv') runtmp.sourmash('scripts', 'manysearch', query_list, against, - '-o', output, '--scaled', '100000', '-k', '31') + '-o', output, '--scaled', '100000', '-k', '31', + '-t', '0.01') assert os.path.exists(output) @@ -229,7 +213,7 @@ def test_simple_indexed(runtmp, zip_query): query_list = zip_siglist(runtmp, query_list, runtmp.output('query.zip')) runtmp.sourmash('scripts', 'manysearch', query_list, against_list, - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) df = pandas.read_csv(output) @@ -288,7 +272,7 @@ def test_simple_with_cores(runtmp, capfd, indexed, zip_query): output = runtmp.output('out.csv') runtmp.sourmash('scripts', 'manysearch', query_list, against_list, - '-o', output, '-c', '4') + '-o', output, '-c', '4', '-t', '0.01') assert os.path.exists(output) df = pandas.read_csv(output) @@ -695,7 +679,7 @@ def test_md5(runtmp, indexed, zip_query): query_list = zip_siglist(runtmp, query_list, runtmp.output('query.zip')) runtmp.sourmash('scripts', 'manysearch', query_list, against_list, - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) df = pandas.read_csv(output) @@ -724,7 +708,7 @@ def test_simple_protein(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs, '-k', '19', '-s', '100', '--moltype', 'protein', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -799,7 +783,7 @@ def test_simple_protein_indexed(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs_db, '-k', '19', '-s', '100', '--moltype', 'protein', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -845,7 +829,7 @@ def test_simple_dayhoff(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs, '-k', '19', '-s', '100', '--moltype', 'dayhoff', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -921,7 +905,7 @@ def test_simple_dayhoff_indexed(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs_db, '-k', '19', '-s', '100', '--moltype', 'dayhoff', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -967,7 +951,7 @@ def test_simple_hp(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs, '-k', '19', '-s', '100', '--moltype', 'hp', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -1042,7 +1026,7 @@ def test_simple_hp_indexed(runtmp): runtmp.sourmash('scripts', 'manysearch', protsigs, protsigs_db, '-k', '19', '-s', '100', '--moltype', 'hp', - '-o', output) + '-o', output, '-t', '0.01') assert os.path.exists(output) @@ -1080,3 +1064,45 @@ def test_simple_hp_indexed(runtmp): assert cont == 0.5994 assert intersect_hashes == 1724 assert query_ani == 0.9911 + + +def test_pretty_print(runtmp): + # test pretty-printing of output + query = get_test_data('hmp-queries.sig.zip') + against = get_test_data('hmp-against.sig.zip') + + outcsv = runtmp.output('xxx.csv') + + runtmp.sourmash('scripts', 'manysearch', query, against, + '-o', outcsv) + print(runtmp.last_result.out) + + # if this fails in the future, it might be because the order of the + # output gets shuffled by multithreading. consider refactoring to + # do line by line? + expected="""\ +query p_genome avg_abund p_metag metagenome name +-------- -------- --------- ------- --------------- +B. fragilis I1345 96.7% 7.3 27.5% CD136 +B. fragilis I1345 96.7% 7.5 22.6% CD237 +F. prausnitzii 58.4% 25.3 30.7% CD136 +""" + assert expected in runtmp.last_result.out + + +def test_no_pretty_print(runtmp): + # test turning off pretty-printing of output + query = get_test_data('hmp-queries.sig.zip') + against = get_test_data('hmp-against.sig.zip') + + outcsv = runtmp.output('xxx.csv') + + runtmp.sourmash('scripts', 'manysearch', query, against, + '-o', outcsv, '-N') + print(runtmp.last_result.out) + + # if this fails in the future, it might be because the order of the + # output gets shuffled by multithreading. consider refactoring to + # do line by line? + expected="p_genome" + assert expected not in runtmp.last_result.out diff --git a/src/utils.rs b/src/utils.rs index 4744fa4d..4209413e 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1129,9 +1129,12 @@ pub struct SearchResult { pub match_md5: Option, pub jaccard: Option, pub max_containment: Option, - pub average_abund: f64, - pub median_abund: f64, - pub std_abund: f64, + #[serde(skip_serializing_if = "Option::is_none")] + pub average_abund: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub median_abund: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub std_abund: Option, #[serde(skip_serializing_if = "Option::is_none")] pub query_containment_ani: Option, #[serde(skip_serializing_if = "Option::is_none")] From 42b2aae9c7f0481b5ead88348936e54401f193ee Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Mon, 12 Aug 2024 15:56:53 -0700 Subject: [PATCH 15/33] MRG: update documentation for RocksDB `index` and internal/external storage, + miscellaneous improvements (#416) * buncha doc updates * moar * upd manysketch * update with pretty-print * minor updates * fix typo --- doc/README.md | 233 +++++++++++++++--- .../sourmash_plugin_branchwater/__init__.py | 2 +- 2 files changed, 198 insertions(+), 37 deletions(-) diff --git a/doc/README.md b/doc/README.md index 27f226c4..d81f6448 100644 --- a/doc/README.md +++ b/doc/README.md @@ -9,28 +9,43 @@ | `multisearch` | Multithreaded comparison of multiple sketches, in memory | [link](#Running-multisearch-and-pairwise) | `pairwise` | Multithreaded pairwise comparison of multiple sketches, in memory | [link](#Running-multisearch-and-pairwise) | `cluster` | cluster sequences based on similarity data from `pairwise` or `multisearch` | [link](#Running-cluster) - -This repository implements multithreaded plugins for [sourmash](https://sourmash.readthedocs.io/) that provide very fast implementations of `sketch`, `search`, and `gather`. These commands are typically hundreds to thousands of times faster, and 10-50x lower memory, than the current sourmash code. For example, a `gather` of SRR606249 with sourmash v4.8.6 against GTDB rs214 takes 40 minutes and 14 GB of RAM, while `fastgather` with 64 cores takes only 2 minutes and 2 GB of RAM. - -The main *drawback* to these plugin commands is that their inputs and outputs are different (and sometimes not as rich as) the native sourmash commands. In particular, this means that your input files may need to be prepared differently, and the output may need to be processed differently. +| `index` | build a RocksDB inverted index for efficient containment queries | [link](#Running-index) + +This repository implements multithreaded plugins for +[sourmash](https://sourmash.readthedocs.io/) that provide very fast +implementations of `sketch`, `search`, and `gather`. These commands +are typically hundreds to thousands of times faster, and 10-50x lower +memory, than the current sourmash code. For example, a `gather` of +SRR606249 with sourmash v4.8.6 against GTDB rs214 takes 40 minutes and +14 GB of RAM, while `fastgather` with 64 cores takes only 2 minutes +and 2 GB of RAM. + +The main *drawback* to these plugin commands is that their inputs are +more restricted than the native sourmash commands, and in some cases +their outputs are in a different format. This means that your input +files may need to be prepared differently, and the output may need to +be processed differently. The plugin commands are also a bit less +user friendly, because (for now) we're more focused on speed than +polish and user experience. **Note:** As of v0.9.5, the outputs of `fastgather` and `fastmultigather` almost completely match the output of `sourmash gather`; see below for details. ## Input file formats -sourmash supports a variety of different storage formats for sketches (see [sourmash docs](https://sourmash.readthedocs.io/en/latest/command-line.html#choosing-signature-output-formats)), and the branchwater plugin works with some (but not all) of them. Branchwater _also_ supports an additional database type, a RocksDB-based inverted index, that is not yet supported by sourmash (through v4.8.9). +sourmash supports a variety of different storage formats for sketches (see [sourmash docs](https://sourmash.readthedocs.io/en/latest/command-line.html#choosing-signature-output-formats)), and the branchwater plugin works with some (but not all) of them. Branchwater _also_ supports an additional database type, a RocksDB-based inverted index, that is not (yet) supported natively by sourmash (through v4.8.11). -| command | query input | database format | +| command | command input | database format | | -------- | -------- | -------- | | `manysketch` | CSV with input fasta/fastq paths (details below) | _produces_ Zip database | -| `gather` | Single metagenome in sig, zip, or fromfile | Zip or fromfile | -| `fastmultigather` | Multiple metagenomes in sig, zip, or fromfile | Zip, fromfile, or rocksdb index | -| `manysearch` | Multiple genomes in sig, zip, or fromfile | Zip, fromfile, or rocksdb index | -| `multisearch` | Multiple sketches in sig, zip, or fromfile | Multiple sketches in sig, zip, or fromfile | -| `pairwise` | Multiple sketches in sig, zip, or fromfile | N/A | +| `gather` | Single metagenome in sig, zip, or pathlist | Zip or pathlist | +| `fastmultigather` | Multiple metagenomes in sig, zip, or pathlist | Zip, pathlist, or rocksdb index | +| `manysearch` | Multiple genomes in sig, zip, or pathlist | Zip, pathlist, or rocksdb index | +| `multisearch` | Multiple sketches in sig, zip, or pathlist | Multiple sketches in sig, zip, or pathlist | +| `pairwise` | Multiple sketches in sig, zip, or pathlist | N/A | | `cluster`| Output from `pairwise` or `multisearch`| N/A | +| `index` | Multiple sketches in sig, zip, or pathlist | N/A | ### Using zipfiles @@ -70,7 +85,7 @@ And the answer is: manifests. Manifests are a sourmash filetype that contains in The branchwater plugin supports manifest CSVs. These can be created from lists of sketches by using `sourmash sig collect` or `sourmash sig manifest`; for example, ``` -sourmash sig manifest -o manifest.csv +sourmash sig manifest -o manifest.csv ``` will create a manifest CSV from a list of sketches. --> @@ -79,18 +94,18 @@ will create a manifest CSV from a list of sketches. The branchwater plugin also supports a database type that is not yet supported by sourmash: inverted indexes stored in a RocksDB database. These indexes provide fast and low-memory lookups when searching very large datasets, and are used for the branchwater petabase scale search hosted at [branchwater.sourmash.bio](https://branchwater.sourmash.bio). -Some commands - `fastmultigather` and `manysearch` - support using these RocksDB-based inverted indexes. They can be created by running `sourmash scripts index`. +Some commands - `fastmultigather` and `manysearch` - support using these RocksDB-based inverted indexes. They can be created by running `sourmash scripts index`. See [the `index` documentation, below](#Running-index). -### Using "fromfiles" +### Using "pathlists" - + -You can make a fromfile by listing a collection of .sig.gz files like so: +You can make a pathlist by listing a collection of .sig.gz files like so: ``` find /path/to/directory/ -name "*.sig.gz" -type f > directory.txt ``` -When using a fromfile for search, we load all signatures into memory at the start in order to generate a manifest. To avoid memory issues, the signatures are not kept in memory, but instead re-loaded as described below for each command (see: Notes on concurrency and efficiency). This makes using fromfiles less efficient than `zip` files (as of v0.9.0). +When using a pathlist for search, we load all signatures into memory at the start in order to generate a manifest. To avoid memory issues, the signatures are not kept in memory, but instead re-loaded as described below for each command (see: Notes on concurrency and efficiency). This makes using pathlists less efficient than `zip` files (as of v0.9.0). @@ -99,9 +114,19 @@ When using a fromfile for search, we load all signatures into memory at the star ### Running `manysketch` -The `manysketch` command sketches one or more FASTA/FASTQ files into a zipped sourmash signature collection (`zip`). `manysketch` uses one thread per input file, so it can (very) efficiently sketch many files at once; and, because sequence file parsing is entirely implemented in Rust, it is much, _much_ faster than `sourmash sketch` for large FASTQ files. However, it does not currently support translation, i.e. protein signature generation from DNA FASTA. +The `manysketch` command sketches a list of FASTA/FASTQ files into a +zipped sourmash signature collection (`zip`). `manysketch` uses one +thread per input file, so it can (very) efficiently sketch many files +at once; and, because sequence file parsing is entirely implemented in +Rust, it is much, _much_ faster than `sourmash sketch` for large FASTQ +files. However, it does not currently support translation, +i.e. protein signature generation from DNA FASTA. -#### specifying input FASTA +`manysketch` can be used to sketch collections of genomes, pairs of R1/R2 +files, and more flexible collections based on prefix - which approach is +used depends on the columns provided to `manysketch` in the input CSV file. + +#### Specifying input FASTA To run `manysketch`, you need to build a text file list of FASTA/FASTQ files (see `manysketch.csv` example, below). @@ -174,6 +199,10 @@ The `pairwise` command does the same comparisons as `multisearch` but takes only a single collection of sketches, for which it calculates all the pairwise comparisons. Since the comparisons are symmetric, it is approximately twice as fast as `multisearch`. +The `-t/--threshold` for `multisearch` and `pairwise` applies to the +containment of query-in-target and defaults to 0.01. To report +_any_ overlap between two sketches, set the threshold to 0. + ### Running `fastgather` The `fastgather` command is a much faster version of `sourmash gather`. @@ -221,10 +250,33 @@ sourmash scripts manysearch queries.zip metagenomes.manifest.csv -o results.csv ``` -The results file here, `query.x.gtdb-reps.csv`, will have the following columns: `query`, `query_md5`, `match_name`, `match_md5`, `containment`, `jaccard`, `max_containment`, `intersect_hashes`, `query_containment_ani`. +The results file here, `query.x.gtdb-reps.csv`, will have the +following columns: `query`, `query_md5`, `match_name`, `match_md5`, +`containment`, `jaccard`, `max_containment`, `intersect_hashes`, +`query_containment_ani`. -If you run `manysearch` _without_ using a rocksdb database, the results file will also have the following columns: `average_abund`, `median_abund`, `std_abund`, `match_containment_ani`, `average_containment_ani`, `max_containment_ani`. If the query sketches were not built with abundance tracking enabled, `average_abund` and `median_abund` will default to `1.0`; `std_abund` will default to `0.0`. +If you run `manysearch` _without_ using a RocksDB database (that is, +against regular sketches), the results file will also have the +following columns: , `match_containment_ani`, +`average_containment_ani`, and `max_containment_ani`. +Finally, if using sketches that have abundance information, the +results file will also contain the following columns: `average_abund`, +`median_abund`, `std_abund`, `n_weighted_found`, and `total_weighted_hashes`. + +See +[the prefetch CSV output column documentation](https://sourmash.readthedocs.io/en/latest/classifying-signatures.html#appendix-e-prefetch-csv-output-columns) +for information on these various columns. + +The `-t/--threshold` for `manysearch` applies to the containment of +query-in-database (e.g. genome in metagenome) and defaults to 0.01. +To report _any_ overlap between two sketches, set the threshold to 0. +(This will produce many, many results when searching a collection of +metagenomes!) + +By default, `manysearch` will display the contents of the CSV file in a +human-readable format. This can be disabled with `-N/--no-pretty-print` +when executing large searches. ### Running `cluster` @@ -250,23 +302,132 @@ cluster_size,count `cluster` takes a `--similarity_column` argument to specify which of the similarity columns, with the following choices: `containment`, `max_containment`, `jaccard`, `average_containment_ani`, `maximum_containment_ani`. All values should be input as fractions (e.g. 0.9 for 90%) -## Notes on concurrency and efficiency +### Running `index` + +The `index` subcommand creates a RocksDB inverted index that can be +used as a database for `manysearch` (containment queries into +mixtures) and `fastmultigather` (mixture decomposition against a +database of genomes). + +RocksDB inverted indexes support fast, low-latency, and low-memory +queries, in exchange for a time-intensive indexing step and extra disk +space. They are also used for the +[branchwater.sourmash.bio](https://branchwater.sourmash.bio/) +real-time SRA metagenome query. + +Note that RocksDB indexes do not support abundance estimation for +containment queries. + +To run `index`, provide it with multiple sketches in sig, zip, or +pathlist format, and specify the desired output directory; we suggest +using the `.rocksdb` extension for RocksDB databases, e.g. `-o +gtdb-rs214-k31.rocksdb`. + +By default, as of v0.9.7, `index` will store a copy of the sketches +along with the inverted index. This will substantially increase the +disk space required for large databases. You can provide an optional +`--no-internal-storage` to `index` to store them externally, which +reduces the disk space needed for the index. Read below for technical +details! + +#### Internal vs external storage of sketches in a RocksDB index + +(The below applies to v0.9.7 and later of the plugin; for v0.9.6 and +before, only external storage was implemented.) + +RocksDB indexes support containment queries (a la the +[branchwater application](https://github.com/sourmash-bio/branchwater)), +as well as `gather`-style mixture decomposition (see +[Irber et al., 2022](https://www.biorxiv.org/content/10.1101/2022.01.11.475838v2)). +For this plugin, the `manysearch` command supports a RocksDB index for +the database for containment queries, and `fastmultigather` can use a +RocksDB index for the database of genomes. + +RocksDB indexes contain references to the sketches used to construct +the index. If `--internal-storage` is set (which is the default), a +copy of the sketches is stored within the RocksDB database directory; +if `--no-internal-storage` is provided, then the references point to +the original source sketches used to construct the database, wherever +they reside on your disk. + +The sketches *are not used* by `manysearch`, but *are used* by +`fastmultigather`: with v0.9.6 and later, you'll get an error if you +run `fastmultigather` against a RocksDB index where the sketches +cannot be loaded. + +What this means is therefore a bit complicated, but boils down to +the following two approaches: + +1. The safest thing to do is build a RocksDB index and use internal +storage (the default). This will consume more disk space but your +RocksDB database will always be usable for both `manysearch` and +`fastmultigather`, as well as the branchwater app. +2. If you want to avoid storing duplicate copies of your sketches, +then specify `--no-internal-storage` and provide a stable absolute +path to the source sketches. This will again support both +`manysearch` and `fastmultigather`, as well as the branchwater app. +If the source sketches later become unavailable, `fastmultigather` +will stop working (although `manysearch` and the branchwater app +should be fine). + +You should (for the moment) avoid specifying relative paths to the +sketches when running `index`. Follow +[sourmash_branchwater_plugin#415](https://github.com/sourmash-bio/sourmash_plugin_branchwater/issues/415) +if better support for relative paths is of interest! + +#### Links and more materials + +Note that RocksDB indexes are implemented in the core +[sourmash Rust library](https://crates.io/crates/sourmash), and +used in downstream software packages (this plugin, and +[the branchwater application code](https://github.com/sourmash-bio/branchwater)). The above documentation applies to sourmash core v0.15.0. -Each command does things slightly differently, with implications for CPU and disk load. You can measure threading efficiency with `/usr/bin/time -v` on Linux systems, and disk load by number of complaints received when running. - -`manysketch` loads one sequence file from disk per thread and sketches it using all signature params simultaneously. - -`manysearch` loads all the queries at the beginning, and then loads one database sketch from disk per thread. The compute-per-database-sketch is dominated by I/O. So your number of threads should be chosen with care for disk load. We typically limit it to `-c 32` for shared disks. - -`multisearch` loads all the queries and database sketches once, at the beginning, and then uses multithreading to search across all matching sequences. For large databases it is extremely efficient at using all available cores. So 128 threads or more should work fine! Zipfiles should work well. - -`pairwise` acts just like `multisearch`, but only loads one file (and then does all comparisons between all pairs within that file). - -Like `multisearch` and `pairwise`, `fastgather` loads everything at the beginning, and then uses multithreading to search across all matching sequences. For large databases it is extremely efficient at using all available cores. So 128 threads or more should work fine! We suggest using zipfiles for the database. - -`fastmultigather` loads the entire database once, and then loads one query from disk per thread. The compute-per-query can be significant, though, so multithreading efficiency here is less dependent on I/O and the disk is less likely to be saturated with many threads. We suggest limiting threads to between 32 and 64 to decrease shared disk load. +## Notes on concurrency and efficiency -`cluster` loads the entire file multithreaded, and then populates the graph sequentially. +Each command does things somewhat differently, with implications for +CPU and disk load; moreover, the performance will vary depending on +the database format. You can measure threading efficiency with +`/usr/bin/time -v` on Linux systems, and disk load by number of +complaints received when running. Your best bet is to +[just ask the team for suggestions](https://github.com/dib-lab/sourmash/issues), +but you can lightly skim the docs below and play with some small data +sets, too! + +--- + +`manysketch` loads one sequence file from disk per thread and sketches +it using all signature params simultaneously. + +`manysearch` loads all the queries at the beginning, and then loads +one database sketch from disk per thread. The +compute-per-database-sketch is dominated by I/O. So your number of +threads should be chosen with care for disk load. We typically limit +it to `-c 32` for shared disks. + +`multisearch` loads all the queries and database sketches once, at the +beginning, and then uses multithreading to search across all matching +sequences. For large databases it is extremely efficient at using all +available cores. So 128 threads or more should work fine! +Zipfiles should work well. + +`pairwise` acts just like `multisearch`, but only loads one file (and +then does all comparisons between all pairs within that file). + +Like `multisearch` and `pairwise`, `fastgather` loads everything at +the beginning, and then uses multithreading to search across all +matching sequences. For large databases it is extremely efficient at +using all available cores. So 128 threads or more should work fine! We +suggest using zipfiles for the database. + +`fastmultigather` loads the entire database once, and then loads one +query from disk per thread. The compute-per-query can be significant, +though, so multithreading efficiency here is less dependent on I/O and +the disk is less likely to be saturated with many threads. We suggest +limiting threads to between 32 and 64 to decrease shared disk load. + +`cluster` loads the entire file multithreaded, and then populates the +graph sequentially. ## Appendix 1 - `index` to create a low-memory index diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index a9e821a4..4c923e34 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -259,7 +259,7 @@ def __init__(self, p): p.add_argument('-o', '--output', required=True, help='CSV output file for matches') p.add_argument('-t', '--threshold', default=0.01, type=float, - help='containment threshold for reporting matches') + help='containment threshold for reporting matches (default: 0.01)') p.add_argument('-k', '--ksize', default=31, type=int, help='k-mer size at which to select sketches') p.add_argument('-s', '--scaled', default=1000, type=int, From 560dc3d8ff52dd634164f15509ca3f72c43e80b9 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Mon, 12 Aug 2024 17:08:30 -0700 Subject: [PATCH 16/33] bump version to 0.9.7 (#419) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ec8ecc00..4ee546a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1598,7 +1598,7 @@ dependencies = [ [[package]] name = "sourmash_plugin_branchwater" -version = "0.9.6" +version = "0.9.7" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index 3bcf70b2..40fd2e42 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sourmash_plugin_branchwater" -version = "0.9.6" +version = "0.9.7" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 84c14af72f3771bc93d7e9c45e8f468ad1d870f7 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Sat, 17 Aug 2024 08:40:19 -0700 Subject: [PATCH 17/33] update function signatures (#422) --- src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 42fef4b8..ea49b0b6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,6 +22,7 @@ mod pairwise; use camino::Utf8PathBuf as PathBuf; #[pyfunction] +#[pyo3(signature = (querylist_path, siglist_path, threshold, ksize, scaled, moltype, output_path=None))] fn do_manysearch( querylist_path: String, siglist_path: String, @@ -72,6 +73,7 @@ fn do_manysearch( #[pyfunction] #[allow(clippy::too_many_arguments)] +#[pyo3(signature = (query_filename, siglist_path, threshold_bp, ksize, scaled, moltype, output_path_prefetch=None, output_path_gather=None))] fn do_fastgather( query_filename: String, siglist_path: String, @@ -104,6 +106,7 @@ fn do_fastgather( } #[pyfunction] +#[pyo3(signature = (query_filenames, siglist_path, threshold_bp, ksize, scaled, moltype, output_path=None))] fn do_fastmultigather( query_filenames: String, siglist_path: String, @@ -213,6 +216,7 @@ fn do_check(index: String, quick: bool) -> anyhow::Result { #[pyfunction] #[allow(clippy::too_many_arguments)] +#[pyo3(signature = (querylist_path, siglist_path, threshold, ksize, scaled, moltype, estimate_ani, output_path=None))] fn do_multisearch( querylist_path: String, siglist_path: String, @@ -245,6 +249,7 @@ fn do_multisearch( #[pyfunction] #[allow(clippy::too_many_arguments)] +#[pyo3(signature = (siglist_path, threshold, ksize, scaled, moltype, estimate_ani, write_all, output_path=None))] fn do_pairwise( siglist_path: String, threshold: f64, @@ -292,6 +297,7 @@ fn do_manysketch( } #[pyfunction] +#[pyo3(signature = (pairwise_csv, output_clusters, similarity_column, similarity_threshold, cluster_sizes=None))] fn do_cluster( pairwise_csv: String, output_clusters: String, From 8b1f746cbc7962d0350d0876fdc69c387d7aee9d Mon Sep 17 00:00:00 2001 From: Mohamed Abuelanin Date: Sat, 17 Aug 2024 14:28:12 -0700 Subject: [PATCH 18/33] [MRG] Add `--save-matches` to `fastmultigather` (#397) * following pyp3 sig from https://github.com/PyO3/pyo3/pull/2702 * initialy working * writing to a sourmash sig instead * now faster * fix * [WIP] optional save-matches * [DONE] optional save-matches fastmultigather * add a simple test * fix name * doc * f,t * Remove test line * resolve comments * resolve comments * remove testing line * MRG: update `--save-matches` code a bit. (#420) * add pyo3 decoration * do not ignore result * fix fmt * remove redundant * MRG: more updates for `--save-matches` (#423) * make use of in_directory * add more tests --------- Co-authored-by: C. Titus Brown --- doc/README.md | 4 +- src/fastmultigather.rs | 51 ++++++++++++++++- src/lib.rs | 6 +- .../sourmash_plugin_branchwater/__init__.py | 7 ++- src/python/tests/test_multigather.py | 57 +++++++++++++++++++ 5 files changed, 119 insertions(+), 6 deletions(-) diff --git a/doc/README.md b/doc/README.md index d81f6448..172237da 100644 --- a/doc/README.md +++ b/doc/README.md @@ -222,7 +222,7 @@ As of v0.9.5, `fastgather` outputs the same columns as `sourmash gather`, with o `fastmultigather` takes a collection of query metagenomes and a collection of sketches as a database, and outputs many CSVs: ``` -sourmash scripts fastmultigather queries.manifest.csv database.zip --cores 4 +sourmash scripts fastmultigather queries.manifest.csv database.zip --cores 4 --save-matches ``` @@ -234,6 +234,8 @@ On a database of sketches (but not on RocksDB indexes) `fastmultigather` will ou The prefetch CSV will be named `{signame}.prefetch.csv`, and the gather CSV will be named `{signame}.gather.csv`. Here, `{signame}` is the name of your sourmash signature. +`--save-matches` is an optional flag that will save the matched hashes for each query in a separate sourmash signature `{signame}.matches.sig`. This can be useful for debugging or for further analysis. + When searching against a RocksDB index, `fastmultigather` will output a single file containing all gather results, specified with `-o/--output`. No prefetch results will be output. `fastmultigather` gather CSVs provide the same columns as `fastgather`, above. diff --git a/src/fastmultigather.rs b/src/fastmultigather.rs index 608fc215..22b9efaa 100644 --- a/src/fastmultigather.rs +++ b/src/fastmultigather.rs @@ -2,7 +2,8 @@ use anyhow::Result; use rayon::prelude::*; -use sourmash::selection::Selection; +use sourmash::prelude::ToWriter; +use sourmash::{selection::Selection, signature::SigsTrait}; use std::sync::atomic; use std::sync::atomic::AtomicUsize; @@ -11,6 +12,13 @@ use std::collections::BinaryHeap; use camino::Utf8Path as PathBuf; +use std::collections::HashSet; +use std::fs::File; + +use sourmash::signature::Signature; +use sourmash::sketch::minhash::KmerMinHash; +use sourmash::sketch::Sketch; + use crate::utils::{ consume_query_by_gather, load_collection, load_sketches, write_prefetch, PrefetchResult, ReportType, @@ -23,6 +31,7 @@ pub fn fastmultigather( scaled: usize, selection: &Selection, allow_failed_sigpaths: bool, + save_matches: bool, ) -> Result<()> { // load query collection let query_collection = load_collection( @@ -70,12 +79,23 @@ pub fn fastmultigather( let prefix = name.split(' ').next().unwrap_or_default().to_string(); let location = PathBuf::new(&prefix).file_name().unwrap(); if let Some(query_mh) = query_sig.minhash() { + let mut matching_hashes = if save_matches { Some(Vec::new()) } else { None }; let matchlist: BinaryHeap = against .iter() .filter_map(|against| { let mut mm: Option = None; if let Ok(overlap) = against.minhash.count_common(query_mh, false) { if overlap >= threshold_hashes { + if save_matches { + if let Ok(intersection) = + against.minhash.intersection(query_mh) + { + matching_hashes + .as_mut() + .unwrap() + .extend(intersection.0); + } + } let result = PrefetchResult { name: against.name.clone(), md5sum: against.md5sum.clone(), @@ -105,6 +125,35 @@ pub fn fastmultigather( Some(gather_output), ) .ok(); + + // Save matching hashes to .sig file if save_matches is true + if save_matches { + if let Some(hashes) = matching_hashes { + let sig_filename = format!("{}.matches.sig", name); + if let Ok(mut file) = File::create(&sig_filename) { + let unique_hashes: HashSet = hashes.into_iter().collect(); + let mut new_mh = KmerMinHash::new( + query_mh.scaled().try_into().unwrap(), + query_mh.ksize().try_into().unwrap(), + query_mh.hash_function().clone(), + query_mh.seed(), + false, + query_mh.num(), + ); + new_mh + .add_many(&unique_hashes.into_iter().collect::>()) + .ok(); + let mut signature = Signature::default(); + signature.push(Sketch::MinHash(new_mh)); + signature.set_filename(&name); + if let Err(e) = signature.to_writer(&mut file) { + eprintln!("Error writing signature file: {}", e); + } + } else { + eprintln!("Error creating signature file: {}", sig_filename); + } + } + } } else { println!("No matches to '{}'", location); } diff --git a/src/lib.rs b/src/lib.rs index ea49b0b6..7d623ea7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -106,7 +106,7 @@ fn do_fastgather( } #[pyfunction] -#[pyo3(signature = (query_filenames, siglist_path, threshold_bp, ksize, scaled, moltype, output_path=None))] +#[pyo3(signature = (query_filenames, siglist_path, threshold_bp, ksize, scaled, moltype, output_path=None, save_matches=false))] fn do_fastmultigather( query_filenames: String, siglist_path: String, @@ -115,6 +115,7 @@ fn do_fastmultigather( scaled: usize, moltype: String, output_path: Option, + save_matches: bool, ) -> anyhow::Result { let againstfile_path: camino::Utf8PathBuf = siglist_path.clone().into(); let selection = build_selection(ksize, scaled, &moltype); @@ -147,6 +148,7 @@ fn do_fastmultigather( scaled, &selection, allow_failed_sigpaths, + save_matches, ) { Ok(_) => Ok(0), Err(e) => { @@ -215,8 +217,8 @@ fn do_check(index: String, quick: bool) -> anyhow::Result { } #[pyfunction] -#[allow(clippy::too_many_arguments)] #[pyo3(signature = (querylist_path, siglist_path, threshold, ksize, scaled, moltype, estimate_ani, output_path=None))] +#[allow(clippy::too_many_arguments)] fn do_multisearch( querylist_path: String, siglist_path: String, diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index 4c923e34..4b053159 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -159,11 +159,12 @@ def __init__(self, p): p.add_argument('-c', '--cores', default=0, type=int, help='number of cores to use (default is all available)') p.add_argument('-o', '--output', help='CSV output file for matches') + p.add_argument('--save-matches', action='store_true', default=False, help='save matched hashes for every input to a signature') def main(self, args): print_version() - notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold bp: {args.threshold_bp}") + notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold bp: {args.threshold_bp} / save matches: {args.save_matches}") args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) @@ -176,7 +177,9 @@ def main(self, args): args.ksize, args.scaled, args.moltype, - args.output) + args.output, + args.save_matches + ) if status == 0: notify(f"...fastmultigather is done!") return status diff --git a/src/python/tests/test_multigather.py b/src/python/tests/test_multigather.py index b3649ee9..831b5096 100644 --- a/src/python/tests/test_multigather.py +++ b/src/python/tests/test_multigather.py @@ -1212,3 +1212,60 @@ def test_rocksdb_no_internal_storage_gather_fails(runtmp, capfd): assert "Error gathering matches:" in captured.err assert "ERROR: 1 failed gathers. See error messages above." in captured.err assert "Unresolvable errors found; results cannot be trusted. Quitting." in captured.err + + + +def test_save_matches(runtmp): + # test basic execution! + query = get_test_data('SRR606249.sig.gz') + sig2 = get_test_data('2.fa.sig.gz') + sig47 = get_test_data('47.fa.sig.gz') + sig63 = get_test_data('63.fa.sig.gz') + + query_list = runtmp.output('query.txt') + against_list = runtmp.output('against.txt') + + make_file_list(query_list, [query]) + make_file_list(against_list, [sig2, sig47, sig63]) + + + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', '--save-matches', + in_directory=runtmp.output('')) + + print(os.listdir(runtmp.output(''))) + + g_output = runtmp.output('SRR606249.gather.csv') + p_output = runtmp.output('SRR606249.prefetch.csv') + m_output = runtmp.output('SRR606249.matches.sig') + + assert os.path.exists(g_output) + assert os.path.exists(p_output) + assert os.path.exists(m_output) + + # check prefetch output (only non-indexed gather) + df = pandas.read_csv(p_output) + + assert len(df) == 3 + keys = set(df.keys()) + assert keys == {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'intersect_bp'} + + assert os.path.exists(g_output) + df = pandas.read_csv(g_output) + + assert len(df) == 3 + keys = set(df.keys()) + assert {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'intersect_bp', 'gather_result_rank'}.issubset(keys) + + # can't test against prefetch because matched k-mers can overlap + match_ss = list(sourmash.load_file_as_signatures(m_output, ksize=31))[0] + match_mh = match_ss.minhash + matches_sig_len = len(match_mh) + + # right size? + assert sum(df['intersect_bp']) >= matches_sig_len * 100_000 + + # containment? + mg_ss = list(sourmash.load_file_as_signatures(query, ksize=31))[0] + assert match_mh.contained_by(mg_ss.minhash) == 1.0 + assert mg_ss.minhash.contained_by(match_mh) < 1 From 2ea468329d9d9e16a0816f64f07d983c7c7792d3 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Sun, 18 Aug 2024 06:07:29 -0700 Subject: [PATCH 19/33] bump to in-dev version 0.9.8 (#429) --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ee546a5..c386a6c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1598,7 +1598,7 @@ dependencies = [ [[package]] name = "sourmash_plugin_branchwater" -version = "0.9.7" +version = "0.9.8-dev" dependencies = [ "anyhow", "assert_cmd", diff --git a/Cargo.toml b/Cargo.toml index 40fd2e42..353ec2d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sourmash_plugin_branchwater" -version = "0.9.7" +version = "0.9.8-dev" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 2c9ea639455b3d4f966a84ca547e4f517b4b8477 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:41:59 -0700 Subject: [PATCH 20/33] Bump serde_json from 1.0.124 to 1.0.125 (#433) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.124 to 1.0.125. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.124...1.0.125) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c386a6c8..8b5061b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1501,9 +1501,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 353ec2d1..27947212 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.206", features = ["derive"] } sourmash = { version = "0.15.0", features = ["branchwater"] } -serde_json = "1.0.124" +serde_json = "1.0.125" niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } From abbc92d7ecf360b059b5c44dd06ca3cffe0186d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:47:00 +0000 Subject: [PATCH 21/33] Bump camino from 1.1.7 to 1.1.9 (#432) Bumps [camino](https://github.com/camino-rs/camino) from 1.1.7 to 1.1.9. - [Release notes](https://github.com/camino-rs/camino/releases) - [Changelog](https://github.com/camino-rs/camino/blob/main/CHANGELOG.md) - [Commits](https://github.com/camino-rs/camino/compare/camino-1.1.7...camino-1.1.9) --- updated-dependencies: - dependency-name: camino dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b5061b9..558d5c11 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -280,9 +280,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] diff --git a/Cargo.toml b/Cargo.toml index 27947212..9671a710 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ zip = { version = "2.0", default-features = false } tempfile = "3.12" needletail = "0.5.1" csv = "1.3.0" -camino = "1.1.7" +camino = "1.1.9" glob = "0.3.1" rustworkx-core = "0.15.1" streaming-stats = "0.2.3" From ce1b9ff05cb91ee42846f99c6951e1b3e284d172 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:53:06 +0000 Subject: [PATCH 22/33] Bump serde from 1.0.206 to 1.0.208 (#431) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.206 to 1.0.208. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.206...v1.0.208) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 558d5c11..8a17ac00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1481,18 +1481,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.206" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.206" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 9671a710..15188b44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" -serde = { version = "1.0.206", features = ["derive"] } +serde = { version = "1.0.208", features = ["derive"] } sourmash = { version = "0.15.0", features = ["branchwater"] } serde_json = "1.0.125" niffler = "2.4.0" From a45163eff0951e430911d071b3957efe6c3c40e2 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Wed, 21 Aug 2024 06:46:22 -0700 Subject: [PATCH 23/33] bump sourmash to v0.15.1 (#435) --- Cargo.lock | 33 +++++++++++++++++---------------- Cargo.toml | 2 +- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8a17ac00..0d3b3611 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -713,9 +713,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1550,9 +1550,9 @@ checksum = "bceb57dc07c92cdae60f5b27b3fa92ecaaa42fe36c55e22dbfb0b44893e0b1f7" [[package]] name = "sourmash" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8655e639cc4a32fa1422629c9b4ff603ee09cf6d04a97eacd37594382472d437" +checksum = "defabd52b7cb3212887b0f213f68133672ed0d85796136525da454f2b19cd320" dependencies = [ "az", "byteorder", @@ -1816,19 +1816,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", @@ -1841,9 +1842,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1851,9 +1852,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", @@ -1864,15 +1865,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 15188b44..103808d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.208", features = ["derive"] } -sourmash = { version = "0.15.0", features = ["branchwater"] } +sourmash = { version = "0.15.1", features = ["branchwater"] } serde_json = "1.0.125" niffler = "2.4.0" log = "0.4.22" From 5ba16cdd313c18defba94c312a250b68ea276f0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:13:26 -0700 Subject: [PATCH 24/33] Bump serde from 1.0.208 to 1.0.209 (#443) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.208 to 1.0.209. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.208...v1.0.209) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0d3b3611..d148245c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1481,18 +1481,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.208" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 103808d5..d32bffb9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" -serde = { version = "1.0.208", features = ["derive"] } +serde = { version = "1.0.209", features = ["derive"] } sourmash = { version = "0.15.1", features = ["branchwater"] } serde_json = "1.0.125" niffler = "2.4.0" From 8f6c2d953a00ac08fc03e5c844840f0e5bdb8365 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 18:24:58 +0000 Subject: [PATCH 25/33] Bump serde_json from 1.0.125 to 1.0.127 (#442) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.125 to 1.0.127. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/1.0.125...1.0.127) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d148245c..70285a99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1501,9 +1501,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index d32bffb9..7bfa38b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.209", features = ["derive"] } sourmash = { version = "0.15.1", features = ["branchwater"] } -serde_json = "1.0.125" +serde_json = "1.0.127" niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } From dacd8649bab8cb23d76894ac5b067691cd60f5db Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Mon, 26 Aug 2024 11:54:22 -0700 Subject: [PATCH 26/33] MRG: misc cleanup (#424) * refactor & rename & consolidate * remove 'lower' --- .../sourmash_plugin_branchwater/__init__.py | 6 --- src/python/tests/conftest.py | 4 ++ src/python/tests/sourmash_tst_utils.py | 17 +++++++++ src/python/tests/test_cluster.py | 10 +---- .../{test_gather.py => test_fastgather.py} | 30 +-------------- ...multigather.py => test_fastmultigather.py} | 17 +-------- src/python/tests/test_index.py | 12 +----- src/python/tests/test_manysearch.py | 38 +------------------ src/python/tests/test_multisearch.py | 29 +------------- src/python/tests/test_pairwise.py | 24 +----------- src/utils.rs | 2 +- 11 files changed, 29 insertions(+), 160 deletions(-) rename src/python/tests/{test_gather.py => test_fastgather.py} (96%) rename src/python/tests/{test_multigather.py => test_fastmultigather.py} (99%) diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index 4b053159..37fb17a1 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -69,7 +69,6 @@ def __init__(self, p): def main(self, args): print_version() notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold: {args.threshold}") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) notify(f"searching all sketches in '{args.query_paths}' against '{args.against_paths}' using {num_threads} threads") @@ -117,7 +116,6 @@ def __init__(self, p): def main(self, args): print_version() notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold bp: {args.threshold_bp}") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) @@ -165,7 +163,6 @@ def __init__(self, p): def main(self, args): print_version() notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold bp: {args.threshold_bp} / save matches: {args.save_matches}") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) @@ -212,7 +209,6 @@ def __init__(self, p): def main(self, args): notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} ") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) @@ -277,7 +273,6 @@ def __init__(self, p): def main(self, args): print_version() notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold: {args.threshold}") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) @@ -324,7 +319,6 @@ def __init__(self, p): def main(self, args): print_version() notify(f"ksize: {args.ksize} / scaled: {args.scaled} / moltype: {args.moltype} / threshold: {args.threshold}") - args.moltype = args.moltype.lower() num_threads = set_thread_pool(args.cores) diff --git a/src/python/tests/conftest.py b/src/python/tests/conftest.py index 052837f6..3f7021a1 100644 --- a/src/python/tests/conftest.py +++ b/src/python/tests/conftest.py @@ -16,6 +16,10 @@ def toggle_internal_storage(request): def zip_query(request): return request.param +@pytest.fixture(params=[True, False]) +def zip_db(request): + return request.param + @pytest.fixture(params=[True, False]) def zip_against(request): return request.param diff --git a/src/python/tests/sourmash_tst_utils.py b/src/python/tests/sourmash_tst_utils.py index 7c99b1b6..f4ad4927 100644 --- a/src/python/tests/sourmash_tst_utils.py +++ b/src/python/tests/sourmash_tst_utils.py @@ -14,6 +14,23 @@ from io import StringIO +def get_test_data(filename): + thisdir = os.path.dirname(__file__) + return os.path.join(thisdir, 'test-data', filename) + + +def make_file_list(filename, paths): + with open(filename, 'wt') as fp: + fp.write("\n".join(paths)) + fp.write("\n") + + +def zip_siglist(runtmp, siglist, db): + runtmp.sourmash('sig', 'cat', siglist, + '-o', db) + return db + + def scriptpath(scriptname='sourmash'): """Return the path to the scripts, in both dev and install situations.""" # note - it doesn't matter what the scriptname is here, as long as diff --git a/src/python/tests/test_cluster.py b/src/python/tests/test_cluster.py index 6e153946..4ae12173 100644 --- a/src/python/tests/test_cluster.py +++ b/src/python/tests/test_cluster.py @@ -2,15 +2,7 @@ import pytest from . import sourmash_tst_utils as utils - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import get_test_data, make_file_list def test_installed(runtmp): diff --git a/src/python/tests/test_gather.py b/src/python/tests/test_fastgather.py similarity index 96% rename from src/python/tests/test_gather.py rename to src/python/tests/test_fastgather.py index 4ab4c6de..bd2ca5a4 100644 --- a/src/python/tests/test_gather.py +++ b/src/python/tests/test_fastgather.py @@ -4,23 +4,7 @@ import sourmash from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") - - -def zip_siglist(runtmp, siglist, db): - runtmp.sourmash('sig', 'cat', siglist, - '-o', db) - return db +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def test_installed(runtmp): @@ -30,7 +14,6 @@ def test_installed(runtmp): assert 'usage: fastgather' in runtmp.last_result.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_simple(runtmp, zip_against): # test basic execution! query = get_test_data('SRR606249.sig.gz') @@ -58,7 +41,6 @@ def test_simple(runtmp, zip_against): assert {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'gather_result_rank', 'intersect_bp'}.issubset(keys) -@pytest.mark.parametrize('zip_against', [False, True]) def test_simple_with_prefetch(runtmp, zip_against): # test basic execution! query = get_test_data('SRR606249.sig.gz') @@ -93,7 +75,6 @@ def test_simple_with_prefetch(runtmp, zip_against): assert keys == {'query_filename', 'query_name', 'query_md5', 'match_name', 'match_md5', 'intersect_bp'} -@pytest.mark.parametrize('zip_against', [False, True]) def test_missing_query(runtmp, capfd, zip_against): # test missing query query = runtmp.output('no-such-file') @@ -122,7 +103,6 @@ def test_missing_query(runtmp, capfd, zip_against): assert 'Error: No such file or directory' in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_bad_query(runtmp, capfd, zip_against): # test non-sig query query = runtmp.output('no-such-file') @@ -154,7 +134,6 @@ def test_bad_query(runtmp, capfd, zip_against): assert 'Error: Fastgather requires a single query sketch. Check input:' in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_missing_against(runtmp, capfd, zip_against): # test missing against query = get_test_data('SRR606249.sig.gz') @@ -278,7 +257,6 @@ def test_bad_against_3(runtmp, capfd): assert 'InvalidArchive' in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_against_multisigfile(runtmp, zip_against): # test against a sigfile that contains multiple sketches query = get_test_data('SRR606249.sig.gz') @@ -311,7 +289,6 @@ def test_against_multisigfile(runtmp, zip_against): # @CTB this is a bug :(. It should load multiple sketches properly! -@pytest.mark.parametrize('zip_against', [False, True]) def test_query_multisigfile(runtmp, capfd, zip_against): # test with a sigfile that contains multiple sketches against_list = runtmp.output('against.txt') @@ -341,7 +318,6 @@ def test_query_multisigfile(runtmp, capfd, zip_against): assert "Error: Fastgather requires a single query sketch. Check input:" in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_against_nomatch(runtmp, capfd, zip_against): # test with 'against' file containing a non-matching ksize query = get_test_data('SRR606249.sig.gz') @@ -370,7 +346,6 @@ def test_against_nomatch(runtmp, capfd, zip_against): assert 'WARNING: skipped 1 search paths - no compatible signatures.' in captured.err -@pytest.mark.parametrize('zip_against', [False, True]) def test_md5s(runtmp, zip_against): # check that the correct md5sums (of the original sketches) are in # the output files @@ -424,7 +399,6 @@ def test_md5s(runtmp, zip_against): assert ss.md5sum() in md5s -@pytest.mark.parametrize('zip_against', [False, True]) def test_csv_columns_vs_sourmash_prefetch(runtmp, zip_against): # the column names should be strict subsets of sourmash prefetch cols query = get_test_data('SRR606249.sig.gz') @@ -466,7 +440,6 @@ def test_csv_columns_vs_sourmash_prefetch(runtmp, zip_against): assert diff_keys == set(['unique_intersect_bp', 'median_abund', 'f_match_orig', 'std_abund', 'average_abund', 'f_unique_to_query', 'remaining_bp', 'f_unique_weighted', 'sum_weighted_found', 'total_weighted_hashes', 'n_unique_weighted_found', 'f_orig_query', 'f_match']) -@pytest.mark.parametrize('zip_against', [False, True]) def test_fastgather_gatherout_as_picklist(runtmp, zip_against): # should be able to use fastgather gather output as picklist query = get_test_data('SRR606249.sig.gz') @@ -508,7 +481,6 @@ def test_fastgather_gatherout_as_picklist(runtmp, zip_against): assert picklist_df.equals(full_df) -@pytest.mark.parametrize('zip_against', [False, True]) def test_fastgather_prefetchout_as_picklist(runtmp, zip_against): # should be able to use fastgather prefetch output as picklist query = get_test_data('SRR606249.sig.gz') diff --git a/src/python/tests/test_multigather.py b/src/python/tests/test_fastmultigather.py similarity index 99% rename from src/python/tests/test_multigather.py rename to src/python/tests/test_fastmultigather.py index 831b5096..23f9cc19 100644 --- a/src/python/tests/test_multigather.py +++ b/src/python/tests/test_fastmultigather.py @@ -8,17 +8,7 @@ import sourmash from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def index_siglist(runtmp, siglist, db, *, ksize=31, scaled=1000, moltype='DNA', @@ -37,11 +27,6 @@ def test_installed(runtmp): assert 'usage: fastmultigather' in runtmp.last_result.err -def zip_siglist(runtmp, siglist, db): - runtmp.sourmash('sig', 'cat', siglist, - '-o', db) - return db - def test_simple(runtmp, zip_against): # test basic execution! query = get_test_data('SRR606249.sig.gz') diff --git a/src/python/tests/test_index.py b/src/python/tests/test_index.py index 69faf8ae..140fe799 100644 --- a/src/python/tests/test_index.py +++ b/src/python/tests/test_index.py @@ -5,17 +5,7 @@ import shutil from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def test_installed(runtmp): diff --git a/src/python/tests/test_manysearch.py b/src/python/tests/test_manysearch.py index 6deb5c3b..ab0f5762 100644 --- a/src/python/tests/test_manysearch.py +++ b/src/python/tests/test_manysearch.py @@ -4,17 +4,7 @@ import sourmash from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def test_installed(runtmp): @@ -23,10 +13,6 @@ def test_installed(runtmp): assert 'usage: manysearch' in runtmp.last_result.err -def zip_siglist(runtmp, siglist, db): - runtmp.sourmash('sig', 'cat', siglist, - '-o', db) - return db def index_siglist(runtmp, siglist, db, ksize=31, scaled=1000, moltype='DNA'): # build index @@ -35,8 +21,6 @@ def index_siglist(runtmp, siglist, db, ksize=31, scaled=1000, moltype='DNA'): '--moltype', moltype) return db -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("zip_against", [False, True]) def test_simple(runtmp, zip_query, zip_against): # test basic execution! query_list = runtmp.output('query.txt') @@ -192,7 +176,6 @@ def test_simple_abund(runtmp): assert total_weighted_hashes == 73489 -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_indexed(runtmp, zip_query): # test basic execution! query_list = runtmp.output('query.txt') @@ -249,8 +232,6 @@ def test_simple_indexed(runtmp, zip_query): assert query_ani == 0.9772 -@pytest.mark.parametrize("indexed", [False, True]) -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_with_cores(runtmp, capfd, indexed, zip_query): # test basic execution with -c argument (that it runs, at least!) query_list = runtmp.output('query.txt') @@ -283,8 +264,6 @@ def test_simple_with_cores(runtmp, capfd, indexed, zip_query): assert " using 4 threads" in result.err -@pytest.mark.parametrize("indexed", [False, True]) -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_threshold(runtmp, indexed, zip_query): # test with a simple threshold => only 3 results query_list = runtmp.output('query.txt') @@ -313,7 +292,6 @@ def test_simple_threshold(runtmp, indexed, zip_query): assert len(df) == 3 -@pytest.mark.parametrize("indexed", [False, True]) def test_simple_manifest(runtmp, indexed): # test with a simple threshold => only 3 results query_list = runtmp.output('query.txt') @@ -347,8 +325,6 @@ def test_simple_manifest(runtmp, indexed): assert len(df) == 3 -@pytest.mark.parametrize("indexed", [False, True]) -@pytest.mark.parametrize("zip_query", [False, True]) def test_missing_query(runtmp, capfd, indexed, zip_query): # test with a missing query list query_list = runtmp.output('query.txt') @@ -379,7 +355,6 @@ def test_missing_query(runtmp, capfd, indexed, zip_query): assert 'Error: No such file or directory' in captured.err -@pytest.mark.parametrize("indexed", [False, True]) def test_sig_query(runtmp, capfd, indexed): # test with a single sig query (a .sig.gz file) against_list = runtmp.output('against.txt') @@ -399,7 +374,6 @@ def test_sig_query(runtmp, capfd, indexed): '-o', output) -@pytest.mark.parametrize("indexed", [False, True]) def test_bad_query_2(runtmp, capfd, indexed): # test with a bad query list (a missing file) query_list = runtmp.output('query.txt') @@ -453,7 +427,6 @@ def test_bad_query_3(runtmp, capfd): assert 'InvalidArchive' in captured.err -@pytest.mark.parametrize("indexed", [False, True]) def test_missing_against(runtmp, capfd, indexed): # test with a missing against list query_list = runtmp.output('query.txt') @@ -524,7 +497,6 @@ def test_bad_against(runtmp, capfd): assert "WARNING: 1 search paths failed to load. See error messages above." in captured.err -@pytest.mark.parametrize("indexed", [False, True]) def test_empty_query(runtmp, indexed, capfd): # test with an empty query list query_list = runtmp.output('query.txt') @@ -552,8 +524,6 @@ def test_empty_query(runtmp, indexed, capfd): assert "No query signatures loaded, exiting." in captured.err -@pytest.mark.parametrize("indexed", [False, True]) -@pytest.mark.parametrize("zip_query", [False, True]) def test_nomatch_query(runtmp, capfd, indexed, zip_query): # test a non-matching (diff ksize) in query; do we get warning message? query_list = runtmp.output('query.txt') @@ -584,8 +554,6 @@ def test_nomatch_query(runtmp, capfd, indexed, zip_query): assert 'WARNING: skipped 1 query paths - no compatible signatures.' in captured.err -@pytest.mark.parametrize("zip_against", [False, True]) -@pytest.mark.parametrize("indexed", [False, True]) def test_load_only_one_bug(runtmp, capfd, indexed, zip_against): # check that we behave properly when presented with multiple against # sketches @@ -619,8 +587,6 @@ def test_load_only_one_bug(runtmp, capfd, indexed, zip_against): assert not 'WARNING: no compatible sketches in path ' in captured.err -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("indexed", [False, True]) def test_load_only_one_bug_as_query(runtmp, capfd, indexed, zip_query): # check that we behave properly when presented with multiple query # sketches in one file, with only one matching. @@ -656,8 +622,6 @@ def test_load_only_one_bug_as_query(runtmp, capfd, indexed, zip_query): assert not 'WARNING: no compatible sketches in path ' in captured.err -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("indexed", [False, True]) def test_md5(runtmp, indexed, zip_query): # test that md5s match what was in the original files, not downsampled etc. query_list = runtmp.output('query.txt') diff --git a/src/python/tests/test_multisearch.py b/src/python/tests/test_multisearch.py index 611b0f81..87553615 100644 --- a/src/python/tests/test_multisearch.py +++ b/src/python/tests/test_multisearch.py @@ -5,17 +5,7 @@ import sourmash from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def test_installed(runtmp): @@ -24,13 +14,7 @@ def test_installed(runtmp): assert 'usage: multisearch' in runtmp.last_result.err -def zip_siglist(runtmp, siglist, db): - runtmp.sourmash('sig', 'cat', siglist, - '-o', db) - return db -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("zip_db", [False, True]) def test_simple_no_ani(runtmp, zip_query, zip_db): # test basic execution! query_list = runtmp.output('query.txt') @@ -99,8 +83,6 @@ def test_simple_no_ani(runtmp, zip_query, zip_db): assert intersect_hashes == 2529 -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("zip_db", [False, True]) def test_simple_ani(runtmp, zip_query, zip_db): # test basic execution! query_list = runtmp.output('query.txt') @@ -186,8 +168,6 @@ def test_simple_ani(runtmp, zip_query, zip_db): assert max_ani == 0.9772 -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("zip_db", [False, True]) def test_simple_threshold(runtmp, zip_query, zip_db): # test with a simple threshold => only 3 results query_list = runtmp.output('query.txt') @@ -243,7 +223,6 @@ def test_simple_manifest(runtmp): assert len(df) == 3 -@pytest.mark.parametrize("zip_query", [False, True]) def test_missing_query(runtmp, capfd, zip_query): # test with a missing query list query_list = runtmp.output('query.txt') @@ -344,7 +323,6 @@ def test_bad_query_3(runtmp, capfd): assert 'InvalidArchive' in captured.err -@pytest.mark.parametrize("zip_db", [False, True]) def test_missing_against(runtmp, capfd, zip_db): # test with a missing against list query_list = runtmp.output('query.txt') @@ -445,7 +423,6 @@ def test_empty_query(runtmp, capfd): # @CTB -@pytest.mark.parametrize("zip_query", [False, True]) def test_nomatch_query(runtmp, capfd, zip_query): # test a non-matching (diff ksize) in query; do we get warning message? query_list = runtmp.output('query.txt') @@ -474,7 +451,6 @@ def test_nomatch_query(runtmp, capfd, zip_query): assert 'WARNING: skipped 1 query paths - no compatible signatures' in captured.err -@pytest.mark.parametrize("zip_db", [False, True]) def test_load_only_one_bug(runtmp, capfd, zip_db): # check that we behave properly when presented with multiple against # sketches @@ -506,7 +482,6 @@ def test_load_only_one_bug(runtmp, capfd, zip_db): assert not 'WARNING: no compatible sketches in path' in captured.err -@pytest.mark.parametrize("zip_query", [False, True]) def test_load_only_one_bug_as_query(runtmp, capfd, zip_query): # check that we behave properly when presented with multiple query # sketches in one file, with only one matching. @@ -538,8 +513,6 @@ def test_load_only_one_bug_as_query(runtmp, capfd, zip_query): assert not 'WARNING: no compatible sketches in path ' in captured.err -@pytest.mark.parametrize("zip_query", [False, True]) -@pytest.mark.parametrize("zip_db", [False, True]) def test_md5(runtmp, zip_query, zip_db): # test that md5s match what was in the original files, not downsampled etc. query_list = runtmp.output('query.txt') diff --git a/src/python/tests/test_pairwise.py b/src/python/tests/test_pairwise.py index 3869b3d4..c8264069 100644 --- a/src/python/tests/test_pairwise.py +++ b/src/python/tests/test_pairwise.py @@ -5,17 +5,7 @@ import sourmash from . import sourmash_tst_utils as utils - - -def get_test_data(filename): - thisdir = os.path.dirname(__file__) - return os.path.join(thisdir, 'test-data', filename) - - -def make_file_list(filename, paths): - with open(filename, 'wt') as fp: - fp.write("\n".join(paths)) - fp.write("\n") +from .sourmash_tst_utils import (get_test_data, make_file_list, zip_siglist) def test_installed(runtmp): @@ -24,13 +14,7 @@ def test_installed(runtmp): assert 'usage: pairwise' in runtmp.last_result.err -def zip_siglist(runtmp, siglist, db): - runtmp.sourmash('sig', 'cat', siglist, - '-o', db) - return db - -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_no_ani(runtmp, zip_query): # test basic execution! query_list = runtmp.output('query.txt') @@ -81,7 +65,6 @@ def test_simple_no_ani(runtmp, zip_query): assert intersect_hashes == 2529 -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_ani(runtmp, zip_query): # test basic execution! query_list = runtmp.output('query.txt') @@ -140,7 +123,6 @@ def test_simple_ani(runtmp, zip_query): assert max_ani == 0.9772 -@pytest.mark.parametrize("zip_query", [False, True]) def test_simple_threshold(runtmp, zip_query): # test with a simple threshold => only 3 results query_list = runtmp.output('query.txt') @@ -248,7 +230,6 @@ def test_bad_query_2(runtmp, capfd): assert 'InvalidArchive' in captured.err -@pytest.mark.parametrize("zip_db", [False, True]) def test_missing_query(runtmp, capfd, zip_db): # test with a missing query list query_list = runtmp.output('query.txt') @@ -290,7 +271,6 @@ def test_empty_query(runtmp): # @CTB -@pytest.mark.parametrize("zip_query", [False, True]) def test_nomatch_query(runtmp, capfd, zip_query): # test a non-matching (diff ksize) in query; do we get warning message? query_list = runtmp.output('query.txt') @@ -317,7 +297,6 @@ def test_nomatch_query(runtmp, capfd, zip_query): assert 'WARNING: skipped 1 analysis paths - no compatible signatures' in captured.err -@pytest.mark.parametrize("zip_db", [False, True]) def test_load_only_one_bug(runtmp, capfd, zip_db): # check that we behave properly when presented with multiple query # sketches @@ -347,7 +326,6 @@ def test_load_only_one_bug(runtmp, capfd, zip_db): assert not 'WARNING: no compatible sketches in path ' in captured.err -@pytest.mark.parametrize("zip_query", [False, True]) def test_md5(runtmp, zip_query): # test that md5s match what was in the original files, not downsampled etc. query_list = runtmp.output('query.txt') diff --git a/src/utils.rs b/src/utils.rs index 4209413e..a5ef93a2 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1091,7 +1091,7 @@ pub fn consume_query_by_gather( pub fn build_selection(ksize: u8, scaled: usize, moltype: &str) -> Selection { let hash_function = match moltype { - "dna" => HashFunctions::Murmur64Dna, + "DNA" => HashFunctions::Murmur64Dna, "protein" => HashFunctions::Murmur64Protein, "dayhoff" => HashFunctions::Murmur64Dayhoff, "hp" => HashFunctions::Murmur64Hp, From 743bc178a6478920e9637eb5e58a3936bc05e47f Mon Sep 17 00:00:00 2001 From: Tessa Pierce Ward Date: Tue, 3 Sep 2024 15:35:39 -0700 Subject: [PATCH 27/33] MRG: optionally, create empty results files for in-memory `fastmultigather` (#446) * fmg create empty files * fix error propagation * add test for empty results * msg * fix runtmp getcwd/try/finally --- src/fastmultigather.rs | 16 ++++ src/lib.rs | 4 +- .../sourmash_plugin_branchwater/__init__.py | 10 ++- src/python/tests/test_fastmultigather.py | 77 +++++++++---------- 4 files changed, 61 insertions(+), 46 deletions(-) diff --git a/src/fastmultigather.rs b/src/fastmultigather.rs index 22b9efaa..1876d536 100644 --- a/src/fastmultigather.rs +++ b/src/fastmultigather.rs @@ -32,6 +32,7 @@ pub fn fastmultigather( selection: &Selection, allow_failed_sigpaths: bool, save_matches: bool, + create_empty_results: bool, ) -> Result<()> { // load query collection let query_collection = load_collection( @@ -156,6 +157,21 @@ pub fn fastmultigather( } } else { println!("No matches to '{}'", location); + if create_empty_results { + let prefetch_output = format!("{}.prefetch.csv", location); + let gather_output = format!("{}.gather.csv", location); + // touch output files + match std::fs::File::create(&prefetch_output) { + Ok(_) => {} + Err(e) => { + eprintln!("Failed to create empty prefetch output: {}", e) + } + } + match std::fs::File::create(&gather_output) { + Ok(_) => {} + Err(e) => eprintln!("Failed to create empty gather output: {}", e), + } + } } } else { // different warning here? Could not load sig from record?? diff --git a/src/lib.rs b/src/lib.rs index 7d623ea7..b4aee549 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -106,7 +106,7 @@ fn do_fastgather( } #[pyfunction] -#[pyo3(signature = (query_filenames, siglist_path, threshold_bp, ksize, scaled, moltype, output_path=None, save_matches=false))] +#[pyo3(signature = (query_filenames, siglist_path, threshold_bp, ksize, scaled, moltype, output_path=None, save_matches=false, create_empty_results=false))] fn do_fastmultigather( query_filenames: String, siglist_path: String, @@ -116,6 +116,7 @@ fn do_fastmultigather( moltype: String, output_path: Option, save_matches: bool, + create_empty_results: bool, ) -> anyhow::Result { let againstfile_path: camino::Utf8PathBuf = siglist_path.clone().into(); let selection = build_selection(ksize, scaled, &moltype); @@ -149,6 +150,7 @@ fn do_fastmultigather( &selection, allow_failed_sigpaths, save_matches, + create_empty_results, ) { Ok(_) => Ok(0), Err(e) => { diff --git a/src/python/sourmash_plugin_branchwater/__init__.py b/src/python/sourmash_plugin_branchwater/__init__.py index 37fb17a1..9d1b3af6 100755 --- a/src/python/sourmash_plugin_branchwater/__init__.py +++ b/src/python/sourmash_plugin_branchwater/__init__.py @@ -156,8 +156,11 @@ def __init__(self, p): help = 'molecule type (DNA, protein, dayhoff, or hp; default DNA)') p.add_argument('-c', '--cores', default=0, type=int, help='number of cores to use (default is all available)') - p.add_argument('-o', '--output', help='CSV output file for matches') - p.add_argument('--save-matches', action='store_true', default=False, help='save matched hashes for every input to a signature') + p.add_argument('-o', '--output', help='CSV output file for matches. Used for non-rocksdb searches only.') + p.add_argument('--create-empty-results', action = 'store_true', + default=False, help='create empty results file(s) even if no matches') + p.add_argument('--save-matches', action='store_true', + default=False, help='save matched hashes for every input to a signature') def main(self, args): @@ -175,7 +178,8 @@ def main(self, args): args.scaled, args.moltype, args.output, - args.save_matches + args.save_matches, + args.create_empty_results ) if status == 0: notify(f"...fastmultigather is done!") diff --git a/src/python/tests/test_fastmultigather.py b/src/python/tests/test_fastmultigather.py index 23f9cc19..f485b7f0 100644 --- a/src/python/tests/test_fastmultigather.py +++ b/src/python/tests/test_fastmultigather.py @@ -43,13 +43,9 @@ def test_simple(runtmp, zip_against): if zip_against: against_list = zip_siglist(runtmp, against_list, runtmp.output('against.zip')) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('')) print(os.listdir(runtmp.output(''))) @@ -87,13 +83,8 @@ def test_simple_space_in_signame(runtmp): make_file_list(against_list, [sig2, sig47, sig63]) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', renamed_query, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + runtmp.sourmash('scripts', 'fastmultigather', renamed_query, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('')) print(os.listdir(runtmp.output(''))) @@ -118,13 +109,8 @@ def test_simple_zip_query(runtmp): query_list = zip_siglist(runtmp, query_list, runtmp.output('query.zip')) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('') ) print(os.listdir(runtmp.output(''))) @@ -161,13 +147,8 @@ def test_simple_read_manifests(runtmp): runtmp.sourmash("sig", "manifest", query, "-o", query_mf) runtmp.sourmash("sig", "manifest", against_list, "-o", against_mf) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', query_mf, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + runtmp.sourmash('scripts', 'fastmultigather', query_mf, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('')) print(os.listdir(runtmp.output(''))) @@ -570,13 +551,8 @@ def test_md5(runtmp, zip_query): if zip_query: query_list = zip_siglist(runtmp, query_list, runtmp.output('query.zip')) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('')) print(os.listdir(runtmp.output(''))) @@ -668,13 +644,8 @@ def test_csv_columns_vs_sourmash_prefetch(runtmp, zip_query, zip_against): if zip_against: against_list = zip_siglist(runtmp, against_list, runtmp.output('against.zip')) - cwd = os.getcwd() - try: - os.chdir(runtmp.output('')) - runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, - '-s', '100000', '-t', '0') - finally: - os.chdir(cwd) + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', in_directory=runtmp.output('')) g_output = runtmp.output('SRR606249.gather.csv') p_output = runtmp.output('SRR606249.prefetch.csv') @@ -1254,3 +1225,25 @@ def test_save_matches(runtmp): mg_ss = list(sourmash.load_file_as_signatures(query, ksize=31))[0] assert match_mh.contained_by(mg_ss.minhash) == 1.0 assert mg_ss.minhash.contained_by(match_mh) < 1 + + +def test_create_empty_results(runtmp): + # sig2 has 0 hashes in common with 47 and 63 + sig2 = get_test_data('2.fa.sig.gz') + sig47 = get_test_data('47.fa.sig.gz') + sig63 = get_test_data('63.fa.sig.gz') + + query_list = runtmp.output('query.txt') + against_list = runtmp.output('against.txt') + + make_file_list(query_list, [sig2]) + make_file_list(against_list, [sig47, sig63]) + + runtmp.sourmash('scripts', 'fastmultigather', query_list, against_list, + '-s', '100000', '-t', '0', '--create-empty-results', in_directory=runtmp.output('')) + + print(os.listdir(runtmp.output(''))) + + g_output = runtmp.output('CP001071.1.gather.csv') + p_output = runtmp.output('CP001071.1.prefetch.csv') + assert os.path.exists(p_output) From 0fd2c5388409205021b171168128e6b84d5f5812 Mon Sep 17 00:00:00 2001 From: "C. Titus Brown" Date: Sun, 8 Sep 2024 06:32:00 -0700 Subject: [PATCH 28/33] add .PHONY targets to Makefile (#449) --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 43ace8bc..668a6061 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +.PHONY: all install test wheel sdist upload_dist + PYTHON ?= python all: From 612f1915e9bb514f0d69a67bb02ecff61678de71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:28:40 +0000 Subject: [PATCH 29/33] Bump serde_json from 1.0.127 to 1.0.128 (#453) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.127 to 1.0.128. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/1.0.127...1.0.128) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 70285a99..988837a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1501,9 +1501,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 7bfa38b6..d5788215 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.209", features = ["derive"] } sourmash = { version = "0.15.1", features = ["branchwater"] } -serde_json = "1.0.127" +serde_json = "1.0.128" niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } From ea0d79a51120de31b35501ad143d184ad2691978 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:34:09 +0000 Subject: [PATCH 30/33] Bump anyhow from 1.0.86 to 1.0.87 (#454) Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.86 to 1.0.87. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.86...1.0.87) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 988837a8..ec27807a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,9 +108,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "approx" diff --git a/Cargo.toml b/Cargo.toml index d5788215..c94bfd2b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } simple-error = "0.3.1" -anyhow = "1.0.86" +anyhow = "1.0.87" zip = { version = "2.0", default-features = false } tempfile = "3.12" needletail = "0.5.1" From fa7ab221baa9a8437353f2e894892fbd7545a479 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:17:35 -0700 Subject: [PATCH 31/33] Bump serde from 1.0.209 to 1.0.210 (#452) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.209 to 1.0.210. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ec27807a..8d7e6b09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1481,18 +1481,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index c94bfd2b..9d7e6241 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] [dependencies] pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } rayon = "1.10.0" -serde = { version = "1.0.209", features = ["derive"] } +serde = { version = "1.0.210", features = ["derive"] } sourmash = { version = "0.15.1", features = ["branchwater"] } serde_json = "1.0.128" niffler = "2.4.0" From f376008995e55fa621ebfb417fb4219a317c26c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:57:41 -0700 Subject: [PATCH 32/33] Bump pyo3 from 0.22.2 to 0.22.3 (#457) Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.22.2 to 0.22.3. - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/v0.22.3/CHANGELOG.md) - [Commits](https://github.com/pyo3/pyo3/compare/v0.22.2...v0.22.3) --- updated-dependencies: - dependency-name: pyo3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d7e6b09..95856e05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1213,9 +1213,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831e8e819a138c36e212f3af3fd9eeffed6bf1510a805af35b0edee5ffa59433" +checksum = "15ee168e30649f7f234c3d49ef5a7a6cbf5134289bc46c29ff3155fa3221c225" dependencies = [ "anyhow", "cfg-if", @@ -1232,9 +1232,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8730e591b14492a8945cdff32f089250b05f5accecf74aeddf9e8272ce1fa8" +checksum = "e61cef80755fe9e46bb8a0b8f20752ca7676dcc07a5277d8b7768c6172e529b3" dependencies = [ "once_cell", "target-lexicon", @@ -1242,9 +1242,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e97e919d2df92eb88ca80a037969f44e5e70356559654962cbb3316d00300c6" +checksum = "67ce096073ec5405f5ee2b8b31f03a68e02aa10d5d4f565eca04acc41931fa1c" dependencies = [ "libc", "pyo3-build-config", @@ -1252,9 +1252,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb57983022ad41f9e683a599f2fd13c3664d7063a3ac5714cae4b7bee7d3f206" +checksum = "2440c6d12bc8f3ae39f1e775266fa5122fd0c8891ce7520fa6048e683ad3de28" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -1264,9 +1264,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec480c0c51ddec81019531705acac51bcdbeae563557c982aa8263bb96880372" +checksum = "1be962f0e06da8f8465729ea2cb71a416d2257dff56cbe40a70d3e62a93ae5d1" dependencies = [ "heck 0.5.0", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 9d7e6241..5f729d39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ name = "sourmash_plugin_branchwater" crate-type = ["cdylib"] [dependencies] -pyo3 = { version = "0.22.2", features = ["extension-module", "anyhow"] } +pyo3 = { version = "0.22.3", features = ["extension-module", "anyhow"] } rayon = "1.10.0" serde = { version = "1.0.210", features = ["derive"] } sourmash = { version = "0.15.1", features = ["branchwater"] } From cf5b757aafb47a80b728d5437d69e51b1dc604d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:02:55 +0000 Subject: [PATCH 33/33] Bump anyhow from 1.0.87 to 1.0.89 (#456) Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.87 to 1.0.89. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.87...1.0.89) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 95856e05..d32e3183 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,9 +108,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "approx" diff --git a/Cargo.toml b/Cargo.toml index 5f729d39..2bdfbc28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ niffler = "2.4.0" log = "0.4.22" env_logger = { version = "0.11.5", optional = true } simple-error = "0.3.1" -anyhow = "1.0.87" +anyhow = "1.0.89" zip = { version = "2.0", default-features = false } tempfile = "3.12" needletail = "0.5.1"