From 1084c24f3d4030b64c06d3b958d30556d0eb5189 Mon Sep 17 00:00:00 2001 From: ipopescu Date: Wed, 11 Oct 2023 23:33:07 +0200 Subject: [PATCH 1/6] Initial commit --- .../cli/transfers/direct-token-transfer.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md index 09cff009f9..9f12b033d6 100644 --- a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md +++ b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md @@ -6,9 +6,9 @@ This workflow assumes: 1. You meet the [prerequisites](../../prerequisites.md) 2. You are using the Casper command-line client -3. You have a target *public key* hex the path to the source *secret key* -4. You have a valid *node-address* -5. You must be able to sign a deploy for the source account +3. You have a target *public key* +4. You have a valid *node address* +5. You must be able to sign a deploy for the source account using the source *secret key* ## Transfer {#transfer} @@ -44,16 +44,16 @@ casper-client transfer \ - `chain-name` - Name of the chain, to avoid the deploy from being accidentally or maliciously included in a different chain - - The _chain-name_ for testnet is **casper-test** - - The _chain-name_ for mainnet is **casper** + - The _chain-name_ for Testnet is **casper-test** + - The _chain-name_ for Mainnet is **casper** -- `target-account` - Hex-encoded public key of the account from which the main purse will be used as the target +- `target-account` - Hex-encoded public key of the account that will receive the funds in its main purse - `payment-amount` - The payment for the transfer in motes. The payment amount varies based on each deploy and network [chainspec](../../../concepts/glossary/C.md#chainspec). For Testnet node version [1.5.1](https://github.com/casper-network/casper-node/blob/release-1.5.1/resources/production/chainspec.toml), you can specify 10^8 motes **Important response fields:** -- `"result"."deploy_hash"` - the address of the executed transfer, needed to look up additional information about the transfer +- `"result"."deploy_hash"` - The address of the deploy, needed to look up additional information about the transfer **Note**: Save the returned _deploy_hash_ from the output to query information about the transfer deploy later. @@ -163,7 +163,7 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- **Important response fields:** - `"result"."execution_results"[0]."transfers[0]"` - the address of the executed transfer that the source account initiated. We will use it to look up additional information about the transfer -- `"result"."execution_results"[0]."block_hash"` - contains the block hash of the block that included our transfer. We will require the _state_root_hash_ of this block to look up information about the accounts and their purse balances +- `"result"."execution_results"[0]."block_hash"` - contains the block hash of the block that included the transfer. We will require the _state_root_hash_ of this block to look up information about the accounts and their purse balances **Note**: Transfer addresses use a `transfer-` string prefix. From face7937728e8ee1487cbcce44f955e7772fa520 Mon Sep 17 00:00:00 2001 From: ipopescu Date: Thu, 12 Oct 2023 19:31:37 +0200 Subject: [PATCH 2/6] New examples in direct-token-transfer.md --- .../cli/transfers/direct-token-transfer.md | 371 ++++++++++-------- 1 file changed, 215 insertions(+), 156 deletions(-) diff --git a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md index 9f12b033d6..833161e22c 100644 --- a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md +++ b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md @@ -20,14 +20,14 @@ For transfers of at least 2.5 CSPR (2,500,000,000 Motes) from a single sender to ```bash casper-client transfer \ ---id 1 \ ---transfer-id 123456789012345 \ ---node-address http://:7777 \ ---amount \ ---secret-key .pem \ ---chain-name casper \ ---target-account \ ---payment-amount +--id \ +--transfer-id \ +--node-address [NODE_SERVER_ADDRESS] \ +--amount [AMOUNT_TO_TRANSFER] \ +--secret-key [KEY_PATH]/secret_key.pem \ +--chain-name [CHAIN_NAME] \ +--target-account [PUBLIC_KEY_HEX] \ +--payment-amount [PAYMENT_AMOUNT_IN_MOTES] ``` **Request fields:** @@ -64,78 +64,76 @@ casper-client transfer \ ```json { - "id": 1, - "jsonrpc": "2.0", - "method": "account_put_deploy", - "params": { - "deploy": { - "approvals": [ - { - "signature": "130 chars", - "signer": "010f50b0116f213ef65b99d1bd54483f92bf6131de2f8aceb7e3f825a838292150" - } + "jsonrpc": "2.0", + "method": "account_put_deploy", + "params": { + "deploy": { + "hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", + "header": { + "account": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "timestamp": "2023-10-12T14:59:40.760Z", + "ttl": "30m", + "gas_price": 1, + "body_hash": "ea7e6a6cbdd4d761827cb627e162896bee3e771beda000550615c9b4fafa3a2d", + "dependencies": [], + "chain_name": "casper-test" + }, + "payment": { + "ModuleBytes": { + "module_bytes": "", + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "0400e1f505", + "parsed": "100000000" + } + ] + ] + } + }, + "session": { + "Transfer": { + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "0500f2052a01", + "parsed": "5000000000" + } ], - "hash": "ec2d477a532e00b08cfa9447b7841a645a27d34ee12ec55318263617e5740713", - "header": { - "account": "010f50b0116f213ef65b99d1bd54483f92bf6131de2f8aceb7e3f825a838292150", - "body_hash": "da35b095640a403324306c59ac6f18a446dfcc28faf753ce58b96b635587dd8e", - "chain_name": "casper-net-1", - "dependencies": [], - "gas_price": 1, - "timestamp": "2021-04-20T18:04:40.333Z", - "ttl": "1h" - }, - "payment": { - "ModuleBytes": { - "args": [ - [ - "amount", - { - "bytes": "021027", - "cl_type": "U512", - "parsed": "10000" - } - ] - ], - "module_bytes": "" - } - }, - "session": { - "Transfer": { - "args": [ - [ - "amount", - { - "bytes": "0400f90295", - "cl_type": "U512", - "parsed": "2500000000" - } - ], - [ - "target", - { - "bytes": "8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668", - "cl_type": { - "ByteArray": 32 - }, - "parsed": "8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668" - } - ], - [ - "id", - { - "bytes": "00", - "cl_type": { - "Option": "U64" - }, - "parsed": null - } - ] - ] - } - } + [ + "target", + { + "cl_type": "PublicKey", + "bytes": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", + "parsed": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986" + } + ], + [ + "id", + { + "cl_type": { + "Option": "U64" + }, + "bytes": "014767a90000000000", + "parsed": 11102023 + } + ] + ] + } + }, + "approvals": [ + { + "signer": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "signature": "01e53cb742ed13ff4f0584a3da0f22f5942a33e010965adf640c91204ae4bc7436f1e5534d338ffa117d193295214816445439781229d24a372085c316eac5e305" } + ] } + }, + "id": 3 } ``` @@ -143,12 +141,12 @@ casper-client transfer \ ```json { - "id": 1, - "jsonrpc": "2.0", - "result": { - "api_version": "1.0.0", - "deploy_hash": "ec2d477a532e00b08cfa9447b7841a645a27d34ee12ec55318263617e5740713" - } + "jsonrpc": "2.0", + "id": 3, + "result": { + "api_version": "1.5.3", + "deploy_hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c" + } } ``` @@ -174,12 +172,13 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- ```json { - "id": 2, - "jsonrpc": "2.0", - "method": "info_get_deploy", - "params": { - "deploy_hash": "ec2d477a532e00b08cfa9447b7841a645a27d34ee12ec55318263617e5740713" - } + "jsonrpc": "2.0", + "method": "info_get_deploy", + "params": { + "deploy_hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", + "finalized_approvals": false + }, + "id": -3447643973713335073 } ``` @@ -187,40 +186,33 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- ```json { - "id": 6054990863558097019, "jsonrpc": "2.0", "result": { - "api_version": "1.4.6", + "api_version": "1.5.3", "deploy": { - "approvals": [ - { - "signature": "01c8c1704a2c921988cd546fe85d249f27bc9da198e8c2f79d91e19a40e015e59a099723b5540c20c57a1ebffef2e4d2e333d9e52f1f27fef9d6b9a4ec5080b40a", - "signer": "01ea8ff63a2b3bcf42c3e8e057959d864043fb989082ddc54464ef9a2ea7338ba0" - } - ], - "hash": "d5862af0c7d06df6cb265c2dee9a014ce570a8db75eb0689f14d819c632c305d", + "hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", "header": { - "account": "01ea8ff63a2b3bcf42c3e8e057959d864043fb989082ddc54464ef9a2ea7338ba0", - "body_hash": "9ccc49a951b9b783bbb20746007e221e8326fbbb48f002aaa40d664abf35995d", - "chain_name": "casper-test", - "dependencies": [], + "account": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "timestamp": "2023-10-12T14:59:40.760Z", + "ttl": "30m", "gas_price": 1, - "timestamp": "2022-07-05T22:39:20.190Z", - "ttl": "30m" + "body_hash": "ea7e6a6cbdd4d761827cb627e162896bee3e771beda000550615c9b4fafa3a2d", + "dependencies": [], + "chain_name": "casper-test" }, "payment": { "ModuleBytes": { + "module_bytes": "", "args": [ [ "amount", { - "bytes": "0400e1f505", "cl_type": "U512", + "bytes": "0400e1f505", "parsed": "100000000" } ] - ], - "module_bytes": "" + ] } }, "session": { @@ -229,48 +221,61 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- [ "amount", { - "bytes": "0400f90295", "cl_type": "U512", - "parsed": "2500000000" + "bytes": "0500f2052a01", + "parsed": "5000000000" } ], [ "target", { - "bytes": "0203343d88a5dd8a67ab8c9d572c50c7f4604960d78f8a41ea48b98d3dcec6316834", "cl_type": "PublicKey", - "parsed": "0203343d88a5dd8a67ab8c9d572c50c7f4604960d78f8a41ea48b98d3dcec6316834" + "bytes": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", + "parsed": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986" } ], [ "id", { - "bytes": "01e6c6720000000000", "cl_type": { "Option": "U64" }, - "parsed": 7522022 + "bytes": "014767a90000000000", + "parsed": 11102023 } ] ] } - } + }, + "approvals": [ + { + "signer": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "signature": "01e53cb742ed13ff4f0584a3da0f22f5942a33e010965adf640c91204ae4bc7436f1e5534d338ffa117d193295214816445439781229d24a372085c316eac5e305" + } + ] }, "execution_results": [ { - "block_hash": "b357fc78f105e43be66f268bb8d7308f357fe37e0e55d92d26f8e255c9292529", + "block_hash": "aac51dad028ba8b3d6fec86a39252bbc4285d513fd57a8af4696ab5390ac5c2b", "result": { "Success": { - "cost": "100000000", "effect": { "operations": [], "transforms": [ { - "key": "account-hash-aff4921ce6f73072a914f04e7327a946b72ec4562a7d99f107e9411d1592c3f6", + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", "transform": "Identity" }, { - "key": "account-hash-aff4921ce6f73072a914f04e7327a946b72ec4562a7d99f107e9411d1592c3f6", + "key": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "transform": "Identity" + }, + { + "key": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "transform": "Identity" + }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", "transform": "Identity" }, { @@ -281,6 +286,14 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "key": "hash-624dbe2395b9d9503fbee82162f1714ebff6b639f96d2084d26d944c354ec4c5", "transform": "Identity" }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "transform": "Identity" + }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, { "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", "transform": "Identity" @@ -290,7 +303,11 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, + { + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": "Identity" }, { @@ -298,12 +315,12 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": { "WriteCLValue": { - "bytes": "0500a7d0dd2c", "cl_type": "U512", - "parsed": "192700000000" + "bytes": "06621c3e660301", + "parsed": "1114111876194" } } }, @@ -314,11 +331,19 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- } }, { - "key": "account-hash-aff4921ce6f73072a914f04e7327a946b72ec4562a7d99f107e9411d1592c3f6", + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", "transform": "Identity" }, { - "key": "account-hash-aff4921ce6f73072a914f04e7327a946b72ec4562a7d99f107e9411d1592c3f6", + "key": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "transform": "Identity" + }, + { + "key": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "transform": "Identity" + }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", "transform": "Identity" }, { @@ -329,6 +354,14 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "key": "hash-624dbe2395b9d9503fbee82162f1714ebff6b639f96d2084d26d944c354ec4c5", "transform": "Identity" }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "transform": "Identity" + }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, { "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", "transform": "Identity" @@ -338,7 +371,11 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, + { + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": "Identity" }, { @@ -346,12 +383,12 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": { "WriteCLValue": { - "bytes": "0500a7d0dd2c", "cl_type": "U512", - "parsed": "192700000000" + "bytes": "06621c3e660301", + "parsed": "1114111876194" } } }, @@ -365,60 +402,68 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", "transform": "Identity" }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, { "key": "hash-9824d60dc3a5c44a20b9fd260a412437933835b52fc683d8ae36e4ec2114843e", "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, + { + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": "Identity" }, { - "key": "balance-be85882962304905286b2b4d3602f7f287095536ef4ce3e9a5360930c729ec2c", + "key": "balance-8294864177c2c1ec887a11dae095e487b5256ce6bd2a1f2740d0e4f28bd3251c", "transform": "Identity" }, { - "key": "balance-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4", + "key": "balance-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1", "transform": { "WriteCLValue": { - "bytes": "0500aecd482c", "cl_type": "U512", - "parsed": "190200000000" + "bytes": "06622a383c0201", + "parsed": "1109111876194" } } }, { - "key": "balance-be85882962304905286b2b4d3602f7f287095536ef4ce3e9a5360930c729ec2c", + "key": "balance-8294864177c2c1ec887a11dae095e487b5256ce6bd2a1f2740d0e4f28bd3251c", "transform": { - "AddUInt512": "2500000000" + "AddUInt512": "5000000000" } }, { - "key": "transfer-86760957e94a46839bcd03bee35c9db6b8a906e6fbfe87e69e93383df3d41b2a", + "key": "transfer-0de7250864e67aa76626a844dcc931e615284a13a110df3f97cec9e3e97af405", "transform": { "WriteTransfer": { - "amount": "2500000000", - "deploy_hash": "d5862af0c7d06df6cb265c2dee9a014ce570a8db75eb0689f14d819c632c305d", - "from": "account-hash-9aed70924116013bdd5517109bea97678d9cff449640457a8a4ed3e561d864d4", + "deploy_hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", + "from": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "to": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "source": "uref-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1-007", + "target": "uref-8294864177c2c1ec887a11dae095e487b5256ce6bd2a1f2740d0e4f28bd3251c-004", + "amount": "5000000000", "gas": "0", - "id": 7522022, - "source": "uref-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4-007", - "target": "uref-be85882962304905286b2b4d3602f7f287095536ef4ce3e9a5360930c729ec2c-004", - "to": "account-hash-aff4921ce6f73072a914f04e7327a946b72ec4562a7d99f107e9411d1592c3f6" + "id": 11102023 } } }, { - "key": "deploy-d5862af0c7d06df6cb265c2dee9a014ce570a8db75eb0689f14d819c632c305d", + "key": "deploy-1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", "transform": { "WriteDeployInfo": { - "deploy_hash": "d5862af0c7d06df6cb265c2dee9a014ce570a8db75eb0689f14d819c632c305d", - "from": "account-hash-9aed70924116013bdd5517109bea97678d9cff449640457a8a4ed3e561d864d4", - "gas": "100000000", - "source": "uref-20c3a137051eaa98efa048fd8f888ed4b342bcc1c8166f475e25b6a627d669a4-007", + "deploy_hash": "1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c", "transfers": [ - "transfer-86760957e94a46839bcd03bee35c9db6b8a906e6fbfe87e69e93383df3d41b2a" - ] + "transfer-0de7250864e67aa76626a844dcc931e615284a13a110df3f97cec9e3e97af405" + ], + "from": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "source": "uref-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1-007", + "gas": "100000000" } } }, @@ -426,10 +471,18 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", "transform": "Identity" }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "transform": "Identity" + }, { "key": "hash-624dbe2395b9d9503fbee82162f1714ebff6b639f96d2084d26d944c354ec4c5", "transform": "Identity" }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "transform": "Identity" + }, { "key": "balance-98d945f5324f865243b7c02c0417ab6eac361c5c56602fd42ced834a1ba201b6", "transform": "Identity" @@ -446,26 +499,30 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- "key": "hash-9824d60dc3a5c44a20b9fd260a412437933835b52fc683d8ae36e4ec2114843e", "transform": "Identity" }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, { "key": "balance-98d945f5324f865243b7c02c0417ab6eac361c5c56602fd42ced834a1ba201b6", "transform": "Identity" }, { - "key": "balance-874289dbe721508e8d2893efd86364ea1ca67a6a2456825259efd6db8efb427c", + "key": "balance-da632bfba17f4a7882581de2a37219be71628600ccd0df83f1d42465bd018537", "transform": "Identity" }, { "key": "balance-98d945f5324f865243b7c02c0417ab6eac361c5c56602fd42ced834a1ba201b6", "transform": { "WriteCLValue": { - "bytes": "00", "cl_type": "U512", + "bytes": "00", "parsed": "0" } } }, { - "key": "balance-874289dbe721508e8d2893efd86364ea1ca67a6a2456825259efd6db8efb427c", + "key": "balance-da632bfba17f4a7882581de2a37219be71628600ccd0df83f1d42465bd018537", "transform": { "AddUInt512": "100000000" } @@ -473,13 +530,15 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- ] }, "transfers": [ - "transfer-86760957e94a46839bcd03bee35c9db6b8a906e6fbfe87e69e93383df3d41b2a" - ] + "transfer-0de7250864e67aa76626a844dcc931e615284a13a110df3f97cec9e3e97af405" + ], + "cost": "100000000" } } } ] - } + }, + "id": -3447643973713335073 } ``` From 4ea99168afc3aed7af3c7d5d983c6a105415d88a Mon Sep 17 00:00:00 2001 From: ipopescu Date: Thu, 12 Oct 2023 20:45:23 +0200 Subject: [PATCH 3/6] Additional updates in direct-token-transfer.md --- .../cli/transfers/direct-token-transfer.md | 59 +++++++++++++++---- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md index 833161e22c..bc26431792 100644 --- a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md +++ b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md @@ -2,22 +2,22 @@ This workflow describes how to use the Casper command-line client to transfer tokens between purses on a Casper network. +## Prerequisites + This workflow assumes: -1. You meet the [prerequisites](../../prerequisites.md) +1. You meet the general [development prerequisites](../../prerequisites.md) 2. You are using the Casper command-line client 3. You have a target *public key* 4. You have a valid *node address* 5. You must be able to sign a deploy for the source account using the source *secret key* -## Transfer {#transfer} +## Direct Transfer Example {#transfer} -The `transfer` command allows you to move CSPR from one account's purse to another as denominated in [Motes](../../../concepts/design/casper-design.md#tokens-divisibility). A _Mote_ is a denomination of the cryptocurrency CSPR, where 1 CSPR = 1,000,000,000 Motes. +The following `transfer` command allows you to move CSPR from one account's purse to another as denominated in [Motes](../../../concepts/design/casper-design.md#tokens-divisibility). A _Mote_ is a denomination of the cryptocurrency CSPR, where 1 CSPR = 1,000,000,000 Motes. For transfers of at least 2.5 CSPR (2,500,000,000 Motes) from a single sender to a single recipient on a Casper network, the most efficient option is to use the direct transfer capability. -**Direct transfer example**: - ```bash casper-client transfer \ --id \ @@ -26,7 +26,7 @@ casper-client transfer \ --amount [AMOUNT_TO_TRANSFER] \ --secret-key [KEY_PATH]/secret_key.pem \ --chain-name [CHAIN_NAME] \ ---target-account [PUBLIC_KEY_HEX] \ +--target-account [TARGET_PUBLIC_KEY_HEX] \ --payment-amount [PAYMENT_AMOUNT_IN_MOTES] ``` @@ -55,7 +55,25 @@ casper-client transfer \ - `"result"."deploy_hash"` - The address of the deploy, needed to look up additional information about the transfer -**Note**: Save the returned _deploy_hash_ from the output to query information about the transfer deploy later. +:::note + +Save the returned _deploy_hash_ from the output to query information about the transfer deploy later. + +::: + +**Example Transfer:** + +```bash +casper-client transfer -v \ +--id 3 \ +--transfer-id 11102023 \ +--node-address https://rpc.testnet.casperlabs.io/ \ +--amount 5000000000 \ +--secret-key ~/KEYS/secret_key.pem \ +--chain-name casper-test \ +--target-account 01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986 \ +--payment-amount 100000000 +```
Explore the JSON-RPC request and response generated. @@ -152,18 +170,33 @@ casper-client transfer \
-### Deploy Status {#deploy-status} +## Verifying the Deploy {#verify-deploy} A transfer on a Casper network is only executed after it has been included in a finalized block. -Refer to the Section on [querying deploys](../../../resources/beginner/querying-network.md#querying-deploys) within the network to check the execution status of the transfer. +```bash +casper-client get-deploy +--node-address [NODE_SERVER_ADDRESS] [DEPLOY_HASH] +``` **Important response fields:** - `"result"."execution_results"[0]."transfers[0]"` - the address of the executed transfer that the source account initiated. We will use it to look up additional information about the transfer - `"result"."execution_results"[0]."block_hash"` - contains the block hash of the block that included the transfer. We will require the _state_root_hash_ of this block to look up information about the accounts and their purse balances -**Note**: Transfer addresses use a `transfer-` string prefix. +:::note + +Transfer addresses use a `transfer-` string prefix. + +::: + +**Example Query:** + +```bash +casper-client get-deploy +--node-address https://rpc.testnet.casperlabs.io +1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c +```
Explore the JSON-RPC request and response generated. @@ -543,3 +576,9 @@ Refer to the Section on [querying deploys](../../../resources/beginner/querying- ```
+ +Refer to the Section on [querying deploys](../../../resources/beginner/querying-network.md#querying-deploys) for more information. + +## Verifying the Transfer + +In addition to verifying the deploy, you also need to [verify the transfer details](./verify-transfer.md). The deploy may have been successful, but you also need to ensure the source and target accounts were updated correctly. \ No newline at end of file From a21e3c61cc7acff0718185fadde1bf5e88c3fc60 Mon Sep 17 00:00:00 2001 From: ipopescu Date: Thu, 12 Oct 2023 20:45:44 +0200 Subject: [PATCH 4/6] Updated verify-transfer.md --- .../cli/transfers/verify-transfer.md | 374 ++++++++++-------- .../image/transfers/transfer-hash-example.png | Bin 0 -> 155044 bytes 2 files changed, 205 insertions(+), 169 deletions(-) create mode 100644 static/image/transfers/transfer-hash-example.png diff --git a/source/docs/casper/developers/cli/transfers/verify-transfer.md b/source/docs/casper/developers/cli/transfers/verify-transfer.md index 29e54d7cac..674ce1e6c1 100644 --- a/source/docs/casper/developers/cli/transfers/verify-transfer.md +++ b/source/docs/casper/developers/cli/transfers/verify-transfer.md @@ -6,40 +6,91 @@ Before verifying a transfer, make sure you have: 1. Initiated a [Direct Transfer](./direct-token-transfer.md) or [Multi-sig Deploy Transfer](./multisig-deploy-transfer.md) 2. The *deploy_hash* of the transfer you want to verify -3. The *public key* hex for the source and target accounts +3. The *public key* of the source and target accounts -## Query Transfer Details {#query-transfer-details} +## Query the State Root Hash -A transfer is a part of a deploy - in a Casper network, deploys can contain multiple transfers. Execution of the deploy includes writing information about each individual transfer to global state. A unique hash known as the `transfer-address` identifies each transfer. The `transfer-address` consists of a formatted string with a `transfer-` prefix. +The state root hash is an identifier of the current network state. It gives a snapshot of the blockchain state at a moment in time. You can use the state root hash to query the network state after sending a deploy. -First, we will use the *deploy_hash* to identify the corresponding transfer: +```bash +casper-client get-state-root-hash --node-address [NODE_SERVER_ADDRESS] +``` + +**Example Query:** + +```bash +casper-client get-state-root-hash --node-address https://rpc.testnet.casperlabs.io +``` + +
+Sample output of the get-state-root-hash command + +```json +{ + "jsonrpc": "2.0", + "id": 6458079936180872466, + "result": { + "api_version": "1.5.3", + "state_root_hash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" + } +} +``` +
+ +:::note + +After sending deploys to the network, you must get the new state root hash to see the changes reflected. Otherwise, you will be looking at events in the past. + +::: + +## Query the Transfer Details {#query-transfer-details} + +A transfer is executed as part of a deploy. In a Casper network, deploys can contain multiple transfers. Execution of the deploy includes writing information about each individual transfer to global state. A unique hash known as the `transfer-address` identifies each transfer. The `transfer-address` consists of a formatted string with a `transfer-` prefix. + +

+Image showing a transfer hash +

+ +First, use the `get-deploy` command and the *deploy_hash* to identify the corresponding transfer: ```bash casper-client get-deploy \ ---node-address http://:7777 \ +--node-address [NODE_SERVER_ADDRESS] \ [DEPLOY_HASH] ``` **Important response fields:** -- `"result"."execution_results"."result"."Success"."transfers"` - List of transfers contained in a successful deploy. +- `"result"."execution_results"."result"."Success"."transfers"` - List of transfers contained in a successful deploy -After we have obtained the `transfer-` identifier, we can query transfer details. +After obtaining the transfer identifier, query the transfer details. ```bash casper-client query-global-state \ ---id 8 \ ---node-address http://:7777 \ ---state-root-hash \ ---key transfer- +--id [ID] \ +--node-address [NODE_SERVER_ADDRESS] \ +--state-root-hash [STATE_ROOT_HASH] \ +--key [TRANSFER_HASH] ``` **Request fields:** -- `id` - Optional JSON-RPC identifier applied to the request and returned in the response. If not provided, a random integer will be assigned. -- `node-address` - An IP address of a node on the network. -- `state-root-hash` - The hex-encoded hash of the state root. -- `key` - The base key for the query. This must be a properly formatted transfer address. +- `id` - Optional JSON-RPC identifier applied to the request and returned in the response. If not provided, a random integer will be assigned +- `node-address` - An IP address of a node on the network +- `state-root-hash` - The hex-encoded hash of the state root +- `key` - The base key for the query. This must be a properly formatted transfer address with a `transfer-` prefix, i.e., `transfer-ab3e11fd612ccf9ddf5ddb3e5c0b3d3b5e5c0921fd1b45e8c657a63f01d6adcb` + +The `-v` option generates verbose output, printing the RPC request and response generated. Let's explore an example below. + +**Example Query:** + +```bash +casper-client query-global-state -v \ +--id 3 \ +--node-address https://rpc.testnet.casperlabs.io/ \ +--state-root-hash fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1 \ +--key transfer-ab3e11fd612ccf9ddf5ddb3e5c0b3d3b5e5c0921fd1b45e8c657a63f01d6adcb +```
Explore the JSON-RPC request and response generated. @@ -48,14 +99,16 @@ casper-client query-global-state \ ```json { - "id": 8, - "jsonrpc": "2.0", - "method": "state_get_item", - "params": { - "key": "transfer-8d81f4a1411d9481aed9c68cd700c39d870757b0236987bb6b7c2a7d72049c0e", - "path": [], - "state_root_hash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" - } + "jsonrpc": "2.0", + "method": "query_global_state", + "params": { + "state_identifier": { + "StateRootHash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" + }, + "key": "transfer-ab3e11fd612ccf9ddf5ddb3e5c0b3d3b5e5c0921fd1b45e8c657a63f01d6adcb", + "path": [] + }, + "id": 3 } ``` @@ -63,70 +116,42 @@ casper-client query-global-state \ ```json { - "id": 8, - "jsonrpc": "2.0", - "result": { - "api_version": "1.0.0", - "merkle_proof": "924 chars", - "stored_value": { - "Transfer": { - "amount": "2500000000", - "deploy_hash": "ec2d477a532e00b08cfa9447b7841a645a27d34ee12ec55318263617e5740713", - "from": "account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5", - "gas": "0", - "id": null, - "source": "uref-9e90f4bbd8f581816e305eb7ea2250ca84c96e43e8735e6aca133e7563c6f527-007", - "target": "uref-6f4026262a505d5e1b0e03b1e3b7ab74a927f8f2868120cf1463813c19acb71e-004", - "to": "account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668" - } - } - } -} -``` - -
- -The query responds with more information about the transfer we conducted: its deploy hash, the account which executed the transfer, the source and target purses, and the target account. We can verify that our transfer processed successfully using this additional information. - -## The State Root Hash - -The state root hash is an identifier of the current network state. It gives a snapshot of the blockchain state at a moment in time. You can use the state root hash to query the network state after deployments. - -``` -casper-client get-state-root-hash --node-address [NODE_SERVER_ADDRESS] -``` - -
-Sample output of the get-state-root-hash command - -```json -{ - "id": -550641580167406055, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "state_root_hash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" - } + "api_version": "1.5.3", + "block_header": null, + "stored_value": { + "Transfer": { + "deploy_hash": "4eedbb5cf4a571748cf7ae9c2f17777364a01f80f79f3633a0cec32b7e8cf2e3", + "from": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "to": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "source": "uref-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1-007", + "target": "uref-8294864177c2c1ec887a11dae095e487b5256ce6bd2a1f2740d0e4f28bd3251c-004", + "amount": "5000000000", + "gas": "0", + "id": 11102023 + } + }, + "merkle_proof": "[42526 hex chars]" + }, + "id": 3 } ``` -
- -:::note -After any deploys to the network, you must get the new state root hash to see the new changes reflected. Otherwise, you will be looking at events in the past. + -::: +The query responds with more information about the transfer: its deploy hash, the account which executed the transfer, the source and target purses, and the target account. You can verify that the transfer processed successfully using this additional information. -## Query Account State {#query-account-state} +## Query the Account State {#query-account-state} -Here, we will query for information about the _Source_ account, using the `state-root-hash` of the block containing the transfer: +Next, query for information about the _Source_ account, using the `state-root-hash` of the block containing the transfer: ```bash casper-client query-global-state \ ---id 4 \ ---node-address http://:7777 \ ---state-root-hash \ ---key +--id [ID] \ +--node-address [NODE_SERVER_ADDRESS] \ +--state-root-hash [STATE_ROOT_HASH] \ +--key [SOURCE_PUBLIC_KEY] ``` **Request fields:** @@ -134,12 +159,22 @@ casper-client query-global-state \ - `id` - Optional JSON-RPC identifier applied to the request and returned in the response. If not provided, a random integer will be assigned - `node-address` - An IP address of a node on the network - `state-root-hash` - Hex-encoded hash of the network state -- `key` - The base key for the query. This must be a properly formatted public key, account hash, contract address hash, URef, transfer hash, or deploy-info hash. +- `key` - The base key for the query. This must be a properly formatted public key, account hash, contract address hash, URef, transfer hash, or deploy-info hash **Important response fields:** - `"result"."stored_value"."Account"."main_purse"` - the address of the main purse containing the sender's tokens. In this example, this purse is the source of the tokens transferred +**Source Example Query:** + +```bash +casper-client query-global-state -v \ +--id 4 \ +--node-address https://rpc.testnet.casperlabs.io/ \ +--state-root-hash fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1 \ +--key 0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf +``` +
Explore the JSON-RPC request and response generated. @@ -147,14 +182,16 @@ casper-client query-global-state \ ```json { - "id": 4, - "jsonrpc": "2.0", - "method": "state_get_item", - "params": { - "key": "account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5", - "path": [], - "state_root_hash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" - } + "jsonrpc": "2.0", + "method": "query_global_state", + "params": { + "state_identifier": { + "StateRootHash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" + }, + "key": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "path": [] + }, + "id": 4 } ``` @@ -162,42 +199,45 @@ casper-client query-global-state \ ```json { - "id": 4, - "jsonrpc": "2.0", - "result": { - "api_version": "1.0.0", - "merkle_proof": "2228 chars", - "stored_value": { - "Account": { - "account_hash": "account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5", - "action_thresholds": { - "deployment": 1, - "key_management": 1 - }, - "associated_keys": [ - { - "account_hash": "account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5", - "weight": 1 - } - ], - "main_purse": "uref-9e90f4bbd8f581816e305eb7ea2250ca84c96e43e8735e6aca133e7563c6f527-007", - "named_keys": [] - } + "jsonrpc": "2.0", + "result": { + "api_version": "1.5.3", + "block_header": null, + "stored_value": { + "Account": { + "account_hash": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "named_keys": [...], + "main_purse": "uref-11e6fc5354f61a004df98482376c45964b8b1557e8f2f13fb5f3adab5faa8be1-007", + "associated_keys": [ + { + "account_hash": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655", + "weight": 1 + } + ], + "action_thresholds": { + "deployment": 1, + "key_management": 1 } - } + } + }, + "merkle_proof": "[31406 hex chars]" + }, + "id": 4 } ```
-We can repeat the same step to query information about the _Target_ account: +**Target Example Query:** + +Repeat the same step to query information about the _Target_ account: ```bash -casper-client query-global-state \ +casper-client query-global-state -v \ --id 5 \ ---node-address http://:7777 \ ---state-root-hash \ ---key +--node-address https://rpc.testnet.casperlabs.io/ \ +--state-root-hash fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1 \ +--key 01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986 ```
@@ -207,14 +247,16 @@ casper-client query-global-state \ ```json { - "id": 5, - "jsonrpc": "2.0", - "method": "state_get_item", - "params": { - "key": "account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668", - "path": [], - "state_root_hash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" - } + "jsonrpc": "2.0", + "method": "query_global_state", + "params": { + "state_identifier": { + "StateRootHash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" + }, + "key": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "path": [] + }, + "id": 5 } ``` @@ -222,50 +264,46 @@ casper-client query-global-state \ ```json { - "id": 5, - "jsonrpc": "2.0", - "result": { - "api_version": "1.0.0", - "merkle_proof": "2228 chars", - "stored_value": { - "Account": { - "account_hash": "account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668", - "action_thresholds": { - "deployment": 1, - "key_management": 1 - }, - "associated_keys": [ - { - "account_hash": "account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668", - "weight": 1 - } - ], - "main_purse": "uref-6f4026262a505d5e1b0e03b1e3b7ab74a927f8f2868120cf1463813c19acb71e-007", - "named_keys": [] - } + "jsonrpc": "2.0", + "result": { + "api_version": "1.5.3", + "block_header": null, + "stored_value": { + "Account": { + "account_hash": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7", + "named_keys": [...], + "main_purse": "uref-8294864177c2c1ec887a11dae095e487b5256ce6bd2a1f2740d0e4f28bd3251c-007", + "associated_keys": [...], + "action_thresholds": { + "deployment": 2, + "key_management": 3 } - } + } + }, + "merkle_proof": "[32060 hex chars]" + }, + "id": 5 } ```
-## Query Purse Balance {#get-purse-balance} +## Query the Purse Balance {#get-purse-balance} -All accounts on a Casper network have a purse associated with the Casper system mint, which we call the _main purse_. The balance associated with a given purse is recorded in global state, and the value can be queried using the `query-balance` command and the purse identifier, which can be a public key or account hash, implying the main purse of the given account should be used. Alternatively, the purse's URef can be used. For full details, run the following help command: +All accounts on a Casper network have a purse associated with the Casper system mint, which is the _main purse_. The balance associated with a given purse is recorded in global state, and the value can be queried using the `query-balance` command and the purse identifier, which can be a public key or account hash, implying the main purse of the given account should be used. Alternatively, the purse's URef can be used. For full details, run the following help command: ```bash casper-client query-balance --help ``` -Now that we have the source purse address, we can verify its balance using the `get-balance` command: +Verify the source purse balance using the `query-balance` command: ```bash casper-client query-balance \ --id 6 \ ---node-address http://:7777 \ ---state-root-hash \ ---purse-identifier +--node-address [NODE_SERVER_ADDRESS] \ +--state-root-hash [STATE_ROOT_HAHS] \ +--purse-identifier [SOURCE_PUBLIC_KEY_HEX] ``` **Request fields:** @@ -273,17 +311,15 @@ casper-client query-balance \ - `id` - Optional JSON-RPC identifier applied to the request and returned in the response. If not provided, a random integer will be assigned - `node-address` - An IP address of a node on the network - `state-root-hash` - Hex-encoded hash of the state root -- `purse-identifier` - A public key or account hash, implying the main purse of the given account should be used. Alternatively, the purse's URef. - -The `-v` option generates verbose output, printing the RPC request and response generated. Let's explore an example below. +- `purse-identifier` - A public key or account hash, implying the main purse of the given account should be used. Alternatively, the purse's URef **Query Source Account Example:** ```bash casper-client query-balance -v --id 6 \ ---node-address http://:7777 \ ---state-root-hash cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3 \ ---purse-identifier account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5 +--node-address https://rpc.testnet.casperlabs.io/ \ +--state-root-hash fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1 \ +--purse-identifier account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655 ```
@@ -297,10 +333,10 @@ casper-client query-balance -v --id 6 \ "method": "query_balance", "params": { "state_identifier": { - "StateRootHash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" + "StateRootHash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" }, "purse_identifier": { - "main_purse_under_account_hash": "account-hash-b0049301811f23aab30260da66927f96bfae7b99a66eb2727da23bf1427a38f5" + "main_purse_under_account_hash": "account-hash-e70dbca48c2d31bc2d754e51860ceaa8a1a49dc627b20320b0ecee1b6d9ce655" } }, "id": 6 @@ -313,8 +349,8 @@ casper-client query-balance -v --id 6 \ { "jsonrpc": "2.0", "result": { - "api_version": "1.5.2", - "balance": "164000000000" + "api_version": "1.5.3", + "balance": "1109111876194" }, "id": 6 } @@ -322,23 +358,23 @@ casper-client query-balance -v --id 6 \
-Similarly, we have the public key of the target purse, so we can get its balance. +Similarly, query the balance of the target purse. ```bash casper-client get-balance \ --id 7 \ ---node-address http://:7777 \ ---state-root-hash \ ---purse-identifier +--node-address [NODE_SERVER_ADDRESS] \ +--state-root-hash [STATE_ROOT_HAHS] \ +--purse-identifier [TARGET_PUBLIC_KEY_HEX] ``` **Target Account Example:** ```bash casper-client query-balance -v --id 7 \ ---node-address http://:7777 \ ---state-root-hash cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3 \ ---purse-identifier account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668 +--node-address https://rpc.testnet.casperlabs.io/ \ +--state-root-hash fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1 \ +--purse-identifier account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7 ```
@@ -352,10 +388,10 @@ casper-client query-balance -v --id 7 \ "method": "query_balance", "params": { "state_identifier": { - "StateRootHash": "cfdbf775b6671de3787cfb1f62f0c5319605a7c1711d6ece4660b37e57e81aa3" + "StateRootHash": "fdb1474d441ec0fcbf2e088f1630dbf98d3bcf7f7a7fe298303797f35b8cb4e1" }, "purse_identifier": { - "main_purse_under_account_hash": "account-hash-8ae68a6902ff3c029cea32bb67ae76b25d26329219e4c9ceb676745981fd3668" + "main_purse_under_account_hash": "account-hash-1ed5a1c39bea93c105f2d22c965a84b205b36734a377d05dbb103b6bfaa595a7" } }, "id": 7 @@ -368,8 +404,8 @@ casper-client query-balance -v --id 7 \ { "jsonrpc": "2.0", "result": { - "api_version": "1.5.2", - "balance": "5000000000" + "api_version": "1.5.3", + "balance": "46200000000" }, "id": 7 } diff --git a/static/image/transfers/transfer-hash-example.png b/static/image/transfers/transfer-hash-example.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e0d82f504db514de4bf203f04d06797fbf76ae GIT binary patch literal 155044 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�B!FCTAXI+QK^ zp>!~)fZU^RwbEb8O6(B#xno`F6`WGWo@|VIJa69SR^R~^ZJPdDm+tH@8PktHCY9#f z4LuF3LbHe3Zy_8bYQ7G+PsmY^zb`8YKA{mlLvdWq;3|G!ORl-d4^K$-lxyymmx3Fy zO&=B>T};SLKc!?QlUj+toIeM}wAK!g?605&z|XiacLM~zp08aUk=T90;pgF@r9rpu z`hJsP*Oj(?g<%j7etXgQXWhOtqy+TQC*Gz##^l6#>Yey$9Ry6r$78Nyvo`!kzl7+)1F;qr|t=Hz; z{Q!Z#JuIP%M12B@wd&Kp$;k6}idYVT*(G?QW3usdMJ;W?Kg0=$3)*YN!PHtm+mhjP z)-OwH?=#2AF>_AIrR0b=M~f*8huZ9E?;>4PnYLQpAcp0ug#c19=e>f)!Es!6by|&o zx*>D)du7aN$QVQl?1Jqg^O#sz!am>JTr$y3g@)%oy38QbV-4}v5=YFNM+HG2JX%7h9knqy-fpVvf{Ix z86hG`Z!bAm^Gotc09`Ha1@3{u3Li^aS@g$2@B16ZJ96XKiNt~1Bd{+eiX>r6NkhE&`q{l74SFq5zk=7+l6$&< zylGX!smM`tZCp6<2xYHgap6Bl=BIL6kh&rZ&q3=Lo(rpou_CeH2RcfLc?K~`2wt6( zjZ*Poh9W_*WQ1vw@4I^@`sw3Nv_kT7XO ziutv?68kYEYF)O^QC4i%6*IgK5taC)5GFn)#5tAm*JJ!p&wNB4TG_BEB0)F)7(;WV z%}Fls(Nz3bMBn+grtP^v{UwGiw1j}}^=T|M^%wh*6d70pl1gXw5vmcVjws@XLJpdY zUrN0F0tp0?$)7%((4tFB$VIO;8jRpgP`WCnDNEiRtR^Ni(x#=grO$^-O?g=vQx|4S zof?+@3aj3cxo&ncN0CBTre1}oUL91%n~z4?1Vz`4WiEC%bnhOl-AvvghARbUL4X&) z?7e^U=miC2Y@Nol&cPJ#aj*{M5K7e@oyL8N`7_CK1KPc_K|aF;?V*G0Ja2GYvtlX?k@&T6xb*)|zC_x9n+1RYwxZ#OvLKkjt=2JM7 zZvzJ3X&G`E3VlJbq1U4srQMUdKI%;GBw|eN0H^NGwfY+ku50>K%21_*30fEIDq6D1N^4L82t=A13z_k zOAp1_@ULy-Mp(3||@wKtDe@1{O>W_&2+J2^)btC~Dpk0dCgPrl*M zHzwPVWekgV+PPv`v9Z~lGm=%S4R_Rcutk<-uB5CEBicq8GkFzLil5tzsSwgt2p0ddy9fj zezp#RAsKJt>j;9m>ypoVdDdQ1I2Db!n7*O8jg|NCVJhgkHDQ+Y{BSYFmF~fL?KBc; zn!tm7Pa2|fuqw|bjp3WoPl8bk`95?ZMnUZr@GNqQ{A?{j zxhbu7wBra5p--Qn()2W!;q=)1gm#eKoECb@n3_=zZzR8f*u=?Qc9>q`cv9eVvF3vB zb{e%Dnog#s@es+h4$Fwt3a$Ig`217Q@BXOMXmv~|g*>apYJrCW)l+tn(1TbbSyGE* z*|bcsgi@nuZVKs9Mt95NioLXaa?SzNQ6ko_LT3Ip5m1xo!xcOb9h1wB5AAf2x%$R0 zSoyy^uTz)4O?fTdnmm@=i?!ZHWt)aY)0NHetqsHNFlJ;XrW$aW$*j1dW-TVGk?{V+ z0*t6i0{4=Nm>^M4gd58DPhiso*5x8hJmbg*x+tR;C*mvD4S(fvv(Ve2fnrO?+1Q1` z$iocL6_=?Xe*HuYDH)mKXXS>C%}U+4VN?k)*OmkBZWcDjY9Y=`z;8HI(97xZzNcI< zAc*T!Sg8bDqr0gKm zW_3^BWX{W3i2sOKn*u=|kYQOs{fkkTsO~JaD=9_g_ShCz;c26erYo~Ddl3wz*zfWo z9m&V8FP*sWwrRrLM=sonP>v6v6FjG3&{su|GZGv$Oxzuh+cJk*y((CvwfeN^IYzyb zip}R8Uv&F!OB8bIcH%6eKeW?UFr5qPPOGzz2np-v|Z)Jph$ z@C@W!8vSe{w?~7@qp_)CU#xGy(!`W*#J+k8JlMXc4vLA^_{n4q(?b=>DCdUe$|OME zOij$0(M4UEB4IytJ)mRfMRD3ZzV*J9_+^fM15F=lbxeHOoFK@|VC3yVheoBe&)~3G+r(ceZ7Hl^Q%KJ6@+RST8RY83TM~_sv*EY!R z;(m2^C)td0*g56SQYFrJ)sNbQCBMV{c01R%(Kq%-0YkK`COCvGq^!#RW`cc@ z&^V-vCV~jIN4tP75ag$Dn0M@9AHiHAk*yzpbpG9g~9;@LD z>y}kuXxu8A7YyGwXO^4B>iZuGbY}5xW{;0kpj2__oSQ~e50gzJwyhz6e-;uUSapA z7PRj-%q|9_aEgjiJ!T8E*Bj{Ug0@uFNA5Fm=-SP?{&6#F!3w?XUYQ&R6@(VWW#t#1 z#!rqm4Lt|(v1{(O_B`V*8528aF~VA>@KHOuB?g>)W{#v%I-gTgNaF);jkK@j482*m z8rOs7j9#mjN%lBY9E|YOqOQ>dlb1dyYL-`p0WjK9cfd}VXc!k)_LLFZS8jvG>^>sW zYyy^yN9Bl?dni`j1pYn3g^Ph5^eJ6DOv;@`-k)7hZ413>@n$Mpk^a%O-Cq&OK2JCb z$K{1)$lRb;W;Fh`!e1ue5osJ=;|OJeyWNgnLQ3foS0-CDWVZr`enNpHM;TkB*Zjy~ zR0N$Jp!d;$HY~w`TFdbYxzr8wohUCYBKX)51abkXLBV+`uZ6SsE^opdT8aCU2O;jV zSartiScCEeZ*L-%G{>t4qmR>*c~#aFO^o0u?bp=M*@?P>v*(lQAwtJO$4PEndrH}Z z47=cvlyeUHFDYFG6Lv|>MmgU1U9a_HBYSt>Y6_Tt8Z~U;P3m~L^tU-h$ADGnp?)nu z0z6`g`0d&gz*{h^dkko3*GbBC$E)lcyBIj{L?b8zarW4yUa&w`~w|@pWxE z9_u9fum1uVNu_2PC-laKVj^Zjj%XvY#eu3!;LGQRjt!@RRR^Su(^rYZe{_W~k7k*W z-1O+@p{A8MjnbmofvdEj+ux_*Z##&pn|RlM!Aa} z7H*JP8H*`cpyiFXOCYx;h_l*l(+O=LF8Cc3?9QX#FfOc=Vab26>BI?yUY-f(Q*k;x zkH$-!h8^**A4y}PNAQ*_t;U9xY7y($2M|3R@O)V+y(YG!k2F+~(hf^zKcgb2j#Y8yE>@AA5vF2nI{L{25 zy;ykkUysZY7UPF4rTou`eg6-8Zxvouv#bk4oCFdAaV75V9^y{iZ4!6l?oQm@-Q5l1 z?(XjHo-^#8=RAW0z96m`+5c zKkDL3-0Ry2wHc5Tx;PL?Mg**~6aIvf}R ze(eO@bD!HUxPk)LE>1O0v$11_sO;vu zMTN3NBMHMou2H?58qM(-Y+z9YIoT!G;i>J%hy%MBjB(8dW+OrUf+}538@KxaNOAd7@?E?p4ZYYl@gIhK3PV*mQ^U zknJ8^<7(yzF!UB*DmiHMShKHUJud;nFFI1#3Cb@}xMtq?2zzrzlux-;AX|4HFGbQ& zzrT}U5Y!ml?1tmZ5Oe-rnRj*n&64r!K*~g!M`vSA&K1}D&u4F5+~A=3k?_f0)Q7vF zBgX8VRkS7a<0a>iuzlriX4=19+r?YGHV>VsQa)*ZGN)(fPef+2g-R-RpohHp+-yGU zuq-yU$2K2GG)J>t$m)WKP8|+ffC1^L2;z~ z;P`aKQm-3PO*mmuh)kCc39_hMTnlZaTGAu(Ho~VbEb<6uDXrXZ0P`{swR^}x~Wk`2C4%d_E=b?pxLkp6d75hRDy zm^>Ph47m5N-9YM#cV6E!4H^YTOf25n-L?`ZkbSdzaWO&4)xW09Kseqsfh7I--qAZU zV3%4J^#In8LAi4lTJF#^D_>hZ(UB8gDSGsk0|mnqCuBDy9KXYbE(Mla%w62P3SCU* z-1|tkn6x~dP@ti9fzd5%_XN7btGkhetvpmmk zB7}vg2ODPL8Y`2;cG_WkoJGH%eJ_oRN$Pqi<=ZUkS)jtez|{m47;Xlj(B-c4Tx zVXO!!W=QiDv#-jlmrO%6oFdT!bhi{|DBqi$h5;!XBpVnPv}Nc3TGu$o#mVR%X#%IOb5I2;Q37o_I>s=ONJK;QfFy*PDi=ly2BysnwX=lm?1bZt;& zwQL;vV%nmaYZtVDIWlc1En35PXEkOjB>aB+4T|Hv3;%>Z5v8e`hx}ZyRG8P94jq{U z$<)z@#I!?nDE=m0QOBA7&l@Z?kS$kxQ}LN#tgPm$({z-`IX}qX;5cAs`@}_ehTzZ`} z=@bM}CA4QFW{~6u6qmQGjhXbqGBa#$y~$%VJ)z~sb-$FE$dwf9C^Q`DT|~G6TFk|- z_RWTVqNHMAPa^|$--8Sz>()>2X6||dE9H~JoBN({k9o`=Z*@Ys8>PzEu76CItR$Gw zSw1`NAUNpq*5?<URQ-?HjGvn%a604Od9tELziW=cUdkL=k_x4Rg$EAUFziv^yF% z`$6#JYUE2!+na!qwDC&4{${e06$;_mLnhq7eir0kX_Z8zd#zTYR@1HzJN7dX!V?qK zWP%f4+?{z1z#m|^=lbSeAMdSsc-j&AiO_6y?uAQ7CcJtO5qr-#G#>;rybn z(Y9>M7hON4f3_M5zzT!_m&A1d+{&{{!$4+&D?~^G7q0I+f^{Luj^d<|ltv!%0K^sXUtrjZ(aGIt`zA^ViGtIRSjIHu4Tr1{sS?#4 zM6h~k{rPv@<821R(NB#6i#^!x>bjIF?oIcDW%YuIyr-#Hxcb578KXdROKkLu;F1mp z*WRl!TwjfRe@p)>a!$))G#uBATxtuZr$gwt#sI2I>dxsyv~rE7#X+ zYWx}wZ7@RWrf2PtZ-wkyPxQ$~Yn*PnDn37QZuMF&H|(4h8>t#xu>y@p7QbBZj>Aav zLx?-dPaUs?l}7ol;cAUO-o_|tRxsJ6632vO?#!|XRnTk1#$$L(#m4qM(@gklTI~@r zX49fB3v*A3r1fp$>aZ|d+-u;7t+cw9gkBo8Zp(bryxhN*w80?3N2k$_j|(WJjAc#U!=`vkvtXb(lKF#W>ivJYB_xgy!X4yG5LaE%Nak5BhBvcNKR{IB8Uh;Yt z0vUm8!VeFQ%AKJ)ZAGaEaa*(*R+y<3Np@r0y~nrCV5rQY<(x)b%(A162gR84H*`Fe zR}3~p%#Wb&FpPexKAL`2r@QPn5+Y)`a@>dI9hqnN#SsmTxgzuRd&+3U>e${0E&U-Z zi-t5;b34gqnW&Jf0xxbiHv}H?~XOh;FGt z?i*ez_ilRJiM(A+!aHf@7|H!vPCc(OWZ_~coAKQ>mT-na3 zH{mEAoFpxHUdT&y<+wuL__`H6Dhl1o`K9E4f!2&Pqp4z$?~+?%jpI}SquAUt|sZ~FvrUxt*#x5Tu{^(_5|8s ztfJydtBdWkU?S(sQ);bg0()b#Zs|izgpz0~-Gk{8)>m+5*jqfuvm1Tp{@8UpgT;7h zZpO54?8Zg0sc4sSs6cqix6;OS4va_hbvn{(AKndo;dzm_NHUw<8V)e`3W5xJ#<880 zVHU%CpWY?hZ(!UXNgx|d6EtVQkr|+FuT$D@f21nKm zfX%&?|qp^UbI)#{l}i3bX^az3> zk^L1G!C&FhRs=;RjE%oGl-zaQYSQAdgIn2fT0JJHt_0@2(5 zF64VfOr3|tSmsc6!6U2PAqg%5sJ>bNp7WIVO9->joatg`ly|ZV#vbUKcHn!-J;ySt z@E)9s|k)F;=;&Z4lT#WO@v-clZUrnsf+G~kQOK=+Pj7CW?Wy=liauTtD51xJQG zZ{cT}9|vJ61h|UAm4X?;K7RYjI5A#h(DQ3Fnj-Mq&gXrZG&N%bbP^LPW6UlqD630X*^@VerVn$$RYEX(Ia`SD639_TcOB zJiT*bRl4grXI$&i1^eCE*Ev*il;6|q3#z7KYi3k~_&M*4GyAASn3@MrxCgYZG0&$2 z)ryZM@({j%=w#MZAQw>r2d$r*`w>6L}^nQ2l5KnWJjIKCw(v!b9%HDAVa0F`M&ezF)s1r&R>@svLFL!?;R zHs2Rdw(=Akejam;yB&U>Dp_osQO^zcyRA@;V*&fqUV^Z58cM3A-G-gi4Q{Mb39Ug4 zR?o4G`ZhMSid#O(-9GWJx%>|F`KM(-G2PKTHm+aal1APziv5aposq<7?!tY!utB%g zj)uKZ;de^pmx5aflSUq=YH1CtZ54y(^8trkW1H8cdv`kxtM!|aK^k74p?gRMj~lBD zQ)=x`xF6y8>36N(%kJtN1GP!-FfQ5gQv~0FFIx5-apS@~F*K9_4XO#u+6Lb-@4Q3D zmK5LC+wu-TR(qnvKVP;7Q76-a@Qe7rZ3Invx;f^Eu4;LRh0wI%Y$Z%(^?1P0@V`bD;kS^qiH*PpelWq z;B@U({wUR=Z!hps3qvRD>U7i&>yuBH)`b{imMwPEV1<4DCxO7)+DbOU+SCyak{ z!zB}bhE%72V*pB^^Q!w%@_`e(Qu~VAGZh-DQwk;bIrNVx3pea$=oSY72;}ctd)VSNw3!*HL{lD2A6i zgx44}zE1fTK$7E4EA3jjmS3E{4XxJf2b5R@wKb-|8`9IrDgw5zPM9w6YLcF$B*qW7UOoFmov)3sl{yHH-(m7LbLKCHY#%@O#Yy!W2Gn)uG4FQ6_I73 z)ih4MO403npIcwZ?jdQ+7WLpH07we|9>&R3f61J94^ajATf{i$MG0Jy-_d+c$8%_C z;+X%(T`o&&ZQq$f+h%=5-k+Rv-65C+c;4{XAa%rN`aMIHkPSXLq^8%!f`zA$aHZzozdiC?*( zwS5Y6>9Xg%^OYgp5hY29);R`sdM({4dY)wp4PjgdX6VL{K{@3ZZj0Y^?T)asDCAmn zHpiu*qOBf%G5msdQvd|6P4D4KX^lVej07AR&8XXN04PpAg#qAIcfysAOhYnF@OeJh z!Ui|Hir;eYgt8kpF^QZV^atj^ee5q_v4jTKxi`bT%Np;=d89~T19=_Sd{NU+V4e^` zG%c5r9LLRElO?OIN7rgmo?`=<6nl;XLvD&*M1r>uPD?%I5$aTBnyxsyjCP>b?b-;k z>L6zKw_e8$H^;rpk(~+1oL84}q7S*0$a(U$Qp-7NGv%SW0>bWF3Q9IWJ2EBn@si!b zl_&HAC;=S>&7^qQ)k)CqWR&ARK5MRU`ysr8RQf9_+H1ZqHna9iwg&Za;Z4P3D)IYW z2H$*SzD04zer7GNg@INr)W$QRGTa(A{O&%qu1gjCVm4>BybRGlGM@9`4=-B}7}#() zepZNd+l*C?jo=Bca*HuBUtU_pc}5Y7+{Oj;GMrmA zc37;@j!de7$`A2e!QL}xlQwFc%diE9sCd3564@RcTy|BVS3yff)Q~jnGcBkP0Polw zI358L=fa;~*x&km$WI)Kfne|0pN(Qfg$Rup**teT_Wlbrbj>GMc|n;3l|8}JbxdlI zHhBON+LRa0n?O$j!S?WaxK~>>p{nUQrf{|ODk>qGKS&QYbMmkh7|JjriUoIQj(mn` zO~D;9&2^q*2eHXw3-~T`NB1(yZa%sw3x?ruFX#tIB}$l}3uV=QrXKv(Xm^0|PF5y# zEyw#iMzAlaBqmr^SV7<3Mp(3_@@5A_En2r@Qa3v?mBH^X@>-H3Z>oY&Cr#u+Ai%j7 z&%fM`Z{%YRe^yQeIHwbA=N4Y3qBc-gDk=WaRS|TbB~j(oTqyVB;P7Y>8@>nYEi}yA zv2Q=9R7Dna7MP_TsFjahv-BdKKJO%{%DYjwSbq~n@}nxX@fKAe<8JnI+zaD`v-fcv z6Rp&XKf;sI?3I5T*Zc`Ep8|q!GmTMbL&L!w&+r-MopQHD?L%C=46(PonBKQbKqS-`-=$a|v#lwz z1{wDG1v-1h=VvJd-hWxPk3NCv8!H#5^ut{BKlql4REeu!E5m=)BSx6 z(H`!o;OQ1-Cqj_%Bye{wQNX13KGGZe36HTIyq5G8lOX-xSQfOmwsI=@dTDoU5PgBM zp{D#-FT)h_?&n@{dH~_qJx}UlV4OoJ1mme)ysX|A6boUbNtJlgG^f8c)m)CVuC1zX z()R`vAr4ZZ+ekCs7U=VC*oqsFl`;pxsOnzJmH^mI$O+U22okxJdf|{K3Wc8{xtz{R zkI4BDrEWTD&_A7vmayjV`KAf1S-$bmfD-3IN;)QR?lVL7#pW`VlFI2h_U?e^O73j3 zVFTZSgts!V2Fk`C2Mo3|(JSNdP@!wG_(wFG)yMlN-hM0h{A%X;)7z3RFv22vf%;&8 zx{XpCE<=Gg{>cz)tUoLGepf=Uz1v55_ZCqR&09{Vg54NeNZoa43d&!fKLI2tQ~)NO zd$@?JW?o$E*e^~~#dxP*5GUBMy>G(n^Y92a9Oh%nX)UnXK;s4P^fnQfG_ppViYhFL zIqVL(=hEsGUVpy`b`-_{=N^A==vZP;oT-J3z<3(1C0Htiehp`1l9OoEHt4KtMOA$I zt8sLT?EJlJyctbDmotGFDsKIGljezFusIny_eSTDBG&BSB$tO=o(42M*9Lrba zMSa@&%$&31i9sN%_SLny-qc~M4I&p`!r)bMs7SxMFg#>U2` zy?NE9km&kHL$4I*b+~CosUGI=CHe$<@z|T~^KTKbwADLXs&;#NqzZ;eABk}q5lan= zTp}T-7L1EZyDJR?H56NI@mwNq&juXcLhcG$W1#~53sXUdyKauW-zY4lNlmfV_D**t z-EzyQE1>xUDnI+s)cBI{_#xn>K;TF31-X|L5LA= z)kDkmAP?v8!s6(^YowTOoOBeHZ+DdQD|n&r8jukQl~p#S9+2>bKr9YPb-Z@uA>oLT z>7od0Msxo{Hg12LgM}~c1P0Wi?M*Lk!QmW%+s%%e&V?I z>0&8fj%=W@5$MD36aEwRxZekW|Ko#&`-v!`c0Jq9T$Ule9$OGKyRDcvysfTSz9pl~ zyvSrS`2&UQd@=_B<_(2VcK+-xuqx3sYbB9K52cd=%>hSQ{wNZ$>7S6Vq#z`Zj$71E z`8%#~II3r*Jf2FoT`Y5Bc5}bXYtK0K%2;_3f~t70>x6$aDH7 zME^Nu_IO-wvmCGc{00(Lg4H$lTJmTu661Ulas3%+MdUL#j))eBOsNpd3RLCEY zpAGgIIYtD-wEh(Me}iFv5(b;Hep@#Sp=R8t8YHP9kN7tn>DP$)XkZFbzMX+0J*ZN3 z^{z=hfh_rNKl|e=A1}~@hr3yHqUITp;h2Z**DZ-=z)cH6t*SAMKBChhO@ zlxGL#sn95#3-(t<2;dd`2q6Dw22$|+gYwxx7(ZW(Oo}NPA}jyHVU>>mrWdvV--zO$ z6gc|VVn&Ba`u>$e;l1Z~LSV53#})sH6oCw&9*`%)O@jRgIs{}QP zpV-~3yx~6xS>)Fu5t?oN!16$PXJpePZ)1S~S&Fa8hnBl+4U6)BcTfKZrTfX;)??~|E=1F3b3jrqu5w*Jl0`7gT(ODuhiIS23|_?wh9 zH0lLy^Mqil{j^o9pJOta&z9*}y0bs3nW0>aB(?wh-XJCNtW?6IV!1&@J^%oUxn8_3 z02Y^zcQoB`yTfh?4-Wt=GU|qLq48h0hJq(AdQmua)8Y9DH*R+u00NBgyqXn6(=dtG z3ZTGvL%q8c|I>r~{|*syIL~wTgGSXF0+4;pkoehDqrj2xx5cO>?^s9N3>Ksxz5MZL>R=(dyv=zTYm@ zYIF03;&6_R({kGDso=3{0Lmxoj3#0uZ%eYlIWkZ+9iE#`S_$Nz%nn$L=1r#*lq8|7 z)8?uS5Zqp#fP0!}pdig!e?-$c#kLm6IsJnFgA?inK$B-WHqf4jShlMc%$v+wY`NO5 zPTF4Jv2N$%0rdEg2S*?@(lA)Ey_wBg1C(U%_2%ChVLSzWcpVGEo1G++nAFzW9hFGs z7Tu?dRg^Sr_1YdD8pGJATW{L|r0M783z~eHEGTX*m$NP|`xU)93}(~nE)=zR=h5`f zSQWa*TsNj43d2R#062h+X#o8^7=EBV``LBBfaGOjgR<=kK*`SNZY)#6y$Qqu>L-nE z%$H^}Q0}aCZ-=-nKF9g+BwaOYqZ|T|=&QKqrj_cxm%CYE>b6_RE`!u!uuKzFb<4Hq z{Y3)LjYxk#eSJmJgIOwxOg`YaGg?neAdKb=?1=)+(?>HW&nDle`13^mI*sow4m(5s~9fC1O*rI8LoY+M&w)=6BISL=4H6|VHO+`D1$Jcpy%&jD%< z=aTFa391{_4yI{AkCQJ|-u$%XD0t*0ON5 z&T0iUB{Tp{0ZSzh2{%{!uJ`B~tbq%h57&E7Gg|Iz%OHR3LH{;yXar`Krao!R1|Im@ z-Z{N|{jXZUmAg$CCd=_=6ni5AlmM60W1e_i>Fmb_sQ#1nAGN!QMP*iL-~hbn1R&AI z0s{bCeCVU=s7@Hy_as;A84Y*v7fxE|iNQRTs+QBojW8bSrppg)&g+5L#|=BJLDa1f zNn{rSN>^+CxDK!WVYg^!d?einF$L%$>I&Rw;V^ifR@k0%ktv0doFA!DxsH zr|H&nmOa>SE`Ivss@gpJ?UURv_N@LqafZzvS*`$fr)AMEP5{?QfV3baxcy5ir{l#? zUA{^cO5L^T_~pFGi^=Q!G5CcUmO7I%c=law7pG*~+`E~j##8{XLSfr#Fn;Wjx^Z`% zAD(OQk!8WuS|VYP>+)hG17!a6PwuBwda#1XjK+=DbI!DJnBU{}k(kM{i~BQ?cS*yv z>hax^{Yoa^y448R4I}agu{2<485Z}fvt#;ecZ+HODy(JOUH8GZcOOEJQ4+`9O;K5^ z)yT`^j_CyMS_hs0fH2MVR4w;Z$_5)(*5}GV9N}3?{N#hx7Ujo!QZmqsSv2 zOp8iUhk+~gjJzh2$9sxx87&t&(?I}m;^nvr$fVwvGy^?wI!Pk_lWw=q4*;Ev3jj~$ zn3MkFuctM>Gzfy6&$k+=fH?E5$rmeYK0gOCJQ(}InXlX$*8DIVa}av)uq`)bfG0wi zxNgI})0~f07+&sxGuQ3Owz+4X>*BLWzJ=dg^sjg`6x^wO1k`Ph=g08ahht59-I%Oz zI4&s%pN4>0S@j8O`n7+Mq5Qkq$)^RI8eq<|9^r8BB}qFwY1q-aj2=Vr?Z&tBoe6pZJA4gf8G^_#7uso?GnzYZk=)t+of}qPC&sX<7}S0*GC* ziiy%7egU8vq_+Fu>8~ezU(YI{XeK@Y+IktH&%tDPI@<9h6ZOtvvjUE$Fl^0biw{CqBwOc;7AK>_b1QWjn$Z5DlC1_`u6MySd)11+H$V5+l`xL z>$(*y;j8_N&vQ33^@4pTjR#UQYL430%`BucaWVJ;10{b2WW+Ta30sbe7}NJFs+n!2lB7){ZU8kLnhzHvJaA!*=dZT&l`JqPBrNB2NASH1o}X|* zAF*uRZ&K_jC5pgR59hM?#3)K{=K+^czu$bX>>qTR9by}ECR#Y*wsB5{>v@Ar%lb+| z-`eKbai@V~Mebnc#BBoCvatF=IF!pS&3-%L&RCwkuR z^^xG5OysfL6NGNry^v;7|2=ZjUi(0*h5W&mV?BTXu-#@cSO7Aongud8dG!Ew)AgRS zd;ZVQ&R%`vwlgcMtj1HS<4df}b2f5c{0Elo7nV-UtH*>A%pK#i!LJm{mR+UMeCya# zZRiV$Za{I#4Ki$3hmIx>*Ce-8Sd;5(&)@)S4C;kV5owb^RM+b@7tG zPqq)t(#K)1CxPX@S>;EVDQ&5BbZW&B`lnqN@Gmd_q`e;}DErMvx2LVRvtRXK`NjpS z=MsPkU97h>EmH#+UXH>KDIr%!GXX>Kt7B_Il7-5$DLLmCmzG2_t7Q&={ihT1Qe{ta zsvvLw(j&^p{GpNr;scnEq>66b6r_5EaZRn^)I16#%cwi5Wr>=`E0Y2+Ze>K*MPAr> z<1t}VUvd+@2<-M&pZ9zym0&8j?iTRDGfA7<+xnnLm*XI%)CM3umhAZD@F3>Ide~y! z#l@v~SOI2lG{gJ#YtO#EzA4Qa_MmqV?|EOn{_P`u4RTn|XY$m302%Sm?|?^}-{;@> znra3I%Kh7a0^gbv@%rc%_59TS%ad@{zDN=K%~|Q>n+spWBK)E zdDbh$NbEFN9ln1(`rF5UUiTki{x41Y|COq&THjw9sl5yM`N`uI7|b6ZvyvVvB6iOB z!O(wE_!L0lk8s|A|3%>siGlr9N7C-_zh?bEn{?p~u)mHYXg~dBf0+aO>p!piLumgI z=6_V>f2lD6kDFE#~7|dkNk97sA>+ITD>-?@QZ#8wc>{91Ep5G5Q zPyJ87&e=WvZ%K>zU_(mU(|p1Xn~x1UxhQ>s!yL0hzqt$VdDAgoqf{z@cY+`=YCLqF z$MA%;vu6$Wy+c(*?kP2w@=pSP68wH#CxZk3kpgZ*9mvb|rhbsQvNSUJoBq5^Tqnv4 z`A8Uft*&NdR~OXpCp@p9XKs0TiQ#ZD(010`)3%Zx`vk>$Qm}Wulja&58F_x8W--;+ z=4icRcQ9>s$uu)r9c8_+oLct{;E_sBPQJapwGNUyni3ZiXR%n`Um0&R7`Z4kb1B6z zY>x=^SBKKh{iMP{QEI~Aub!xKH1|J?^*_Sl1q*RQk)8KQZ46n>=vd?&PEMGZ`t-FM z(|o?3r&@OpxV=?WXSdQ-QJM3Cg!6;P)K7yEEr=D`+S!?@H^<}PcvusSLZMR42Ju`? z%59vqEPsH2ve7TrUwO58C7r(+X-P}xb46^mK~ei(UX5mSEY#+yv*x=y zIAE`cbeSmB^yq;S`*9lXlxg%PgcPD87n6ta{zsPor9qzhq@(o&gj}?eG*)T21tAy$ zi#%tWjWs`YT3kAbIi!7bhrfJ?%B4+(*Xhac`^OHE1nh^(@(Gqv$}oD#(W1qG$Z9^7FB4-^$2oohwqVyj#P zlVj6z{OO737kFqq@0RS3nJ8@b?)NS={_oxr6SCnYqO7FFY}0k27ZN7sffD!7=A1#=(Nt5N zIL}Gj%`%YnH?bQ|VL90d<4)vpZ@rrbx?3ROP;1SX=3NvdbJPM@;{OK=Any4xFE~rM z1m`P&%y|EFqM+3`pA}-9R1iD*3ji)9rUszMZEtVy!F3*FfBH^QI_gnUrk^#h2B^{0 zjNU-(kXwh0!v1j6apP`gP@(bm+H-jLdjvJ7nL!^8kinVBd|!8n8husekjnG(bDSpq zVuSzXWw7f50;xVd#dd5Nsr!_QqsLTLkE7ycR=A;XKQ)ydgG}@u=pi%(9Qx91iJg&( z%5`A+Xm|-njH}sTgu6?0zTk*jBa*{b!peMAU+p5S6zg!?A;ur2%npff-TM#!l2-xn z_7wUawcV4svxE{f2u93V>*@j4IH&9VtGP@;Eg(Jx7=}wlg#hBMJ&)JmtqbLA-;4{# zp(h-c=4*g**YWFm%MHJG_M3kTfevbuUDXk#0(!@sjrpe`^-Vb0robpf1M(G2r z1x!ahVVHTUB5BcaC|0eCuBH^*qse3+@qGRKoUn(K<*IE?uIQvD4D@pe_AB+l9W66X z%W0n$>P|d{OO&Mxgu{;S>ue7~Cp(PDW3vSfkZCHccg(khowSzALEhj4MNSl$Bc1?9hodli!YkUvwM#zE$rk1}?( zUK+)myZwD{!F-aI^CbR&w>6l2ygj^7y0pG+n1btMdA^BAAS8cyJzJquP*6brq_ZWQ z8`4VL{M-m%;1UUI>pWZh_2pgFP9RC@Ezl<=f4(<=PcFq<#pG>!EJ0mgV??DQxIh2P2zZ>>b)$~9Ck#|@h8g`_P zH*X)>)_WwDjXrAisUsiB`$R`XWWe-w=p#Q^#B-&v+d7^8gl=h_UhfK$bj!x+4#CBB ztL1B$!ER)e5%0EPY~(w#X33Lx5@9N@X)BzQ@bwi`ZBR7IIofDw$dwo`I1jVlVHc#> z7!+TGg@rA_vH70Z)ycYFWAY}+O-Kn*gY9O!(se5wSTJbjSK>4{Utm@uIq?M{DZzT^OB6fXNkQAu;^JbCcwC`- z$>at8D+~_1Vq&!+8m-E_8s`~JXEUI1{lKVNl`Pkgn3Xl3`H2F2d|)#Ay#o7|*jWe+x}VAYHgD#0FGhA)ujeaA|p`%60}5bXtNi3~`0zL=Q=H{v0rkcxnJNc0dg^lW55XjKUt18G9lBv^1xw{yYL2>nU*Q-U5(83x#48u!|KbmNL$D z0%RQe)1oR%({B71dUmEOfG;J8Y|Xlovh$=im5x;J;1)|l6*F@<-=d^f$dn>{^aUwJ zx$2sur0=S~jI-zj_>G__0B+Q1b z1Wu0hdY_`q&>8TQm$!u3mFV?P^9K3{g*2Wx?Ia>Q`ZpPesAZoTj;M(E^54N!wgTVA06mCMQ;rzvUYY zl@&<7yg8cRyA;NCHf{HLQ?u6tzXQud!^1=SDZS9vfZRSNO>4A0&$p1c!Ev#s0aX~M zdbHxhQEHM~xyXUiY}X{_irBIeHvWI zm?N%wqR%~jNVvmn`bT8=NxFb{qtsV^kE-G$5FV_`!ik#9CG&`dCi4@?VTd|c4-UE5 zG)h?-Z7+f^{Nd6Lsiy}H@)cf^na@|sJviSSs_x0y;g8BgCY#_TINNB>=W^-GETm4J zydET@9%|(oMET>SszNpFN0hB{uYbiT_qs}Z=x#eD?^D7Pv7nWC2lMaGz5+9c2nb(X z{RZRNO)gExU|ek9UjIixafk=x6~lIZkiO4P@#qVd5X_#x>YV#y&@l4&ygu@8V4L0> z27|>Rn4gtRQAOiB-pIgoEfSsVvcmnA%LGiEfXL7qnRVC@AMaL3{hF;AIzswTCgeF_K z2UnLTsY%L?Gql(0kiWhC8_aF{uP}2~{RiF4Za4w0tSRHw=N>>aP|9lW^3idAlhJ54 zM7-~0HVz4kH}A*y`GxonR_zH!!Wtj2tHLh}W+T6^O0J@MsQqTdoqt_tTr^BN$fvnq ztB8s9j{wY~K=ty)_VCek$-=HlspZ7Lz3l-Cji$@OQ5^{}aih_6xWBOz+&hNak0er? zo12|IJuHJ;&8=dhMtj>sYENqSH;0a?Gbyuc0+OusXW;|d(eG5Q!m3N$`@{6Ht&D8- zb0ZHlTmR6*NmUP+f@vQd8)-&^*ayYuC#af3mLIN|H^On08jV(6-^GPPDJdw_%C&!v zf;tw3MciL{cv|mo+D3R@Tpk2Om|7rjKGgtWSjy9BwrCIvm8{YiuB*x0rjt_Fv|+Af zcH4cxNmEIfySuxidU}eQC$ZTbU2gasQY$BiV4$lD1#zon8|y~r;)?mRT_NtVHv)yI zdbFCrjMcq5QxX()$C{R@F8ZR5!I9SchiZD*13I$YFtu7-{hDiv-C>uOWoL6RxfBYK zVfouc_ftlGuLu(i9NYvYp;>&HxzwAtZyAr4s*P6pnOc1Bah5MexD3t-H1chgm6tT7 zD#i+@Oolqn&(6r$Eb;Yr%z;r8eBKtbvdVfqG}{>)?~1j}d1o_}7`>Pkhz5kKtMmrCFISrMKm1Ax zEF(Jq5zb&Jr_()&&i!DtwPpKPmST_3_&s1xq7J5^!miFMiQNNX5LkAE1qBrjcLBd% zIFvOL;vmb2Ms+~nwT2lUm%AAVUy6&1Pft(bvDpnpsZf*__4+o0)%$FLO^m^d+)WD(Oiy0fwH&N7~q|3CJWJI2{n2qIA zc7*qt+1bTjiqC|Fgh=_$@z=@7$i@QondNwSJ%ZY%+}+$fy$Zv_6{l0bW9CUA8|drr zIU3=pDJz@ksp+pJv5)ivK{C}lSXgp$_Kc&`fO0#tjj(Loq2Yd`8R}&{{is5EJ-tE& zDQ#X4_`Pw^T1m;u;P;sl<1m#-#VMKVKQ;_w`71=(7H{b5GKB~Ngq}Qdk&226x2*|@ zRM+b{%@$`R&a*zAM-TwiME$_?{IH_)^=q>IFI`GwZ{hq6nCjl%#iZlTmPTokqjD9(gTBr|xS`)?@t4<$}{7|Lk>!w)79Yv;0 zb#u5}@|f@Xa6Q8LP%N7Y4h`STY`qPXGdiD7k`;w8PnT#E<$Rk*V=-SWUkjc6+TfKm zS5;%(J(%Ene>s-Ax~eTGNCQ+MwYE6Vlxgv7ZznllAKt0l2_m08o;B=DcHeFEQL)yQ z*{I?5PLjznnu!T(C9*4w#n>}thvD*=-y^`nmtOMOR$e%mAGf+f%R{MkNQsF}E~X{g zEi{PdYCzB^TS5JOZU^NFL2JF8irgU3G&@5XRS2r ziFd(}adBz9qpn}|D%EH*<~NyOoDw0EJ(%VZVab(BDa=Yd*6mU-PKb`a1mbX@ycF(& z`*Bn~$6}?`Y<(RGZ;1!gel??2mf}s*e7av$_A85EB)!9fY;8y%9T*OrJy%mr;)7{C zE6Mpu=cUkJhVPG?hMZ`URBMfq7aOcez5pJ~M;w$~_x_A(9`f;;SBhacOIH>L)7S<6 z6Y`XzLBr}&Gcy347X{CFWH+b-3K|NE^*->s{BG5AlVpG3_n;tTsQ=1Q6v|3+x3&WQ z|5#%E>!%0OOj#c!dCf!(5_0kJk>!?Q7DNRrtDf}LPgg6YW|&81d&0iq*V&4Wk;}c^ ze?+6{c#r|%7$QxEp$Fr%2kn5-Q&6MqGge>0TxztRA!7V&^l*Jt_&PgNaEy))pz^3s zcljF8&}dAalbgGrAA_6lbf0*7f509c6}2Hd^3YFF#%RXJ$Im2O@QhEWvGw0+4Hs9J z(w1X(8vN`S3MHWJEekle_Qk{>8{@p=f6m;EfcT+}(C2H-$bb|9CbOv`>BbU~yn_e{ z`F+8q4Uxb+F1E(qn72RtL4H52*>dI4!^FVKL0%aYEl1CoyQyil+x8Bdn1HR69fW3& z^~Gh?)Z7Pg<6`tL;<40lu(0y}u&J3@_%yAC@u*)uFYRxfdofo5oJ7BeUpoST`S+Z) z)|axk&Z#x2t7n@J_s`7AGHAV?hdya58y6&xF{6HJ1FFCsPFKm~@{CKrU&pg?o2^qM zjAy2N52vT6SH~w*_*#3MslcU#x<6Sk;f=s;s8O1W8H7s1d>0{w#p2cs`+cSwdSs!< zNya6KHHYe8#zNlAYUGQJQ31y6yv`J}6FG5_9%OQzIVKWm62 z2QZmmX_D*CPF7>jBqQPez`?*4r<69JI3{Lm8hPMmQ%@I*BRY}Urk8gjU5KX)Yn<<; z@X4?;l4Pjx$RFyDDIWuCzxXgYC-dMVaBM-w!oqSfThS+%n~zqTnc4n-nEUF#sJiuS z3j;)y5T!;0qy(fJlqNKt5h(BCkp&|6_bVv#1lGsh~M* zWt~_J(I5@jBPm1zOB3V;iCGAg_`cNd( zA2Uge{EVWrw<94)DZI`%H)TZjnYe6k5AoNm$^y@Hj!~u9G_bpa8b&|B!qHqwN*f67 zdkNrtx(fSa(ZNm*8!>%De|0Dnj!LdLXhm~m6cDnizxVD>ILqJ}*cW?Rm@+A=R_Xb# zKA*IkZvop&#e)K7Qyliw^Wtu$Ts2*gtp^@n0WmlT0K`}gms`B5kddNa>SV=XKUkaA z7W~#VgKk7T4mP1oZmHrC=MG~f@Bo3-hIGkj+Y{YLe+aME60}ouQb;gZJHWPM zwpX~(6SO)@^*{99XtNtQ7M2RoiB(gS587=TjztN>WoOXLK0KT$*>|@!QS5FZeFy)P z@>uL=kj(}_V*-h|hf=MY!Qi5<5E(W-orT54m3Ps~;SzZL(p40BW5?S5<0`+8y- zC7$Pt;0noGCn@J59-$9;O=DOs zY?Qq@{5Dhs+D}X=o3FsBp!Hfb)Nl5q&VCWg#_&9e33g=NnDo+W&}m5ZBO3MEEYRL~ zRRet=lXYWdJUtTTxU&+XqRYOaismZws#UU;bjhvNm);!pk3`4K?TVl!%T$G43~SRp z2#tD=`TTjNn#k#W!9AHgBJNWlZ?K?E1NE4yIvSNX7lX=mm#0Rd1eptsxY}GhpYP3f z4~fX7ZI_+wbxx#$`ejy9=@(CorA|ht5;^1fmS7tq;>=HhuY_t&+oD)us56*&Xu#Lwuw-N7@OU#nJUrG!stnHlG%y^Ov5$uO zMvScuq1#f6*Cf8*#EG*~=IbTse zkbA9LL|hXqDLx|BHb*Y0+K2cXrg^TvA*<8LCC59aBrsUWA9D9SdXW&mnCoU{P*zl< zQCC!OsXk#=(Ol*fZev!F^rJsRY^VH>ox7=Nj!V&{>jSw5n=AJ07Zs=TpkgU5++m+Q zcGG^UXe^J**nGO?$aJh^Wm?-M)q!G&^3;XRemh~2fO4)!?G+h{V|GpS3!$}wzCMEB z&#RD3wvxf_ipe)0eD+)%=;PdN1HyF!c@9V1A7E9pOR8RN2S3nF2ts5a~-(SEHbRD-6Ry9piv z%tmSzi!oSHtpY={24ikcM=akcR2UnYdS4>32yj68yzm9=KQ>xRtWNa-f%23;+-P8ED zrTmnpTH^OUddX0y&L797p8i4pZt z!lypx*ZAhRvXk{N@vxf6VyBVP=M<<@!p%SL-nWDx=^iB3Bhy3)v>_E13kD#!<%nVA zE=m80p*Epe*LQmU&)=-lv0e>187w$gG$CA?3GF1J7<9YixZ!y=T;xju+LuKZ{&j_c zN{FDGK*hd{KJ1mH6$ZG6NT zmx%tG+OVw#7-d@h7B2yFBH7J~hSci$QmVfn zeq8bNP$1Gg~j;axMf5Bo`FREN#>?wD*2z0{4>Yn7kpW_1uEa(_*{uu?riSsnroVf z-C7mMN3lrjAl$6_$3x%E>E=t)BOU_58=vpu$T*Nt5in=4;qw3S*yO_6KFE2V`(GFG zuV3N$Am!V0Ihxu=(*>ojt}Zl(1qOp{st@fN7#e1-{2U%0 zZf;JGsBy5b#C<_@s1dD4E)~<#+Ugw`m@i3w$aT~bO!DEwhg>y8(b6^*q2hIDN-Gt8 zx3aSH98bDk1N{7Q0u!lrMhkWHEiAmPmcX-N zW6be+Yib%%S4+#o``dP#Jr3$fX38V$ssDmXWu(D!IJh%zP}v#vMoP#3f3i`glG>04 z!%UAE3tOCR`V|4W+Z4Ez`s0I2RLKe`Z=0$O?e-`tYsY^7p22&G>$)TO4hExf+B@He zf3cq`wxfx6-DD4itn3ec_%LPjalF{MTk6xU7ZGmpWB&jV|#{#mKzrr z7vMmEF_Bf4bt|9W>ya5~B|VdHIWr@<;ZX5x7w0fe#Ie<+9P@Sa>8z)(q_#Gpy!}~E$cpCt4kB8rFAJwes;7q zUFhO;eZ0W@Sw5D{x#62(e;OGnsr|6GNjDxy+kpk}$w+b_5OwSWB83eL>Xb+iu9}cvHi!;R|VbbxK}+87B+Yz z(}_@{=V(Tm?HBDpNUi~2Ld2g09wF~ z=LjE2({Tjk8G@myJD$Q23UA_I9>@^`C?-T3J7I2NSi2KWJvv+_JX#Oq*-Zg zaXDU_kzoM-Q!gO=Za;8pW9CeAVz<;&^BKE`f};9$pP+#wRf~1EUH`o%z_R+=1O3#! z9uel%oZPBcN)&HR$Nc+7x=x9)8u+5-#a z$(4c3*^Z8!>S``U95ghe$u!BF6Y00H`ntN=sNZ4azCKb0oLny@ic4#W76nR=A~?WtqV1aIw)|3QOe87%jfd@=ny%b?-28Qe&>ekF`P8wB3v4A zl$WKa$+TT`53@(>1GyLgi(^fon^mD@C6)Jra&B364I4*Fj*tw;hQaA6twzQd&Y@nq zr*ujSdXi4Pl2NgBXF#A)z9W?Vnf!&44l90p1WojXXR^>>EO2k@6~wJDTxm@Nj2US- zb05or8ntGkpOOX@cSkF`mW;|X0&MIjPc}6_RaneLbmSO+UEkVrT_NK=_Lr3I9w|e* zeS9T<7k1(^n3lRJg_V%AEIc&b0e!2*ed`}!8UxTVKCK zyjI+J3Fj8H9o$GNRo#G#$|{6{FUmU<~ln^k{6yx z1ZYcaA#t)YG6{J}NiQ#)T^Iv&p?Cm$0#^1J=M=QGrQ%CcRO>F=?^idu&#c)OWSDE{ z#;#+wpf3M{4>}N-PkYa76{5=hG*=^Wc62e@weB5lV@QskP5BPs;AE6F6FGG_%8v)a z_LH?QcOz*dzq9Lj9#RBXoW(hH5a)iRrlIUrpPGu{cG?Z29Lqe``{Blzy{8q!<3WS66l+@>aStThcDdh3aa`kaXGhQ57BD1CA zX2@M_WZ!ElMs5MlgR&|pyWwGfesjQ}4=F3Cl?Pp34u7Kfi}|yfZFfPD%SgVO#0lV<%jqx(p=F7vfI!g4MqFCj7sJ=edS_UE_))ESCb;v1~0B=5gRufq* z`Tk3=)7}S2;B5|ifZRb<{y^?B`)sT@?KYKQDG!ZC3Vwe69H7mm%a7_Z02a^PX;zIN-WKfl-Hu^N1Haa-Wef)xrlNv6KQKQ zKCoYF5O}?K;(t}0lI5+fBya}%0@_LTEyF5X-}c_h3wU&N_KM&s+H_msfUD(F7we>T z=+kei!*Wb}z@>XNTQ685{_?^tFe0B$z3#GO9V7c9;oaAqa}iF&vc#Ts1f6zXm@rms zj@~A#0*A2gq5^SCTcCuKi=_R94PjAQ$uiv`xao~{#*noahkz?8U+j8*vE||6f%Qr% zC-A)G;T%BuWO^+CMbaq0s>}Dj;X+$Dp1GKqkE5@*_sUdF)ymLh_pe{;)6#5(ryZx1 z2tUW=;2-L+nawZ=5%pvZ;~DD_PC5}wl}kNevUXf=5i$W%YI&4ve%jtV9jAl1U$H2h z8xQMUS~nWbxuC_b|(Nr0hO|XPb&*njvP=(_40?lWFlbw$>(DJl`N>`fB1 zc}7erR|pD)YJgZ{BJAN_9iXOgTm3=>;jdwuUQi%%p{!(A)ToV(D%-)yGoolivFQp?iOeQM_ zbsx2q=Bf_{4n?xtt-&}8xxB_|O`;>(qbz@?)kIK&(oL)t?S&+4IMxnYF)5<@6?N`B*5ql#ughlP8!I!5Zw<8G z1RRTnSi7ke;A0OPq+(nU?n;#N=NNXqFJ=O=aQIuw&R#m(meD>bTJA{fNQ1yDs##Xd zNa`>e)c$WwG-HvMTTr<&gVH9Yq@_-`9kii`?WU0U_o=GQMZn={zeH(q7pSjiXiN?_ zr(d~xO}tNj{4Kz{SB$=M*#QV*_sa^O7pLL50A^X&+^}}3-q<(jkxJ*lTh|_#+NFhQ z&PEs^=akEl=0#?X$wdr^a-Qh;OxmL2^BQWECs|pd7wz>400LCO9c+qWomSu*$ai(c zA-3dkY3WIHjGO@MVZE-HOiB^p+!4Ol%P~E4jl0%`us0toF?79H)9$R;-ATfVot@h< zBruNrn^J>p>9c2qYLw&GE4^ei>A zONkd1)z6}1ha7z3Os{6MyAHF~WFFeKbxp!mQu1Ft=qu%;STZ6M<*l^nSGwqfraR0< zPd!fuyg)AQu%TSSg$!)X%=ywZnJBEm%PREfa7boC2w&>R$g{!0A>yT&;gWgs|C(26 zm(vioYSpK!w%PT3%Jxg3#3Qnl`UGFl94(M8Iag{repuXhkBNTNlLa zvGnz5dbnx?p^Xx!BI_*F$VZ{!0vO?yEgHwGeiGMKe?8e>g2tzOr#1Q-o zjUh~}6tpZtbVmIZaOV{NSgRkN&PY%N z8b9XjX3dk%xGTEdI>sZ9DThT}{Vu1$juWF;Go!Tb60lA^aJ6~{h%e-kyceV0`@%V5 z@~+_W*3gyz5D-!On#P)Np*zMTxfjK1m-pQBSF#ba{$81*>%i=zgk3UY-ppn=E&lE@oriq&6@Bt}D||Uw;R77-IQ=$H($-9$$Wr zP>3FJ=I2F4P1SDsAcD2UCV!`caAoTXZ!B_0ZdL)d#XRZA?h%G@#fyiP3jqcD`x6*b zjOc1jO#)m8)k`;nx}X;$5NTXqwGzwJ72*uD>FxA5vzeW>`E$o3Z`f*JRQLH$ybtqR zM28!{DNr^pbtX0ar<#{)r3nWg#{T~O0!6gVdSBWJo5Xgxr&fGv)oXsjLCMxuNGNTO zsCl+<_oI+w5vtojE_;@_*kBb#Iw5_3aEbO_c*q!eLvtBD`d#f2*U3tM6b}zW!xgMN*whe}Df08UZe@KG};Qk^P}ue6#X*PeQ)nY*=6J zjYH=eJ)csfrm|l~C|!`S;si|f!OPgK;*RSft4=u46)2$$1G}kafGe0;_BU5Bt|g|c zo706&Q8C$NoNRSaJ1%CnZ*jj+N4L4pB`L{8XWTvxq8b~+g*Ni=^YgH zvq|F)z$eHgk5~9QP_M6bcPY(65@UsOnGlMq9oB2m8QE6@Ka}Y|6tmsk-MfAJR*tF- zEq8{7G7R<(E&gd1e136waN+e*KHN6Nye*gl2Yc0WjOBT#6@KX-(-w8#e$PvrG12f< znc+*~R1raHw-|rlR-T6IW3i!vanH)mf+x1p-o7$R z*X8nL3ErD_NRKGbh;Cn@Y$)4VRvwllXXZ!=qvCqq(MhQ$V3|1 zc@LQ0N_xv(7aDwLj)wXdR;$N3H_LU}!YBa+qGD^xDR60i*+bU` z=4~~SICR?ioxc9zZ(O?xi$}u0Qm>EV#%Ccakj#oeG$t{sEIb4@x3tYNrAI5|&G_XR z8%0kY=3AZ|r4L+YwBcmC_h)`=<}Bz)1%fjTWwd1|Z#C4Z{2wfv8ciN29XigMclWE; zL)CKgL?vM@+0q zjRo z|M9llTV??H4c@SL_MdP02U2#s?>+rL-oEh}3YdslH)r2mf1>_-PyGb5?)JZjdi{Wd z_a77gB|N+y&;LHwOH$aq|MB*nEO4q>cfZyDukRBOIsdOJ)xZ8qfdnvg&>wsKaUcAB z7TLLf)Od-3Rc&i(JPA9I5~5R!^B20{_0xsn@XQ`jec#%bO0AqzZav>p zR8)k5_Vghki!l&QGIh9JNtu9F3*U7&6odh$4xH{mMZ9CF?iog#r#w4@kto_OI83`f zMg6)JTbE`n8L~H%^X*K3kI=rR7(JeBWzP03GeeK(>Lf2g7~RIGjm%SZS*=3Qw6*1w z^86(JtOMJ`diH5!$2{4(-&1}%kE?L8jz-Mq_8A6h?Zq&T*L<&wgFQF=Pm+}X6(J*- zE8~cBfLq$iwfGJ~5LVt5|dvy<-+&mRzU%YYZ z?r~CLeh!Vw??M-=)eN`jjvb0Cm}AG;!&}RU_Wy!0Ew8lDm(UrM$fMb9HM(-Smg)Ms z!}(AYu_JAu9OHQ0FlOVS4STY;dHyt)FGf1&ur>z27*t`d-9Jp|V2z~h5E$9u2J4fM z_KO3yVs2%2Yb&HHK7aA&&!5cfnX;uOe~)YDIL14u>s;tWK!_bOSgL&%@B|BDJX#^% ziyM#Qd|A=ni|2BHj^^*M=dy-99rQS!#UwXB&h!q7$MjBi0%UrAoc_cbrqz{lPdZ1- z#d1ggGwXRrg%@^{tT0?fBxTp?_2`b5uFNl6I`U7Z;i z`10k8dqczL+xJdSPE>JuY*q*IVmaHT;!W`(5JD{Zp!hn#N&ME*0>raEHUVN{Vzy~1 zVG(qkaxkz<)z6N{GXd@>L~Q0iVv^>m>FEmr!ymxDWY@52<&$;Uosu<%jj|G98XYW*=W||?@+v$(*-aR3+%hV;m zseB=Vlpu#=;Ox#tV-trHN!hHFj-6Q=b}Ro8O%on~sKfl(OJ!VL1}9}?M5QhwK-&{o zKb0zPP2o6cl$+0Jr%75(T@>!pdzCJR2WgNk`@BdCspPKByi251JkJHPOG>lXgXd(wKP)V4XRb+A|LXa` zyWhjVxCR&~fUuv0-NBJ1|2N{S;xy&DRbw~pGVC17X*Sgiabc=+jte_1feu1{{_@CG zkIx*~10tLn9-|1ros?0gyI7I#;^eNDA57}=zM@?&H8nMI@1IR)(}s`A14-!_(3hBe zpw+IOFkX9_*8N?!FeHq;d!RBR8Xbqz)o@jT`S^k#L(}D8&{R#yu?5-J{&99zEer{5 ztUkxBBXXfKQBvlV*4K;JoL-xo?kkhm-+J0m;g>?HTXlGRRQp5M_4agR`{0Ss9}6l5 z>*iF8t<*@j#=tAHPyG!MpehkXZ^*Aro%C9}R6-s|rdOmv=IsP>RefE3v&kaC{!gce zYx;ObcZ2krok4vZey7B2Yf3f})E5RaS~49h6&Bj6ywV&M zH9#+_=HY&Pa;oLDfuL#c58|$};{{#b0s4q+r_Sfv{{59iIACD@wWOHbCZprN!IFie zW%}As-o@k=Oj$+djp;Or|qV<5v_iFu{!-bQdu$Z?QrftWmlW*eq?JZ}ciJU;yT1JvoiE;_k=2s{T;E;&OLim#d7p@*WH7(^tYp9JkzxJbnI(_!pF5TWS+qB3 zS16_@{(1S%+<|m^Ly3mCa*fluJqqf08Rw$G_rMUm1wy^E#@0|_zh@sx^J`bLL;(Xl zipycSCvhl?-sJmTM~m+tgBdjk&XK?_ODg$vi5HpKL6PVj9;L?!FnnY8@R zxcN4Fzh5%_Np!=D0_9^8r}sojaFS2CJ~9pi24x0pKk#=Ea~RZoHs4Jad2 z?Nit1&WX6GO7j%Ph6hm@tp{RjF zwW`WoYPIIZfEPAIw1mF&qQjxClzByz7Z-RNJeKSYpT*IYu3SSq9k5S~xP_OSD^IQj z`;?cO{~*6Ej~}mC{PP}lesy0-uRs=$%jtl&drEfo?rOH$1bJ)xv}1NGNlK8Yw0joA z@Mr~JuL%~z<@7}bl95}lgv2O&rJ0qU64vU|hrVW|cdn``r(kRQo2G2I1nZC5#*JH& z5@5gJ&E4Zz5sOeWJQ$zOGNSp=e~Sr6s&6(8>2kIqMwccwPJ1>^PKHpa)i4@bCE@Es zzz&P!Dfv#1=K^tvDQV!WW^q(^G;L27hTi04v{Mm(B9v>N3Lk{YeVs4%JAZo!m~z!7gcgO2(gpqedQUov10iG++mVyUvXDKPbJ^)>OU2g)sBPXs;Axu^q4q)F zWVl)A2*j6*ImlY_QsqX!ZjwxUV*SCF(%FG}$85NrU~oxX-hyDHkj?UU*jylL?J@Zi zxk(;6$LoBG&rK8{5qTD`#veEumIJdn-G}K@Lku6NC_V|%dYXpE(Z#5w@JN)z6p-$@ z{nZ;&It9`Jr5Gw0?IUM|Py;dn8+O4rYWm75Dr`E75;TvC51ncfC8+jB=xJQ#!;N&` zuBt}CpRVO<)u=UkV^@JfJ5(fd=g?$a07?aqwmP6<-54m12yvKFcYS(t{BJLS*s_61 z!=muYnnkz~(@b{P*->?Ue?_xz9`!O_J&2;w~{$yegf8?0=>lOoBJ3)9mFZbRjXuCZFvrGVdCX>QpNffjZK7ficzUO!qp$)?Ni8M4#ird5 z>0K2>;u5eGtF8eHEtl91rS(M@ur3ZXkwRVVtLND>sbSz z?{#r*8BY~8h6VRU|Lz#E7P(kXMsb8VZ-1WRPB)3l?hD=A0q)1FjNuBuSAZ2LVv1TB zCPa8HbF18NPN+Y4pNYP$IwA`CAx_67WP1C4UHNf>`WD-G z$~iKQma}3(f-nytm=DfoViH1h#TkjJdF@BGf50wWNM8EZo)#G_h{ZnL8AtsPIu2`- zD}|hG2*f^PfQGqtPo=Zu^dt6}_ap5hFup*pZT?@ly)AyaUHFQJiQ7|B-F7w2@yNQG zu{{oQ7T8mcgNrL2%dmjF+(LFJqmUuD033YoF_+BknD`y4XT%?#XjVOQx5ij2vEvFL zM3f<%C4$>PQD1jTLr+S3cTgGrOQ%#5mc>>w1g}`%-_HIRDGad?xC=6iElk5GA_e7T zy8blEokCgmO%WrmmsNu8kUJCPPdhqcJM7Hg z9FGfs(3i2t%SD97o_TrsD!neV&GKq#j+dn;F$zS?q(MBskxyM3T{fdB2(*?cze{cL zBEl$diiS@N;ry2c58U&{lfDY)0Dm$*1|dgg6+OK)sG)MqoDQDKlfDM;fJ_20@>uGZ z%r{D=a?@0Vi{mFW)&N-+JiYPMH8f%@A*?i$1br)T%~T3WEUSGr*4%Y@Z?YvrG1D#^ zD-m{CH8nV1#$_*=~Cx=wcSJg|u} z6ZL7^4NXjnr3jjd!{mtcKtk&Ax^%%$VPi?1!bzWf*qg<JKk~QU?*N-2cZ-dsy$sC0}zCVDmL)L~^ zXO;>7?LX$_3bDz+0y#9thm_Dt>>lw>E&H9u%Jtyd|NG6hw`vifOYHwbV&Ju4;Li5$`$x|q2EFH zU&PR>;~}sCrbYH5{eNIhlG+Kn{dIzykN*V&nV~$*hZd3}8sqqBXdx4`ZNyWDzZ|ZG zGbR`qUK8?R#b1}`^XZfCh@K}zQQdV)Wj%FHrqJLR6<*xr>lyJn%?~~nCtiq<*VW0I z2izgp3w*?Wi=-*1C{HOqy5PcP}TN;q7QT@1kYsi=+vXGQK zCdzhztd|~5G~S0MDsuiy(?7@g{E8AxHz_2W&}?0CD{WFgMjUg#jHSG#Ch}b6Bj_yG+bI+TbrAk>t#onHkg^wJdl^Oh499W z*C9~=krT0=6(=?9PJ)F|v7c|;lI5CWav=|6T3hd9$u2xJO2dR)yB_e;8?FeJjit4f zNgTi$t<4048NgvSpKiM7B?D&n8ilic!6fZ%ZBJjTys;iBNW&whB%YVk2o-&yEIL^90j_b>lAA$^D=j@0UxmfJtveqcL$1=zI@?3c>MTr zPf<~(Ef9QBD_ybzK|-0SCe(pAU)oOfds>mODbG*}sRul2og;6}9DEzQfEEVuhTHe7Mz zx6#;J>N`3*$p@TKp;la+oa9tRrO3>t27xOPBLzi4Uoe3vZ9Vwgx%AGQc`n!rosFd*pDZFELS2$jHV{>zJL&I{IpP%3UzO~768YU*D1Ud7m z;X!7x^;eKAYMx0L+6_**OW^Z3Uw5F@CzqaB# z{IE4CgI^27OsR7suyeJ!ep)Nr<+d>wfJKg`?6h4pM35*4n+qxxr9fGGz(_Sl@7m)V z_$4tX$Cxo%)aCBIdx~S;a#S035QWTaon{8ByHo=uerqUrOR@4 zLjni6+vgXdA((r+d;R^4`@D}p{rJM@nN$>+Vfdr)*z0l73dBLZOSIqR7e6i$RF?CJ z30W^1o0{NBz1=)##`#k<)N$po$x6`ZCM7LR&1*mXOec_+=Tpn$Vqv3NQzFJD4p4*2 zFEtt7JRCPIKJ0KTr~q`2p~dm7!GEI)9y!4pD&WLPNu}RN7A{@ z?ldD3XC(u<55KbzIm|yHV;)-`$?OMyY}x28VSd%XMIMfmBq5y6t2Na}P&w;EZGEN( zjN%s8^5dO%MUA@qkmu=rW1?9^2YvCE^IR-AH{`fqD26aBWwrU)oYi|_49j%FDu9H# z-uF}tSiQyB2wN?6o*gF#E=G2T%9VXoEinJEHk8{*#x?J9wZo5JP%{+AP&m>(-3c0I z$~)8tK?(m>|N zP%Bk`gay!BgWI|@4iJ8S;yRwznf;}$UW((I)T*uwu`6+KWZ1YK9=Jew@Ly78-VJVA zVT6WNcn9mV#%zgNnGo6kzPWMLd!jGsM?wObc!V=>SHZ-hekSL$6RE6qrEP{^AY&Htzzi7?Aw6cd@)FAS)rrd z^C98s?0hTSklAiiqqC=w!(yt3TMEu3>IC{@vl<_po4i)OLGM&*+x4AY{wSLp{xju6 z_4#i5+2N*U9qi(JwAoN~Zue7~J{pRw<2kEtcDv=)LrK=jfnsI4gKbcurDnsL0}T~9 z-v4mhVlifmfkOpv5bbV`)~KJz0%32w!=dVeDqQ0bfLj3U*=Utd&-rQJVuY}(n>mr+ z{$xCa$hz1-s8x>kD8Mu2(9*TuAy{GX7Md%OBjg5c}lTlFpFmzBIfj>1^FGZW5 zs%f%x-4HCH@M^zwNIqiS#B0^`aIyo?A7Mw_`fW6n=#+r6x;FkdWpz;rN8bPmiL>W3 zTXX~spg=dFj|;*}@vfI)nevG5?X%kjWxSwaw^S6!kJ=JDDk8Nl8X3E}is!TQbMp3= zmJ5oDVI5Mr*8RdO-GvMwzg_{_9kuaVn@c3IIPNNq0dT;vQybV5QGy_M{)Q)nwIYFvOG zfjAHr0;@{Aj0w5!xTQ?fvX`VkAK`O|?8Lkz%{9#)$vxwyaxYmra|p^aIS^vuxgKuS zufpxwvZh%zP@h9dvOU1IYVfIe5uQ_7q9PSMCdo?CK_8gXDv=Af4@Vlp{1L+VsDyE@ zGalr~Z7&qpv*=4hj=px+%VI0o{0B4mal)|>V>IlvKVI#^sM1|28{r=~O!~w~zut_1 z(^dlQRKcLNEwJO+KJ(1Mu#JceEm9v&+*)fRM-k7r&}VYnm782g{$?`pEEKRwyHd7C3yY{O6sIO7LDj{_ z1!SKD&xG?#=e(A`pSf!(UUjtIuZsHhaDz9)HT+0MON=s&>%H6qQiNguD=8#Sw5t2* zw2xS~WnKRQipeIv74|>-hR=(j3_ai+XTxjPsPMbEHYt}m;i;J|ai!v}M zi!Dp}*9srp{F9g|r?!Ilh=g&NCJ~=tLW=k6RNuedSYSEqp2D*j7uGK)f;=^H!@~n-AAOa zINBbVO_xfFpGcrv0{XsoTI|@64^6jI_IL!*?rIWhG(#X^|4V@f?E*${g-3>f-cB_L z>JNFF3szw{g$`Xtv9qxH3;B%RkqPaVz2r*Z?;<{^)qeW`#?dWpd>jGnI*|!qvhDrh zOLO$H3W~B)A3g-@=|nXe;G8MgrzA&eFRF;C4hk~{4hSLF67RA%69$JyvFj#LAJI8x zXGtHOF$;?x6kjJD_dG;dSMNYP=kZ%~Za*b4|NY}LrpyNtd95R4@zJYoStb25*F*nx zeAO4!PH#O5?&*fA<;bX?$%)hCiaZWZt>ukGg$ZN`el3+HzBELs{AP?JD5L()16TD+ zkb8mN=K@{gvrp5nT9I(}?Ke`dq~jzo8QKq=7a6&`*^er^*{2!D7FS(1Neo_?ZSrg+ zqX~z$JFLjHux`~J5lNNI)E0LiuD^qQT;};Dk;wW@VD`I;oLtBN?sErTOGW(MUun9e%iH77 zrq^rAu(5j7Q!>@RV>y@EQN0*5Lao~OQB_oAh8dfh=4lcTO1&t3`B5aq&W3O{p832# zaeSbs=iB+HNDyhqw)oe3D~bwyp&YI}$r%~X@+BoDw_og&RPzN{7Sx58RTatY1!k4m zrQ2}0 z?t;k7L;5Q>As{_GGPjc!m2AxYq{3B12r7(d9)P*#IyZ_yV?f=7^1pI>=#JlD?vG~; zna6MhP11nh#)r%X{0{T1WdTcuyMl70pAwtmbG+)#9%W|sy6;&WM-a_#H0{H~7e0fFx^b$5z zYJ$HRUQg{_0JgcTEv$gU3h@>p`xFl6w4;?WelYi_ZfA*Ovx1JAhC8`N>QPypx5#sX zVD-n4eEf*i$N7sqwD|ZhzMOiBFBGIxyujf2)qLdv$q6B|fAZ@qqeT#D&l9IRSzEPx z0p<*P9nUNbW9N&(Rpw!B)yGAXkzinCaK}35E3m5+samd9uOuO4?o;NE{F$m}uA;5% zO0~cw5cQ$n^X*+Zo;!Ks*}2(Yxre@)Au6B4WPS{q@_RlE`55qmXeOR*#My4%9>U7n zfW^$h^7CP2K8gWGa-xiiio5f8xpU`WC!*+9pAur*dz<3CJWr$M?wRN5DR3vaLojpC z&!n@R`u>9lzqaml5sQE<{)f;BV}f?oO36V(a_Oy5Ce#Je2PkNyZ*TqQ6(Qh;8A7&^ z=8%ul+-BZB!s+cD^bD9>(muVtvpf@j{s{p8vp5gjf<%SGo{Ryq1_X!D-|dC$*8nz+ zSEQt5Q$1+AsHESIhVqez(PrjJlE?2<`nTeo<+iv8O--n2sJ~j4EcHu&C|!=y4;9W*m9=g=OCI*SUUY9L+w-zQ;K+yutkVaz9jB;JIM| z*@FikIFXmfa|c^B_g2IxgbO|oe2Ka<*%f?8@zxjkx8<8mp9X}~GGaMxzv21adM;k! zp0b9n^X@xVF<)5ogf>#`2#?vrUJ&>3TUt`C?YqjnaqL*%Vq#-Gtaftmn2B1@5719) zmFG%V^ZE6J260TFELimu7E!~xBZEyGvN5SSoOtj(p3vWxwEdj+ zhJP@`etTzX`<+)k$ zyL!I0K_z)eIG2U*B1NBM$%tE_-3r!#WpLrqNBpG4<2EQ;Bppj?hM9{<-ocvL9vhC8 zfC)TkeW9-u@}Hn~c-y%`Wu0o_eNsu8o5%E9`jMsj z{r(3*n!oDntJ)L!%#K5~S`%7G{e@d69$UU_M5Qc@Ec|Sof{RI};~W`1zr*+BF=I0( zAL8D_h4gfS{Ax(1q8=^>=U*#b$XD2LZkFd=!^Gz-?8!9!_d@w>!BmXu#z~Rs>3;8y zSTx&eNS?iu{o+Gvs7-8MBM&)<$Sq8 zMw&gMcOuC5?3ZwCnyAL))Z80}(wbL8(QG$AZ3#VHeMIhUEF2shObG8yuzT?0n_**H zctu57-?oJ7_Rp!6Lxh1!15w`ZUv$yP+Ntm_4^BE>k(q2J^ z{*88qYtN$_4^%L3iit#&L~Ecuc=p0gePgJ0$Mf@DrQjP6N{ADp(L|Y6iA?zY*#;s) z?b6eilk{!Vqsac4$^vXKm9KTlo%9IP%=I<8bNsYK!NmNyans_xWLe@y1xw<~m9YYe zf5IJzdqZzQ#A9A(7#8{K?S!zm>YXBn(qrJT*B+LFSPAZ*ddJ%v|Mj-Dz*_?$5kpel z_RWlY<5vgy&+7-?0~x-eCe0=IzuvZfz{S?JxQ4|d6YS^of{)&|mCbrx@Y)dG3*Dh0 zj_TF3$of|l=H|Px;t!--!YzH2*N1@eq@XwfVNUs4Y z-Q;srLg4_5XV0n4bOLe@4i2cosVFE~8p!iaO?m7#za)Rvk?44g6`ys!|Ja;#o|v1_ zfM4#CBy8t1tb|^c}w zNe17YFfrlmw*Y>_tDR-r&w1{FafPPB5&vhj5?7<`_b*N|%#LW#LEMbKB!hgKkBgA2 zejm3N;h(pM`}|#cYO2jbC1box?Am79lXoHVzQy@U7duFQ02VO+QZKVU>0ir7ySP8a z#l>CKm_9$>BX|9B&0l@GqTk+zZ+ICT^?N9RK6C#1Aw8g(dD9{ zm{?f+{QOn*3xtqJtGu`DcuW)=Tsge6U*-C{!XmTtw5mRoxHB0q|6b0xudl!K|CoF0 zu&UNBdQ=c;q`Nyrx&-MC0Z9QV3F+?ckVcS3I;2}lLO{Ahx;vz$xi81>oKHO8eeUl* z_n-TZ&vtKJd+oK>`_4JX9Aiu#y^WYd1dFA|=u zovD{&0CeVXPm}CA9`$+jbKcWae2uX3C$PqPh>)2GgM^nhU6NIaSn}n|TwSbGHyAI- z`1A?(hw$)lMXGO`r*!o6UtD&%^{HS5^7vh3T*DH=kXEwdb%iN5VaQNr#}-TR;T3*{ z_U;Uo{d9KvjE#Y@6q%wFA!MQDA=|IqDVgzHM?gtm1g9G|m;1mSo{d~nFNXAky_As9 z)lfvo=DGZF-L0QD&lJW<7V2;N+h5yl{BsZjsG3BRbq3IlEG(WXvp)_$j5&OpiGsJ1 zn4lO;<$5WbCF}!R&Oi#0P|CbrGhP%D62i(5XeTP_|EeaWz*O#G^EtZ+8fk#hVDmk(pK}SbdqS-Vw znkCC`YoRdX<0xygaY^bOaBe2QkA^?7M#Wo;!757zF#Rx>>;Sj{2kOBC!-Th(S}$bQS6%!E|Z zCMAqpPYROucUKp)OqZ97B)5I3h)ak^x2Gzf3a`P!B4VIL*VprCO;6F}Pga@6F#$i_ zwu$4Jhu1Vbmn>_zJX=KMhTE%~!2@Fj6U@Te#MdM_z{YXec2USs%L5{s61U+1DN~rg zyr$+Omo))Hz{uIbiTB2PhYNbUjGP>*Ai*WKnaGxhmnR5iRTcGiv@ma%-iXg41jD06 z_v}K+3`P&Sx9z73Wq@kX%G%!hHd05=#*Z9TK~}4N!I~WZe*OspKq(yv$Au>KeXeDn zvQAhKU}c{%j?m4oEES%^q?bwBewT9D+8(0`p~_c~Tm4`iid~VnF zXnJko!D83I#Jcw-HC`ElRfzZxAC8w@mVd-0v{Ko-A7nearxy$wcjlY4H^fWdX@4FpIC4%in4LEfama{?8HtTmme67I zxH6)R6qlT@=IHbelcKGON)AlnfvJ!4{GLW#Tq z$?ECZ_rjTM2bMc(gUjt~u(#JNYqcY2D)AGrHJxejfm;?w@RfDHHEKZOBjkfsQFt?+ zPK@{8H0D=I;}v|D%q-!zZO&3cMqOVf_bJ83j9*^X>PTQ%tW1RB6ne5qcbU;Wd4f#H z4b{{2o*JL@LElGy?QDhJsakZRxmWe4QQ}0wK|unw_{20U)NM+SpmeUkSVx_7w{kVobIc4#h;Hu3E1RISG0xbYsT%uYHj6ZXfItvrQmG zIopi55Eh!cw7Rj>`1%WvK+ z`Hti=zW$8j0QfqyPe@5UQHBu(#|5?0!Eg;-*u3YTQOrS&CPLBGSD3;PD`hKN)QFNr zw_D3fZ5~a&_@K7t2mxML*e7a0f<`d1l0--lCtB>Y+AAd`B^DCy*1owMtXTzF>B5-PCegO8^r^8AqPDD_{UeLJS8NueWY*w~(iM`a=2r2PIt z-F_Prn!(-#kB#cjvR$`3xp5GjEv!}Lvpy0{e&edIF7YW^IhJQH*UpW3_Fv$TBtpmbq5 zTS$#I>dC)ZV<$DHxYq(7!D=jS)VjdHldrKRwNv_%uq^P1``--A^ThX2;a`}5+U+6( z?n^0D1JScY0)iRreqAr=8F}0J#;*tFZNJb7&b=GKM2dtM$vVjQsJ1%Tf38C&!n=~` zEhE=^2ROE@oX`E1HOeMl2}*lrEz={LnU2dIjaM{n+_6vZ>UUXwA#IWQAXJU2?x5Bo9=5M3KZR1fDci8S=Gxoa`}&k!c1z_|w6tEo z{$vVm*-H8$lr&4&oR4pgv_QUsTaJ8iW(a7@-zgk z!a8Z5A|g03B%KOE_^rEUT&)2ZvZaEZXdP(60+FBci_nu_KGYK-YJoP8P(oeQjrZDn z9vhc_L%)@4$?&*j(?pEMvUiO0{oDlZM-1u17RY}EN~pU)S%#GChX}F$vMjOw`-irA z{;E9Qik!;#MxS^*dM_ulcPH&$@zZqkIuC>v61*54NTWe^b)9}(kHdEM@%H@VM=(Ll zNXRWr&{tOZ-F7ecm}mzMD)(6@4viW75^QsANT=~JTuYs@sVi+kPk#84*_Yz_VoIo4vatm!u2#4OcP#>=BmoX+Lq!j7&Y*bxo6^}Gi zB%shG11Gq*-<|$z5kuT9;$|xKGql(1rZMDs67oSSaq!m?I6X;Sl~dExNQ4`-dTFKk z8f}>i3k!hI41gUHp5dLzih7zLnq+6>1X8Y^9>vG>3N9gL;$m_F6na8j(J@ZbMyeUh z*{`o(ODwIi(+VnJUsv$_>pEhC>$p~>t-`GVD}0tWveKXbEHt!=iTh}+Pg+6(7^US<@u;&uJ$WP+MPV&(_UVjEI*9Q5}9+PhqJ6&38% z&aT~mwYYa%R(fZ3b`Q*d>^874Ux-63LB<-Sl?Jmpjm$u-9)?~ri z)c#1T8o1p#HzUD8WgVOnw7Q;sA;5_py0<_KMN-Gy94WIa=rNVm4uL&@6D|U ziI&T_|z}%zyTE@fp;9k z8kR~MMWvY#*K7dpnNnw|swHCka__$hsDf;A3!e9s(z{-2fnVDrAvX4;pw?CcRCH$Z zd`5$531G~T>f6E97GTulkIcivqoFa)aKZY5WE;xOetl+a8AE@o(Jhb+ZlfWYjBF!L=B z`9&_9(661}iIwaRR~Nv1`3S-!7JCzE=^ijS{kiUv$We5pmeb8SU^kR)cr`bJR%RCO zgTc;HF;~~iQ$&%*dR~~l3ak4xU=n(tTHSrAwIyE&_{*^pR$)Tpqr;~Kz+t1of90J5lo!Oa&qTgj@6hDuWudC;xRf_S9V6#kX=sM*{kvn zhHmnX6ZgU0@dO0ro%okpTC)w2)p}K`nT||I#u55Nv@~#!X7#68G{1}dh8uyMXOI?L zcy9lY4hkJFFB8ejJNuh7(P?5F(`1vf*8C|1ZJJU7D=pjjLw9L%RY;2WZ&mFrTKnOxWcoY{G z(_{W0ZFow)ITo;rpd4D6B zCJsl^Afd(Iy76B`fP9?{1KpC5acF*GLUrKfix+*sq+LGvxv+4+WB(1Wtmhy*8yg!V z|54Al5||;Tr?=c5f?cBBG&lMk2aAXZ9sQxR&;Y5{(b17E(3q~Ru3{1qg;%KKU>nE# zWvdtU_jj9E7z=I@dwO~*VF4#bEUXN#Nr(DSGU(VZJWyn6b19HqdTE;@IVWwcQQRhN zR()Mn=<~S?(-U&&(S~ilPkkXNAt#gnuJM`PeB`rW5oY7y0L&3(Wo1&j{*jSP%lQY^ z`$+wOgNe$ty0oOAsv1!qSMyfFYOt?0cx^oVz2(cZsN$@-omDPQ3DUz zpIH~PB0);7F9?hWODCWM3e_qM&w@~02>GY#PQbu2jM!<%oioq~0V-`ut=X9wzPZNf zuU~~5a{xlj3!k$?L5v>su5pcs5e ziu?H97Sjfe{v{C;2^|ZWjN|JBmZb;}HrbrU*_>-?#F?S-Vs`vLf)+QK09-z~kQp_^ zds393w^MA)Dfu-Bbrr5VW#8TeAm1K_FoG#5hz9G2t38T2GQnYCyeX-vALC#e1#mJw zfXg_|Kmsc@14I90`|3iAFOTDnK;8CJVDkr<<^F2@t387e7e9YAx%A<+5tC|dUT0;! zrgVJKquHOz z`-GdDi@SQP2UxtIP%aBWsl`P;IDzl5EYg4>=~#^{&dWpjT8jg}roe(u$$^A~)M*p8 zL1e@&wKF{>f*f@G^rvVuh98lmqkEM!zOvF&KTvB2{|(QIb$1v5(|xp~eAY%kGlkH)Y6~KJmxiVX7dhCvGN;2g4{Q=T@xM82-f^oes<;#QBJT&2n^z5J?Xg z*gy3+D#ac50(Gw^iOV{#06sQ#G{Ps&lX~i%%8Xx zQ_(3LVY^P}mX|9ik%dKRJsBnq8|*4sSznJkzPX&{yMX-=WQ^8vd-aXq%IT@@EH_m8 zhCS!}L}zE`YEK+K@9p*FPXJI8Enzc=%von@+J8qC@6cJEpnC5TNO*!6`4FFdSCkcO zON%RsEi%)Xv9V+?fB=7a$UcOD3zwR~x*$J4_IVmY@6|Q?X(!9s6glgT~aW_An zrLSBdvQKPGy!}QX^u5$h0MZ=XEt4KUb_yK|?|OPPTuy0AOUtZrvGQ~zNy$U;ViK^^ z$1J?o(9|UCcTPtbCZz;?SilMej=5RbrsO{HZ84E0Fz2P0pX>2Cg@>e*>9^m(th$#C zgW9QuX#FM>#S55>Mno2CPLVrV7HVF0l1Bi$1{&f<#SdJx(8e8OW7&$0$D!#Ei!AIk zBGAIcX~d-13dEdW9n12QM)#rfjatu`T`aOyS1N^Csb+?#Ot!Z1ttwv_g+~@M(a1JR zcFZaZgrXh3J^Ev{Zajl@;9XBl1-DQp^1+Q4F|P|7Rlp2y-Gnje;sM_-dEc|u(R@{H zcl*m~a}eT5Nl82X+03Wdvc!D6i@*4)jArHLhBRZvG+q4g6y-DPQhtljDe1=$P5-Ei zoRV@CumraXiTzKxIs-(e&I&zt+5I)``Xa5LGczAp0)AW`6#VSC1-+`WF`8z5t+AKm z>dSn#_0cH=!B!e0`(dhQXqhBG9aK&Yps*H|X#{D6{m_b*E)8{u06^0AB?N!Ip^<&) z6#&fQD>^^=yNh(2uM7uyre8n? zdQb&Z77XLja0|#Mz^may?1$7LE&Xc1enXY_ZTgPg_H8?rN2A*9*`c{-_1gj9=#V4# zac^-iH99ddF&dH^kkKj(`_SUmD<{q8Ja65N$k3OUbOMBIY*;Yf1E_r~!wopcF6>X( zuFIx^QI$NGSGBfAPZ{Wh=I?w)jbwt3TN1dSXwo;gVxJ7+&AG1=F6slD+5M7jCWm7q z3N!UeqoL7!MQJIi=m=u$DJa7y{gRt_j%A^D2oB;Rl&{d*ph5Obt(`a#6!vOk%qyXi zTDx=jVI}fpn9~#clUxPaWsXWfCn2d54~F^9#>S@A+o@EL^inJt^$RIQ3o`uQD9&O< zVd3-hHrh}HHDx3!Bby(--;i1(-@iu>FLifZ;o5ssQB%RFs;uMaM}SK-{==q!?6rA$ z762EUA9z|HK0YM-8^NIkG}&>d?i)RUCWjH@?O<{9M^wg8%N7pr>niS-#42|cXzcBS z&u%@W4`^5B>m4Ky1c7NLis{#~s@kTTsy%j-&jEzk9~IHEAa~h9N2TXhDC4Qi2Oe1 z`cpF|jzQBT*~9OP7x{;gsbMns*%M6#1$8AQdS^vWPV!8Yj4pNcv>lq*$jHF@&!3fS ze0->4qc{>!KOjO#aF4DnFB75>#AsV7`jMv-9Z2b33;X(9yxY463z;mCG7a*Rks-36 z>(gFgyo_LV9Bg3H*nRZ^M;Z}A@Ka7TgTS%U71GJum;COg)=n=}S%sYSioYZrho@2e ziG7Npmtx*dlnq_Ks9l~snv9XUbz^{j##VDLh|GGV1C& zI>w>Z-V+eU(y66nq!0Nzn9626b=iRl92H?geO%)1o}qZdwmxBnz{;7*}y7pA0BW$(e?6HOzecToKiKF+#`u4x*Y4w{4u2YqtL)_RQxU zl)uCr&oQ|!y=8|ADybi=;O z6v9}4q^foAK{VaVlGIj_e$a}-w^fOO3;CE_&p>@r9|8)DoZQ)33-FWYBFdw%=z;v; zHu2%XU&IU;|94RKaO<;e9hkLzJc0;W7BfV(%5f}mLyX1$0 zDe*mc72ld-os!JbC)vCL8}!h$ZscylY@Wowp)NaefWytgzAyguZ7%Ns3nMRAEJOPb zL`eAVq%vB$|9abdj*5hhJc}(la$mCVZ!dsygP*6NTzvOV>J>XUx=Q2q>*sfG$Fq3D ze4BK0Z-u6dwni4A>0rPO3~#)5W73|2|6ra_8t_+Q*GvIR(um4RkkBS;g?9hJ(9;u# zz4y-Vn;(fB*!rFmSKk9{e)VAf`jZJhxaod+{WoF+(5`S;Ciq`P%paHF*Ix_nK(sAS zNT}bx@VD25s0(3cgs5+L;9kLd*FD8wja&K)k$L5ee?ETec5a}eGG4OQZ*FcrTjqWV z44Do2u1ejot9`tTZ3;?CRP&Vt1qG?Ti2n`?F(2gHxZL}-I^*DeB%GXDA5s9~jG!5! zj3%{A%x0RDI`TuX{d9is;r7glHy_qD?7w(VmzX``3=&; z!^4me>6B!G=_4=g%oIXl3s4Qa+`D4(Qs6EqC{&U|98spJqeXPVm;tU@WR$DA)Paw4 zzXnHLzqbC&8}}-g$lP4&jK~GShOJs5vmW4=$v0J31^O8;A|q#JXQid3o2~{tcXoGA zLW@?E;cDuGm*h&C7>>yiw-z@i8-;~Ar1+x9JV>jntG6yL3U_+GUwB*#h2rPstc@dg z>HM6TxeCEm1Mv9a;ntcz4ng?+zP?TixRz@BYc|FdR)G&%Lsm}6<6D~njE|I0TYU7x zZbwPd4?|E0t+Ao8@uW_e%gKD~Q>J)CKtKQ=;7@|=4a|IKvR;Pn{q*V6)YP_p&FIAA z+SyhA9{|%K?|6|I6CWRxvNbn^kB2uqd+8T=@?)Cw0h)r8iHmdXrv=0GA++Jrbl=QO zGQfmH>St|QpxPoNIMa53J}8a8SKn|8dfgV(p_dv-L9R)I%{nfcfcEw0NTG(t2EWFV zk`k?Nz|;X2*eU?mj^3f$-h>LHp^O66;?dDjKt>ImDz7L{)KHJ~|298QOa#UXA|N2V z^t!En2i=+orb!iR*Bky=KtV-i1_L@-H#a4|j((ffbhPs~9Ksb)acl@Ba>36Q$0k}Py*ul%+)ofG>NAM z2C#{{A|fI9)6OPbPvfJGA97-Je>N# zbq2j|V6e(%vH8D|9W8zIa+cWGR;ksU6+bG(-OW|f>*Ya**W>qsoR{+*n6Gu&J{j#L zi7tSZ<>mE2;#vG^BD*P=B%96&z?|2k&zYRd?F@_LKJs~jx#`x$eFFn>IKp}^2CGsr zQR2qHxR>T?5!th|yH|vijOFkS5i(r51j!>%0)UJ&nhqSrN(7LyQ!mf;A|zws`#|Rt z9SsevldNzQN0q|Y&pfW2@}Yq-SIv!mriX>i_lA?xX|ecp>A)Gg+3px%PgTD8@C98# zE*AY~;1p{>AIqj|3hJhI=&jx`{KSt?twG$|U{2ltMtIY4Vx@>^G z39t^ci#?;sW2B_urE>d)x&PW4nY8b4d&eJKwrEVxAibS(UZ9U8y40uf^mtrfES^;G zx{8J3FgxtLLVe~lm>yfwK$ZZMYFGNd zQU1$aL4~HI$QrF=9gKi{_z+q|oUH6;7{2p=*efpR%TMk_&v?eW9$CF(@-sNQM1fhX z>+iT-{=YaY(V<}sh+twS@FYWVQE9khNhbMZz<^4HBE|LxL5Sru+mM%K*8?p$BzhT|c&Kq17aRHq)Fw8ie zprqrONV)A0GrbJD_K5Jn=Eyq9c}s0llBu0t7HX!Gv&+&$LU?y~_u~qS|2udHa*0Zo zV11{s76oMrMdV}U$lG*uc6N3_L^Qf}z>|sk)b%fPs0N)$P+I6G>eoQ{U_d8oZ6AAd zBkXfoO&G_1KW^sS#m&tQ>nREyLnW$hlQ;x;wPBHAu;0c#4nnjgpd%kzoj&EFfo0~(P)NrO=OK-T)l{Mz zyEt*A!8DHO%+Ai16h_2*j$`opRRENX1g782qQ}h*z@O^=!jv#D5;q+-UCsgh2I3Wu z#`Hh95?2;4l({Zdrx5$A`r+b%?zF&Q^o|9bsrC@Hsw(@<&2^G)9JcLJwBSIUhnwHh zDDN<)b6ktYsH6y$EM0ELo28V!sUD~Uy8jSx*mCI$3fO2fGBVkGR7DLizsy?XzVcxv zOMOhly|lE17Q;o@0m9<^{?2K9$0tm@Y*mXAh(P&_Ko)h?kUmQCS?}|y zcQ%SebaXU8Q$q?SQNk(aHES^Q3lFA%4}4>$B^1i_E317FkFg5TQ#WXdOf zf5SlpJ2~|0jJ%qn;uB{9?9sDJQycG)Qt}OvjOG1BVOG|Ps1Nw$CZ?a>g-F{R!Bd42 zKSezItN-`U+8nzJ)8*FXnjdbC_1%0rYiNOjStq+K!j03OE#l^5H zQ(~YJ&&n67T_++Xnhn3)Jm>l*b_-ga~~p&?l%b|2KMtgRC&*cc3?gk24~iYDO!k z=mOp+rS+ID%9pQNC(+f$*hrmqDs-xyjroKtpdaUybx05e`m}Aqz~) zB4tNQ6d@wh%^#GpnST0+Kwp^5+)btFG!gZ26#3s+*9O9k7+2J$f|61whEO!b(hv(P z<6@O(6H0!$;-i0&hp=jED#{tjOJPfd;Dm6=V)oKF5kmTt8%aFOmO3~sEnl#y7#LuB z;E*k2dRR)-hBQ&@a8o^ue^k;Y`_hR&5DGvyuV?z`vgMdz@0>jc*TAgseLQPc9V`5 zmLX+}#uD+G@;a1i66K};|Ig>22#s;DVH%@T9;Yd*2|Wm;KT@k>kp5l-+;)9lpYboCQFjku5i zBJy_NlQEmBu4oi}44j3Co~Z?-M5@2BEx0cNM4-<_1q1Wb-xg;9jdOIy@rRY$AK>bL zSnAOTq!7;_|4PwU5k>HOxjD9c9X%83GV zcQxnQ4F-1O#}UTwado>;yeKUHkGM|_E&t{|y0_X?=PfT((dMu>so zx2&^dd01T>nFu4^r9;jbv`}*41KFqjBhou-S=79dmd#hkYjbfv%-h>LI+e^>_!=aS zD7H|vP?L!Z=r+pJo3w22XB<=^j=Z0=P1v>T8U?NCPxd@fp;s%`tg?Mo#d}3pe#9L;d;74kA|#=e$d&1!vQmN|MLf~`9IUVDGjl&C zVb^zr?sfNbguT!dEcYI*Mih@w3;QGbzZ*@rj@S|>43~X~PRhj1fffB)Non+mv4P3; z)C``Cs+=(y`d;F8%m6{8zpZ&gkOH-b2H>Q{OxgE5xob=;rwn}oU*kEvL8})`0t9P> z-eWBRKGtN;($jS6Xm#fv7UBi92MrQHM_-n2BoKgm7}Y7l(b|?<=5+8zm6KCHz1926 z;GjJE$EUgC_s*Zf$`Mdg>Uff$!T*K2ApM8I#KF2I@@G#e)k|{#xdjz`uT0{DL&@M6 z1u9-?+30O=z8`eIz zGuR|fx1Af;e7S`A6{T1fsMYA{Q%L}BktZ$RBB`e~eK1*unu#WyG0|75)CBU=D z*_!nPEYoE;g8u>O7;&SaDLw7&o}1J1aHcBvyRbwab-OI;8O42C^fZ?EredJd7@8t$ z3hyLg1SwaR&EWOE3+vGMZ07E;dQuYpZDY~ihNF>9m}~QDhs>2=G@z#)#R-yb&9 zHd2y0PrH~XJ<}l8ZcLc|8L_WbH*=eE;%?YKY8tIIW=uO6@wy{yyZ)BPO+N2pMbBRS zlfIV^`?StEq0P8K`+a8Js|R2KVwDEJhJs?r*3TyevVJnQslo;tG^rPAvi}dB|ksbHzY5Y8k`COwzm(yqX z;?!rP7WIk(2s zo&x~m7&CTtbv238l7aC_y~8e^m|E={e|_MMjVSZV1@jT5^x*cJ{S(lhbTOUfX5+nW zMc}_Vh(Ma^RN|IR*dxX<%B0-9U3c6GoPDAcaZdlQVK|8=>w8`^!%yir@ zFc5IcuK&v_DMsnG+ggzf5_gh!272kCm4yu>`Nb_OxahYDkP3p0XRQd7l$52;fGp>E zoJl-6Y0vO_lz|DBnAvYR2A4&zYQk@2acc=}UH5C&)g%qqDT3)|D~K1>Q|GTL!WPEu z`*#oC^4<#^@l@b>%c*5d#snNxKJS`&7X)SLxTi_1Z^MmTtvW)-3RH=&PBk<~?5EBM z+n6P}N4+2(g82}bUhfD}@#-uLa;QAz@+4 zYl+ci_Tv&y(f3l>Xu)+bNJODj6iUD-*^9Rg53pH))Ay_`kBlVV>K^tSu%U{mwh-MP z0x()AZlw7;Zxz$5JMVh!eh;Ve4pItOd(TqILt5y2?+GYP!SNO^fnMvWK z*qhe-MDbUc-u>C%OX=8N(}Nqii2|&C7^&XJCa9_A2Kx`WThS&RPnBr%$FMSJnW+?H zOJR(fu+zP4#$|q~t)`}?u5f55)Ozy}#$j*jVbJ5M;*Z*yTg+^1%nhvVh;tx z5tUadi8aTaBhhfEy1F{wf4w=%o~x=(yeup0^k_8b!CJ}2ils4|Y`~2r7Z0;>bi|IO z&6OqP83x|agCL24s*TKfkrXg0VPsx_6|5y%W9jo1Nh>-c?XVO`^%Mx z&EZ?uQxe)?P!B~>Z0tMEYc|?ELcnLy52|d4({kC2vt7FauKxf5d2WNBegnpEf6hUA z#3pI@RNZ?M7z@kE$$e`#C)(Sip`fN-4zC6T0x81`6do5g22+h+M1Uv@+VeAOYw_vh z%@IO^y7T#r!S?>tXXG8cZf8tOxpnSAYa#1+H$SGwFD~lPzcI=8<=hVR_e}FKbsFqF zH(u-?Au89njXUJ0J~Q%d=$?1R&;6cEbXE3OfZ4Foxv%3c^z$k@_8iri^BG7T=*SRj zGb+|#=?i4tx%d*9&dwAw9+dg^N0IjJF6X=iJF8*u+3b6{rB?QQ=tncD)i;el)0!k= zk)Q8BD7HZu?ut4FKk*hgOllJo6VtB2=6)xNe|~=OjW{Aa`~&wp$kuQUFi+rT#ekoU zpBAiIBD<@DhIC_iMU=XXo9YhgPk3Y_0GG%E@n#JlfwN!+qA+iqnC zvL;iKg_RWyBBHrPDN_7R(6x2&hNe*0#lpk;G(DXuGp%cPd!UfuNH_8|oM-8KY?SAQ>q`KR~jWq;R; z(7fy$``^9EKbpVyaF?h!h5~L36q~~zOs>E0>^7jbcGaCG75v^5`TIj~IsQN2c7o82uYcV(ogAne zU@-{dKvN=54ZwT>GshPiDe-*&>ulABwKYRP)PD>r=Iueb8k}Pql+3rUw6#kV@_{}l z^wi3c`%_ZVKuZ0>#sUsH>&jke=gWH!Q5yDLAt!o90IUHPVD5CVS1qnd*x#b`2*f(7 z^Y=vBTZ99{iFr5-wnjgE_z=N=049giuCQXjmT@e?fpaUa;+9fUA`Y2N;&*0)n_sM?+We^Tr33S>ZQ=)C=A zG=I8Zn)=&~2B;cXR~1Ohc9P8saChDT#&_NU^zy%X2OORpczc6ZG6oh#TY($)`8YbY zY@xJ-S6>h+c^dKR`Z}PXSMO#F7MhD^nx-`={VG}Jglir~5f^_Q|D_qw*#tf1boX3D ziEBP(uSd`E zj%ZRZnWT3o&7r#Mg9muMxQ#|;v5}Le)nXcO?h%_f4?*PF%2TROz5_8Y{ec^Tx<1ufh7Q z2IKl`ZyPovc{`_9o^3GMIVrS^s+x@sUyb05zYn$yy+rNr?}vUHt(~^`W1;yrl|3jh z_MasJUaX0G-Hwc3orbbfL4;6v?UOlQ!xjX1|E!S4S5SPtj^8CfLp7(RmC*#+&4S`w zdm#6_*BAy6%$Ax^XtVA4p}`pelgL?^lH)Eg9@R ztA$3AK>Fbel`L*g+ZENCK#HIsAn>3K`+LbRv4Aov|L zOxnnt8Ceg%3Nu%}OPS#$jKr3RXhB^EVEYR+AprlCWNitGZ?+xa{dx3_NSM+F&U~(+ zwxMums>(D^`>xJ<2I?$&?YlZl;J6OQjn`(SGY6Rs2JxeM>B7zB4^E@ZhH}us?hcF9 zc#Ov;F!A}9+dxXV2#@WWo3UE0)#}Cumw`=k@pNnJQo%&Au%XWbzl+RovOy}HlE5oT zVi;M3Ecw${T~3UwJ=}!JOuZjR`&NuJG;O3j`9%IR4Ohv@1(EMXoSVJ!I)j*E(lt}h z_#P!j6*G6E^w5xQGB5s~3<&(S*N_P~0KFL#^{=XpH5F8C^$$capK4SivfHlp28V>$ zI#@q*+F$4=cu-ECo>RB>!N&_HTajAsjg*tTCn(&Qabd*8eO=T71w}{p8v?q2U@dN(a9u`*5aP-()ta;iq*&$B6&_h|shTgem}9l;v6sZWjW(2w;D)v1 zglc`|OVKeQ93L|Z5n{yjZ!5qB@zXna7*|&#URb_Qd3g;E*J6tAxvzU`C9RjQudgql zp)s&9zX~hqpY^paB_`s1K0G-otEqUxK-<3J@8`Gd^xrlx=OM3Vf9<=)G+}!O%}Q{+ zehV$mAnLB1m&X1T{wd7Adp)`vBPGXJ7i$5R`#o{Y|88kAW~vurxS5>u-)!(DmGJmbr1Sg6%_u~0KFl?ej_^W%FhdI`ev zaukAb2}f1r=#=oIP6B`d2nn@DADGMtfI=UQ@M|mE0Xy$c0sij(FQLvI;dS4FCS5=` z*Y;$~zISj!oIl9;duhuV;G-nOX?y8QLR-3h-589p(w=JzUbbRR?uaNszSqlLUk*Sd z`d*?PRFpECE&YrO9h+xMOF{`$qZZUUJ|Fz{$ODiu(Ubu@KcoQRDi8`kfxKb8bcFS{ zOW;`*kdFx_yn_a-?y1Kzg!g_xPx|sHt?>QIdKAe5A4gevxDU) zS{}H%D)9|XO-*hVhYSq+t?j)H4UlR0JPt9g*s{H(2PlS+o8K1P(ooXp1_rFQ!)Dwn z$wp3VkFbB(HMwWJctEded<6q_wpd>$^`4B5n+|OrGgkS`p+4meTt|=-x6=lglFLdU z##1Qr*z7y#haK;jnr@dWLbIBy zDyh6R1Uoun2vr<=zC)8iVp^hd|Uh)XlQ6i{*+T}bX*A& zJ8oqSQwE1$9cMr3x8UvtRR@y0tUWSGez5J%3Z&(VlAY6nKp3(!iXR>Aasjw7=>EQB z+K=n>4GhP}#w0iE{Lwd1gYu&Yq#jw9%ed?gLHd;f+P`klKduSHQQGyD;`{$GO=vN& zo#oN}(=&kxvNwH7fRqJi=OH^xl%V?z;(U9Kg@WE|2~qTp2xCh~SZ>ffwRR>j`$hcU z`5%S}VZRwBB%Is}8#-(dJejWLNqDhC+U1Cke(NfDY+#Z{0Q~%w(hl z{>QPBMnk`Wo9jzzDyo}ZOHcH>@y20RWFwExeZ#3g`g!;@2rYjL3-Ex7g$WLfw3o<< zlK}wCv)pklScTZrnS}QoT~Ss(Gt+95ain_x5dsVoF8$I0h!ELXFDKR1U?ZY%_-khd z2EufI7cYcNf15$RBbWQp*Tc_G3MCd2@+wLd{{=Lq=#c;XpFduV6gMoK5R@wPkr%&+=x!2q|A zi;cXzkJnf0XxM-4`I2SmU0w0hK#2G)j1XaW^FJ`aS0r2(5j-V~H@~@AR%K;TfNDPd zh0aS&#O5J<*b;f5xU-lQh!7;T#i7=fa9k0zGUj9+!dDohjin=6C=R^X_#L@?67T^S(j z$qjLc#*tM&t(v^2B<-YOY9@}WYQgu3kT+5=C5s=#ezEUQxp2}6z{Q0xR*xUPUJ6LO z+#?LPyw5uyYy_2?J)@ip5Lqx;LUJ(%;P=f*%E-vd&Xu{>zd~%w3os7uz<=!_L%F~_!+G9w{b@Z%kmPfP2kc(&urka2 z$Nh13_X0J?JBAlwX?gy4mOhs#4Hl3Di;2{3&woDBdPnPfM)pjEJ|Zcp;CMFW&|NEnlSW$UL&vuS^h&AMQVHgJDo?oV9kD zJnwDnLF;mjmCP_rvQNs9B{`h|X}Me9h=6leE2mk$ih@Y-aBkmwuMP1-tOnjraRZuX zJtz#8<|FT#kCo{S_0}KYVf!YvMaxlSLh$F1_dI-?0PmoLc!!=8Y%WFoX4xF za|W|RYQMwwr5u1gP+m>A?jqTY0ml{bZfvH#nquxcUv#&xgm#xAaVwno2pD;}a?HMp z;J^F|{1b=L(Nw`%%4Awu1R;ZAI|?jz6Xta^M8R-?doN5lU8@IEPTrTwJ6-q)wfX1a zaSTLA5L48y1dvlp{>P?4V=lGm-ijT>1o5R#D8e1A*t$TkZMQHRC`>r`s0Q&3@zz&! zp+$yLI&%%qaBy(Xo;?fs=$s>zo%nNlK5j2K295$^zZ#@~yqL2{@am$oM<{~J;PTQ3R#9|d%JnbL2kmJDb8=e1PER{?wSW#(R4O-&QRS8Lecp8;G*s^g}11H&$=yLUJ2 z@5}+>eYgFBfohtvDA4<70J6T>N)lkP*K`a+}pQrB_#It_M}38B!+F8VYPjJ zo9ayUGeFF|rDA_G*AqC|zbiij%<@!zPmdS&>{`1!yQ+n+m~~sBG=2Bz*8lPb^x>r8 z!C|}ZJqPAa$D7NB$+wA#>UMTEHa1Kc?kd2AV(089kV666Ih|zBdmfP+7+^i5w2JD1 zE4xhzihSN{iDc6eUGy=#g};?&<4XgsHJJNfzZjyBugKACpi*GfiH^f){mT0;#~+W)Md z!QH#y$D_b~*I$;eo2110t)ImK0ctcI6Kl}c@JOO$KL+QQj*3-MnUgF z&8DX`*@2$CWh`h>IGs2hg=mf#O~F7^`R%nZ4loW2-0=?&GPJR`XWoFIUX%Z^O-^0W zsw^o1B($*97)$v}Z5# z>7=B3tW55B`0HDV8i~R_zKF7+zhOl>`QWCgZS~t|f*WNh`9Lia5)x8mc!S+^9Fdqg zW0xh8ezT}%o&j*<6CoiVYCGLHQ^=yR0|BDbQ5dH@pvDE%)t-YA^qq?Y5##kDvbD9f zf;h%6);!6DL@bj=nawIFys{HPH}HD@D{}kxDIpIZn4YaURZ24Yxwh85!L=qZFwkfg z3>M+xf1U(AOHE6gKd{Sc6sgByITy-=YsAf!RBh7^Z;a84)f1=n@@#K^5vXpJKRrA4 zynQPlwuJ(#u=V_4TN{D@)eW#{5dFXS`s=W&w)cA&78Geo>29RELy&G!KDOq>&h$M$fl;3S8ND1i1xk z3&wW0?ne5``kI;o7X7IMQC~<;_OTIgCAX3iRioZHNJ%PvK(`7+#z)%BEiK(_Kf{Ap zJL~T2Eh(`^<;ck~T<)BE9?qoE^^K_-{;||J4qc94Hlp9ZA&BM>?HkYWojEum%=o{< z^HU+=`B$THaoF1KXdH)!hZq%lgGz9y|N6f}KY}nVGN*6bUf1O16!r4Sf}k+;QqNcc zh=c1R)^asHdCxIoaDyApe(CQ`Ju_a5|yS(iZ4- z(SZ%RxqE`7iR1UIhSC-mJDbP$&+s>IU9?qR^V)9=!cr+TuBW-7p4`uY$G8RY5I1$y z>FqSmsAo37)1G(F`M?zjHkK905#$wPy`2h42c5~*WSnN8G$|Y+dV=e`v^U9H_~%3E zch~D6vtVfjEnd2d41RulA`aQ~6!KWR@y@ ziAEr_N-&^R_GT^xbu4@EEaqNUJ*v}TelFYT8_W($+2~NUJoOoNZ^x=~LXu-OSKq+L znFt}_P5!>KLl6{DE5wYW`f}`r%1a-7qWUFlN`4Zp{G689Mio5#xpiMr}CKs4-HDY6QpR+4oS8j+;CMs#KB#;EPmCW}AmW z3Q8a{Vc0pjqzq~iiA?6&cgbs%f6d`%Jb;G^jS6ZMA?27zNREi5(f}qDJ+e650@-C+ zUnsf@@ex5ACtt1yG*ZwQ@}>U%{-m$hLA$MsdVWv^A}Bqqf(S|&=+7il0z!YBeFdqil7o?2cO&Vb z8${Sg39nN&T@sJ4Od3Hbx6N4ZyGHJW+?=52RUFn4HEQR|Uk%3_e04-O)|T{cXQ6mN z;~#U}Qf@I4o+z|xY^@kHL>83yu4kSt27KT zIxZB8UN{5xf@31GjML)WLQAeqW+kd<+38@8B|jS3aewZnS5^C^UFb7ka0`T4;6@AR z!?cJsop&&W$mm-V##FkCNP@m%Z9|Z7A2_!b-1rz&LEpukwoOem+#g-?ip?7+Ug!6> zWIZlECR16#!OOHUJ1fCReJjoBP##kcUkFQaUJxiMO8Z7%U~xG8Z4=W!ieG`5;DXn4 ziNcW#$B%%_J>0@upnvhXbj0F43~3VGfo!QsNmpR%bn!POm*@|fx%po|q8lF`etzi8 zZTAsAnks#UW+-X@*F-@fD3X-I;D|`?T=h;Wc|)UN9Xvv>DADwvD;jY5G||3BY5S6D zbtSBxz>&;vbY^CUP(*~oJUv1A#}AHl&yZtczo^l!h}Za%mSJR16VK_|{2oGWv4E;Z zcQ^Algi{)JeH@5bjL(#)=^tE;F?r=X;va^WzSX&BW^!*j01cPXvCd=p$3WBJ!v z#&{g&kDo0jzfh;U_E=MXJfP+PWPIQAtZwm)Ekb~#0@l0*Rafb&cckX*EZmYGfe1P& zQC*)`R9=w>x1YUF7L7-Ew9bnUE0w%YEOg+L;qWVvVKa9e74G^M-#iYnESM%+ha-;8 zD!0~#8IJp`Ctvuk?RDkW`>6qKyPP1#Ol0kU=S1p(;FT$p6xBD==U`7IRYNNWh>FAm zA+6{gO%21^Tk1qz>dI2tZ*Gpx$2gv$r}7p&_6H<*vhP=3S^DWNQT0GwN$uhfWwByz(~j-5>+F)5Hl3vPB?yr|_<+Rum*g8ljH zBOWOny~pc0+=R`kI}B&Q%DNzEl{mC)T5=t*?L};ea`7WNNWX_y?&K^Y&zZcwXhmjE zNpu_#mVH_oL6^wX;iZ=s=Vy$)#A789nTiU<8rt;rLUY4*Mgi=RU*`&4c%dx)6kUfk z1sZb3+OdQ!GbsK2gUl_a%Hf+RLc8_!N9am)j9X$TX+AD9cuR~gOPQTJVDlYDd>B=$ z@<+;gS7xM(;_216^QHH*&xdg{>+_(PwtbYQ&jKG4;o$QT-4Cu#5t$mDGl|+2J3jD~ zw|wHIVDUI#48%6uce+!1dhNK>Q0Ba^^&;LCprt`OEiEE5(#&ISY4S|Db10^LL>Fs) zQhWr{t9H7@4nE^bxloBbqfxWsSYVViO6+>lwar(Ww_(s zgbxi)gdUEbhvLhZW3a^T-ilC;MBH!g?GNz(kPTV6==~b@j!jI;!UFdGTb&ks>v|i| zO|<;0I6(*1C&B?gf7S@*VEa)Mq)*6tNw(f1p4zyc-Jxdw_7*va$nHr1%6J_Os zL6Wyj&qN=k({VjQMH)+He~TUBsOsAA$R|m_P5Se3VP!GYJg4&t?i1MX&04rg`?KQ( zOzs7bH*ZX=ZE!hJ%ialj6~DLhTR>alHYwYUB^39Cx_Cy0j8IWr7J!|ln^js0e^PmP zz|rv3>*M{L2F(u&VHjLBTLv7pyW6`(MFkSAXyT#j+N$HAbExm&V_peiv$b!VjET97 z&!sj6?M*6@SUBxNJK2n6mG8(!?l;m1|2_%AF>uU&aTHwdN3!q1v_9UTqy3JZIv%_^ zZJe&R)_~ntFC^}cuaq?3_@h6-n2$JH^-nE;bg>PIcGoxXqeQMNeDmG7O62egB@z@H zps$#OAu)wUM#5>;ev>x8xhxVA-PD15dHUUsaZpVC$y%}=wfsc^lgDN!zBMK>+Vc7C zv~>XwH?hZY^hD&N{rYXjeTn#4(6SIz{R1gk+KL2tmZ**w$xS!YcOphZfy5tvP{P2> zky5aWu>gSlx* zhY~As5%CK7p@){$qqJqJDUJF!g3tnz+@Md)4mpozt8ft5ch-nUzi{p{opz!E)Qc)+Xhp) z&R{X6I+a8M=e8)56uAu>?qgt@9MeL#`Q@tWB{F_6(L?FLbgN1mUxz;OOERIM934hX zcl_(d*};Vi5B!tJ(F*;o&93d5-S6sXA|fxK`8t?7w}zteX)wdqC$nBTI#$-!8XJ`9 zoRTn)PECbapc-6;O%XL!=`-M?^F~clc&ZYg#36FPA=ze@xu1&Ot9cFQNvh-Hqsu__ z=~)L!p)aB?g?`_p5^Us%v21!oq#8!mO##_w zF8lB<_%CY@5svJyZ3S6fo^;uHybp(OU)MMx&+vQV3c*#iLR0vpu#xT$*X((LD#BvR z@lM9lJNINU?~(-%e-QEF!aOrv;>Bp~V9og+LfKM*3qmcb#mOGVKf6n>7| z=^DyWFwq3QZF+?HoMUgl8!0S zs2R?M5`rLwpXd`jL+1rlK$JM8-hIg1V8||f>1DjSsp%QPu-G85%7YF5Pke-+5dik4qWj3{l9>z z2RI^lFhPN|{|@4>q2Y)uo&BFf$pF<`kx0X#+uQ!{@gR{Ny8SgJfBmR~37K=KCEb5^ z(0`sB5Opr_pI`j*Z_FWJTC?sQGXFUd|9!Hk5J;jrZPNfHLNYjS30W?WocFh^*1!z;8JIbTsx zAP33H$f;Mq@dPeW>c1WtOxle4TyI9A|1C6TP;K+qWUl>*#+#|_V!OK8{rVsMM|35} z_#z_S@W@me-wY|{ulAen_UiV(r}2)>&RR0#d>6PqUl+Q&i0)gmQ;6cC6NKFtc=F5+ z6fwh&DoPt8# z;H&dTi4;aG+ChO=|E#faE7%fopQ{ou!2Lo-rxR;vZ^D_3M$sB@&V7U~1ZqWSrl#KA zmZgXDv-_Na5T5OPAar;$)vTbmM{aFz15uKC@Z7il)uB+<$*$X%zPVQvRAGb=%F3_M>J>u zY)2>riqBw`;oa?cH~{B~fnMS=128;SrC`i@KNlZQKK=A2b>6zydG4YBNGEM>AO#(i zp~W6pt{FLf8^TPw^Dhgu|-C)s!B?N*nUmvU6g<=6SKREDH}FEpOd zeg8i9rj}&|b@*-QTHkvf0rKUY#~$ok`26#8`T5ruEwBN^|IXGD;(aGW$0lv(*yPyh-lhl?+RNNp4%e&>|~-S$cZraD<<2bZ$|gAX7SAX6c< zgVl1Xyt0z>8?;zz{WQrtn3CnMk@}5g#si%(lmucr&`kSA6MMV6VrB2Q%q-Rwk^?#g zp9bm}xq|!=`ncY2-*&dQ@3+Qv$CjuyULP#BfkH1%6T9OYc5*!znISqKy$_#l8C}To zoDvVDZ2Gxt&AIe`cMs65nm)+ci!-DXktFqV20hDd$o2$lr4x4ve#EmE+ZT{4vx?z zOfP#}G{rVNVgr}Rsm?lf_fSGB(e1Ch=ED##Khg432XPL{WuF8TmiH$Ob=tD3tUn7_LPJ(RJC zOAU5X=WiYzVjdnkHC@dP3}~ZrfsW=NU>i@4YA7Q&cRkr@ma?*>cI%UZ(9H`Aa_=vT zHS4Gp=)@gY)}B9-v9+CB+)ye@s+U5%+%8QWsP)v(W<09SgI;O46`!L$Jl%8K-#l@x zpzIM@Y+w6G<)EPAcq(+ge;1Cfw3Vi09OB*Da5j@wiH(ml+@H$V!TCw9=tm5a5yDb? zGgt3=2$UeCk0n#nF*=_6)$NrK=uQe_f*US+@YDbq)C(d6{Mj|N->l*Rqln+eH_+o5 z2WdE{lQ-Mr>dEU=%cVll8p>SAE8YnuJiL#(z#P@6mGbl5$ZlP`l3#2TMNWVx^IDrk zgl;K5=jaF>3UNc>8ylmK`I(ueOFB8V#P}5sCxDkev?Iuo=C(u_Or1&J zEu4)oOVSx!f;xqw?41t>u3d`iwAv;M`I;ej~|l~!)g*1<_TND z$zwMxo?V0Pb|j^6s@9g44Z9_Gm)rB_;tEb@fRjg=9s4u6KW*3uUj8}`QdJzbM$E1Gez6sjQUbswnk|&XKFyl`qC(5rfiPIoQF)(A)$A- z`*)3X1rYyNr29Hw)tsw&Lfc_?r6qv$O1iqb^8J%>@05%YL@Bfg0r%3txwfpD4Uh*x z#<>GYht0kyL_DtLAP6#oZ?8Fzxs@cBWDWh?DE|j?y$?wjx%s#V{9y|yL}5MSdDZoz zuvx&*1v8qw5U-8!DG$YHmH2fIXsHD+;rYXtw?F0S;%tvS(Ze)|aah_GSO0QqO5$fK{DlkFro2=>eD|Nb5tt7$fJ=jzzhHp-dJ+aC<;`D4-g&qF7BfNROA#{1z~v`_ z%Nx<;pssX>$Y-yM!^n=04<8Af-&=ZuqN0+P*bdT!m!u{q zsS7@RFVqYTLIFhsYL5f(t(reD@6SDB*^yytu+&1IoKNOGWt|dmlR8pvH`%4SW&B1=hl)6zTV3H%>Q(mO-a-xHAoxRaUbd;Cun$!q053hH{$2=dJ(pde7P{FSQ`NqiT>nw^TO$>FNwPmHIdOQK zXXORz#9&UVtyP)~k)@*!&n$kLfYg>k^AUOW5XhtREjdh@<&wLkUEx5crBDYoZagXE z+d&{V?to> zk%lQ2w!bjPzc}_j$Lu7riW(p-%*HT`i9+&EJX1<}Yup+9_`O=k$5U_R!EcKPqtMu< z59Tfkep_{e~Vus|w>)_znYQ^dd^*d6=${B-1ZS@{ z;%Jo*N{l1oWnE^sKv7=Ria2e zR|sF=xjaVW=S@6gJ36OvL%lCD`Vft*NeLk0C|tiIaZfi~0-SbFzmNoNo0|ED6TyqR z2+rckCWF({ftx{aR3fU?G%5{?s2{{k^Yhc2);=`~DzGCM>xP5c%=gm{oifvE(tj;H zDn3-sO}5cI-TTW~yrS%Pj;S9PbS*n4*HhY!?$sl}bgDKh>v{j;zCm&KLe?_q;)byZ zmz-=@Fd+J;{;qa=<}*sulu+$#ZRf*|QpXRKOmlVE{vmVj%gFq5bWBVrIiZRc_&L#o zI)zY7$Dgx5qdv_8Nxh^QB#b`cawYX|Q}Zk-9*oLJn32C#hVztE>pHbo5b!VYa$O2u z7zmM+;lKD+M~sR7sgOTJ09b;t8ybypbdfEIavt|{96|ZinA|;rk%tJ*SvUUAqj&?y zQ*%(TdC+HTHHyh4BFRhPh{Y)2rr|_fw2$reM;dQn4;y?^mx8T75OIDoT%HzxvE1rK zMN?2@G@R-2>H?}gQc)59X-*+M?3P(U;=x|Z^e>v@lLSxW>(Nu3TVbu0JA3!3vO;9~ zi?;f8;aWpU9qhAKi*FBG5tVfKVUqmW(=O{d0j6_?c6J5V@Kp!dCfN81@WL`IB&aorKhGzSRd(hMYx(+8FabsEl1 zpxm{hZ4u5EVW}{vo?LtFpk`^cIv1zt3^}BWl5rFsfym=%Q=a}@q#VXYAZUkV;ce#^ zi^l`?Upf7H&tB@>pI7~2@w6F+G;J{>41PecPH}+zY`I-DJ`fgG0FAEH3@LG1T_Yee z$+~4}fQX6)JtL*RGPUk>>7BVTuO{;6Lm*J8}GW*V{GgyVItq{^P|!>xPT9n77b=QT1+Z@-Id^OXlwmzpH=n zLb|6*k0ydHpwFD=?}yFX{@A+uP+X&l~7&M6%+u9kzjtHVGmZ3Zp}EjYpGQ5Ph7Y-Tc5`Ky8J? za%yx^EAn+4kzWXE9F#sNTVTS*!{l^(&EuJvndvj1SXLyLQcNU91Iy&z9*1`Cxtr)c z#K(=>`0}Cl6gv`)&u>S&d3a*mYkCtHX=x|NfkrSmNOPJIxMKlgr!ImXkkV7?i6&tu zd=6%(%cfs^y@U=Y>ELh%XT0-NpI%E;XhJ;5?6TY)N!Y&E>6e@${Ov(pqrBl&lQgWC zM<(5)v0W7`PYf@K8pZp2xx!@d&S}mul0Od9dT$XF`tK+a1r$C<3}6Ep*5juP8zhc$ zzKd->8Kv$=L4LSxW1{+$9Ra0Yg26Hy+yA>SH{zYD7XZ}lnW$FH%?C1Wo}QlPENF!( zB8>o9UP^4euY1#pyD&o|N80?jgA`2`H!&U2#+08J+2?V)_UE*15wE%SDVCK@k`+HZ z(Z%@@rKblCvzxYt*|`PV{qFKDXGy(dIYVZO9JJ;82(qv(v_y8m9X8e=R%r11kyr{9~T*Uo$^#m;2ESQH66R8E1^WUUtO zVXl&bb%o|G4&G7!G~o#*XGU}TV<7%5&GAK~{0l>V31?*V3&qaLbvNlbo(hwV%_Yl6 ziI*$>--Hkf+p~fx0Bt6lmFxHa-%p8PDoz!|MK)27?ck>H#~m;JAD=7S0omkE_~EM~etP$Alo<+v!D`r7O+!5}?$`AvonB~aqP z$6FyEXReCD$h-&BDMxbKTN{aw%q05{=3LTho>eQpIVaBk?wb|yVn{MDjILmZE4hf1 z|KI^ixESd!4u8Mis81;rj2@6hpIfB3JpM=T`>g^7F+mw-s861hm+u>fFA+Hyq{d`T zI9fM>8t4gV{4s{OhvfVcZwn^GbM$?|lETsIT2WGq{4<2#Pri;Wc2JFXhYK#H&WCjS#uTYF=8ik&x0#7uOC}g*4Rx(#k(^A>=R;QF({x|=PXs(zw&~x@CQDb% zUy;H5CfS7eC1%d2Pqj5U6?JvglHlo62IN^1rVo1FLvKBVtEGmAZwl7hpV_L722OBKyl z{O?ns8-*yTbD@nP&Jhx*2Y3kBdRV{>_Ap82suS5n$73(&o+UJ~ZQX2vYDuwxgEYI_ zLJO>Q&1yn(t~2rO<|YFpZCl+04>$M3%aPqJ`^Q*}r&d^HmSF~05wl67#;T)cLeoTZ z2wvY96ASY4@_JWAyq-(<)H-Y@Flq1EJ^n`tB9VpaaCrUnU}Gil>FG!=M}pek#%FEP zbQwX`ce0X#F%-02L=$1q-Be)Kzs%b7CxSgI>vLLBz+76GsEwFnVDN;&s_`x@Opa+I zln4PC`e{1KoR@Y=C~?_TO8>&uQ^tWk0ZNd9$PM#O@EoluHy3ugztSkJ9k5f0+m2R?&F1^x?6IZZPM8Qs>2V-WP_vi;iP?82J8~dU? zvb~mb-vkX$ZJd8t^?4x^g3}(TC9MrYI`y|!6<5*FgnGWQGpN4~YDOlLCL}Z-?B4AB zIQbD*e~W=EeAjW>VO%S`Sa9wdevXAX-HM#m==w!%RdqFpja&<}Ny-`sJCFV~$S57? zz3*9543W~vb-pR%8Jr&J7bW<+@M30F*wrQ+nyU*Qn3= zBVF1ls(pXItp@boWy4h8eC$-j10KsNabA=9%ubuw$tR&JD}KiF19L7jb=$B%|1PS#DY{X_8|fp|B&Bk-^Moi_fuYg*kzf? z3+2t`62<$pUBT&6-Hes9Tr}Eo484y6+srD+F5nDte@&{AFtBFr`wt)n2%eH;i#T6- zYqFHEqpag=`P*KP5X$^Mz0X4<)6~Uez3Kj@Q`1u&@|a|Bwn!lU;w82DHD@Pl`P+`f za{)|eEz@bYt5?bN`H*nTWrNog2NWCs2w;Sc=agVa7YkpbG#y)Y>SVK za?c*wRJ`a~pTAk)Gmt@`C<1FN<+jaZ1J;-YW{S(|;9b&L+RPF{dKSwSH}jjyDKt+L z3~bB&4N%>;m6OOjCfdf)bUJT2-PN?;kS44_ODeMy*k58sTIE4JDn|L4ViQeq@!PV zto5f7x-Z{jQ0lI$s6gI#a4=?DbaT4|Q4NZ_>V2^xqe=IXeE;$4!qI1xtI`sCDSVno ztA2MjnwZ}hW~52ef+TB zq%)3K-NNRdC?2p84rdc})#vwn`gWKRJ|doscK7>g$b3QLELxc@tmAWd(IRk=C{h-0jrl;C) z7^Ro~v2`S*Fmbn5hU3b^w{mzLKk7qCv@K~}C{L|vk5Z(*gmsv!wHh(wB)MZ|6D2E= zNP-Rb)=!TOa&T-IqDr#|f2>qg6o?0eKa?5h40|Yjrt?UEuTp)SAN|%KMc&xK;RL|+ zuW{mjos*NV7PSQu1fCgu>+9=74PE{0!tm?-H9x~t{3P_<;_+s9M2cVF6 zQsBW_ac&K*2WtO{V5n8Xr*`rE*x3ncnNUb99RJqHePH7DR1Bw4a`g8fTCLfY({*Uk z&yUb)$1u1-OXj6mvg3^m535~t!G;ji0_S2t6j^JRJY;8uHQj?2J%4T&as7y zcEM@MlxmyEtG=>QCB^mz6e>$kE@v=IwglDjQW>!yJf|>S?TMF?X$k%v1#pc}jnW9p zG?M3+%%pkfH0V66G^2s13p99}# zS^cm>QA*RFeX8!=Vue&EpAlL82`(Uc5Eo&#x-5}XtI+vi7=i%ycRn-37O4Q-b%gfB zc$rv3rJo3c9A8b%Yih+1cLJi3#@?6IUyzUM7!_e}rJ zOAb4fwb%oJp(yf(M?*o>iF;r4zAsWbHTSK6Zgr|U zIU(zu;%;@f#R|%m&<}RZhf$_`R6_UfO6&#@8RVal>(%M zH#ao9;skrL-E(yFd?xBq3~oyjc`4x#!)SCg1ovbwLwFRdR|qc))Bl7@059=O;M|bs zrNVRVX*INn%@V<-^Y=qbU3T2hj-usrMOVo?BRijTpJE0D0rP^U`=79dpCekJ%dj7% zAr^WvX8A*ad1{@gsOH)2$6ghas@H^%U}GY~#K|G#z>S@UC|4L0G7K`ty8nq+iAsU) z8O(To`=xx{bXR9z4aSTOi}=k<+^%Z2(Z+FlAXI4QZ zK%IA;O}gWcv+RWX`u;eBTRp5z!%NlQfzfvM>oBK^g^w?L=gzJoRhcWy4j_6+z>}+g zy_G-TB`OTMN4V6;Mno zlSqTzDh8i0`@fWn5h}+h)ab`qPQS8#YNdMY>*$LdegaLM&YvsX)nh#{2K8>3}zw!|MUK4AcY2O##{|^I=f`i`cwB7wWAN!h4BuTbOMceFFJbBq{ z(oF0eF1`$yqJJl&6Y>=}DT)8a!u@>EZ zirC+~TbTy+FE<8eP=fHlM{H=PRFyX_W>0k&IQc;W!tZlm-mN)(ZW(snE5AH?5Q^Zxne?wM^J7 zWxDA~v1yNXq}t-kic|_(baalCOp^FRp_geEu9UC1ANeQ#JfJ>NFc92U^NOhni@Uq) z#p@aOI|1BetwC%7%&CeQtFx`K0&|5_^jx8X1>dR}TbTn*5XxaSUy7gV?iiwSHFygJ}(1Ura0%Sx3hy|)&B+|di-b4C}O{V|D zCW}u8kbhfbZeXHr15ZbYrEUmG!=5U!2Zqx{Oj~pGrqxd7xf^gM|J(_r#}KgPa|jX0 z+;3bQARk7<5O$4LxRxw5{}F+e=>q~lJt#XaKcJR`diTTbH!;bJ-?}7^@O+G@t*b*5 z5^1=ntti_SVye9b|d_%`YQ1Z5O%3Z=-{VN!KMSU-#QPK0-nY zIn>Gf@J94mXIR%L2q=i&@KZy-WMW`2grmKl{z~-Ap2QCVU>ffb-5 z%@~RhL3LkO*7^1_gg)L7Ti-s|fA@|moip%BWY9Ugk6bfLcKbM*B`a-XZfU8pvGE<7p1@ZV{4ZWV z*B~hf+|}OCFW;7*;qDGj)-ROyFJ)V8l71z8Xzo}H(WP#4FuEneeqYu?ki$68upkL} zZ3_Q;=#lT=tGB-Zd{V%ef@W+yy_4wrO-=T~^Fwl@gf>PI$@@3==fd^NQrT$Lb9+JH z)RL_vIy(M2sakvF(wlFk(V%h%i+<*$ON1WHQLx3>FV_{ND7Q5*S((IAkb8EkchsRGV>Aboki;nN?mmoB&rTr00@ix z0`AV8?Sh6~Ax+GO8xt6uN7e{|&mi+??{gZC?=F8j7ptzZXlJh>=!h)gf54VAKuqE0 zde!c1a8Wk++)cf1A~;>lm%#GnONX&;yryup8(KB@;CWFfM?FeS8!4VAT3K=`2_A7Ct(DRpS4hbO2bTB^Ahu zHgFK&KvuLJ)8r*0>12OFPWWWVAUY?A929HLThiFg1i^#8>%uU5@~VmRr)l8>W9QMu z6UJ^Wi@GX>MsD>4B_8~43Gpm62$sQQrB%ol=0^l`HsBPf53zTUNI0?Csi}ao+S; zEWU&tMAP^F1ivc%kKV;mKi3ffdy1XZ3IkROY7IrF+;CGGJDko4gylV&4EApX}MKddhU@ zd9;bUl|<0p_Rm0nYK1g{LrhZpq}0^MOP@P8%Y(vdYHDylEwkU(O85mZUI}j&Dsz^^ zn%z>TNbxG?CQLNtl=i0>lx5m-evkyb=nk6of`;H_nv72{Wi#q$PSS=Wue6=}K>ow&F@FyEc3h%8daZr$YXkjTg{EzQViHm3d)irvI`n=a(#kWf6+8V1xO|j#K%J*kOp~AlD!9HI21>G zToeT*Zr6uXQ?G4~FCWugb1wInB6M+1gC=>rnv5wRnh>No6PTk|{LYd)KzqYQIB0dz zIQn9(%uAM7Go}H!l+xX8D(T5R4JuxTi<3VwX1g$v4YQE-X-5SQWZ5G(ehPV_BXp2` z`<|YZ9pyEB#DvDMY$C=_Lg=%BKy!b#XD?l9wP}z>bWtP!pA!@~Ea6x;Y4Ls29@vp{ zCGJoBiO?9T;MNIt0}bAP0il05Wh1n7A7|g1L{2~6{C)k4nLqlvZmi*hNP|}(#_ik} zmd-d*EZUMb$^;l=$|=HC_n(&Rm#+}4!3w6LYf4Wgb#_)0irpphCU*Sves@&v%5T=M zRU!c)U;gmDBecvz0FAugaEe;~DJp?C{QWH%HpK4gbvF{vwcWU}M5oFltT;$N zSr-CELas8&|HI|hO__m&Ohb96`ovR(Zxp}(+vD)c;p!#78eJ8+{_dje0kgn?OGczU5y4^QPWxLX)`xSE|#&s0Hbtu$|&Iutq5YF{; z7>5uyPrX|Y?tjxdg6T7k9iH%clD)isou$;8vMx0{EE>Uw{JoGrPVmb#;P=02b*ta% zCZ;4rxI#aww0-{Hap)n?e7!3Kj^8aSBs{WF&t7@v&t7D+Pdr|84`4UFVzVxGx@H>X7de-F(J!x{V0@&M z^qD^ux|;;z37IkM|LvWCKs2y3lJcPU))02r_GRR978NoWC`;P4vb)Lv;cAaW75isd ze~tndGM@o;-+2DZrZE(RaW_;P?=+^)5X0S=zYYCz-7TL^e@knXNK*v`_r%2?0`ok{ zrU3S2j089+D>dUOv_G%JKiiWTptko6Ky;Bxd7X5`zbR<`a|p)&?oQJBBy`w*I@)PQTh{d*bBcAaV6}$wGUM0v;Vf^%;x~rc;4kNfec=q{z z`tAN4QD7_*y@wq&AcR5J_*uYM9B1w~8|zOT#PMZlLSNMAT^oqvBY_x-rsXK||NM$j z;IYZYw2qTb8>zi&BaT&%b!|R|2optL!WN?Yj6@+~96*Ub$3cM&#?jpb#q9xZvCIdq zoDHbXf~GKuxmcJFtuS`8Qd5gDUXG=vrrzA#H#N<7Otu68DuP0zPePu*d^tNaJT*HT z8=Yq5G_lr~O1SF-v(Z#k)KHpVleH}Cr0OJX_QVq}U5IJ!D}fF#KLm&Z-Ij8pcs76b z$Rqzo?V0#kbd0h^owZ~dbxdR-grrLT6t{z7IyJ_<&&QX< zunXGY{{J&oaISNzG%t?7K3`3aem|?!RslRWKz8A2>y|Jo!|j#;H&OoWBnm)mE0FVh z!F4Ye7#oTpVSsm&q`vo-z{s<*#$$2Kdnt5A{7@#nOAU@z!==V8P6Woi1S9d?yz=x zzgo~wE|c38BGVUV-)%o!mh2ayhZjgpNMQBLMzDi8--JZ~Ar6eocj;8PU zZtXakkYQ4(Uu|1CWYXT0E$GsSR)fU{qB>$A=s3IKB!wHinF+Kc(@`*Su!H5?5E=XD zVwdcaY&C7ny<^}IZ320ZUq@wBow%l!pSJcUV13NZC6zBX+;-e~3TM={D^GZfznR%X zPUac+&Qyf0Jswr56@itVZ+3!xnq6O3HB53jCy}XT-ulFq&{fpk_-lW|gz$%`DHlMy zpX9oQhF)D>8ujA@@_e#eeE9P!Xcq=L))4TerA`s#n~xdM3oca4829xN7DJ@cYxCZo z$>=3RAJWj2qUL><}73O4BSMT+4xF$6ZY*;hZiJ>mvtJ27#_YKfq10YH1)a`y9v_ z-Ass1KkrB37Y{&$FIGDUG{hWFVsraA!R=8Ck1I7%Ic;!#PUrX`XF~W~%A)<2FzX4! z^uB#%@S>ryF-Z9$3qY&Vk7z(I`K4|{Xmkhgt0txdLUSSBn#fFrJ-@1=*k%V-8@|Z3 zAuYbl7Z$h|75^*E13iB9!(4@1iP~qXUdg(23Rer0gKUz;_*gqfluAv_v{h?o(pQk@ zH>Tmx%nZU&Dib<`S)``LRRj#MnX&qRi!Y9 zz!1bZ_(i$dJBdLwI-#JuEIn-RKsu}Sp2a>C5>iT$qaRs@o{$KqZ(9qM!J4r_iY5r2 z44L1BaNB1bM|ptTlAJE=*XmWwdfg3RA$e}hO!21R<+H%DAaH`S2tWWlRfhd{T6Lnt zPj`H8mjyG`wKl6~O&nH`sfqLB%gCMK9mRgF0TQXEWWdjaKUvA&tUJjU+@njnR6+Hi z#}J&t%Ql@TqbBE}4x`YE_TX5o&{uLyBBo|6qm7N8Xw09uRhekLwpJF5eGq0+iy51C zjr&vfoV=L%4!Jqeu7{;#rUakstMIM-I*SzEka(gV?dVhfB0}yu0={dh6Vq_Y?{&Nu zGP~f4{MVg)Ub*7~jS2T0Tq`7*AWQ@@fg;$#@`J^*9h&Q(@K#q0vdRYmOYKkDWKU)r zLq$*X2oR{2eRXk*%l0vq|JBIstZ$@v78I>ai?-+9MYmi_`o=7}VZGDdlTJQq4!NFw zk=2hqZC{`H*4GnM7-n}CI(GdccS##SbM}BpObl1#+|dEYp{G21a#iyE6_bkB5Yf3b zRH*yS;p_YRAz^=N0X&GFd<@C=1v+mQItWvPti2zdw*eW4r(Yu|4mV1KCi1)rtq_fr zqCPQ^81?G#$06|lj&ib0n^>9dZXQ1P49dhF=4h#wjQ1T$8-^6H6!`w0w6IX`;rW~$ zcWK^(PvShus`$6e5J=Wn^?h3P!&)@(4YI!b-1@#-VsZKl?Ejn-MV%dJz+g#^`Zv1M zc{|1?U#i}{@`fKPDP2JxpeDMaY!e{o>-7PNAt4l(t=g_-Wo1|z?BiE1Ts9nQZ`Qy4 z_<2}Kkf2uEy-X_w867-MOVn^uQw1s*3~ht6Buo2ycoHEZ{JC-Tp8=3O@Uc11*|4q5YCShAZlSJOV8#QCg*6;GY4-6pd?Zxl$c_>NDt_|FbP$uA` zWi7oNi~?Z*n%^7Bz%=Tz5*-d!D|QVJP7`*;#(VgGQpK%dW7{7ndB6 z;xb@N6k$mGy)uL9qnge?fpE5NI4ZOeMUqGa?7F63s{5t+Il|Xb_K4O63$ZnzOsuDt z>qawxTqAJ1Az;@RJ_ZxGSjw@mvZHpl`&;3BNRlCBq$1dEk3)zDW*B^O{JhZM{m%u@n zfYNtlyI(-6%nu#7*Z1Kf@*$5nL=p}m=rDKV@dcrQg>dH5RmV56t3l@|L0xTadie%0 z)M|Oixc?S>?i=9Y*mtWq=h+_I^G!zov>{#qNkfF>^NFD68QS zc=AAfFy8nfkd6nypkj!br~?;*3%EFe**%UB6LqBu{SeMl$`6q0DX^Xf%KQf^Tt!1g z+NU#^yAAR#xjW>bCQseV=*dC~Pxcoj3e983Jr_QA)X$P`MYjR0bU{-&xEBGm0_5x4 zowzZ<_Vm})k7j^RtDMokRx0}GXhgj?DRnR6>A2B?RjmdF-^U{k3XsU=eEXLwhamL1 zzZA{?_ruU7f^r^4-^v+SPk z)YW>Jbo_PJ{qPaR3avOLyhZAoN9~(Nc6uMl3jj78-*y6C-)rgbm@p*qeipB1+ZvP)L25!zr{(!N8QB)gD^If8R%z7sl!ZX%d&Qrka-5Z+2Za?FG{iAd9 zx>tG@i}?qk%iS1Pn^DGI9Ai89gZ!1*4lW?lqc@dQOw<9=!vYcTZf`Tfe^x+mgOzZd z+K&3EbA<7(Wbch6g|9a?Sv^x^pKEg9q$d_nNg@O;)CiR1pZ&P^=PA#hO@!#dt^Y{p z(Dos5PLJ$H-(_W5_*SoNI)D>bHDJO9zPt0i7x-`m1S)Y3f+s%z-aWb=eBXN><9?pP z4WBHQ55m?S?i+efxl1JnK-PE03cv@weKR8&Ch0&VzCfwcha69CLLb=S!4|p#eOcKH z-nB98U%BoJxw79~lO1?c;q#1sNNnAzD~bU(T(``0ea}p>3Xq;89*ET^<>aaV=1RLY z+ZPn~Xp!y-+B*}b(C_!;9b*Ke_*t2JbU=L=nJ)A*%SWHp>ZzkP#@G6O{nRxbZtYl#?x-w;K^qXcO+&b_r=#wFF@um)-%)Sn*OfCh z+SyK@;Yv!!e{tlm9v|7QTm1=@(FMasab{rfp*_?9B=*Avw@Z^2fTN&LnbOV$V1jS50S#6|hMvJHS;}E~-t)x&KhGUE#ZH0teI<@1jPC~bQ7_@!WVHd2^yxjlui zj>xxrc}J4V=s#7cx4O2w*q;Hi6;D{O6M#0a0E6RqJOi=En`L{3b;GT5p@!Wy&EplOa{+G+F*AwftrxPZ8)9b?HQb zJ7b(sTwFDV#bWMQTbN3cV0xa08DLg^&!=CUaTJ8kR=jhwBa23?MT~~cO6p6BdOlh& zuzg-~nwk{d4(Uw{4hoWgEVzgi^OZ&!R!CgL{1n;;0`0O*;kbNdq?0$qpqKlQo$B9XWk4M9_-r=Wz``^U>NLSbvB zmRCr>rHZFK<9$ihDh)Svtw^>d_%HrlS*#B#i#1Mz?%pJN3m6R>?DMLQhcn6R$#CaM zA3V$NKWz07>$a-UIK#y|KRq2tVG(dVNyDgv(Vh$TeB#Q{eCY}MLB|$qE3LK5`_)TDYoacRNcDr9sV;as5Qvvrom%YwPx%0MrdEk*f_x#&R}+B*O}Xl5w>O zKPCcJ%C7>c+ID`~(f?0LaK&}VkACnPY~Pv?JRP$a@GMZ8*(q3aof?^(rf0G*j@zzHk>g8HQ?>Jh z_zQR_y8R`|!%+j?-wh5bkMPKS_|P<=HdGXD5#wCguFv*%$x;j6wEHiyI4)&1Zy{@c zmZ=F26i}&wt_7iUiR%{AR_43uPVyAiEcPfs1ADB>@av7#|6=xbVF6S z@xkU`GOs7-%EM8O4ZsCKx?0HCM+d;m%-IjbJ1Z~bkED5;%AD!W)!kjccnc^rI|;c} ziM|kp+LOCUA={d020y@9!q1Sn zewW*AX$kFG8};=2!NuxC0%3s;03QsC>H3;zDBA^VM-Wov%Q~FBw?Gotl3{-?c`CB? zE5OD*H{ZcUjT0z`xuh%bl~^i}T6JIIvVgdd9O0)-*s1vDK8M$3=CQy7AEBxk-s~1? z5cL{JfT*`Lkb!6%Q_F7T#kb(un@Z`TVq3+Y*E>_;csg%pb9d6FZGXH|{n%?2&U*|&ERr9s!VoQN8j(54H?usoTU<;t-BOYe6{PX`~oy3r|C6dWif30A>uyj zEW92F{38*#!y1q6k=9)6GSOQ;qQ5KSkmHvcP^w=z^FLx1T;b zE%;vuEET;p28xf%_xit)eoNg_9})*?8$ z)(=2LYcGijqBr%?1P?W!01UhmKnR3z67YrvVBgcI>rOyHt>FmiBkEZU#^{BN`&Z$- z`b9)IHu%44X_nO9Ztpuu1kiNVUqmbN(4BrJU$&u{%(8N^6i3OMr{xaY7r%WZ4xP^$ zIv?=bKyqzWzyTN9*5G|HW~sF)Y@cMEo2G9oTc`ADKdie`4RNBaYe6e_r^XjtEaI_h zr7yTAiKf#a1r&g*=rI>ZC>Vp*nmIzlk|-5-5GI<|H#6h@4;7`L24$G*@(x7Mw-`|R zN=bfTiW8gapcCxch&B6|LI(v2PvFiw>S}m@i|<5yGSGcK$W*hqXwo#w)c+x6-x;eO zCb&*uA&I93$k5TCwQhV_0(hBSjDh%`oFJW%tyf0r1Ljpq+`JP>>6UdM`COsl#6w85 z;G1t9Y4wF4_Nis?el7L^;@@;RY!zR4B|NBhnP2ejSxb)n1Bokxvpol733c8umg|!!dJ`P)%84lqc7O_R`m5{?kkI4t7&#hA~OTPOC zz~rEEK~%o(X#ZHDhgq5#i z$^y|xXv$1MyCLEYJy+y~xKBfYq$*#22m7FO_9)Dz5l>4qtOBSE4C*%A7(xc2B@!)g zD?}F6 zohoZlbMU4D^A8nQ>40c_^HgoRG&gU@sj_#<@AX{2{Arb7^5BVXl~##Hb9_=#(S(H| z=iM7({GTr}+v|~_EOlM!TdfD(4hZ?Ixavj=*>&=L;yWY2-A|S8>6@u&zSE2g^JKt1 z-n2u68DrQzqN_l`g4K2C^9vJ(GM)mtCr^E9X1?FaAct)VL}^$FJbq!J`u>#4}eqll4d%=Ddcc^%RSP?Y_r-S+R#x1LGI13zb1CO;cgfzez0zdV< z{r3@~zrY{#Et%I{SB;Nh8U_TN+*yzGbUrdt;+`|8$Z)8okbXn_>4(Ij1Ngi$@N)ll z`~62Agp3g0O_KL*^yG{+k&WpLw}4lzm#kohStBUU`n1E5J(8G~7WqSI*sC1$fdl$A zfDEt%jRoJISBBtkz@en+GfrG-o33?cufrz!@eKpmXy2aAwyxI>r2i?N@n{j?;E4My z$iTV;GH&P^l!(=oR%B(oe` zWMpLAT8^w>x&;x+(&^_;Lr-jlej%S&d5|8GfZT}!BMr(tm5JmzZi2J3bMl*@K;+GA z-@tR{|0^UtvqA6Q2d(_%23k1;s9DExy?_;!g&-(j{ zi!B-A#WX7|?>o!qmlF#s7-y+%#iuT4Zw-_3c=DxLYuBl%s&>Q&*nrtQ!dS{v3@nmh zUL)eO_PSGgT89!31&z;Wc!%cIyNsrL<>?6qajX#Jg;2)g=o0K`5)2Kv$%wrrCq*Z$ z^ah%Sn3Z~KJ{*2elB`tDoY7xs$GVR9I6j%W#+B!M!F7qTZgDn9mk#vvDq9K&D(`LQ z!6LR*c7abIekmv;Qz^@3@EGN3ISm+?DPp4c^*3p}pUhV#nuPdwp-Mq$g!65B=^5lM zA%j1Zyk?Hpj?!TJVK_(Z;R@w;8=`{yWD+1Q0~#3TxF+xHAhpJM4hZut8P z>NFCnNzrEq)>6@+FC*>la~&1>z8_bbrF)g|DN$V-WP9@Okde=)Pza(E6Mdl#^e@|y zK=VE%Nh)J3mo-bjweVS2cJqiC4a&>OaU>6XNm;l$U>^)YkRp*l8V)2s)7Ri*JRJFFC%}kH!+fv z6Xr+qS>dpvQ3Jb9|_Ih&o3V19qx0xxny zXT`qO;J1duEPv+aw*g3n*-kdnaFfs#2u-0MN|y5HYlrerkzq9incJ`s*U?^$<~*ku zlovfDU^QLsxy?iDJb>B`n@=u;3YQc;u9$@ajmqpo@jIFsy0=yIVY}v)b^8Pp??R(> z6Tano5yw#mqBcFvw6@+iTq=s0b!q_t-QIWV&+D(K9{sv+&B_r_`*}c{u3e21g@52q z&YnyO_g$1N>hR=&;r{2V=V7e)1iyV<-VGknFhFDJg{H7VmeVW^Dw(W59*q~%?_-UA zm^?Xg3MeOa14Xzr*Y(gI}6$wK7^5r_%l}%ePQQv;| z@am(6i#bN*;0i*qnSKpw^8$uA?3;0FLH9NA zx%Mu4Y+)g)w=!XF6~P@EQHXyC<$)xs9v`<=H~AbKrcJnN7~#j7wk?|NMtzw%6qJ#d z?;g5qC-9LN@ibKtCc07?$cV!M<9DLD5n!WneK&rrMq*;?6BU(~4r+hDCm;Oa(P+Mc z?FDIvf%FG3)%B`RwfG*|UYlW${L4z=UX3O(dG|=UiKx)C|4IG}As4Ns!F*e>wL)VnKDUY7n(F00{X@S zA4|i6BtD92@xi>;K@UKS?-$W_v_($ws>Xg0lW37G)6e8wtP5Coti&TU=6TndpCp}F zeks&!xq4rP(H!(;=Ep#WrNk!9jkd5RNB4WOZmsgJ1k$L!2qIW^8;nmCc!auG-FM(N ze`AGkla5vmP8MfG}MTD_44IxVeflJ|0zr?EDXZO zC$~BMJsiwn^M?F35X?j@1_L;t9in?8$Qt%Y^OngakIq}I>5k~L73sxCYad}R{ZQnVVL^roDf5lzvxt(zNn8YShy!@=<@O8R=k+$EIDI@g(; zn@XvxzPPEPf~=dT4TES$&V<|tNrRY&GX}Z6%q!&tH3}oOa+Nv0;Yt`7~#JC zo|x79ojX_ep$3)rg?IABR>XFKw({85S4MSnZ)0Q8nQBaL$3YrE01= zsM0O+t~-VKLDnL$4Is+3Z_*rJ{SL6XdKEGBNUO4{Y|?VTy-@w#TvWy7>nZe)RQ^+2 zuf}KAW&|NNbYcLCkSCtn6AXGK@k7KiYm1@TL(tzwq!;y@#1tYzpWe`#3p;{cPKxi) zt`3_*(;8B06<@s&-Xw0%sa}kWVT!dcqV6+k>CmVs(?c!1(p$k~&|+xhfSSRXMv^zY z_vcS^d-z5E2IV!a?@1w+E63)XTJj6=E-%9-n1Beop)P(v(GCAGs(3@qM__Za-4TDd z^@eAqNE#7;6d`l;zHc!XW-n09f2M2FQaj1X*_qD$sKXLW3!Q%D+hI9U&NB{^ky!~} zs+?MTL;C-Xw*r?Pf(tKD*MHu#+i1+jajGm+6GD9X=3a?x6X{~oLO;_5F(oy1_;O7M zy~LfHubmYI%bX1xYX5f`X1Jw6@g%*2sW{t+a-!c~TL>0ra~xgsQ&V?_Qmm_H7;uqC zTUgu}3DkmlU?$+dS_!630A*rGmy3JPuZ}X9t}lC0maN7JQmx;6#rAthb}4QlF<9yi_x^mn(APBh>J)Jv$ox$pNS)DW4z6Ph;Wv9kW@j5PUS z(fbl8$Yfcny=Gj>9VOHo!8^msKq|aKnYj&9tfwC&Lu;@IbHR>J)B& zF?WRR>b}zomgx_EFJO3FJOmUaSJS2P}zAxW?UNn(JlWJ^^N|A)9+4DbSyh2PG5 zoOhQdel(|YNbFuN5c#YHy`g6;+@5wBu&E1Q<}eww;g_m~$?r5Izg8cxYQR{!8>a~T zxs{2~Z1auSv8G{Y>qXp%XnP4qiBv-~`@UO~&n5>#86_2!!6pX}vG@>y5*GBaEjys7 zow<}<{ySEcP_(`7*c9^1`Z!%>T?xmZX}(BbKl{uxr_b%iC?Js5VM!>KumC&H33Ndo zQ$a~Ff601tL9IuGt$Nob{nrAsh*r{E-YT=XpVhib!7d&~NZc(GpJP>mkzfl2+QMDc zvwx4J6oR*=SazKF5f9v))3C{13q!oru`juD8fgy3#oR5Gj@5ac)6xm^!+L_z} zGlJuQva~z#0r&s26GeD|blXnJq?GHe$Cud=LiY2%&DD=kYk#*8xawj7;mM;uy%`0+ z#Ru(#Nc&9oUjs7HOAuZOM5sMd?Q=h0v+(g!)UKv0s>bZIl1i*+yvo8Z)fQMMeS-IuyQ34m z-f%skQazt|5GnmA^`jE6^<|E?p94~-vJ_Q|#BMC}9bkfX;CmnYL;Twq;=6jvohixs zhMUjkOZ_lwGb|8UNcQbn{m$gBrKi5LcqX`CF8B~7NNQlJZrf3A&`IYsO^O!X;6>L( zNnJ`>y1kN2QT1ukf{o-MfrkBN4QPfC3R{~WD73~aOh5BVGq1Y(nu<2$P>qoY>$P>K6YOPF*S&?MnsA}z0e(rKQl_a>rPJzF22 zoDip=>Tj~mJ*&G{a~U6~%0&k6+?ZoLxl4Ff0r&?X9UYb!nus^?*9fFN&9pIgVBVrN zsiJ`O{iNKspK4~*I4{=WV2X~Y%#voY(6&mD-~5XBX(|; zmS%d_VIoRkPce=_OH4@J#pd2KE}h{8PJ?Sx0y`97RBjEHR( z9UfeFCfgaQOPE{~onJ(snT^4p^0-zQWxky5JNZmy>GH&lI5!t)cA!hc6MQ=%nGhO> zWYr=eC=B-7E@FENO}jV6%Iv#IGQ^xkmnJsb26yFMo`l?&!x!K1^g>h+INrs@_a%J9 z-AR#uDJZgmk?V=};#OsqXZVI4x<*p+rbB~WmWQnTTb{$!XMuk5W#pwx{t4N2mjMZIb z7*nXP^!C@F_@cL@Qv{NHj1$Wn(00}; z83;;mEIB$nR1#SsO<4&w-b++kX`tjEV3L(OE%nf>?7#og84Qa&P)htbY0WFP?hEJD zB&&c1gdRQq)?(V?gl#fi9S!Abznc1l8i``@F$(2kOMgwUj#R zb3aecOb1O4wW=A>VQSHjh7=f@cMJ#Qz&mBzqJp3;M?_x_3!EdekWm3gtC&Flp6Z0U(bs{ z+gKem-Ce$9Ej-yUQOE)TJB|rCc1R3OFrC?pj(!ofRzb)e9>b@dLeTw~D4IbUcQ*+_ z0)*V2zkcdVgNJ)i_K=-~g#|9(^IV2WimS4cRUEEtf}h`}W?$v?2zi6-Nvl=pbgz7z831dd1S7SJKD%j<_(@^<+GaGlRoSod3db?y z{zfxoi9L6HGc&b$TH>i!wT4uZO|xY;qS7$rHr&UKP-e{L#^`|?c;mUe15OleA704L zAMHUCA+|o2mtnv2L0xM~JYTx=BiVVxmoY@y;_sgL4^dEk-WVkizrc!R?y0{rp#sex zVHiSc_4DZ}*K}ri4!mK`viq7?YNibwWZ#0&9tMmN|E@zEDo*SE!K>+e2be!8jP`r} zOq(yeKHO1l*LeGlW@(%4fo&Vo=ek|I0ow=W&nE8?(sfwN=DB5kUKVeE=4|p8NWoQNx1i9H@Soej@3?GbqXPlnB7ch z*n=ZZ*cr_%WPe(WiK0Xv&n`3{+!Y2X$$KYP238z~`z(zv=VgmuGWVr}*XS2MT_|!7_Cm`-5F)nf-PYF(SNDtN^)y%I4B}{cXz?1iG!OPX+#&19V-ua zItpEoj4IS?fR4UcQMbY3wB7H@b#I#Xi!7oeD96DmECdsbN4+g9oFt0AEhRAYSeEHZ zA*UTUG;mtYlLZ|t@D^Y3l-~n1JHxVTO8J=*EP9^(0`?_7972uV-naB|hq_ zZ^<09f6=g`>5<+k1J;^GkETcx@(h$@fbpZz!7mbrep?7_kNl-`=Z+^!_SNMBDKvld z+D-{Vx*_Z!{FfphcZ*al#rTPKx+D2z-^(73RH4Jz!&p>+2DJ)hK5>N_Y^! z3kBdv(=cpstSrAQf5jp1e+^;`u{XX=dE?Pf+4c^9{*?LlTd+A)ve0YuW4Oaue$vu) zcJU%s?Xekp!5HPs%^IG|X_V_hOAy8diD#n0_8N{rc9_eD%c5ioabAc6d|t(BPU=*i zoVg9BLz!9m!-=xqPYjQ_!&PjXTEg>hKO2^&CJb)rD<@BuFP4*%EvKNmE62-f&~^B- z^DcN9^;H;+#m0holjo&?g;S764-p%jW_x(}Gk#qK0}&DBSW2?HW%9S$nWRZJkVwL7 zZMWHY)H_QfGdHsrPOIv!5jfJh7j?pGxW{V5eF6@cJxULrqUgj3a4$|K@cv6)lpuN8 z`lw_L?V8Ki*FAR44uKw%LG0cOGZ*;F7<3z#TxXoz+}w+ciZ>$1K29Wb4M z%3b9ZPCT-Hol!Xy5`OV2=`?=qn2kxMW_A>~bezeb3_8wYNH_59QwwjR3L$n#`6Q_a zH^P(;Jz_g^fKTO+(r~=JVfUR9ThVpo--ff*=GV=eX`Jk)Z*Re0A|v;_d5ER>Sp^6M zCzdaAtjl+&lA)5y;2)I}sx>%L!Pw)?E5)=&jN*fP=hYR_Y}&Fjg>o-U+FB+YMxET6Rk^D(tmYu>$6FB?ns*eNX8_k-XCR=9c+cNYfMeNBp~0LJ#|8{4NV^rmD; zbyxeM(q=t;_GeOgs#ugz#Y=tN*$4^kYu!TunP<=B<%67MKOhwW5aKiyUm33T>k1`Ke zTOS+s1oPu%>bCALSvn9+#9OP~7xS6P<#?jd(nz;YgV9XoqKllmO#72s9Q6kB%?bw2 z&PWyRc);H{8bXL#5au~@gPPx4Z+(Jk`}LB7k*nVYF5hA~Pta$ma(@c+kJ*M*p<;Jf z($dlbvD*u?bAoAjZz!zsw(NTdvBw{lc|hsQFneRGt&@E|UfWEnTU%?-_14Z>2$-mJ z$9hqZt*f~fL0B4A_e}x65isJffq@t>yl|V)VqVyOd z%vU{;-xX-&IkQ+%qtwwzv~Psq8y1!r5Ea)*jR!&hw2>TgSXPT1M?|Bc{OC)}vn zs+N{6k;|6u*Xp?n^5v(4(Pz5PL=Tfb8yP@6NO;482SR`r2jyWY|AKD-1k{_g-=CW4 z80TsWLVObt8KgeM)41xeo3&%W#?-AbrN4KM^`i6TO>&E0_4#!F)_=bQ!F@t;(h|#h&Qy6 zYXT)v=(j&VenRlNk1aRe)72s9ZsBgKHdfD9Cv%*A)dXSI_wV1OyvG@-dZce;tBVdW zg@N;W!PCFO1~54z_=6;6(Zw$|(x3y9gY!m?n5CLWBX%1AVV!t%>QWe}VXg%Qx+t{$ z%uiWG6vI`BAaVGFoBN^sCBNlt3L|Ve-~0buZE@WzE&G0quiEfSxY z*t=Y#p(V0&gH|Nn@)_8g?C<{^BlHE+&3rJ$-mnLakkx1u^(n{(e%j+J;DW6y)Pp5- zBg8=$giFq1o=!UqZ8P~eCVDBL>kfEZ9uot1O%BR!*Ca7?aM5mZDZ^rbZ>Vq?fL;-M z0H$UT1yr@$ev=0nM%#TRaVq zIb!&lZU^hD{}mv4Z~-+~B*{P|obLP4s^l>Ye&+t(g*9?{zT~q+Ygi797NmXgDQ@9W zDEuZ{O%rD+@C>K3;8k%&N~MR!93S_3^& z==%575Z5Y-6b>F<@Y{9gnrH92=utizKn?_)d2iXWougp*O`xpmVOl869dV zG$eB?K>s#`170?t(2`!lOFDxZL;ox|t$H?v9wKD`_420*le9tuN4F7;=zO)6HDm3q21t!=yC|r;&TbSqMLM4RJpSS{XtzS>SrzV9F`=p#6VsDmZW+cdX~*O zYQ%O!mr^pIu+?KWxWJA}sF`2=u;V(*UU>b0kNNvMm3T(&$)5t#FwjgYgBSfDKB^FS z?-8->y8BLNM%~0nW+sZ2m37&tYfZAE^}~2Nq$E5LfvkA+iZ~`wpua^pEZ&Py$wQm~ zZ_=;V6ZE>**bCTin6n9~{f=}po6fFdT~of4i(>B35AI{)NZlS&W8;o%#P61&p`rHn z_Ft~>KC6D6z9DN75;I<`#dB<6ska>9d0qD0_5`mnI(0o4oZnI_95~=`k=!i41{VMP zwypPhIrC9bwdia3)!vEsZy9SDC$nniYO0ccZc!lfZT9$fc|Tt}mc2 zx0s+K{WYm=o62gR^)u+*4dT2dk1)@aFJS7iH`u#5_Td?ir+W7twPe&7OSR&-LCK1y zq;Z%X0_qW*|7geYfC7CV0SuQ643i{wl&#*Cxq>W_F9J`nFJ4cQdtTT;>X=vl`Oauk z!c1wgoFMC%P4G1aCqBr=d$hEU-P^eJS9(SuV{ewV7X=L2D&mi3-I0f_)~+wg_F%xH z6iGZ{y`>DQJDZ`jVPGlFPu+gjydCS;kV1}q`?ldY3I0L&%~C87;)k!zT=Wc{KTIff zY$ki7|MN}G5&^nny#tigV!jLkDtXsrH0@Lt+8HKFfPz^aG~;3wOHkerO9Z$JvP5M}aJqokAn)}rFm#aV4jwj*m>l4LY~gcGw)p@^|({-~TGmc|3EI`XHf$iX!6rMRKJwda$@I*4`#C z>MgFapu=3RlNazd2`cGq{Iwh3CX?b#79OT^A`VJI8?u!Av!QYH;X;g?nuI_88c>A~ z;hsct9Iw!Ey3T|UvMQzwxm$gAyuz~77x}pH$D&IO?frEbv-}_*vi$x{?(2q`q%uN% zn`*yAKdsv4bCLNz=;akZpH#nVNi`IiDxRHpbL|#j^EvU@>wi81nUOpfu&*pAZr_*Oq7Ce*Et{^$iP@37pd|B|QDHL&uZr;{vm(fKEE% zV7sMc1NQ%>k`@(E{6F{W!v+|`yAE*{2CvNp`1+fC_>5D%NB|mR2J5LUv{|$KQw!eQ8uM%Sg!YHXIrx1lg?B+XLA2?(K7u1xfj*m z?#hrR`L;u*rH?*8=La>??mAP$&IIyaKqF)#51IeZ#}s;p?yDXNVO^cgG$Z*{6T>CR zo0mVxY(E_g5`|p-`G-P101_`WbgzVbvcErmlNf(*#YU$}BYqO6WYpU&@9FiXMjFE3 zue3*4@tA+Z{qmm=A!7VEa2=?HAE;eO3dLg2Cwxds$z}BpT8i2S;Myat&~+iv zcg?3-o2?+qWam>7^})O5XuDT+Igf@CRaC^G$gUY&a8XWEYBW95M9i!5e!R`alRI_h zyDt6xNRW0CdP>nQRBKaTkOGT30Vj*a``U3>ly+uVeGUsSlp_9&fh6fDO-iD(I&%BZ z-8Wr{5zgjlwUpewc5JYV#3oi2ZAn&zxl>=B~$GN))__f#qCRg_L3 z+ShMqZj&E0O+(loJM;<@j=nT?f)6HtNpyefaV;tLHAdf$dzT|A3vkM)X)=B_eBUAw z4oB9sc|fS5aqG=eBxi_Ry6IS2=ADV1tKDyq8L@uuC?Ml)FzCKok)|efSjmnO;Mv*Aew`G3 z$WH|SBa67PZmaF*Cp^7ZV6Iz}>wZy52|yd_LEWSR*VllM;t~fOvQpD~bc#w!n)Pi3 zIrZ!#v0N5wA!jEq6wC7q3cAeLtH+USboerAooXz1ZtqFP*3f7>@QMh#lVqWGQ`yrb zx0eR^zP^d)iRmomx(gJ$JgXb*AlM=Pnr z9S>}#`*`<6B2$Np3qI*C-kLOHt*yFFO42&fKVAAf&@|iPIrI}XIg;y@m5hwTaj}jH z7J6b(wInIp3@y?fia9j1M_Hs#oNvRs>6zgvfX{k14Fi2V-hx}n_9^#dDcF1l)#iaWNoRSDKbNEqyE`-I^#Z3!skKGaWz8cI+~v zy2aZHDT(EL8l_50S@A>$S&0=@>@1_7&tLzEG@oOJ#M{27n}BkGLavmz&a;Nk$YmeH z7uGEte9^W^8<#-&=oXU{OEx=aRa@))95kKsx^$@q1)%o`Uon3{0E54a)k;9&8WEd^ z)3-e<<2oR7cR~c{XoQOQ1iZSVh@+O$ylU9yoV((FVgJeX-OhF@lr<3 z#>ZuxO>6h2f^JVTX=IdtFtcPQ&}Jo7RiD!D>gozW7p;GBN=cbpzdo!9%IHi?8WGcl zH$mN&9SSJQapl@kl$Vw}SfIBAg}RlaM~f|0v&%CSBBLTSozM8=eVZ0@hu$xqj^!5? z?7nvtgK2NS11QKls7^{jM(SdQ8=H2aAqhx zwHyYYj23%u!E=cJXhKDSAIExq?BaN%ZTqn3iYQzLDH$2e zd}PpW#9d!#e!1hd=}=m#Sp_0oaHsvLs(R=VOV8uuIoq~S);)%yp`<(HF9mYu^hZZTKELb}>(*-Vu`gnW zGhbwT=UF&mEd=S_ao;Kr)bqJIolwsy=>7}_8_wJJ1ja>u@MS)rc)EyRqPh_!I2r#g zK2%LA-(dx*hsKkJfnheL4a zMG3c$36~6vwA??IUq=ak4N%IK==gR!KCgMbU+~vq=dNwNaBq9wZIzKR1;G}>%QGB$ zwHF>U#&&l^hI)+2qh@s@>8)2igs#gcqtBiMZuemmUqfGVz3Az4J-4Lm zvl@{p8hl?mj!m^Nd5i6Yu9pB50wem%DwO{e-uq0Q){dRUja4$X-9^sU>^b|mk=3nN zNc%mijScgO216*E-7j77iI2;5lY9{cEp4@k3!zbx;q^D}{rT(2gq8f`pV^$4Goe;={D>i*!_- zjA1tw|M1Afr8mcnZU_C%Kd$z3;3Y{@(m-_sPCoE09;Y7PuFhG8lJjJRnR136Rjsk7 zH}Es=CstPvBy)BIAZUL%ktD+4P1Ujc8VL7M#ikMIdifFA8^Whc0q+K$+D_Z~mi26n zWV5lc>Weg5&$7S#{@$(&!!*VIF4^k4mQbT=vL)e=gEvx+ef!N%Y zFxVc=bzE{2buq&MF8URU7VXIF}1uIohOWoQpz|B{Y#+5e<1;0_%x@1ysz`b!T6+1dj`hwA*8Cot#jt|h2>#~_;oV+1C(EzVzbbPMpnFxJ;eJ4lb zMj$l_5x{zsdnZmZCOmhDcPP|rzOF~T#s*l zZ(&Io@&Y-@yeX?vIY(Lq-ubaZFii#$*=iS+4F^Y!!viz_VsmrOX0ia(vNK#+_4@Hq z``H+RU&x;An$i&()7~`bR|s~*7BELe-b<#2vqr+Ucx1-nWKyeT;iXhDK?T4k;~i{~ZnSz?aXxaRRp_#Zdo-qe)O8K2R*W00ME05F+xJ zkZ6ld_*ciLQ(IpfHq(jOOx|qWk1-&XmC6i$y^x<%k56jS+m3n~y@`0Yu!q-UXe@D^VBg6K2b^J@2b=DyjJ7r%#+RYzBC33-7*WdQp$Ajv*d$wXKC2 z9^@ew_Vwkol?^LKtuQ^Gry(1MMu@)vQl~e)A%N^)zhOM{~@k4%rZND(OTay-;$4hx%DZRwbbMd00D zQUEg%Jb&v?{hQEJD68^RLrfk@EWbt~sYCM+dya=GnC&Zh9!IZ^i-(sErX-gTNKa?3 z?adzkcKg)!TBDdJCNSZNw#)U^`BJ0p5{|kqEvK3&Pfl6e&m91_+Lm-6Z}@&+?IDlB z8ueUqp3kPo_`$vh>1W=j-RQIAImYL9x~VL z*1HVHOdCeHq^v?|_`=v2#|hWG*6x~oz1HE0V1xTK{Cv2#Sv5N8v67I#^+i#oZtkk` zbS5o&Dnhe>oR@)~s7~mBiSK%duJ}lU?0DE87f}m>FrOJ|fWpIJN2E881c?g$^W;-K zMy07c98NstBd4?X->Jw8Zy^wsRQU1NYF&1=8P64$wbH%NM-OsYeMh^ZsZ-8tbz)YJ zNE&aw(iK{M^y{eqNfyydvntb}*29m;p63SFWog4*>BxT-WE6d`5Iw6u>&m0QwjE5iZ4G5?kAC*Z zLhy84rJ#$&Z8!t@Nu$)e?;bs=t{($VX7baSber*yMQrvO&T4el(7QM-;@j$__^SUWY_X67hv8r8Zh0g>+*_e^=_J?n$*5%DM*ZiUw}TlAM@ zp*ynW{!QczGeYk;7!%^&0=UKu&ktzu$L@K8*LzhDem$xtF((< z?rWd9*lD}p0umrMTAWr0`934cNDeH^e+`>=UI(7Ke)lB*;xof1;A(17TnZL+o-mem zT;uew3UPZ@WAcTJ)xOb^n8<=RAM@bgQW_2J8j{|8Zifx92|x^!Fi!K}q@w>2--e|ULCFJ@`Y$5#-bbm}rQ@X2}# z{}3L7Jh#Tiil<@z8Rz$s;~N`M$5w$^2}g}nMX7+>HJlU0RHt5%-pXNVsm!>02b#gf z`D0;G*-}%T{8VO8SXed0%iEtrP*s=-_@LkhzhQ*=Y{W#$Fv>vhx5fE0(M+1fo&g|Z z(+pt~wC4P3+$?@$r_68ekMGPWnqxplSz?g&iKn#iTyg}c=yeJAbnuLv+d#_E-+Gva zBonJmSlow-u%ctXCS`oDPc+cceU@;FoWop5lI@TPaS%A6^zQkDk|XavWv3&S>I=Ck z*mEB%wA8Tq3-gy|%J1L9*_v$BU03=AqPF*f%5|DP28lqT(F7X1<+7T#?Locr>*x@% zk0=zF%N3zPU00;ud#(S@<~@$msvd?aTj7gj6atnPiKrM(gJpHE;=h(jEmo^cPgCV6 zBqi(cKrix7Pjldvz0!!?M3v4Hz8j1Y_~L_E71+m-mnO-L(f`wIA0`{_y#T$`zx>&M zc^eDRGqL||UKGQA>xqcH(of;+W&?sSNc(D%DPw&9I(#C{MyQ1%ln9(?y1M?lIL$r3 zf-$nO^amP5rswraHdcG{2 zNl_P+SZz*u(p18dPeWAKh?%W#Zn=VA&cB=|f4fkg<0HIKn2S=Iqx-%X692I! zN&AW(y;M5b2?NH^U*|n-C)+>Wwbjol=JTrlw^728RKny6k-CqPGLN+jmZ4ph0!A{M zA|eba=iXbAIPs?;6cWQqrMP=3}91Y zQ2y~I)Zu4O_4ag@<=<~dU4Tkn2-9~H{4ILT^6cz6UANo+yVuw_l>aa+ZTP17FG2yx zyT2{dzxW~;@p%rNX*qwB6ySznvGLswqQp~=o_B1A6LvIg2 z(cdwr9&S8_BZYc0?2Bi2%G~dUyJF>#^+nFT0+1daIC!I*T5sxaH&FJS%&%2d4`LW= zy@X7;ALD`xLr$#AQC4j3uMot!i0zusVt`xKs`<6Jj@m9ovW$D~Q7&N!vvrMUjS=_* z++J=v?BV7kFsrD#CNSFE-=vv6XzFBlvp)vk(3ejqufK%SrcX3$)@@KU`@pW_D(3wy z*~JCHk!RTh-yn;ABP$2Jyk0zITI*Oii+(95&ka*7CWtBtAj})M~-pL4I#Hf&CnO2SsZ+K7`yPii2 z6S*`kNxYfa{&I#|V%?&a?q?h}_O%Y_6clPMo90^)o#h{0p-gW+@avSDi;*rik74yq zJ^koQsvBylYj++C_BSh^1>w(ykQypr8LWLk9@el|eY$ueSn)derSy^4UF3dic2}|N zoCE^ez5R8D$B(8$98j&-qCw+j@e2s2&R^46 zh@urmr53x_A9vkUwsr#Dj*&mtJ8gdOt}1cx`01>gex#F8mHZ zOmM32V+C^fz(PGLy5Aqa<8cEs@d4#uY8dKLoalTs-KTWPQb%+V|=@EJ)^c`B1_d^F?@INQ7cYP zjP#-}r&<)nv{;#y863UL^6>@Ux*Nr#k^8BMHwZ>f%E78tQSi>CuPYMYjKGtHU_JSj zVq9v5hw|N|Tp>$_jioR(e35)Ni$ReAj_C`~ta2olxbai)C!?uSK3DjK$YgMlw$pfg zGKUJe-}3z9vcensIr5oursgYKlT5=;|Oo@81pdV}Nh?R7Wwc>`^DU+)+>Sxa<7~EHgQ(YV$Q{aJt zD?R%_7FJ=ZwNks}1^a#MCsob^9t~oJO3H$7OpP+-_MTvky@v@I)(~T_PfG*w@fRy2 z_nXo>Z4f`gDjJJ78wU@Z4qp&&WRgy2cm;aZ1`%hR8#3+P_A8XK z3u7lgE3b=_N0GwvYNW&!JwjA4u!EekkK0#D42?uEAt5KDu4uYQ`6#n8Woikt;h4n| z0LdJ^H98J#`1SpSkBiynB6}jM+padz#+=Vr5(I<3zVhVlo1!?pnsyXf`^Y?UR zxL7XEoxPRlP`d!Qx69-4yP=5b@Y)3*(ytS*K9)6_@sS-{EM4bXa6QJBKO<|H6=rAeDU#jPV zN#rL8-0R#}o({727W;A4ZA`!7%;_d;kc-Zpxb%Y`qbt}Y}s8i)Y=P9`D zQtBjqX$$3EZ>#A-7DFx)U!c55#oc|NX0|uO>$_z;2|sVbiU)OidD@DHQR6DQhWLt; z@cxlg4-(P(%~c7I$B}TbAaDKDhZUVqNMQe!Mdg6|7s|dGZxc~NB?Y*#>Z!;0|rnuMdfOV zJK|Ga3Nj~N?jb*ow&z_%VOTKS`;$6c6D38c=uBP7PamgeoNFzk4c9Mk{lwd=UY#MN z3!OKsOb3n|#BaaghjB%4bcJ`kBdEDu_PE@jrtxc7MLQ}foYG`)K0YtkQff1488HpV z=X#qGN08}_-Bwesv%$zbO>QN$?^S9#}Xb0cXdhag&b-t-rg z%M05ERQuJR^_EWBE02w$5+)nNvIa%zYD%%Mr6QOGf5yixJZ7^>qA1WzF*Yoob@#p> zmXQRmds}I3x%s7fZ;GAU7R5_$NJ8&a!?rngaUf!^&ufysi1lsZ*sb0A@O|T@y|QVn z5;{{o6cxqJyil@x)cwRwk-X5C;KfRpx5Le-pL_y)-i%_Mh8w4qxa>YQ#?#|ja(fj7 zV*;!fYLo^l?kQFG{VY1uOeRoDwQ^P$<8@#2OUz45QZNdZF99!5e|PM<3J*8lAYfW! zx_PRsDfv5#_FO}WhLaD?eX=RLsbNQ}llutoNuUF8Nu-C3O(29{HB9(vsb&_jXB4Nx zITEJC7hLUt1y~9o6Z7_`UJ!!6^odieh8Wcq3yMm8z`kf;kWlF7PIh z_5R7E>WBYyJJ!4m!Lg_KrZPB;dfaF}mFu!of+pw-9e&uh8AW8lZNLhb$}9T4Ta+;n zPrG?;oK*d#>0oZrZFEkalppJ(Tw*7|hI*|s7~)8izPlv(6Z2Km+n;hQYd0IFUXRcj z_l-U972-e1Bs`MgN2+@(Se? z7Jn)~xAsfGnadKGkHjR^+J3Cf#&n0MoY*-15;xttKfdFLW-S^2qe!v)1xMZp?PznR zeR22B%Vk>H*aE1>VUUYJ3YTlGMSSba%e?|(j-EQZrk)r~7K!>EXGimkgoOROtIkCD zG65ub0&D*RiSUu^&M|``qu@3MQU}$XNX@`cCn_=wi^(AkL7phZZEB)kmLD0;Jj4^} zaAVdd-q^#*5;us%sx@(qX_IhN0d-2TXn*;PtPd!d#D zHv2rosXuY3Aj5>)CY!q~?V7h0D%5t{SZ~(j{%v=PRj|@t-3+rQ>Iz>P!ZN+b<);Q1 zOjI$Wvoz z@|^BwI)u_@anS^O4q?cU#!b;rP_xrhW-w zT?&g-Ot~Ot#~r}1&l=XGXCHm7Rn2Q+#j0NaJZ5R(ZAoeW^VHBL|C8ymBi?92{c zHr*K&BR%sC6F}`R?|_697awjc z*^?M<25c>o03BchVY~mDr4>U_iZN;D)Yb4E2MxZ6CFaLZOYt zy!UJZa@|w$r_I6yD9vIuJE7U98$!V@nH=%jFG8k8*O?$^UY!=H4cq-&l!<(3!8-g1 zUe#ZcC9#jDT^z2AU!?=rIyqK6HkNC}yyn!4@|S^AT#qPWpNq?ioVUOFE6JJlV@xjK zu+TJi)6dW!j^+2y^FJ ztq@t{TvLW+#mfmQ-aR;FQ$Dg#(l)#0N@djD+)r+$;CkkZpjY79t&B&S-;y)U=AarL z@88;BA4%9*e9qsM-Tiuv{K)&|Y%444$~)6MaYfyP_c%AO#6N#usoqm!Sq%krz-h-oM|S3KPjCGfMw!5BxD0bwu}l9w8kXfv$A?RIyt;}7OvvwNU7Tc+D?9Fa~P|Z8#jAy+#Q%pj!N5Z2&bLo$%Uzj{Fc(tQ1qm@bcaUgkwY{%x0f$z zw9#Kfjpl>yDjG2b)JOPMtotNS(jmXC`M3Ekmf@uteNyn|!+8z;mhv3K%KOC!j}OM( zp`$t8>XF_h@@^|8y@TSOtP+fN^qx$g_Xy0NBteK$5r*Jj36K38~?ut*Kh z$cktubk`(Lo&y;Byd}{J5z`a@W<<9+j(`qe_tWgON>cf>{eBmTRW^S^?sS@maK$5F z^!1c;2_5un4z@;iKL4}bk1m^g4@&N{MH zFr!#Yvgp=>cAFR*Z?BP2;u0^M75iKagWA$qV6%t_Wi+Q`Tr5-L+@^9q0U8e zTn`Og23*L?6sEmp_p@BtCqk>?7K22x@02xOJ&v7 zVPyPRn@i_h>+-u}dMHHI5%-DPjsuv!BEhrLfs(s@JG4&x6O`ik6vrEN+tFc!badc! zz0tc$!6p>b)!H01s@(bH82s{ffj~^pv)+tc8{Xn&uY$wx63Dw!B~{vv@l7Aqmd+P% z8MQw7j%!dpA(xF~u8xpv)^IyHJm3T(cM?V{`u5l{iv&r|F*kxft-Si>Pf?7gXC?@S zO<;b=k`=;|R8Xjs>1aOXAUTsuG{ImfUtIZ~|7EQ#fuU+*%{p$`^G#1jBXz3HYfs+d zQE<)v5!XPv`_OA*=5=8e&`Ulm^)!_*$~g22MmFVHIcJYJKk(o%ZZ_|IOR=TwxXR7- z$2qqeg`Lw3{8u^6N5X#i1_lc=k1MtAbAI;?)mnV7x0=F$osv#q@=G8|p^MIEVBfVc zJ;q*G71pfSaK4?=Yybk3MO`%Ap&0`NLxH<;3$nJf+^`lt=P}-(mkm&DEbJd&TIEug zZ^NVxAxUJcE?1)o32uOeEPCwpXWtmDqg1o4up>Q1MTse?=1*R}Zv-KKi`t(pi|tG} zEpgCRW&Rdb>IDw!OELInEpv2+Q5g`$Usz|IF@?3haj#00`%c!=wD!{#V(!aCqujn| z6R&PsqQC>Elj=oAqbX$Ws8ARVS}xi6I_UTQdSMIU0(-@JNwN1`GTJIU72fG78Dzgu z=^Vndd_{!KfBH$2@d68S`qNfYt`4?ckf7LxDTbrkeL;J*4-WBJ`0;lsf%m7 z)Zgnw33*hqN~3Zjo4#?cw>T9dqCU-G*XBR%3-|iLC|6zlbk$Z_M2Zs1CRbTcp{sJH zz?JZ0Aps|_C1d<6UJ|hT9M=dBv&~JI(a{ky-Ny1K$ z+>i2#Be7SN#%xd8{A$HaE$X49el~Hu4|Nef*4<60@pq6m) zW2*!OiT=y@#7#E-^xQVV${`iyc6z!``$yAyo>V-QBy2_(*|vu>BCwyU$*3d zee_&Uqa#*);^^z4xrlZ+7P|q7$qLESmW}`x%ZD<`K)O4)l1N*II6t;`Ey->w!^y=iD1j|%lxbSv z22u`_YoB+L3-FqU(0o76f_VUMe)nRG!Y9DXT~38+6(dNe10vdLcW|&w4UrzWt=zgh zZaM){M`lfGc2eCeFO0uc4)bZh(7@V=Fge#!xQZkUF4l9SB@wEgwbE4x$uj4DU{LVG z;mXZay>00QV;F2C8tydK%qeIkCYQ<$vJkmtdtT0Ye-KIS2!lp|hKiCcx^n4Hpg=yH z4TN;hOde7QPt;6KJP5K%6MCAXacF#e4_E|q4@TVwXphjpdqeH0-@d-NN4zK+ABz6&I5xIrNb{DgDK<~zYq zUFHR|!~kl@*7Vm>i$-Vn$MOa@)(;a z$Ma5Y>&wqs>F^O#!_8=s(xyhwsUiCN#vm=F_bb+Hl?H)cCpQ>4Ysl}8iIN~JQ*!T! zLIy`TiR>Wh#A0&B*s{yOx3oa%w2y9d;OjQ|mv2fo4Y*Bn35>{5d~!uJgc!ve^UgI! z+Y=1w=@BH=n58+H3tKWi=`W;3Zr@y1j(QSi8LQ)&Uk2_R=@w*Q@G`J}lsBY5aF{4c z?qRRHvXSU`iAHOMPPH_(_&x72kvN(Z->%NU%e#jvTl6Ht!sz-Q$%s4Vqe1smlkM=7&mak?8`Ax3$NLXqFSuH~-rPDJwTj%gX1*5INJ7T+d_k0_%RKa;;Ngf_NgZJ+a5hRZ6?^@NF_{E!mwHYl>GiH?0Z6) zhOLP8Ce6z^#Vg`!0{!E+TQBL*7A+nIbxxnUd)b&iEd_YjsyTY+ayxiFalixQp`eS^ z@6Euqlx;urM#sHj`e54Fkb@obIM3!)?;)_s)u}pqJ-&}o$(|$xs>TH&-;?cy zzj+~CM-F&)?B@_5Y-J)UtSA6(yl16^bz8k}NB%M5hzDsdvrIteyTw0~n1BP>cFo91 zk*I_DQ|JYSU6e+7$>;4pFHf4Qj#e0^5y$CpDe92vPBdDT4?l(zlZFRHOcfZ{J8gBw zp(?9`{WIlcln1^XU4?ON&km)88ouvv5Yv|BUW4LChc)w66m)L*L2BQ9rj!YS(Tk8B zW<$-2P1sgx)0{Ws*`?tvDf{Vf7}9$YQ;@4n8>plll0+5@$%K0cQiIPVD7g1sc1=5D zfT<&V*F)>ViL_QnuH1S?M;mJ$8EGfpxD%4h5X-9QC= z-7W0~viKg#spy2Q>uEE+m}v0>?mfTKPve~q>8{Le1g7pP_|z#yJU_oh7il!)m-u>H zOHP?uPTw&R6~XIvfQw1$?%vIWB;H*)j1n~CT-_x<{7@>MZ$q&6l+ZH)oG1(r!(q5= zEZLRVYVIg^yW!{-3DR=nI3YAl_&Js5ag1`Q`*S#frDm;DDLia7NOf+A{wx_k3SE7L zexZg8`?|OPMaqvm=z14mj3}ww15nKaSHs z+!3Bu_&5O7c1v6JybM*#J$D%0AE6LuLzJp;-}}a7ByaH^Kh@xJDcg!L?Zqs&5h$VQ>unmWB53;L0LxOA~M$=UR%_1z**Jwys5+3Tmbx3_*R;Yz?xoXY!^H}(qC@u&!w zhrb31qolM{yWW}g0#z<* z3%HoBB~J{NUAoxrMoPM}1R+KsQNUejB3ZrGQZdOyB_%neqK)PKoSr8}G$v^vf?L1) z2srSks9(q)7H&?sUtoK(U$64nM{nQFav|61FNGIgC5{#gucJQX=|<<&A@TBg-Mo6} z&ERJZcC92Ia))I4fHZ>eGaU+2s~fixn>o`2BCDMBl_kg#4Yd7H29kj^efCfg{2~g7YFI`#lDmvly;i!@4pfF_uC9L(Ulb zzhpg!0qMmTb-`jo7WFv?HP(b;mm>A+N;7zm&VfSLlN;jsJgxE(QlUD8^B+5*eXNL^T0QbeF=vSDjXMz6 z?4~$QYE?K~y>1QjMq!hiJa6(hiJh{%ryO9+eSgi>Ot$?@JuBS6rwi-pdNU%@mts6j ztX}}Bm#W*`^r_dxJoo1cw!7393#4Pla$sE^Xh2td@mfoKiQCnK{+q;zldOoiA#2TA zT%rCeXi;MyhrFry!`v-EmxZ6stt!NTtey|Cj_3WB@>_Q!T~Y09OvWH5Su@p@vAy4|ne{)OlCGuHKf@hD*+s^BcvWM9j3Eq);5%P7k>V znwM-t9&bs9oZQ+0PW3ef)Rmr(-@FUt?&~{AY4gZcT)xz7lSc-WZumK!qRvef*7g9g zC~ZCWMP-a~C_mT21}|f{Li2C~*OE{X z|76sB$xCq*DMWs<;m1N2Z-(c{ko8hmlttN22-sS`d2RT&rz_}4V!Bzm^jS`iuCC4K z47K@{B-8N@LXeqkS~?`&q8B5(U`mOT1Ih>(^K+ zUbQbeq?-7*0c&iz8TVot`wDyWzT7Q`6hCfP<6HH<8iNH+-%i=xky>1Io!nHr1LZ{l z<+&S=*_rJWwVn-@?NPtR(u4% z{UoXdu0EPsOSrCokX=x;aS9$e zq+s{S*P{|0JOj!Y|5drcIAhUl+YCS5-6d^-{1@}*=2{{J^PN-z95mF|(X$6j^`HDu z2Zx72&it+v6?^`j?2nQZD0D4ncobwH%%h42BhvI!)(;i2a+A9o``g3aOm9Y1TndX^ zKw>%}n;!y(khk%z;>ibP43K+Y3ZD^jQKq{@6jUoOm(MlW=nR+QZih1cWG){8TQ$y< z#q%a{kgqlN&*yG7g6+~CTN%$I<6 zr6#9=QR(TER*UhyH4$Q6;|9L_u&+m_At8*$85paM5NPhy;@WWVx`|cmdS2M!r|QrZ zG#ZrG6$qin&BN}Otof`4(cp!%jqCLWdQinv0nR%NM_p84N8(za62HtkZ9AUFa;fZf zg+>?4)Fg$gV%U0!SEwv_f!oErnm9V(Vn>-|X4P)Cx>jD{;Su3>K{dtKdjAf;fGd?- zp|5Z=$Fmd_v2%H}(yBN*+8A4(p|5b9r!*|tLG4Y#fJ>3ab>LoIb3Plf>>%6zGT)Q+ zeIx9N6A*e@kK`3E8J}UgCuY0OdE$N&oTQ<6;AuweI(>1t6n{cX)2?ga9NRIL$+}HW8xQlA;k|iJS^YUjHhO+&?rwS#q>LBhm%&)Ni*ozp9+=xKoRh@?Oc;I|J*Zz z?^fMVKSr=Af7u(Ux$6$W%3a6Rb<%okD+2n&wWN3vydbY}x3vSp=lX&%v`t^$*~?(M zirsKhjq#C$lh~oO)kEEo%cQNj&g?gr(>H()XO34HP>)R|UuFZ&#VTc42CaC|_-YEALOX9|xlo zmU=$lkJ-g8>oHNA&bWwf9$+}x+V-QY6iJhBrCzA4`&W&;civFJt*CpLYRkVQ#+=R5 zI@>4S98hUt9yIBtpxE6s*!-+!oc6;W(cyf&C=xv?0|Jp_RAs@glR=u(wCU9r<$|5c zjz_1aYGo~7U5NvaMcb+Z=tZmsOvigFF>dqvP2|Zn`N+V+PLvX_1amk0lL^!$7)m)) zbuV#5*3vfb&&UUyn>x0`1uoEeF|A^gHw8rdlQjm#+uvslLtir{vo5Kxo$mwr@2edM zWz5hvT7d?bL+R;tH)5c~)FEz3!6U>5<{yaF(N?fkBZti6@NMg1R>dpsqxYXxT9t>I ztcq_hbQGn!3id#;p$V;dujUPhQt_P*&-h0147bUhHf$aC^@kg#?{_G}vR{YB!+)dA z%Z&3WpbW<`iMWl{3O6UVypKM*j*4U*-ezQX8c=I$h+Jk~qqd8Lii`ZnZwT;az zp(lwKt3G=6kVl?q)imxK+0n)p6UMhqG7)@QZuxL**mhluuOcJc!mvGT*`V~=@r-Yv zR;MTEiTZONdhNCkTQ4ct3S)YQz^>qWr>3c#$jY%~@p=Hymp!(BHNv9ck~L#MO3p-y zPSpR0(xgOH>5IUt9lH~ZnhE6^3V97I6Z?Gv?(h$7CHqh#5_LMR4@{J=j+IpM+D+`s z3BlE|Tn}##28?XabHf@sc;i*5hev)=rx+J4mI!VUb19GXDr0fXZ_p<{RW#4)vQ`+m zM4EE$CEUCTOnz@DDlT-C?pWXuX+Eejb6$3Bq?tWm;UXx#N#=I$ux$ZDVIS|f!2aeP znZ|qNLDyM}sxejOHdSD=_IXplc4c`dgWuS>PkcMu4yOKvQToGvpS=4$CfiP9 z$xvWj{k6}HQn-Tcw&<!e?wi1)#xvgcQSJk@dnm(kpENXf(u~rkOCmTP z7d(ud`LD9#5eWw! zjcv9~xw)qe1-74$@VyzFBqj0f0vJ|}s1jaCtts`y>}(V9uqp;-Byw+>J1tz@f_JAh z3K-lvLoy>R(j4}4G_mK#9<`?rlw!HsIcQAGM^wVEk*YFXEhSkbJ4Dfei;4ryOwTpF zzeVdo8_J_co}!WXPkr-vdz15ci=(gZ1@S;IFxY}F8FQ(_m*>LI^ziaQF+q88lu~f{ zX8rpoV!;ZlJ7hh5U)GU62NJA=c7J!tSTSPLdq|~{bHNNm2$tU%o%|r58kpAhf5= zGL?+MeT+_D9cwIzNiz0%?vA2;o7>8-kA7`fPWE_MyIpkVda;E&_7`Y_iL{U}tA*I} zi&#ID-HMXMw+`dC{Q8wH%GZ$0QIalf7nu+#u2CDvyHoW6&m_@8LmV%S*DQDZQ#GS> zl@9Mixe{?2JMU~nvw`!|99=_$W}Sjr-E5RyJNu9Q2B#h5>$hbV%uKko8}SN4!^wjZ zdS>m}f#@%fCwMX_Uz)U94SsIWY57hDf@l%Kx02W5bg6q-vs~_QkPO;?iSts`t_|A= zJ;CaN%1XCUYn+;M_YZprKAa)B!Ein&^W)$#Le8!9Vp;>p~vO`-+u z#y@PzEmuC5%B$KCPvE`bT-MseW1w|3sxCfahS*SEylO&(JnuVK|Iue4yJNTNzAtYa z{zIP~@#Sm-GUz)8VwD|7@CiOgI*VxmhreMsM$ylAY%WJFyiA_&U}?P_clF5pFq;UTbya=sTOH1Q z2fMh~1}|(R@w?apXN*B8)Rey?P}mw+BIw!JMO0xDZb+b>0{%?J=pzNg&Voz?@<2L4;h=pfAbW>dz<_}y!)SCR{$^le*vs(o|^O- zt}z@)KBwcw7B?q@IGLnBru7I6elO-6@d9#Ql&_u%SWP&V!vAQ?e3m-!gze+cIQoBiDqH^JLahZfG_=ATOY$E~I`#q>0PjUS0~)NG zPlMey!DN+j;z(L=1a52^aH}yW&-ed;`0H0VgD`ASG@ti6+80cSy55`t9pLQp(quk| z6d?`f@61Hv3*b>q-dI5e%9koCDGB^*C*%5HR?b$t)!k+6oRa)^czkHE0NmygN>`y) zV(gA(bpnMtC{fQXw~ zj|&pMfwe!F0q&C%-M8zFqkRd3sQz7F>}D!F`Hxlij|U`QTXL8 z|DZtOc1#j~L&ZuT?+qw--3n7XMa7s6JUPEVP_Ykawjw6YTrrYHsF0A*oRYWIuYO*L|a-dX4sbZ!UJEDc`WMbu<)DA^qN+ga9Cu08wUn7y!*I2Dg_< zZ;Xo-B_i;!_Sb1q{^&dLOj4SW3VKk!q+COUHJ;x`{!0pZX8?rw|KnrA zr7L#8904^56c9pRMC|_qmoI$A5Ln=8FSp}@f0L4b5$C&a&&v3KrTBLV`d6F3E{6+hBos_nM)C>)?z_bULKXUCNKRDhJ%HAmW*>jYG~Z3|0PH~NHnYw z|3u#!pqOb>UHuy0g?cY+D9CF3OOS|3SAF?o5xwo6)nVO22w0p z0<+$-HFWfwKS$02TkQ=KmfyPyPr(6Npphx>?I-e8 z+lG#OCS|BU5a8nqbScIrh9L(`4q6_KmgLx23=&*s(mx0V^;rjYv_%$v%7w4CTG3VU z7|#}qo`1Ffr{yCY0FcZFC@4IsOszUgTwL6kJ3^&=L;{wN-62>=D(K)pNpP(FSw!P} zJ0xU?N>BH6`J4}_UiEo6hEkd!?Cs~zvn9Qd~w;hs%s z{I6*XlW?}1H3M1!gr;6&8qe$g(-->XE96o+Rf0dsM0f+91-{7UfmR?H`uzM{`QrBS z2!Hq}_fHjyj0%_`-XHS6hEuFwxT^F6rDMaDp+m%em*LL_9H5;yB$;59v1#a-%3EUv z{-mjQ*)PmU#q=u_cC4}gAxOlY1xZWe)E~m(1q2^Jsg5Ge5yDH*pJg%x?Y3nc7W))( z_R}FG{t(Y3sJhSVRU%XXu4bZDMunQB0_u|{tqci4M+i7+mp$w zK=j>}wx^JIdVD&k^Zx>B6Oy5T(AF0I&#eIfJee%8Hn|`i(4P-ID;Oq#88$aD{}{!@ju$4fQ5qR;eq~>j{t^^rUI}$;Tm@PKiWvKgOOam zVg?Ii!ZUc>9XTA#=-8ii3uc^jW9#nD*BtB_r+%_1m_3M3XsY4L*tnx_M@&VrwcV&~RIs#(DrqJ!;> zBh%AbQ}%TNCwo~Yvp-b#eo{$~FG0&0H+NKO7wDN)n&;IO`RZPip( zW;fp*^Yw-7H@>~x6Nu!=7sTD(-cENqZivykyE@A7S_=RI;9llB2uO<>w_7uBjK*OG zFNAJL&f?zcW;mTxjpkmStOS$ho@41HxYx1elf@LyZ%IkLuU{oo6Iu5hX6R$Sdu&<< zTFW0;A6g}JicIcW8lPg%K?jc7EZRqAHK#_SYfIN&I@cQB?wfD4`m=WsgdWt-rS{zv z@4?tAC>D~F@PJ#vEYEyq>e_grwk^7Y`XYJGy)ZrsOu> z<9vL?jH=IZvQ1X9@t&@xN>Ip8MHP%vBGvlX{H0rs)hG{6AX2)~UdH#PX+Kli5bMqHl`n<2|a#o*D{5T6Ol8QmBIpjCG^k zw>Uh(P-`Y{J;$X-u{^3KQep{b8>G)q5%?ttR19i)9m>yy?Fu&KZ_m6!+B6iddS`Ar zpHlhH*{(?mht;M7nVqbDzL86CZ<>ftjjI>k~6gdqIaPl} z=9J(&p!#HWVuz4i`vq-bqfg-CQSJ&=Wa5k(3G&}2z*k$J?cuPesT6h-vXzRyKv&b+ z2BqEzpoYsfpg`df5QfugEK)h0t(zQ=1_lOKbZQxdMsEsdG9&%{q2SCt0FqxR)z(l~ zRv!HURIX;OKkZ1=bEU0VGqY5!DGzvc%qLdzp zmw|7Z!PheV57%bLR7EkyYsMM*WluZ~=a{$&A74j%oe;X|X;8>vJl^kgj0z=s!JRN$ zU2WQx`$N46$ITAmyOjS$>s2+-rpo-ZV5g4lvVZKX9(ys8DC3TYU6EvLf&Y`PWE0d4 zgaMiIx@rXK?GH}G=-X)3TNyTfB^tyinKEdSnVBT&Y1}?IxkxXczs5V$KM)nnHUtut zuDToq8Cnn4Y=RuazJ^y(MOo-MUX2Wm)5%WQv`}s<);g5vCEp5xwziJ(1hVZn#P=p| zKBQeNJL^1hWVp(8Bz4}i%@$Rykb26s9L!j@?P~uj8p&8E_8Rg4#RCC?ZJyGSq=~{& z%AJtPdGa0g_1-5FUXKXS5VP+2?ePM&G~_t_%J-Jtrjsis_p8j=gnAU7siA_)D!D4- z5tfYN@NL-%jFE=1MOcBgjw5he!}9!!ro+Uy?ma75?Qpw|~d6f&rN-L^s+#`(uQoFjfw9t98Ar$H%+#Z3LY2t9-pqcR^rF zwaC;QsJv`NdwaR@S&rYxT=$ar{0&n zsX%tX=kgJd&v;=8VQCa&rF8zecuUnLN@fQrmJ3(sLo#rr8cs8{0+s8e6_)eWdj&OS zX3u(vjd6WFl-Y8rvBp1YKche<0N70~4q(xH-W}E5?&K$l{w0Bv17?JhO4$6BU5e|I zIV!x;LH%zZ-wl4N8yotW7PHP<7!FqE*k- zx$7wrhb z`O#99@wpIXi1PV-wm({8GRHs)=$m<6y@x3f$282@3|FJ%jpe#nyOanwU$R)BHh$FU z&KeR$b|(K~L`jt&*~nls*KjP#*Dn#BieDZr_pSS+HO=}8Tr!E;b?l{T#bw}?oQ4}@f^^;q4SLDP9QM&5|CY(Wh#gj`f zw6U~z{&41`!TQFqFZ+RceuYaXRxGEv^SVYSrSIyw3&JCZbnEU&#*<-e6A{ZKw!l+Z zSES-7L5yo>8LOb)V_47@0ln*1K<;4qT;jIChGw7h;aPp#)&JApS4Tzpb^j_Bhzf!V z(g;I`w19w$G}1MsQbP?0L#L>SNDnYH15(n`F@#7CDJ?DCAPfvK#C>?b-#323x@+A( z?p^Dy_3{^Ro@eHq9cS;e&;INk%F4;QS2qk-o|qvLa{F!17d&DiJVT%z-_`@=+E?j6 zCboY2`P+VDGkQSd_msz=Q`y-i53VxfGM7kPv-Iy6Em`bs?{gS%uXh8Kkahzb&av>p_*R~owkf6sD1wHDt zyA!`}1*JUjQq{XPc%%y@ay^!{E&EGuLrdocY=$;R3Wc==x@Z%f_qQ;N-i&r#d4`AO zhc5cR3tDzN5@&Xg)g|?o3)?dcD1=9=nfsfD6KxNjX0yqi<}97UM1{ero^ZgW`*?bs z$B#4qtoK9;6qk{iV=ib%!$L)85)K^j9=yspZR7ySVu*cL=6!Sk)T)$A@poMOQ3-?G zSJM~=!-1A?T5vaG6C$zg9}Pqjhd9j~)6$Gc4U<*rofe>zhmhSwF18$KiY-NG^0njQ zV^gKc<$)X@!*Zq9A!6$lB_$M0Vr#&2D}#A;cH=<%?#VI(lu4*qS@TYeH&B00zqG>JPg_c!s;_DjFao*6M6CN<;U~v9KWf? zx?na1%cP|xy?4mmhK_Y=H?@syY{pU&_5DvOJqOB@Z2eJc*u+a)cafRu3m5WWrM7wE z!qGqd-g}~oJV%ei3R(urKMr8}vx=$iK04wtapH6C%5@0!5YNjw{I)OKO~2 zP*}{gnJLip2%2n~Bwvu;+9%5?IEs)72`BEIfXstJs33*`Xfpjc5v;s&Xll@<>1on# zO8Wgf`FmD%--CvX$Ea^Pm5*}UXcVHh{Jq5;-n^IbiWh2|rpqr|>x|QZ6)T$zk+GG- z=M>C>^qM;=!9J5@bq@)9vx>ElTC?OoW$s$R#8+lX$&mcLPqo zi-*h+SqN1^$&2$V^=x+#EUzTY^2~tVNA6BPTfv2@8YDU|8Ep8DnnjvLhjw|q4Oebr z_>GG>z||XU2HV)QYpu_E`Q&SueY3kvY;k(B3zk-{?_s3Np_6+oYs}yKB}+Z?I9(=` zLXWwD&K78oLzH8FLylu+KHd)D7h$DH<(kP+v;9kwXl<;pL6M1&87(63T?sUQod!DG z7BWRx8Wm~vlnxnsbX7JphAf9Nn|FJ!tw5;Q?idWVKtA&{HBDw2{B=wlSa3FLwd4ca5yj#s zf%ytFZK}DMDZ{byc<^33;)T_`Zlx!0bb#IX5%()_9ApD3G+SpNj8MtA%b)1rqQ61f znd>-mH@B$c*?{!0h)IR9ekemO4s@Y>w;n}^sLOGd_v_#J^w$gV}Y2HUijGH8EN;F|d4ze5#9%~ftM z)uI(FsAkFL(+1Sk&}xdjgA#RgFxzVx;>Uy&8TesNqA+`od<*77<8-OZxxS2}{32ej zW{tw?7Q(N=uO(WAtnv|RQi?bYF7>t9Tsl}x=oZ-rPC^ToHy1ukINdH0(PLVW_fued zYee89)}-r}2s6y&Ud8lSqf~`Z7?}m#!OE*nTZMMoei>_}>XtOW_45?fcXB>pWIh;K zR+mTSA1G~olvv+uOPHRX8|OV4ckvwc*4~gRGRicl8bXQ3<9_eb z*9Oz1k(HC<-J3#VuNV5Wj;tlp+?k4Gm=e*xMd7ir!K%~!CZ#W z+(Uh4p#T(?_9RRjMABbwHwlNs=h~xlzA71d*RB>Evv9Ms=jmWdWkP8hy2Np55lY!f z(y(s8zR{`ARynU=nV>e&ipY{!R=qnwYHlzl{&W+Or$P2+<}a6qpj#A(h{ zl}!gZU+0IN6_7V$AS@6bBmtjNErxU+9IO-sD#&;658fPo1}Zd%fQ$2LIRg#lfa?0} z3WimiA1IZ?b~Gvp40cQ}Vq4#$=HpO+-f1c?jYom#W75>GHd6QW#g{Xm`1uvxQRw-+ zkQZTL)7SbfjC!U;ex4V?Je3yVCDr7&QETuUdD2Q_w{B>iQZ%?#roQXsf{_yf>4=}` zsSlPJ)Y^82C~$>otNY&yT$yOV;ReOJA9GG3aOvfFr_MI%)2y$J{T<3(MYo66iNQV6 zhS{4;FKVZ!#gxfmfu`&5QhC+|eLDN#RrHA>$|6lstIcau*iB%+BV~}kh%;h-7BX^$ ztdV9=vl+JL^(rN(-D2|>!{(8)IxBP(gnp}uU{m!*aOkP+b;XmQv67Llw|)r?3PFFcOJNYNc@<9Y%~nkX_!t zYv%(3tZWl`7-sBD(#0L*GZS1=*o8}HSGXHhiniwGwECO&=!GWjCHS}@%?(S!!|Pc8 zd$mVZjn=(g!b4T&U%e7djN5kC!z;Dbkb9{iQD$EQC%p99MsPphb(%|P5n%U7~|LV{fbS~vS#vI+pU+J7J*59jO zRnE`0GeT*thm!B@M}%&_Z48Agiv#(N;uAH(9!9Q$xbSOnHaM|4q)_~ot4gWEWN^Lu zw{8wmr4`E*d<)+w1qQ*H%9>@qp4(jzoF|@8@<>i;5~awH)Vl%UlTvNQ2dn$--mh%` zsoa(xerap_sj$Be`9I5ZK6m*RP-89=IOfL%%u=U%Z*b0`oaN02@6RQbt(k`2kPOVi zhqRYLQQHMBXwE07<;YOebQ*zL=2ivWF8j@SF=;k`H!ZXFQ&Z@8Y6>T=XnX_X5lL*d zZnkK9XYyP8NUl?kd41xwy90FPWo4D4o%a1y&&@jq6k0-alu6zae*WRnY3~5;+HH8- za>}(}RyJ+r1lRg2&DT8KZcyNowq0<%(3OJuJc_T?Hx^-pvwpc4E5kN(0Xw4J%q#X0gS8K1Kauq zIm=$qrMFeZb3xvGYE2?p(xIz%;Z_s;vBlR)t#CG;xmAoQxi*$zS7v&u` z85Q#~4_?WsfR^VN(}~i*XICW7ma*C9AP8i~bE{tf;1%(>W#gwWYJfM`V5mV)HZ>i) zTQRN^O<*#jN!%eU0Fp4b-)Gc8g_qW|N?0iwkvown?jDp&xX#YS3(JS5mWixvTLu9D z(S4hEWoT3Z)aMPX0b6B}ED~+ECxth+6dk-H8sXICmRS1(-BPwTodr8y{M-E$SyRh= z`o_9N_N7aHwqk$xg@sTpRN2w1S(8M&3C0)Bdk#SovHcBY2600uD9RC&l^t`Kzb5t+ zRA^r|+W;gly-xuy3LdWB$-Yy1+H!z*My6NxJ{Kbo9l_#Z)vE?1%4Nu=>^-OHQ8I8d z7`Msbl>8Vf>XKg_84(S@R03B(=%UlIX&j6uxFi zNjC>DC%HZ!kY%?v9xmhT=l1eSQbO{WOu@R*zfuFaYAfiU$vRvssdj@M4SvRIy;th6 zx~9ZHduU1=rZ^S81MZNV#dwb7shfVjT`#jneaWp-Lh8kf8qX`1vh>1P(qe?6Gm z{K4I|X1Uz1ooOf~vHv@5miA$%$Powilk_d4!8tK8m+r&NHbJ`* zu6NWP&nC@>j`?ss{sWCX1jX5s`cQ0qM2<7U`_MP{kkeAP^0oG!5TfK|B3d_=;#qEz^ROR4Y?YZ)lGgcGT=qR6PF7~K_P7eCC3zq!22QJMG z4yufyRbxP^I^$<(2(EaYNClE8Ub@rs7zxD`4uT<~-zr~uxLz8lbgeA(^mta+c4F9R zwU~er@k)sZ1zWtinfNcKv&T;RjkU~(UM7qKh)MTxmFs>jDq(C^-|19s+Ou9cu`gTe zt)766rpJc5$zOI=RUW=9;NnvrW~EO{6m^mBm%fKY9IcI%@5aB3iiz1P&&lT{DzufYmK&sp4?AZjIDCqu zg?N=JjTY^x+BC6AEPsiNyi?bpov**&y%H4a$E&S0!o@C!W-Nuwcke1N1-f;|iQ)GB zfUAyeb+D*@4I7$~+~wpF(Oz&w5uh3vck#8sywQHtdNzcql-jU%i+%qgcR|~?;Jv!- z-z7GhWo8lY1#_36eXa6T@QDf;+%W_9th(b?6wZ(2P+YqOyUvcJG5h(En_C;E$_TzG z)AmUs?Oo}IB5Kr$KXg>YdY<7ff&#I@tK@*8S2oKu($hG!*yvN1Pi6#eY4U`yYS-q) zk9>;4H)o5NZP$xtvDn)S^Ia#}m?KHqLQT?Z9n;36rP0v)B_LWL=6AQTsN;I;huqsV zxFPROQ7X2aJ9FF~?KkM<9(B7qom|Nq&)Y>cB{BXkvA9oK%;mHwY-LFk5RM*uB3$Na zVy54rs|7GgPq1Bqw>i^Ba_(-nn*2jh8B|o;iquWF%KqJqjT%+PtxRMtfQ%59N&aO{h}NZbIa0Hi;m>c7hAb}$r@hPlow$35CydSZ|Y2O-4hMd2p^?+P&XeEr_Tnw9+twKx+$={0a1O=x94) z>_V3vBB6sCLsrmsnTdPYNlnH zk4{cA0E2hOedi8#&G&sb>a{a% zG^f9pPlg2}l(`;m6w@#Z6%0$fH;tFhOQ9={m=!mkpG;;u8IdN{&=L?-T2Enb|55R{ z>O_Xzg(V{0P0;4I-ls1m#_0=fHYUb4E4i_ursR`Z#X*Jehq2cqTR-q5E`LewCfsf1|5t%M= zKRSNlB}16$D3=_7NC?Ws`c&NF#cPvJ%()sM>jC;;oLgl@0EyJhC5MXfm({4cMT4qt z=L|-$aTGBTR#S5mUOg(R-S77x>7vrolP7qG@Y+jpX>jkp?MjK%;(eGFSVf{hPhEH_|)q})pQng#?hxsrvf|qVX zC;F8!E}AA|*UAGWe!2#B`OJ#%$2uQNX%=W4bGdCK8VDV$CzZG_gI$IijtuiQvofcT zhW8#>xh>8zFjpGAEMJXAG7<$u#tL6iO6?=7)d_73ouz(aY-L{d7Kk?FxXr0>lunj) ziFjGvdu6+~Z;{kJKQ;fsNPPZS1bX?A5Z){x##|@!)=O7n4HkXo7ZWjMUiL4Cl$SKCB7f`*m1osohk5XHMd{TVJs7_X>BKg-cGGPPG!s zG2g`+)&Z?^URp50CDBPyy(tFs2m)8%RF|*1nVPOCpv>jp@OmfbpdNEF?cvobq!O=q&)Fs2JVVjdYrhTlNfhF>zY9*Q3r(7HV&shi5Ts~4;|H1+ip+SCvSNqjE0 zJAk{bLr?g)=Jz2`U^FW}*N;&lw7pjrt~RG~6c)A?UfN+s58W3^L8uz+WXZXe@zge( zh0LQ ze+{OR@ezz@w4e2m+DCo0sE;72P_2ye#v;dtjEd)Nj370hjLN0cPMbyLn#We&{u~RY zoLoMGsU#BcZ~@Nw$EjCGTFXmyQ~ZtU2tBT_!dYEWG6pQWm3+HjLf@uOdTUm;EN~udlMXwB zZ9hZwAOT1B{ax86^=995@4t-IeKx@%D`?tj7kkNgJ=`z-y2Oco(gA0b850X`ex-&G z8AZxqIjaN9w2?KEJ(R_kyRU=pdaxOtz( ze3Bd8)@DhGtDzF}k9M-56p6KAue7dt?U}_#48l^$$U$NGbd8ope~pz|LV-slm}Txg5gi>ipwLRwInWz7P27!?;vBr;&76jRGs+ z#&pOmh&^?(ehG>CfCLhL%J8ZtANoTteIdu2;{FY^4XM#6Z7jX)h^X5&%nYHP3$Y3L}Lim`Y(JU#1+!Zf@{IL_g8r^$W z;g^w~TLEKTih{GCC_`^USf_xI_om<2?u+YisTkAkJ|Br=oua5{(~@v`rov1zBiE;h zAA+GGt6xteWUD||%Ht~Qf~a)A10r%d7YLux&1!mvfO}l}EPP#Q^U57boYoHQ)s+iL zURtGQ^Bu83qf5mC9lZV4)DZaZ*bXzwN3WAFzY{;+Gl?puVt?M?PZa$oe05XnGJ|<{ zQVq~h+tORtD%-|$vx&?hRB+`tsPow+?OLS*`G@QN8+F?Lhr4wrQS>hd13aACvYQ(T zWN4Xb-HVwF!yOL7w#HGNdc|ZX+a|{yG7(+EMzuBlauL{2N%n;y+W9t-f8~@g?kvT>c2ow3SN(oBw_NPlw_;l~_~O``6VWQAsyY>o zL?0hABVT6bb}He)sEWZ`g1S900{5S(ZT0Qx#F@<#67U|AR+syV zdQ_x^dRUz|5<_n`PT^v#cI>h7C9bvWEjSeYfVWUAG~ydVQ7%HP=(_9lW=;FaUd>jB z2ZMC$*pp&$9uR0wPte_El?A8`ITmdgdBm9^wkXe+F`wnHjL67|sbf-xK{RW%qoEUw z1Gca!Spl~f%`H&T9aDls4BfTT4o;IU%OA`&)1Nd9V zE}l+|Or`-Zqn7zh+i1nV;m{fC()tf127uVYmSHBWW~D@doffq#*}3~A8@ow)@$z@= zZ)PFJ_>&?u7MVi6ri4^!2*ezf=FGV*?cPpI{{cX5P_gU@<_fVo2LP5$dZ&y_yjY?USW!8 z5_diE;)@--x?aR%GK+;;h2Bu1@Wu{XJ?~ammdLa96ttgiw5!{f2F18`3M?S&Hu#ca zm4hjH$5&ThH86Uo85-;zVt8|GTVo+{9vu(l6%=SIPQ1Y`a_Ny_KP2*Nu;XUUlGs+x z1@~Q^52~&3Q4({wR7eMp4DYk$vtTZ8n!7@l$ks+-r-=07p<_anhuxK zXE8%bdt# zGZZ|8RzPPaz>j})v^5F~4@VU6t!rs*hJDo-f%akjR6QqhF9 zoJTrcbR~7AZ~LxrEG)MZx=i|nW(R4ME)5Jdxjsf^Dus*9L*KNCA6s;j_Gv!SOjqot zLh_qeJ4L>j7*{v#vEIoZqs&Lovd(L!I=5-mQs*lgZv%jAvU3dhZ6 zSkC7Z(dRfahme~YJ}TR9g;tl}JjkK4*xrGv?>>GVdLuC+Q%xlzV5o)Y@ryF2URmCm z6yRPOioMGasHJu6^0Hk9fWwWzoJ#V9hgGp{w z;cF#og3Nf1bFG;L?+c5}(c-SI$LuC%krZcr6V_%IUN>`r_h0W}E1@=;4n!$2DDR{$~6A2UvJJVj*nlX$`Z#>?=XVi3mz2FK;ty35ALK=lIj z^9KU+DjCaeZTvh@iuYu*eNqN662HV8Fcp9vqjg6da!M)q!pV1mv=GK`j18X7t3T;) zhX2wICKMiUb(P%Em}xS_dwJYa$vogfc?gXIpgOL*k*Y&S9E2a5~Z|}4bGtU{cfv+ zFz?T=8J?zD9LNNJP*Z-8R%zk@?|xUgTZ9nz5bU+yimsA(RACnERf@}~RwZp&WzfgT zsVHT_t#%(nGE!P**lx!Xy}7)k>&!t6(~B``kpU(frd!poe%TDqj${2%ZiGYh)Oap3 zzjFI?wz`N($;!EZYWMN@_APEpy{M#V6(1EJ*e(=93SfGyB)`EV+5JB~ug@;7mTHd= zE!5SAx+wIE0?y?FX>MAti=&Yj^XEhi-d)_{SyqX5zEa`r*j@N$L3wg1Te2K+jRFnP~;CC7o!!_F;2by#JYc?t2P# zza#GT^aU}#`bBUxtAxa4nFG8-@Fu|@Y3Tn3u+ll=IcyYrtk(!R&Z(08&*?qcBlvnx zZEuG_;2aF>cSRuCKE?@u;7{NbF!k@sz}SDjH^tHkxp3h=R_^&zjsKYQ|Iugs&-VbZ zEZAQqQRMpe;zW9gOc>Rfy#8g5Z!Bpd5%y=HKXkuNb4HX_>_^T45%hzBxhJ9@ox_mV z0QP_}bH_EZ#N}@YVJ~^ypWxUhr|{S7IIhoc2QJTd#ljT3lMF;$Xhh8wot>Rahlc-r z{sP|9Q>>7wN)e&&De@2E@J3Kw_Ur0?-317Vs9-;$n3Bzz?Y~ ziT^1J02NsPq9qW7vxP+_CvF@sd`q&h55dR>D6yDg#W>LBmBx)1>b& z1mO$azmPwlv)%arK-~e#M*>h)sphG{@`JBH7jE2ojW#up)%GIr`@ozr# zgZ~q-M(J0XKj`rHstuzQ)YR07ix>#c(Bg{$z^FCBYLW>&sivkWgQr&he@N|Wt^w z7Ht{wB>&JCy4=e;N}{<{@7n$pVgPwE#R6OsPpj`$VcSUBf*5su3Po$c+EqRuwnhDnig zSXU@aOYW4Uk=8T@E-q#(xUs zl1|Nhc}5?e(5amwTjiBimCueP_W)x86k=D-Y+?YU34r6Ws=0r1KO^NA@PYxjQ&!I+ zEBT-M3V;r~18i;Kz3Tm>XUG1PUwCHS0A35gxPOXF`g{id2_*ie5;O|xqVG^O|Fcp6 zxpr9g8F>fb&_I50r09d|qlI2LAjD67TQePg=BtP)fC;A9hoq^+3D}9h`u={b`f*lC z%Nh;8g$m<9Qq`H|KDh);&FVrwem5@{m+cm3`Eyr>FK4SRTvmTGSMn}P&hX4PzImc? z9avnOZMy0?V-JB@Ur~>!{==;}1*3fdyx==gI?+|VFGrdtlJ0Hf7$wAm51j&^mjpxW&0mv!myB~;bMh_E|ZoZbXQltj1twSvr_+F z7TD`QCU+W-0dN7szfiuhINna31xWj=2c8vpWFLH`LO-8kxA+{X$Cm^IF1U|X z4vo(Km5`9ooOLn%91@KHJ4;E{+qkcQsb{N`3cPnkz=ZctQvj^&El}KpbuU9i*!iz= z0c!s?^(nAB0Qm0D)%!{Vu53TcD$ml=QZ&RoyJ#pETx^PlH)mZtZyprDJov*X=+Mo< zlpCmB!>G+KJ*h3hltUN%!u}|la>@~6D&L>KOeMLT?)(GgYy3CLcczE&kJ1YNsCK{x zNLH9bydSW6X03^P;o?Nk<(4|Yt(on>?iI}|%pj0}(oL4TXIM)71Mv0IUfk_}57_yq zouM7)to-Vomz-%=8}oQp4i6906{5xYd}^!X!oyWfD4fq>!9VO}|2WV8zEr>|eZQc9 z{kAH8VB@19bHZ2G&1vVgk(<0F9aqH{y69RF8E$0etAdjQZoEJkud;7>~oHU z<;}BJ`QK$j&dTv3$;a=+y+AbX`t|FdbK)(|dp!oP=iak8QAih$n1}PynA>U$&+zbY zu$;p1IeK1#|6C6ry|(!!|6e5ngnG`p*H4mpuIP&+3wYY?-V_NzNBH;W<0TFjQ-gwn zG$(x~FM!U|i(eeR7Lmja#IJv-cwDSjkk*`ds%Ot zBW%3BiwUg=pvK5Smhxn+>fkH>YiFOruX*D5Aq*%n@>x+{{(227=p16JG7%@zr+uED zW?5m5dv}h4eST7s=NI{}g8^9|z-H;lbc?gpq_evGne#pW-@C>7ePJt&{%z8mXMA3u zK9nlm$TQg*rAMzer<>MBN-0HbelGT;QmP_8pTo&7w@*p=#q!2^A4P0|@4Kk4grZMt zJ;&C(&IJx2EzV*$&)Iw(0ZX+cAASyX|NGW|GWWmK_%Aj7t1189um8Jm{HLY)FE##4 zjsIHMf6BoB@3zwT5a-grce{W8M#W0J;!sI7{F>s=N?WI1V>0^_d^zn;j_0`R zCRdEdZ4r_VHXD7f|I?KIb)tEq@J3ZuSCR3Yd!Pgky3{ZoLNuEB0`wdQZuQDB?bo`; Vx7bBPAs2ujIVq**`OjXy{a;9KnezYu literal 0 HcmV?d00001 From 52171884e5d3d1f2d2e27edfde803c62437581c4 Mon Sep 17 00:00:00 2001 From: ipopescu Date: Thu, 12 Oct 2023 20:49:34 +0200 Subject: [PATCH 5/6] Minor updates --- .../developers/cli/transfers/direct-token-transfer.md | 6 ------ .../docs/casper/developers/cli/transfers/verify-transfer.md | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md index bc26431792..5247f64a02 100644 --- a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md +++ b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md @@ -33,22 +33,16 @@ casper-client transfer \ **Request fields:** - `id` - Optional JSON-RPC identifier applied to the request and returned in the response. If not provided, a random integer will be assigned - - `transfer-id` -<64-BIT INTEGER> The `transfer-id` is a memo field, providing additional information about the recipient, which is necessary when transferring tokens to some recipients. For example, if depositing tokens into an account's purse where off-chain management keeps track of individual sub-balances, it is necessary to provide a memo ID uniquely identifying the actual recipient. If this is not necessary for a given recipient, you may pass `0` or some `u64` value that is meaningful to you - - `node-address` - Hostname or IP and port of a node on a network bound to a JSON-RPC endpoint \[default:\] - - `amount` -<512-BIT INTEGER> The number of motes to transfer (1 CSPR = 1,000,000,000 `Motes`) - - `secret-key` - Path to secret key file - - `chain-name` - Name of the chain, to avoid the deploy from being accidentally or maliciously included in a different chain - The _chain-name_ for Testnet is **casper-test** - The _chain-name_ for Mainnet is **casper** - `target-account` - Hex-encoded public key of the account that will receive the funds in its main purse - - `payment-amount` - The payment for the transfer in motes. The payment amount varies based on each deploy and network [chainspec](../../../concepts/glossary/C.md#chainspec). For Testnet node version [1.5.1](https://github.com/casper-network/casper-node/blob/release-1.5.1/resources/production/chainspec.toml), you can specify 10^8 motes **Important response fields:** diff --git a/source/docs/casper/developers/cli/transfers/verify-transfer.md b/source/docs/casper/developers/cli/transfers/verify-transfer.md index 674ce1e6c1..7b7216c8aa 100644 --- a/source/docs/casper/developers/cli/transfers/verify-transfer.md +++ b/source/docs/casper/developers/cli/transfers/verify-transfer.md @@ -165,7 +165,7 @@ casper-client query-global-state \ - `"result"."stored_value"."Account"."main_purse"` - the address of the main purse containing the sender's tokens. In this example, this purse is the source of the tokens transferred -**Source Example Query:** +**Source Account Query:** ```bash casper-client query-global-state -v \ @@ -228,7 +228,7 @@ casper-client query-global-state -v \
-**Target Example Query:** +**Target Account Query:** Repeat the same step to query information about the _Target_ account: From 168a29938d29a8ede3526d2b37e18ab23b35a749 Mon Sep 17 00:00:00 2001 From: ipopescu Date: Thu, 12 Oct 2023 21:20:38 +0200 Subject: [PATCH 6/6] Updated multisig-deploy-transfer.md --- .../cli/transfers/multisig-deploy-transfer.md | 111 +++++++++++------- 1 file changed, 69 insertions(+), 42 deletions(-) diff --git a/source/docs/casper/developers/cli/transfers/multisig-deploy-transfer.md b/source/docs/casper/developers/cli/transfers/multisig-deploy-transfer.md index 130dbb354a..ad4a11a592 100644 --- a/source/docs/casper/developers/cli/transfers/multisig-deploy-transfer.md +++ b/source/docs/casper/developers/cli/transfers/multisig-deploy-transfer.md @@ -1,8 +1,10 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; -# Transferring Tokens using a Multi-sig Deploy +# Transferring Tokens using a Multi-Sig Deploy -This topic explores using a deploy file to transfer Casper tokens (CSPR) between purses on a Casper network. This method of transferring tokens is recommended when you want to implement multi-signature deploys. The `make-transfer` command allows you to create a transfer Deploy and save the output to a file. You can then have the Deploy signed by other parties using the `sign-deploy` command and send it to the network for execution using the `send-deploy` command. +This page presents a method of transferring tokens via a deploy file using multiple signatures. This method is recommended when implementing multi-signature transfers between purses on a Casper network. + +The `make-transfer` command allows you to create a transfer and save the output to a file. You can then have the transfer signed by other parties using the `sign-deploy` command and send it to the network for execution using the `send-deploy` command. ## Prerequisites @@ -16,15 +18,15 @@ You must ensure the following prerequisites are met. 3. Get the path of the source account's _secret key_ file 4. Get the target account's _public key_ in hex format -## Token Transfer Workflow with the Casper Client {#token-transfer-workflow} +## Token Transfer Workflow {#token-transfer-workflow} The high-level flow to transfer tokens using the Casper CLI client and a deploy file is described in the following steps: 1. The `make-transfer` command creates and signs a transfer, saving the output to a file -2. The `sign-transfer` command adds additional signatures for a multi-signature transfer +2. The `sign-deploy` command adds additional signatures for a multi-signature transfer 3. The `send-deploy` command sends the deploy containing the transfer to the network -Deployment flow +Deployment flow ### Creating the transfer {#creating-the-transfer} @@ -35,7 +37,7 @@ casper-client make-transfer --amount 2500000000 \ --secret-key [PATH]/secret_key.pem \ --chain-name casper-test \ --target-account [PUBLIC_KEY_HEX] \ ---transfer-id 3 \ +--transfer-id [ID] \ --payment-amount 100000000 \ --output transfer.deploy ``` @@ -51,20 +53,32 @@ The following table explains the parameters used in the `make-transfer` command. | transfer-id | A user-defined identifier permanently associated with the transfer | | payment-amount | The payment for the transfer in motes. The payment amount varies based on the deploy and network [chainspec](../../../concepts/glossary/C.md#chainspec). For Testnet node version [1.5.1](https://github.com/casper-network/casper-node/blob/release-1.5.1/resources/production/chainspec.toml), wasmless transfers cost 10^8 motes | -In the output, you will see a section named **approvals**. This is where a signature from the source account is added to the Deploy. +In the output, you will see a section named **approvals**. This is where a signature from the source account is added to the deploy. + +**Example:** + +```bash +casper-client make-transfer --amount 2500000000 \ +--secret-key ~/KEYS/multi-sig/keys/default_secret_key.pem \ +--chain-name casper-test \ +--target-account 0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf \ +--transfer-id 1 \ +--payment-amount 100000000 \ +--output transfer.deploy +```
Sample output of the make-transfer command ```json { - "hash": "0e17da4c7b6d12984910aa25e397fc85db53e5cd896776d47494cb4a5f2083f1", + "hash": "88c49fa9108485397a330f294914a6c2d614c581fbe0a31de1a954baad6d709b", "header": { - "account": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", - "timestamp": "2023-01-05T11:30:05.269Z", + "account": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", + "timestamp": "2023-10-12T19:14:22.080Z", "ttl": "30m", "gas_price": 1, - "body_hash": "5d7d30965d503dba0459d5e6b3a0c923059f89e6a7179f76aec0fda1263b7819", + "body_hash": "1bb7436d4703816b5cbeef245dd83c0520f1c7173cdf609c664a29487cc5de1c", "dependencies": [], "chain_name": "casper-test" }, @@ -76,8 +90,8 @@ In the output, you will see a section named **approvals**. This is where a signa "amount", { "cl_type": "U512", - "bytes": "021027", - "parsed": "10000" + "bytes": "0400e1f505", + "parsed": "100000000" } ] ] @@ -98,8 +112,8 @@ In the output, you will see a section named **approvals**. This is where a signa "target", { "cl_type": "PublicKey", - "bytes": "01f48f5b095518be188286d896921d33e97f9729f5945237d5ff6cf7b077aabf1f", - "parsed": "01f48f5b095518be188286d896921d33e97f9729f5945237d5ff6cf7b077aabf1f" + "bytes": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "parsed": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf" } ], [ @@ -108,8 +122,8 @@ In the output, you will see a section named **approvals**. This is where a signa "cl_type": { "Option": "U64" }, - "bytes": "013930000000000000", - "parsed": 3 + "bytes": "010100000000000000", + "parsed": 1 } ] ] @@ -117,8 +131,8 @@ In the output, you will see a section named **approvals**. This is where a signa }, "approvals": [ { - "signer": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", - "signature": "016853b69b98434f236ac2eacb053b244f5853f0ec2a1d86b8f8a35601353cebe160f3c57606be9f289da34b7ccd5b7285751d1e6edc9cc76a84c14fb286272702" + "signer": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", + "signature": "015e0db50b174f3627e0e27cb503f0836b30bd0e0f2c4b989366b0df57500a1cb2b0945408c938bc3c33c40dab59a9c6af6f4e01e474330cd27262bfc87680030e" } ] } @@ -143,6 +157,15 @@ casper-client sign-deploy \ | secret-key | The path of the secret key file used to sign the deploy | | output | The path of the output file used to save the deploy with multiple signatures | +**Example:** + +```bash +casper-client sign-deploy \ +--input transfer.deploy \ +--secret-key ~/KEYS/multi-sig/keys/user_1_secret_key.pem \ +--output transfer2.deploy +``` + Towards the end of the following output, you can observe that there is an **approvals** section, which has two signatures, one from the account initiating the transfer and the second from the account used to sign the deploy.
@@ -150,13 +173,13 @@ Towards the end of the following output, you can observe that there is an **appr ```json { - "hash": "959ba7154a58bf3a9ec555b38fb2c96dba81523b49f9a086630d0cf44d74cacc", + "hash": "88c49fa9108485397a330f294914a6c2d614c581fbe0a31de1a954baad6d709b", "header": { - "account": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", - "timestamp": "2023-01-05T11:42:23.311Z", + "account": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", + "timestamp": "2023-10-12T19:14:22.080Z", "ttl": "30m", "gas_price": 1, - "body_hash": "5d7d30965d503dba0459d5e6b3a0c923059f89e6a7179f76aec0fda1263b7819", + "body_hash": "1bb7436d4703816b5cbeef245dd83c0520f1c7173cdf609c664a29487cc5de1c", "dependencies": [], "chain_name": "casper-test" }, @@ -168,8 +191,8 @@ Towards the end of the following output, you can observe that there is an **appr "amount", { "cl_type": "U512", - "bytes": "021027", - "parsed": "10000" + "bytes": "0400e1f505", + "parsed": "100000000" } ] ] @@ -190,8 +213,8 @@ Towards the end of the following output, you can observe that there is an **appr "target", { "cl_type": "PublicKey", - "bytes": "01f48f5b095518be188286d896921d33e97f9729f5945237d5ff6cf7b077aabf1f", - "parsed": "01f48f5b095518be188286d896921d33e97f9729f5945237d5ff6cf7b077aabf1f" + "bytes": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", + "parsed": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf" } ], [ @@ -200,8 +223,8 @@ Towards the end of the following output, you can observe that there is an **appr "cl_type": { "Option": "U64" }, - "bytes": "013930000000000000", - "parsed": 3 + "bytes": "010100000000000000", + "parsed": 1 } ] ] @@ -210,11 +233,11 @@ Towards the end of the following output, you can observe that there is an **appr "approvals": [ { "signer": "01360af61b50cdcb7b92cffe2c99315d413d34ef77fadee0c105cc4f1d4120f986", - "signature": "014c2dc520a1d7f2b7cc18fe704899dd158c02448a4c575bc5214bad3384cb4fff6e32ece196768a8d21b5644c96850fea8b980bd2f6c1fe3c717c1c45a6b75508" + "signature": "015e0db50b174f3627e0e27cb503f0836b30bd0e0f2c4b989366b0df57500a1cb2b0945408c938bc3c33c40dab59a9c6af6f4e01e474330cd27262bfc87680030e" }, { - "signer": "0154d828baafa6858b92919c4d78f26747430dcbecb9aa03e8b44077dc6266cabf", - "signature": "0107b684e395879fed81d8387b0b4422301c1e4fcbd76672cf3fb7ab2ea8a2ef1429622a999fbbb56bcb79d871bfaeeb107415d67c78a57e8f67987e7f4368980c" + "signer": "01e3d3392c2e0b943abe709b25de5c353e5e1e9d95c7a76e3dd343d8aa1aa08d51", + "signature": "017793ad52d27393b1aa8ff5bb9bdbcb48708910d6cdabd9a89b44690ca174edf8924aad340bf901ac343391cb4cba7cf4db07390372f28ecf471fd522e0b63803" } ] } @@ -224,12 +247,12 @@ Towards the end of the following output, you can observe that there is an **appr ### Sending the deploy {#sending-the-deploy} -The next step is to send the deploy for processing on the network. As described in the [Prerequisites](#prerequisites) section, you need to get an active node address from the corresponding network to complete this task. The following example uses the node `http://65.21.235.219` from the Testnet; replace this with an active node before using the command. Port `7777` is the RPC endpoint for interacting with the Casper client. +The next step is to send the deploy for processing on the network. As described in the [Prerequisites](#prerequisites) section, you need to get an active node address from the corresponding network to complete this task. The following example uses the node `https://rpc.testnet.casperlabs.io/` from the Testnet. ```bash casper-client send-deploy \ --input transfer2.deploy \ ---node-address http://65.21.235.219:7777 +--node-address https://rpc.testnet.casperlabs.io/ ``` | Parameter | Description | @@ -244,18 +267,22 @@ Make a note of the *deploy_hash* from the `send-deploy` command output to verify ```json { - "id": 261147078494867680, - "jsonrpc": "2.0", - "result": { - "api_version": "1.3.4", - "deploy_hash": "87912f9ea859159dcf2f0554751ba0bce8b1df41f4b4339bc6de370d7734bdae" - } + "jsonrpc": "2.0", + "id": -818883417884028030, + "result": { + "api_version": "1.5.3", + "deploy_hash": "88c49fa9108485397a330f294914a6c2d614c581fbe0a31de1a954baad6d709b" + } } ```
-If you encounter an account authorization error, you must set up the source account to allow multi-signature deploys using session code. The [Two-Party Multi-Signature Deploys](../../../resources/advanced/two-party-multi-sig.md) workflow is an example of how to accomplish this. +:::note + +If you encounter an account authorization error, you **must set up the source account to allow multi-signature deploys** using session code. The [Two-Party Multi-Signature Deploys](../../../resources/advanced/two-party-multi-sig.md) workflow is an example of how to accomplish this. + +:::
Example of an account authorization error @@ -270,7 +297,7 @@ If you encounter an account authorization error, you must set up the source acco
-## Verifying the Transfer {#verifying-the-transfer} +### Verifying the transfer {#verifying-the-transfer} To verify the transfer status, see [Verifying a Transfer](./verify-transfer.md).