From 2e6a792f1bd6d5a48241c61614b8373964429774 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 09:56:09 +0300 Subject: [PATCH 01/20] docs: add code of conduct & contributing --- CODE_OF_CONDUCT.md | 101 +++++++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 68 ++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..c681802 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,101 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for +everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity +and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, +or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take +appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, +issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for +moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing +the community in public spaces. Examples of representing our community include using an official e-mail address, posting +via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible +for enforcement at contact@cooperlabs.xyz. All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem +in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the +community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation +and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including +unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding +interactions in community spaces as well as external channels like social media. Violating these terms may lead to a +temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified +period of time. No public or private interaction with the people involved, including unsolicited interaction with those +enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate +behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. +Translations are available at https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..760dfd7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contribution Guidelines + +Thanks for your interest in contributing to the Transmuter system! Transmuter is a community built protocol and anyone +is welcome to improve it. + +If you need to get in contact with the repository maintainers, please reach out in the +[#community-dev channel](https://discord.gg/DgFR5T4DbM) of Parallel Discord Server. + +## Types of Contributing + +There are many ways to contribute, but here are a few if you want a place to start: + +1. **Opening an issue.** Before opening an issue, please check that there is not an issue already open. If there is, + feel free to comment more details, explanations, or examples within the open issue rather than duplicating it. + Suggesting changes to the open development process are within the bounds of opening issues. We are always open to + feedback and receptive to suggestions! +2. **Resolving an issue.** You can resolve an issue either by showing that it is not an issue or by fixing the issue + with code changes, additional tests, etc. Any pull request fixing an issue should reference that issue. +3. **Reviewing open PRs.** You can provide comments, standards guidance, naming suggestions, gas optimizations, or ideas + for alternative designs on any open pull request. + +## Opening an Issue + +When opening an [issue](https://github.com/parallel-protocol/parallel-parallelizer/issues), please title it with a +concise problem statement and check that a similar request is not already open or in progress. Not all issues may be +deemed worth resolving, so please follow through with responding to any questions or comments that others may have +regarding the issue. + +## Opening a Pull Request + +All pull requests should be opened against the `main` branch. In the pull request, please reference the issue you are +fixing. + +Pull requests can be reviewed by community members, but to be merged they will need approval from the repository +maintainers. Please understand it will take time to receive a response, although the maintainers will aim to respond and +comment as soon as possible. + +**For larger, more substantial changes to the code, it is best to open an issue and start a discussion with the +maintainers to align on the change before spending time on the development.** + +Finally, before opening a pull request please do the following: + +- Run the Foundry tests with `bun run test` +- Document any new functions, structs, or interfaces following the natspec standard. +- Add tests! For smaller contributions, they should be tested with unit tests, and fuzz tests where possible. For bigger + contributions, they should be tested with invariant tests where possible. + +## Standards + +All contributions must follow the below standards. Maintainers will close out PRs that do not adhere to these standards. + +1. All contracts should be formatted with the prettier used in the default vscode config. +2. These contracts follow the [solidity style guide](https://docs.soliditylang.org/en/v0.8.19/style-guide.html) with one + minor exception of using the `\_prependUnderscore` style naming for internal contract functions, internal top-level + parameters, and function parameters with naming collisions. +3. All external facing contracts should inherit from interfaces, which specify and document its functions with natspec. +4. Picking up stale issues by other authors is fine! Please just communicate with them ahead of time and it is best + practice to include co-authors in any commits. +5. Squash commits where possible to make reviews clean and efficient. PRs that are merged to main will be squashed into + 1 commit. + +## Code of Conduct + +Above all else, please be respectful of the people behind the code. Any kind of aggressive or disrespectful comments, +issues, and language will be removed. + +Issues and PRs that are obviously spam and unhelpful to the development process or unrelated to the core code will also +be closed. From 7e407a0dfaffd3cfe087875429ffb66afb92f9c2 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 09:56:45 +0300 Subject: [PATCH 02/20] refactor: env.example vars --- .env.example | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 54da2a0..5a52f77 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ -export API_KEY_ALCHEMY="YOUR_API_KEY_ALCHEMY" -export API_KEY_ETHERSCAN="YOUR_API_KEY_ETHERSCAN" -export API_KEY_POLYGONSCAN="YOUR_API_KEY_POLYGONSCAN" -export MNEMONIC="YOUR_MNEMONIC" -export FOUNDRY_PROFILE="default" +MNEMONIC="YOUR_MNEMONIC" +PRIVATE_KEY="PRIVATE_KEY" +ALCHEMY_API_KEY="ALCHEMY_API_KEY" +MAINNET_ETHERSCAN_API_KEY="MAINNET_ETHERSCAN_API_KEY" +POLYGON_ETHERSCAN_API_KEY="POLYGON_ETHERSCAN_API_KEY" From 345cd6fa8554edad6657e9cd97143abb0cfd40c3 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 09:57:00 +0300 Subject: [PATCH 03/20] docs: update readme --- README.md | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 7f56088..ad2a2dd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Parallel Tokenomics -## 1. Overview +## Summary The Parallel Tokenomics system consists of smart contracts that enable: @@ -29,22 +29,11 @@ The Parallel Tokenomics system consists of smart contracts that enable: - MainFeeDistributor: Mainnet - SideChainFeeDistributor: Polygon, Fantom -The high-level architecture of the protocol is shown below: +## Architecture ![High Level Architecture](./docs/assets/high-level-architecture.png) -## 2. Folder Structure - -- [Broadcast](./broadcast) folder contains Foundry transactions executed by scripts. -- [Contracts](./contracts) folder contains contracts source code. -- [Deploy](./deploy) folder contains hardhat deployment scripts. -- [Deployments](./deployments) folder contains info of contracts deployed per network. -- [Docs](./docs) folder contains all documentation related to main contracts. -- [Script](./scripts) folder contains Foundry scripts to interact with onchain contracts. -- [Test](./test) folder contains all tests related to the contracts with mocks and settings. -- [Utils](./utils) folder contains helper functions. - -## 3. Documentation +## Documentation Links Additional documentation can be found in the `/docs` directory: @@ -52,7 +41,7 @@ Additional documentation can be found in the `/docs` directory: - [Deployments Contracts](docs/Deployment.md) - [Technical Specifications](docs/TechnicalSpecs.md) -## 4. Getting Started +## Security ### Foundry @@ -65,18 +54,14 @@ Foundry is used for testing and scripting. To bun i ``` -### Fill the `.env` file with your data - -The Foundry script relies solely on the PRIVATE_KEY. The MNEMONIC is used on the Hardhat side and will override the -PRIVATE_KEY if it is defined. +### Setup `.env` file ```bash -export API_KEY_ALCHEMY="YOUR_API_KEY_ALCHEMY" -export API_KEY_ETHERSCAN="YOUR_API_KEY_ETHERSCAN" -export API_KEY_POLYGONSCAN="YOUR_API_KEY_POLYGONSCAN" -export MNEMONIC="YOUR_MNEMONIC" -export PRIVATE_KEY="YOUR_PRIVATE_KEY" -export FOUNDRY_PROFILE="default" +MNEMONIC="YOUR_MNEMONIC" +PRIVATE_KEY="PRIVATE_KEY" +ALCHEMY_API_KEY="ALCHEMY_API_KEY" +MAINNET_ETHERSCAN_API_KEY="MAINNET_ETHERSCAN_API_KEY" +POLYGON_ETHERSCAN_API_KEY="POLYGON_ETHERSCAN_API_KEY" ``` ### Compile contracts @@ -93,6 +78,20 @@ bun run test You will find other useful commands in the [package.json](./package.json) file. -## Licences +## Contributing + +If you're interested in contributing, please see our [contributions guidelines](./CONTRIBUTING.md). + +## Questions & Feedback + +For any question or feedback you can use [discord](https://discord.com/invite/mimodao). Don't hesitate to reach out on +[Twitter](https://twitter.com/mimo_labs)🐦 as well. + +## Licensing + +The primary license for this repository is the MIT license. See [`LICENSE`](./LICENSE). Minus the following exceptions: + +- tests files are under UNLICENSED license +- mocks contracts are under UNLICENSED license -All contracts is under the `MIT` License, see [`LICENSE`](./LICENSE). +Each of these files states their license type. From 137ce7675b3aac39cc1e0075dc06b0d08a298839 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 13:09:51 +0300 Subject: [PATCH 04/20] refactor: remove unused paUSD --- test/Base.t.sol | 3 --- test/helpers/Deploys.sol | 1 - 2 files changed, 4 deletions(-) diff --git a/test/Base.t.sol b/test/Base.t.sol index 2f132e8..a9e9592 100644 --- a/test/Base.t.sol +++ b/test/Base.t.sol @@ -22,8 +22,6 @@ abstract contract Base_Test is Test, Deploys, Assertions, Defaults, Utils { // Deploy PAR token contract. par = _deployERC20Mock("PAR", "PAR", 18); - // Deploy paUSD token contract. - paUSD = _deployERC20Mock("paUSD", "paUSD", 18); // Deploy PRL token contract. prl = _deployERC20Mock("prl", "PRL", 18); // Deploy BPT token contract. @@ -62,7 +60,6 @@ abstract contract Base_Test is Test, Deploys, Assertions, Defaults, Utils { vm.deal({ account: user.addr, newBalance: INITIAL_BALANCE }); if (setTokenBalance) { par.mint(user.addr, INITIAL_BALANCE); - paUSD.mint(user.addr, INITIAL_BALANCE); prl.mint(user.addr, INITIAL_BALANCE); weth.mint(user.addr, INITIAL_BALANCE); } diff --git a/test/helpers/Deploys.sol b/test/helpers/Deploys.sol index 8e99edb..ff708da 100644 --- a/test/helpers/Deploys.sol +++ b/test/helpers/Deploys.sol @@ -40,7 +40,6 @@ abstract contract Deploys is Test { ERC20Mock internal par; ERC20Mock internal prl; - ERC20Mock internal paUSD; ERC20Mock internal bpt; ERC20Mock internal auraBpt; From 70cc54eb120248c8d9553570aed93a29ae4a22f9 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 13:10:06 +0300 Subject: [PATCH 05/20] fix: balancer mock --- test/mocks/BalancerV3RouterMock.sol | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/mocks/BalancerV3RouterMock.sol b/test/mocks/BalancerV3RouterMock.sol index 36eee35..ffa4cc0 100644 --- a/test/mocks/BalancerV3RouterMock.sol +++ b/test/mocks/BalancerV3RouterMock.sol @@ -11,9 +11,11 @@ contract BalancerV3RouterMock is IBalancerV3Router { ERC20Mock public bpt; IPermit2 public permit2; uint256 ratio = 1e18; + bool isReversedBalancerPair; constructor(address[2] memory _tokens, address _bpt, address _permit2) { tokens = _tokens; + isReversedBalancerPair = _tokens[0] > _tokens[1]; bpt = ERC20Mock(_bpt); permit2 = IPermit2(_permit2); } @@ -36,8 +38,12 @@ contract BalancerV3RouterMock is IBalancerV3Router { { uint256 amountIn0 = (maxAmountsIn[0] * ratio) / 1e18; uint256 amountIn1 = (maxAmountsIn[1] * ratio) / 1e18; - permit2.transferFrom(msg.sender, address(this), uint160(amountIn0), tokens[0]); - permit2.transferFrom(msg.sender, address(this), uint160(amountIn1), tokens[1]); + permit2.transferFrom( + msg.sender, address(this), uint160(amountIn0), isReversedBalancerPair ? tokens[1] : tokens[0] + ); + permit2.transferFrom( + msg.sender, address(this), uint160(amountIn1), isReversedBalancerPair ? tokens[0] : tokens[1] + ); bpt.mint(msg.sender, exactBptAmountOut); amountsIn = new uint256[](2); amountsIn[0] = amountIn0; From dd944c1d447a7ca8ea97d6f0ce7ca2f4ba66e445 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 30 Apr 2025 13:11:41 +0300 Subject: [PATCH 06/20] refactor: deployment types and file --- bun.lockb | Bin 208005 -> 214729 bytes deploy/config/arbiSepolia/config.json | 5 +-- deploy/config/sepolia/config.json | 6 +-- deploy/scripts/fees/MainFeeDistributor.ts | 4 +- deploy/scripts/fees/SideChainFeeCollector.ts | 4 +- .../RewardMerkleDistributor.ts | 3 +- deploy/scripts/sprl/sPRL1.ts | 4 +- deploy/scripts/sprl/sPRL2.ts | 38 +++++++++--------- deploy/utils/index.ts | 6 --- deploy/utils/types.ts | 7 ++-- package.json | 3 +- 11 files changed, 33 insertions(+), 47 deletions(-) diff --git a/bun.lockb b/bun.lockb index d047fc1be6bc78c55c854809dd2fbf7242bb89fb..90390e69cea5febeb0892ce53fce983ddad324df 100755 GIT binary patch delta 48502 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 delta 44173 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 BJ;DG0 diff --git a/deploy/config/arbiSepolia/config.json b/deploy/config/arbiSepolia/config.json index 27fe1db..fa1716c 100644 --- a/deploy/config/arbiSepolia/config.json +++ b/deploy/config/arbiSepolia/config.json @@ -6,7 +6,6 @@ }, "tokens": { "prl": "0x0F4DE51EF1E7611aD0A9181F2d62B9c8408EFfa2", - "paUSD": "0x0000000000000000000000000000000000000000", "par": "0x78C48A7d7Fc69735fDab448fe6068bbA44a920E6", "weth": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" }, @@ -30,8 +29,8 @@ "feeReceiver": "dao", "startPenaltyPercentage": "1000000000000000000", "timeLockDuration": 86400000, - "balancerV3Vault": "0x0000000000000000000000000000000000000000", - "auraVault": "0x0000000000000000000000000000000000000000", + "balancerV3Router": "0x0000000000000000000000000000000000000000", + "auraRewardsPool": "0x0000000000000000000000000000000000000000", "auraBoosterLite": "0x0000000000000000000000000000000000000000", "auraBPT": "0x0000000000000000000000000000000000000000", "balancerBPT": "0x0000000000000000000000000000000000000000" diff --git a/deploy/config/sepolia/config.json b/deploy/config/sepolia/config.json index 508f4d0..8109848 100644 --- a/deploy/config/sepolia/config.json +++ b/deploy/config/sepolia/config.json @@ -6,7 +6,6 @@ }, "tokens": { "prl": "0xfaD382eE9B8229fb9B05DF9F9391baC5DD81f346", - "paUSD": "0x0000000000000000000000000000000000000000", "par": "0x68E88c802F146eAD2f99F3A91Fb880D1A2509672", "weth": "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9" }, @@ -30,9 +29,8 @@ "feeReceiver": "dao", "startPenaltyPercentage": "1000000000000000000", "timeLockDuration": 2419200, - "balancerV3Vault": "0x0000000000000000000000000000000000000000", - "auraVault": "0x0000000000000000000000000000000000000000", - "auraVaultRewardToken": "0x0000000000000000000000000000000000000000", + "balancerV3Router": "0x0000000000000000000000000000000000000000", + "auraRewardsPool": "0x0000000000000000000000000000000000000000", "auraBoosterLite": "0x0000000000000000000000000000000000000000", "auraBPT": "0x0000000000000000000000000000000000000000", "balancerBPT": "0x0000000000000000000000000000000000000000" diff --git a/deploy/scripts/fees/MainFeeDistributor.ts b/deploy/scripts/fees/MainFeeDistributor.ts index cc0cf3e..c6fea49 100644 --- a/deploy/scripts/fees/MainFeeDistributor.ts +++ b/deploy/scripts/fees/MainFeeDistributor.ts @@ -1,9 +1,8 @@ import assert from "assert"; -import { ethers } from "ethers"; import { type DeployFunction } from "hardhat-deploy/types"; -import { checkAddressValid, GAS, getTokenAddressFromConfig, isAddressValid } from "../../utils"; +import { checkAddressValid, getTokenAddressFromConfig } from "../../utils"; import { readFileSync } from "fs"; import { ConfigData } from "../../utils/types"; @@ -34,7 +33,6 @@ const deploy: DeployFunction = async (hre) => { args: [accessManager, bridgeableToken, feeToken], log: true, skipIfAlreadyDeployed: false, - ...GAS, }); console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); diff --git a/deploy/scripts/fees/SideChainFeeCollector.ts b/deploy/scripts/fees/SideChainFeeCollector.ts index 8508d2e..71f842b 100644 --- a/deploy/scripts/fees/SideChainFeeCollector.ts +++ b/deploy/scripts/fees/SideChainFeeCollector.ts @@ -1,9 +1,8 @@ import assert from "assert"; -import { ethers } from "ethers"; import { type DeployFunction } from "hardhat-deploy/types"; -import { checkAddressValid, GAS, getLzEidReceiver, getTokenAddressFromConfig, isAddressValid } from "../../utils"; +import { checkAddressValid, getLzEidReceiver, getTokenAddressFromConfig } from "../../utils"; import { readFileSync } from "fs"; import { ConfigData } from "../../utils/types"; @@ -36,7 +35,6 @@ const deploy: DeployFunction = async (hre) => { args: [accessManager, lzEidReceiver, bridgeableToken, destinationReceiver, feeToken], log: true, skipIfAlreadyDeployed: false, - ...GAS, }); console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); diff --git a/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts b/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts index 1faaaf7..79ac598 100644 --- a/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts +++ b/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts @@ -2,7 +2,7 @@ import assert from "assert"; import { type DeployFunction } from "hardhat-deploy/types"; -import { checkAddressValid, GAS, getTokenAddressFromConfig, getWalletAddressFromConfig } from "../../utils"; +import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig } from "../../utils"; import { readFileSync } from "fs"; import { ConfigData } from "../../utils/types"; @@ -37,7 +37,6 @@ const deploy: DeployFunction = async (hre) => { args: [accessManager, token, expiredRewardsRecipient], log: true, skipIfAlreadyDeployed: false, - ...GAS, }); console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); diff --git a/deploy/scripts/sprl/sPRL1.ts b/deploy/scripts/sprl/sPRL1.ts index 12124c1..3b70243 100644 --- a/deploy/scripts/sprl/sPRL1.ts +++ b/deploy/scripts/sprl/sPRL1.ts @@ -1,9 +1,8 @@ import assert from "assert"; -import { ethers } from "ethers"; import { type DeployFunction } from "hardhat-deploy/types"; -import { GAS, getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; +import { getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; import { readFileSync } from "fs"; import { ConfigData } from "../../utils/types"; @@ -33,7 +32,6 @@ const deploy: DeployFunction = async (hre) => { args: [underlying, feeReceiver, accessManager, sprl1Data.startPenaltyPercentage, sprl1Data.timeLockDuration], log: true, skipIfAlreadyDeployed: false, - ...GAS, }); console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); diff --git a/deploy/scripts/sprl/sPRL2.ts b/deploy/scripts/sprl/sPRL2.ts index 5c45610..0352088 100644 --- a/deploy/scripts/sprl/sPRL2.ts +++ b/deploy/scripts/sprl/sPRL2.ts @@ -1,15 +1,8 @@ import assert from "assert"; -import { ethers } from "ethers"; import { type DeployFunction } from "hardhat-deploy/types"; -import { - checkAddressValid, - GAS, - getTokenAddressFromConfig, - getWalletAddressFromConfig, - isAddressValid, -} from "../../utils"; +import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; import { readFileSync } from "fs"; import { ConfigData } from "../../utils/types"; @@ -34,13 +27,25 @@ const deploy: DeployFunction = async (hre) => { const prlToken = getTokenAddressFromConfig("prl", config); const wethToken = getTokenAddressFromConfig("weth", config); - const auraBPT = checkAddressValid(sprl2Data.auraBPT, "Aura BPT"); - const auraBoosterLite = checkAddressValid(sprl2Data.auraBoosterLite, "Aura Booster Lite"); - const auraVault = checkAddressValid(sprl2Data.auraVault, "Aura Vault"); - const balancerBPT = checkAddressValid(sprl2Data.balancerBPT, "Balancer BPT"); - + const permit2 = checkAddressValid(sprl2Data.permit2, "Permit2"); const feeReceiver = getWalletAddressFromConfig(sprl2Data.feeReceiver, config); + const balancerRouter = checkAddressValid(sprl2Data.balancerV3Router, "Balancer V3 Router"); + const balancerBPT = checkAddressValid(sprl2Data.balancerBPT, "Balancer BPT"); + const auraBoosterLite = checkAddressValid(sprl2Data.auraBoosterLite, "Aura Booster Lite"); + const auraRewardsPool = checkAddressValid(sprl2Data.auraRewardsPool, "Aura Rewards Pool"); + const auraBPT = checkAddressValid(sprl2Data.auraBPT, "Aura BPT"); + const rewardsTokens = sprl2Data.rewardsTokens.map((token) => checkAddressValid(token, "Reward Token")); + const BPTConfigParams = { + balancerRouter: balancerRouter, + auraBoosterLite: auraBoosterLite, + auraRewardsPool: auraRewardsPool, + balancerBPT: balancerBPT, + prl: prlToken, + weth: wethToken, + rewardTokens: rewardsTokens, + permit2: permit2, + }; const contract = await deploy(contractName, { from: deployer, args: [ @@ -49,15 +54,10 @@ const deploy: DeployFunction = async (hre) => { accessManager, sprl2Data.startPenaltyPercentage, sprl2Data.timeLockDuration, - balancerBPT, - auraBoosterLite, - auraVault, - prlToken, - wethToken, + BPTConfigParams, ], log: true, skipIfAlreadyDeployed: false, - ...GAS, }); console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); diff --git a/deploy/utils/index.ts b/deploy/utils/index.ts index d6a0ef3..3e01454 100644 --- a/deploy/utils/index.ts +++ b/deploy/utils/index.ts @@ -1,13 +1,7 @@ -import type { CallOptions } from "hardhat-deploy/types"; import { ethers } from "ethers"; import { Address, ConfigData } from "./types"; import { EndpointId } from "@layerzerolabs/lz-definitions"; -export const GAS: CallOptions = { - maxFeePerGas: "20000000000", // 20 gwei - maxPriorityFeePerGas: "1000000000", -}; - export const getLzEidReceiver = (mainchain: string) => { if (mainchain === "sepolia") return EndpointId.SEPOLIA_V2_TESTNET; if (mainchain === "arbiSepolia") return EndpointId.ARBSEP_V2_TESTNET; diff --git a/deploy/utils/types.ts b/deploy/utils/types.ts index 8972662..bcfc308 100644 --- a/deploy/utils/types.ts +++ b/deploy/utils/types.ts @@ -10,7 +10,6 @@ export type ConfigData = { }; tokens: { prl: Address; - paUSD: Address; par: Address; weth: Address; }; @@ -31,13 +30,15 @@ export type ConfigData = { timeLockDuration: number; }; sprl2: { + permit2: Address; feeReceiver: string; startPenaltyPercentage: BigNumberish; timeLockDuration: number; - balancerV3Vault: Address; - auraVault: Address; + balancerV3Router: Address; + auraRewardsPool: Address; auraBoosterLite: Address; auraBPT: Address; balancerBPT: Address; + rewardsTokens: Address[]; }; }; diff --git a/package.json b/package.json index d153e59..8a0776a 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ }, "dependencies": { "@layerzerolabs/lz-evm-oapp-v2": "^3.0.14", - "@openzeppelin/contracts": "^5.1.0" + "@openzeppelin/contracts": "^5.1.0", + "ts-node": "^10.9.2" }, "devDependencies": { "@commitlint/cli": "^19.5.0", From af1e3c06b56617b433e2ea0f86dfc241cf63dd28 Mon Sep 17 00:00:00 2001 From: FabienC Date: Thu, 16 Apr 2026 14:30:34 +0300 Subject: [PATCH 07/20] feat: add mainnet deployment configs and role-setting scripts Add deployment configurations for mainnet, polygon, base, and sonic chains. Add Foundry scripts for setting access manager roles on deployed contracts. Update AURA_POOL_PID to 258 and add base/sonic network support. --- .prettierignore | 1 + contracts/sPRL/sPRL1.sol | 13 ++---- contracts/sPRL/sPRL2.sol | 10 +---- .../config/{ => base}/arbiSepolia/config.json | 2 +- deploy/config/base/config.json | 40 +++++++++++++++++++ deploy/config/mainnet/config.json | 40 +++++++++++++++++++ deploy/config/polygon/config.json | 40 +++++++++++++++++++ deploy/config/sepolia/config.json | 4 +- deploy/config/sonic/config.json | 40 +++++++++++++++++++ foundry.toml | 1 + hardhat.config.ts | 10 +++++ scripts/Base.s.sol | 38 ++++++++++++++++++ scripts/SetMainFeeDistributorRole.s.sol | 24 +++++++++++ scripts/SetRewardMerkleDistributor.s.sol | 26 ++++++++++++ scripts/SetSPRL1Role.s.sol | 23 +++++++++++ scripts/SetSPRL2Role.s.sol | 27 +++++++++++++ scripts/SetSideChainFeeCollectorRole.s.sol | 28 +++++++++++++ test/Base.t.sol | 6 +-- .../rewardMerkleDistributor/claim.t.sol | 31 ++++---------- .../forwardExpiredRewards.t.sol | 9 +---- test/mocks/TimeLockPenaltyERC20Mock.sol | 8 +--- utils/getRpcURL.ts | 6 +++ utils/getVerifyConfig.ts | 18 +++++++++ 23 files changed, 382 insertions(+), 63 deletions(-) rename deploy/config/{ => base}/arbiSepolia/config.json (95%) create mode 100644 deploy/config/base/config.json create mode 100644 deploy/config/mainnet/config.json create mode 100644 deploy/config/polygon/config.json create mode 100644 deploy/config/sonic/config.json create mode 100644 scripts/Base.s.sol create mode 100644 scripts/SetMainFeeDistributorRole.s.sol create mode 100644 scripts/SetRewardMerkleDistributor.s.sol create mode 100644 scripts/SetSPRL1Role.s.sol create mode 100644 scripts/SetSPRL2Role.s.sol create mode 100644 scripts/SetSideChainFeeCollectorRole.s.sol diff --git a/.prettierignore b/.prettierignore index d85a8b5..daf5db6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -17,3 +17,4 @@ package-lock.json pnpm-lock.yaml yarn.lock deployments +.claude diff --git a/contracts/sPRL/sPRL1.sol b/contracts/sPRL/sPRL1.sol index 6838e79..b315ca2 100644 --- a/contracts/sPRL/sPRL1.sol +++ b/contracts/sPRL/sPRL1.sol @@ -32,13 +32,7 @@ contract sPRL1 is TimeLockPenaltyERC20 { uint64 _timeLockDuration ) TimeLockPenaltyERC20( - NAME, - SYMBOL, - _underlying, - _feeReceiver, - _accessManager, - _startPenaltyPercentage, - _timeLockDuration + NAME, SYMBOL, _underlying, _feeReceiver, _accessManager, _startPenaltyPercentage, _timeLockDuration ) { } @@ -71,8 +65,9 @@ contract sPRL1 is TimeLockPenaltyERC20 { nonReentrant { // @dev using try catch to avoid reverting the transaction in case of front-running - try IERC20Permit(address(underlying)).permit(msg.sender, address(this), _assetAmount, _deadline, _v, _r, _s) { - } catch { } + try IERC20Permit(address(underlying)) + .permit(msg.sender, address(this), _assetAmount, _deadline, _v, _r, _s) { } + catch { } underlying.safeTransferFrom(msg.sender, address(this), _assetAmount); _deposit(_assetAmount); } diff --git a/contracts/sPRL/sPRL2.sol b/contracts/sPRL/sPRL2.sol index b40f285..dcb19d5 100644 --- a/contracts/sPRL/sPRL2.sol +++ b/contracts/sPRL/sPRL2.sol @@ -24,7 +24,7 @@ contract sPRL2 is TimeLockPenaltyERC20 { string constant SYMBOL = "sPRL2"; /// @dev Aura Pool PID is hardcoded and must be updated before deploying - uint256 public constant AURA_POOL_PID = 244; + uint256 public constant AURA_POOL_PID = 258; //------------------------------------------- // Storage @@ -117,13 +117,7 @@ contract sPRL2 is TimeLockPenaltyERC20 { BPTConfigParams memory _configParams ) TimeLockPenaltyERC20( - NAME, - SYMBOL, - _stakedAuraBPT, - _feeReceiver, - _accessManager, - _startPenaltyPercentage, - _timeLockDuration + NAME, SYMBOL, _stakedAuraBPT, _feeReceiver, _accessManager, _startPenaltyPercentage, _timeLockDuration ) { if (_configParams.rewardTokens.length == 0) { diff --git a/deploy/config/arbiSepolia/config.json b/deploy/config/base/arbiSepolia/config.json similarity index 95% rename from deploy/config/arbiSepolia/config.json rename to deploy/config/base/arbiSepolia/config.json index fa1716c..4552ebc 100644 --- a/deploy/config/arbiSepolia/config.json +++ b/deploy/config/base/arbiSepolia/config.json @@ -2,7 +2,7 @@ "isMainChainFeeDistributor": false, "accessManager": "0xE2A0FA5A1e7315e6b89b12Ace2541A6a0d3E5370", "wallets": { - "dao": "0x3676b6ed4ae0c9ce3E0034510719fdF5fd585d55" + "dao": "0x66CcEC236bbcE5f1bBd1b2fC0a4014e57A55ad02" }, "tokens": { "prl": "0x0F4DE51EF1E7611aD0A9181F2d62B9c8408EFfa2", diff --git a/deploy/config/base/config.json b/deploy/config/base/config.json new file mode 100644 index 0000000..1f78628 --- /dev/null +++ b/deploy/config/base/config.json @@ -0,0 +1,40 @@ +{ + "isMainChainFeeDistributor": false, + "accessManager": "0x0e4e7Ca9D7b1e6293D0713EFEfB4BCA010DeBF46", + "wallets": { + "dao": "0xC5201FFE258a95Af986E7cD1fcaD54f3f63f2C95" + }, + "tokens": { + "prl": "0xfD28f108e95f4D41daAE9dbfFf707D677985998E", + "par": "0x0000000000000000000000000000000000000000", + "weth": "0x0000000000000000000000000000000000000000" + }, + "rewardMerkleDistributor": { + "token": "par", + "expiredRewardsRecipient": "dao" + }, + "feeDistributor": { + "mainChain": "polygon", + "destinationReceiver": "0x0000000000000000000000000000000000000000", + "feeToken": "par", + "bridgeableToken": "0x0000000000000000000000000000000000000000" + }, + "sprl1": { + "underlying": "prl", + "feeReceiver": "dao", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200 + }, + "sprl2": { + "feeReceiver": "dao", + "permit2": "0x0000000000000000000000000000000000000000", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200, + "balancerV3Router": "0x0000000000000000000000000000000000000000", + "auraRewardsPool": "0x0000000000000000000000000000000000000000", + "auraBoosterLite": "0x0000000000000000000000000000000000000000", + "auraBPT": "0x0000000000000000000000000000000000000000", + "balancerBPT": "0x0000000000000000000000000000000000000000", + "rewardsTokens": [] + } +} diff --git a/deploy/config/mainnet/config.json b/deploy/config/mainnet/config.json new file mode 100644 index 0000000..c94ef9b --- /dev/null +++ b/deploy/config/mainnet/config.json @@ -0,0 +1,40 @@ +{ + "isMainChainFeeDistributor": false, + "accessManager": "0x94Ea8800444017695345156319e96bdB1E355F7a", + "wallets": { + "dao": "0x25Fc7ffa8f9da3582a36633d04804F0004706F9b" + }, + "tokens": { + "prl": "0x6c0aeceeDc55c9d55d8B99216a670D85330941c3", + "par": "0x68037790a0229e9ce6eaa8a99ea92964106c4703", + "weth": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + }, + "rewardMerkleDistributor": { + "token": "par", + "expiredRewardsRecipient": "dao" + }, + "feeDistributor": { + "mainChain": "polygon", + "destinationReceiver": "0x90337e484B1Cb02132fc150d3Afa262147348545", + "feeToken": "par", + "bridgeableToken": "0x74e3f9D724Da6D7e4db8EcAb4f18e6ba44f60e30" + }, + "sprl1": { + "underlying": "prl", + "feeReceiver": "dao", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200 + }, + "sprl2": { + "feeReceiver": "dao", + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 60, + "balancerV3Router": "0x5C6fb490BDFD3246EB0bB062c168DeCAF4bD9FDd", + "auraRewardsPool": "0x486Be73794Ec19f3e9cF57f06f03fDCf7F0A9da4", + "auraBoosterLite": "0xA57b8d98dAE62B26Ec3bcC4a365338157060B234", + "auraBPT": "0x486Be73794Ec19f3e9cF57f06f03fDCf7F0A9da4", + "balancerBPT": "0x1846C6cBE0D433e152fA358e5fF27968E18bcE7c", + "rewardsTokens": ["0xba100000625a3754423978a60c9317c58a424e3d", "0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF"] + } +} diff --git a/deploy/config/polygon/config.json b/deploy/config/polygon/config.json new file mode 100644 index 0000000..456dcc8 --- /dev/null +++ b/deploy/config/polygon/config.json @@ -0,0 +1,40 @@ +{ + "isMainChainFeeDistributor": true, + "accessManager": "0x7Df74BBB6F82eC1BCB1562a30ef5Bf5c326e2811", + "wallets": { + "dao": "0x2046c0416A558C40cb112E5ebB0Ca764c3C5c32a" + }, + "tokens": { + "prl": "0x7790dd69aa10eD3f1271E41CD7222D2a7d2D5948", + "par": "0xE2Aa7db6dA1dAE97C5f5C6914d285fBfCC32A128", + "weth": "0x0000000000000000000000000000000000000000" + }, + "rewardMerkleDistributor": { + "token": "par", + "expiredRewardsRecipient": "dao" + }, + "feeDistributor": { + "mainChain": "polygon", + "destinationReceiver": "0x0000000000000000000000000000000000000000", + "feeToken": "par", + "bridgeableToken": "0xE462Df8d4Aa7Db3aeCfe810ec8D1fa4f716BC9a8" + }, + "sprl1": { + "underlying": "prl", + "feeReceiver": "dao", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200 + }, + "sprl2": { + "feeReceiver": "dao", + "permit2": "0x0000000000000000000000000000000000000000", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200, + "balancerV3Router": "0x0000000000000000000000000000000000000000", + "auraRewardsPool": "0x0000000000000000000000000000000000000000", + "auraBoosterLite": "0x0000000000000000000000000000000000000000", + "auraBPT": "0x0000000000000000000000000000000000000000", + "balancerBPT": "0x0000000000000000000000000000000000000000", + "rewardsTokens": [] + } +} diff --git a/deploy/config/sepolia/config.json b/deploy/config/sepolia/config.json index 8109848..7a3c1cd 100644 --- a/deploy/config/sepolia/config.json +++ b/deploy/config/sepolia/config.json @@ -1,8 +1,8 @@ { "isMainChainFeeDistributor": true, - "accessManager": "0xe29F44Aa83EB42BA823719EA1D2d84861f72A5D0", + "accessManager": "0xfD28f108e95f4D41daAE9dbfFf707D677985998E", "wallets": { - "dao": "0x3676b6ed4ae0c9ce3E0034510719fdF5fd585d55" + "dao": "0x66CcEC236bbcE5f1bBd1b2fC0a4014e57A55ad02" }, "tokens": { "prl": "0xfaD382eE9B8229fb9B05DF9F9391baC5DD81f346", diff --git a/deploy/config/sonic/config.json b/deploy/config/sonic/config.json new file mode 100644 index 0000000..9b510d8 --- /dev/null +++ b/deploy/config/sonic/config.json @@ -0,0 +1,40 @@ +{ + "isMainChainFeeDistributor": false, + "accessManager": "0x8eFb3DED78FbaEF2a4eFe01E01BBD911E4094b78", + "wallets": { + "dao": "0xC5201FFE258a95Af986E7cD1fcaD54f3f63f2C95" + }, + "tokens": { + "prl": "0xfD28f108e95f4D41daAE9dbfFf707D677985998E", + "par": "0x0000000000000000000000000000000000000000", + "weth": "0x0000000000000000000000000000000000000000" + }, + "rewardMerkleDistributor": { + "token": "par", + "expiredRewardsRecipient": "dao" + }, + "feeDistributor": { + "mainChain": "polygon", + "destinationReceiver": "0x0000000000000000000000000000000000000000", + "feeToken": "par", + "bridgeableToken": "0x0000000000000000000000000000000000000000" + }, + "sprl1": { + "underlying": "prl", + "feeReceiver": "dao", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200 + }, + "sprl2": { + "feeReceiver": "dao", + "permit2": "0x0000000000000000000000000000000000000000", + "startPenaltyPercentage": "500000000000000000", + "timeLockDuration": 2419200, + "balancerV3Router": "0x0000000000000000000000000000000000000000", + "auraRewardsPool": "0x0000000000000000000000000000000000000000", + "auraBoosterLite": "0x0000000000000000000000000000000000000000", + "auraBPT": "0x0000000000000000000000000000000000000000", + "balancerBPT": "0x0000000000000000000000000000000000000000", + "rewardsTokens": [] + } +} diff --git a/foundry.toml b/foundry.toml index 3319e43..c7a621d 100644 --- a/foundry.toml +++ b/foundry.toml @@ -35,3 +35,4 @@ [rpc_endpoints] mainnet = "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}" +polygon = "https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}" \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index f4719b8..bc4d64f 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -59,6 +59,16 @@ const config: HardhatUserConfig = { url: getRpcURL("polygon"), verify: getVerifyConfig("polygon"), }, + base: { + url: getRpcURL("base"), + verify: getVerifyConfig("base"), + accounts, + }, + sonic: { + url: getRpcURL("sonic"), + verify: getVerifyConfig("sonic"), + accounts, + }, }, namedAccounts: { deployer: { diff --git a/scripts/Base.s.sol b/scripts/Base.s.sol new file mode 100644 index 0000000..d507b0c --- /dev/null +++ b/scripts/Base.s.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import { Script, console2 } from "@forge-std/Script.sol"; + +import { IAccessManager } from "@openzeppelin/contracts/access/manager/IAccessManager.sol"; + +contract BaseScript is Script { + /// @dev The address of the transaction broadcaster. + address internal broadcaster; + + IAccessManager accessManager = IAccessManager(0x94Ea8800444017695345156319e96bdB1E355F7a); + + modifier broadcast() { + uint256 privateKey = vm.envUint("PRIVATE_KEY"); + vm.startBroadcast(privateKey); + broadcaster = vm.addr(privateKey); + _; + vm.stopBroadcast(); + } +} + +library Roles { + uint64 constant GOVERNOR_ROLE = 10; + uint64 constant GOVERNOR_ROLE_TIMELOCK = 11; + uint64 constant GUARDIAN_ROLE = 20; + uint64 constant GUARDIAN_ROLE_TIMELOCK = 21; + uint64 constant KEEPER_ROLE = 30; + uint64 constant KEEPER_ROLE_TIMELOCK = 31; + uint64 constant EURp_MINTER_ROLE = 100; + uint64 constant EURp_MINTER_ROLE_TIMELOCK = 105; + uint64 constant USDp_MINTER_ROLE = 110; + uint64 constant USDp_MINTER_ROLE_TIMELOCK = 115; + uint64 constant ETHp_MINTER_ROLE = 120; + uint64 constant ETHp_MINTER_ROLE_TIMELOCK = 125; + uint64 constant BTCp_MINTER_ROLE = 130; + uint64 constant BTCp_MINTER_ROLE_TIMELOCK = 135; +} diff --git a/scripts/SetMainFeeDistributorRole.s.sol b/scripts/SetMainFeeDistributorRole.s.sol new file mode 100644 index 0000000..4fbcd98 --- /dev/null +++ b/scripts/SetMainFeeDistributorRole.s.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "./Base.s.sol"; + +import { MainFeeDistributor } from "contracts/fees/MainFeeDistributor.sol"; +import { FeeCollectorCore } from "contracts/fees/FeeCollectorCore.sol"; + +contract SetMainFeeDistributorRole is BaseScript { + address mainFeeDistributor = 0x90337e484B1Cb02132fc150d3Afa262147348545; + + function run() public broadcast { + bytes4[] memory guardianSelectors = new bytes4[](3); + guardianSelectors[0] = FeeCollectorCore.pause.selector; + guardianSelectors[1] = FeeCollectorCore.unpause.selector; + guardianSelectors[2] = FeeCollectorCore.emergencyRescue.selector; + accessManager.setTargetFunctionRole(mainFeeDistributor, guardianSelectors, Roles.GUARDIAN_ROLE); + + bytes4[] memory governorSelectors = new bytes4[](2); + governorSelectors[0] = MainFeeDistributor.updateBridgeableToken.selector; + governorSelectors[1] = MainFeeDistributor.updateFeeReceivers.selector; + accessManager.setTargetFunctionRole(mainFeeDistributor, governorSelectors, Roles.GOVERNOR_ROLE); + } +} diff --git a/scripts/SetRewardMerkleDistributor.s.sol b/scripts/SetRewardMerkleDistributor.s.sol new file mode 100644 index 0000000..96140df --- /dev/null +++ b/scripts/SetRewardMerkleDistributor.s.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "./Base.s.sol"; + +import { RewardMerkleDistributor } from "contracts/rewardMerkleDistributor/RewardMerkleDistributor.sol"; + +contract SetRewardMerkleDistributorRole is BaseScript { + address rewardMerkleDistributor = 0x7b54f3D993d3bcA077946034Ea710F9c07420C72; + + function run() public broadcast { + bytes4[] memory guardianSelectors = new bytes4[](3); + guardianSelectors[0] = RewardMerkleDistributor.pause.selector; + guardianSelectors[1] = RewardMerkleDistributor.unpause.selector; + guardianSelectors[2] = RewardMerkleDistributor.emergencyRescue.selector; + accessManager.setTargetFunctionRole(rewardMerkleDistributor, guardianSelectors, Roles.GUARDIAN_ROLE); + + bytes4[] memory governorSelectors = new bytes4[](1); + governorSelectors[0] = RewardMerkleDistributor.updateExpiredRewardsRecipient.selector; + accessManager.setTargetFunctionRole(rewardMerkleDistributor, governorSelectors, Roles.GOVERNOR_ROLE); + + bytes4[] memory keeperSelectors = new bytes4[](1); + keeperSelectors[0] = RewardMerkleDistributor.updateMerkleDrop.selector; + accessManager.setTargetFunctionRole(rewardMerkleDistributor, keeperSelectors, Roles.KEEPER_ROLE); + } +} diff --git a/scripts/SetSPRL1Role.s.sol b/scripts/SetSPRL1Role.s.sol new file mode 100644 index 0000000..00043a1 --- /dev/null +++ b/scripts/SetSPRL1Role.s.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "./Base.s.sol"; + +import { TimeLockPenaltyERC20 } from "contracts/sPRL/TimeLockPenaltyERC20.sol"; + +contract SetSPRL1Role is BaseScript { + address sprl1 = 0x7Df74BBB6F82eC1BCB1562a30ef5Bf5c326e2811; + + function run() public broadcast { + bytes4[] memory guardianSelectors = new bytes4[](2); + guardianSelectors[0] = TimeLockPenaltyERC20.pause.selector; + guardianSelectors[1] = TimeLockPenaltyERC20.unpause.selector; + accessManager.setTargetFunctionRole(sprl1, guardianSelectors, Roles.GUARDIAN_ROLE); + + bytes4[] memory governorSelectors = new bytes4[](3); + governorSelectors[0] = TimeLockPenaltyERC20.updateFeeReceiver.selector; + governorSelectors[1] = TimeLockPenaltyERC20.updateStartPenaltyPercentage.selector; + governorSelectors[2] = TimeLockPenaltyERC20.updateTimeLockDuration.selector; + accessManager.setTargetFunctionRole(sprl1, governorSelectors, Roles.GOVERNOR_ROLE); + } +} diff --git a/scripts/SetSPRL2Role.s.sol b/scripts/SetSPRL2Role.s.sol new file mode 100644 index 0000000..0a3d99a --- /dev/null +++ b/scripts/SetSPRL2Role.s.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "./Base.s.sol"; + +import { sPRL2 } from "contracts/sPRL/sPRL2.sol"; +import { TimeLockPenaltyERC20 } from "contracts/sPRL/TimeLockPenaltyERC20.sol"; + +contract SetSPRL2Role is BaseScript { + address sprl2 = 0x90337e484B1Cb02132fc150d3Afa262147348545; + + function run() public broadcast { + bytes4[] memory guardianSelectors = new bytes4[](2); + guardianSelectors[0] = TimeLockPenaltyERC20.pause.selector; + guardianSelectors[1] = TimeLockPenaltyERC20.unpause.selector; + console2.log("guardianSelectors", guardianSelectors); + // accessManager.setTargetFunctionRole(sprl2, guardianSelectors, Roles.GUARDIAN_ROLE); + + bytes4[] memory governorSelectors = new bytes4[](4); + governorSelectors[0] = TimeLockPenaltyERC20.updateFeeReceiver.selector; + governorSelectors[1] = TimeLockPenaltyERC20.updateStartPenaltyPercentage.selector; + governorSelectors[2] = TimeLockPenaltyERC20.updateTimeLockDuration.selector; + governorSelectors[3] = sPRL2.updateRewardTokens.selector; + console2.log("governorSelectors", governorSelectors); + // accessManager.setTargetFunctionRole(sprl2, governorSelectors, Roles.GOVERNOR_ROLE); + } +} diff --git a/scripts/SetSideChainFeeCollectorRole.s.sol b/scripts/SetSideChainFeeCollectorRole.s.sol new file mode 100644 index 0000000..0595cc8 --- /dev/null +++ b/scripts/SetSideChainFeeCollectorRole.s.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "./Base.s.sol"; + +import { SideChainFeeCollector } from "contracts/fees/SideChainFeeCollector.sol"; +import { FeeCollectorCore } from "contracts/fees/FeeCollectorCore.sol"; + +contract SetSideChainFeeCollectorRole is BaseScript { + address sideChainFeeCollector = 0x2A4ABC8dcBE2f68E48dFc0db5784C71dB8d5B89c; + + function run() public broadcast { + bytes4[] memory guardianSelectors = new bytes4[](3); + guardianSelectors[0] = FeeCollectorCore.pause.selector; + guardianSelectors[1] = FeeCollectorCore.unpause.selector; + guardianSelectors[2] = FeeCollectorCore.emergencyRescue.selector; + accessManager.setTargetFunctionRole(sideChainFeeCollector, guardianSelectors, Roles.GUARDIAN_ROLE); + + bytes4[] memory governorSelectors = new bytes4[](2); + governorSelectors[0] = SideChainFeeCollector.updateDestinationReceiver.selector; + governorSelectors[1] = SideChainFeeCollector.updateBridgeableToken.selector; + accessManager.setTargetFunctionRole(sideChainFeeCollector, governorSelectors, Roles.GOVERNOR_ROLE); + + bytes4[] memory keeperSelectors = new bytes4[](1); + keeperSelectors[0] = SideChainFeeCollector.swapLzToken.selector; + accessManager.setTargetFunctionRole(sideChainFeeCollector, keeperSelectors, Roles.KEEPER_ROLE); + } +} diff --git a/test/Base.t.sol b/test/Base.t.sol index a9e9592..901a176 100644 --- a/test/Base.t.sol +++ b/test/Base.t.sol @@ -78,11 +78,7 @@ abstract contract Base_Test is Test, Deploys, Assertions, Defaults, Utils { address owner = vm.addr(privateKey); deadline = block.timestamp + 1 days; SigUtils.Permit memory permit = SigUtils.Permit({ - owner: owner, - spender: spender, - value: amount, - nonce: IERC20Permit(token).nonces(owner), - deadline: deadline + owner: owner, spender: spender, value: amount, nonce: IERC20Permit(token).nonces(owner), deadline: deadline }); bytes32 digest = sigUtils.getTypedDataHash(permit); diff --git a/test/integrations/rewardMerkleDistributor/claim.t.sol b/test/integrations/rewardMerkleDistributor/claim.t.sol index c54a03f..d3557b4 100644 --- a/test/integrations/rewardMerkleDistributor/claim.t.sol +++ b/test/integrations/rewardMerkleDistributor/claim.t.sol @@ -51,6 +51,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { startTime: uint64(block.timestamp) + firstEpochStartDelay, expiryTime: uint64(block.timestamp) + firstEpochStartDelay + epochLength * 6 }); + rewardMerkleDistributor.updateMerkleDrop(firstEpochId, firstEpochMerkleDrop); /// @dev Leaves are added in the order of the merkle tree's secondEpochLeaves. @@ -94,10 +95,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstClaimRewardsAmount, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstClaimRewardsAmount, merkleProof: proof }); rewardMerkleDistributor.claims(claimsData); @@ -147,10 +145,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstClaimRewardsAmount, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstClaimRewardsAmount, merkleProof: proof }); vm.warp(firstEpochMerkleDrop.expiryTime + 1); vm.expectRevert(RewardMerkleDistributor.EpochExpired.selector); @@ -163,10 +158,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: secondEpochId, - account: users.alice.addr, - amount: secondClaimRewardsAmount, - merkleProof: proof + epochId: secondEpochId, account: users.alice.addr, amount: secondClaimRewardsAmount, merkleProof: proof }); vm.expectRevert(RewardMerkleDistributor.NotStarted.selector); rewardMerkleDistributor.claims(claimsData); @@ -179,10 +171,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstClaimRewardsAmount, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstClaimRewardsAmount, merkleProof: proof }); rewardMerkleDistributor.claims(claimsData); @@ -198,10 +187,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstClaimRewardsAmount * 100, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstClaimRewardsAmount * 100, merkleProof: proof }); vm.expectRevert(RewardMerkleDistributor.ProofInvalid.selector); @@ -232,10 +218,7 @@ contract RewardMerkleDistributor_Claim_Integrations_Test is Integrations_Test { RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstClaimRewardsAmount, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstClaimRewardsAmount, merkleProof: proof }); vm.expectRevert(RewardMerkleDistributor.TotalEpochRewardsExceeded.selector); diff --git a/test/integrations/rewardMerkleDistributor/forwardExpiredRewards.t.sol b/test/integrations/rewardMerkleDistributor/forwardExpiredRewards.t.sol index 085212c..06ccb6b 100644 --- a/test/integrations/rewardMerkleDistributor/forwardExpiredRewards.t.sol +++ b/test/integrations/rewardMerkleDistributor/forwardExpiredRewards.t.sol @@ -120,10 +120,7 @@ contract RewardMerkleDistributor_ForwardExpiredRewards_Integrations_Test is Inte RewardMerkleDistributor.ClaimCallData[] memory claimsData = new RewardMerkleDistributor.ClaimCallData[](1); claimsData[0] = RewardMerkleDistributor.ClaimCallData({ - epochId: firstEpochId, - account: users.alice.addr, - amount: firstRewardsAmount, - merkleProof: proof + epochId: firstEpochId, account: users.alice.addr, amount: firstRewardsAmount, merkleProof: proof }); rewardMerkleDistributor.claims(claimsData); @@ -163,9 +160,7 @@ contract RewardMerkleDistributor_ForwardExpiredRewards_Integrations_Test is Inte rewardMerkleDistributor.forwardExpiredRewards(epochIds); } - function test_RewardMerkleDistributor_ForwardExpiredRewards_RevertWhen_EpochIsNotExpired_SeveralEpochs() - external - { + function test_RewardMerkleDistributor_ForwardExpiredRewards_RevertWhen_EpochIsNotExpired_SeveralEpochs() external { vm.startPrank(users.admin.addr); uint64[] memory epochIds = new uint64[](2); epochIds[0] = firstEpochId; diff --git a/test/mocks/TimeLockPenaltyERC20Mock.sol b/test/mocks/TimeLockPenaltyERC20Mock.sol index e8db9fa..7e47417 100644 --- a/test/mocks/TimeLockPenaltyERC20Mock.sol +++ b/test/mocks/TimeLockPenaltyERC20Mock.sol @@ -14,13 +14,7 @@ contract TimeLockPenaltyERC20Mock is TimeLockPenaltyERC20 { uint64 timeLockDuration ) TimeLockPenaltyERC20( - name, - symbol, - underlying, - feeReceiver, - accessManager, - startPenaltyPercentage, - timeLockDuration + name, symbol, underlying, feeReceiver, accessManager, startPenaltyPercentage, timeLockDuration ) { } } diff --git a/utils/getRpcURL.ts b/utils/getRpcURL.ts index aa2f387..2a77467 100644 --- a/utils/getRpcURL.ts +++ b/utils/getRpcURL.ts @@ -20,6 +20,12 @@ export const getRpcURL = (network: string): string => { case "fantom": { return `https://fantom-mainnet.g.alchemy.com/v2/${apiKey}`; } + case "base": { + return `https://base-mainnet.g.alchemy.com/v2/${apiKey}`; + } + case "sonic": { + return `https://sonic-mainnet.g.alchemy.com/v2/${apiKey}`; + } default: { throw new Error(`${network} Network RPC not configured`); } diff --git a/utils/getVerifyConfig.ts b/utils/getVerifyConfig.ts index 5541052..558c7f4 100644 --- a/utils/getVerifyConfig.ts +++ b/utils/getVerifyConfig.ts @@ -61,6 +61,24 @@ export const getVerifyConfig = (network: string): VerifyConfig => { }, }; } + case "base": { + if (!process.env.BASE_ETHERSCAN_API_KEY) throw new Error("BASE_ETHERSCAN_API_KEY is not set"); + return { + etherscan: { + apiUrl: "https://api.basescan.org", + apiKey: process.env.BASE_ETHERSCAN_API_KEY, + }, + }; + } + case "sonic": { + if (!process.env.SONIC_ETHERSCAN_API_KEY) throw new Error("SONIC_ETHERSCAN_API_KEY is not set"); + return { + etherscan: { + apiUrl: "https://api.sonicscan.org", + apiKey: process.env.SONIC_ETHERSCAN_API_KEY, + }, + }; + } default: { throw new Error(`${network} Network Verify not configured`); } From c5b5c5a22279b4fe35b4f345a39c2be482eec0ba Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 28 Apr 2026 15:04:38 +0300 Subject: [PATCH 08/20] feat: add sPRL2V2 contract A new staking vault that holds the 20WETH-80PRL Balancer V3 BPT directly, with the same time-lock and penalty mechanics as sPRL2. --- contracts/sPRL/sPRL2V2.sol | 326 +++++++++++++++++++++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 contracts/sPRL/sPRL2V2.sol diff --git a/contracts/sPRL/sPRL2V2.sol b/contracts/sPRL/sPRL2V2.sol new file mode 100644 index 0000000..2cd74cd --- /dev/null +++ b/contracts/sPRL/sPRL2V2.sol @@ -0,0 +1,326 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import { TimeLockPenaltyERC20, IERC20, IERC20Permit } from "./TimeLockPenaltyERC20.sol"; +import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import { Address } from "@openzeppelin/contracts/utils/Address.sol"; + +import { IBalancerV3Router } from "contracts/interfaces/IBalancerV3Router.sol"; +import { IPermit2 } from "contracts/interfaces/IPermit2.sol"; +import { IWrappedNative } from "contracts/interfaces/IWrappedNative.sol"; + +/// @title sPRL2V2 +/// @author Cooper Labs +/// @custom:contact security@cooperlabs.xyz +/// @notice sPRL2V2 is a staking contract that allows users to deposit PRL and WETH into a Balancer V3 pool. +/// The BPT is held by the contract. +contract sPRL2V2 is TimeLockPenaltyERC20 { + using Address for address payable; + using SafeERC20 for IERC20; + + string constant NAME = "Stake 20WETH-80PRL Deposit Vault"; + string constant SYMBOL = "sPRL2"; + + //------------------------------------------- + // Storage + //------------------------------------------- + + /// @notice The configuration parameters for the contract. + struct BPTConfigParams { + IBalancerV3Router balancerRouter; + IERC20 balancerBPT; + IERC20 prl; + IWrappedNative weth; + IPermit2 permit2; + } + + /// @notice The Permit2 contract. + IPermit2 public immutable PERMIT2; + /// @notice The Balancer V3 router. + IBalancerV3Router public immutable BALANCER_ROUTER; + /// @notice The PRL token. + IERC20 public immutable PRL; + /// @notice The WETH token. + IWrappedNative public immutable WETH; + /// @notice The BPT token. + IERC20 public immutable BPT; + /// @notice Whether the pair is reversed. + bool public immutable isReversedBalancerPair; + + //------------------------------------------- + // Events + //------------------------------------------- + + /// @notice Event emitted when a user withdraws PRL and WETH for multiple requests. + /// @param requestIds The IDs of the withdrawal requests. + /// @param user The address of the user. + /// @param prlAmount The amount of PRL received. + /// @param wethAmount The amount of WETH received. + /// @param slashBptAmount The amount of BPT sent to the fee receiver. + event WithdrawlPRLAndWeth( + uint256[] requestIds, address user, uint256 prlAmount, uint256 wethAmount, uint256 slashBptAmount + ); + + /// @notice Event emitted when a user withdraws BPT for multiple requests. + /// @param requestIds The IDs of the withdrawal requests. + /// @param user The address of the user. + /// @param bptAmount The amount of BPT received. + /// @param slashBptAmount The amount of BPT sent to the fee receiver. + event WithdrawlBPT(uint256[] requestIds, address user, uint256 bptAmount, uint256 slashBptAmount); + + //------------------------------------------- + // Constructor + //------------------------------------------- + + /// @notice Constructor for the sPRL2V2 contract. + /// @param _feeReceiver The address of the fee receiver. + /// @param _accessManager The address of the access manager. + /// @param _startPenaltyPercentage The start penalty percentage. + /// @param _timeLockDuration The time lock duration. + /// @param _configParams The configuration parameters for the contract. + constructor( + address _feeReceiver, + address _accessManager, + uint256 _startPenaltyPercentage, + uint64 _timeLockDuration, + BPTConfigParams memory _configParams + ) + TimeLockPenaltyERC20( + NAME, + SYMBOL, + address(_configParams.balancerBPT), + _feeReceiver, + _accessManager, + _startPenaltyPercentage, + _timeLockDuration + ) + { + BALANCER_ROUTER = _configParams.balancerRouter; + PRL = _configParams.prl; + WETH = _configParams.weth; + BPT = _configParams.balancerBPT; + PERMIT2 = _configParams.permit2; + isReversedBalancerPair = address(_configParams.weth) > address(_configParams.prl); + + /// @dev Approve PERMIT2 to spend PRL and WETH + PRL.approve(address(PERMIT2), type(uint256).max); + WETH.approve(address(PERMIT2), type(uint256).max); + } + + //------------------------------------------- + // External Functions + //------------------------------------------- + + /// @notice Deposit BPT and mint the equivalent amount of sPRL2V2. + /// @param _amount The amount of BPT to deposit. + function depositBPT(uint256 _amount) external whenNotPaused nonReentrant { + BPT.safeTransferFrom(msg.sender, address(this), _amount); + _deposit(_amount); + } + + /// @notice Deposit PRL and WETH. + /// @param _maxPrlAmount The maximum amount of PRL to deposit. + /// @param _maxWethAmount The maximum amount of WETH to deposit. + /// @param _exactBptAmount The exact amount of BPT to mint. + /// @param _deadline The deadline for the permit. + /// @param _v The v parameter for the permit. + /// @param _r The r parameter for the permit. + /// @param _s The s parameter for the permit. + function depositPRLAndWeth( + uint256 _maxPrlAmount, + uint256 _maxWethAmount, + uint256 _exactBptAmount, + uint256 _deadline, + uint8 _v, + bytes32 _r, + bytes32 _s + ) + external + whenNotPaused + nonReentrant + returns (uint256[] memory amountsIn, uint256 bptAmount) + { + // @dev using try catch to avoid reverting the transaction in case of front-running + try IERC20Permit(address(PRL)).permit(msg.sender, address(this), _maxPrlAmount, _deadline, _v, _r, _s) { } + catch { } + + PRL.safeTransferFrom(msg.sender, address(this), _maxPrlAmount); + WETH.transferFrom(msg.sender, address(this), _maxWethAmount); + + (amountsIn, bptAmount) = _joinPool(_maxPrlAmount, _maxWethAmount, _exactBptAmount, false); + + _deposit(bptAmount); + } + + /// @notice Deposit PRL and ETH. + /// @param _maxPrlAmount The maximum amount of PRL to deposit. + /// @param _exactBptAmount The exact amount of BPT to mint. + /// @param _deadline The deadline for the permit. + /// @param _v The v parameter for the permit. + /// @param _r The r parameter for the permit. + /// @param _s The s parameter for the permit. + function depositPRLAndEth( + uint256 _maxPrlAmount, + uint256 _exactBptAmount, + uint256 _deadline, + uint8 _v, + bytes32 _r, + bytes32 _s + ) + external + payable + whenNotPaused + nonReentrant + returns (uint256[] memory amountsIn, uint256 bptAmount) + { + // @dev using try catch to avoid reverting the transaction in case of front-running + try IERC20Permit(address(PRL)).permit(msg.sender, address(this), _maxPrlAmount, _deadline, _v, _r, _s) { } + catch { } + + PRL.safeTransferFrom(msg.sender, address(this), _maxPrlAmount); + + (amountsIn, bptAmount) = _joinPool(_maxPrlAmount, msg.value, _exactBptAmount, true); + + _deposit(bptAmount); + } + + /// @notice Withdraw BPT for multiple requests. + /// @param _requestIds The request IDs to withdraw from. + /// @param _maxAcceptablePenalty The maximum penalty percentage to apply. + function withdrawBPT(uint256[] calldata _requestIds, uint256 _maxAcceptablePenalty) external nonReentrant { + (uint256 totalBptAmount, uint256 totalBptAmountSlashed) = _withdrawMultiple(_requestIds, _maxAcceptablePenalty); + if (totalBptAmountSlashed > 0) { + BPT.safeTransfer(feeReceiver, totalBptAmountSlashed); + } + emit WithdrawlBPT(_requestIds, msg.sender, totalBptAmount, totalBptAmountSlashed); + BPT.safeTransfer(msg.sender, totalBptAmount); + } + + /// @notice Withdraw PRL and WETH for multiple requests. + /// @param _requestIds The request IDs to withdraw from. + /// @param _minPrlAmount The minimum amount of PRL to receive. + /// @param _minWethAmount The minimum amount of WETH to receive. + /// @return prlAmount The amount of PRL received. + /// @return wethAmount The amount of WETH received. + function withdrawPRLAndWeth( + uint256[] calldata _requestIds, + uint256 _minPrlAmount, + uint256 _minWethAmount, + uint256 _maxPenaltyPercentage + ) + external + nonReentrant + returns (uint256 prlAmount, uint256 wethAmount) + { + (uint256 totalBptAmount, uint256 totalBptAmountSlashed) = _withdrawMultiple(_requestIds, _maxPenaltyPercentage); + + (prlAmount, wethAmount) = _exitPool(totalBptAmount, totalBptAmountSlashed, _minPrlAmount, _minWethAmount); + + emit WithdrawlPRLAndWeth(_requestIds, msg.sender, prlAmount, wethAmount, totalBptAmountSlashed); + PRL.safeTransfer(msg.sender, prlAmount); + WETH.transfer(msg.sender, wethAmount); + } + + /// @notice Allow users to emergency withdraw assets without penalties. + /// @dev This function can only be called when the contract is paused. + /// @param _amount The amount of assets to unlock. + function emergencyWithdraw(uint256 _amount) external whenPaused nonReentrant { + _burn(msg.sender, _amount); + emit EmergencyWithdraw(msg.sender, _amount); + BPT.safeTransfer(msg.sender, _amount); + } + + /// @notice Allow ETH to be received. + receive() external payable { } + + //------------------------------------------- + // Internal Functions + //------------------------------------------- + + /// @notice Join the pool. + /// @param _maxPrlAmount The maximum amount of PRL to deposit. + /// @param _maxEthAmount The maximum amount of ETH to deposit. + /// @param _exactBptAmount The exact amount of BPT to mint. + /// @param _isEth Whether the ETH is being deposited by the user. + /// @return amountsIn The amounts of PRL and ETH deposited. + /// @return bptAmount The amount of BPT received. + function _joinPool( + uint256 _maxPrlAmount, + uint256 _maxEthAmount, + uint256 _exactBptAmount, + bool _isEth + ) + internal + returns (uint256[] memory amountsIn, uint256 bptAmount) + { + uint256[] memory maxAmountsIn = new uint256[](2); + (maxAmountsIn[0], maxAmountsIn[1]) = + isReversedBalancerPair ? (_maxPrlAmount, _maxEthAmount) : (_maxEthAmount, _maxPrlAmount); + + /// @dev Approve tokens. + PERMIT2.approve(address(PRL), address(BALANCER_ROUTER), uint160(_maxPrlAmount), 0); + PERMIT2.approve(address(WETH), address(BALANCER_ROUTER), uint160(_maxEthAmount), 0); + + /// @dev Wrap ETH. + if (_isEth) { + WETH.deposit{ value: _maxEthAmount }(); + } + /// @dev Deposit into Balancer V3 + uint256[] memory _amountsIn = + BALANCER_ROUTER.addLiquidityProportional(address(BPT), maxAmountsIn, _exactBptAmount, false, ""); + + /// @dev Return any remaining PRL. + (uint256 prlAmountToReturn, uint256 ethAmountToReturn) = isReversedBalancerPair + ? (_maxPrlAmount - _amountsIn[0], _maxEthAmount - _amountsIn[1]) + : (_maxPrlAmount - _amountsIn[1], _maxEthAmount - _amountsIn[0]); + + if (prlAmountToReturn > 0) { + PRL.transfer(msg.sender, prlAmountToReturn); + } + + /// @dev Return any remaining WETH. + if (ethAmountToReturn > 0) { + if (_isEth) { + WETH.withdraw(ethAmountToReturn); + payable(msg.sender).sendValue(ethAmountToReturn); + } else { + WETH.transfer(msg.sender, ethAmountToReturn); + } + } + + return (_amountsIn, _exactBptAmount); + } + + /// @notice Exit the pool. + /// @dev Balancer V3 will revert if the amount of tokens received is less than the minimum expected. + /// @param _bptAmount The amount of BPT to withdraw. + /// @param _minPrlAmount The minimum amount of PRL to receive. + /// @param _minWethAmount The minimum amount of WETH to receive. + /// @return _prlAmount The amount of PRL received. + /// @return _wethAmount The amount of WETH received. + function _exitPool( + uint256 _bptAmount, + uint256 _bptAmountSlashed, + uint256 _minPrlAmount, + uint256 _minWethAmount + ) + internal + returns (uint256 _prlAmount, uint256 _wethAmount) + { + if (_bptAmountSlashed > 0) { + BPT.safeTransfer(feeReceiver, _bptAmountSlashed); + } + + uint256[] memory minAmountsOut = new uint256[](2); + (minAmountsOut[0], minAmountsOut[1]) = + isReversedBalancerPair ? (_minPrlAmount, _minWethAmount) : (_minWethAmount, _minPrlAmount); + + BPT.approve(address(BALANCER_ROUTER), _bptAmount); + + (uint256[] memory amountsOut) = + BALANCER_ROUTER.removeLiquidityProportional(address(BPT), _bptAmount, minAmountsOut, false, ""); + + (_prlAmount, _wethAmount) = + isReversedBalancerPair ? (amountsOut[0], amountsOut[1]) : (amountsOut[1], amountsOut[0]); + } +} From 052e39401def01c6955d72a92ecd5d4f2614204e Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 28 Apr 2026 15:05:03 +0300 Subject: [PATCH 09/20] test: add sPRL2V2 integration and fork tests --- test/Integrations.t.sol | 10 ++ test/forks/ForkV2.t.sol | 46 +++++ test/forks/sPRL2V2/deposit.t.sol | 64 +++++++ test/forks/sPRL2V2/withdraw.t.sol | 62 +++++++ test/helpers/Deploys.sol | 18 ++ .../sPRL2V2/cancelWithdrawalRequests.t.sol | 75 ++++++++ test/integrations/sPRL2V2/constructor.t.sol | 35 ++++ test/integrations/sPRL2V2/deposit.t.sol | 106 ++++++++++++ .../sPRL2V2/requestWithdraw.t.sol | 52 ++++++ .../sPRL2V2/updateFeeReceiver.t.sol | 21 +++ test/integrations/sPRL2V2/withdraw.t.sol | 163 ++++++++++++++++++ 11 files changed, 652 insertions(+) create mode 100644 test/forks/ForkV2.t.sol create mode 100644 test/forks/sPRL2V2/deposit.t.sol create mode 100644 test/forks/sPRL2V2/withdraw.t.sol create mode 100644 test/integrations/sPRL2V2/cancelWithdrawalRequests.t.sol create mode 100644 test/integrations/sPRL2V2/constructor.t.sol create mode 100644 test/integrations/sPRL2V2/deposit.t.sol create mode 100644 test/integrations/sPRL2V2/requestWithdraw.t.sol create mode 100644 test/integrations/sPRL2V2/updateFeeReceiver.t.sol create mode 100644 test/integrations/sPRL2V2/withdraw.t.sol diff --git a/test/Integrations.t.sol b/test/Integrations.t.sol index f784bcf..ae048a3 100644 --- a/test/Integrations.t.sol +++ b/test/Integrations.t.sol @@ -53,6 +53,16 @@ abstract contract Integrations_Test is Base_Test { }) ); + sprl2v2 = _deploySPRL2V2( + users.daoTreasury.addr, + address(accessManager), + DEFAULT_PENALTY_PERCENTAGE, + DEFAULT_TIME_LOCK_DURATION, + sPRL2V2.BPTConfigParams({ + balancerRouter: balancerV3RouterMock, balancerBPT: bpt, prl: prl, weth: weth, permit2: permit2 + }) + ); + rewardMerkleDistributor = _deployRewardMerkleDistributor(address(accessManager), address(par), users.daoTreasury.addr); } diff --git a/test/forks/ForkV2.t.sol b/test/forks/ForkV2.t.sol new file mode 100644 index 0000000..dda7756 --- /dev/null +++ b/test/forks/ForkV2.t.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.25; + +import "../Base.t.sol"; + +/// @notice Common logic needed by all sPRL2V2 fork tests. +abstract contract ForkV2_Test is Base_Test { + function setUp() public virtual override { + // Fork Mainnet at a specific block number. + vm.createSelectFork({ blockNumber: 24_905_586, urlOrAlias: "mainnet" }); + + // The base is set up after the fork is selected so that the base test contracts are deployed on the fork. + Base_Test.setUp(); + + _setForkContracts(); + + sprl2v2 = _deploySPRL2V2( + users.daoTreasury.addr, + address(accessManager), + DEFAULT_PENALTY_PERCENTAGE, + DEFAULT_TIME_LOCK_DURATION, + sPRL2V2.BPTConfigParams({ + balancerRouter: IBalancerV3Router(address(balancerV3RouterMock)), + balancerBPT: bpt, + prl: prl, + weth: weth, + permit2: permit2 + }) + ); + } + + function _setForkContracts() internal virtual { + permit2 = Permit2Mock(0x000000000022D473030F116dDEE9F6B43aC78BA3); + vm.label({ account: address(permit2), newLabel: "Permit2" }); + + balancerV3RouterMock = BalancerV3RouterMock(0x5C6fb490BDFD3246EB0bB062c168DeCAF4bD9FDd); + vm.label({ account: address(balancerV3RouterMock), newLabel: "BalancerV3Router" }); + + bpt = ERC20Mock(0x1846C6cBE0D433e152fA358e5fF27968E18bcE7c); + vm.label({ account: address(bpt), newLabel: "BPT" }); + prl = ERC20Mock(0x6c0aeceeDc55c9d55d8B99216a670D85330941c3); + vm.label({ account: address(prl), newLabel: "PRL" }); + weth = WrappedNativeMock(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); + vm.label({ account: address(weth), newLabel: "WETH" }); + } +} diff --git a/test/forks/sPRL2V2/deposit.t.sol b/test/forks/sPRL2V2/deposit.t.sol new file mode 100644 index 0000000..47fb729 --- /dev/null +++ b/test/forks/sPRL2V2/deposit.t.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.25; + +import "test/forks/ForkV2.t.sol"; + +contract SPRL2V2_Deposits_Fork_Test is ForkV2_Test { + uint256 exactBptAmount = 1e18; + + function setUp() public override { + super.setUp(); + sigUtils = new SigUtils(prl.DOMAIN_SEPARATOR()); + + vm.startPrank(users.alice.addr); + deal(address(prl), address(users.alice.addr), INITIAL_BALANCE); + deal(address(weth), address(users.alice.addr), INITIAL_BALANCE); + } + + function test_fork_sPRL2V2_DepositBPT() external { + prl.approve(address(permit2), type(uint256).max); + weth.approve(address(permit2), type(uint256).max); + + uint48 deadline = uint48(block.timestamp + 15); + permit2.approve(address(prl), address(balancerV3RouterMock), uint160(INITIAL_BALANCE), deadline); + permit2.approve(address(weth), address(balancerV3RouterMock), uint160(INITIAL_BALANCE), deadline); + + balancerV3RouterMock.addLiquidityProportional( + address(bpt), _getMaxDepositAmountParams(INITIAL_BALANCE, INITIAL_BALANCE), exactBptAmount, false, "" + ); + assertEq(bpt.balanceOf(users.alice.addr), exactBptAmount); + + bpt.approve(address(sprl2v2), exactBptAmount); + sprl2v2.depositBPT(exactBptAmount); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + assertEq(bpt.balanceOf(users.alice.addr), 0); + } + + function test_fork_sPRL2V2_DepositPRLAndWeth() external { + weth.approve(address(sprl2v2), type(uint256).max); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), INITIAL_BALANCE, address(prl)); + + (uint256[] memory amountsIn, uint256 bptAmount) = + sprl2v2.depositPRLAndWeth(INITIAL_BALANCE, INITIAL_BALANCE, exactBptAmount, deadline, v, r, s); + assertEq(bptAmount, exactBptAmount); + assertEq(INITIAL_BALANCE - amountsIn[0], prl.balanceOf(users.alice.addr)); + assertEq(INITIAL_BALANCE - amountsIn[1], weth.balanceOf(users.alice.addr)); + assertEq(bpt.balanceOf(users.alice.addr), 0); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + } + + function _getMaxDepositAmountParams( + uint256 maxPrlAmount, + uint256 maxWethAmount + ) + internal + view + returns (uint256[] memory maxAmountsIn) + { + maxAmountsIn = new uint256[](2); + (maxAmountsIn[0], maxAmountsIn[1]) = + address(weth) > address(prl) ? (maxPrlAmount, maxWethAmount) : (maxWethAmount, maxPrlAmount); + } +} diff --git a/test/forks/sPRL2V2/withdraw.t.sol b/test/forks/sPRL2V2/withdraw.t.sol new file mode 100644 index 0000000..7353769 --- /dev/null +++ b/test/forks/sPRL2V2/withdraw.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.25; + +import "test/forks/ForkV2.t.sol"; + +contract SPRL2V2_Withdraw_Fork_Test is ForkV2_Test { + uint256 exactBptAmount = 1e18; + uint256 prlAmountDeposited; + uint256 wethAmountDeposited; + + function setUp() public override { + super.setUp(); + sigUtils = new SigUtils(prl.DOMAIN_SEPARATOR()); + + vm.startPrank(users.alice.addr); + deal(address(prl), address(users.alice.addr), INITIAL_BALANCE); + deal(address(weth), address(users.alice.addr), INITIAL_BALANCE); + weth.approve(address(sprl2v2), type(uint256).max); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), INITIAL_BALANCE, address(prl)); + + (uint256[] memory amountsIn,) = + sprl2v2.depositPRLAndWeth(INITIAL_BALANCE, INITIAL_BALANCE, exactBptAmount, deadline, v, r, s); + prlAmountDeposited = amountsIn[0]; + wethAmountDeposited = amountsIn[1]; + } + + modifier requestWithdrawal() { + sprl2v2.requestWithdraw(exactBptAmount); + _; + } + + function test_fork_sPRL2V2_WithdrawBPT() external requestWithdrawal { + skip(sprl2v2.timeLockDuration()); + uint256 aliceBptBalance = sprl2v2.balanceOf(users.alice.addr); + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + sprl2v2.withdrawBPT(requestIds, DEFAULT_PENALTY_PERCENTAGE); + assertEq(sprl2v2.balanceOf(users.alice.addr), 0); + assertEq(bpt.balanceOf(users.alice.addr), aliceBptBalance + exactBptAmount); + } + + function test_fork_sPRL2V2_WithdrawPRLAndWeth() external requestWithdrawal { + skip(sprl2v2.timeLockDuration()); + uint256 alicePrlBalance = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalance = weth.balanceOf(users.alice.addr); + + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + // Calculate the minimum amounts to withdraw 1% slippage + uint256 minPrlAmount = prlAmountDeposited * 99 / 100; + uint256 minWethAmount = wethAmountDeposited * 99 / 100; + + (uint256 prlAmount, uint256 wethAmount) = + sprl2v2.withdrawPRLAndWeth(requestIds, minPrlAmount, minWethAmount, DEFAULT_PENALTY_PERCENTAGE); + + assertEq(sprl2v2.balanceOf(users.alice.addr), 0); + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalance + prlAmount); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalance + wethAmount); + } +} diff --git a/test/helpers/Deploys.sol b/test/helpers/Deploys.sol index ff708da..4067bf4 100644 --- a/test/helpers/Deploys.sol +++ b/test/helpers/Deploys.sol @@ -16,6 +16,7 @@ import { FeeCollectorCore } from "contracts/fees/FeeCollectorCore.sol"; import { sPRL1 } from "contracts/sPRL/sPRL1.sol"; import { sPRL2 } from "contracts/sPRL/sPRL2.sol"; +import { sPRL2V2 } from "contracts/sPRL/sPRL2V2.sol"; import { RewardMerkleDistributor } from "contracts/rewardMerkleDistributor/RewardMerkleDistributor.sol"; @@ -65,6 +66,7 @@ abstract contract Deploys is Test { AccessManager internal accessManager; sPRL2 internal sprl2; + sPRL2V2 internal sprl2v2; sPRL1 internal sprl1; TimeLockPenaltyERC20Mock internal timeLockPenaltyERC20; @@ -236,4 +238,20 @@ abstract contract Deploys is Test { auraRewardPoolMock = new AuraRewardPoolMock(address(auraBoosterLiteMock)); vm.label({ account: address(auraRewardPoolMock), newLabel: "AuraRewardPoolMock" }); } + + function _deploySPRL2V2( + address _feeReceiver, + address _accessManager, + uint256 _startPenaltyPercentage, + uint64 _timeLockDuration, + sPRL2V2.BPTConfigParams memory _configParams + ) + internal + returns (sPRL2V2) + { + sPRL2V2 _sPRL2V2 = + new sPRL2V2(_feeReceiver, _accessManager, _startPenaltyPercentage, _timeLockDuration, _configParams); + vm.label({ account: address(_sPRL2V2), newLabel: "sPRL2V2" }); + return _sPRL2V2; + } } diff --git a/test/integrations/sPRL2V2/cancelWithdrawalRequests.t.sol b/test/integrations/sPRL2V2/cancelWithdrawalRequests.t.sol new file mode 100644 index 0000000..8f04342 --- /dev/null +++ b/test/integrations/sPRL2V2/cancelWithdrawalRequests.t.sol @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import { Pausable } from "@openzeppelin/contracts/utils/Pausable.sol"; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_CancelWithdrawalRequests_Integrations_Test is Integrations_Test { + function setUp() public override { + super.setUp(); + vm.startPrank(users.alice.addr); + + deal(address(bpt), address(users.alice.addr), INITIAL_BALANCE); + bpt.approve(address(sprl2v2), type(uint256).max); + sprl2v2.depositBPT(INITIAL_BALANCE); + } + + modifier requestOneWithdraw() { + sprl2v2.requestWithdraw(INITIAL_BALANCE); + _; + } + + function test_SPRL2V2_CancelWithdrawalRequests_SingleRequest() external requestOneWithdraw { + uint256[] memory ids = new uint256[](1); + ids[0] = 0; + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.WithdrawalRequestCancelled(ids[0], users.alice.addr, INITIAL_BALANCE); + sprl2v2.cancelWithdrawalRequests(ids); + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_BALANCE); + assertEq(sprl2v2.unlockingAmount(), 0); + + (uint256 requestAmount, uint64 requestTime, uint64 releaseTime, TimeLockPenaltyERC20.WITHDRAW_STATUS status) = + sprl2v2.userVsWithdrawals(users.alice.addr, ids[0]); + + assertEq(requestAmount, INITIAL_BALANCE); + assertEq(requestTime, block.timestamp); + assertEq(releaseTime, block.timestamp + sprl2v2.timeLockDuration()); + assertEq(status, TimeLockPenaltyERC20.WITHDRAW_STATUS.CANCELLED); + + uint256[] memory requestIds = sprl2v2.findUnlockingIDs(users.alice.addr, 0, false, 1); + assertEq(requestIds.length, 0); + } + + modifier requestMultiWithdraw() { + sprl2v2.requestWithdraw(1); + sprl2v2.requestWithdraw(2); + sprl2v2.requestWithdraw(3); + sprl2v2.requestWithdraw(4); + sprl2v2.requestWithdraw(5); + _; + } + + function test_SPRL2V2_CancelWithdrawalRequests_MultipleRequests() external requestMultiWithdraw { + uint256[] memory ids = new uint256[](3); + ids[0] = 0; + ids[1] = 2; + ids[2] = 4; + sprl2v2.cancelWithdrawalRequests(ids); + + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_BALANCE - 6); + assertEq(sprl2v2.unlockingAmount(), 6); + + uint256[] memory requestIds = sprl2v2.findUnlockingIDs(users.alice.addr, 0, false, 10); + assertEq(requestIds.length, 2); + assertEq(requestIds[0], 1); + assertEq(requestIds[1], 3); + } + + function test_SPRL2V2_CancelWithdrawalRequests_RevertWhen_WrongRequestStatus() external { + uint256[] memory ids = new uint256[](1); + ids[0] = 0; + vm.expectRevert(abi.encodeWithSelector(TimeLockPenaltyERC20.CannotCancelWithdrawalRequest.selector, ids[0])); + sprl2v2.cancelWithdrawalRequests(ids); + } +} diff --git a/test/integrations/sPRL2V2/constructor.t.sol b/test/integrations/sPRL2V2/constructor.t.sol new file mode 100644 index 0000000..36c46bc --- /dev/null +++ b/test/integrations/sPRL2V2/constructor.t.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_Constructor_Integrations_Test is Integrations_Test { + function test_SPRL2V2_Constructor() external { + sprl2v2 = new sPRL2V2( + users.daoTreasury.addr, + address(accessManager), + DEFAULT_PENALTY_PERCENTAGE, + DEFAULT_TIME_LOCK_DURATION, + sPRL2V2.BPTConfigParams({ + balancerRouter: IBalancerV3Router(address(balancerV3RouterMock)), + balancerBPT: IERC20(address(bpt)), + prl: IERC20(address(prl)), + weth: IWrappedNative(address(weth)), + permit2: IPermit2(address(permit2)) + }) + ); + assertEq(sprl2v2.authority(), address(accessManager)); + assertEq(address(sprl2v2.underlying()), address(bpt)); + assertEq(sprl2v2.timeLockDuration(), DEFAULT_TIME_LOCK_DURATION); + assertEq(sprl2v2.startPenaltyPercentage(), DEFAULT_PENALTY_PERCENTAGE); + assertEq(sprl2v2.unlockingAmount(), 0); + assertEq(sprl2v2.feeReceiver(), users.daoTreasury.addr); + assertEq(sprl2v2.name(), "Stake 20WETH-80PRL Deposit Vault"); + assertEq(sprl2v2.symbol(), "sPRL2"); + assertEq(address(sprl2v2.BALANCER_ROUTER()), address(balancerV3RouterMock)); + assertEq(address(sprl2v2.BPT()), address(bpt)); + assertEq(address(sprl2v2.PRL()), address(prl)); + assertEq(address(sprl2v2.WETH()), address(weth)); + assertEq(address(sprl2v2.PERMIT2()), address(permit2)); + } +} diff --git a/test/integrations/sPRL2V2/deposit.t.sol b/test/integrations/sPRL2V2/deposit.t.sol new file mode 100644 index 0000000..8577d84 --- /dev/null +++ b/test/integrations/sPRL2V2/deposit.t.sol @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_Deposits_Integrations_Test is Integrations_Test { + uint256 exactBptAmount = 1e18; + + function setUp() public override { + super.setUp(); + sigUtils = new SigUtils(prl.DOMAIN_SEPARATOR()); + + vm.startPrank(users.alice.addr); + weth.approve(address(sprl2v2), type(uint256).max); + } + + function test_sPRL2V2_DepositBPT() external { + deal(address(bpt), address(users.alice.addr), INITIAL_BALANCE); + bpt.approve(address(sprl2v2), INITIAL_BALANCE); + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.Deposited(users.alice.addr, INITIAL_BALANCE); + sprl2v2.depositBPT(INITIAL_BALANCE); + + assertEq(bpt.balanceOf(address(users.alice.addr)), 0); + assertEq(sprl2v2.balanceOf(address(users.alice.addr)), INITIAL_BALANCE); + } + + function test_sPRL2V2_DepositPRLAndWeth(uint256 maxPrlAmount, uint256 maxWethAmount) external { + maxPrlAmount = bound(maxPrlAmount, 1, prl.balanceOf(users.alice.addr)); + maxWethAmount = bound(maxWethAmount, 1, weth.balanceOf(users.alice.addr)); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalanceBefore = weth.balanceOf(users.alice.addr); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), maxPrlAmount, address(prl)); + + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.Deposited(users.alice.addr, exactBptAmount); + sprl2v2.depositPRLAndWeth(maxPrlAmount, maxWethAmount, exactBptAmount, deadline, v, r, s); + + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore - maxPrlAmount); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalanceBefore - maxWethAmount); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + } + + function test_sPRL2V2_DepositPRLAndEth(uint256 maxPrlAmount, uint256 maxEthAmount) external { + maxPrlAmount = bound(maxPrlAmount, 1, prl.balanceOf(users.alice.addr)); + maxEthAmount = bound(maxEthAmount, 1, (users.alice.addr).balance); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceEthBalanceBefore = (users.alice.addr).balance; + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), maxPrlAmount, address(prl)); + + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.Deposited(users.alice.addr, exactBptAmount); + sprl2v2.depositPRLAndEth{ value: maxEthAmount }(maxPrlAmount, exactBptAmount, deadline, v, r, s); + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore - maxPrlAmount); + assertEq((users.alice.addr).balance, aliceEthBalanceBefore - maxEthAmount); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + } + + function test_sPRL2V2_Deposit_ReturnRemainingTokens_ETH(uint256 maxPrlAmount, uint256 maxEthAmount) external { + maxPrlAmount = bound(maxPrlAmount, 1, prl.balanceOf(users.alice.addr)); + maxEthAmount = bound(maxEthAmount, 1, (users.alice.addr).balance); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceEthBalanceBefore = (users.alice.addr).balance; + + // @dev should use half of the WETH and half of the PRL + balancerV3RouterMock.updateRatio(0.5e18); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), maxPrlAmount, address(prl)); + + sprl2v2.depositPRLAndEth{ value: maxEthAmount }(maxPrlAmount, exactBptAmount, deadline, v, r, s); + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore - maxPrlAmount / 2); + assertEq((users.alice.addr).balance, aliceEthBalanceBefore - maxEthAmount / 2); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + assertEq(prl.balanceOf(address(sprl2v2)), 0); + assertEq(weth.balanceOf(address(sprl2v2)), 0); + } + + function test_sPRL2V2_Deposit_ReturnRemainingTokens_WETH(uint256 maxPrlAmount, uint256 maxWethAmount) external { + maxPrlAmount = bound(maxPrlAmount, 1, prl.balanceOf(users.alice.addr)); + maxWethAmount = bound(maxWethAmount, 1, weth.balanceOf(users.alice.addr)); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalanceBefore = weth.balanceOf(users.alice.addr); + + // @dev should use half of the WETH and half of the PRL + balancerV3RouterMock.updateRatio(0.5e18); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), maxPrlAmount, address(prl)); + + sprl2v2.depositPRLAndWeth(maxPrlAmount, maxWethAmount, exactBptAmount, deadline, v, r, s); + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore - maxPrlAmount / 2); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalanceBefore - maxWethAmount / 2); + assertEq(sprl2v2.balanceOf(users.alice.addr), exactBptAmount); + assertEq(prl.balanceOf(address(sprl2v2)), 0); + assertEq(weth.balanceOf(address(sprl2v2)), 0); + } +} diff --git a/test/integrations/sPRL2V2/requestWithdraw.t.sol b/test/integrations/sPRL2V2/requestWithdraw.t.sol new file mode 100644 index 0000000..bd69af9 --- /dev/null +++ b/test/integrations/sPRL2V2/requestWithdraw.t.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import { Pausable } from "@openzeppelin/contracts/utils/Pausable.sol"; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_RequestWithdraw_Integrations_Test is Integrations_Test { + function setUp() public override { + super.setUp(); + vm.startPrank(users.alice.addr); + + deal(address(bpt), address(users.alice.addr), INITIAL_BALANCE); + bpt.approve(address(sprl2v2), type(uint256).max); + sprl2v2.depositBPT(INITIAL_BALANCE); + } + + function test_SPRL2V2_RequestWithdraw() external { + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.WithdrawalRequested(0, users.alice.addr, INITIAL_BALANCE); + sprl2v2.requestWithdraw(INITIAL_BALANCE); + + assertEq(sprl2v2.balanceOf(users.alice.addr), 0); + assertEq(sprl2v2.unlockingAmount(), INITIAL_BALANCE); + + (uint256 requestAmount, uint64 requestTime, uint64 releaseTime, TimeLockPenaltyERC20.WITHDRAW_STATUS status) = + sprl2v2.userVsWithdrawals(users.alice.addr, 0); + + assertEq(requestAmount, INITIAL_BALANCE); + assertEq(requestTime, block.timestamp); + assertEq(releaseTime, block.timestamp + sprl2v2.timeLockDuration()); + assertEq(status, TimeLockPenaltyERC20.WITHDRAW_STATUS.UNLOCKING); + + uint256[] memory requestIds = sprl2v2.findUnlockingIDs(users.alice.addr, 0, false, 1); + assertEq(requestIds.length, 1); + assertEq(requestIds[0], 0); + } + + function testFuzz_SPRL2V2_RequestWithdraw_Several(uint16 requestTime) external { + requestTime = _boundUint16(requestTime, 1, 100); + uint256 withdrawAmount = INITIAL_BALANCE / requestTime; + uint256 expectedAmount = withdrawAmount * requestTime; + for (uint16 i = 0; i < requestTime; i++) { + sprl2v2.requestWithdraw(withdrawAmount); + } + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_BALANCE - expectedAmount); + assertEq(sprl2v2.unlockingAmount(), expectedAmount); + + uint256[] memory requestIds = sprl2v2.findUnlockingIDs(users.alice.addr, 0, false, requestTime); + assertEq(requestIds.length, requestTime); + } +} diff --git a/test/integrations/sPRL2V2/updateFeeReceiver.t.sol b/test/integrations/sPRL2V2/updateFeeReceiver.t.sol new file mode 100644 index 0000000..4bbc985 --- /dev/null +++ b/test/integrations/sPRL2V2/updateFeeReceiver.t.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_UpdateFeeReceiver_Integrations_Test is Integrations_Test { + address internal newPaymentReceiver = makeAddr("newPaymentReceiver"); + + function test_sPRL2V2_UpdateFeeReceiver() external { + vm.startPrank(users.admin.addr); + vm.expectEmit(address(sprl2v2)); + emit TimeLockPenaltyERC20.FeeReceiverUpdated(newPaymentReceiver); + sprl2v2.updateFeeReceiver(newPaymentReceiver); + } + + function test_SPRL2V2_UpdateFeeReceiver_RevertWhen_CallerNotAuthorized() external { + vm.startPrank(users.hacker.addr); + vm.expectRevert(abi.encodeWithSelector(IAccessManaged.AccessManagedUnauthorized.selector, users.hacker.addr)); + sprl2v2.updateFeeReceiver(newPaymentReceiver); + } +} diff --git a/test/integrations/sPRL2V2/withdraw.t.sol b/test/integrations/sPRL2V2/withdraw.t.sol new file mode 100644 index 0000000..a07eecd --- /dev/null +++ b/test/integrations/sPRL2V2/withdraw.t.sol @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; + +contract SPRL2V2_Withdraw_Integrations_Test is Integrations_Test { + uint256 WITHDRAW_AMOUNT = 1e18; + uint256 INITIAL_AMOUNT = 100e18; + + function setUp() public override { + super.setUp(); + sigUtils = new SigUtils(prl.DOMAIN_SEPARATOR()); + + deal(address(weth), INITIAL_BALANCE); + + vm.startPrank(users.alice.addr); + prl.approve(address(sprl2v2), type(uint256).max); + weth.approve(address(sprl2v2), type(uint256).max); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2v2), INITIAL_AMOUNT, address(prl)); + + sprl2v2.depositPRLAndWeth(INITIAL_AMOUNT, INITIAL_AMOUNT, INITIAL_AMOUNT, deadline, v, r, s); + } + + modifier requestSingleWithdraw() { + sprl2v2.requestWithdraw(WITHDRAW_AMOUNT); + _; + } + + function test_sPRL2V2_WithdrawBPT_SingleRequest() external requestSingleWithdraw { + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_AMOUNT - WITHDRAW_AMOUNT); + skip(sprl2v2.timeLockDuration()); + + uint256 aliceBalanceBefore = bpt.balanceOf(users.alice.addr); + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + sprl2v2.withdrawBPT(requestIds, DEFAULT_PENALTY_PERCENTAGE); + + uint256 aliceBalanceAfter = bpt.balanceOf(users.alice.addr); + assertEq(aliceBalanceAfter - aliceBalanceBefore, WITHDRAW_AMOUNT); + } + + function test_sPRL2V2_WithdrawPRLAndWeth_SingleRequest() external requestSingleWithdraw { + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_AMOUNT - WITHDRAW_AMOUNT); + skip(sprl2v2.timeLockDuration()); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalanceBefore = weth.balanceOf(users.alice.addr); + + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + sprl2v2.withdrawPRLAndWeth(requestIds, INITIAL_AMOUNT, INITIAL_AMOUNT, DEFAULT_PENALTY_PERCENTAGE); + + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore + INITIAL_AMOUNT); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalanceBefore + INITIAL_AMOUNT); + } + + modifier requestMultiWithdraw() { + sprl2v2.requestWithdraw(WITHDRAW_AMOUNT); + sprl2v2.requestWithdraw(WITHDRAW_AMOUNT); + sprl2v2.requestWithdraw(WITHDRAW_AMOUNT); + _; + } + + function test_sPRL2V2_WithdrawBPT_MultipleRequests() external requestMultiWithdraw { + uint256 withdrawAmount = WITHDRAW_AMOUNT * 3; + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_AMOUNT - withdrawAmount); + skip(sprl2v2.timeLockDuration()); + + uint256 aliceBalanceBefore = bpt.balanceOf(users.alice.addr); + uint256[] memory requestIds = new uint256[](3); + requestIds[0] = 0; + requestIds[1] = 1; + requestIds[2] = 2; + sprl2v2.withdrawBPT(requestIds, DEFAULT_PENALTY_PERCENTAGE); + + uint256 aliceBalanceAfter = bpt.balanceOf(users.alice.addr); + assertEq(aliceBalanceAfter - aliceBalanceBefore, withdrawAmount); + } + + function test_sPRL2V2_WithdrawPRLAndWeth_MultipleRequests() external requestMultiWithdraw { + uint256 withdrawAmount = WITHDRAW_AMOUNT * 3; + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_AMOUNT - withdrawAmount); + skip(sprl2v2.timeLockDuration()); + + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalanceBefore = weth.balanceOf(users.alice.addr); + uint256[] memory requestIds = new uint256[](3); + requestIds[0] = 0; + requestIds[1] = 1; + requestIds[2] = 2; + sprl2v2.withdrawPRLAndWeth(requestIds, withdrawAmount, withdrawAmount, DEFAULT_PENALTY_PERCENTAGE); + + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore + withdrawAmount); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalanceBefore + withdrawAmount); + } + + function test_sPRL2V2_WithdrawPRLAndWeth_BeforeUnLockTimeShouldSendUnderlyingTokenToFeeReceiver() + external + requestMultiWithdraw + { + skip(sprl2v2.timeLockDuration() / 2); + uint256 withdrawAmount = WITHDRAW_AMOUNT * 3; + uint256 expectedAmountAliceReceived = withdrawAmount / 2; + uint256 expectedAmountFeeReceiverReceived = withdrawAmount / 2; + uint256 alicePrlBalanceBefore = prl.balanceOf(users.alice.addr); + uint256 aliceWethBalanceBefore = weth.balanceOf(users.alice.addr); + uint256 aliceEthBalanceBefore = users.alice.addr.balance; + + uint256[] memory requestIds = new uint256[](3); + requestIds[0] = 0; + requestIds[1] = 1; + requestIds[2] = 2; + sprl2v2.withdrawPRLAndWeth( + requestIds, expectedAmountAliceReceived, expectedAmountAliceReceived, DEFAULT_PENALTY_PERCENTAGE + ); + + assertEq(bpt.balanceOf(address(users.daoTreasury.addr)), expectedAmountFeeReceiverReceived); + assertEq(sprl2v2.balanceOf(users.alice.addr), INITIAL_AMOUNT - withdrawAmount); + assertEq(prl.balanceOf(users.alice.addr), alicePrlBalanceBefore + expectedAmountAliceReceived); + assertEq(weth.balanceOf(users.alice.addr), aliceWethBalanceBefore + expectedAmountAliceReceived); + assertEq(users.alice.addr.balance, aliceEthBalanceBefore); + } + + function test_SPRL2V2_WithdrawBPT_MultipleRequests_RevertWhen_PenaltyPercentageExceedMaxAcceptance() + external + requestMultiWithdraw + { + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + vm.expectRevert(abi.encodeWithSelector(TimeLockPenaltyERC20.MaxPenaltyPercentageExceeded.selector)); + sprl2v2.withdrawBPT(requestIds, DEFAULT_PENALTY_PERCENTAGE - 1); + } + + function test_SPRL2V2_WithdrawPRLAndWeth_MultipleRequests_RevertWhen_PenaltyPercentageExceedMaxAcceptance() + external + requestMultiWithdraw + { + uint256[] memory requestIds = new uint256[](1); + requestIds[0] = 0; + vm.expectRevert(abi.encodeWithSelector(TimeLockPenaltyERC20.MaxPenaltyPercentageExceeded.selector)); + sprl2v2.withdrawPRLAndWeth(requestIds, WITHDRAW_AMOUNT, WITHDRAW_AMOUNT, DEFAULT_PENALTY_PERCENTAGE - 1); + } + + modifier PauseContract() { + vm.startPrank(users.admin.addr); + sprl2v2.pause(); + _; + } + + function test_SPRL2V2_EmergencyWithdraw() external PauseContract { + vm.startPrank(users.alice.addr); + uint256 aliceBalanceBefore = bpt.balanceOf(users.alice.addr); + + sprl2v2.emergencyWithdraw(WITHDRAW_AMOUNT); + + uint256 aliceBalanceAfter = bpt.balanceOf(users.alice.addr); + assertEq(aliceBalanceAfter - aliceBalanceBefore, WITHDRAW_AMOUNT); + + assertEq(sprl2v2.balanceOf(users.daoTreasury.addr), 0); + } +} From a71ebfe68c96c4de56371d2eda2a999c0e103124 Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 28 Apr 2026 15:05:23 +0300 Subject: [PATCH 10/20] fix: update sPRL2 fork test to use correct mainnet addresses Use block 24_905_586 where Aura pool PID 258 exists and set real contract addresses. --- test/forks/Fork.t.sol | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/test/forks/Fork.t.sol b/test/forks/Fork.t.sol index ed0e485..c2c648c 100644 --- a/test/forks/Fork.t.sol +++ b/test/forks/Fork.t.sol @@ -9,8 +9,7 @@ abstract contract Fork_Test is Base_Test { address aura; function setUp() public virtual override { - // Fork Polygon Mainnet at a specific block number. - vm.createSelectFork({ blockNumber: 21_816_469, urlOrAlias: "mainnet" }); + vm.createSelectFork({ blockNumber: 24_905_586, urlOrAlias: "mainnet" }); // The base is set up after the fork is selected so that the base test contracts are deployed on the fork. Base_Test.setUp(); @@ -44,24 +43,24 @@ abstract contract Fork_Test is Base_Test { permit2 = Permit2Mock(0x000000000022D473030F116dDEE9F6B43aC78BA3); vm.label({ account: address(permit2), newLabel: "Permit2" }); - auraBpt = ERC20Mock(0x473dA6619e3bf97f946C6Cc991952c010e25eC3E); + auraBpt = ERC20Mock(0xC4a27dC753FF0513455D9A326d183220C078be8D); vm.label({ account: address(auraBpt), newLabel: "AuraBPT" }); balancerV3RouterMock = BalancerV3RouterMock(0x5C6fb490BDFD3246EB0bB062c168DeCAF4bD9FDd); - vm.label({ account: address(balancerV3RouterMock), newLabel: "BalancerV3RouterMock" }); + vm.label({ account: address(balancerV3RouterMock), newLabel: "BalancerV3Router" }); auraBoosterLiteMock = AuraBoosterLiteMock(0xA57b8d98dAE62B26Ec3bcC4a365338157060B234); - vm.label({ account: address(auraBoosterLiteMock), newLabel: "AuraBoosterLiteMock" }); - auraRewardPoolMock = AuraRewardPoolMock(0x473dA6619e3bf97f946C6Cc991952c010e25eC3E); - vm.label({ account: address(auraRewardPoolMock), newLabel: "AuraRewardPoolMock" }); + vm.label({ account: address(auraBoosterLiteMock), newLabel: "AuraBoosterLite" }); + auraRewardPoolMock = AuraRewardPoolMock(0x486Be73794Ec19f3e9cF57f06f03fDCf7F0A9da4); + vm.label({ account: address(auraRewardPoolMock), newLabel: "AuraRewardPool" }); bal = 0xba100000625a3754423978a60c9317c58a424e3D; vm.label({ account: address(bal), newLabel: "BAL" }); aura = 0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF; vm.label({ account: address(aura), newLabel: "Aura" }); - bpt = ERC20Mock(0x5512fdDC40842b257e2A7742Be3DaDcf31574d53); + bpt = ERC20Mock(0x1846C6cBE0D433e152fA358e5fF27968E18bcE7c); vm.label({ account: address(bpt), newLabel: "BPT" }); - prl = ERC20Mock(0x04C154b66CB340F3Ae24111CC767e0184Ed00Cc6); + prl = ERC20Mock(0x6c0aeceeDc55c9d55d8B99216a670D85330941c3); vm.label({ account: address(prl), newLabel: "PRL" }); - weth = WrappedNativeMock(0x1e6ffa4e9F63d10B8820A3ab52566Af881Dab53c); + weth = WrappedNativeMock(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); vm.label({ account: address(weth), newLabel: "WETH" }); } } From 42ed2aab16647d253a36097ad2aef9da93de9230 Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 28 Apr 2026 15:05:31 +0300 Subject: [PATCH 11/20] feat: add sPRL2V2 deployment script and config types --- deploy/scripts/sprl/sPRL2V2.ts | 59 ++++++++++++++++++++++++++++++++++ deploy/utils/types.ts | 8 +++++ 2 files changed, 67 insertions(+) create mode 100644 deploy/scripts/sprl/sPRL2V2.ts diff --git a/deploy/scripts/sprl/sPRL2V2.ts b/deploy/scripts/sprl/sPRL2V2.ts new file mode 100644 index 0000000..3353746 --- /dev/null +++ b/deploy/scripts/sprl/sPRL2V2.ts @@ -0,0 +1,59 @@ +import assert from "assert"; + +import { type DeployFunction } from "hardhat-deploy/types"; + +import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; +import { readFileSync } from "fs"; +import { ConfigData } from "../../utils/types"; + +const contractName = "sPRL2V2"; + +const deploy: DeployFunction = async (hre) => { + const { getNamedAccounts, deployments } = hre; + + const { deploy } = deployments; + const { deployer } = await getNamedAccounts(); + + assert(deployer, "Missing deployer account"); + + console.log(`Network: ${hre.network.name}`); + console.log(`Deployer: ${deployer}`); + + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); + const accessManager = config.accessManager; + if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); + + const sprl2v2Data = config.sprl2v2; + const prlToken = getTokenAddressFromConfig("prl", config); + const wethToken = getTokenAddressFromConfig("weth", config); + + const permit2 = checkAddressValid(sprl2v2Data.permit2, "Permit2"); + const feeReceiver = getWalletAddressFromConfig(sprl2v2Data.feeReceiver, config); + const balancerRouter = checkAddressValid(sprl2v2Data.balancerV3Router, "Balancer V3 Router"); + const balancerBPT = checkAddressValid(sprl2v2Data.balancerBPT, "Balancer BPT"); + + const BPTConfigParams = { + balancerRouter: balancerRouter, + balancerBPT: balancerBPT, + prl: prlToken, + weth: wethToken, + permit2: permit2, + }; + const contract = await deploy(contractName, { + from: deployer, + args: [ + feeReceiver, + accessManager, + sprl2v2Data.startPenaltyPercentage, + sprl2v2Data.timeLockDuration, + BPTConfigParams, + ], + log: true, + skipIfAlreadyDeployed: false, + }); + + console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); +}; + +deploy.tags = [contractName]; +export default deploy; diff --git a/deploy/utils/types.ts b/deploy/utils/types.ts index bcfc308..6c1bfff 100644 --- a/deploy/utils/types.ts +++ b/deploy/utils/types.ts @@ -41,4 +41,12 @@ export type ConfigData = { balancerBPT: Address; rewardsTokens: Address[]; }; + sprl2v2: { + permit2: Address; + feeReceiver: string; + startPenaltyPercentage: BigNumberish; + timeLockDuration: number; + balancerV3Router: Address; + balancerBPT: Address; + }; }; From 9a7a30b314020df99fb156306d7c431cb4a54e00 Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 28 Apr 2026 15:05:41 +0300 Subject: [PATCH 12/20] feat: add sPRL2 to sPRL2V2 migration contract with tests One-click migration via emergencyWithdraw (paused sPRL2) and depositBPT into sPRL2V2. --- contracts/sPRL/sPRL2Migrator.sol | 55 ++++++++++ test/forks/sPRL2V2/migrator.t.sol | 88 ++++++++++++++++ test/integrations/sPRL2V2/migrator.t.sol | 128 +++++++++++++++++++++++ 3 files changed, 271 insertions(+) create mode 100644 contracts/sPRL/sPRL2Migrator.sol create mode 100644 test/forks/sPRL2V2/migrator.t.sol create mode 100644 test/integrations/sPRL2V2/migrator.t.sol diff --git a/contracts/sPRL/sPRL2Migrator.sol b/contracts/sPRL/sPRL2Migrator.sol new file mode 100644 index 0000000..a45ad90 --- /dev/null +++ b/contracts/sPRL/sPRL2Migrator.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +import { sPRL2 } from "./sPRL2.sol"; +import { sPRL2V2 } from "./sPRL2V2.sol"; + +/// @title sPRL2Migrator +/// @author Cooper Labs +/// @custom:contact security@cooperlabs.xyz +/// @notice Migrates sPRL2 positions to sPRL2V2 in a single transaction. +/// @dev Requires sPRL2 to be paused so that emergencyWithdraw is available. +contract sPRL2Migrator { + using SafeERC20 for IERC20; + + sPRL2 public immutable SPRL2; + sPRL2V2 public immutable SPRL2V2; + IERC20 public immutable BPT; + + error MigrationAmountZero(); + + event Migrated(address indexed user, uint256 amount); + + constructor(sPRL2 _sprl2, sPRL2V2 _sprl2v2) { + SPRL2 = _sprl2; + SPRL2V2 = _sprl2v2; + BPT = _sprl2v2.BPT(); + + BPT.approve(address(_sprl2v2), type(uint256).max); + } + + /// @notice Migrate sPRL2 tokens to sPRL2V2. + /// @dev User must approve this contract to spend their sPRL2 tokens. + /// @dev sPRL2 must be paused for emergencyWithdraw to work. + /// @param _amount The amount of sPRL2 to migrate. + function migrate(uint256 _amount) external { + if (_amount == 0) revert MigrationAmountZero(); + + // Transfer sPRL2 from user + IERC20(address(SPRL2)).safeTransferFrom(msg.sender, address(this), _amount); + + // Emergency withdraw BPT from sPRL2 (requires paused) + SPRL2.emergencyWithdraw(_amount); + + // Deposit BPT into sPRL2V2 (mints sPRL2V2 to this contract) + SPRL2V2.depositBPT(_amount); + + // Transfer sPRL2V2 to user + IERC20(address(SPRL2V2)).safeTransfer(msg.sender, _amount); + + emit Migrated(msg.sender, _amount); + } +} diff --git a/test/forks/sPRL2V2/migrator.t.sol b/test/forks/sPRL2V2/migrator.t.sol new file mode 100644 index 0000000..570c275 --- /dev/null +++ b/test/forks/sPRL2V2/migrator.t.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity 0.8.25; + +import "test/forks/ForkV2.t.sol"; +import { sPRL2 } from "contracts/sPRL/sPRL2.sol"; +import { sPRL2Migrator } from "contracts/sPRL/sPRL2Migrator.sol"; +import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { IAccessManager } from "@openzeppelin/contracts/access/manager/IAccessManager.sol"; + +contract SPRL2Migrator_Fork_Test is ForkV2_Test { + sPRL2 sprl2Legacy; + sPRL2Migrator migrator; + + address admin = 0x25Fc7ffa8f9da3582a36633d04804F0004706F9b; + address user = address(0xBEEF); + + function setUp() public override { + super.setUp(); + + sprl2Legacy = sPRL2(payable(0xE8A2d848fE656E34A6caA35f375B42979e322135)); + vm.label(address(sprl2Legacy), "sPRL2Legacy"); + + migrator = new sPRL2Migrator(sprl2Legacy, sprl2v2); + + // User deposits into sPRL2 + uint256 depositAmount = 1e18; + vm.startPrank(user); + deal(address(prl), user, 100e18); + deal(address(weth), user, 100e18); + + IERC20(address(prl)).approve(address(permit2), type(uint256).max); + IERC20(address(weth)).approve(address(permit2), type(uint256).max); + + uint48 deadline = uint48(block.timestamp + 15); + permit2.approve(address(prl), address(balancerV3RouterMock), type(uint160).max, deadline); + permit2.approve(address(weth), address(balancerV3RouterMock), type(uint160).max, deadline); + + balancerV3RouterMock.addLiquidityProportional( + address(bpt), _getMaxDepositAmountParams(100e18, 100e18), depositAmount, false, "" + ); + + bpt.approve(address(sprl2Legacy), depositAmount); + sprl2Legacy.depositBPT(depositAmount); + vm.stopPrank(); + + // Admin pauses sPRL2 + vm.prank(admin); + sprl2Legacy.pause(); + } + + function test_fork_Migrator_Migrate() external { + uint256 amount = sprl2Legacy.balanceOf(user); + + vm.startPrank(user); + IERC20(address(sprl2Legacy)).approve(address(migrator), amount); + migrator.migrate(amount); + vm.stopPrank(); + + assertEq(sprl2Legacy.balanceOf(user), 0); + assertEq(sprl2v2.balanceOf(user), amount); + } + + function test_fork_Migrator_Migrate_Partial() external { + uint256 totalAmount = sprl2Legacy.balanceOf(user); + uint256 migrateAmount = totalAmount / 2; + + vm.startPrank(user); + IERC20(address(sprl2Legacy)).approve(address(migrator), migrateAmount); + migrator.migrate(migrateAmount); + vm.stopPrank(); + + assertEq(sprl2Legacy.balanceOf(user), totalAmount - migrateAmount); + assertEq(sprl2v2.balanceOf(user), migrateAmount); + } + + function _getMaxDepositAmountParams( + uint256 maxPrlAmount, + uint256 maxWethAmount + ) + internal + view + returns (uint256[] memory maxAmountsIn) + { + maxAmountsIn = new uint256[](2); + (maxAmountsIn[0], maxAmountsIn[1]) = + address(weth) > address(prl) ? (maxPrlAmount, maxWethAmount) : (maxWethAmount, maxPrlAmount); + } +} diff --git a/test/integrations/sPRL2V2/migrator.t.sol b/test/integrations/sPRL2V2/migrator.t.sol new file mode 100644 index 0000000..4cf2292 --- /dev/null +++ b/test/integrations/sPRL2V2/migrator.t.sol @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; +import { sPRL2Migrator } from "contracts/sPRL/sPRL2Migrator.sol"; + +contract SPRL2Migrator_Integrations_Test is Integrations_Test { + sPRL2Migrator migrator; + uint256 DEPOSIT_AMOUNT = 100e18; + + function setUp() public override { + super.setUp(); + sigUtils = new SigUtils(prl.DOMAIN_SEPARATOR()); + + migrator = new sPRL2Migrator(sprl2, sprl2v2); + + // Alice deposits into sPRL2 + vm.startPrank(users.alice.addr); + weth.approve(address(sprl2), type(uint256).max); + + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.alice.privateKey, address(sprl2), DEPOSIT_AMOUNT, address(prl)); + + sprl2.depositPRLAndWeth(DEPOSIT_AMOUNT, DEPOSIT_AMOUNT, DEPOSIT_AMOUNT, deadline, v, r, s); + vm.stopPrank(); + + // Admin pauses sPRL2 for migration + vm.prank(users.admin.addr); + sprl2.pause(); + } + + function test_Migrator_Constructor() external view { + assertEq(address(migrator.SPRL2()), address(sprl2)); + assertEq(address(migrator.SPRL2V2()), address(sprl2v2)); + assertEq(address(migrator.BPT()), address(bpt)); + } + + function test_Migrator_Migrate() external { + uint256 amount = sprl2.balanceOf(users.alice.addr); + + vm.startPrank(users.alice.addr); + IERC20(address(sprl2)).approve(address(migrator), amount); + + vm.expectEmit(address(migrator)); + emit sPRL2Migrator.Migrated(users.alice.addr, amount); + migrator.migrate(amount); + vm.stopPrank(); + + assertEq(sprl2.balanceOf(users.alice.addr), 0); + assertEq(sprl2v2.balanceOf(users.alice.addr), amount); + } + + function test_Migrator_Migrate_Partial() external { + uint256 totalAmount = sprl2.balanceOf(users.alice.addr); + uint256 migrateAmount = totalAmount / 2; + + vm.startPrank(users.alice.addr); + IERC20(address(sprl2)).approve(address(migrator), migrateAmount); + migrator.migrate(migrateAmount); + vm.stopPrank(); + + assertEq(sprl2.balanceOf(users.alice.addr), totalAmount - migrateAmount); + assertEq(sprl2v2.balanceOf(users.alice.addr), migrateAmount); + } + + function test_Migrator_Migrate_MultipleUsers() external { + // Bob deposits into sPRL2 + vm.startPrank(users.bob.addr); + weth.approve(address(sprl2), type(uint256).max); + + // sPRL2 is paused, so Bob needs to have deposited before pause + // Instead, unpause, deposit, then re-pause + vm.stopPrank(); + vm.prank(users.admin.addr); + sprl2.unpause(); + + vm.startPrank(users.bob.addr); + (uint256 deadline, uint8 v, bytes32 r, bytes32 s) = + _signPermitData(users.bob.privateKey, address(sprl2), DEPOSIT_AMOUNT, address(prl)); + sprl2.depositPRLAndWeth(DEPOSIT_AMOUNT, DEPOSIT_AMOUNT, DEPOSIT_AMOUNT, deadline, v, r, s); + vm.stopPrank(); + + vm.prank(users.admin.addr); + sprl2.pause(); + + // Alice migrates + uint256 aliceAmount = sprl2.balanceOf(users.alice.addr); + vm.startPrank(users.alice.addr); + IERC20(address(sprl2)).approve(address(migrator), aliceAmount); + migrator.migrate(aliceAmount); + vm.stopPrank(); + + // Bob migrates + uint256 bobAmount = sprl2.balanceOf(users.bob.addr); + vm.startPrank(users.bob.addr); + IERC20(address(sprl2)).approve(address(migrator), bobAmount); + migrator.migrate(bobAmount); + vm.stopPrank(); + + assertEq(sprl2.balanceOf(users.alice.addr), 0); + assertEq(sprl2v2.balanceOf(users.alice.addr), aliceAmount); + assertEq(sprl2.balanceOf(users.bob.addr), 0); + assertEq(sprl2v2.balanceOf(users.bob.addr), bobAmount); + } + + function test_Migrator_RevertWhen_AmountZero() external { + vm.prank(users.alice.addr); + vm.expectRevert(abi.encodeWithSelector(sPRL2Migrator.MigrationAmountZero.selector)); + migrator.migrate(0); + } + + function test_Migrator_RevertWhen_NotPaused() external { + vm.prank(users.admin.addr); + sprl2.unpause(); + + uint256 amount = sprl2.balanceOf(users.alice.addr); + vm.startPrank(users.alice.addr); + IERC20(address(sprl2)).approve(address(migrator), amount); + vm.expectRevert(abi.encodeWithSelector(Pausable.ExpectedPause.selector)); + migrator.migrate(amount); + } + + function test_Migrator_RevertWhen_InsufficientApproval() external { + vm.startPrank(users.alice.addr); + vm.expectRevert(); + migrator.migrate(DEPOSIT_AMOUNT); + } +} From a3902bd47fa2de63ae59e903635d76fa353356bd Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 10 Jun 2026 10:31:23 +0300 Subject: [PATCH 13/20] docs(audits): add Bailsec sPRLV2 1st report --- ...llel - sPRL2V2 - 1st Report - June 2026.pdf | Bin 0 -> 316841 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/audits/Bailsec - Parallel - sPRL2V2 - 1st Report - June 2026.pdf diff --git a/docs/audits/Bailsec - Parallel - sPRL2V2 - 1st Report - June 2026.pdf b/docs/audits/Bailsec - Parallel - sPRL2V2 - 1st Report - June 2026.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f78db4bd463b91d069c2d7e5078001120e2e553 GIT binary patch literal 316841 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

+p8jUje{t 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

wP?^)US9Xi?{Ii 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 Date: Wed, 10 Jun 2026 10:33:01 +0300 Subject: [PATCH 14/20] fix(sPRL2V2) [Bailsec-02]: rename symbol to sPRL2V2 During the migration window both sPRL2 and sPRL2V2 are live and shared the same "sPRL2" symbol. Any downstream consumer keying on the token symbol (explorers, the reward-merkle distributor's off-chain eligibility input, dashboards) could conflate the two tokens, excluding or double-counting balances. Renames the SYMBOL constant to "sPRL2V2" so the new token is unambiguously distinguishable on-chain. NAME already differed from the legacy "...Aura Deposit Vault" so it is left untouched. The constructor integration test asserts the new symbol. --- contracts/sPRL/sPRL2V2.sol | 2 +- test/integrations/sPRL2V2/constructor.t.sol | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/sPRL/sPRL2V2.sol b/contracts/sPRL/sPRL2V2.sol index 2cd74cd..3b8eb74 100644 --- a/contracts/sPRL/sPRL2V2.sol +++ b/contracts/sPRL/sPRL2V2.sol @@ -19,7 +19,7 @@ contract sPRL2V2 is TimeLockPenaltyERC20 { using SafeERC20 for IERC20; string constant NAME = "Stake 20WETH-80PRL Deposit Vault"; - string constant SYMBOL = "sPRL2"; + string constant SYMBOL = "sPRL2V2"; //------------------------------------------- // Storage diff --git a/test/integrations/sPRL2V2/constructor.t.sol b/test/integrations/sPRL2V2/constructor.t.sol index 36c46bc..d671c73 100644 --- a/test/integrations/sPRL2V2/constructor.t.sol +++ b/test/integrations/sPRL2V2/constructor.t.sol @@ -25,7 +25,7 @@ contract SPRL2V2_Constructor_Integrations_Test is Integrations_Test { assertEq(sprl2v2.unlockingAmount(), 0); assertEq(sprl2v2.feeReceiver(), users.daoTreasury.addr); assertEq(sprl2v2.name(), "Stake 20WETH-80PRL Deposit Vault"); - assertEq(sprl2v2.symbol(), "sPRL2"); + assertEq(sprl2v2.symbol(), "sPRL2V2"); assertEq(address(sprl2v2.BALANCER_ROUTER()), address(balancerV3RouterMock)); assertEq(address(sprl2v2.BPT()), address(bpt)); assertEq(address(sprl2v2.PRL()), address(prl)); From d68b1416a218c7ec367111a43f32eab3f37a6706 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 10 Jun 2026 10:33:31 +0300 Subject: [PATCH 15/20] fix(TimeLockPenaltyERC20) [Bailsec-05]: reject zero-amount withdrawal requests requestWithdraw could be called with amount = 0, minting an empty WithdrawalRequest that occupies a request ID and can even be cancelled. It serves no purpose in normal operation and only adds tail risk / a precondition for other invalid states. Reverts with NullAmount() when the unlocking amount is zero. The guard lives in the shared base so sPRL1/sPRL2/sPRL2V2 all inherit it. Adds an integration test asserting the revert. --- contracts/sPRL/TimeLockPenaltyERC20.sol | 3 +++ test/integrations/sPRL2V2/requestWithdraw.t.sol | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/contracts/sPRL/TimeLockPenaltyERC20.sol b/contracts/sPRL/TimeLockPenaltyERC20.sol index 8df287e..bded5b0 100644 --- a/contracts/sPRL/TimeLockPenaltyERC20.sol +++ b/contracts/sPRL/TimeLockPenaltyERC20.sol @@ -129,6 +129,8 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access error PercentageOutOfRange(uint256 attemptedPercentage); /// @notice Thrown when the penalty percentage is too high. error MaxPenaltyPercentageExceeded(); + /// @notice Thrown when a withdrawal request is made with a zero amount. + error NullAmount(); //------------------------------------------- // Constructor @@ -172,6 +174,7 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access /// @notice Request to withdraw assets from the contract. /// @param _unlockingAmount The amount of assets to unlock. function requestWithdraw(uint256 _unlockingAmount) external { + if (_unlockingAmount == 0) revert NullAmount(); _burn(msg.sender, _unlockingAmount); uint256 id = userVsNextID[msg.sender]++; diff --git a/test/integrations/sPRL2V2/requestWithdraw.t.sol b/test/integrations/sPRL2V2/requestWithdraw.t.sol index bd69af9..1465630 100644 --- a/test/integrations/sPRL2V2/requestWithdraw.t.sol +++ b/test/integrations/sPRL2V2/requestWithdraw.t.sol @@ -36,6 +36,11 @@ contract SPRL2V2_RequestWithdraw_Integrations_Test is Integrations_Test { assertEq(requestIds[0], 0); } + function test_SPRL2V2_RequestWithdraw_RevertWhen_AmountZero() external { + vm.expectRevert(TimeLockPenaltyERC20.NullAmount.selector); + sprl2v2.requestWithdraw(0); + } + function testFuzz_SPRL2V2_RequestWithdraw_Several(uint16 requestTime) external { requestTime = _boundUint16(requestTime, 1, 100); uint256 withdrawAmount = INITIAL_BALANCE / requestTime; From 5882af5053d134bd47860d66829af801e5f08fc9 Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 10 Jun 2026 10:34:22 +0300 Subject: [PATCH 16/20] fix(TimeLockPenaltyERC20) [Bailsec-06]: guard feeReceiver against the zero address Premature exits transfer the BPT slash to feeReceiver inside the withdrawal flow. If feeReceiver were address(0), every early withdrawPRLAndWeth / withdrawBPT would revert on the slash transfer, DoS-ing all premature withdrawals until governance fixes the address. Adds a zero-address check both in the base constructor and in updateFeeReceiver so the fee receiver can never be set to address(0) at deploy time or via governance. Reverts with FeeReceiverZeroAddress(). Adds constructor and updateFeeReceiver revert tests. --- contracts/sPRL/TimeLockPenaltyERC20.sol | 8 ++++++++ test/integrations/sPRL2V2/constructor.t.sol | 17 +++++++++++++++++ .../sPRL2V2/updateFeeReceiver.t.sol | 6 ++++++ 3 files changed, 31 insertions(+) diff --git a/contracts/sPRL/TimeLockPenaltyERC20.sol b/contracts/sPRL/TimeLockPenaltyERC20.sol index bded5b0..b7af740 100644 --- a/contracts/sPRL/TimeLockPenaltyERC20.sol +++ b/contracts/sPRL/TimeLockPenaltyERC20.sol @@ -131,6 +131,8 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access error MaxPenaltyPercentageExceeded(); /// @notice Thrown when a withdrawal request is made with a zero amount. error NullAmount(); + /// @notice Thrown when the fee receiver is set to the zero address. + error FeeReceiverZeroAddress(); //------------------------------------------- // Constructor @@ -160,6 +162,9 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access if (_startPenaltyPercentage > MAX_PENALTY_PERCENTAGE) { revert PercentageOutOfRange(_startPenaltyPercentage); } + if (_feeReceiver == address(0)) { + revert FeeReceiverZeroAddress(); + } feeReceiver = _feeReceiver; underlying = IERC20(_underlying); @@ -269,6 +274,9 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access /// @notice Allow the AccessManager to update the fee receiver address. /// @param _newFeeReceiver The new fee receiver. function updateFeeReceiver(address _newFeeReceiver) public virtual restricted { + if (_newFeeReceiver == address(0)) { + revert FeeReceiverZeroAddress(); + } emit FeeReceiverUpdated(_newFeeReceiver); feeReceiver = _newFeeReceiver; } diff --git a/test/integrations/sPRL2V2/constructor.t.sol b/test/integrations/sPRL2V2/constructor.t.sol index d671c73..2c037f8 100644 --- a/test/integrations/sPRL2V2/constructor.t.sol +++ b/test/integrations/sPRL2V2/constructor.t.sol @@ -32,4 +32,21 @@ contract SPRL2V2_Constructor_Integrations_Test is Integrations_Test { assertEq(address(sprl2v2.WETH()), address(weth)); assertEq(address(sprl2v2.PERMIT2()), address(permit2)); } + + function test_SPRL2V2_Constructor_RevertWhen_FeeReceiverZeroAddress() external { + vm.expectRevert(TimeLockPenaltyERC20.FeeReceiverZeroAddress.selector); + new sPRL2V2( + address(0), + address(accessManager), + DEFAULT_PENALTY_PERCENTAGE, + DEFAULT_TIME_LOCK_DURATION, + sPRL2V2.BPTConfigParams({ + balancerRouter: IBalancerV3Router(address(balancerV3RouterMock)), + balancerBPT: IERC20(address(bpt)), + prl: IERC20(address(prl)), + weth: IWrappedNative(address(weth)), + permit2: IPermit2(address(permit2)) + }) + ); + } } diff --git a/test/integrations/sPRL2V2/updateFeeReceiver.t.sol b/test/integrations/sPRL2V2/updateFeeReceiver.t.sol index 4bbc985..cfc1088 100644 --- a/test/integrations/sPRL2V2/updateFeeReceiver.t.sol +++ b/test/integrations/sPRL2V2/updateFeeReceiver.t.sol @@ -18,4 +18,10 @@ contract SPRL2V2_UpdateFeeReceiver_Integrations_Test is Integrations_Test { vm.expectRevert(abi.encodeWithSelector(IAccessManaged.AccessManagedUnauthorized.selector, users.hacker.addr)); sprl2v2.updateFeeReceiver(newPaymentReceiver); } + + function test_SPRL2V2_UpdateFeeReceiver_RevertWhen_ZeroAddress() external { + vm.startPrank(users.admin.addr); + vm.expectRevert(TimeLockPenaltyERC20.FeeReceiverZeroAddress.selector); + sprl2v2.updateFeeReceiver(address(0)); + } } From 6c4b5ea96b2e64a2dcb23a1b540aa9c45c9d405d Mon Sep 17 00:00:00 2001 From: FabienC Date: Wed, 10 Jun 2026 10:35:16 +0300 Subject: [PATCH 17/20] fix(TimeLockPenaltyERC20) [Bailsec-03]: add recoverERC20 to rescue idle tokens The BPT backing sPRL2V2 sits idle in the contract, so reward tokens claimed on the contract's behalf (e.g. MERKL distributions routed onBehalf to the holder) would otherwise be permanently locked with no way to retrieve them. Adds a restricted recoverERC20(token) that forwards the full balance of an arbitrary token to feeReceiver. The guard reverts with CannotRecoverUnderlying() when token == underlying, so the share- backing asset (BPT for sPRL2V2, PRL for sPRL1) can never be drained. Placed in the shared base keyed on `underlying` rather than a contract-specific BPT check, so every derived staking token benefits. Adds integration tests in the timeLockPenaltyERC20 suite (matching the base contract): successful recovery to feeReceiver, revert on the underlying token, and revert for an unauthorized caller. --- contracts/sPRL/TimeLockPenaltyERC20.sol | 20 ++++++++++ .../timeLockPenaltyERC20/recoverERC20.t.sol | 37 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 test/integrations/timeLockPenaltyERC20/recoverERC20.t.sol diff --git a/contracts/sPRL/TimeLockPenaltyERC20.sol b/contracts/sPRL/TimeLockPenaltyERC20.sol index b7af740..7648368 100644 --- a/contracts/sPRL/TimeLockPenaltyERC20.sol +++ b/contracts/sPRL/TimeLockPenaltyERC20.sol @@ -7,6 +7,7 @@ import { ERC20Votes } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20 import { IERC20Permit } from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol"; import { ReentrancyGuard } from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import { AccessManaged } from "@openzeppelin/contracts/access/manager/AccessManaged.sol"; import { Pausable } from "@openzeppelin/contracts/utils/Pausable.sol"; import { Nonces } from "@openzeppelin/contracts/utils/Nonces.sol"; @@ -22,6 +23,7 @@ import { MathsLib } from "contracts/libraries/MathsLib.sol"; /// @custom:contact security@cooperlabs.xyz abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, AccessManaged, Pausable, ReentrancyGuard { using MathsLib for *; + using SafeERC20 for IERC20; //------------------------------------------- // Storage @@ -115,6 +117,11 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access /// @param newPercentage The new penalty percentage. event StartPenaltyPercentageUpdated(uint256 oldPercentage, uint256 newPercentage); + /// @notice Emitted when extra tokens are recovered to the fee receiver. + /// @param token The address of the recovered token. + /// @param amount The amount of tokens recovered. + event TokensRecovered(address token, uint256 amount); + //------------------------------------------- // Errors //------------------------------------------- @@ -133,6 +140,8 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access error NullAmount(); /// @notice Thrown when the fee receiver is set to the zero address. error FeeReceiverZeroAddress(); + /// @notice Thrown when trying to recover the underlying token, which backs user shares. + error CannotRecoverUnderlying(); //------------------------------------------- // Constructor @@ -293,6 +302,17 @@ abstract contract TimeLockPenaltyERC20 is ERC20, ERC20Permit, ERC20Votes, Access _unpause(); } + /// @notice Recover extra tokens sitting idle in the contract (e.g. reward tokens sent on its behalf). + /// @dev The underlying token cannot be recovered as it backs user shares. Recovered tokens are sent to the fee + /// receiver. + /// @param _token The token to recover. + function recoverERC20(IERC20 _token) external restricted { + if (_token == underlying) revert CannotRecoverUnderlying(); + uint256 balance = _token.balanceOf(address(this)); + emit TokensRecovered(address(_token), balance); + _token.safeTransfer(feeReceiver, balance); + } + //------------------------------------------- // Private/Internal functions //------------------------------------------- diff --git a/test/integrations/timeLockPenaltyERC20/recoverERC20.t.sol b/test/integrations/timeLockPenaltyERC20/recoverERC20.t.sol new file mode 100644 index 0000000..5fc4613 --- /dev/null +++ b/test/integrations/timeLockPenaltyERC20/recoverERC20.t.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.25; + +import "test/Integrations.t.sol"; + +contract TimeLockPenaltyERC20_RecoverERC20_Integrations_Test is Integrations_Test { + uint256 internal constant REWARD_AMOUNT = 1e18; + + function setUp() public override { + super.setUp(); + // Simulate reward tokens being sent to the contract on its behalf (e.g. MERKL claim). + rewardToken.mint(address(timeLockPenaltyERC20), REWARD_AMOUNT); + } + + function test_TimeLockPenaltyERC20_RecoverERC20() external { + vm.startPrank(users.admin.addr); + vm.expectEmit(address(timeLockPenaltyERC20)); + emit TimeLockPenaltyERC20.TokensRecovered(address(rewardToken), REWARD_AMOUNT); + timeLockPenaltyERC20.recoverERC20(IERC20(address(rewardToken))); + + assertEq(rewardToken.balanceOf(address(timeLockPenaltyERC20)), 0); + assertEq(rewardToken.balanceOf(timeLockPenaltyERC20.feeReceiver()), REWARD_AMOUNT); + } + + function test_TimeLockPenaltyERC20_RecoverERC20_RevertWhen_TokenIsUnderlying() external { + // The mock's underlying is PRL (see Integrations setUp). + vm.startPrank(users.admin.addr); + vm.expectRevert(TimeLockPenaltyERC20.CannotRecoverUnderlying.selector); + timeLockPenaltyERC20.recoverERC20(IERC20(address(prl))); + } + + function test_TimeLockPenaltyERC20_RecoverERC20_RevertWhen_CallerNotAuthorized() external { + vm.startPrank(users.hacker.addr); + vm.expectRevert(abi.encodeWithSelector(IAccessManaged.AccessManagedUnauthorized.selector, users.hacker.addr)); + timeLockPenaltyERC20.recoverERC20(IERC20(address(rewardToken))); + } +} From 77eaa2d77abe2c4f66127f9e61b750a56c52b542 Mon Sep 17 00:00:00 2001 From: FabienC Date: Tue, 16 Jun 2026 12:55:23 +0300 Subject: [PATCH 18/20] docs(audits): add Bailsec sPRLV2 final report --- ...el - sPRL2V2 - Final Report - June 2026.pdf | Bin 0 -> 277657 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/audits/Bailsec - Parallel - sPRL2V2 - Final Report - June 2026.pdf diff --git a/docs/audits/Bailsec - Parallel - sPRL2V2 - Final Report - June 2026.pdf b/docs/audits/Bailsec - Parallel - sPRL2V2 - Final Report - June 2026.pdf new file mode 100644 index 0000000000000000000000000000000000000000..733b767ea98ff2905b67ea38a2bf7476642fecd1 GIT binary patch literal 277657 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

XrbJk-u`9=~rlW{pO()!r=(*P6NAmjqjC*U}F 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⪻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

7% zi9avJRjGH`bpRKvfAfomc?yxz=W+h@K z-}M11MgY|kngMxx&+$t^}kLOce4PG5l}De88G$j!7X=cS&b|LKTJM ziSxQ6W~cyprqzP^#DZp^E6rKGERvd~aPB`^c4&?((w{BtK)t!G@J+RBGrT#r9`w*dQYXygU z%V_I+@ zRTvv7rG|IEZDd|C!@ME6Ay~J3CY2)|P_fG}5}^Ow_Z={{+3$F%g8wz1Kqbt=#Xdz* z*Fhf@<7((BElC1Bp#GQPs0F)t4Y6AEuR6dSc3|;qXl>gS;_|i z`~vS_kDmZU+6!7zymbB?YUhf$o3>}*0vsoNkb?I=5|%d+{32iM$PsW7z5Qnf5a}uO z09D-@(G`*;e38}RJ>-`$+g&mx&uyM}U7w4-NV)TCgpXE%+(z5>o9|6p_O*{T^={r1 zSf9f^E;_D)ZtBfW?D?OqM32Z`7vvef^Xb6AnBVhF{d>L(ms3?fXH~>&nWgsZ1atS` zo_+Qh48SKK{focL53*+!Xn(&Q)QmrU#5%iKlxWdFerlf_!m+W(&32G{Tt5cXk2qu0 z28@PcsA82CAxY)*CuHN*@%owbKrOqrIn5C8Wfc8FdEXRNt3|#4#yegG0MkKMn{gUT5+X*fw z>2!kJSGK1=IOw<>0Zb~r5H31$QTX}?=eeJkwkghr(REjwA~v&+EGGGOj7U~i+TNl@ zR-ZI9A4tP|JDCF*OrO77Gy_4DDTx80usFL_qJ(i;_TY4-o+m8KR>#x)i%~DLhl|Xw zc&Cjuzir1*r}#$9p7_DdDtygu=&5u9mp7b<7NK0366uaNDjWm}>^fm=8NO?+Z&K5k z-lJbgHJMKCujCa!YU=DNGuVvpwLWMK7wy9&7G0cA(qxYLr^L4b*8<)~kzsI`h(1Oc zs&-(e`I}kYF{#o`N}i)wd{8P&jcT5rA$zi01>>quDAe5dLI5~^_?4!eayu;a>M zc64F9hr6c0lEN`I)b=a7gVsH98EF&I2O(=roYqyNlv0s_cmDBf6RYD)o%Fq6a!i*e zLrmMpC+0g(PT|V=k%hO+X0+7=@L^j|l^S{9nIFZNjjA%<;+-7=Kg6OerhT3U&R3v3 z!b#aae^5Dsy%U!zgqn@6099@@Jeo^4b`TTHt@^jEg=wM-F3yQb~n29^%~E3mj807pw&IV70S$kf7Ws!&bJ$YS*|Ekz5pg| z9=V8?Ng(`hws(iH=b*R_q(b0*;?}0RJkQNrFCa(cuVevKzD1}tU3U?)jY@XKa!l%Q zZFi2jY^wl2Mz?5NaGrewe9exh7x6U*-fVNU`TR-1GFK}28sPtJPjS|vG3xgmPI)ME zCFHN{S|}qu46VVmTYu6WWayo&<_snPi0n5O{yEHTv4MEwI{oW zE)P=D=N46Rc*0<2(lyhztOdM>KFvU`$lk@8T%<3r0Cf|2u}ykqkxc9UNl{282FA7f zOG_KTgQsL1{p|vVuBuv@&4l4MdXM>qNYy?=$>6HfHD%ZtSiepN1^7M+DXYd8@jKuB z5j!i{>fosap6Dqc^nBWMa3z;fJv1o`Tp);F_Tyj*7kOwenuRtCjj(AK=yJ!@@dUR=#w0I6#Zq(jnkSnjir=?zgQ2c3Y&2(oG z$E{tM31B1sAG29`p?f%M{Kn0mN~UIJHS0sA2WAJ#esu;gY2jH3c3d<|5uF-W2EgJ> zMm+4tqt(`ZA-$fI2}m|$M_FT@RQLWz2BO${sG%RAcd_S9gOapkyzDj4qjT84gv9jl zLVnQfC^o(Q%rSV+PPj(a+|~ZEiUpY_)?AI~dgikhptVXluVqHtkkRNPol7wF8$-w` z<3m=plvK!LJl{K|xlbXiY3hL5-l?a_M0d=ud%GZ=64m2iKGom@`|&EWyqYt+(0IJx zH?bY}kie~wJD`t$V)hRhgA^wS>AM&Y-jqJr#|FRoDCO1({%g?7Q;#>=G^xqN7XBNN z&+M+E;r{xdSyN*Nr_KaBR!Rd$A6b5YLU1uM#fBZYhvDsFxv>9WKc#0ZW0TKq zSKa-3#Gzt{Y+R-0aumLNa*Y+fPGW|yNi0p~Ij_ z>oV_G&ysrOvB+L`vVVYz3Vo&iGxaFgR`jwU7A-n-ypjG3}7 z_sXLlF&C$`_%lLm*x4hT$Ah5BLx7z48_&LS6UWp04rf1hF=)zSRq(|K^y<^M%y;A+ zMk((nZN6_BQ=HPz+|+j1PZM=VB1YK$$!oervT9qbsdVsRrHP!`i0pF0vX~+p=thZI z2>;-qE=#NO*|Q451MNLy8vFSlW7-_MGP>O>YFGt<)EW;*8tD*C%6 zr$1!5Q5OJ`F26~ho7VhD3$pn^ReDDQ!rHSY(k2e$+p+B3SEIYbf-M7v6IJ%0fk|3z zfYojwHCINmVACNq4h(~wyR-lif-)j z*2sO~b;j`{zt+gyX$F&8PYe47Y&|>dAZbRZJ-1_2@hTx(zb*y&=S_$1k za+F?BszxTgU*A0?Sv6{8jg~SeH?_w#F_r4&TbwQ?w-&wMDgEWc(fn?Loyb5{(t9BP zMPyJxlCY7n9T!cKO8?@8m$q#6P<$;&<;WLei*mD^^k#Ab5lO>zD>t!VMC_R`Uj5Bi7itI6~^BTUUfGr4M{HpG`_f?6X=iHYaTS`iV6&;j)>kM&V?b z)*rhY)@lp}Mo515Z;_O~*msrIFA~CKjXMEUYosXu3fc@Cf${AD@+d_;CU~@ok zJr$sZ`vG>T-i>*(Yh2dGwgw|cXfr6PVMGyq^@25ZWl+oKhvY)1dfPQh>L+y2gcstJ zsjd^picV_c8IB3@XVQc{F{2tAt4tWnF|c9X5BHDs0TS$`q4hkL3+y zO15p==&H$-(E9g$SoH0aXB{PRFt`Gb#Bq`Ooc`-$5+r(f;Ukcb(`?Hh5ykjiy!Q zD7VLlww#QXDGA@`M}tm%gJqAe`>FRJsZra^!W4?z*>`=ca(WLcD|kAMWRgsSvEf^+ zfk6=`?rJ4rkR)MmJI~r4d0MnD)5J|cFsrtsJ1W03W2Bc$`_s>K6_W%E@3aBE&GF29 zQ$Dq7hp!n^^+e8W!!lpGdc}CXvcd@1nBP~%aEtW-N#u296jEnv6tAX!Ni)ENtP9^Qhk$Q#!jAu1$M2Z z_7DDqWAr62#YwCR13DfzY~beiK_GURnr*%Z(uw0NFWMI`he4`&(t`9`*;97a42Ow86F5mFmuus$oRUaSpK(K{+oqcEFl%_M57X1#T(*<=rCF?{80 zEe~0D`rEd?3ZB#*G<8t2)gX5A7t)RQR7YZp+MR0P92SHN66Y6QX|Zdb170Z;3f=4f zXcDFj_p8hsK)vQj%$04xfPk=f`T)gSwt1nze7S2~*DWy|!;h=CJ}R1aMgJ|8IKma(} zO3Y!MrU8*Y2dh1nO|6!}{k`d&GY~;T0JPe+$9bXg7bE&jj;A&g`lMdSdTGb8Pw;R} zO7eSzdLy~M6nVeG8|h2vX%22*LtgReUth~*(|-Pqe&D}qvwWLjdb{2 z4y}x%D)qp_r>9sJp_0gmfUj$AeLzbRpwiqr19>ukgMYn#;yU;(C~u=M2D~=ohV`)Q zMl#+_s~jsHN94UJk!cgu^uT_;)O;j)S6oKVgOeC?92!0ht@oRx+ewN!_fgB%R*TC& zfTI7rJZ;~r{5in7KQo@}tAv=peoai7d|Pn5$~xfSOXpp?2&1_3SRixx>)GotH$374 zsWD=rMtFtLwQLOI3UH-i@3p{4zpL(4IE21-oxE0-qBegbfxS-A@2`q411d+02$oz8 z2`0_lTV;TTGWFwU3j|fPo19Jztkfs0%SUr%7f~dy)FpifDlNPhhj}FIafg#}rq|Z& z)~VY(h2>8SL<%cAY6fRB?17CrjU}(FAq+l*O+Oz!Z>^Vd{%fL=RovJ^jx_56vzAN% zK-zu84J@a)`bQy^9vWQrGB!D7^YtnYU=;20WH4!NzM_<*FdA4)*b@HGAVw_wx`Q)&o!3AIu_1M3z>ZG9Eo5~s z@J~F+(2(>0gXNm-f1t?zPlo6J#Ry|&`lYk|Pxo`P*0=-FC_?v(YLaahP-Zt>hXhfu z5G)7x0)18BAQ=2m7r3Ou_IB6q zu}!-(#?L109l2Dbq}kh?l6r=-&D&v5r*kv(P%P){LeCABs;aTW$Dxgltz&BErrh;J zw_|JWHe74hfW8Y(t&%G(*knazvZ60986CQP2W>?~Mrs5z9hT~2jTvMr+qLtNkMnFl zrn&CDFTH5;i_D6PM9MLS_vMy7mG+>4I*cK;wsKv_YkVt5jtNLmWu#VcrSQCOd*w~f z*Ijle?e?l5)8XXs1RLht5 zFtfh2mSgO`wvO3Mk3J;Ht*eOCsyxmUjE6NvL)wWI5 zC_XjaxKQ^{EzOP+V^EoFR&B*51=|MhtN1v~>2%a=Yz)&UD0`OPFpoa9Kyx_rj1E`j zki*oBu%VNJ*VMkpyu*nkVq4A%{E;1Ex{3tq2$E;;Si$=}WysOvht9(eJJre~S=>D8 zlkCoSpW?@TgjohX8om}EC31SlV;pmvf@Y8`ZItOKJA2|BgSEH|rNzlEmdugyBR1XY0)ZG^VJk2frQEncpuX`s>&w3 z1}Wl<)Xb0MO)mrc)yOMaMyv{<#a4>s)E?Oj!Sd$PjHdIp24b1oT)eGP!*XsXf)mjt zCt}sf>BYr^86N5uIQj3KDylx1D_NMK^W%%>@hx(l4@7~KOWVjfPItW=AHjK{>Y%;z z2o3tAvl__@Qh7|{4D;2);EV(@ERm5z!CeDj=78o&m!P#A&MTxM9pHRr{K)?Wu0MN2mLP8eD`uQcCArI#JeM## z=uJFKm@M~&tFN|Qp#DWHp3D=&%c}_<-udHC%dzKrpBJfjja=r7Y(CAdD-rvdoI!SYH(#ncx_sMPZeOA5;8@4Rn!o1=2nM2xFi= zD@Y7V)EPD!@o$@zg4J5*YBl zc{XBF3FeqB780jhGsQOShqu;gfCdF^Ok z{|%QIWWUmQ&P7nMs7r)nGWa3VvKr9}2i8|?Z3*l{yw;p-E21=FRr2t{$bc7wE%1jE zc1r4Z_47E+iXc(E4P^a+J6q)X^@Hd#vVsZ&hp;5)z(&F3bZPRWh8M$RA92CQ0D0^) z`NxVfR4UT!XjM)E^XZ|AD%Y?E`VF;HJ0h@mQ4LV6zXS;~pxMxGG!T!*8kB(i^`c?- z$1$Kx{@noet1u9KiEPB~d>e6>jjoT-7Y`xC{p!?DnRN*^{6Qgq1d%uowuU;)7v^Ec>qFqYFIn2tEk40pe6_c&@m&2T*;+h|1G_3Rd|dp?=;)#MguaBd znSqG9mJ2E(k&5&FGTF)&(*sz`7V`_Ypqtwa8**PD;IrFbmYU9iX}tZ)Q|m)Uq=`I| zo^zC(o*(-f9Z#WeVBnfGvE~0Up+P=-RQ8q}vXj3(3^N``56SE2#T-V^tqBx6Ic<4Clc7P1#Q z)t9=>GJ`nMm&#BgiZ_Q?QKpxP$TjDpaS8Kg<{z<~%1mdVy~jn`JF}msHW{9gBEya~ z!%h}3yBt<$Px_ueAGxq-x9GWYKbrQMS zBqXt@w5eNKc(6Uq~bU0i} zk!Ns9Af}KNfo06J^+4lWKu?l8MW;4{=KVvb9Wd`P<<^FEA4(t%D<7J7mr^?iO= zywtUidU|bF6N6QFIHgY>7_YmuEdmz;7pgeC(&wPI!HEsr}S@L+4~(IXz!8 zVQmErbegt-8lk~W$w@|LBuT82Ijv;dTjfQ%c$oW*V9UC5urhDVM zK}P<`8Cjs~FF(KIKy?7jDbOMJEveCum%)7?jW&*2W{b@o5uDVHll`-97L#M%zYCXF zavxS2UvVpb+Wp4@5-Y&N97RxOkKkhQB|QP#=bvXi|4D6IghQ z_YI%LlHdF%w}4(De?{#jB?UfF1U3g*J8OUN7hp+oNC%)vPy%BMn*)nKQs)N!JVx>K zPaem0?fhH!esz4+elAR&bI2x+;-9aJgX_IX?KN9$pt*L}IpbioHWb=3?M=Z#q`lSU zNl>wY%vGdkNhVuy%Pp3wvzqNKOaYi@3SEc1%$-FmL+Uct5@!P)VA9Ai7vgQrPJ=!Y9JzbTk&dn1I|A;Hn2JLdY zHXA%x(ZZ3!?Gv&8j-nV5-bou^2@SC@QXaVoox{iQ$}L#Fq*O<6N>xIw}MqbqN5WOW^SUqV8VVcwm28(JI@KksUC z49u|AnRk&Lx}7&w2u(C-D%1Wpxl~ z{umuXDD^qa{9OPfK^v)1-^> zzn>>NRi&Eb7Nm!V`sBb*((96`F>;Dat}cJBiCIZyuQ>9w+A@p)&X9l+3-h8@ZKF*zjKf&k&`%naF^_WbaSj{pY8fTCz1YMT5hWL&CFQb7=d+Vqs`|%0{mlAHh!4 z_xF9OMYEM0BK~|+4ixRDbh=s*s^PuXOp_NUKS1+>A8!ALO38mf@c%oU?*9XC|KE+F ze!=Yj3vd6QTFd_j-kwh2x5)8}!e{z#y!`)Q#{bWrsQr8& z{y(Js|1Pdx|D65*TbYW1 znVyyDf2&hZQdVc6$W2{gaL5GG5lfa3)}DQ z)#dJ?W2&sw{o_17tb|-Zc#w<`AFsabd-mPX9Sn7x~`MvS`Q)sYLI zZguK~UJsXr?Sa{vtx)si->WL+D*~e6_C@M`0MlWBQ2o}l+L!M7Caown4OFx&gYhb! z#2dNOW5|>W4hCwpk2jBG>g?xU#`ij%OIN6=_P4!dh~Oy$Q5D$Zm|k@&1++8GCnxF9 zb()rkuQ~7Qcl|Wm)y5z^#OoH#F}}-`?Le7C$oIoV;+yJ@ZIhl&=gBLt<_QYsk7c}@ zo~@m)*ZZgA{0|2>+dnfdSB`(&=vPg)=YrsS-@i_bUoy#rp$z3b($}LxK79^WcR9mF zUao38eR?#V`J9Db_MmR%M$o1PeYmFRf2mbub?UQhozr#EZjGlWp3-BF$HB+@dX6@? z{3|yduDx%dzV5Cs21pLi*Vij_9j-6_kB?z)rewqw&TUk+SV`kjN77?%xOvmg1J1IZ!T zoeLYZh^(p(ZjCzAt$`c~g;1YM-Z#fO*PYWIn^!Gi-=TXKz);7Sl}B6bYSXGSf6#+} z^^=WvI9r!44>%#NN`S0wj5|TT)wAuYl{3q@HZ8l4+YTV18`p6v@7rFTT6A=O=@2LL zlagrATiiFmh3qWv6iI_R&r zeNGA5BEzNY79S2o{37un-X!9!tn^2-Aux^#%(_j+OH;q1-UVoB{t z2Av-)SBX|r-&m^Rwv&NzJAznpJw|iWbUSxWR!tr%-kLRMTQSZMUTHLv&rsk?74gb| zv9iAd8ZDuu3R-@QO;o2Di=_ZeC~$Dd1?1@3P6D2l$fai7vYI36HYFd_q>#sxPcW-!*NojT{a>=c~Em+G75pSxPLcuU{-vI+@{xk zF*}i#TMRT~=w`0L-E~v=>pX{d^NCR)2RpWI7DHmka=kVEwIu`Ep z&IR}GjYy}r2*FPI9xe$>n*@-GoU$HsqC!s5+INC$1U`EYm%hE%dYMSCJ7;_F>E*m# z)ROvMy!zqg{d%-}xdStbTrY;{zcX5^ska#-tf$m8U927{Xe+NQkd_UZ+le|aU|jqt zpRyz!tk-JZ8gQQ@OwR#6{rY<0vLvDIaE*PtS!81h?cD6Tqxk8@Aoz~E)&Ab}#w8GZ zk_`v{`I6a=uH&%(S71%mB)ikt0^{hCzQr0X6|}igG|ZR|`4(KUh{C!2bPng;TtX6G zM{52r)oMf{@*}>xip1Mn(I6PIqUw9)RLpLMP@9Cj7Ro3fb#{I6X<+`cS=XwL-mF2D zC)>x>F&07-MNUz%d~2{sFn7Di833M4Y#(7tUHDK{x}p&AYUQ^00OL4vxl&j6Iu}<8 znz7c_N=ub|+Geai!P=!@*=6VqjM<%xX<1*Rmr}91UTYXOgmD=Y0I6Oyol>8}dmpM~ z@t}u`C+du3(>dHCTI(;@mj_QPZGG!8uF1upv!mZtb|~e`E*p_b*XQrp+8~|X?6ilO zw0nr>hbYknySH+T&dj|STfdg?Rl|cy|G7KBaTujayrjQWb-Yl~L5sEStZns)Q^)M| zzZFbMGixP$1qn0Q=C8toC$0jcPQ7J4YCnlU`Uq6V5qG%q=h3@NFh_a>I)97{9ny9du#EpQ-hiN);od_*i} z4#;OBKojf|$vy%S*+Sr06s@d3h6oBYLm!(4SJXco6Y)(;pDArpx)#u#W-+<$o+sB~aR#YwhEsR8go@a|#Ux%LeuSuoU};7*RuhRZ*5amm6pUyk zw&#sUoXrq~-;wfqk2cR?FYq_8S1h)qLS<|AJ3Pm%wvYSUjUvSWj)9O>;1ESv;T2sr zQ%gg~YDQMR;THvA>MigHti3NPsE|g1A1)|Kj+iQWsk!F^NXTkK&EuKyk2i+jCW!2} zFR-|~DP^3Jc)i1YgQN)8t&_Ea?5k~ZHO=S}w>s++ij5W5o3jH^R|Z$r->w-&62lZm zjz(edK@##FL`}Ov(_!ts?N?;Ol&&n^C-S(eh#TpqB?C=prDCCb3=R!1<1_f%Vh+uz zHJxl@SS!%il=@0${>wv>%7L0@kGMvmO6wj-@h)Q@)IHHsMV)^~?$cSpK9>-%8z#_o zZHdC^`^s-rZpxI9(N)w^?~@ zlU2lRd(UaT5xIvhfyx@gH2sIPb&;i1f}}I)qb0mTG1}H^daUpuo)`Pm zUb6cTfIHxgXk+xi&_mhGu9k&v=MuT$`=A_4?EmldJ zlJk<%u~vh4-nH|lp3~}{i>ZtW2eNmPZz!@K9xlg6tR-%0f=Vm-@)=oC!3uJ$s$dq)ZAxc0TY9t53LB&|w19GqmG zjk_OZ29!)oUV(Opyj4rBt#r!eYSRo272gl9v7RK--Va=`_m;?Jz=?>oxK}?|2v0#x ztx6xuX(U5rcOm|!QEO1ErbHWPQ@kkY$a`%`szRp+WN$RM-hl5JieGij+Rd8qw}ZN^vk&aEwdxkWQj6 zCg#O(eTZ5ac9`~{h{|9VNU#t;m=Q~v)Fj9dU?R89K2} zK5PanIT9w>A(c#vvWFj_ zU`av!OAtS7|HzNhl)myxe+PlZP%N3MV7($3c=3^xz+4VeD1TW|X_10eXcVOo8%`=c z5_Ur`1ZV2>OvYT;_@co+0~;K+Jd~LBnzg^(sXea~tz?Bkm{Bi14Uk%F)zwvUPhAZh zGd-V7m8?9jK}tc#Wn}}{NGmYou-;%yuszB5NX<{ z6#L3wtXT$dS?544qkf)PEu&!NX6yb`rIhmb;GdjY5@RF+?||h+t-&aiHdMiU8cAn> zV&(vw+hwh_EW^6>hvJc9z+vnftnOtsjIY&<#@WQPGP5PeSlW;1ptUGDhOjKwNBX_e ze&QNxM}i&YirQ_&$_0G1xvUqM zlzQx-OtUw`)!MW5tYNN3{3{{{R(q4|vpdHPViC=&54QgLh`9Ea z>Sq6q$|g~XyzZ5O!^iN3PN5D?#`{vH%mJ%IxTsc{Iu?fvQaRm;yn5+8a>@owCOsMK zb*DLO#u%FO*&1?*`5JSHHDHL4ku)){KE^0;hgzmGQaj&+3^Ly}wyjzAiV5`@a!6Xr z;yi?cr`8|D5?1@&W(=Og$^&@M0VOie5m=&fgp&U|eb|?s6Z{z12O7(Al39i*kqK1L z)xjNrUWYoyXpWgONmbd_TShhUTQ>wtpAbu5)gMW-H@jPl^)$tiHI>iFv+)Wv?pQk|mCG0)l{oJAST1snJwXAY$vC?N6;EH{OJ%~Qmdk#|v&sW% zGc8xb-WMx&H{~`3EgPghmC(85_gR&$8Kkb3RC~}|a^2gL`pLyg${{u)yXz;?fQfsy zJemNGYdd9Hf|3x~2R1ioxu7EiJ|W_f^6Dq1uop0Bl!!`@x)OQJ80V6dDzvS4x*s#~ zmi@!4&jW&z_7BdkV;WC^iWd^RU=j{S+!ERkq9C|~;Hv-qz8)h573?e%L7tGR>9)c> zh`^|>S;^+XZX~&egm?h+X7&1NAsguenHA}hK**|}*s8N?D8s2kf+TA%aVuy}v$PV6 z{4ODPsK`zzH!i95PKZPkOd@^uo3Dysur(T+q9g*xwJte`oJ0%%2GrJ60Ak!nM3YB~ zA%m0z4ZyC=l9+=cr6V#qMr>X#CXJ49TJwSi*HL%Y}kah z$)O-3hJYm}%|1iavj&%tHje#&XFR5VFw!)gk%_wj)Y|i2QG8Gb8LGLxhr~p;FYCweow02kKOpMl}uT`Z0Jg zH=ve?wa7OXQkvl9YhS4?Joy_fe1`f~#(1ax3U4GzQnW6h&R-S0cZj-p4LuJ8-L22z z92aQ<>=%eBJO=$tNYo#BidN6{vUhGf%8Ol7tlG=j1~c3(A&&bX? zFWR{~G&?;Vn$otauIz>K0}6UBks!JibF7$8mP4;QdJoLYdQDWQyaUlazp>`0#W{@x3RCehcCLbDmRh&M40I(YiqX8=c%4#q)oTo+k+P;SefSGg zPI8)%b207^#x1lE*Q7yuZdBq z0|^@LTfQWZDiVpkh$1Y>#QAR_x}=;$oXQ#d5m{`1EjA7%1ZYYuSUcWg1FTq68d4*x zG%N;om5;_g88YtA@0%MzLP!XFD$Am^uSy%mjXoWL2aHnAZL~|x(xz!e06}%ta`&rL zhRCrbZ*rHicR@u^LAto^fl47zsb763n0##vxp~)IC>1Tx6hx8f7;+(RI%kB)d z*UUoo66R2G6(|Gx`6~W++AWnRNpqZ{#WQ=BAyEns+=j+03d3HU=(7V!^B_qKMDJQh z!fjY}W+?pV61fCnKqAAQY7}a@C2X{si}4VHJ|dBih*iMsgyA$-H&=H18e`B4baEz0 zBUR!lK#Ymeqe5J=q>79RVQKlbpXOP|csPn}u%jIXYgbTR+%<^a5)uG$-~cmwX*=`A zFku4!I7&}RP1Nc@X2;@!X_Kpz$mZ?N@ii%xvO2Xgr%rh+7frMd84p^Q zNh`-%V5Bjd>LsM?6(rwY$N_1oA9|oSBX*us=32n)y(Na?XAzzeo$7z3t=)SpjK*>B zSX1rTh_GyZL z1oQi{aQ6JT1JBP%vDge1o!;Vbws|xwQeJh3aXalk z3-yn~*yxQ)P~_{u93d`aAWIo_mj>I`ZWXzKJsrEFKFymXp6k5!Uma>BF;b40Y)mf( zm6y-28b60+jUA7~23MwT2UNUn z2wbnvB)(~j1Hhis*Rj9~j+b1zg=2%PcOH>&N5w)h$nFAZ>_w*5C)M6(dme*I$K>j` zA^Pe=^!Oe?%&L+I~9-ys2i1m-U!CtoMUo?~(#5vS!Qes&{*-yMA1&eT80N(Iw`r_GrCZ_5J zQ)nIsRsy_2-MGjW5JtENMtTrbVNdA)#oRfCS<-G>IxB74wr$(CZJU*-v~AnAZQH0+ zrR~hlfA9WJpVK(K`=+}u*5$V%;#n)cc;|>Y#>DpJHUr7h=7qOh|(mMNsSL*XNh-&m(WCFk$}js7vxQB+>@z_?YF{KhrO~f zUl*nmnOjU!sh!(;c()+f^6WGDh_5m*y%Q!~6^@s-ko2myo*^kJXUu%vqsSiTu^(Bc zT^kr7Y)!por3^!eu^-S#3YVN8Cq}`Dj6q1a7QqB28cX~&gP(c`E--K9ZtD@0vb(WR zo9~jpJEUuz#sm)^HAw88EM}D-AGb*4RX9c}5Kqi%;DA|Z*a7gU(r&M1_I@ZNjTRJh zt&!w?6m>HcURyV$$rmP_fJ7`|NXEUMuK&uwn-MFK8+&s#vzV>npz>a)?XPqjk7**t z%py4(a{Y`GU@va5sA{Kzuj+5LOZBzL9Zy)8LovG7HebX;Ptn@7@Ph90B#UR_aNQI+GKO}rF87XXw&#k zQ&mU5MNe4s<(EhQl`Y>k_x5&D@}-FtsZW|Ah?(XU!pOE$q~1v?9vToMZD1}|hqIA| zOf?YrLVK&-Ysgji(L|JW{dn(Mtjnr4wE<@8a}X9%j=YW6c#XG^`_h%@MY5Amg;8{Q zVSIu}ALn1{50p2%l`QV*LVM}#aYi?39z;Tv@^lJt8PB6Ogj7aylB{_HkC1A6nbNxV zRvPz&x2t%{Hii{=P|YIg3i2ZE4TMrg>(#pV0vLXw3^See0i^*jcZgK4fzktiP7U`W zl+UMN0}mqegIcooA{i3t!$^>9>g)H;biBd)gWy+v%J`{lDx|SfQZ4pF7FS9 z!`xTXS!1-TRcAGvxCNax4xB`K6!hni1)Qe=ft^JdlV@YN#Jeo|hmm6Py~X1SxINj^ zI~SzvA~>?nB`Wry3J5%U<)pp%=b+Qv)~i?UlW<)paJA1d-O_uE9Dn&=eMcwaIi(!c z5V=KMo;N{iV0D#Wjnc;cqe+IWJU9)UI-fp=`tz zuW{=nVkimmN;8~ZCUd9fTvgg`M+5yeVJ2=Wgbly*Mq$x%jK+jew27VWVyn10#3^NK z(QPnV1i}}+SJ^9*>zM1pVZR^lG%mD06fVewv5ZBg27(kKcZyP4b+f$6o+ZTP0;A+< zR1Bvj~%BAUi^3LqphEdC)5enNfcY`cfn+ zBgZsJkCXKv`0@AEheCuf*XK}_;m|5Vev{1~Gi0a~s?~N6@Vt;JP|jF=Moz=dFe5?M z=qPpUb`@wuX~V?Q_;&k}iof`#;0p7bZ-kwfQos2|EAB78DcqMDD<6|2rC7#ER`J+! zR~pKAZYt-ucAo&WUKdciIpJp{mkxAFpNLt1S3MjsPOu2=MA+FQR((!yXVitVD?*Uc zEhy5UT<4eF#yV@Em=TUPr9RN;MJbvz{M|KoR(Kqs=Bl2>(~8cOW~^rKNd8U{oskJ> zXmd|0{uwIsOx=^rFeLZ-qa)|Hn*A-=d-Bc^eD$AYhg}kB*fas~zuBgtM&hrM%wKPE z{aF}ms^TQ)a{^!Tn{`N751S5govEWo9b8QZ#3W0S1HpTi9KQdBoT@*Wqbo*f4AV%# zGoHf(X-!bTlq_-k519tZHdjwqrS-9v+viZx^DV6Oj_bN&fcrN4cZEsKfojb*o|eD} ztN8*V(0_Hg}QnE|6C3VtW+w2kDri82wV@wI_w;Dvv4gSwy_|M9-^!v7NwC#E3R>vpH4)Yb;GeaHX_G9K0<2)#e&7uC8Jl6u%&jqEfLhBP@EeWqAx z+4`xSth^aZE-Ia-0@Ht39&!c|9XaT%B}#a-Jl`+#*(Gf)K}ia5U6v!4P7d00RiR1# zA^5hE$dZ?o{~@nVadBkJ6FX`b-~RSxWu(GRGR8|IWPIyDfmOn=5PdeZ2Ns(B-rvuI zEcH8RsG|BxqoPDok})dkNjoH_tr&7dVkK;Udm4rwnM@emrXS??t{~4Rsf}@x$mNkk zpcLS+5r}VsZ<BYn6YH#WLiTEec1OMYn_J>!knr{QMdb>j+eUc z)Qoe%vnF2Ysd9Y*UUc7F5G`SCk5qd@Jxn6||Gf2oV zkLv`Kd|pOJVE+h1oIC$S-ynR|xIHO##x&8iKx6YrL63K`4x9~@vbnr^lB^&h(z_$9 zCA;9}ytYLfP9)`&dm4XQ+4s_mBq&M41{xsR$x82jGXNIxY2xq3c zFBryq&S|)Qj&9~qErElWNh_Ly9uNQc@Fl;?h<9e$t#no~Dy3ky=5zr7M%6h(=@wro zghnd3*e2~bhH!Ejcd$&?kmoqgwg+Jdf&74;`OuUggN*l+s|H;D8_`VO;Z9d^9e8s&4NMd7Bb` z^qJ%sTZpmiA(HfFP|QjBEz3#xpIp7VGFcadCUd{STNi8VBB%kaA zbZQ)-aG#ysg++3roJE*&mP)Zuzs1{$tQ>$RR)3uATv9jsG^W-*wm)^FjNU*Exwt;* zGEGXJXc4^ysg$9AjAah#JFW~F7P&x8Dyj~A*PEDH(O)+XGVHhB0a!hJUZ>GZRN7J8 zOz!WTPSf8gshEh5ESLqNg>{>`al?qRZK1khr*qrPqQ0ed4jTNag_;)9x~g2!{`Eu= z1ibw8hX?M9xk~u5!t|&}g|SWGIkNys!_T3G=qqGx4!ooqfXEc`;d4L|a@>*bjuh@Q zMYFm*A;f*Vm?hBg<-28t=E(0uf6h3QPCmLvj&EYvDCEx38lxh%CH9n{@p#>OUa$MG z2fImh9u`P-LHI|WN^D!t2M&0e-FP=$Pk_=hGgt;kW-6R{FHv)1bo6ToM?{|{LBDD) zx9Gn>^$JCE;J@y-Cx*xF{_2bZzq-^tC;jZ2ig@ew@dRE#S%30R_Vc;-GrJm|;r3hj zkbBzG>)7$V&gx9CYmYHmHL3yOyNZ1Df)pev#&1GJD`|AO-a}lOw)NTPW)igM*@Qi7 zD#{C_nzTor7HYwK@1VhY|G8&t3Q$fCc70sbwSNfmD35<9wllZ6kK5hR1st_?lJR6B zOjT7ptos6b0ePjEmlPstA2`#F&h!#x(GRtAH<(>~1yKXe>SWmewv5J!$G!1MM;DUY zu5DX4@#@<%40wEP^^~+ARm(&OIwK-H9!p63wAt)}0K!U`omMfzyKSfQ+V|MA{RFj> zsk89m2$T=gZr3y7HQXZ2IEd)Kb+$M5GLfg#*TS4N0*m_h60oD68yV@=Ms= z(A^C1c6yru?gQy*OCZGy-JR`bFU1ME(n#7DnRD9WSBN1;LWuog{0Hl`#rCi-nYOd* zaI+EG#Y*XisyoM7uLvC5V1#H%HT)0F;wq+HvUR~y!op0(Z*@X28-B3aCz`{er;(1H zh;rf=`uT!{pVO1~+u^6!TXM?F>3KZ6cW%=ZW(bn!J2~J7a^Pff!&+kXcvpVYB4871 zf~sOfXtWcsm{wA|6?nI})dg(_sWyXO&#FeKW=tas!`^vecZv&ZT{2Z=qS~C)2&0*i zm;_>DxA0GlUr1~OwLBds783+v<|(AK5O23Lh6cr0AxRE~0Z1t`s9SP6Y2w2!!QqoS zGK5O11c!w3b5b6&a)IjiV?Psqh$;tZB!neWbPY4@h5?GkV%CX3un3lq2xgKDc&`c^ z9i_)|%?ta|cskl8QO~_%#UqPJFboRQB%gr^hf0CgMe@T@u{W{{d^Z_;iiEcmllMvl z^oKJ2DH&yQImFe^+cwR3NnV;^nri+jezN+vp2;NlL2cr4c9?^gRK=?m#T8~6WCVe$dxZ{Fve-O%D09wg_T1p?i62o91yxE z(6(!!R6GTuO`?lE=zAk{dqPX}BjfdPVLr2|GOf?nLg{A;{F?ZH%hA<|gTZgxysF*D ze^8iWi^ETc(^mP86EPqs$b`J3ys*Ia&zF9bR!5a4Lza%%_cbGJYClIIHDQ#=U|hje zN1?V5A(X>-5N->2plfHc^?7d?x?K0QJ3h=+s8r5Sxek$Y+ltZ4?)GYZ+x&RG_kP;k za-MnO1#D z_XWwj0W?`0r0T_BWdmyz%AhX3z2azj2=np{1XjR+wCf7))UWf!`)(j>^LP&z^DV@z zvf1zbbziULBD)*F^Yit3eoM=3z%L9YP6<}|!sbMmy0$+_n@uFHj8e8jq-q#sCkpcF zC!a30F-u6Y)?2-aju)Tb$K?x10!Tvs+vhg#mA)FB+ze~hHO|guM@fntgP-<~t*HYs zFuU$AT$=2Tm>LIsan(Xsh6NA!j98lA+`v2M+!af!9^ToxQ6d>Sl~XwRIz9DHP9FqI z;}CyP+_a923C+?5I(a7;M*^)-Z{m2)7M!=^RCbHOq8KHVNI-ShN~{jr&bR{cZbGY6)XJ)7bFY#)@2>h=1DF=ZnQ24~e5tA$ zWkn1=l)Qd>q>jv;jY4pu2gFRSrZ$42{C~1xc{kx=3!Cu3J0qOUdp@4o;b=SWe6|m) zcucd{HK2L4Hx6TXQdNn)yzX4`Zu@=2QYqGM` z@JrxlAj)RULm?HaICNm?t5Q|Xad$0OYS4~VYXAdlhg)I9KPLq9#7(XX?W$PR4ilU< zcfT%_cqJz1Y*}srSyqNz*688kR{ic21M!Ig+`F5a**aK|dfL))bGv(QSdw(}d%M{? z{XE305`TU{84{2zedR}N5bljgR$oZQ^tV4)Cu5$qtyRHXr5?tOP!WE5cl`R<<`t;; z3VQpAK{EGojAv)7$9ZnP*1msf=hmWEC6G=PPEJAlDWIG9_5r&k3X15!X}-rjA$v{-0`{c`Ly?Z++)%NDT_cQ#%uOw_(W(z z1?^P+y14DF$?oR$9!zW(p!f(noJe^qshKf7IPU22?h3TbrYn`+AZ==k>+$+SBYtX^Tf8vZ~K30XW0tO?t`) zt$%C{Xbip<)`p4Gj#6(XAg;(hl*&@rkkA%=9<2*$%u-iwoL?nZ(m%S^81_ ztZy~zJw36OKB{a>_f(FV#BHkaC-+e83OvDZiXO0_a|G?m+14!53M+L?Up}88UWrqS z#J)fmr7T_7APU1n;{4AG;mRV4@l-uhO}gmWk}1&%2en(XQUvbx_s&0-u2POO+}PNt z9bLXSE*E1TYhs2?z!(x*&a7|Lx98i_r)HDazz;|NP{lhk21@TqqXe@X8C6oTh~rDx zZ3#fcyE>Q7$Nk~lEo@^{Be`hMFjNDRC->5wL&}Tri|#cs#hX&blGlKQQU>!{T2$J* zkD2oF4MB@a5w246RrRpEzEO<$N(+XWDndD(#bAvgLOE@109OsKhGNcDzx_h*gW;|F z1mH8Wc?qQ1N=`|A``p3X)}luZu!2SmWa8~^nqC0jj89bzT$JGB@bkrQO+y&!ZN|Jv zgN>nGajQp52&w5Xa7Cb$Aprt8N$IX?lZsUmt8_C?rhc<;v)S8nZ`_9R`GR#lW=3R- zkIzpelTGYJ2ZCYSSktG7` zm#kztIpP$A|FeSIQ;@VZOc}LPykJHIcw7UuBYI-AI2SBMw@`N6Q6_Ctb)~`5?;iB< zI})rtI?ve(Yyq)*jT@VVp1p~1s530k3`!^A_|=5W@w6Gd#e zF>>3%1ElPa9(YogLzhZ4|8u6<<1d_F>-WNbni4XfTbf2M1sPB^z4ADY|f4AwQ^Urb|Js?Nuh0s)a|HukyMN?VS`H)$xD^`97nSR)Z?CVeb@giV%E%kti3In%HjaJ!jgdg}#IK9gn3?4ocM$>vMid-* z(PYHuDm81I#BSg{DHnTdFFW+$8&+sp);v~9u|52yEvDa}p&!!L&s%&x9D1hG%%ro5 z+v~KEQS9@tWsE{mVbB4P*U0jSVVITZ>wp{|a7pXx zpDDcPQSpdmMIz-q3FSWX2k|>t0i>X-<^>z$ammZ)h2}9ATn*cJ@uOHj8?f=6Gz^H{ zh1V(hTYd}~hiID5Vis zBd*?5>@_5E#Wq_8e4#Rx?W(#KxLl$;SUO>qAwqfCrh{ey0|yzU;$Fuh&i4d7n?y{s z8dG31{>ES8XvXojR2wJ7CyU?jrU*xWg#5zec>c zB>%tgDf05-|2u0U^Q_VpyeVWw$Ym_%W@=fM>(T9l;5Gn-`I9cY#%c>Q1ypw|Blsx1C0{j!bO ze0|S{9@s%>-#_YTy`qqU@UbeXq&|6L5E;b2KsLA^Oqo@oNp<<`n z{LkEP9@G@lobBbaDjh!7oKIg7zlC$YCYQJ4TF~R`R(Z_>?174f<66$`M?nLpoja?; z)6$+KQR$#2i>~!X)s;pek;m~YRS1B_M*w4L#|!yZNs^h^r0$Z#!&j0&;Cg0TIkkI19JeRj)GeBnsF1U zIIqcVGm|{O2&QKUV;E6Lt2&Bck?taukXIFibv81h2l1tUgTzgx?#M^=MDWA;4`Zj7{#2ssVnCa(RJr0^<7v64D?IYGS?PRQ0lL8_MyDn?2%l~6Aq7x2foB821n32=0oRf_XmBQJaJiiUOB>O6 zxPLsLae6dx@f51)i39i9fIuc%%wV}$w_YB{2t7Q=W+~lS_{k~Ii{*fJ7)3jD+UcL* zrnqKJv5~%3ISool2Tc8Y*Znuh3KUAV?BE}KFUIKF-8gyWosFB=r7F^#W%q9568b^e zxNA)=jV3=WFs_S9)PY|Lz?InX$(48Ip$Xyh@%x$kZ}r_aGa$L1Tu*KhhiW3y7L-=O zvih>2y3bo&fs;J#>WPD)i&yrRbxL3Z_35Ge8=*yKuZ;fYwU|}x)q2`5jjtmQk3du# z?nTySA!3Ayn{&4iTw&h>L9#2alM`AJf{*fiXQIX;yW~Z!9R9gc_oReo;gTB+J@OHU zvX^$Ew2Fi{dwa2%k0m+zCQ#Y)@VO>-)={bGtg{oNK<>neOP`!rMPprc+_I!`qIN8x zdL^4++{mYDAFDm;PS|vvX&8rfDmk})gjpyp@HKbu7|HVqpG=#dSh#F;CysOhZvu;7 zwpE`P&Y2ClMe+!ubA>8OD>Cq?TJqKE8T}0Q!j1YXzQq=MxzXv zybTjECGpp=@TfTHsoD)+E?nySLkI>UqOEcoefB)ylCGO1OCpv>TdatJ8TXJq6b0Y7 za50>`b5IK*URG53+-rsl_4zsiUjv>1M}BxzZ%ZKfVL^3wNnS|X&(QSy7|%{VVF#B1 zC*4FxWgh+I_WB&r)o>7Q>!6i-1{-%1%|sbH8%>->+V-Nfj3x`4ZoQ?d=_n7`t4Wc& zh$+dIqrlb5G>wd63oBxlnT#tI8P$dZktyXARJUeupWkkmKdrF>?`sz%Z&Tdxl=_Ao zJVrK`RZy_C)HI?uu1riRRfyKJMU6q|dP9M;AnPyWuTz;142}>Tde36{UvQ+gOdZ+^ z-5Y-JOj=}Jkt>6IK3u|zJXd&sYN)o8h%Z-6HD7{@4pKNRb_yoFeh9e&KBSU?PNm%l zuRi>7GHyeUZCo2q@3a=U^d6FD1_n&XDBFlPUvHz6$RydIuKvwMaYd@Pzl5oA1>(a% z5@C7#phJ3~Sl-c5fe@?cQh!k(eR)DpTxAr(8Q^tqg#(qvBEm~bb*`B~dKEi`=7e*Ij)gq1qT;Q6-7xmf*#5U8|y^t$JfA)I)yP1pO$8rr5D9ZPMf@-PWHPP3Nv`&7;Kcs)yrk;zjqR&z7M5Pv@IS+?=($x&gh2B#yk&k@}9k;BwciT=*^ z(b(P@lm#ZA6*>q98;M;~Xv!r7<^16Hh(Gh}iV7VtJE(UEG`* zk@J|VY|Da=#-MvBFg8Uv?l`ues@{8N1E|1PWqH8ns9}&5PYTdR9_OX}Il8qMZn`Nh zWhFESD^dVL_-o{bbg8K~xofAE;N#sUVtBWfZv6fU+XkVkQ0PROc`P&GGy{RiF_TN3 z)_}(`)1171?~N|8qA3m}_dunPzd@*4tvM4cg!QqTaji(*r<#lA67SaOV9XDE-7$US zQhlEM(egEtTQ`Vdbn(OSCz}v{-|BS!HucfM_72Pi4~UQopbCF&vk|jmF@Ls=twh&g zw&1}i=ZI4j%z1ggK zKPmgjO5elBJMY*1^lO^eGVb?grnZEIa8+g_V3D?Tq9CdKdkSWq_?PD{JjBgtJ7-0X z%?p{D?d)U}%E|#mh}u`U;3&2{e+Ci&T@rLB-Q(hpScP|bX)oh_fdNJRp86jlkom8W zhQHC~Ux7g8e`YiMx9p04z|p@9f&W`nDwyz@{~0y$S8xSA zB;!8=C;lTH{;z{8nEwi<`1_LnQ#zz)Wcv>R6#t+@QPgibbm&2*0$K`U!tSoO`7z>v zrcr3IPQF3I8u2r4B+ivWac{u(^~}puJRF%~4Y3OS2VOkgOeV*ZgkPTC2^3EUCHoM_ z+EGcU!-T2e^2$RPnT;tJa?R;bz~*ZNd+VmD0lMdJ$q~)U(>24su!a3(Q)hvQuepbQ z?mYu1e~)-9_z($<)~KRuXDKcH^?7Y^3b=xKDmQLK0th+yCvvrWtRfsNYUfG5SOSle zHDCR;$c~nxUF|+B`+D6IKl8`^+a-`Gob;|?|Aq4{ z7oSeUhl`_y9J-U9#%HssOM9GUbDU^s7RyQ_@5gJ-%B(Hd_gIM)2dism`yLiTgjbd( zS(&OPsS9**uuB7R_}nE3`A~okqPF1Qt3cwmWPLud_qJME7gu{nz~VeP@XxG5PjgdpD!0CO2ElSL zzZ)ZYE8x)X4Te$RXe*6~)Y04u!Bdg!jc>lvK!JD9U_JnB9{utL)5-b|E@#1P zE0}53G$e-@Cng|Fi|EpjB=IafS00&dCgd64pI(nJZAL1%tM8`+B;K?r`AN1^Axd?` zOp=5ipDG+Z62zXs>EVUqgokb&o-6}QQg~X)IGnr(NBhE0(CxO2rVpU0FBsf1s9Yjb zqHVs#2>86GRqp=Nk)v97;E%wvw;yghRUpopC>@OaFMu)SkRZp(iItbg7f)hcCOPmC zcC~S{q&Ld@h^X zX-+$?B)Ik_C}SF(ysc`F%S+?qAvY;))ylucH7K%Iw_?NnW+niapM=~(CApaAiidw# zg>+U-7`(R&8Q_yl6SvB|Axq^UO`*V+jsVt}OGMKs@K95y*zt^J z4S7cGO1jNvp@V9FvdBwtaYjM&%5KOF>DOX6s;Bv3lWXA>(+^iyAhh6Q@c%;RfrsE==*cs|Y#m^5a}4 zIG5k+J=?xuzeMlUDP7W$Pf~Si+cI2YPQYB|c%?9HP%TSRdV> ztJXJ#i^??K+8hEt06^kwpB{M%OI8n>%ZuibY@9Zx)3ZfQ%&x|iU5ho%S-!JtA4y>H zk}ut#Iu6+-3BVW;_yG>YWGEyfS-b2jrxvt!WHYk5(&epOgIL9+Sk}*_mx44K(r58H z&L3K-#fp6>_C%vi8LUI>FM@FhCgOMo@~=DtuYH54M~a(qx7WA?l8L;6ho+S~#-pki z$mq$k02*lU)~v0a7@hiD5!d^@FrBix$e32rEb~-OjV}dL45-7`u2wB$xTXPL)Z1;F z*Y0HEpR|uaaN8LYsu|9HwYC%m^JM3*JoFMVfGt=lLpyM-Zqh)=2N}`ma+TS&c_eL% zyiiI?5$`WR7FBtW#j5im9{G#ihkDXO#bEc@56p=|XEvH$BZ$WO-NV5~Rp~#w?k#2b zA^6E&DKMcSi=Db26;@bik5Hb<&`!QnN+K>q%9fQD#aIGt@E&8wuc@Lfht=qTP9QQ` z+wc@+g335uUei<$Cl`xzmryPx4N-n3%&5BI;-?Wf=Agl+b9OzM zBjA|~aN;Rp$=5nlh`>OiW9Z)!7Rlpir9wx%vHJC}&^5{Kb<>f%~BL>te=)}2(C{yD*FSTw{vCJyGY^YS#>Cjd zK+w(|QtL02W8q+-WyEJ^W}xL@)cFfGOl*z+It=r_&nWwU$X!hM|26yUFVe#QH`4mo zBEp#e)vPZj2FCxW!*ywHIBtj{`i!VKXA7!m(1W@eTj3dwz->E{$PSLH+9XN}?1m1e z1DgXh=Fe>Mtuv`@l82EtSn+`a8G3q7JLjBUrp??l`4q3%X^DzRWxwyBx*xXrmahLH zfaO_{DqEe)AQAZ^^d6RaY^s5(gbX_EC{~jqB^sIh)R;@9`I)gza|k{YA$2IOAPG%4 zz&sycUz1{tf)ro^MA$Nc8#?MclUXLcXxlU{SPQ^{|q{ZG^9 zLkZPuR`QqpiR|&-DjyFYoLS?#Kzy44vaqCwr(@SIQQu^8b0Cl^reN1< z@tVy$%07UsZ2%uU&LIF)chGI&qE@y(Bg(KP*UAgLz9TAS%;z9H_cW|u(q;FZ9}fj@ zaVbT(-qTrpJV2oZ+>ZMC^Vddn%j)JEnC%6usf$vZlO;F|J8lW1a~D;%O7Z%izL>MB ztz)@Oaklw8zY>RS(-mV|4N7%JJwD>tKz7_hyrpCyta{lbh;-sbbAKrBM z`4;t|%5(+8@Q{ple_ET)D#G)}opg1@$;8-hBRUaz;^!n!B_J372(;U8=%?07ZR;26 z)sYYvNN<&Z2SKv(+-U~;3>m3Z;3%0ZOu`}VK8p}I0%AuRMnpRPR2^;X~YxD zpq(wqqq)L6@gq^6i8_LCrNy#WM_S8uX~%OqS$L-}#=cRUGYoT(IWqW2YT?o=g8~*< z9C&b+$X}B#FXT^^-;%qC!qKbfYO*mBK`cpwz!V;K zQPOMziwuFlf;zO3GBYR~u3f-z;FlQlkx^9i>?+Jxe@4AmXXJ1{G5;zv&MpNe5`HJY zkrI3+Qmb}Ift*7d33tJXG2N#;pE`W@CfzVW&EYL^^cK664^+SKBmOH&@U;r`v3Wy% zvfZR46E@UVVT<=dyf2e8jKOmNLS$=pnfeiFJmJ!D@!DH7!}s{NLdad_11?kL1FqsK zWAbeU%K;DIEA+T@x6HvvOA^bXpdf{q?Kf!H;kVzp@{)eMivkRxo<uyVqLL3z^qeOgtF(WdHjv3v`N0XWAHP!TzTEH!15VHb z-+MRmDNM9;KSmJBd20 zM*EdU$l-Y;*>#M#^>jXTsV&;DZynNZ#`H+~NN8c_8u5BD)`p0cHyy#EcPxx+4{+Ph?C;QK=8yeZ1sXQ zGY7%tS;3Vqc0`GO7Xm1>&?PGibvw-pie6Xe<3ScY06l7PbqWXoe)h74Y;6(I?f#<4 z$l-;)$V)m>P5V*Yql<5VIECidXca0GPn7!4eycD z5}umRp(n3y8mdH+j9*2jyHF1gn8}Y2>>r2t*cHQr3{uz)$Hct^o4{)YM5~wR42n<)LPW@-FqTy zj_|8EbhkjzvbV>$7$xch5z<_dCGcA;CQZH`^-LR5j59L*$Rb!I3mi4^7F`?<-fU1x z6t;+%mIVk}BbT$TKS3tI3n<2E9Iva3v1v7`S~4FyJv=Cxv`j6KTQUBydQuMLpF`Ms z2sRStyEUES;2Ot|Gdh5nmFUa zDiDL_Iv;FS_10@KQDf^pQ}{_}EiMd2U*VFV<_=)rfjF~I)XGp=;8}=T*}NaMnniav z>aKdmuu%(}+N?f>U0L?bSR&Ik)T^q~C07ykVq$N4^xNp$C=QTutDKM^OMG;jiq>)7 z%B}Ai9Q<)h!tRQ`P@cw91=6JoNaneF=(&(44$15pohGJmE=s!V{1sz3H4zwmmF?dlNYY`-ZAvR?H z!jVlolFbuprIOH|ft51PG}!I%3j^mwZGS!bqYsBxNZZ_m^Y}1okayZ z=aTV=h;m#I_!-@xekl`Pa?&Gk51qqDFjpE~?J%8)lrt1O^s^U~R1Nbj5uDk!=4aA` zj)e{#*H`2unAJ(3^*QGFoh3(q%LRs^(jsF$yfJL5si7QxSz5M5q|*_+sGqdHgSqf; z=qpYkm0%&!!8SsZj0(^G@M&d}$RgXOaf=2(9EVHXxePA;(rODf&-U3#rD|_!GbP+X_N1GO_0P!|e{XJ^d&{rep>? zuMKEL8K^i$7>ZB}6$~PMG6Bk(W*A@=_Cy9}!lod=spHusFhprUC5tl?$CG8iS>ZLG z!wnC(TXGx5^k<`Ez!>bSpd;Mv_tdxKED}icq??Zpkw|Iazzouj5W+Yb zY=`D)hVmYzM%bkA7}~cds3Nn`t|T{cb)-tISXws9bn-v zX8bYAx2;y2=IBCXDL%DWb5%zd&LbaGxAUF_?Idws*sR%h*MzePjA5R!?>n8k*_6J6 z=BSfY09WCAkD=xz+kO+I*jYlGiNBHo>$Jz3O*n@8$H#(ulyS3c9I!NiKKjvvffRKVoAe=aCmo&u@%6S#+wc7?Iq z@4^rTU1%=w&;|*Fin2|fCX*q$PVtkt?I|&Qf*O26a1&^ZUton-sstnm>DiUE_KABZ zCSD@dJ+BwvU38#^Ph;uW>PUDNx8)S6kJ(wFVZja3Z~@WGp@2xptKRZ01E?37P51X) zCAUVDjFLEgPN|ZZSADtgJz0gT^4*7g#7$cPheng;D3kC=v}HH0B?G5vV@Z4$u*-}P zg@K%El`JBJLyc%p9XloojC3nCAuR_cG1Jm=NyV)->+;nk4{kl(y$&|<&uY3FNlXeK zuY(gV!sdjf!B8HNa1Avx{Ndj12?o2@y$9+yw2xOn9}A(6S4{Is%Sn(YJ5LT&SZ!X8 zWu@#|IQVp`GUKwVd+>e22=0iMI~KEJA_=86!T3uv(vqt$^?}-wHP<~eAeh2b2)OeZ z%+R>SzzUKFx=&3BzArRq2h*GXNyYYm+AhKT-?vNrqkQ?-mGZxq|6L*eU#Qp^nDJTu znb`cTf^*QRu1h&OD;yru!4L` zQ%f3-Y1sEIDwWTumN<=;rZG;_ys}8pa~H7ik0o|R<*Dyay^xakw}IvAh-EkGn*9XX zuJkQ-kv5+c*`QMmPhH;5+>Y~7NdHlyb>+j0dHn9}E!-2+Ep*AVu{w!f*GHstRg(2G z% z4}u9U!=C%)dh{>E6Y%6|xmX{tPmRStZN}dHhi073B6lsxurdxm3M_i{ck|$?WGQxZ z1!)c0ZGUcLYHQh+8_I;_uchF8sH0pC7e%sabWnXa2@K?w`SsJbr?=Y(yg4oy>uia; za76SEY3pppkX7f{L|Dr_Boyntx8`wIoYdtuZ=$HQc;(dtVjXgx_1e4uqpl29uj)S^ z9(uJQOm@viH82NHr5T1&3WYkWu2omn^(@LQOWbT&>&dIAc?g(DUECl@B0=*c$!z%K zm$Z*fNHP-5=$XSDfB9Ck#|Wj|!RvD${)xY935J|$VdNw{hq}o%rPmezG3BvS6(O|M zPdLcX3w)cePE^`eq#I?&v)iyLrv2c9dD+Rlm#WaK$&1`w@Pu7-I!b`Azn#|%UoLvZW>Dp$BbPgm{2!4A81%M?ai%cH~99w2~UU=KVc zV24Idx|XfYjgD~^F#P0a$5Q&^NHY?=J3;_G@dE7=QXxyiN9Iz%K$eIxs<8i=+zCgy z>uksyEB9oXD7S+VJ$Y+p(Cn9 z6uQpfBfHYo#Zt`hqhy7Ujw<2c_vptU1>?n}Hv>t3LNkSn5p`^Q2ypqD$wzw7y-;IY zhAw9Q?em=c6;u>Mv6qHif1?%^SMwGZH-El{#XFtsT~>P$D<~2SrCmr!#k!)3YM_her#OUXLy7|0 zHC(PDS4q!M&rBO0U%;@6`st(NTQt#fDnKinY$SO!3;oHmJHsS<>7==%SwdkP!hEf; zS0=doYFvU)0MM3*jRQ z?CGdn+XY_Ep(V&H%sVSlkZf`4mvJDkr}f&TVY+4LXF#=Yg!S)r>L>O5eu<6{9#C?j5&QPjUlK&=#XsvA zx&-FM*GQ?TjN1fVUg|91$&~w}Hot7JQU%Ov8kwcZB)w=6Ldw&#g;AR-He6HLsd-S2 zL?AfDdyif~gZG|@6?g_F?@C6zArfK185_H3>L(1p8YBqhj7`jSnO&B2a-C7@k&{4Y zlcSmwU0wjKQ?m$Xv9i5`^_?my_w4e`E0*^yw3T#YbzohBKTp-o=B+`qb@&SK^3zS~ zSsblf<~_k!HVGC`Z5X$y;NlO;O(qk`e;Bhqgxz8qcrH33u0?U1JLCB+-+s5cx2=U= zZo?DJ-nGRuXtzkCdvS(03ft^_wqmre?zi_FVM|c{K?Z$I*fsZ-e#(0D_5Nx59W)xy zk+X(`Ipe!aDvRxi_9W_cU$3KGbCPGCGC}aiq;m+~iGsC&hUb*6U@16NCn`BbgA(ts zeUI0CGvwsdzmYI#xC=Wl{`<{JxLMt@?4$4mU*d%)%K|iXh-oo4SHhB}VMFnbr?C9p z(iP38rSPUwsQ9Q?_msSJOVE_&omiJcXm%_fh9Z~Zfo_*)dz^^4Z+yVk76WqO@}zdd z+x7W52iE?d%pn)JS`nONBQc?@3XraKm>)EiIt45>!A)F?66rE@NsZL)DkeqTDUJg>fTlQ5@gvkbP=M>3fIg}Qf&l5Jg=Ma#DB z8fDuyMj4}Q+qP}nHb&XDZQG+XV1(pBEE>QnoS&R z+}H>JEu*T&k#8UDy9HXo9xjRz!3{g?ChT3g_G?QUF<-+oJA_?S#^I{5<*wGJDM5tZ zB!7&%mRZd*c|D4jJW<+^@64ZfAYGuAgv}SF2Qe)x_c$rhELfVrKGzJXG!{29pY9vJ;8YbV2KPpyn7o2V#aJ zcpoBI&+55fz62jxA&D~EdgkFyk~tt9+hv*C^vC!-t=3@o3`x^#BR71uXYukAdD;0w z?b-|y&b8Ko85voJRmc*`vNpj3Zvv#j6AIS2vL$hzaL*SQ(&bgAMu&%aPvm?l1?L zcHl@|4A@EH;-Za+#&tAMl+#vM>r-ty1UuG-fUgIT=3>;7E2yZQ3XG42h~yrv<*H_uv9F6;tz*Co5T20$myf_p}5F-^@t_ekWb`zd05To z1yJHF{K$?ufD}R#dqKgmngsbUP3IM%l!BH<^>Cx!)~em_3zG_q@k`MHCt+6|X-x(e zIXT~WjI(QZoxMwM?8r^hk-SfC!5tBW#Pt+XB_>#+>_G4NsdP3#=+vaEDW4udgaudh*>R~ zJ71-UU6U%yUW9j6NaF1&g%gQU8N0=C6dr!ey#Iu21C*W)LMcna9VYcV6D^qS0mL$W zRlRR`S?q9I9x~oaANic0x|K)ykyfxtCxR9vZ**jF|1@-9P2hcChqC0PmC7v@kkRDk z;DDU5vayjybw9T8zUUcav}J2l@&(j*Z+ zFc7rLa+G5{Z$@0H_{K+09C1!WSwR4`AL?B-G5@PAcqkudEH#6=j%y&MHS*Rhk-wEY zOuco&>Otq|?9yesn{oL&zXOm@-{J8z;O&Lh5&vH2>vQaVedB%6%%wF(w=ssfLc;vQ z;C=nn3#4;icARtKj@hLzqu^KuiPY&-DT8wn%xf_k^fZu*1__4#1cqK>jIy#mRammX zPh8o=Uy*3m4BY$;x$QSU$uwC!b9uj}FsGHz=9vWEqB2Mh^l*2UocIp+92338vxrhH z?Mkz!i(x=nK4T?v1FKzppb;K@r~Xq4g!@+UQuGNMY7#5n!`E<27XU#M|4ETFmi_L{Rbz@bqhZ3c_AneCR#yqBMe zrShQ1y@hwO73`H~9ocFG7z95~38u1;>LF;AVrC=~ZKWZ$Ophr=(vTho8sBv-uHoS; z4n3P~q~Dyp+O^UK^;$MOSB`c9b8Nqz8$u-BUH>} z^4WnLx-R5m^vrWpT#V16PzIn#G2Q`$h3aZ)NS1zk7HTSL=zs}^9RxCIMi0P+xKsT>Mb*m_44(5q5_*0-7HZmVJ06xA;2f9?ps9y5g?5UXErTY z^M`xPeUq;k41bHmv1NRXy^h^;N(ZivsUbn-?(&E-tA3IzMzE6**mCx0N`aSK;$4k< zqk(I0MH?N?pM9?0a(IBBD`gG@n%hqazWj2SbNq#TYS_Ri#!T1P;=@I%cJIxFx$)_z zMGa!3BEHviqtb(c+tJ(b)+^8b2JhbjV!{k)las!kzG?sU_;RE2V+3^^<#fT;&)`N> z(iLbcSQ28Y$5mD_My~@X4}vpvmX9^!P_N3J9ZT|cwYJX_^jOL~aDe!tb0F1nmnar` zrGDXgupZ-JkD8imAAPJX`Wn~p4FsyM8n~hrPAVeax-~ZIE!4{8%0L95GVE=ne2-U< z3lGjcbL9r#A5U*|205|5+}jf(WkMBG{a%_1e93=qMQ8@Od_7>K$76=Vx;4HK6fBNf#N2lSz$J{2OCo&U6G~)@ z?b5TwGdI%@mz+TT=k}MTc`jU{Q6lkCD>dvAgeaTT9&8l00tg@^%B_DG(h@$YBrDz8 zHk-FK$i@b(cE!t1zFz6?-Lu%a6I~9&T?pRCjF7;(SCgSn%dam7Me z#f!C%>a;2u2bblEKUL~maezHABPhlhHI9f4TxRM{?Z%Ibj-d_{AY!sLKU}pId5l0+ zTR+qb9N79-J-t^Zk933_9J&|Ybl+wsQe0XEt82Nh!dohgqayY*L7RusGnJtiEcD6b zHDRV}Hu2xfIB zRdq`!N^mNn(k(U~eb?#Ckxa}#(R0EG2a*(?U$G=(JmYVCeYp7Wfg2B5DjG_F24?Ge z1P4StJCP+0ZOeURvEMe9gRM6Y1siBnuYcGxZSMo1OR*0|%RXDTXl11R&hRqp@G|8V zSbV}Ru*%-$o<3@i-Ecif=+>gS~Dz_Nq85kLuQ|?!V}3= zp>F4|gIJKfV&VOMSWBF#ZR0X&(c7bS&%RD0j)+b~_z;_)Ygs*fuE_`7vsWl9#D5m5 zWg8UxY_zCGwoYRM|8{xhLnHTebvlpjC!{%O6dGQlWxO+CGB5(^t)!QI#MT}1n^4M? z{bDi?^p#g=Yl<_x9B1TwV<<^<+mign|E+Nnig1;=;_#TXFU#yt1Dz66XI7Ol_JX8N z0y)<}CZ;~D=f$0%8JR*DSdxuyuk!tyr;}RGU~~KNMe~&WdJQxImKwZs`wCudj!7wf zH1UFph1yc;X+t!(tXxCZ5!*H%E6UYxIT=Vv)k<$o>(~{Z&VV?nVU{%q(qDLu0og;{ zs6>>)@LwR`=D2Zwl&0vVw%-^8htO59wlDc(JCwh=YEe??+#g{nfHAY^7Q>-%sWrsv zjdBIWRr~6ah?8_RZ)!=i1r6nrsT1~hhgKM&ljN;1#fx+mRFY5wf53HODhNVy!d25& z2||ed1k(W911uLqTq~y-iKmaV)#B$ZcIJkWk>j!C-qW5M91hb)d}A;z$V=sWnx{gpVph5ytrXN9`6(ymX-XX4otwCEqPSzEH!qb$9iMsa6>6zc4)SqKnn@S37 zQiV1b(-7sdttqp2&Y7(CQ|U99t+u(Yi)6pX%}Qpa0~d{1NLg1>Gv0!q;mqkbNV6EA ziCYOM$e@Uex}uJyXJI}G7of_;sn}zo zP~axs61rbA5iEZTnyuG*A|9uQf?M-krM0GoKef&pz23PmMa7&}pPvgic>o1$8LY0s z!hMT%n2J)+Iz#%Yw#_B8p8s+4=FKJqB>2d`F1Tv>M~T>7^XeMC9rKq$3VOs|;ndxs z%7j}0e+aH+!X|07#JHxUp-4og^lSLq(YAgJZ2^91!<5a+L`PMuNpanJ(Or-JQ8EA#u zX%`)om2{QNpJlGKyWUNtPO)>l+q#@`VRB>lY9Yg4Rp)WE_w9)C1=-2_YMTjA8ecGwkRJaYO~qn*NN- zg*dsIM7vKUf#VF!tn6nP29h17En*yT)q%n^z(wVL<=qp%hzpvTm3EOGvA19?enTK@ zj1VN(?n&wO3wRTLBnMWLaTD04N8+o686<{yez6Gr38+DKeSzFqzdYPXFOVs{k?q^0kB} zb!M8M3UtCA_nbYJ5^nwsb+)M|=JmO_yxc7O`c#5V-6}c_53i4A+L`wvRy2QXDC34z zpdQVuwxO|PETf4~M9X^D^uo)${WfhgH7V0+L*>S1%nb8 z9{bM&0K^wx<9AyCp5Y88cmBFtx0hjDw@fLPPRJQFDaHN1^PeIQ+F&O((*|#Wee`ZY z7Wk8nY1SqE33IM5pvTZK%`LA#jY=um$+pJ5NvXjyn=Ph%32??Oh;md4e%woTj31_+PGoA1gA3o<-8oB(Y)`V^IMI+Bx!HSPpas+&^-mKFsXsx|~76 z`n99bfCh1BW-#~(f940t1FCrkO}jN}hPE9?N3j7#2*Jr%}WRAU)21!^ZoY&`Mqwxda^$2@s`uUgw3D`u?5_- zwwFOJUE4c)M7gC|pMe;_>yYW48?r6_MkvP@`l?^WPoL9fJtcQ;*>d%xc_%|!;ahA! z&=`)+@x-kQsN(-_lP;Y^Q3lhaVC2BFj?_}YpD07w%cTyi?qRlzB~-EYqd}BB$EO5= z|6^3UN&+v(GX_xc!&4D^()P6`!&duhmL%XXHwO~_10bRD>1GWx)EaU$li=gw8m$bo?6A6?7;MVtL&v-;m#r2hN(ew+H6om$^m;AvFrM~QC!)m`ssuHfMC2jTtRlQIh9>mo)Q#T3YoPwx6aq} zaQXN=?P_aPi<&>K(Ez_E*x23Oy{+4OVn_8p>zg<8ULQ1GO&j^#rny!An>WM%n>S0= zxIc^<-Q@TDC*G{e&FlZ=&C>to%`CgRzIii~f9B2jauT3KGpiG*$B&Bgvr2*_%o9+; z!k`;$Cg6)Nn-G`EKH$ej_S!Y?+ zcTZgtV`Mu2TGC4{`Hj3akvX%vi#eh89`~Km4(-qOaBU1AEHI+ z_-tOK%XsUzt7CX$sRT3_+js>SI&{)J0M1?+ICoiJ@N5G973*4_;>-Oy@kthHNJv5} zmaN-LUaM>9qLa=DCO7Dt>c00!MYhr`$n|Y2KF;lHX+X~!Pg>vlsTVXb@Z4ZUp^~UV z$ezDa&G-kYQ;8cT5f~iZw$oY)eg40M>KB7tGz%c#E7aXR>0Q4pFau#5tHuQ{*QXyHq9wo~)5^!??-I%#trAROu&ec%~*V#gCk`Rw7Y zpEQeE0U3me6F~q(&-(&BoN26QG}Z`l4>aZblc0zgxZYFh2SA!XPH!~o+0;gMn$^b; z!+2k$>+c}`otz6z8=AX*Zg^x=P;c_a48nL0V`d+E-y;ot>N>b8fcSozrzDluQ~lP6+|M|(gDCl|2qOT&q1 z*y#=a3{Jjjw{V{Vs&*<5NL~m$xRQ%fzO2iq^FRm_n9N}hl^iVZ%7uXV!^1cW0(#3o zc3_taK;c(-av!K1HnGPH@mnPl``iSD!0t~F+`MbHc5vmsB9Uq>A7 zpF3JHevzK~ljbk_DpPk6ZEyy4o&_kY8$B!_oq<|0+VW^bEh;3abANDK4B>T?gKcWB zPs%U2B){3Shrr_nO38)W`ZgbGrxJF2}d(|C7H8Ou>+BY zgV#)I=k@s>He4?tiCLK)k-7EMQ_1oq|6_*e9^2^9G+U1x%*#1n1*<@P~`DPmz z^W|NFy33LGwj(>=y+MN}PWuo+h1O;I)WzB)8CjJZDt9w{zIruS!nyqkTrVo=R02;z z>g82#I027m>sq#KJ70$&)9#UpD(vK`sXePiys%ypiZL~klY4eUKl?P8B>cO=u8Xs6K|wSs#x52k#g}ebHbpX)Sfs2wKpeY|u7?5^ z(Yihg6nT>@Iuv#bGwft~q5GQh@@)KjnMLeVut0eS&|cDWwaE&qf_I>ts#0xgKM%!n zk)(+WCPAU%1k|7|U0WGwfrvNYh4NxM%By!I2!$;9Q#=I%D&u9%M=?k*VcqL!Pgeoo^DP2Z(jXJ*0IJ9oJT0?Dv1vux$Enm$DX$RA7 zEO`d4)nvg%FcT?tZQ&m_o;9EU!F+8!SyKGg$4#K+26uCeEW9y3nr7YESpv}ZOTM!I z?g1T_3@aSJdI^{Rwx8;L-@3)@CI-PFmYb)3WI*DvZB#67Nt34%-lgJW4=`;o!`a9o zV%?yfgd(^4@h%$8Dhe7o3)DP5P@gU+#pJX&6=d+J#n_FTK>Jpm0N=cQ-S{hXg+A=i zc8Q(3Oeo6fsLF1t@5j44O@7o}{`*WT_N|8t{pRLXt2*H!qs%&PRn``bZVNp~_`_zs z8T#Af6?CC+*X9Z`N)ykuYk55u_&pqrjE7)FNv3$#;fXm~({Hfz*=Vt6`mm+r*K{N? zk}>l9cHPVZ!LtgFBJ!~t0CZQ9U(j4tSNEQBn^dQR6xs^=iK2*MibMee6nUMdRow6V zBu>cyt366qV6{(Fvlrqn^>Pkr|59>-*x7jwW z9Xz$a2r2A3Q7`B!oY$l1(T)f0M#@Ufo0UPXZ>nq*ShdiMMGvGXK{R8DM_S#Uou2vI`th+ z#=?uJ%V3;jB$q12g}0F2I26##El6o>YRxPa>7FDsc4ozT-x{mx%^DUN9HcXG-z8WYDV z@$t|YOwI!oZ<)r*sYUT}<>qEMk@m=fghw=>PTtqM0`3R)yjhr>U9FaEU6$ zE_38epY~g`z>_DIDK-3V_WgWH1V^BRBS^84f(+Ga zdKC8Q$@&@?XU%-jdITnffBiMa@&_Uz8p8hcW)*a75};)F7yyMq&4q}S&S z*GDGdUZ>Q1Q#nVUw_nQHAry`YlvLlo-3*A_PKG<9HNOy|?oR-Th#C+Gp$~?62jv}V ztRCA>a^}XVXRiYUYBtMNP-E=Tiq%k7y(z?)IFT2A=)pTdQ#QmN0T3>`Ia@ZDd?*E0 zi)nQgAe#=z_he9nZ{lmU4p9dO#9+uP2L)Pykc{j+|DvPYT|77t*M`%bJQwDKtSd|Mgm z@T|fsYf(6W%GpNtbV}hy8<$h;tDZ;zT8KBNWarM%TXu}ZwiNHyRyh9-x$~!^+C}qu zTJ_?d%cJSDcFXbxLBEBQ_EK5Cp_8xG!piWvwc0L)lmt^7cx?j1hYp)+cdulytq2{` zJwf>M&z?#M+Y4qq`n$beYuGKFvMe?4`G*4;TN!s}YN!b}ae_x6MW%ro>Ao1xllanQ zULH7;qiPTpqC0lqG>nR|)5d%e)@Eu``v)4EIUn9Fcl+s$`5|7zMd2rRcKu}e(yyr< zG1_Mqgw0SITQ-M*rZg|?{wM!G=vM1HxS}m9K8zuQ>E84+ANn^vCIT@QHycA*@2hNl z(+S~Mst=ICNoU?6A>1J>O0^CxIhVtO#+{6tdVUqnVmb$|-C|+$C@e0L+MH@viFsKP zKRe=Ov`Zag=V~blBl{_fg1ppF!v*&Ut|Z;{nUBm+CZD1DjhS3+kHk}ct<(?8oJ!He z1VK;Km)D|vlR*J&C1if}vHTMik|%$PVhLG&W*&suL6Fvrb<9q)^8!l7Jzzkf)D5oJ`?q)+3uqVn00Iy7$;YSD zdpJ(dwTpBx*AVe+hXh{YW9v|chq=x3SVJqk;kKbX6B39{So zJ_+=dx;KR0|gMftu%cDjyzF<_T04Iap7uH9uktL_+|%~zQf9vscd%*}SzIVG}^ z#j6&^0TxF++QeVC%M-4-?&WPBvld6USoc;$I7yvG**;x=P$s01-b?Ln9BkV=V}7>l zRm({#V|wFzM;YKTJt3LacR^aZl_`ByD(j77*0g1;Ft%%O`_f2-HE^!PpBmUGxI<`! zfn!*U`?jbpz@Or(2qT1`Vg?q?@LH~Nxc5&`&tBHj5Nx<{T%be?deG7dvZJHtHR=GF zI6qI~1d+hOg>SHZtK+(l7&8eWk=_qeW=UdH;2*NCC+Mk$Nl}4pp9?16}$4)3K#r9aBzz}AF!MF)$zuhq&##w zs7tOt!PmfJ-~R;@^v~w-f3ZLH-drg8n}KAISu<{@Vr(RyKzJ zjR|V{wHm$7iR87cx?lhLJ-lMjsxdqk%lX^g6&YIp(XV|$OuTb zC__(~8oTWr)+=3`+gD4B%?WE>#?NO2M~AOo@2#NkBF1yR?U`<~C;0QtI^5oYXkj!g zmWxzxE^9IRQ0I8mJf*Puom1Tomi*R{N(~+Ru!=~idGUhnX8vWWXjt)do%Aa5abo10pTUOvCS*Kw)AR{1W{I38 z1i$^|dDevkdCVdrw+IYN@` z2~eUzSTTF1wv`{aU5s04F~wYak*~tar0MaAgOHAdQLea5d)IbD=SXIU7A2ol5xF$3 z?Zx;{VM~yXhdWwbnnl)Oxn+Uv7=Z2qKMzdu_al_F}d9N!Ks$1|)-kQ60y0ve> z8U!f@F@-+Jkk@=~{j_5!66R4NsadIl5(jS`IJsd>gVgJ& ztSiaHWfiKgZlb^0=9;$i{H7_@=}Q2hdlzAfbPa$bHKQ}$J~fX&`82 zzDd9BP&mpQ(Uqm{tbcPrCufu|I6D9(>e~F)7d4Y9+eTO~CKisdcFjG}CqM~y6ht5U z&eEwoRP-OhZ)2K3L@BiY;xJxebZUJ0bb4S z-_6Mk&9I6^qPw0&WKY^ijekd9x7kF$uvd8=Is94`6ptW6;l1xHY*cJ8ordN}g!78}$P_O&NStx~&E#t+yzYq*Qgv_uCb zZ|?yJ&_nnW_;CWx&SzZ4i`j-t!Voq1;sYQo zm9mT!4yHp@?$4a%@W>y3G;=~;jKPykuR=G*bhLb@AfQR4mHzOT7Yh0#dYst}kaZHvnU#Lp%MpW7RuMTe9pn1ue8d=j^b`ML)) z+M&ALQm*}#GB&8M!7_=@Hj8hwHFs~o<5PG%Y5lwQG^qPB`O;`t(iU@ZyVf7O&=j(n ze}6sQQPiJ}i`r7v!VxN^weNSyBru_tEo-%kQN_tvJ^?qWox?`#lZpD{W1SgrisE2o3CHM@5DcuT~L5r!J8NX1{%omQa;I z-YUNgVo`dlVClD%yK-mG9ixi=Xg%D5s}K>`zD8B+#v~6h>FZz#uERANuwCYQQ*J+@ z9|d>b2Y^d5l8^9d+GifUvO8#Tk1s;SIr|+)MpXs?yP&uOYP ztJY@FnF6D@3h3N%Y{|EcSg80E#pNwBr(gR! zZrN8K8z{!lYKOv_JpwDpfWM3`=H``X^fhEP_lxxnXbO)h*W1gXB7ou0yrZ+TUuum# zKO^c*Gm4jrY`@iJsOhS~4H+YC>o<7m<<-YkSU6W(RbfbTl5xYvBQ0Jen?MxV_6zaR zlSr~~NV<61{G}g@`}=^0Uv$zIba0*fEFFCG1t`>Y!K)YLre~S%*0j0augQHrfz*@9 z2nZA9cQimfymQ<%=HF4=uXsaA0d#CrMylVTHRhDWzcm^Kc$^yt@4cLU)5e5w)lseV z5bLg;DXjn*!&Juq^`tR4$UPK<8``aym$!!ahqOkoC$k5ftubpaz?#S#)HWLBxbocr z7`PDFK_9GHUidCz+wul`J008deY*~p@CORT z+AO;wPL+!8L!$EBV2{0Yj~#jMIXBu2)Ko%7fouAMN5k7zS?NYQ2o0is^%K-ee>{`M zQ30f&Zy_wLG#K2BSezKI1m_5}QW>I6?w)hQ0#|4%XLqn?G7BG(Nwk7rjhMf;M|3d9${l9o5{>6;{f0`uzo_+sqlLYHu$Nw{D{J(_n z|MkxQC$*P}{@dRD&uZ^?R#x;n`(HEu%`9vos=NygJ-h^2k1?VyS(qQUB^q>7<-l59 z5uSwX&#w)QQkVf)${h~hJ1tU_hr=QQHKw?sKpfa z2TeMo!R$`02634Iu>l^o@%mH|y`9QG7mx0fm?r1fmV?$SuiY0Pzs%WbXp_?O6YWA_ z=EbGPvgt-KevoXw>S54okaEN8ADK+VcnujWC0|fggqXIf6MPBL3uX^$$8%gzv?M}Qy^hvA1@*QoJ9CVnt;s?32dO?4p$B~{|?uJ>N$*KhF}c&K0k7JR``eQ;bVwb z&lZa>w3&7v5}$DEh)!@B%HW3YH-1c7+wrW_DbqU@|{!{n&C z@aSh%lB=ptO?(&XT{dt|+jSp#=c`^4U>y2VvcV3e;&`q-QU{BgQgPSiZ>-njuThDF8QpOHG%x1CgeY^2 zIN>Exh4bF+uqh_CIE1pE@ZkM5Lg*h&{%g4mW-LTaGLpgm z9PxUnAvm0nW-Lfe@`8PagK}Od;N_xbAdz$Pqdzbq!#>Z@k;T$;`%p|aq7?l-Sn6$4 zmaws#Qrs;`PRLUksBM3U!t%z#u7NiQ%diRU23&!Ppi?4{JiMtdwZxG1E<(nOmZkwK!!PnaG+9$`z>=y|X5QL)Fm< ztZMI6c}m?&p)q}{e!EY4RtHWxuvJM*(DIoZP7|LE zVI0YLZ9Jj{yQKa0JUK)qw_R(?3URQdyT&QwwB98o{t*`W$Y(kNPsje2FLEYA8&M_O zuyqRrkUXf&-K2>kqFI=3s}AgK_|;se3#({TfpRi5x3{0UAv(3(M49XGb zp=1`-o3uExdM$$x{`_ z`7T?5xisJ^uZ+!}k@b*m2MP&ch_~g6ENllnEeY}s36aD6C!8pFUY`-x>}rzMa9dZE zlKz7JAo6+hq+W}gdL$6wyziNFDF#5logSII!h!DJVw~y>~ zj$B|Qo!frWC8SJ{$FPa-YJCPq;p2#*X9Z=F*#$Zf%}LW~DqUQIX42VfzW0lP8D|Cn zcLo_lBb-JKggq5+dD6UHwk)<}#Gx+CQs-S;`nX|;?(8Hs>mabl#YHFU-)ijR`!@1@L}I_Vu?d6$EVCxk+T4{dNpKE`zN zC6n|tCTtbG;mVymMyg?;mzupa)^nHE{%#ng;cT*2<>5ZyGrV3(IlI8^=b91_6rc=0 zZ_9*9`80dvO=j=!`I`Ox+G#cm;^@)CwH9q5(L)at`^3=RgsMFX1Z1^25zm$nD8{pf z$}u`m;NS*O8`z|RB;T5oAka_P+nI_-Iy=u6b@mBb$}2UA!t6wudmg%hjx{EbD}%fr z^qo+s2DEH?GE>ty!n&adXEpf*YhOd_v1;&Vy_w^ErM~5bwg!6kF5eqaAHEbkaiqqS z1(+L?K~|Ep^jw550evqHf+b5Ur=YB8se$7G9vtCXM&qN@eDz^vQK1_~%WXs~h0;tV zt);!(Qm4-9(ZB?!I!glZ4}LY~nT*D`&mg|n~*2Jc^=#92=rGm1zac&z1R)P znRQ#-#5NCkf_5!{mi&^N2Fn$~GO31f>Vbzk5nkQ6TBIe%6U?r9>VTv16>hsLN$|5P zG$=*|!)T--=^14GN+|F09!c&9xTQCeh1~r7qnvoEN=h$@B2_sSZo%TjGAjjUJTDm? za~}qxl9yzK!I_64sLZVQ#F?sIJcEBRG&Xbj2)L~~kY0RRO+Qxg6@n;F>Hz;3_8|Y8 zINCWWiho>Soq(%l`31he=;sNl`;#fpVl%n~v!D>K7tM$~+ai_Qz1fe9H8i@P8+)i^ zv~s3vusesvTpj%f9+rzI)18lyq7t9D%M>q=TPof_bq8b~RX#mtJRP5o#Vg5pk!Fgw zD?Y|&XAY|@?fs!^-K{ii-@P>`&g54H+#KcoXY8>E6T{k&i5Ztk2f!VQ5B(I0QmryY z9TcAcK`m5ld}EWKRSVMWTYk_21^Zh;oy|cS(UZE+6JvWGuoEemmgO?XOsLp%W4bD# zfT-nt1f2`zq)Y>%;|hxjkGAA0A&%4LiUM(R5SOCaSkb+b*aQ~xQU%BM5XlNQfiVv; z5h;{fV*Xo1%Fzq(?SZWj+hD>h>-o;3NJU;59U=PfMV&JiC%>x| z_*U`_Sh8fS>g97;gO?-?f?cDWCowN;zvI17;xOGAVS}y{a>RX^PE?Q*yXpudEX?L* zym56brb3wrxMs5NIyJJ5S*2J7gG|Q8@^u7~OaJ)se5I@&2H<67+fKXfug(mN(c)#* zp3i>)M3lpe{C91H_5b&lEbIRnH_ZBvMcRK;8~JC8_J5SQob{h&r2i2&G1LF=Te3}m z;im75;bT?iI}%{x^hvIJV=k~I=<7AR#@l{(y%`iEJE1T}2_r`Qwy%bgYZ(PBI}$E9 z`gxrC@;2I%@``ipmn6^c7$K)b6x`eA?&==m=|`bDwC;htV|NM)=Yzv=;XRS}(9*vm zh7-tPG8dz{b*jko44Vj{?;eiWW>OnTU&Nn8v8~Z=zH%dDjq6ehqmLD0KGNgIfBh0P&;~I=A$fR#yAAk( z@{qkTi-4-|TxG(kA9yn>lwsu5LjpnV|=i?^R9e(|5`^=Rq{*)oU zKq^C7UCgOX%ymDe+CPvJ#Lua<42f^#BxgmSbpF?V>;S}{R&iVYVfNhX;XJ84wG*Zr zQ6l;6=N*c)5wT&`KQ0LrH;imhrxIzEwYo&7GY%gk;|lNsCEfuIWhUq>`W_g6-d7@u z7^`vT}r3b=J=kCa3pQ9gYaSjH(*QPZQw zd*6}gZkcF_4v2)?dtV+Jnf|G^!=`D@wn?YqZ_AN$dRbR92T)oe(d1Jk84@UVPi^hoiQ z#_=9-fwKs|m5NsZ^YpU9eE_V0ljqlx_u;R&*qRE` zggsSoCsjfH9@B&=M;t_Ye5Ee_DFv68S0-{YvUQD6< zf>!u|uft;WIRtu{^lT}Ch1NA8VYYH|LBKh#;*m%WG8O%USxHYIg0?Q$WZK8y%2$t@ zRECQpIaS1x8ET<)jmn}CQ{IjmLDm&B`VtDH9$(;%e73o6d4V(jG zvL}y_NyfZ_mWh2=0Z`U~OpU1sfh=wRbeVJ^@7m=b6Hu$k12rK?+zLn*xDCOve5HQ1?zjl6LL3XxX-H8(p?-n_aeTBg;0s%r4uuZL`aD zdaYRd?0@a^$3EZfx_mEY%*e>dH^(!cfkQ2G^C{=bP|vp^1WPP1JC`VJy~1K%H?xhz zn#=d!WZ_OdHO~fD^A9W}@-Sw<8qM(HbW7-a@Fx&#s`#Qb$}e9>R;qf8mY&SIDW<~m zcgY!dYIPgdQ%#*WF(-eGmRfgwmG-+y1sCl6h%Q`nAJJRu^KDZ-oMOa3YqfR$_}zSq z6M2MeFKlmWes0N!86nE_XWbT!M%%+GbnA(fV7~&$9ynYF%z<000}F z1(cdih$Si*2_Ka-8}4@I$UyD8+sfL`XG^6MM16K`A8XAZg)om)kqY zWWRfZi7w+pv=Y~-=#nL3Bo^v8t;IF~H*A2qv2M^Ad|pKwRJ95CN77xJ_BP-syn%{# zagr05=Le)E-2hckD1PE{=`k+(s6%SiBDmQ+$0h)+3V%pjkZtvAEA$U;On_`>0ZJ zg5$)^9nRtj_maEUwVE?;V%JYH;)!~)X=CwLn|bkjKDT9px#axUW})cIhG$B)*p_`F zJ|l-U9}&KQkC(=wy^g}TlMZTaESXWJD10>}BAqQfS|h=^);RR6EEDiFIYAa7`{Exd z{c0Z7RV{RHZ-Fa#R4lP2@@IGB#nv_%=?JBdh$SORp)~`p@^1Ls@Jc%}b4z40(Q6;? z9a5|N(*41x*(B~%I?K7Iig<}W@K8s#Fu`Zl`bf?9=t9=iwu|#_7;H?t?l z&YYOB*o+)Vi5X{a5&I(9pD!svip{9@W4KB+?Ks=Ibh?NZf7l&BUQ@wi z84!I4Nclktg|n5jG$|@Sc7n=N!Hqd}+d-Hb-9fX~M$Mr%G zy35S9D%_-9DgwedTa2r_Vk*J#zzvo-jK$41{yR^@*hNhzslca;i3JOcV@14HM2V?A zWe~O?+ntCmrl?(SmWPCj4>4kV{OQIR~L%YwAt0C z#uzcw^fo0%!^g5?K=ZIqIet=a{U( zDOCK0#b}2#*GwYD!kR>u2PNbC>wEVkmVqr6J`u&|xE_KBH``XT+PlU@+?EjLi1IMY zWw}6DU=FK=MmuN=2`AHsfdW56GxE%M!MhWXV=4L#ZH;UhpG;A%lR6k1B1CtVMHux^ zHi0UgK0xV#(d>J}FcC7yJHLR7d*|A;c2&Oiv z0!q7ILG>IWH5uwrrfdjHu-T|d42g!?+A`#3ZD2p6>a8@@^y`TQ3Kbm07FtF`YHtR9 zoVG0D3k&ujpfQI)aQ>EB!WUY{rWiu*3T_d+<$@kQ7l`Jb_RI>8+DMoWekj8!>t!Hu7lXhp%1n4r*EYE*cvh4 z5@c8TfUWN!5HhAONJNKtXksFjmQDsWhW2)n9W77CP5e0XG=~B^t6%Uq3GB)%Ih52L z<*~B1g3lLmaE+Ie(y#m3^Z`O4YsKg~ND76|qA-l>FdMoCTbR|NP~E2Ageju%#FdPj z-6SFdOjhhJkdWWJJk5A{IG1-$#Xcy6y|$>W(i6WKgYD7^gPpm&WH*^Q?zqz22%s3# zZ|E^J`J0NbTnlr0aq?o7CBhT`PV_>li)ay`jOnWh$1$NK*PP1AlO5z$YFj{fYE_07 zT!@h}Slt?zjj=>XE%g}8tqRb?|4eD1n^S1ArGGX~TLv{Tpj6LPTGyydyr4F^h%6`q zcW5fpyphsQ1+zAsoJV%!+=tfg|H7cYGZc(`Pk$P`$8F}`qqJ`H+IA6M@iHtw4PXCW zL_KzNa$2x4CE5E^@_6wLoXva5@NXvA|DW{bf3x}fKjWAGbF%yAo4 zPWAMZMX8CowQ8rbZ*OG)7h5Mji7yY3MDzK#^>heqjwpmr(j(dp`yI$ob7 zzF(=I;*VB(d>y{8uD=$%-7O_p8j7fN=5gF&dU9Gx&tl!?nyj?YQ#7{a;yA4Ut+DR5 zdwN-qdOYf6RPOrZvb|)oy?7>R%eLY)=#7EWTFA${)H$2>QoNftr7Fxn7bi_D&J%5wNVS4!+-53}~4C_86U zp{d?N9SYT3MXkqdKVMoN7V#|8x@pU?_3Y=Ud({&DwMjEglbvvcHKYR5F@cuKZ6CF) z6&h(^s0>+-jX4R+Jb zw6&d4q3S5P;|5{k^W53pVWeycxaO=S`qMhiPm)284etCwYh#v|T;h>UYM;HF(1u+2 zSMMfdLwvVUdK61eN9njqH4LuoV$&~FVrmS*-=%bCpk%FT=VN@?=f5V4In$@AY5kA< za_gg}DrrL1C{`@5X>2X<;t(~tOYUO!+xImeg#n82%_Z|>YXT~$q!5?DK*D(ikt9_4 z+a&TIYHGHbw2jRsDCP<4%K)hJDgo=2A2QGyortq(XM@@FQzl!C`$YTgzqs=F2x4<$ zoZ0HOhdjlJDh{euFWGD5ZZoaRhOG&oI_DEVH_6u`x`ZI@1@aXENG2&{2tlc?!H>{^ z@ObO)pF^p8cha|KBVB=r1*UQJ#DL48Y!Q?P=yqv-XHK5i&07nn1A#3$%9+-CPk;gu z%^zpNCz#x0{(KVmveDuvNBi@&=~s5I{UGP=FDzz97^yUa z-W=1geJ|>*1A23alLe5LAZ9+#+)gj-hwVZ&n;Azoyq7kfk5#|p4P%D9ny+iW?eWwc zmON#axr1CYG?s#dUu zZ!>M^TrxJ7r}*QKM)8LhPnAk_fyirDr09WwcGk4{hs&tiY?!9tVshr)iddp~RMd2N zKvdVZe7e=J0jBf1oFsu2+Mj2pvMqEw)!*~|f~nl zwJzpicSt-kx@@aU+xP-0{UMCqkrR1(z-%*wPKfL%}*tzfLA^HS} zjS_PEcj7j0$NR$D0uimZ$Kadd?vcj;r2@8uZtw7f(R9liJjH)2ju?*9ejLiBmp?4- z3sPnb_R*C!3dDkza7FP}zCLGOQ1kqNzHQGF2ySXqW{E5A?Jt5|NPmtZq*>C8lFyY` zgdAnqt5Ijl*tOibxr;5DRidjziJ}}9GEPi^sxSXhPl=`Qf%;IyaqCxo%$(~1Gil6d z>A#>ml4k*2 zLRH5OnGeSjNBBZ^r`38lCWcO#*P<;9-snITOFv^vMkc=|ZwS*K#0);NI1m;6+n6Q| z|EdL46^(1|s;p_pwueL|Q@RQxp-YoM!{6b zud{p>^M7E3i#t7h&bTA6XIOv%&j{jFNa8%>6Z*g3T?;5W2heQb>!QD!?HAj#xi_?o zE?{5}UMT|OnMIw{8sctl#keWW2^Mk%Q7`lKcen^P!T}i+p8D{l=A(j1oQSL->k~iE6mr0q2r|&`Tv1DJS@at;2TwkWqgIBAx&wFf|=netr8LnH2MiIfmr*9DGNpEB`~* z;)3)lHqJ&7gD;0V{?0Sj^^OBe3XhGlx5dpVKG5fFd^|YYH(L&ReZf0s1*Z9^Y503m z`06U;H%_zzRXZB$bYfVojV6P>4CriAuPJ^YAfv>)MCITkFmfLed6yqESP z$)X^&LqdRh!T8*Js8Ot+(>^XZxpPVz^@K8AXu}?DN>o=bNdH_Xvm$JByqA#G{+x=m zZ9oQ#2aNQ(SSGC$9vA>dRiGNrTCIhw`_OHQzeFI%_FM31cEe^E7p<#{;?FL{MZtBD zm!*>!-y_PVsCmGaJD;MfE|QtOeiDBsWi^o(5Agxm>YQemw-_MIq$&B_XoYi8RDqcg zi{pnGw+?!WU_<@_HoZ`|Sq*~F2%2F?sW&4HsE3t*EVHiU!;v7OzI0ffoNTaTy4S5T zeoV>fq2~(+-Ew7N7y?QujT$+X9G+Jq9*Du!Y_A46z@#`Bl5wZ^qx@=3j*FX-aZ*^_&r?OQyoz*ZNaDc6O!d2%fv&Lh(cWMKh95Z<`lqv7^^^7#>_l{P$C8nhg zh!pJ4zeLgUz2oht*Q4WU+jWg1=79I_u5R7(yYrknvB(;7d-`ZNK4>%?2GreA%ZNP$ z%4->a$Ls**XS}yGr^LB9icBbOC3|Tr9fEH)078~kez)9b-b&watHu0kRqUidlBJ~3 z-BT{1&7lR2KbIbkn4AHrJgBTnt9Yrvz>=w_IxbLu;jc{1K@;Wuq{(ODMT|cm7ePuL z3pigNXo~Vd{*zAAYrbhJ)guhG|#c7s%Q)_ z8QN|CGzbndv|`=tH2W+q0;&?#0meuL`xNDdoSZ_23)T`S;P;9z-TzRe7e>MdB<#rgRfgt5orQxJSf1U!b3U;_34ZPUxuBL&{f`m%^CMC=3 zzCcd>QQg2bD|LK8WUtiL@)@RtCq_`()RA{QJ}uATq-y{11Z8JO=6EV09zkXvX_+j^ zQZc`6IWs_-RLKm5PJx@@gv+xI=Q<=osJC|}{bvwSqZ^7;8B4m~S7h=O6xKN&!)X`1 zRA@s2x={vpX$sT|?EHB571H`*o3`$>BRZ1$L1<~NVtdG+EC4v^tKBi;F(U`VgyqP( zG6NT2fv43MRAe(Q0}&f$RiM*GX?}RAZ-()mejC9{IPhlIuc!Sc_1(@f|E+K)-T%9H zA}t`1#J*c2 z0iDVz#f6g!gKN5y(M>0;wN!bNmUnD6%(iiT|GW%-!@6qVS?+14x~~eDL-9k|gbkhm zvx*+QxSqM7sxG^8y7YV5YH7bm z@N?~~1kS%U@A$UlT1CYyT~~=VKQ6p?IN~1rJ^b-*cz*Bow}w(bGx`3O_)R|Q4sn_P zEK2lj$lAUtq7_JM;M}?5n)L+O<6IfA+Z@-i--)$Aw`K>|zgL33b1m%2AEbCdb6#|t z{$vr5&1!3%^QYyRX@Gc06n3(a0W+a&9BeF`2mH{q9-t0AWcN5(Z<%}q;Xnp#gfxxB z75csvc*?@pIvbxo2$L6eCYVtKlSMT0p__J!GMoUq!7p&j_>!P2@yx1RM!~u&J|Cr= zXzLZUz$^Gc5A&vE&aqqK5%x`4&w7U4lqc#c5Qpo@yW2H!-lD8Xl$*`u)$9NK@|~Df zaf_qs9-qFu3^ZWzD0|~W_)vT~TC`8V>Qb)~D7q79Ru?F^Cd%cC3{fyx3zOfQ&!`5w zFB*z-9NVt?l33weV5fsfT*6pcZqeuxQv$3y-+t%JqPm^;z+&OI=WOVc)N;=^K+$z-N%n?(LqC(q3&w6DmXy9f&2C`TpYOP|?l3 zeH(XAA?;11#t#6U8sL|G^V(H>2P^?`eayh%&1+f(lVDE5zVKTjgYzy zZ9(Q=U3fAStuio~`|Im_<|uaU|I7Dr{)adBf63SXk(-zEzY5F#UpMc6@?ig%@B7c=|Lem4S$yBW zihKTViWL?%X0HFH^l#SIv)^d@tMso;9|2n}ClNb8aLn3*eKZc-u#I^(s&8Y$Gds}H zk*4oh`+CPuVlAp&mABb>79t4G=El3nL!kB#-r2+L?65_r)0X`Bb_+BhujlAPAY@4% zlmd=s@5~E?hrcsYLrF8s2xPZn(;4VklMM`71J&(gpZtRCnf3`8xP~Dd!^od4p{Dbs z*}0Yq;8x&V$7&=@!S&1xWDv5zQH99*8-KE8M#`Y_jhJktnnCV~OkOX&IRX-AaR$Mf zswq1R67x(t7(R~fmt_fN(M;k%0r!a5=Jov${?Iq?L*+48PT`mW4k-gUH*bTUhecsrXM)05>M5%iO>ZE}NTg3AXq zCa%9b8|f$dv4&r&DF9AacP=8n$vBEEp4s`QqV`BTc!P$`3HNj)gR&-fZXNos-MNR5 zZdOH8M3nbjXJG;u6lTJhsQy;7S#;=7g0UWKSnwIjPT<_M2y`t zcX#fz{XZkd<8S%HbqkcK7t@sm9gg z;{vgmITL=nl)2HR6Rx{yd}>tKO%X&2nPBWx(C>GO(r=&|Ha!C1rI?_VUHnm=10#mL zg;LAp*8#8sB>N}k9o64KWykI7y}oLk7iN4r3|Tm-^t{z>u)0(=L#~hO^hKy|vK5+T zZC~O_MPCSPn#%P;g(YqGN-LCk4izO73`7cztLBmjKB-!wr6wSm2^TEGPw}Pp6U(H$ zor_sHO7<@1#-ur8x4yy72*0Xhn+1jR8|1d2wd!=gg+LFRpRx}fY*@7ILJH@ zMlQr>^Hegw83?BQlM2`h(ZX7``=PHan263P0+H_%+7;46sVq7;LEQQx*1$J5L&F41 z^CTGWxJ`$CicMeGfPf}OKRf1~_ll5&Tc3!I^5uZdFwY<@@Yvtu7w0U5F*B!b6;{|hYoQ6d(cN?0$7zx&NlgqQ@CT{a z#}ms1%@R?85O#EXp5C==(NKFJG z#r&7~`GS{mXgycDV->~{mNi{4JRvwq6@v?%cW}}-3tdc9mmS8-E^fg5*PSWO^(Hpy zFT~PG(lB*ZvMPt*T5i7%Vv@o=btZq-OqfkSv;1r*RWnki)7>iY>0h%2Zz^|x@@>}o zbbthnbR7RJc{j_u7#h2w=6^p4JpqI{SlWNpvMVJ@ zg_+^iSuW)NS@FGMcYsnq%o}pZ1f4%Zmi_U2P57uXS-0bAYu6XXQ>DNzO|P>jC1iI>wbPY zCRiu(1IHMLL`f8-$wt90M*$*X3>dh5Cz_fzk}BBFhCY&Kfb}7|L>6uqX8rW!OWc`Cv*q$dW%nO3-wmY`E@S^87XssTmLm=- z6^`j~G<)Jdy;rI$WoVSBy7KYafM;9bWV!r}#Y@ZNkgAPRyR`DJ+vdvLO^ARL`HN@p zPR!o|1;$E$U8PcIBR{H9ASyrH#tK3uR3lCCQPfn|d4RQAc;`C9B>ym@N)m3G&+`CB zu951@gw{TRgFuT$L{07?{T1?1C}xsN=pwaafz5da821Vk{5%Of9T!?N8I8uI_XjE5 ztUHvf6ehTP61@QbK-%i2t>#jB%O+7EE!54dcio_1%UUa z3~qqXo_4Zxh`CKbI;!?@-Fb7Q;k&7S4`B-b2&@Xry_jnx!Br6N-b&5Aay_*5kTA%H zbGb?Sn?}K2nSQWQK)qO{pte!%*2S7RbNtg9I+3Nw*~i%oMs{R^SwD#-o0igSpxtXp zXBt#Fm2!X-S@*N^MVoV`>inzroWNinzoRGjW%y4d*T677IYqa`K&I}tp%_Qk@E)v< zcCReA){JPo@SjTZ1Nz@CSPsgSy|sHK}k}_*SGsOym`54M@!$El4~sP_~_H zM0XO^WXVNNU@biBun~gJ5acOgU}o_E%#%JDO!fp`>HUwZ4rUJ|K!;EL@9n*td7aGn z&%R=_Y{w~_NLOk5(?4;R2;5vV*b){x{fKjIFPmi5aLD>nm=->lNmt$R2w__rFy;5%LO=OAwlk z#m)LE>D}OEGR=cDHuKmEJ>(~uYl_|-_y#Ma@(N=2L;T>-Ab$fmKYP|FK7uV{hwBLl zr=SI0*cgoKBBZIO4V2s+aUXqMGM64ZwaKG)uPm{Gls$%r09*O$zKBN_I!g1S=;jc8<_jA{?dO2bN@?+ z{l8)Ef55+g4s-w27WzL6=KiY!;Qt15S-F{5{yWUok+R>A#OQv|Seyg42~*odWED)B z&gV<-YvU0=nY99I5*@irlne*#Pb21hv+h)-WSL3FB?qgT-7oz$i@uHf85yiyxZ_(? z#ev`ZxAv>=Moa!$N+W~$ATp_<_x7GLej?&GCV278rKF1!zVVvSH!yG>UVEbFF{xdB z%Den*=G|jzlg&l5hygVP4B;sI@sdSj3H?S=LgR}=-{O@`AI*>iJAnQv^PIR8hvP>u z?oT8>_&_Gf%6RK3Xu$f+mck%dPXxiNPKR$ z5v05iMp>>llC=7h4>F`DhTz#GCsfv&cM^#&baGN2SR@5R$OP_LQEED!O{ekd{ z)#Rg>$+8tpZUmhv?mTMaJ;$Z|dE|DqX6lR9aQ|Zb-zZ@XvksaY_jlugb(lYctXzSM zs53*{3j4sat0^mK8wsC_y}FW*%BjK=Tr+n;p+8zwlDuyCCEI}CZ{r*Vo(a+oSLmnz z_HgEBd)S!SXaU}fNtpDl28p2jaE48y-PT;+?^!YB%X7IzqANo2DKZF!5eWkYP~Zt@ zaYThYA|T@Tc4KW_lfq2BxL_MyimB|EFIp~tmoahxXOc6;DLzq8MyuqT0f&$R&rnj; zOtieI*Lbsmc&DgQyk|$SMRBiL5R{U{VXj(Oh}0vu~{IM9DP|&nwT8 zvh$Ra#0ko~Z~@GBkL}sCR%>4EwR-MT-+WFgKndPF!LSMYo~JP)X30qQgs@)wkg|`> z7K9^Ke|IuoxN6mQ^Dr<_fQ7$5h%~tA;>FQr8^s$gi>zuX1MWDn-14(Lt>}D2iFB~U z2qAdhJyJ`|T}SMmrgv>YC%fVKGc}GhUiH86JOa3$!3AjrZ-JcPCGXWf z>3qxFuLgi$<22WOpNh4x;HHwD=Vtx*a^S$ocGm zv)rc$pZXm8Kbe^GIb?s~dp;c;Gq^lxK|Q<72qvhq&SWmUcQ*QP^s?uHS_aKd-YYkr zFX(pdj@kjGPh`5o9UW<__&E?K$Zz+!8+36HJsy}#X@2Yzo62h?(agY|@W!#1(1xkb zc$zk@vEAw#uV-7xgWqSP)t?^*wC_SMriv1+_<$kv zhEOUX3*k16L>SW73%QtvGF)twZees(Rzy$LLrf=;&Wve>?lw@2oC0z&2_WiKU{9)Z zn_Z;~s}Zn(RemHK?$*r#n`@Byf|4_HOjJaodtR5#Ytl5LpPCs&!$E-l3QRq1=2Hu9 z`Ux(wMhR+COyLAw{8;fELVyv>nN5K6!?H^?9EAGm1qjkg<}t3I$X9Ryc}_nGdqBZB z*;EA9W+!i3dt0%K6uyG3-wmF|1GM-OpAO*|0RsB7O$!Cz6_7{HG8)gyKc-`_no8sp zN-gvz0B7k()1jubl?-9^sf9YQ2H5&Y<1+%ia<||QA|$?)zXL0G{JS{QjVzW z(qc!8=2d#pi}5^Hu?H7G{|3%s55^t8$~qy;uB+o`)+eTG<(Sc`J@Ej;>2c#vr0MJL zHC6U|a5Cr-$a@6(zVN~O>G7UQ{0>Gpcl_e_3xZ;mR}k9umKTOK50wTxfB&9}ghC+b z{gclH1e;7mGwvW$%ef&eShr=itZ!rxgGvMq_lns-lp`>|o7A<0mrL1F!34-+Y(Itd z-HB!pkxL2~AJx)KQl-#1rFPm03Hi11I{FTR+Wu_H#JpqCPUx5IPz)IwE&9c9i@jgC z#ig!|CI)}Z-u3P`qW1W>#Joz-aFF4@bOkjgmoUQIeWTrxDGth&SkD{6*w8MVA&{@! z;9-dQ&fGh*Si2?e;$R6#S;ag#u{BbUtKcr}s}(~t6f8`o`MZq&vJM_>-U37o$ilx1 zS{osIEq%Srpy}|%9RT)Y3ve0O)#pQx00JS*35211DYAZQ-W%BsNURRKm1_;dOg3!? zXeM$pYEGnl6j#JE0`;liJ_K9F{Hgc}7wmU~SWHPuGJNIjb1x?{@UC!$*?K_XiT(Z* zKYc^9{C;HBT|N{LW^~4VLr!2+Imcq z4z?wvZIinI-DiBvSOIW`x$s;O1cXXV!|*NV@C-hrk%^By@`^TBg()Q1(pKk5d&;;?rU%!ieRfn2>|c6Q4GMn(@$%i(YyOZENf+})LZY&#u; zR-~QMbCI$&!achf4qx}*@#oVcrH(3qb~Y0~hfj9>Zl0cEEImdH6daniP@2fYngFhm z&gj+Hr;TrinjVYjIaDP@{d7DmDS^ z0k{%ERhMwe35=FwvcgkrSnq6pGN_P3q&KFvJYH~;^AP`G0)~T~K{SW?C|yEs7Vt3t z2TmR`3NG_g9#Nw5==8~*%b{vtg&&lBxY$tN9dGj(P;ei=K9r{&ZfE(*a2Ua8rl4LK zmECup-#AEu4D!NT?Mw~f?nKIh*qbM2yxAiJ@Ga{@r^NGfZ@wT{R>{TFrR8=lq(qq+AFR)FC ztx&4AEk*O<7GUy3SU=KFH8O{@*|KP+LJ{&4N}QC5)L4tx)O>YX0AJfJQ|c7@w(Ux4 zFgXZ79mnePe!%2fhyx5p!B!d)D!~>s$90(E-zlt&ABsraAp{T(AigWG(taW)K z)=eqN$PEe`EoQ0S#@3eeK@zhIus@dS)x2P(f5hd_fq4+*^JSV~m>_Ve1t;)HL8qWA zCK-;;$yn1?6S0(6atnP18VA-#Po7}c+ex1hDy@wYyOqmL2MUO>B;*^Kn-dT~hm~d> zEK*C;zi0||Uq-hGcBwc9O^%mp84ZUi>#B|89uCrG_Vob?daD$yN6<_}-%hXDGBnhu zZl1mZh2X?t!5$23XJaPvj8h|)vWowx=N%QGv7BIS+H!_tpUUyvvGW?_U01ye_|b}` z!c-S7H4(jrp|v;gk;2!S*Un3X%@ZVry3r4=4fM(zk3qEt*9j+XM3DQSTH3ocuqi$_ z!_aomc1T4@>X4UcJNnpB+Wo6rSBSQ?>#l_PsP3Zc z!7RpUK0qOgxV{Opu9lky&@j|qcE;Yxn5@r*<=mwcBXfoPO3JC^1Kz8AA2qy}9t|~Z6-3{+^+}`uXg3T?G9Sk|{%yti?@i_^ zensEVC{gV=RAm;Wr9Vs(Gor8s+e`*)`P3_OYnLt7JYWS8g{Glhw8#tjd?L8TLfUOe z4>mW^E$0EqfU3k!m9uebm+^gq9HM2*5@nb&!1A%3^JfTU(eBX}4FSoaWI0vu$V*-0 zj!>4fRFVMRRhmbp5;Ttx6?yc-TTHij4l9!K42sv>kz?+TcvBR{2kTa zc)WD=5<{a7=OAk0ihdCZhj(>CX7=7elg3ndYZ!%QzT=AKIW`2{YX!nXWDfm*^G!ZB zGd?9>A6i~6Dz`e-LoBjbFLWiUH%t3Mu5YS~39p}Pn|uVMS(oJ3omx1>fLp|IJ$pt|e2|vzBE1q>inx!N zeDG4`H|$JKVMq>y5b}zbk`VyExP{{8VS7+Q>V3np|zf zI|4j(nTunakfg)13cN{9D#z0Of%KS)hvbE!V1r`6{VC5*G^O2liU^)Xs85AtC%Kkw zEgm(MNd)&-&@x&lBpeIp9m%aKV3(SN^7w%H8BkK>DVRuoz^^^_Vznc#wDs#qL4%C) zGB?nO6Yhy=JcRHS1?}?zueHTvH7!-x2%?f;fPmPB`zLT#-rg!Ey}Lw0*ayo8JD|bj zZ|k1jhzf72ld(HJS%--cHr%F1+giQIv9kVUmbmd{7`6@Pjg;g)eq#|aJXqgY>|O@} zdtUFA?WU*r+hu8}iTfsE0AAzL90Z}^iwW`Py}v32Gw{EmEdJHn{m&?i|FBg5WhnkP zW$|AXO#jSF&iSv7?Eg`e1=l}S;xluzaQrvQ;+NK#-6j`O*9GmlC1^dJa&fB3B{UN@ zT*9wFJP2pSMJH`k`kd4s@?U;YGD^#V$98A7;Xr9BD6dsTLkAu;-D0%m66=57}hzXuGVQpJU`JpyMy zT(f!?lz#U`fTIK_2Jfzmbk?QsEd-Eqjb(sS#uR<`E^S@3t~j9fFYS03IXs=kwr{^5 z*MB~3v46l;^~k!M_<2D3g^;L~&&3aPJotGe+k`uw!(vN=638Fx5bs;r2;*kXdM(Tn zfMECLgol8i!h?@`4t`*PM&H2&W0PUPvwOgy`aBPx>BFgD6?dauQk5#{P)XK2`7i{t zLD!v~B1FgL@?j@BhMtYb2aQ62Mo(lt75z#li}(bHz{fZXq#7PY9dZq4-;#w$KS4|B zgX3;dK4%1w-6w4snyZWDd+}csCw`J$Y_w1cOj|W?EWS4QY7|U z@isk1s1!vs;3=43>Zf+q4^#~MX;me>%3%{Eio0srbDIwO<=NI*dl-++<|z%dZghAT zwGH=LqMyr9`8zi_x^7pOVu+l zw!P{w4lhx&Yh7CbX<1{aitb)@)ik;A)jy?~@SvS@Xi+<{;>@ zYq;cwe@rujguH2%!V)>kan-F1{#~^CblcX)pZ;e^F|y1sTgr}Q!ZzoV?&7kA0k;z< zRbkswBKnB#`v^d`P zGKbxB#|2|I{iGLMw**fS`zyQHSN+ydr{?e<7Z0&ndh8@0E8EC$@}4dU z_863ZOKf=4PnIc*_8#HTJV3&zN0Mi@jXq8h#`w|xBlLtH;U{}8A^$X+x~c>KBUBL+ z?Ma*d4E18KaBFn5No~gt=uhmWhli&0nKL9PqD<10dWZT}RaX(=lDx0zuy!MIXZr2D zbP{F9uMzpc)RZ%!0tpyAyFXQ1^k(M|#QJ13<#rXrSA0O9k~)r~$|GISzTorYV9N}Y zN=7U3ylHgn%q#hGN$gSURPKNiVnqskmZ9-{-9)Cij6N2yoH}d`zIEdw@j?*<4(6wV z+F|!~qYpBvtCaKgnH#UFDc? z@KN6Alr#IxLjL}eupH-CoquiKMJpYrFJ2M(5&KFHV8tI`Mx{6oIm2A;-}zZu+S!`ER~z-0?7#pCiLqfDLh z!Hqj|{5LVp!{AUH#_B3_Y4<)>+#fQj0lSC6t5R?`PQS`1$U;(Rckkh6R(I5@^Q(cy z%Uz}Nv0b>>$WDSLIrj2eRj>7@YFDlv%V{9wZbgrrym74qVN(#T0m zX|DA5|VTWjj6nbGRjDd5r zWX_BmNzcIpM{3(9_V$h2Jwji~N=x?9hbQ(>_MF!g$ehqxn2+ke+8|d?|p1^+teYpOsP~d-;O>+I8 zqNM+X1pjzj^Pk86M~afT{;4R5m5r74zd@g7osFaoj{k_!*;T5^F@oA|S9?!bm0z+c zX^^jOCPYb#F6Bz)K;fp~&Y1K&w!8Yi?865uo-;E(5ef>kaml;pw`5CTJfyr2^?7hA zF2OIlO)R<5g#LNq^8C_HczH`J<2&jP7a{69}DUv zn($9tk>MX$*q7#4QAdGEw91f@T6#@tGM1fp%`QDN`jvhpCBGjv=qYO{AC}rlnIlA6 zjq-(PSll#TR0vm?Ab$B%Dz3-{ey|YEkc}+1J@h3Xe5h6l?x-PM`bgR6l+pBVtCf>+ z)KwTmU^h5vXk%sn!Hmi;)&Fw@_CApAn_<@V3W}HK?}gd}2;UnEZeXnTlw#a=c!UqQ z=vYWbbl4eSUdR|w8_YZl#rsmLJ#$BQl$DQ-w33RU7F17Wv)nA#JI=bdlZ-%l?%>P~ z&mvD6qK?;ODLjs{vh;-YpYmaA^o63hC;>rWH1tbH)N$Jrt-5xi+udYrlR=Ou$wvX) zd1UxxlmtJ~(n{1umB9|xipi*>>m*sy=In;=x<4gRQB@_56O1a&C_T|rt#S!7dn4g9 zp^@gHxLvS9M5MtOv`)nO+rk^pa%9`LT&n!tHo9No4eZoOk@Bv??Z~dK?YzjIm=@zr z7ZUGkY&mYvR-5$rY~C>YD)8*nv8hO_X%wP+^;wSF6G>Q6LTDmZ-@`T~=j+JCFv5xM z@b_t|?*$RGPK_m_*vtsA?k$!qMsYPr+h0XN}$gM5Y480cCknDE{SMk?bdWq&pj`VNA$vWL}Vf z>P9SrRy)q)&()5l18A9gJACjg>y8dut|_Gw79K3fU+^3!+~;RfO~414&9X~Bs>M01 zg>i#3=jE}hwv|S!>dgfF$ycSkV-foOn9@{*ajL>(gUDL(`pU;_yE&XVL{x7`Ih{f_ zO{WFK?3jH9N2iPeTCZ-d>M{t}+rh&<%=E!!QDQ;X<2i;qZ=g-kpnFj5?L=UI zCqW`faKylTD@E#aKm_NOt-$5E)q?wz`hcSipJRJ>C6*R>N!UQf(4LnH!>_RDo6}2fNMaj2?ka^b>ESlO{-XV(-c_)__DM?a;maH zGBy;hPf*yl7}v7+lIlNG&aol5dS; zluXn2wnH@@j)CJivxLdKfQmO$zT;zs%!VJ#194*+q_-_;vK&B^y@B=64!1DFOqI&g zu&Oyq>0|hKi-{e-5007_5ePH+#wU$tkIYxT0$|SJrHif}U*1mA98J$jmAHyHn1am7~evVK7R_*`HvzK*-{ zvk7-U@cuRN0{eb6z^Gi3_5V=!7C?19Oa3_S?gS0)E*E!q2<{%--4fg-xVtB~ySuvw zcS!Kyze}=j_xpBVy?y`Me{I!rYwqRDIb)ycndv^$(>)(z{yt4jBflz_`AS-}vgx_t zTROWT>x&(k?&DxV4l!pX9T}3LZ_{SSgbJlbQLe48mHO^%KKYVhWP3Jt5oH~|Y>L`X zSJn5_O!c*wFp++N9-NgBZAtN%h8fnRa#iQGh(UJ7l1V2E{`P(R!jYWdve}+9FVh@% zDl&A%{J5s(LOHBAX%vY8pTlo|Y|#1XJ^>B>gDC2ZrITRr&!+q=FjE9B7j%3 zFjjGsYh|aqs3rT#N`G_79^H*xl5t9Hip)~?m6wZC7GhwI{FAA|!r5)~8j=rZJwd~o zOQSGGm5UQu`S{W`)sWP>Z2ET>v?z5GVQF@E$R}n^4=2fDk80aW{Y3{Z4z&bsW_j_c7yLUCa;`)%1)iOwMV!9uR#?4YIF zs0dHkjG5JYP`XRz7sDtD4^==#Zc6ViX($87rmmvd9_C68dCdm4FIc#qe{S#Op<^X) z(zfoSL0CIJ`J@jOrkHUQ?sij5{`EP22JZ!PA?%P6pc~asY#@s@-k}dtDVd8}3M+fX z<@pgxM%Kq`m1DEtw{=CO)Uw69jpT>XBPe=w$o0jOc@6R4`TB&v!TV7~FaG_R_5G`^ zN65i(>{(4{95%5lK5$I^*4eoJ8wZc9^p7J8TplG#cge;u9l!@RiU4wo?G6i~2Ga-F&Nz6!(=R_! z%9;OC2w5g{ZFTdNbw+GcjA9q4i79vNw)UL)yZ;f1S;m59$Fc+J-kQ0`N)AL%0nU^y0;W1HURIb%4 zOBvTW4pUgOX7H@i?Mwt_Mhm+i7e4aJwNo(rW>>T(i&FB}azd>iHgzNRSGz_1{(r4*YwGrfHgK0D6 z?i!i~VD&5!qo+N{@%a2+-+R#Qw7~>Y=$JIGoN9@f_4{^wJ^|AD{8!-=OVZn#EL8wzFP~HJZ>v5)*#t^5B!}3B7UcR zsLHPzlh^o2(V2Iw1b~(YPI8e~;%Rt$&|1MVTxv7#7L2?Cs>-tJ8ncS3+pmRD&Ve4x zDBT9Wv5PhLd^S;$;`&CEgISwh4?)X?MJhPQv}p@Y(n&(1ZKlQ)CKo9)c4eW{0wv{% zN%X=Ev=&$}4>kE==%}0>Iu=1=pzp;53il56=P;emIGUt7$ZVcx$)B(N>JT|U{a5K0 z@Zabn{sZauKkFj?miqp6>GuDuE+XJx)D{zuiji6|f7p+@S8#uK2ePE=UqB`kJ}WDs1-Ha`%CAGWIeE-^qshl- zRhPy_Q}dbzODJZT!M)-$JWCZR&7N9*pibiiei3&>^|g#fT{8_r-Rb7~Seo`*h3%YV zW=Xlg{C#3#Rl2SPxoP2yL244NLmAQmSvanIu|rzXYCTI5Wpg+!=0WvLv)24E(8KWt zOnKi6w0S|xZ_!p!V&AHi@OFlp7t7RsK(w&B9)+l7%KcrxB0~f_buzceYrgnowr)nr ztZ0XqCl)#j0j3-9# zR1INFvlc~wS)nC|rKR#3(xjAXr&C_jshScd6-tLQ$&rU_%#};|G|gQYy~N3%Dao7K#{tW&l~pc1teD4;JU(1U#tOvDZw=K1!e=1^?d zy(Y`IwB1E$L#=cH(mAqcY_C-lAq3RR#1}8iG$YVK)wK@_iOA3I=JIB_lR@t}KWe)7 zLR~^NvOqpkb2ZM^4zS2AjoO^P^zC@^&ZX8CMD(%86Mi6!0fl6q)PmXycI_P3$3?r` zVs>ru*i)0!vRbG7VqA_-vz*2zea9a$VYj#=IN4J8XPwB?HMQ?Gj>_wSz;c3>SStF(xKB!w^&fUQVGb`rDd5#Tu z|Nj2qj~SW4%r0c{o#6u8w4*^>d;|Quix*^og3yEwUu(JgvFD0xlK%1huN`L&UB6Z1 zBWRD}2r~FtG{%msU-F-)#Ck9QDIb`XqdQWutGvvH0HQL^$MLq46-kyBx;Z=|a85*l$!eR$Wm0c}mTkz&|Y9|_(g-;0DI}Ob- z@bMs<&0IFAW~!<~U1vc^`Fu#>1H1eZb zQZTE9b7KscCSBI_fkC~g#VNbpnR}+TMDyOzdw3%??_oYBpLdRvwS5b&?>H-bvTx@Yf8L6glNB5b5?*XQ!j z*LNFj*7OeDJ3IJ55L&f;Q_{y#Y0U%k8>~Y`;lsfPBMBk^HNs0spgIpg528lT%albk zh^KP(0QIewVuiOpZ%sBK@k;r?FswnyY7F!OjE<^l1}eSFYS9PpC6dy7E772eR+o7K zLSydG7a?WU?jbbw$z#(u?n3mqFJbtUr^x$pT@Vy^5QGt5E#-h|h>4yf6b^wUFCbuy z_<-63JU$q_&{|Ct%jCHSVU`dl7(n8{DSY9CIzG)tR-wCaOFV){$_nduuR1G)OspXXZ@<{*TJk!VtP) zB3ndyWCcXl;v3v=X+vk_d+xs+0Z8~V5MQ;~W5Arc)tWtjuHJYAg$ zVMAPlyKah;=q1`mh%x{lpS8$dVB)GWRX5LYzLR($$2!X-l5 z{&?A(&9J~7GiMTc4o!0~?4G+&{@4#ek6o`k{&zVQHkr|n!(UPUz>aSs17 zA^w?ZQhsr~E^;k1@%N#}>F`gf*S?WPP80*xT?w67 z^2M(78WIPj8OA8kx1_UKh-3aPW>~VT)Mu>&2ZB|}d1x#7kAhVpXV0XrL@Wt0y=9N| zTG_PD7%?I3U^Y>8l2s8KbcW!kxSYIGOgTxxXZE~b@Y)u7%;XrcI7jE#8Vm<&^9hty zi^yXQ&}*_qpynSc_Q3{AcR`_3M+54FD^mIo_Vn!DvBu9J|rMv?H5#=E#!xp1FfeoO% z4t%BpABq9sF{linU!MwoPCbB3W#s;nD9Z|c3pTqc6qH?cczC+prIHb!f%R+oqmVnA zmGkm{2O4;oszvZCp;Hqr5+(_uA6m*oJqIj!@#y>MXjAnzg8LmSkrw zQ3A-d=sPz{TzK_2(n$-Mfg;{~kVuh3ehJd!Q78@Vz`Z9Gg_3=$=tc$_u z8(EbM?4jQ>=@#S)x(hro5xw4+v3r^I_QOPOWIsJu{rnkpOg7Tf)8;LCnDmv)JNYnO zMZA3@6Prl_B4nFm|O5^xe0X+SbAwU6(kO?vQ6!E}`I`W?Tvh_$@ z0F9@ZOXi0>9cyLswBkb=De{qoZ^pV|=VhW5hpD>S(+8OECaLsNv)`A7pDq;Da3)E| zTWKa84?t7TRuDE|wrfn&s)f}_3zpeCYe58ym0c%;*b>BSA0Y4iMgVpi z97A^qyXA&;-Nc}pv$Dg}`M9C5lzV~Po?RuT3#`7C0h@Qudet|}Wk`cPkS^afL`a;I z+`Xcr2g4kZ+`)rWw6F}i1}TZNIsnN?Q5qyc)`ShX1nCqx=jD_?R+MW(vNa(%JW<{! z@K8Y$I1vSCFx0K-Q3{H0iXFNbI~s!@=P0ar+Osoc<0bdaB`v|0zy)UFKqWr7^3RD` zq%H1>;hD!1ywXqHit0G17d^0!I2o^@VcrGzOR>W#Y_ox zMa(|MpNQR72;+O+)Z2LSf`jRtGjJaE9{SVISqW&oW_C zJAY0w7k>>RN!^&F&UNC(%G(n4v^c4*nj)u>T=|03^X21UZ#rosW*}rSwG?J_78Y+` z9z3P*l%xITo-FjkPkRMucs;h98&bq7Uxcc&s|l4r7ObY_bGKCb-poaNM2QLu$h1;p zv;0#Ey%aeKn}X;MZFz(|8O4gSOh-?4R(#eC2IJ-h0WA&F4`-jD4?j9@1x~5b~<9gX6bWlelR23N0&q+4c|Q z>HkJi?jOk0|5;J)x19N}%hUg773H}8YVG5np6z4*PbO>YwQcNxPFH~PbTtt{msykd zflq4zXqpJJ99}Nyxg!-$c=Wta-I8 zZQWY<+wgBM20zq$cq=JgT447-0)+1=L2w{MbFv)_?i>@^D3aE70(eEb7LKY{wEq#V}+!X8dsW;^7`J zA6?TE6HgU4P#b?DhZQ77ksC!;w}G-!`hKD5QO+OSa{;uMY0p;&hBx291dZ`4^2Bl< zzsI?wK)Rfg;xDN&*rG5wd5u^pit8sP*l=FKsUtgkj_1{Y&?Z6(UI9d9NT`fay#D;l z6y70k;zna$gl9TK%eMI)y56)vkG=*BO3z)J<)~2f8||^nxk)E1Q(ydaoCn25RiDF{ zy`*})G4x46@F2=88MrJ8@YK!3#UE~{kGY__Fjp)|LDW0=WQsVY##v~G?ax%ZP^UZE z1J8Y}rth`ur#u*sfL>QL3Y+N|yx~w|)v;=+CZFh}2O@7fPNHvq@K(#;d_vkQ5_e6& zGLVTKhlM2lz8MDb9tlOHSO{Pm$VqX+77^+NC?ygbIWDqYY5D#^qw?GxVEtpswRZK| zwA13YvaL|m_J|X%+o@kP{=gPq);v(&NjoTxRgkd4t=kH`c@?yDQJ6!gQ!x z?-LI{Hz-C-8_&@B&8j#5T3E3gIrpZ%3G0`I(x}|N8(LUk1n@91jy2Rq-+T@1k zod=)mKBL}+t7XRm6qjFBJd3cL8nTo>NfpM#M;Pm-SJ(l6^+{A5uTNbcbiPX%)KQ~- zj>>y7er~tre9nB&^aH~U0i93AKr_^tDI%6R3Ulm?Suh>wo*HEd2LhSy1qEiLONAJx zY&JN0rt9wUq-Y)1m9`NoI^;HzIU5@?PBj4!Ag(3uZF~1X-K)8vqH{nE&B~lZAnQO7 z^E@{2i7*VtF(6R*Q0FAetDfx> zUxIr~T@B57IaN43^)c`H!^(@15^U_kNY#J>E+xAux(vTykbDp2nvB(i^39XCV3NpO zBb3igbos?}8b?VAb;kenpz=%mBP&Vj1+Tb!7P;?-%_^%Ph2mBO$&@rwRmi}j4=ZMV zA|~It$RHZppz|K1>*963Kub~_t(ltV%Ab^vSG<&#zC0=Z7`5@cJ6~)xG{EKf2~$0| z*{_mCDw-!7!T}|hbiaXWIO(^45_&9tMvRl8z17>>GOYF*LPZ^ z?=0fo7Of>cmf12AJatZAxJ!kNd_BdC3I9xgYSehYk|dbSzFN;Zeg!l!CHk3^Xq#1> zosvfU=reJ=1l=jnnE>x4m%qJu6Z|}h+CZ5DAsXlS$gI`Y(xW$O7bzJSzF1%?I~vuq zHrQk^fWs=Fqu(TQGaYR~&#XH9*$SwxrBC*N%!(p|JS zl$8ozT)(ywnzj#Sf8&B-E>`sqj+4o(J?0S13yVPG8zL4W_(U*5XuVq9!ZSBtw3a75 zwXpi&)%;^QxrL@1YXPM1pt*ItZ~9vpGm*L})XP?R=!^HoePYmUx147%i-^6WUKK4B z{(X4n_OQ3PxLzd7UK{Tjra$Vk%j)S;!;6-hn{XT@&EaGy`DC@zL5b(=ocQ^bi8vg1 zbRAJpEAAH3@@gR$X~i}#QR;fHOsk{%Y*NpNu2Z0Z5v^55VhfSr4<%Ts&d@%BX#bR%__|hoZqPTIqJ;Y6}gQ9=%ofbD)$e{ZSdTA;)21u0^&Ge zZA?ysvW@-lsqoa%v07n|>2qUfT4?197ZcX4Z}pe$-k;cxV8Qf=47re*8-V{(&ZpT_ zT)O<#kWxqmjld}W(6HvV=(767@o?3mJwfN*oJ<`+zZDo@vTym-T2W6oGL@ZQ1g$Jm zJ*Qo%P9BiTd%?pp!z!E-LJc?N%m~JpkJ7;{qZfT`u1APOq~CD!@I{Hli;_iK&9*g| z0NE<;!VsyBaPawOs54w0Y`*rCW8blTKeZ&X>0(?&DaL~QBnztR&@k7Hg9NF3GIgJ5 zl_A8TrUW!@=ETjr7zg%*%_+He;hP1zeLtfgM7CA5Re0${v*~lr`|sM&@Jyl$GA#9i7t;kXY=*$_X#{qYJYjBq z_!Mz{je-&_!_4AP7rxt<=u)5DmeO(oWJKlQ=wli3^0akOzaLPxzTtTkn$d_Vgxf6R zeWgQAyQ+cGXD=nRC3DRq`&xlG7(|Umoi*2h#)J>(aW@l#K^pIJrG==AtujYI9*P(n ziTX3E;!i+tSRLEJPKiFNON|d1W6>QzsOt4mpJpYhzpBpPJOq_xPdJKu<9j}@=e~G5 z1fB#6z1$~u(!R2kQW1WQT;;b zS|zo{<=$WM7$IKW>|g!b%54afTzh?^c;>{tjB~eu>a6$vCZ~&sdAUDsY=z^d%A%y*vQBHMbu4?aS4Xk6SIOC_}+9L+)_P%o&d%DSIz%N{aNNDF~g$O<-;T#5; z{A}6hOLfhT(=7a~IW;sf02)nUMF`jDIvnY>S0#68kNiW7gU)1xY2n@5k1-iSib03o znvO@h;-NAS0uyvP46rawCe8NDI`2t9Q28mRT64T|oEEwq4%iBRxnN_KBB0T8dy-~8 zbXY_alnv?I`-Diwo2Ei~t&kNcvGrz&XO`-eWq>&OQC^DXu!f8wN}(eDs4NY278uV? z4LALuO?UWdjG&z{HXM@c*krp5+Ee`VwyaGxrNgOnRfes45tyA-!u$w5j*HJ=nN2|N zPK2s?JlLL1wE{OtS?f{r+$r^=aaSqq7(>#@;Syp-Ir<4*1geV;lfr;oNQqk6GsvUr za_#DVDD7Bpb?fwV`d%^=r^a@S^L7F<@$PZMAd-=pPc)b0&RGQ=M`_GQto5X`+w(75 zLwV;>b|dvp$wif1r+dkO3pT3vDb2)gp5caupOR*`mdn0Xa%y9MvC}-ZSog<;Gf`K1 z9TvTVN;G;shd|aX^Agm#i*WqbQRY=JXg6 zATYXb?tx_ezL>Bc9c;_(z}o)3tK}S`gJ`y9xKm`^DVlJei`*6+t-Im#Vi7tyw9<*m z2~>X^pQYbwurk#YKvlBp=THK5(%ia~rqZfF5Yl=-AAQx8-r&C7&xq%Yl~ z9izHjAf_R@C=_9td$OpkJ(1^<#snATYuCBs!56KE4=kNqxrC&A0G)bYALC>797>C1xcg9>shZlWfBoEewc4{N%W{6J1UW|0 z!Ga+5;>4_f{{u{ny|2S=ihdN?RmA!C8+_3sacRw-;<5A<<1yr-m_>Q{`xMf2GDQ6D zhbTR_dFb*zF!p=@7oq;HLkZGB4_P-z+JMLcO|LO8h1l!SSJ2C;LDhdCKmUK$w&r>} zZ}r!MX20die_4M1o&5i#wl&vZx9af5=b4Bm0fWaaD!LArwfE= zJkWNgR+$?0T-FWB2wXKyTOwPrYJ1;*EUtsJn3v>=4%e%dN=CL!gS1?LB1XRE5FH_V zK2|7LEUOs#J&+TUJE#Fxd`iQ~B+jQ zh0xWtmjLGQx^G`v!oC3H#ukIK8fNgZWTbJ7rNqqG`y{lA-P24^D#nztD(u5w(#^j6 zJZ>S5JEc8;ib*ib?r_WgVRV=B`Y_3PP1JJVT6?Y$b0{0r_AzR1YUgRylrOK__P_-X z+fo#uXLf(0ZhETjz~6m~AtDeQ=N>%8)D%sfiS9I&k~FTSFS~otBriMP zzO^$=)?;SCG>)G}WfM!B%%vSCyiN|RINlCmeR(Ps5lA_f^+Z#;gago-9wNH$W0N9i z#I>OwuW4ckJBpfeiQ*eh%itJL2n^?NHh&Jx#+>`$FsrCHD3;5AUCl$+`nY3Jo!k4) z(+EM0={(HAG+k})6Q%v$S%{7NkGoIsqF9H*Ngz)H<_h6qqT}_C7jnjp3|Y_d8O%uHxS~Q;<0RffZ8m z8jRJ7*&db!+%!|r%VNVDLLaxqK0(CNVsIU`t;LnDT_Zv&el)fZ1!1v?D`H1T>mv_9 zmq!9$n57(iRMz?+m(k6CFG-P>>6-q0d3SSu)wud>;dTwj6I7v9SULijWYr^w6NVBz zw-hOo(;Y}OcEdesFUPd6!>1%_^1VeY+Z9_AbxG|Hh1JHN#W{$T+JQ}?gS!GnGcLtC zj<&rYHfUg)U9M`Dt=B(mvnTjvqG`nV)DjIv$&)yk_QR|KNj{P@c>#T0^1Y}qu7$

J9C;Zf+ATr6O#_&a6@lf4g#eucUroPHXB98@IU(c^0^~g z4a>Iai+DH@DH-#pk+M8Cu^u+W#M@t;k0#83T!kN0Q8J#yIg_C7kM8~hOmLCiRfW4g zVt9BNLV4<>ODc3YrKw3G?J3 zt)4)*hN!NnwD55V236APTr`?Ge_dkbCMBr6+%Z&I7#nwlKs16J3OmBy7>3ba5v1*Q z>T}DV2*e8Z%b`8AyE2<*?rHO0^kZaDrZuiO+YZK_ArVSRQ`VE&tJCI#*U+YApbT7bC} z?q{}6?5^HY<2z{($P_K!NndCj{qFV%UGOctb)L1RiFKk$6`P8UI5dhY<^#6~{n{6b zctD`oiNdjsW5V+42uUzA7kW8e|7VZQXu^7v4gj`t=1fnP2>tu^PH~#?K$Peboh6I4whbHQVUCdjvO1=YbpjqpNyiovGDGPKNwxGCRrml zhH&Vc;lU!?vF>%BjHHny?QBhaUW#iR{sO2Hrhz6T_{g%PA>@1c7!B^8BLbSBvdL9{T zwuWKg3}DV=%m93{4!6kK4~vlPbJl^mSjUe}=hhwlL!t)9fR?Z%C&ldC{tI`FS6A-s zdxyz+f&`C+)|VxEwYtv2{u!)Ny;w`HT)2d@9;1(Js{*Gjz4iM8npQIiiM{VoH!cv$ zNlEdt#d>7+5NPmJMnw=Dm<}Y-AFOw2ln6w|Lr8O#!@GIC0eJG%wRkEt)625U%hBz+ zYe^JzILF5buBJ9c8CUQ>XAv*v5sT`Ja#(nh;%43>GX{$d2_i^nGv^Fy&<&DikXCDG z0@`?zX{v$<&`POsfAB(wgwQnE?`ATy{3KNq3CBCYcURg%88X;mX3TB1;QX#FFezIs z;i^(H6@6YONk@vg++S0Yz-1(n3r-Liq#=ZqGvx|rVniT}1Xf#OFVMM*%GbDifuGXP zx67RJJm+(Sbh4AZ_|U$8=aKmyw!$e*;VY9r2z)J5FS-j{GzZh?dk?+616Wq~)AZQu z-g8&KrIqbTqbs9;x^KhhPF-7lETjQCL1B*a^T@lg%w?ucm0kiUBN>K-n*%at)Tg}O zn+Z)Tx!^+YMHDXS@LM$A4QAE$D63&ApsifM?1SJ+R2U5pEsewF;-?~cD+S{GA_Niq z*jfTS!3z~ac^fQJd%2q+W-oo8=9?xr;J10FkPza_?2!f*9EnY`j74La5w zd^bdX5APqwG3yja|eiHXfIX`pS$QeRotCDf{+&9+zXr{)pcVwx;%>bL3EtmF_ZUulc+6E%H7UaUe;0 zCx?OH5u1?1SB9UqU`sLQ0$Uxj&fLL;gP&1XmGva!l=ZrhTXjq|IM}@>J9G~tg55GO zK=Z@~U8iVMiiekVi&raRt~YMVTjv>TZC<&~r%jHKzE4%cuckfkjq6vgX4qd~R9G{pTwBOOvMV*V250EBmMe4ngWAj?aVknn`?=YTpF*JWRk&ubn`TeW zlQSomdKl#uW(UNwEJGVadr>+sQ3TJrJO>)TgIv0Q2a__w>ad0%hV(RYeDLKg^L3=d zYzj(v!4Kwvle6a{5sBB2n-2B*Sz~Tq-K5E^>)!;v+x)b;q98-;ba9JdJb8ZK!9b{q zd7-8M`Rfow-skY0jbhExW25(({$n!<0qw7oLf zUxIt5Eb6`UNC1>E&Z-1NlFSfb&DYfM4wjUn1^Jp(q(KPP8U>06Tum$qaPNDg5D?UE zX9mF`j-A_TjTeFyixV3CKjLb9t~W__LDCjFQiP`ckON+8a5zgX4^55;9n6hhP#?$V zEp|h@b{{LAM${gWDt?Ra1L3rcC$wfl$&)4};nfm<#=W`dQnP%|*nnPz8Iyle5>J3@ z#edL|pY${H^y1wtiskJH2L==)LEEiz_!-W3=}s-y)zh044|_Lvj5dbb+IyIY*`qM5 z;+-oy0ydGevDUAUjG6qm)P>NSiS?k?P4AVudiHf_{9EWpbLdiCD~QIXeH&^}IQLW& zjfsO0a6cu(6k^gAw+wqs!B75t=SeJLfHyZb5X@>8&VsL^U#&dyanr1|^Te9qJTlTh zqN5jFPqy8JBdC_kpc?SS$`}To7AhH1ll^_>vrXi7eC|~FEoww|^)9(Ep%FOe;Hs=g z)rN63KC&B9AhcaPIXm#Q{UAPKNcVsxh@zMd$WP%Q_)QH6{0|V=w{vM|!b{#6I_0v9 zPAGBoB1i>``uR5K+~3|s5gypz^OA93qCZWjT%|Elu2$~P7wC&sz*U0p2w(~U2JQ1; z918Q~tS~Y+Z+2cmvT1Bb|Emnk^>+UEZzAQtbYht6-^{uGyRnqtvfaNf!~XT$?f)rb zDgPKLCt^lLLq}6vXJW2@S2lM6UIB<1Wh_jbh_#9T$o$N2FAJ23fo4?Repr7Sn1N&a za~_-R52Qd%?6-UDe-h}vsb!nmn!I(+Z|AZ9wU_?;vf2OS%>HNJp5sr>9KR#sIQ|s( z+mVGbG3T3v4*dC3zrPm#TMgh}FP#0~8_xNs$-mY1m5Bj=at8d4g!@f*%EW&y=Qn=; zu$;e{;UU(3!;6ENg_x6zMfc5K&l}P#%>Q2EpTq3`=4$tk`U2eF74cs+9z+bC4Xy3W z-+Iy9)alT-n30)*?Jpg{`qvDEh`Ihi$S7>*XkzLJ?CZDsF#%h}_-7~y z+1lDU6Emu~7&&{`n-Vk1TG(0X&1GpG~En#D2VPIh+W?^Dt0QL(TI}`9q z7w$j0{&x|7kBX47^Y5yu5HqSOOa1xc`qRUIN%uEh3#yOK&h}2+jEv?M&L3Tj7>w;~ z80`%m4XuH8XzA@8?VRn5?X3SJ#@Wuw)Yi_%!q|z?+0oRLk;9nHh~3nXi^GV;l!MKX z#l+Z%h1HPRh@Fke(2&cRjop~bgpG;ag!*r^%KFzs6F`Xm5W)WlqTiqpv$JzDFaaUr z0Q?<3Z~6cC_%Jj58EXFl(4UyMl>h4p{dEcyB4%d#x3_}-6Dk7wj{X}y0FJ-n^C$Oz z1)x8J=dS?$ZN~dw2k5VF3*P|xGdKN@Xo!oI0XXNdv$HdB0B2Zc;Kkpg^w%Q)ZSeks zVa5z3z_)4guPFVkH~)tyaT#(NvN9R5GP5zUFqxQfahVx0vvaUAahPx#v#~N88?hO( zvzan6{l`H2Tlett5;MM`^l$6W|A37C0P{CWVrSv{FEIUeaQ`!y{!I3Nh3RiI=l?cL ze=GM5r9U+mw*#&k|1l|laC9;Kb3@qB$@I@np|?L_T9J>2R*r^>rq0G6>6J~*U91fq zi5cIX5H)o&cC@f}wsVAI2EMRl9hylNu1!gV|Vpb-u-+_r3IPC)0 z3Jzi*k^K4PU?=8a0T8nSmw0w|;CnjW&O*%b7C6~}^?JjQgPD_<9muzEa&iJ=S%CqV zg5`|{Ie;7s2e2jV9Kip7$8rEyd*Bnm!NUGF=zx>cTML-r-o812Ybe|AbnL)%>_Fpr z?5uBP0_y|hPgsHJfBz3;OMc@4JP6DFwmt%%0RT&X%Zr_p3D~~3wz3kl0@#7WnS~f= zQy+Mblb8+IZcbp2umOP2ac~i{alQ@DfAWF*C-?qYy8n9b|A(A7SXhZUSvcWXfh^2h z_|w;ag_Q%y%SZt^Bnx99TXSnuV2v1soQ!|7yTG1hd>aRE7xb)5K!#Vu&|cEi!u+E% z94BzOWmIuCwNZOZq46j7H!(5_xtjl`cpwRKybTriKUd7mK)U)pwt(A1rYyke>^DdA z7f$F;%-@@#48e;~oY--c6D2`^C$3h0u%<46MrmiyWPo_Q}@>=o# z1PsJ{eSGch1hFMp7ov8CAO0~NNA?pkT{I?xQ0H3kb-QxdFd#!zB3bsa5C8kLSN~%F z>nMNkMo@Ep2$a3`;QV`%NB9euFwk3E3UcwIm$_lsIYI2OUD*~fhWt?P$dNs*$i1dZ z`)B;CD2!aY614`yEHPAV#z@Ak2l@pgob2v-VNgxMWp}JNC+g8#kUc4IHqtr$XbN4= z5{)F~LVTDeVumO%qxYNl9icScBF$CgNTd8s0s(vj;I3>HBvzUwy+Y>pAeD1tR;95LYn*P_Z9t_xM0 zwW>>hkyaN=!=Z3SMYY+ssFuPeS!PHc(I4i!EEu=FTIy*yYM5{M*5K0+ z-(YpCciVb)x4e2vd*)a5quMX=%a<>id4;0NS}JNq*3!$#j%<6%$5kKvELDzKOBss@ zrP}uoPjHT@9Aq7M_uWUTC#u)02dDP{TY!_Mw0%jutbG~y0y#<6nf(I3)LZYBatlA% z*6<~pPpdky&<4iPN-d*DBMvPYh})3tB5bAkmxA8cRLeMikg<)#wv?l~pITu7K}WVR zqgxZz%{F;<*U~P61n?gsuwOM_B+tX4dAQN?#J+*g!&F&*N`$fl4RTgD3kDZR{^`M2 zfp8)~lEnd6M)W~NEWM%}-ROf-95Oo3&jM7gt_avZtJ$KyX z5jcC};*KkT72an#p?CG}Z)tSkCg~(Q2m)U`L;ruR=R%N=zfzXd<*C0ACC$`7& z6H#$*;*OK2&P1pNK}2b)ku6gRe|#&@)Hj_5MMF|QvZ4M!3#0~xd~o?A9;(+o+;oW^ zD!gj-8s-zlFB>M zge=$&cZwqZ4yA&csBTfZW}?x)HO!t*LGqk0>v2^dkwfO+S(n^~esNb^%je(Kwc09Y z1l=&}X|?M86bkJTwD+}Nn#ie;seLNxyrDUDZq!cf&QI&A+b+IuZuFQuJ|jq^ORCy+ z(%$g98D#19=xB>YN5sub+l0P7bRNa>A*_dya?n%bwnz;ajQ+@}yCRahNT2?WM5_ZO z*kXb#MvaO8GHjS;4M~Boq0w2AufhFJYj<1ebZM9UPv4>#GWs!Fuve+@0 zl8+&#ad4KEMJ^gF5%NHA)88;uhqNGj#$|djrHr5BiSV0!fLWUz&SzdZ?NZ!Ve#{TG zLN{hA6w+>9y0}xD_Y4lzv~<{siT%lxXA=%^e2+OMrxAY8bhx~@2!nIk#x*oA#WgHP zQFbxax;28;{8H0(rQ?~Z&v8#B4`@$JFILMCZfHY4Os+u71~09B8rsG)ISr%N@K>nJ zBFMcV$?M1c{D=$&bf{I_= z;;u}O4L!eub49zS%c6+;s!`*iNGg>f=+l{6zZqZyfb3rD=#ed6J+XiE)*EAu$j@th zDI;Wgv0byW_9{J-)ziBkL?@c6+cHKJsaME4wWGe6b5AiMe+lG;iOx)VNyR{SWZ4@V zQJf|EbQx6f`th^vP|C`8lM)~CQi_L<@V8b5ADSK9xUm?G&ph4QybZ+A`{e@K+Pf!%?fO@&KNbta#w+6kEXF z=fQC3U7n%?VpQQq+$o5cjPoEwM3>2N+-gG+$u`0i-GfOxm=a4TptYwaqhpY1(i{N= z7JvJLK=JlylTsA*cZ_l{&2EPSNWF(8@iq!450hH`_rGeR(4`&MRwktA^mW&*Z0I!5 zufXBMBBqcJ0);7phs-R`M-)%EOI!!GV|hzl8+)p@2Um=)yUi%_zB!hwGS4paEu zX=P<*XJ&pE!1yxm9j}}J@cFfGOO(MS}0{g$l;6v_*~of@14j| zJ2{PKVE7(NULZq~MYY;A^jJp=43E(G5n@V9^xs*9Y~I`yo>>A9fpSUW zL#;(=5^anU8sBn;zP}~lOSqHQ+n7E+O#MjpW4^7e;^VcW^QnD|InYkuQ;CP0zMiuX z8?J!Lo@F_dBM4?%cYGL(){?=8ulkjZuVX0npQG@=%T$m-z%xUC!SQyfEz*LRf4Yp_ zXajth?pQ#vnp3u^#wmTMZv+R|qj>?xS>w{OSXdWmTj}6_x_#bmOQYlH{RY|M^Q99M z132YWu-j>+v48Nx2R`|qSXuifaO#~ZT zwLw*->FT^ZGY8ao{_$?+Jf|@nc30WEX!*@zVHG5t??*58y`y`Exak^tb}r^)OJaid ziB&VyWk~P9YK@}MnA=s5@kr(cv$@n08PLyM()PcxM4DR4@h=)zxS;(CXtpJ9g$INj z&FFMBHFixFhTJf;Z+3kKdu9TvlTcAJ&spS;lv^-jK*0N2D6MPj)MQ&h-+`^^UYp?^ zG_|c2nG)Z*qdMVkqtb^Uk>i7MhtjHcAdvDG;&ap#QX2{IQ$R<*D z_MVZwsVHO<5!s_;R3KAn_!1=%e(>U8879N+4cSMt|upV!bg$>7WN2o*Mc*7ry~ghmC^zS(HPlQHM* zH^qwjS0%kR-1hY!w{`>(pOGnvf~BfVjAF?q)P0%~w}_*AqDJR;*f_E>9UADjK1xhJ z#`_@fBGzM^Gqf7phI*m@O>8YkEOpVMk|`Y|kt~_Q11W*vz_iOG#Lc$AwjVU{2@}s;r@(yoox1`3 zj7MSzzPAnct5EVt5oD2d908Jqt!#8J&Kyue2>B9=8;Jx}htehosv{$XZP(g%YT|}& zFr!S-2m0KR7qduFb4l?l)7J8YdCOzpWR^aKRSQ>u9i$|mj$YwnF|qf$X=ROlsc%S^ zV9DcCp3fR8*4wBju^cMgaqElJt-j%Ww1O|^gT%%!DynCN3=$#H(nH1KiFwhCxR6)Wahx2* zne%vI!GFOD4@SjN%*fV>dd?Kd5c}q49M&AUcbZG5tEy3Z`taupn+cBm^CBzR4cvn` z$vwkPQk&s3{;p-35AM}qOsEveuIuDtJPXH5=3O&4#Ok0}YUy7$%4w-kp(BN&+#PkY zHcKHAP`t+OysnaO^ccAU3Yvhk8oZ?@i zaR2xjRBhC(&5uleFc|)&*Wq};Pw)+Z+kS#?0Lt+bdjn7x{u9oq@10MA4b%_-p7~dF zK{uk>x{(^!_kOBjo1AUE12H;{Byq}TT9M!=wA#Y5hzXQD+wpRoI~|g;MJU|sb%kp^ zBAcHHS{<<+YLTOuT3-5xanuKvFm*eORVlP&TR4D~TQPBV6YtEKW28qTL{O35AXvWR za@U|S;Bj@4_%~?7+!u(dai8H{GYZQUx>D2tmDfv6jT$A?t--1Hks2E&%U1} zDTk=&q^E{iB&0cmX8ZmQ<=K@5!-2h14w!!dr2e#`M}QO*nBo6PJPLf|r8$mA9Z^oQ z2mojT0Oe0O3II_5m0#FcSQU)NjLh`)O>m_<6xj6Thg5#}O7KQt1a zPaDUH;Aum^5S>!+ER~hAmO+W8Ld@X5yB1}z1``$5wl+lh;OZ|Z`daL!p*5?-WdfXt zUY1raPOlYG8wB%+glI&mbO%OMPU>cC(KS(>EwN_S)X`}+B*FCy5%pi}(KYJ6V$*fh zlpMY`kuj|}_qn8@9dX{kePtOF390QJK)+C!;Uj+qQC|Kvrm{RQ={v8-p-ML>QF%}! zM2N;|F)<%wYKh`8`U6k7>6B;kEUN9OrOsu}%3{r8CTZeZ*AuukQS(Kf=|C$UEP1Gl z@xi=9sk1cDmI2g3qDrJd^f9bSvOgw){LuZ@gzO3j%j*7uY7av%3WNajz{VKlUDzd^ zE<{J5VW_O^?yPL$g33Nd>YJW#d@I6G{|+*u$L*QW#)Zd?o*yDVV-BZ(_}Y`)NQY`-0k#{ZA8>z27-Q?|x!v!5|t*jaw zP4uqrkFGq4L%-^d;GUIn1vw`Q?ZD#YEqk>KJZ+oZU`~Mrr`62RuI<+z=Sx z(gC;!@R9QCV*ClJ2V8@{pn3=}lwVLiH7^)|;eSH)^2P>m9~K5&IsSm{VL!A!!uCgBejK(3d`+huq(_v~ViI_u&@VX&h8H3HSJuo^3sWJuN;q1rb5|Ajo+!Sc zs_c16^*LsAdTQwqW=T>B30!t>l5NH@5((uDPYicKS;@Q!(LxL}RHEES2#TR;DQhMG zR(OBZ0-n8-cg@o8^X#h&JH&QT`%b$KqbT$)`t5~0Ep}d!$ zf!d`A=*8+`q}eQ%x1q(gxgDNZWMOUw-`;gi*(9b<8en(6dH;HH6RCanI*&r@Rr1Bu zq{nhEQl3Hh2Febou3{D^N8rqmLC*zsTQx3LTMlX2J^x}$yP>ugonEu3v*`3-Jm{0W zb@z)>4S@k81!B5aX4E219>hz^bqn}}tWr-Do+LHRUJj_i@rgQL7Kos9$x}XqvPlfb zo027ztQ=!fDQ4x8tWQ6}o&$mgQWdK*LQnlo+FZJH4bf55;uT*zGX%?G3VDgZ zgpPflW>54Y3Wgc~WeU`5FPn6`47POwn-r77ADy$ejnCOr#aGeLAf64O@Q~`M z$1XI#B-UZb^g@;;MnI;~S9*NBi7zCRH8b%dHwKO@VbZXQ${nzWySn1yaJ^3+mZT&W zR+D6i2HxfP#`O*c-jd198?n_ELN25lC0C^m8cF%S7@P3VVv7Z4h=!1fy=S;9^+dg4 zw3E0on3)UqOl5)=UwMUzCB#2Mpq(BFu`(TkcJbrR_=JT0Wr%= zTsuOY=DO;#WWOy3bTS^sbobgy zoBN{0xAv4_u3%ea&U&nr4U@LooMvA(rf?pZ7saG{ptN@v^6DK4X)iTRnurU@Q|FrH zB+$=)yiMyqmb>A!czN$r5hy%dRqVYPiS;dFTsB*^FU@ZEsfE=%dqL9aw_j(O@i!t1 zrN8WcsH9)fgG%+pQ=bi1hwOCj3#)f_O}3)ksI9)F%*@R){7$wFJ#svChe$V1dl~uJ zw-s$T%f?}1Dq@xvJ?1eQ+A=$SABDY*OQ9Thl}DIv!J>UU9QumIr~)+ywzv(v3Ip0O z*a;qD;3z6he9pce3Bj;)4m=+eLV!lwZQq2OkODR{#?~ix4D_UZc_C53&Eopc)C>nw&L~%}Wk%q~<0=a7ZmDktOWWsmF zUopxqC`f%Pxwl|Mmu!uuEjtd4t1At*=DpWf_u6DHf!eR-0>9-}YtFuBXFxK#)#F}s zV&irYlU=O6!+2u$hUB9i!#cLM01a!S%f5r;1Ki_0gm_G9oY@cpN6|G)x;QnhS_4rh zV#B$&AJHP&WTY9r(In`kSQ#F>q1PgruU^Z29n{cKRyg{?vE=E_7bmSzqy;TL*A>&U z@RwfpF9+Va4<52<-)E#;> zY+0=+A-L7D$ZAn*TU>c@4}4J{O~}Ws^)=Be-UP_X_*z%!dt6Ob#PB|qE{3T|>hXD1 z)+kvsly-*l0BJD|5+2Old|lSm4-jra9S?t_2T%?j;_M-dj|5W{l@a3QxjNTwlTqOd z(UL-mM#M!x@rb)yb_lgjN;IwBoxv_q^N$<9aeTA0w)=We8%w}3Udb$S*|v3{s&gh} zHXcbZ$g^m-tc9eZJn+8Rcv8bhyYrtezQeeYmJmr$u_sblb57xR+V!`}^>2baB>&F5 z1pgCU^DCs|uY){*h{sZqci>{9^s#e4UFRv8{hkVkJSK9lSdJz-{Udh ze>oka@x3)XI^*QI@oaq0zZi3Wn!o??=mOx-0~}LMSaWd7nPUnRh)4Nh&hZ1G&;NQ# z$yBv5(^exCnPJrJ&3oZ2CvI!~r1KLy0UM7@lvQS-uTaQ4v(X6*BpM;(nu%B)>&SfpMMpAvPm3@*b_j1O9h;HM=*-*GHK;6 zQt!EMChIM=ef=Pxpf!iQ&CJJhLqIBjMd;n!+r}ZhPU3Ka?SY)B9)r$jqXsH!R!+j3 z4c}Cmo|z^cFk6{S%xZFTx{QhN-AKGW@g8H(`Wf`bw>9k#&ebgsUW10eZq_A^?0A?- z-Hs^JFY_QKYT4Z0iS;rSK=sJjCc6-pwnuab*+W2oap6kXvVWD> zXOTfo%?mqh7BgJZo^vv_urIp9^Yd7x4+pY_FT8il z$5M&kF^is_#jL(cY!)sH0oy5YO>&QWLBzzLUa}K=T0F9# z%IST=MD6=E{|*9G%KJB2l;2953I^O70*oG}g|$p=CSM|nNDE1HE3$D~#Z3#WA$>*1 zwIon2=lzCeY!UHhAah=(mkIq7DbX*o8Byr9*!)9+shuAbN>bm1w;2c6@J%MnE+w;n zcDTwt882?HiXaw}h_r8pcsa87aiz&BY0E+g~LFIc!<+rA{d~_x;I@HusvhG^e z@1%t{#eHUT6-}MF!Ov_l&9VLws~w;^1F%}cw?H*!t5Nr zic_l6?HUq7o@7%BeG7_ML360x6AU9(iRB6^SdQg#FoS!QnDc{X1j>!ZSGl20E)p8i zA@T=fi$XO9%P~|%h?NC;)jKzCv|H+pCI!2Zh=xyLJdlfp9s!?S28nw1sa#^E<0to)^sNPl4)z~+xgmK;Fe`w{pz|2_}(Mn5Y zgRqNFBP86eU!?Vtos(F7eW+o5&COj)eF~%agU7bB_7B zZeq4J8@v?0%TFkSyBvahu;(+cK1|3U%rs}hikzP2cG^5Z?CmyroEzCf*`X%asSuO9 z_EmG^p;!fkTRCwDDeej3?cXS$-&=NnqkN?PQu+M%5r$y6b@u~jIEpa*vwk_Qec*9~ ze{Kmn(qZse!QZ#}9vArgzx|-XqyOM~3a$^~k$>Om@R&dNJ9xYwoPHGTcSM0l`hkw( z{7z~t_}u&u+ka(O|7p_y*EQCecsTHJDC)@qZv6e&A_-f1$CItq3Ja4osJ3 zwQ|Yj?m_Wg=8XLsG}{-+2N~K^4CXSSpS)X847Hz4WL{npy8p@Lq6z^mE&-M6+9Ui6 zRnik7I9TZMxLN2lQkTS>5XB8YM3-OJllMbw8r*4L>NYD?>{#04K78joDze^QBd8{L zGu=c$5^+FC>y2WhMjvJ(S<@=cgKgn7Mhs{S#x{8LnMk)o3}|fEig$omHijiv#Sg2V zzJ*DOY+YxYB4*FdC(T{e9j3>UF4=#F;_1D+KyLO_od`+^@x~z$s#D-VP=WXpphB$f zz=#_(+ErdlUnZ~Wa9n%z{vuJgj)=w~gC^#PPeI-)0)eKT4FQVjml<_lw2ey%b`~dCe55daVK=bv)u}Q3z@jpsedB`-uaZnU)SFS%??sk1 zXmIUL+FQKMBt#w>-(7;VI2@^=wElSKe!Dm?c|%j2K8)LsW`eBR9%zBZFObEin7zl6 z~9*uoh6gI*3@FC8WyYp&Dd7R_o+Y}+Y4^TZxHX%tk%q>L!L$Fi0G(~^2iyf`!P-as%275do$u!w9P%mW4w5DA!fAUQSjhXAN zB{F@OnMj*-)Q2WZq%^#eBXi7dyhBgNqG7Ha_@#dI^=`_LY4JtH;AddAT3%j5|9vO% zXU~n1$u13OI27dA?#wA9C)vwX>CDX)(3%0gbF{R5SpI-0LjYQ*kpB(mVGA-e$z0zBo zsO%*C+<9$bxfWG_x^SU9$8yKA$qh^sGQG+9PZns0%IO59;mY1UFJB2?O8+#AJGCO> zlu{P?;D*1@#-WHpX;`ar=4NK<^@9{GVeR-!9M#EegyG>cmL7;>W2lwCQBubN;a_6% zZb+3U^e&4ay>-Gk`hCpU7Q+D2wMr0a)AFj--m z@bEhAi;=D)$LZ6gd;l>)GjN=_z@Us~V49wY8i2-XJ917(qp*c_@9WLR zfCaIO7bggEoQ<|*W%h7o3eu5h4$;M(iD3AnzEX`voLsz=!ZlAe$lml6x9U`NANH2K zH+jK5<@#;P)y8vbR4D7AaAkZq@0@(zr=7dr#y+a6*7KQaw3O+DRP~j9Y8ePp;B89C z!**6R*ym?VwF-7?T&Y+YMAV0E6@JT~(4||~vB?|;FT#=n_HRlv#CU(WMp`MgX?{`o z!DWKow=*k=Ami$%W>+LtT>3MTZk4@iok@-*5t$LH6;`25=?r97sY`l^B?$>8hEu%Jl_@%1*ab{f4J=oT~|6p9yawwfUy`568$Fld)Q6 zJz&n7?~cfy4c0$z@i?`dVdoS6*sLuTx2_U9dsS=YvS{fCf(s%Tw<-}T(>5w^39QPv zQ1f@rM2&LDJB1HkV=BHAvH;r^dlfj*9XNoCSWOw+Oow$-gOt+lV>{=q0no*$-r$eM zLeNm&*cT=g{bU&SWN(z)b_K09HS#bfS$A0Vji{rp5Vp+9H=#H6MQr!TXC#O$ju=Rm zyLsyhQD9$H%y>_*G(3H6VK{2TbYz#+N5r1UQv!`yOj$tU*&Potl8)>>_x;kS*{q0L zy8>(9G9RbBjYVDC&9kz$>*72>zEYbJ{~Kxgdzj>Jq^ZnzCnATKjg`^wJc&Ry>uFEo zk)--_90T-t90L#Fls@tZLLeA$@8Ge|M;=7D=Me5Kgws!mtfMbExo@cct3l|v8k(zO@pA-HXQ0a!Ct%Y`lQ5GQ zL_T&%B~<$<^AZ}{q@Y8??sd@%R%$V=0gr~Al%12u$s;DMZ-+=;viKBU%T^R~nHzUU2j8O1&x9H=d~?Wf(~ zT`h8o>^mQ{XUcH-Qljf~meM8J$ErE3Tye4y+=scY3U>PfTA$V4T(@w{lDI)Adfv&X z3QbJZa0rn`zvCtFuH6YiOqM8k74baF3oa5WFI@l4(5uwQyjbO;=dC-f(R|02dbr&; zr-*IW%b$KFKPM|Y8nrWdGxy0L&QA9|9GTHXy$Fimu+PyV|CsDw+W0>>1JAI{X^$X0 zc?WQ*aljL({_zOH{zLN4fA9!m{MI8#{U1DnfUWpPk01t+M0CW_$8rIWC_irhr;Y#v ziD5qs7d{{r?O!=B@A{%#lro{nrgIV(+vZE2Ijq!{1licB!MBlbL*u*l0 zIxUJ#UuC1ekPQVKZc#mX{mxi~XfnVti!IDSLzj@NPsv28^U#*5H8VhUj5e8^M4tjQ zm{!-(^JO(uJIw-{k!U|q`x5c0T{~f(QNZeD6_!Uzn%ttvXp~h+>br z%#qlgXjfm(F+gqo5GLewcGGp^5xM4XGYfW4M`1h)?q419Dua=T8?w7Zh+fh4lfV^4 zrs(aQ#a{`ZSS`TsZt+Jq#qJwJ;Cn=x-*92;8sz*m@&jG@#vnWa`bafrB5UNidJGZ5 z5ypCQ=6YOOyz>+3vsZP_(W+50DTfJhVfW1B4K$btyuHon_q;_)hIEm5f1EA(F-l>g z1Hw32vjNPx*g|Zl)q=RpU*sO5!uYy`M}+XcO!&S;DRK7`jZjK!H^;X^OK`ZwJbi+W=t2UUF{!H)PMa8NJ%YqH zJiq7kQUZA!26L9%L0#9}sjGa3Us<@TClfJIqsJnVtn+H-k>xsLw4y2zQOiZH-_1kW zo{Lq@&Y|BN>2BLMLgQD|p5@;0EsIE2baUfgrn-!ACkj#T{eG@O>BEuqln)B|cr9E4 zA|h1S9YyR5G2WVL^cU3gGUD5xGDK!XvBzeTPwUG-dN>w8bKIyZpSl)SKD2G|^7*Eb z%!|CSvRU5e%lEm2^Wzi-NvnBv(6~b``P17MA{b7c;ThThxOzd zDppq;EIK%f-@buT>5hc){LuBRR63ynehH<&QEIY(XCeT3oJYFtzc3NtX|q3IEO=t* ziLwshqYM8KD8GjOALQwuM*P2i-ac|e9d}y*0U*EduOG7XI0nQGPsRMVl*oSxLNm|% zFM`li_pzw+R3h|r&P~}M^jyN_L7}Hp;vzso!@Y$@?M%(-N^^^-(`G%!D`gu+dVHhO z_qo1H0N%`KzlUB)Mu`sMTL1Vo!UjlW%hBJ<%XoUU{}4s9=gQM`1V%V5{{AtVrxJ)u`w=6FbMG@1mtcafEbG6fQo7$c|}s~iew#gbHZT{DZ!zxsle)| z`cRggmKFfT6vv1`7a^D;|tNyDDb1*!1=f}qROZ@joF8Og2_j@Mt zPs&e&_)i${uk7%jeSldy`vaiBaQyclwD)`dH@p=b2ZjK--`|noW0~Ja*EpW_4f>h$ zeWIYlkvV^MRsMrW_|sziuZx5u=fDY(a2yi;jXV=Z+r;_>Jf*u^Q~FArPCMTluu<{Q5%9ZZTnxN|{wwx`me{KZ9Gg8EJ$p)Fdl zg1FZuNf}HqGM&Z8NRmBtnhY*6>AeeE$T09zG4Hw*7n3D#)zvrV%kPpC)>H0HyPBE= zpl)UuP?95{TwH$p6jhXm{Mope;walIii8vt=JDz|)pELqG^qM!k2l>dqAMV*9W>yZVsMC+(~bV7aMTs<7Te+L&H8ycVy<@O+Rd+VeytdNbgTL45vhYMHq{; zi$i9Z_L|t5U9Y@B?H-xxlz&%MWx;Te)R(uWqEfZp-~yuMd`sspSnM`aGzO<<;lI~ijj&P{1g@z#P%?EsD&+e7Nv)g`1MPAm z<@Jp_d=kaan(McxS-7o7OVeI-R_za|QtL0;3>c6+=jr3=EPZiXzF?DgS29K->y^w! zmO;D7^nlQZGVKJI0p8YX;e9pzw(FrXhqj3m0)sd83`q834ODZ>S!lg#6rAF+$XmQS z-EhJnRe^5hQQ`4vQGTypwkCrz6L8Qn&_CR6D3qkXIqy(t`|v&FGGPXH#T@$wbC=go zo@}htCKeU(x#P~+3~Tn|jfZ)g8=kvX^1jh`OfkdDP~9hya$Vh}Iws#K**+wwJVC{| zDB(>41|QRgU)D)ZyWE;Td9RA{F34-vP_<>&jOPMq5$0}G3} zQKc~t)SDMGu!;}t3`&?pugq2Zwi}UuzPb92k9_Y+{EZEgrveuxq^yt!Q@t#oZu`w; zqTpY)j2QLg_Mr#NfznnionpKnei2pKP_j!TL zDUKd|b~%o#D&0i7ilxlkmAO3$eR1ztwi(418+oV7&xfxr&A^eiMvk8JIMxM1{^2WWEn(JagBoG{>s1MbMIWYZ#;8Z_&U5Ga<5?6g zio0e&WGQnbIO?no<%bLtUgQwPu+8c@G-iLO4Z(i4$!1@cuiET`UoT=G@tD#mXwdgmC>(`ET8~n0Dz93m*I}3=&9&RQE6W;?ib|C3 ze0))zJ%gt5=4)5}2u!`wR8h}jh0EJBwCwBwf*Y>z&Z?@vIY21<8=7?FGz1FY{K|>} z5?ziC;eUurKamv!N0LsWM8|>c@2cf*vtsJ38>n$5mR*}Dqr{QFk;0?Ox4U?9qHy3z zF&3hht}CO&fl;!T7rYXjLF^)q%PEfNTQS~q;JVo=2Az6YRD;?#&b_7jDKfj+7ACz9 zS1~sSBkwHjk%-Eo*4A(r(+`ZTm^65{Ja&61dDq>$VSh*?Q}5PZ9jV*7y6AHuw_Y!a zwf}Gl(-#Hnie5L6J4c4C~k9jLl6{tzxZ}E zJDmiZ#lak5sq3oRn_P(sg<)|HEeyW!0<|XGHXnO;L~H0B{Ig362B4VVt?7R_ew_|2Tp`c>yEt2h+ggs{YO@(TAtT=>H})=D)N`P^t3}4OAW)AtyE= zf2APklV?OlM0G=rAi?zPvoh_->AW9H2)9ebBazrkW{bku18sT6a<&TeJPt5GcL)(T zZ0k49Z4?deuiv_JQGaXWi$)9rk`8Jvl{Bab(J!98PUn|hg4Y^QAr^gwFym6AF^ZTz zdm$3hc~*>^bLdj27yU&r-k}}v6+-q*l=S%#R8f#aF~yYjtuX74Opxb`n$ZdIPrgK_ zMNN>MQ$e4Sf5&KlBRsDCo%I1gasRE=4u;oe{7dTtE(GBSCSVO5Wec9Q z6@F3xivb?_2($#MJ^iE}dw1Nq2d_%?r=Qc-$M<&MV^Drmb?WDJ;MJyn{J^VBosf}7 zBReb3|HIb*(?a}@TOI%=12D#M%j1ah^9Txhe;(|MYiJ0e0qdhuwTg; zaq{*j8rj|#Z75r<7@n;fU_Nu%Ew53UXhM^S33{!=s68>K7^>i=$-KHp-yE=m>M!+n z&m}bbfFr4G*YNxv9a6$Wh;Rx@O>P8fYs_a|HZYI%@LF)J`12hU-TH)svAY7Im8w^iLo{Xa43v=}U}XggyM*gRiYft`=orer zj^g>G_r=pui@iFG**>aD>iOuQUML@|ZbApiiM}Z38marTr8-oUL(F<*(=!Kp@6&Ys ze093>)bKV5u@a0ULsC`cCY_e+Jrlt0uE-7&U{SQ`MijV4?2MSSM_7K(Yjedw_${#{ zQAZfUM08_KFu@9LnMJj~W5qbE(pi4vu2c#hQ!ranqyGd=BQ5Ic%lIxP>`PY)T5hAd zK5bjs@7oBnj_ze{ zX}<{I%@P-Stko#-wS1OJ+39I!U44O{)(8@r|C>6`PRoofiV9`7m@$sBypAArXZI&N zK_$JWv6VW#nBpZ`re+nB&kQbIGN{n_5_0G9jLSI^-T7NQu*SLfSMSYVMM(K#QQXY2 zrG@iFj{J+NC2E!Rdypxkvjc>tto#L$UO>!6i6x=V+Ge*vY3kXJ@EH$_L}5togM zvP0>o@AzlBv|u${p;v)Q+BnQ|Oaj*5RrI2yjfM(;rNzg|{--8+tj`n4C zWl!D>Yx;QYQmMiRED^2|4)Y{LktKhsrpYV3Jsg9Z%jN4f((ashSM(()O6a-*+hHq2 zni3s-K#3T$*<=Hgt&K&)o^InP8$6PnG^POT;1=5A8oLMG1WWA0r zf-Zam3({1`=2Q!1^)5{B3AAC*XAb2_k!^(84-Cz8+}AQZ82;pyosOz?#T`Q_;&E27 zgKI$KSN0_r;!JZ2nGeDfp3N^cGB?XHMoEHaV_i%0xYm308Dq!>hBh??J_!z`k?vgp z?c9$0&3O?xcK=f2Kv`@f`&&Q>JLcO4w-i;Ve-tAI!#H8oI?Q7B=2k`kLMFuv)nTDl zwl}zI=R&O{A$3%d+sTdv$nLvqYyhtjECCe2!(f&WfPf%8AfOB+7zTqtc(gzuCg2~? zPQk_q-h}$kO@4XpobDQ%0E!n357_+q0`dxAK*3)V>VIfpFuaI0{6%g3od$sc5s84+ zaGVBz5BD~lq=6wo#_I_h7^vn5kNP~`4gz3>@Dk+5X-6LbeSDk-fQRrvlM^%$2pHaJ z8WhY6)Y3fB4#EQgh^J}XaHr&{cEH`A>U-4SOkW;8_=y4j`Y|scei$$Bsp|o*QW%ic zd7>Q{3e@#I^&P;Bg5f9ZUK@;crZ!ov>* zYIvTY!Py7U994Xb0hi@W3OYPqu^d!+kv`X%IfR>+2*927>4QoTTvq z6@*XIV80m)AMETr^FiUyojZO#2nY;2J@;UKK6nj{)9rZSMG{W-1yYetjSr9!JZJb6 z1kC>Fb|4<0Ao8i}fq}hnYF>aqcD^%f4rE}TULyz~5#e#}C&mYeFt|73Bn^6o?*Rz` zRA)ZZ4hkS9r~2~3eIX}lK;2&;i~1xD%*)4fYHvY+0iKp&fc%C+Pv0*Dn7`BW0s%zx z>9GKJahjij>+zo6mks5fpds^neY49gHoE#rF=(LUpyP~QA3?X-S_z@YFV z1*iH#&*&ovj1N%qr`z%I0M4ybefc40)|Uqa;X5-Hem*#&0Dt}DQy$Qfck(0+n5)y@ z!2{tvGxva0J98hv_B|svcz_!@Jy(DRI3urst$OBud3cYWWN>nPyu4?4jR&~3({shc z4>}{8c=-9w%pWfZ?nj1y#jkk*zTu3n-~|H%Jkt(xX0CXFvi7IvnU|aUtR4hz_n6GF zyK4Z{hQ5mdFWsVI?qUo-i~^6-umPU20Tf9;0;y!IO>6)%z@YHTPcjm~GdYBejd{6^ z_@KtdCMKX;P<|tTyFmO#U>;*Ypn>@eVZs>y-sC&PbI%SqYabnifyL$nLopZ_Bo(DF F{vYBmY3~34 literal 0 HcmV?d00001 From e59518566ca017c08faaca75fb92cc9bed680e95 Mon Sep 17 00:00:00 2001 From: FabienC Date: Thu, 18 Jun 2026 16:17:59 +0300 Subject: [PATCH 19/20] chore(deploy): migrate to Hardhat v3 + hardhat-deploy v2 (rocketh) Replaces the Hardhat v2 + hardhat-deploy v0.14 (ethers v5) deploy toolchain with Hardhat v3 + hardhat-deploy v2 built on rocketh (viem), matching the parallel-parallelizer setup. Foundation: - package.json: "type": "module"; swap hardhat-deploy@0.14 -> hardhat-deploy@^2, hardhat@^3, rocketh + @rocketh/* (0.19.x), viem, @nomicfoundation/hardhat-viem; drop hardhat-foundry/contract-sizer; scripts: verify -> "rocketh-verify etherscan", add "size". - tsconfig.json: ESM (esnext/bundler), @rocketh and @generated aliases. - hardhat.config.ts: v3 plugins array, networks with type:"http", PRIVATE_KEY accounts, solc 0.8.25/cancun. Hardhat sources pinned to contracts/ with tests redirected so Foundry tests under test/ are not compiled by Hardhat. remappings.txt gains contracts/=contracts/. - rocketh.ts: typed config + deploy/read-execute/proxy/viem extensions, setupDeployScripts, re-exports generated artifacts. - commitlint.config.js -> .cjs (CommonJS under ESM). Deploy scripts (sPRL1/sPRL2/sPRL2V2, MainFeeDistributor, SideChainFeeCollector, RewardMerkleDistributor): - rewritten to the deployScript(env) API: env.deploy({account, artifact, args}); network name via env.name; uint args as BigInt. - deploy/utils switched from ethers v5 to viem (isAddress/zeroAddress); removed the obsolete sPRL2V2 recover script and utils/getVerifyConfig. Verification now uses @rocketh/verifier (ETHERSCAN_API_KEY env); .env.example updated. Validated: tsc --noEmit clean, forge build + hardhat compile generate generated/ artifacts, and an end-to-end deploy dry-run of sPRL1 on an in-memory network succeeds. --- .env.example | 5 +- .gitignore | 1 + bun.lockb | Bin 214729 -> 216293 bytes commitlint.config.js => commitlint.config.cjs | 0 deploy/scripts/fees/MainFeeDistributor.ts | 51 ++++---- deploy/scripts/fees/SideChainFeeCollector.ts | 55 ++++----- .../RewardMerkleDistributor.ts | 56 ++++----- deploy/scripts/sprl/sPRL1.ts | 66 +++++----- deploy/scripts/sprl/sPRL2.ts | 113 +++++++++--------- deploy/scripts/sprl/sPRL2V2.ts | 97 +++++++-------- deploy/utils/index.ts | 4 +- deploy/utils/types.ts | 10 +- hardhat.config.ts | 56 ++++----- package.json | 39 ++++-- remappings.txt | 1 + rocketh.ts | 38 ++++++ tsconfig.json | 20 +++- utils/getVerifyConfig.ts | 86 ------------- 18 files changed, 319 insertions(+), 379 deletions(-) rename commitlint.config.js => commitlint.config.cjs (100%) create mode 100644 rocketh.ts delete mode 100644 utils/getVerifyConfig.ts diff --git a/.env.example b/.env.example index 5a52f77..acd0a09 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,4 @@ -MNEMONIC="YOUR_MNEMONIC" PRIVATE_KEY="PRIVATE_KEY" ALCHEMY_API_KEY="ALCHEMY_API_KEY" -MAINNET_ETHERSCAN_API_KEY="MAINNET_ETHERSCAN_API_KEY" -POLYGON_ETHERSCAN_API_KEY="POLYGON_ETHERSCAN_API_KEY" +# Unified Etherscan V2 API key used by `rocketh-verify etherscan` +ETHERSCAN_API_KEY="ETHERSCAN_API_KEY" diff --git a/.gitignore b/.gitignore index 594fdf4..9cf4bc2 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ lcov.info artifacts cache_hardhat deployments +generated diff --git a/bun.lockb b/bun.lockb index 90390e69cea5febeb0892ce53fce983ddad324df..96e8f35eb439b560ed48f0b07e7fe606b190fd0e 100755 GIT binary patch delta 74334 zcmeFacUV*1(=MFQgOo%%3WyX@I*5QM0*ZyEAc&|)M?jhs6;T2xc2V3y?26cX!``rq zfD}b6Aa;>v@8X%+1rzYR-}|0({`#(8t|v^^eb1UTYu2o?7s2P&3i+4o3wqPkfAF+zQy*G zvsjsVY!*umWC}j7c_4jta46y#yZ1r)gOPQWeSypojf4 zr|W$KiTFy|ZVu>aL%ECJ{LIBr5j(&rJf|yE(9#zq_G3F;9!fjpOyko)VxUU7EEaS* zGbAF}6uQr10>bp0=_pfQ1p=qe;-E_g6Sa>38v>vsF|T+9GyXT<#tfii~pB&{z8 z2CzIyhiWJnaE!Vf2eTnQ1ua&%m3EZU2Vi{{V94@)8Av7v>afCeLz zO(SNfB!wL5OBvn?68V_qg!stl*ob+w-W`}hXfQ51F2XcClyx4;*zh`iszV2%j2#OQVn3>3Nh3-g??-4# z8uIP>Q|%0(rPKhb<2q1A|D%&lr^P0OvhD$nekVnQgoj5bC5|_yb2mOME+i!^Dl{o1 zECNPR%!JY#4H8FeJxGjCSX4;tbcma#DTTwpnMTHj@TVyPfDJtZi6dxfMi~g19i4z# zu@}mi0x5I=qhOVR!O46Cs}HUM%&Nq!R*bv~JdSL&B{loOfoL4K#V~I$!0906A=xq$ z;R8AlVMVw}8SMkxASGYXQVwuA zz$0y`W>|DNBs4lDEir;MCxJ{{Nv2weNDfVnjtyr?I8Yh#elWGF)Puy; z<2FdloFgDLL2jb)MIdn*O980_G6w!c)MY{aW9s>re%QN_Z#2t`m z;4Db2um>a>$fwJEkf;|667~E+Vnf4e-jwDw=(03Ote=u>8lMmz!IFf?V&LsZP!S>{ z9SA_xaB9QRaHWP=020^ROprLF=YdCu4uHhe*hI?}w46uF1dup15g>60Cl4pY*oOS% zgxIL)_!L%RQbbBhG|Y@K6rBD<=6ZQhd`Qep zOcd5>C}SLUfJFBqLy}WWQ03_n#IYk2i z?8&r*6jI~dc*?N4FBQ-|P{y8IfHFF;7RtC9E~4cPKWadZfyACNdOM+vbHEAo(6IoJ zSbqRWjM(&uw3(RytUvyg1G9j@5u8R#50Gd;C4e#@2NEMSa6BB&yn3kO+^O zOhtC%WFkgJo4*C(i0~Sa*gbVfCM+v}#OAMo#BS^csRc43DJdZdmhCfBDSZLWPYPnO zVEN7*2NLUz0*Q9SfX8m_2&Uv(km#*-2+8v^mqEj*m3@XjoTAE>Yaq$bErkT`Xxfz$x$4iZ;y zOPXi45j`klrl^BNhvlKisPB}oaV~VNHv+Z;%(}6_t90@(*#BQUOjuOH^yu)A zBxcJF36C?K6P?H!4u;U6E=WxCyK`AAOOQphOa^HIWhaoniXxU5`SKs|75qGdWrY;OWcz5#r&f)Dy2l|Z6_5A!Jl=JePyIl&yxtk{$T%=GvI zVaIg8v6zxgP{y371IYs!ACW+wOqu%3AqLJOe6lCEXak3qQU;Dg8OLZRNK8J69NByLc$GQljJ2U=0bgfC`w!_t(${5@VxNtRTDT2I3+T zV3b*`%fMr#BBSHOO;ZzD6AGx%yMx4BaiV3SX>3ARNJ<1q*t=3#DZ6|SX# ze30mA7D(t-W;jR;9kUt4M5mzRtTBM&io`79mFp>o&x2F~`~Y2MHdPhS?+v&mNOh20 zs$G7j)g~%byFg-tYe1rbY>+)cUfoRb$3bF5w$pMAEf>&Im$tKUE9IC@A=Q!TAaMv( zK;q&rwT+5+N>oxp>a@O5tPH524MYzxpbD}B#uOXgWOyxDXQ5rMW2<=MBu96wFBHG< zQMF`?L8gguPDH4*#F%-fa);bL_Py}?wqVDom9md*<>O|Xn>?})jd<(4ch{2E2*VJg zQG+gD?EOgkNA`j9L9O##x9lJiwbc2(0sCTC8%yjm9rV0;)Chh_aEZ29z=_fbxiQLX zbKiK1=%J$w3}vCkj^|pCiL_G(N>%Q+D%9rq0~$eniR3yxmG_qrRSrxL{_Z zGvOBD(4rT!V*O$(-n-|XY^drlj-rk- z|4VG}wm-Fbr=17%G_qzddtO*o$kn=P)HHVA$mqbNVf{94+mjK~CSy?jXny2K%Yug` z(Wi&(9w-&}>N2Zslwp&Ylf2r9rp*Uu-mq|4A9PYmQEYQBi!(J%VUyH<{IK*X9Tef? zSZUl_i?{2h^fQS05k17sxsj*3lDx*Og}PZ zH9!4c+qjI_bB~W4+wY|EWbNRKGV^4c{I!N{UH+pw`C`XCpCO#GxZJNrV?T`CZQ}oM ze9yP{6W+}lp}N$UFYao>GTi#$LGbh8xl689c;@%&b#8v4QOc?GZJXR?`#*3FIQn); zkmA`KbKiRVsz)x)H}xBKpW0cP@no>qAm8`H6S5UP?yi4UeWu`Ge)-Jiss(+nz7wyr zboDNN`DWttj(r`*o=wj(4&S}y7u@pa$EuJo>Tf#C+*hVvkNQ40Q(_puc+{OeJxq3= z-8%N=+>--O1Pyz}M4-sCJ*(b!Pxj-f7CuLfPp^1!{I+HE%<5vbwlD{Wwi7#-nXOH5 zOpjR3L@;Z=$>eFlQ@%6xmmfc}I=p6=N1pkl6^6w_?KufUuD|tOf7X9!_VU2f?xp&t z!h1LK)eOXH73|}Cs<@9itz`LPQqYmKZOwCxQ>J`e)Os?_x{1@Hp5eKZb*JapPHtfm zf8>_>z1!5zeyeM4uGmmNJg;j*T@#-f!knUnqiYLB$?i_5Jv*XmhI}7uTcf>uPgrbU z^@yw9`1`wg*NP1ry(zjT*1-E>Y@9%odaX_uA;_8Mk>rmv1bL#waPvP;{? z-w4<{)Yx?%;kbQJ^hIK#wo`DgVs*co$$Q&AwZ}}mxHA1JzbtZ?jFpVzrQoIwjfOos z4oU5j9X+{z$&?jW_lx&Ald^tX)rUzH1+pvm2HX!kHC0)`dg0L*gV{xA=g3?#D>$hZ znsJS9>9MYO&GpJ*_WRsF5S7~M78lpwH$3ozyS_QrXULT!4zZje%@Y#7o83|0#Y_a^lCZH{+)Ck?EC?A3h{1aNb^SzHr)vD-z}u(x$d6OrnYiag>HxP4@u;jrqmA2&J}h}YxWeu5g0ZV> zpPY!TokjSIo%=BEZPtsvci+xRme{=LtmzZ=507iv3wqVgvG7kDXfj?_$!3gFy+-7V zmNS}{`uwg6y#Fv^;|O-ziPCx3mybSILX6XiQh!nJeIvS6YwDrsefP?gE~pNjRvA8b zQH(xO*{jd7n>shyM6j+5Q5ndQfrG(lSUM$%rv~OExJp-s_YP2BK*e$2z!&k<(3aCI z#$p9`({%?WL`8LbNw8ScDBbyg?PdcyrK>Kl0nl-PLObM3hS1fwl{1rMv0Q1C2sW|+ z=OhSljJ9##2OI{2pU>C8i3GOV844`&^iV5n|*lNT(JtN*C8Up9YmlRQ` zXDj~{&`F}zp=0t6u)PoN26IvYCOv?A)RP;;B$~Cj&}{kwG_dWB_#TruqcXq218la9|wM4UGU4y@ixv%)*#$_^0lRf1;*v ze#C(nbvFsnQQgqffOhxn%RenRz?q^;hrzQ9K>bL&!WmKnD3v$Dy)c2(43#&+y6OK! zYXGI}3R^IOqiA;@rvDQ?2clG79&hi9tL2fV0m+jY(%AT~2CubP-1eKq@AWL^l9R>O8Z==86aIzD5rCS~*(kDglmX#{3Dvojq8Ah4DF^o-Hc{fFP8=}Q!EHwVBA~c4 zlF8ROA$ZbS)NnF6DNj7jwvzzRh0xNsW_D1{7eGdev^36&BLfdDn9pLJ4ROslTma!I zw=>DvRrP)Cva=;=E^El8Bvt;g{>aytLoHh7T$lOE7v#6H_f?nmXnp2m{3$&jF0 zXE!;9eORmsWJ|&^nG2`~ce5Tz_u_T$LVC`)*pc%K0!W5Srga{|x0uTb}a5reJXmJbJZ%wk=K`RZe4^Xx2SBMsKzMPnF=Xa2gK}LtG5~hpfzJaJ}RVqq(P3sB4$DYVi#TJnlU6f7wMbKL>P z?2tehUPK>#JI)dStq|-CMP(8P4d4#Kw1%2uuZ@UFzJr+g%NyBW)FW}sHBJVg7;9=b z#He1Tk-wvdsM-K3`^BIZJ*Ea6E`aDD={Gn?PITTDKnJ0Rq|@j(CiN3QvFnVBQCXoZ3OEsR>$Kv)pLwTETHI>1XG){9T0M~IwJ&n^6h}S zfF9YU&JpK2m{FcGvx>lTz$^f*L6>fxrGiHel{0{1ele8P}HpVqbMckYU1esAl za42>Juu&W?kUmiLZB^{*NyFnnc0qfc z=_-zEFwcQT8C{$WurdRRL1IB5J3GNE1{6BnX<;Dlf;@d2p{WjTaLCCK3@9W@rVQ&2$;@6cwq<%0EGn3l%Vxhagy*V0YzVEkkuRg=BYwgMs!0b z0gBlrs=F0Xau8{lvhe1g7EEA~@$F_I6VUD!ZUTx!B-)xXY^~jWm;|U>H{I=kcJIX- zK)bhQ0aKxSYjXkZu6q?wuWqgNgkwW@3sV8@?(cR$yW4F6w7b6+PXE%K4QTh)t^(S< zHCg9>MaLJ=?mlb;w7cCm|J1dBnbF-}{ozzb$p0 zP`f*!+ZWdY@{GV+2n=pa%$g`et_7C?^#_!;#gf6KRk3mv9TsweFzY?%D6l?Ihb_Ed z@+2Tym^jR2A~#}rFF?mJD82WQ0 z6qSh_8OUEWB}S^iJp~s4T=`_s6?pN;5S0Onv-s~580>#Cnx53qcOId6F@RvFnE>Ht zWy{?LD0YHD$yj~{5H_#QW0W-6P=9Cz&r6*yYlH!U(PbjQqx^z%3qB&?j=v5xMxZ68 zo4h7KoX`rbOC}0uG@M6(fRnt?CeGasCrx#>2H35WFIdOnOAYfWBiGrtq z(}2Qal*u?KMm(KwtMLs`oTf}xGE$y#n>XB>$}on36m_xX%>Yz5o57l%og9GJA2L5W z&v(35fK7zj09_Ybd0TKCyGeHFuW}B+I5bRiq%!9`pxArSQ^ij}F$v`8m{8ZRRpaRg z8ALk`%NxNa1@l6IggTRnJ~h-!0L7G`@|+vVkpsX505T&wedj2GH79`S zYdW}#1^_E|P9k{%5FC&$vA+Yb1;9+Z_jS@WTyXZW;DPUA}T}2&F9DffN2i* z>q3XQQb5s3>@vQ{M}3}d0OjM~fx|^71W?ifrOKlEy@A&4bf41%2swR(lU`nDlF;JR z=_k)0V4Rc8N(Lzj&nC+N#jfJc(RuQexdSL>&fm!|Ke?+*F!|*t0E&~J>{Mq{oV@^J zp#RP#d{PI{4new8}&w zXZk{org#w5Z)qCV#1N~@1vCBYMZgsqTeCGvPbG@ObZZGxpl9z|vWig9L8 zcwAg+#|03ZV?Zf#b8iL|XBC@<$>iXeMo`;09soKg3U4K#7)S|PwWJLo~o?u zWB{}xt1%lG{wlK*#9vk5j`k1`Y?BEwu2QzV-O<$fLKN))6jp*Rx)WpQQKnm`EF1?E zCPf$Bp3_;Z;BIIVprPH+yMU6}BVyMg_Fr~$0fjB6OKZ;ng}tB)Y8OZC_o97U3h2ac zy3YXZW|uQ4o}P|>x28mZMnHAx&LO~s`#7M&!KJRVJ^+egq*YmvdvFY%l0fYnOqx-; z+W{5MQ);2@5PqF19K|W{A!y1+2n6J8*M>#r>PM1Je;!$cF$5yG+g(71bos+h2)JLtGOM z7f5@sqfQ&57M10IIs?kYv?saLlmlu7D3k2uMU3PhKpliH2{?n3si`RcckzL)rvi$T zndv2Y{ZtGfdd!5LJk(462GoWK{QCdBEk_-arKMb6F9H2Otr6`2_9Xj=pb`Tg- zV3?z+3K25imh%Wu>;PWEcdi^9`BZx4fHgvm8yb-kVg^P{pX&{|x4)*D$kbKmjRqB5 zo>b{5!G#(;dt?HNQ6ifMMu|LHmeA&yE>XMtF9!X)`9*QmXHpMJv{e=pST1-%9=he> zd)Z{rNT&0VWn2M=J4U&XRJR#F$*&~v zmUTg?r`zj*I?+bZ5P6}U0L0r=3pC17>2H zVkSe8U1AviJVT{U4V`URDwml$Ops0SweFM@Lo7WcnN@7fGRTv)Dd9|pguxo z@$S%;^Bz!gDTF1kb2jnJv#AxDndb1+>}V$e;282a!&YT-Tk7EpVY(Dk%)jtImZ!;t|5w>crDp8$o5LV*jZ zjZ;YLJU|mfwUidoJ4@$%I4=&M!Kg*Qs6){%K!q1>d`!0Gd<4`UbbF8+2Y&mB8zrM< zvY7gcDf9j4nU-euxHb&}y!YQt#RrOjX7cEUaAoBz0?-L9c7};t3(zotnDvUhGFMsB z)k~a4fq=SzDs2&#HasP50n}Q^fIOKq)qs+|)5`EG1Xvt7Z4G_60O&{|lsu60B$kQZ9Fm7hWiLR73h63=De`d^4_eEB6g7`m0Qdii z_E}D?Dt}#pj;kaBirbU~4NIe>mnIGuNCzOrX_E9vMsWpY=U z5;3|q87GzVfO-qrBuQp1{OFk1PJz_v#*>IKrq!H7D8wA zzImcKLH#1t7tjdMB{QY-5r}sMU<~VD$Dcac;kUdo19@a$us8S&v;|N%K$#d)nbHI( z<`09Ciy_aPpf+t4+5+{Mmk20sCb(HsYZ)Bbtqo0L9M!y$91;LoJ$2 zs*~q8o+qGal5U4Zoda?J#Y7bfOe{wRK=icp=~2=oA7V_@8+6{{aDo9Loe@4%@m2$B z2{q;DR;b=w0d$mTBQTh<1=Lxh({WB1ATFTy_lpeUvN$pTQp-9%sNh;k146$v_2z42{cRm*UKXI9 zpeus%DgYIZ9d(;Kd=oR-m}@Th8i5Ret|A61oj5X^smEavtDND0I*X{{qsl!%aZ)kf zk~g+GTj(Hk?)i9`&49xF;vM=I%K6Hmof{qYcGy;?2SUpQ=Omz0!2@atP|vuK8kEkZ zhcgEda+3dbD4fFua0pan(+-h45?65>HE|h~d}JB}AZ9I-5HL&O_Xm7H!vUpl66bNa z0E_`ZiMB`u-lRx0aB_TY;PH(wl(la$!9*06=44)Unp^Nf<1+N{Yzqluv3sPlvsxC zfNTI3Vp77wN4`)Z533ew7bY|d*S?MTcQ!~s>X85h4VFFAooama|0ulC|FiIxhxbi* zW3_U4V?XZDvI-=+dl%lgt~J6N^$kxh_20o8U&0dO@&(@5-fwuLHys!kG$0No zWsqu!(h?16KpAB(kT^gFAh97cknkVN9Dblfcnre^>}cGc#)p7J`_3R0L5>579Sj7C zc7xb3F8Cn?0DPgup2dMgC?0-b12gDy5=hj?f8hi1Ss>A&Opw@64$Uv3@l_zO{zFPP9}N)l#!RJ~En3}BSz zG>sC=7IYaUezc--Yg!JZr45qsLMcYX?a?7eb})^iL~9OoSy*Cc9RbH^xzPN-B=RGH z=YpI75@%8%t^W_nCmWm!3fOQEt%wrK!E_lV8V(1Ei5y4cDDh(gjnAg>|4O3WG`e28 z7`5WD(gDC8X3#_?Z3rb+$fEK2AT^=9iRS;WCIA1Gq5nfWeBmD8srVom!X6)@4GK%d z4+DzWg(c!uG>%dNcf5Nv@P8uF z@mkUl{Ov4AEI$H?4K>hqQ6m0?E~CVcPw@xlANhfnsQ3&B%=TBP@V}8g0DliW>VKg1 zP-6KbT^5!&4S&$Muq5+e7(fF*X+>d)_%9m&mqer4j zr4)^$#JVzc871m*=rT&o0R_5@5+m4?E(=Snr$pmQ;>OfisnWo|BsQ#$JkffTtSYqG}0LOa$Xx|A|5D;b_{C|B1wHa2(Xblg<>7*ulUdw4p$dXgG)_f@%D}l46AXVKuS?VW5oz z6GK~xrE3dIY%Y$*g(c$gbiG87J)xXU>j_JQa%dbS)?3I7;35DpBbLz$C{bZKNbFWF zjibbmdGG`I)inMui5*%;^Z$EE58%HPu=s;BSSf@&&Ln=xsnEiB|@-cK{XaFUC^rWRX zjSEX`z@NtdI}#%~iMBTtBsvg8*9XZb$2Nopge5A50*(%b(-J#x(!QxisN4~uI7G-DtW^QjHBqVu!K*|nN zBxY1$tp=d(iBdd5w;HM3+iFBkwMZ=`qKc#(%hU*)8WBo`$g06wZ9u&grPK(^yGU&= zS0nQ8iqz5|o|2STg&N^{PlW14L3RN&(bt04=;a!K+1)z#WDFcH20IB$D7_SE+wfYf9NJ_f~#_OR7)t?A? zh_xz!x+Y2)6TC-AW!#1FdL&ZIlqex7vwJXJk3}eRV#Z^v)d18zQOc6gtw$=i7RIYy zq?R>NMN*FUVZ0hdC>tWH0c*7Z^-`3wB`lvHwYd()>xoD$d*Ufcc|CyfY80Uyh`dIu z)dAFJQEDjR{1mB!4`IBXiqslLyeFxtk6^r>iBQf&;WMnI@EFGHxd=6!@P3Ze1)z#W zDOZC10;%|V7_S#1wMG#~NJ_f_#_OdBHHHXziM1+#x+Y4w6TDYQWjulLdL>fJlPDo6 zvql)N*CNzdV#aH%)d18zQOcXpeS=i)Qy8x|BDKa7RV3y3492TTgz_V@ny^+IP%lL( zf5P%DQk$Q{c)b;=6+k>CDX$kWUd;6`?|i!d9%M@EXReO@s;~yxWkv093Ik6+y7uk&1r<$6C$G~y{qd9}lMeG#G3 ziM%gZs{^RdqSQRX`72Tf-@$l&6{*E1-jmeS_b^`HM5rvH@Eg`r_yFVey_3RAo%w|K zccd-=Rs5I2T`z}V|3E7KBaGLN&RR${X#0^ zGmO_SkyHw1fVwA2ey9mt*`nMAK^~hVJAnM$h1?`? z79+`nKh*>~#6)Xu5xl3!slU_&e&V8Jp`cKltf}x@O&}>DN)`#cB}noDki}id9Rju_ zNyc}m2_hs#Ywi*pp-AmN>H<|Mwn*Ie2tuUDniYT41lOe4P60yapnZ5+qF)kP1~v~j zPg4BO8Y*bcKfGp7-O9#4kKZZ}6;rEm-{cot%y^&V&tR+Za|08mSzlS2)cpCS>EkV}ty6O{t1Ldtv`c(VIyTI09_z|; z|H}QQYoC2sHPdj-cHeJtX_N2qo|>(nd-=f`>otw;Lf#!i;&%9>Vps`r26bSK`YID`VjkuGBp?ytfbjRbCojN<-z8zya zd+hbPGau#-y?kre{?~cyU6Y;6G$$|3I&o3E|CE(O+kd$Z_<5A$GV!y0+Wy4;Y(WG1 zSGS_i#+9}$=|O*Qz(ldY59P3~K!S~GxC(B8Xub>LXe&saP!)$@0IQaL&J4N#7GyTUZ`OV*E@7i(2 zufTNo(jbKvw;-iAlS}fWwSwAbM}^KVy7t`rK~j!I(X1Pe(n-W)LG`=ey-byS@mq?_ zQ$n$@fAhb;dNEOX`kyk{p~3!RlRefvwBDA*nzPKd-XX+y0RP)C=f^iL_vHR$6ke&*atv4UNKv2T|I}n~|8g+v=y`6VLOjt%dwMDeRy9*L^P~ z`<)&&UiFgqB?*th&|IDI!(YBh4DC6~ZcB+%`|1-O+~sozY6cmEJbTxA(z2vgJZHiC zhaI^#k3Y`^B?btWBHnl}Lbg{~%lcBS&ifenWZn~V2`0_%d&uHJ{ z4^FC`&3=`3fTf&c5nFs@;;&h=9?o@NV-)kIH1Vz_^+j6hDeJVbe|rAab1l}H6Q3^5 zYniZ%kRLGRXl0*YPY$c)RoBdWwM{&~?`HOotjn5h^Ro}jKfEecGCKU$`yLx&AMDaq z;xD@9u#heAk_7*PO4Pom&UV(GAzRvbtx){yW@``Ix_5hbC_K_Pa`}`vJIVdyuY_#L z!SCn0Y!Le_@4xZP`TH9s_;TuhhP13Qj$9}dKm0m0^ODd$I{o~H@6%13%f7zbskGbH z-r6qPV9Bo+mD{GPAK3U_+tFmN$BBX-eCL;1xpVa<{ka_(ApLN{I-<>@y)^V|k2y-PYQ!$P~~sc*ee)+H*w{8_8DVe|mb;Pqls zQnCZ`e*{YRV{~YR27UX?sF=8tE7EN!R&qGzwUW) zrYC7wf;4=AGD-fFSY!Nq_Msb1t0%;IJz5m~?sew6PvyJLteRnPwPog5ex*z5_Ee)% z&6dcu{9zg~FUR^XUnh9|v}&X5z_@gN`lMZzQ%J)s87DAzQP{A==*Htt+s)JKz8kI{ zzUQOgw@lMfIoAsgmu}&#>ljuIEQ&9o$6Pp0mJ zJDFO1@>>Ti)+J%XS?%juT(1qP&vKZ=vbq+%L{Z}MEWa}>o{;}%g^JIfX-sjk=`{UoL zpYN+A=aF)Jc3Q%zTN`JY9Nn#VyVmmgJSl~B+0%=T?%&(9s>pl!zFn#6$24h&(d1QO zyW89c$}hZK5@yJc-lKHbu%qmP#P`A~-!q1vvIFdTgjli_mvD}z&UjH_C~-KFcf);! z{|7y8VWxkBO+U*|4+Ssx(GKHxo39BQKKo^tP1ely5nkLOJx-+9TzdPJwKefjZ~;e*&g#kzQ-mHv3HPfLk@mb1B1OX!yFY;f`@K zEBKnhzRsoUbIjM*9e*!Aa_9Nf_HX{*+U#eUP8T%i{<`n5vSqh>Qt2b@YWa`hlMBuY z#BGP`n-ASP!s3eF)N`5V(^#ok5M)Q!ygqVsF_ncpcchDjss_YYgCQ!$5co)&w+jkWl9~*33GW;#Yc_u4h7>&l0AQ>nibYGT=Yb;Zpn(7W0y@-oRVo8gOt- zv7LBT{R6Ks>qy(CsPMx4Wq!U+G4IZ7dmN{|ceY%|ygkboTJ)Sfug-VhgF7uXwe}$$ zqq6JO|KQ(Bu;GhfICQreqaY<_P5Bo2{8P-}CwJb5XgHc*jQ@3jFT3&Mts6H_f8+OX zYaP_rdz>wPx`y$s#l-f&8zwfK5Y;+~Fc+j+k7xsHTA`MHBhRcKv-%NL`em&$z z`c?Kjo$JM`j1ESp=_N~6D9(|Vb8zN7RQ_4p=x|O)W}*D%_Tw{$9bfqBmEO=JFHKG# zO3%J+%H2{8cHvw9Vx-}6VZ(d;O6*d4es7rA9=Gt)##=r$%knc`Y)IS}^=jd^(>b-P zT8GwWcLe%qDK#!XyUS$S>3c?LAvsGe#(nT#a3u4px+m!{O9p>OQz2}3*~x$}pZaY6 zlwD!o9BfdYUB%~*f4wxk+PR{&!BeU#Gp($x#%GyTMIO&dFz1-xor+yQPlr0+n7%aV zPhv%IdWb0<2{ep<? zm|WH7uNkjlU-)Nr=*`xQ@_ReeTw29G@<-=}g#D<%Kj?w~WblczlCcU>qWo)e<{>8; zr2vzamv5$2+$i_CSzFeW^SbSvPZmFY!jNr_K@)1tWT!7`G;&(7b=*?T4J9krXC4TZ z%95$LJlX{Rj)o0OJld@iw(D6?n0}tdbzwq9va*0oaOl!D~$v9xNz3I*_|qFI(^^7dfH+1x?0$9>N)kc$vze~`(5`< z8M$f~&rI@1|8wse*JMV9-QKi+f!X!lDIZC9XITTtIgaxwry^C z|7IWA&9uj8xJKCUlPoFT;l*OICSi_Sx1KcGk+Hn!Sd!+SI6hnMQOD)GY8msRtJ@B zF}dw)*Y;Vw?!mj6>Y4nL)5q11khHzSUmUA!9BI|#;@bp{y94`RKz{CP4@ueFxd~=R zNW+=r#rZwPEJz8r@98HF>Hit)xNEDxaZT88|I(n=s1$yQ^NDZoKhMb+dU@jP*sZ$z?OGmTLl_2Bx|My>^vFKy6u8n6x)ETDMyrjFG%B%b#v8$ zt?$Bq6!e!RSw{_ESICOi{VaGuv2Dl>?IFs36)fpN*4?ZLY-<mKY4?C&n@AHf&}lAWpr>;VO~lRTNm^sjT+f*%TOcL=3| zHqe2JqO>?$uvd|!FCZ2}pEs*7rw00k$<9MRAIc&ihimpIf ztEVX4gDr^ZN!HHL1-iToEzcHcDv`8VU!dnHiPlzR3rZ=v0clfZQJTjV%uyz5=js7n z--T9U3kIl=w4*-ID^x^ltFQ$RDY^~mp{k;^8e6bbm8`wl0O-~(v<6!+SdFB;41wOH zCR)1}Tkw{mJCOEN7p1k>g7xZT?SuV*{@sPvVGGVpaV5U zX+0QkO|td{q~&{w(grZzy+}HK0MO^V(EVV%dy}-bG0<_nMQg)7%^8ZWKw3*nG>we~ z(OP7pW|#n5-i0+4XlRqHnJKXIv_)EP>tBSG2B!powBTkoD9P zWrqsZ>5+90S^@jJ3p-3OMxSJ-S_6APU$m~X;5)@C3Z@k&;0%F?%kATJ~*fu8@PCoO#Y@g)OXMEFC#)^9xZvc@r3Mfm5wEY zR`gz7v~-nL;JlU3COb~uUf0lfqSvC8vuwTY-d||M<;&mNB)E2dPmb?dq4jE%uzNB| z<(y?bB`q#on@}$vT@x^^_Ivr$TVmPv-_xz_WRJI9oG|~}rW6~^BA?JYkBPs2o40bp z>_Waixly6Ew@!b6Y!z%hgTTN3iK}N?y6ZafYxb5Y#(3<_)W{Ji&CfE*=(D)p&Ad;` zIrEMKmqJ~YUc^nlpFOYsaR0UO z$^qJ8x%PfmTTWUQY(Fo##PR*QfMd=**Ov>9XqK79_m0zPO4{#x*vu!Oe$$clXZLu| zvDk4PwmZhcKHbC0JU^r-b7FNv9#M8C4Bm$v@V^gLl-@O1l2pOV{y zYwQBQ=JiyRK4v#L^U3d_U+Yf~t-7Vz@^qAq<$)NhuVNFzOP#*f&E3AZ)KMaH^gGyq zZP{ubnoIrE2l%=B$?9D2Gn#SGY0~Pu)A!FAYTYSmYfRx z{2*B^uW`|uMNv9lODq@M9QaIsvp1~7BJYF8y zX>tG8x?MZX zx`8qqXJ|DY-xpZ7;I_q~US1EL=cuO~FAVSyoFs;o_Wm_zR4?j+iW(SiVgI(-Z?<*Y z^wU)Dn5Ai9?vO*n8}K(L30r5cE7CXmy#|seKbQ52_n^t$uxTk@SXm<%Rn* zUJl+_x1{>gsS!gbjzt z`M7784hi}Z9^d?H@w^-6+lPHVoL0BMr*voW@7|{j(mXzvUinz5r5>N=HrU{Pj=|pi zhK)rVoHvCIiYh)H_lpcD^%U&S7P=9T@M~=xr+d0BeT}zCk<_6wR=HT2Z0o7{M-Hov z`~EZet>%y|XKj{M*$j#vc0KItqd8xK&-b)@WYe={fYhdgwO&Ejg$z#=cKFlUwR5!# z->9p+cFLZ&Psj96+qu`Aqr-ca+!%HDJ^#j+v(M}in???|M20NJ)gf-H}c&U@oZQU|LzjnM-)Y?N=WgJwW%kR9-}FxLC_nCbGw`hJH{R9_8`M*u#EoZZu2diF z^KMvU=8J~~c185Rb0LFvCkxxXyT*04d10%X|7HJCu)zivVt>$~Lw<{OlUAN@osp=)vQzeTuJVn@W-tq63KaLY< zmq$f?95VUbCLh(>;=TSC2RfXHTkTK~^|{Z^-zzL8g$0lBTjr|1GGKrB;;=)6pz(~XXveoyP6Q42hWI7uW~N>=c!@t4zhA%J$L3fpaHvPwJkxasK* z{*}jhClCHoRB>%PbwB3bHtkRM_pS{v`{58}=9w~D^7QA#<^FZACl&>}?g>1T^U7hm zas2l?o8~_y4YSDm`XFJ$ImZn`F718!z$xgi>RRabz~+%Aia+@+{J~C_6yF;8{8%>LD0SzCJg=Mag5^>& z`CQszyc%KtITQHEa*@#PQNd3=KU4icPMJagKVE+0u3EqIquN@BZZPq*4wm1wt3UW>E)kt+zT(?xEd)_HZi#AGxz6)kT)G#7Z(+LvH2?BSFeTi zkJ<;qg!}y}?$NOU&s9Qfu64Y=b3!ep!E9z~+?0bCL%#KUwddi23mardeYv@BwkDC* z=CRdu?9#7&5;!(myOJ);rEbV9TYJM9p2^Wask$!`&vQS{v7M~@{d2oqR=Ooma!Sl; z<-vLC2Va#`zkRo{KINADk7sB5N*mbJ&WzX-sjx$Eq-Ggt@cbw15ZdEnajbvv|pS5AlZdt9sCF8q7>X~O;;T-!4z=Ej@a?G`)4 zjpwc0@;>0^_jH#9y!_|dtCF_IAF-S=WM@LGyygaeiTBCzy#!w`9@o5oYUhLz1-)OF zt8#A+g9D;79B{Oht-L%h2EW%odH40WFBLm4oEk4*I=G+Y#LvzNEuq?9=gjWS-~HqF z^<5>(1Ah&hUVHTC$7h4C=DllZ_dDsY7f;=)QsWyf2rwiMI2F!pRlzw!wzHg2bf*hA z{YW;$1;WCXv+aF_x2*idid8Svi~2t>bI&}vSVDKg+h-eMBaX$|diA_DzHi16iQENt z#@}37YGtt-BR_noGq*U)#N}J7lT+qCu_H2GEd?8>s z__y1`y&$@$+tFdKkH(+BGdtPiWq!4N-yaQ2r{v60DCH|jX)YV@J7UhY?~X>=SEj8i zeizwKW!=yAq1#K1Oq1pv>n+sr1Y!T2(x#ZLKGApB!PWxtP^q~?nf*XzAEZWyzD`uYn~ zwJ+Li5c6#q{qD`3gFA~4ab~ZW{lv#Emiu_!uN4;!>o;#JpQyiio_D41Wv=)am!oxm zg#1eu_AkxKI)D6XZ=EIADzDASQ%_VfopyIX>g$e!@XKk{c*|o)FSo@x#17K5J@Ym< zQ-0dIp%+bb&9_d!=NmR|vC?pDiH~qRa|Qp5Woz2D{OY-)V%PhU(aWW#G%JPg>}y>U z9l#y)>RQ;uKh^7fFBJ9mKDRdR*LbHB6PH{VbgHqwO)w?XOICN&IKL_(|5Anh>o_u1 zmKfuF$|uq?|5CfRO5l6Pov(Sy=d41xWyZt**w4vc9q<38Ow;W7yoXsQ)lSacYALOy z*|x%<+~=asPWx74xGqKiY?Tr^TpCaHao9Ec>WAzvQBJY@^S841uy=B{8t;i78j&&S z`OdJtU;YfbG$FZT?Dfhu^8LzEs}1^2sGM`Qbi(`xLjK{uR>iy|Vvj7$*BWDSf}@j{eLv>Z2FS#wWy-tLdzdTK@IUF~hE zZg61Rq|s-r23Ng5yH#`N=vrTs6Pj+usm=jY<=l=eZ-uG#uq=1zqwsAAHEPU z3jCAWxNrOXTTl9pn6P|ES>&<14lCVHD8I8+z1}!2toHag#h2&A-|a8$;C^n&IJ=`c zp{MJv?L+P_w$71U^e0s#auRh)rq-8qVgDwS&U}C2itEjtDm|L_wie9s{8(#fDQB=( zD|4>Ptrx$|c=NWdDto_D^QKb#1S`M#8*_a69`JcM=WvZfo8+PLON)NM)iwH;S$w&F zO=^dugP88K!7iT7bz|0DzwVJVuy5$Axa=FHql0JH>-okQOn;oee4;gHjKPsLa+5bl zeZO~BH~s4fgDYi1@xx#7F)xW;4X0Ii?l}B-pW|)`_2=mum#3zG%;(NMsxXX`-d9iWp;;4%{?m~mN&@1?(>EVxgp!{!S(rQ@NfC$pU1+S%C2qv z^QmXQ2`6`+32(olF!big^GUHi63>h(s(esrj7ysEXSSWO7w5JeKjfW zQ~wZoRXg6dTZa6`&mZsI@^T(6kkuW(b_$&GB3<^j>=?f+b42 z+E>`WEaCVSE;86($BVk-b6AD#cjA}z)*Am4qg<^HX1{GH%<4BIcS>_!#k$_@nr`}6 zpP0FX6xHb~UZ3Fhbc&l~WqIB7nzAi$Y;ptt+*DT#`PJxSzD;x3Tdk zuo*PQz2<|p;q8*j*P}{e6cJYKT9hS2TFo<|kSYQXWtTXDa{j`vS~M z!piDKsGLju?r77WXOuOhS1Y%DG2*O$+^5gc#90dWy*ItjO}(8mO`v&FCTZ0>o44u> zBTpBEXINca)BY^-a8{oVZGgR)@=8 ztyZ`AFt&L7x0N|zA*C+6+`M?RHs0R)!R1uJ!Vy0PYlf~jIj~mqYSJ;eS;GS&6O=w} zZ|l|L0srz2I5xS1e=k1VE}NYn{5gA#`vcw7YiBneJUMt$>V>ZdQ^a<-E!J)=FPdef z`f`=cd;1ekW?$WC+ zsR@lI2Fj&eu6(2VZvB)QTYW|?D*t^yd5W9nnGm-T?nG4-B45^qtoZP14fOy+jqeg+|LSh;xPGT#py@zQjj0<}M2##nzcMfN zdEvG(d&S0{wVi6Z)pE4K+iP48Cf;T7PI5>ZjN|C1zjX$&3_=-!ftU{C&pU3$OAiys`g9;p>K{-fD7teDc*VHcU@5ua?-w zdn7S!Y=^&IqvnG02#czXH6A}@78o5cel%di5~5d|*4g@axL5N8|2+5II8=Hx@lqji z&BDq*C468)%>7M-%@&=@eWRad^ZVxxTYEgG&+a?J5_&)TwAn+yCB_OODiU z-l)05u8*wbnZmodb~%?9+qG%Dsr|mqjkB@|eu-e_1$W0g#){q@uM}?Nh+qF?*O-QT zmseS?^$S@XF)(QJ&vRxAu0%KgJbzBNddceZ}U%g}4+9kB~v z9cJ#n;aK4aXE_PvG6F;_@K3BJT|Fl%wXnRKQ zFS`U4Ne1-kxi(-Q+e1Uy`j_m*H?LDBP zSeo}?m_y@FkwW@m=j7`0VTc8a}Jnuy5@M* z@2Lr!fcN*l=lsvd@o{Fls=BMItGlavW@pU8nj;G8gfd$8($`=%o8F7p;0;kf8BiH( z+MA~?4g+;%Z++Q$?43aE&>7Tjee|gdSY97q_7|vXS=a%$lYgpzTu+IXuM7FL?QUj4 z#Y<%!7ldcUO?s&KXLrp~b8P=M^_{spyv3Oj4<7XVajM|r*zH@cwCWyg?d(^m+xm-i z%@Ue>y8ntlG8!~_5^<<)r(c{;=ivGGkH0+8Zu0JS6BIRkw)Z<@Z`N^!&HcZ)HR)6S z_;x~Za!~5F?7m8uwuk1g9I&G!X1^}bFDmv*;rL_a{VtT5*XyR=#$J)9tB39=m^h59 zx*?=bzs2Xqw!8H!a$ftNH;39D*ysMTpjJV2lk@#vPo6R4&`|flgR7vEb~R0dWVsmzgwG{kW}62)O21_+_xoyPRDqp>sw}Uv~Y& zk*bL&r!0Q7GdAP%&Mi)u{kp=sjhgBEMxJgVQwm4+`8>JOZP)BAl`@{>WUo`*y*TB` z{=&qq%|;F~jsLiNe)|m1DL3A}QGLpn`R6D{MUSk(z1?d$Gv@We9lsu_FoSiY7VM;7 z#&X>QdN|rRlRKT5T-dEH6HALqGZW-zk=k`%d@CwW)n-V1)CA!E;x1QV%G1 z-|eYG-omvL4?6D1YFKvI+o(A=+F%w!8S3OU6`M?*4UV$dwaEJO3GG zyYf$q)m{^Oo`?zgXPDRFp9!rmo>On1`@a9n6M;*r?6TMvvU<9epDO5#j-6NPsyBA% zmm7A^=SA9?4fybU-MqS;r!@Inb^6`k)7~jF!v-Gi^RU6RO2g}xwdqoQe~|yo-Pg-k z%^A@5v$b>WoN4E`%s(=_K4zir(67ZmmOC4@JYf5-rt-tgYUu|WTKs-mH?+%j#j2oI zJ60_4I%ZuED>Ev!rHXx@{i*HR&G|LEPpC`y%`yQ4M=Yv7XN|9peyer$OYia0>_C~{ zpSC|ax8cW^pe2h&r`}!BbzRlSCWp+I{Ty&KeEq)@H_y0f)9{wZ%3fA>KSR^Zr)+w1 zxuAT(;Tf(EOa|kgwnGo-m*1q?U)JHXCyxt1_@?{z(XYd9Zo1H>Z!3p!9mchuIs00x z1`&@F6fZ*LWNaictBZNB5!e)SsHvD-a1aZ%4!m(J_xw^mobY?gGVF#EvyjP0hr zGr~`F%X9qd@mayU=N^6HQ5aJ8+;3yEJeze3$2IwT?Z70X%<<`tdBJxpRC4kR z>iVQJ-Q6MmE;QVpGx5v67usI9=sxQ5Ul#J9ZGNh4M%go;|8%!-`LX!yw&g$jkKNT| z_S-34FZ#clyUq4rx2t6xRyDpdqxw7NSHe?q!YoP83QB(_PfBf^yMFfYAAK8inU&E0 zOC6spp$;o%DK5BN9sVpyS@!kkC%(>6%g5M!ukKOy{YIbXw<3S%Ui>m;(RJswJDiNw zqwZlA>IwZST$rxhot}}~@^{y9w)3xSSkWjX^o{?Ad!@(Cdi-`(^pIzhj5~z=s`+a2 z;(~Ee3;Nu;Vx;UB*?Vc1jxn9>z56t+renX2y82bUJV>^&W`*1RYxf*uw%z^I%}Pfb zeobwo*mk8|XzJly-mw;xvHC1Ge$W!anZr^r)?>OX~L9 zriULq8~7uKJ5vAF&fX?Axn~ZpYyUj(a>J){zJ$a@+W!7}x!>UCQ_ZX}gF(M`)efx6 zQFeIq#j@S_;Z3Xh)VJ9izw%YLFL~j9eosTptDLY->|*OTZu6*y7jkzlYN&{>_t@Gz zYjuU3=-yK&#%^6_Vh4`Slhzk94=b{?yfe;gm{+LGtZO?TnhVRXoiseel+e zvaf@Wn+zNB&uFiYpZ2nj)h~|!r^;fVe0l$?o^?;fuB`kk@6@vc0YS@m$xrl*#pKrq z1Ki^%{V8e(^NJQGKTy@?H~!9S+kfxyvPVN5UD~vg*)_fuQo%j@SJ}so1>J+^uZo@R zCogb(-zhWi&A_f#lCMnZcX-V2Gc9f$UiEYFO1l`0|C%Xam#*@zeZDmfH>-T>a^GkF z^emfT%?7`IQ!e2Cgbus6rlx;a_dK(7V3(ZL{cY}>=H{BJZ0-zc)8OOo0}UI0cDS;s zdY_GjKd}Js3;kT`8LtXDW_xp4*rAghSH28)|7`4j_}H!mt0y-6H)6nR*Xw15XYD^a z(6QB=^h!DEZJYaUvT4=%wtD{O*wr06R;obmDos&)boI+z7gpQCW5}GukZx;MY<)MY z@@7u<^zV%NBZjwnG&f~_LjAsTKaT%6(&ow1tadLNj*0L+(zQ)lS?;K&ey6(J`!g>h z6$|ii==bXOVUIRvo`0y+=jjjGvf2+EeAkw4^}~AA_JaONgMZiCp1<>M>88p~_1-MK z(DJm`RKLH^J_(&XD6!P^*AXTc%@*&#bhkN zNxyExc6$Z;~qgIrt}I0jiwosjq>fApsITc@(8b(hUjH9q<3G}mXFlSSu= zh0X;vdww*Ux?|J%BjfvS@9St3fqOgabbwH_G`zw5GzT~6X(SUAIo8!uRyB*0+PuiAd z<`=(ru4SCf?kkQjkB%(+?s3~LR|8Bp#jN=dIj&AM*LqJ7g7k-e@%GR93_93!NUPu5 zD!=*pypH*$tc9;%*aVdBIlsn~)Y7v)H5l&LBx$B?XxAF^;wEzS49t##~oSXV#up=IJSKmL2amYL_=n+wf--mhG7V8__+ai3N+Ti}(icru}4wQbYh z-nZE?x!tT%dDV_}-v863hSl*s&-Y*To7w!-^{)tDBA{O_SM$Fge98-XUU8b@Rrxft zfF>E{?xX%3dF+o9G249RwZ9P0{pdB;D&8*H)wZFpUET0;PaSjr+Fz-M-S~P}J1nJ5 zGpTjNy*i#cvheZM_77biH7RIN?#vID$;E^lRFk(ENoM) zbDP}Q8*NAawQuCj2lJ1wiip}jxa%|7)K^v025qaFitlz+JAS3}z;+R@8mH~;un*x& zlyQ~zCN`HFu*J>(X%_vV-TIi=?ypwmUHtH*Lcq?C$?v*-@k*^cxTSUY)Nb!9Pmlev zYfs^U^mWz+Jw3BO?Clotpkd^k#dmd#aEjd*M(?vx(7t7i{@DIEn;yfD?K#n)elnn* zVNI1hRS^T~N~ON+IrdJV-XUtY0s7PnEN_4?Zz(}76{}CZ#KK~EYU2T*?l7QUVa9Ph z^$k%EG}M>9#!5Hhsf%MlRmSO4Z?H&#+98f)4XC%6bz@%k7g5t2>&q6h((ycXQ#`1N z@%q%eY>zLl{ivqYVos4x4HVatqvYBmYfMoIeA*KB+ePgNv?`r3f{4+~7@ zsdtFFC|O_j9eXZNr=)<|K1HAUfz3RpR9BmPu-LT*~Bz`+23rBK<$?f zs(rdX)tJSn^RkvhKs{qXm9gqWc1$}{w-W-Kd%mvzVlwa|cC zn$^kVsb`5gIa6P@47(vvbFx5fl%-EC$Hr$Fx1+CJb==h{+t{@ndzEEuKJ%GNZHCKd z_|m6|bDAoXk0B=1=ih*xiyMeWN>x;Pd_s)Taio>ma-a7s>yi%&{3vI*tiwae$1lB!Hgi&v(eLR$G<_{eA( zV+)lsafmV%AG&D2>(_W=2N`#(*Di<2#z#0!&gBwflu1KStg{lT(P!kQQi0|A#tJzP zz|o4d+hlBorf|rIAtYh7{BUM@magjvk~;i!A^vAucjCCN46~XdtvJPZ}KJwO-2SQzUyq>yG1fG@(-Y>_bmY z)JYbzuRKXmR#)ksNV5Pv3P-9CRU|z&A$~yCK-Ed4l_fPictdb|rn7^KjZ-y-EOl)b z^kiPkjD2>Y+1z<9ws0xh%?4kO;%%rFL>De)ie<(@T;;r71D6?}@hASYa`gXt<6Zc| z^T~4be}Z)d^XjAlKGR?;94#8MWHZiJ{p+{zN3==&G$g!AS@)VG=xxXJN1K%R$G_tj z_2d7hh-u_pxh*`hE#G*(tj zqu)~zUunQnOq(n6ks_xkXZ+0*)8IWu2gJ1bVj3y8A891MfKS5@zRKZZsK~ewi9|$; z8D)!UOOZwe)7M>`#k6H&hV%r}Q6l1x_LcCDf4}}fF>QsIM(=``UTRGnJj6%etnlGK z8-NpGr%m`&jP&j<+G!!i$^gB+oNBa2Osj(Pu}CB3X~%>3$jsx!H2UBUrO|hvN{dPh zt7v?d2x;_@3{qabL1d(lm(&C3kJeOF0cxYxFb8Q*%Wlfh4xkr{(>HClh-vmXrw1A6 zZ>yL_?~<0jUqN5*Az4S@w#Y{dVf^zkazf%QF_Av+gMUWOfb>&5;lUQXW?gjL-8EQH zMQ$KlSP9-s4pRmoCn*PzW0VK101lwWr1!4>1ReqRfcwA$;2rP*_zXM+E&#^?a-`D$ zIZuCJ53m>52c!ThAPq>D!I6jHB!fM##yP5UaXJEM3pfJgEA-8h?Z6ITC$I1IvLWz%pPBy&RJswfqAZ0np2DmB0WX z7KjJPDP3Tb8lr_=aik`pmz}o(+5+UH3cv&K0ek^Jz#pL3zdHfW0QqPIpdwHOsA_`t zs)Q4I$$VviURu8p7FYx<0hR)Jz%t+m@D=z5d4PgE>imXOAX*OZ~~z3-q6>6MggONF~C?rJr4hk2POa$fl0t*Ub^UGtz2?6FnVkVla89AZa@05+hy+>yK|mnT5@-fA2ZDj7Kx3c@&=6<@ zGywc$Xn%j41OW8`FTfk{1nhzOC@cV|f^$otJYWS_17?5;a250$z;)mva2YrU(5HpA z0!@KnAOeU4qJU_iFDejDBWY)#3(ytl26PAL-T$?K+CUw^6i`6O2L<{9fjF;*V`ZQs zPzk62lmcFY_7->ryas5HdjmWHo&zs{r@%8neG~uP2U-EGfl#0g&<oq>)( zCm;;y0(1qs0rXCoO~6@fIj*21^5im8+d;Lg#Zo5w}1!0V_*&np8-_Bd0(Ix&=cqbbO-1?5WVRd zh0+tY^qWu`sq0by{{g~X;148>0>%J{qWI4`yoWho04IU{z;W>H0(Jv&z#u>grM&=e zfPQ-`2Omv*n?M_n;{;$VK$F}^U=+{__zU!8G9^t`fdEZVBs2xYNkCQL60REqO#nJ4 z`g`CZa0j>tjD)h!sI%iQ*O%s*nriw1z~2Dv;hzNZfg=EI_RxmZL0~^Xo1;4cn#1Tx zG@9UO;-d+Xo_wHn2*f~5t3#7le>eNj5`QKppE0HE>15ujO`!U3AWvw-k5r_xkfEXYQpy-UEu}(lopaakzXa}?f+5n+IYaj$@1+)ZO0L_4= zKrqk*Xbdz$`Si(6`Z6wk44S^FN#CUAKWgcXV=bU2;0lxhoB^s41wKvy)sO-ss*z!h zDZU{-qT2uzOi8koRs~R7<39=qDO#cskfJdPekhGXI4PZiBuXP5I;V^YQigP-;7Kw$ z(Wn6FT2h7-A({&S8MQ{k8bSi!R#L`N=29))z$0ZyJWhaAd$J5=F3CvNpth&NiH|Jc z1$Y9)=T7ZU8Px^q03<|;NCIS5awfxqDKn`cI?|*iU6Ykah9)yzWvL93BVJO3$|;NT zjpP6cD*#f4n21Q3kV0fCDI>{@5)aAIIhmRY_5mbCC|$QXsVS*Rb(>I4g-QZcC<)aE z0st~6nU#1*YpN0Pl0u}YuEm^iO-hovDGy!CiEFUm-rIC`B;<=P2H5*w~%2Q2R z5;JK}f)W!kP`XrrWEsj#Hv=kE%A+&R`vKj6XrL?51&9JDy*ofON*B}An#2esMgqhb z4)g;00)2qqKu@3tK{a-ji0E&cE zAO%PQk^#zqG8zn!0;GrvXaLZdAhkJJO}D?3Rk8uH8u>zVz!o6uIRTPSWTAY%8<96s z+mmBu0%U$_;|yR3K;4kqU$;;PTvPKDR|qv7IUMCj`H(E}lVYTVB+IuyB~am1sBQtp z)rty}Y9SRODK9Ba$_4;K0jcjBT1-?xtB<2iOE`1U3MYnTf{pvFUZVieZ~YGKud1q@$GOZjnye>;uT4SAfgFCEy}(0XPqw z1J1I%x?Dx|DV&}JP5^%a$AM$OQQ!!07{~_>0SAEtz<%I4@CVz z54a250d4|P&2HfQ8gQLl8 z1K)t*z-!EX$#2fGe zJOLjd0PqL=fFK|cXaF<=$VyFd3-CT$?d8-GEqN z0I(3q0!SI!4kSf3)3^La;vx~)iv-g051bDLGJzpLIzXAE0VzNdKs8MURKQ>$RXoqY zkqV*CIs(UBAO{!@3#5j0v%#rb4l5-?H36dcubK_?PnI?fjW^MQH5Tz~;{fZ2eg zAQiM6*UJD>C=XZ)ECCh+D*&pL1J(j-09aGaI}e$R97S>-Y9BJa)Fk9g z)I`*FgHUh+Fc6?YWCzmdsOxORPffWU$9=$FfXdhdP#L=c;^Et0H$zh5fJmeabTg%E z5-Kh&AL$26ppgR@DBRftG;8C~0~WX;PuYQyMq{`~@5bjsa40kP{Q{ zX&f&A1;82LJa85`2V4R!0%Wanobcgy^-Cn&0Z6D2xB}b;ZUQ#|8aA)vcn!D;+ybQG zl;&ch)Ad87QyzB#Qk3#~0Ne-e0gr&Ez!Tsx@C2pv5b#%aHB)$VHCaz@ zuCv-6-G1lk;eSnPz5lSeaX%l0r@~X{*yTaFdUt2S)r^@vK=D*~1uE+Ekx*GsF2Bf7 znJgZ=Pof0y+Z`ms?SJ3t#fV2WBuafgFtG&XVbIw&TSj%9AyK@1x5q)B${>x{+`8VI z=lmI>qCwz~Z`Ea%le#9)@OwG-i^(w5<_okBO0c1_j;q1QK0zoB1S{v zm5H#S(XaV=vV$M0P`i68d;(C{G-ya3vG3FHwPE{zb?1cIn0WabO=ov~xawS}G3(^d zRpVN4tZ{v=n%#6rRE0zr)7G7;XS|tbWlYkRi&~ORbMq82)LmHrJx%`Jt8Ivbej!oC36(`5%)B znpv2QKOS$+aq3 z_m9Z67IMvW7-8cY_FxNg^@B#fk5Vr@% zmN;H0#hhB;__!3a4CJc$|18BXxNQaHzE4t^C%Q9D&0N zE#4HAijW->Kd@q%raL-lWxJZO9FmO%Mq^#F zOKT|)%~%JL?GFP{=4Z02_&yEq_+HDg9Ew!|W#7L+M`kBX->Rj2HDe1QYiDULICkIg z`6EIrcE2QWkU`Kq=XuS;E#+q^=FkY5xgqyz zC|}jHechy*hlXo8in;|g6}-ZzkvU6%tX((AQnxw#s_&fi4IG+XYRn{awv=)o2M(-f zbNd>tE&uJ?)Dc>a7O)6W600`M9H)MEK}&%{zoFchL)Hl#UAH#KnegX~Sy~PcGj^{% z+)#4yJ!WiL7hGGKvy{d-N?o9vIkW1GYsr1lMV7YV>2pGHfOx0oIHHHx4aCvSoCP-_ zvKiab6i0}6qI7uX6iP>>7V63w@G;9^E{=Osnq>xa1GqyL>|QV&{tfyCIqkW5gBrz6 z_&%2J8kk(M@U>uyrX_R0YXuIiLQ;W};s)2ON;A#|mDj7B$is4qp&3?Ks;DSaOqalr zQJ;nkLk%QT!DknfNhP{uS_4gsw47m!EjMSm9g$D*m7#`yOJkc!{D^bzvo9R@93yA?*Q(^jl+E1i5+ARoFG^Rp}3@ue{p z9sdq-N+rTDOMBqjuq4Sf;q)|$7vuDj$xASWWCF?JhL*P1&bG9Mub|X7 zF(Ag8u?@sjLK$bx=5z;DDoV;y>JL(*ORa$6A$WjJkxk8*1K;fo`jsRnX(4vc|KN58 z`WgDKq@a|sWD_x+I;aiX-Nbv1s#p@vq)4Mqn!QXbcZAbRokj{Uq-&{s$)%+}``?x$Hm{+RL7X3bB`^8E8WqL94bxFmQcE(Q zp}JBVNa{*GP?9s`m#QN*lOf$OAF25yK7%oWGi)wHdGwY|U15H)ne37blUAi`OVv+wpjF^V)^xxaX&>m7tNIFUums(azm-wXKY0(Q6l@bk^411x} z3k=nk+)L_pXcRs?m-02tN0OKLB|fQqL-&%>ODbQgq=6oG`3SaXAz!Y_*WPa@-9wy* z5Z#OB^0Id9Z9lYoWjod>98-{sov_{>a&B5)yN;I;Z-SHGCh)am?fQbF1vn^}eqJux zCG|$czaj@h!!>p+7aW|Jr`Rj&KvTvsLbG2Hm1ceqE)s|$>o4ls0w@5+ECF!*b9JJe@Xn0ilY(f`W_>wii@s~YI zB5Pc-XRpFB%-ptTPW=$2JryP9xSdp{SLkw7lz{z23IE=Xf`zwjHl2CdtJOqpsl}GY zTU64ggt}-n_LeNlNu`w_fi@`C=CpSq)n008Zh|w*@6YAht*Rkxlhki>`i=Jjn@nhq zO$CzJT7ylCfHhXtU>zplC|rBnZNh4u?AI})?h?NXn}3OQt&a^%7j}mv&bhF!5wM?B z!(z4Kmx%LRSwti(d>a;~%^I_X(+gZiK3OK_iQN)kH?}DftBK+kk9;_4RNPuYprHT# z3t7A3)>#4vdZcF*axZT2C~)j4W_=}4&|7mzwzzecz)^JBEr!ro&awi?+N}^*k6mlN zE#I@#*>kkc5oE`i&xuCn#Vyf9#fn*y3KRqb9Z0rlgeqlT+~Q4;t!&B`Le}n~nEN!3 z1C!b}|K+Mx40Gdo%DpQ%XmPW#!#nx48r|{HJ1O^~vzSD|qSXO0r~g;T(!%$6#YP@& zZPz!`$`-dY6g0zHJpr8;14io#F$m9v406v0UAwO?^uJ5CHi?R>CDLOZ7C z{VH|sb^D`PCF918{4n=;8zC6YMUeX6SFWTmQ&L%K6Hyhr?X`r_XV==A&n90uQoxUa z{ETp@7F$f)0HtcP-2=J#c8+xf&c$Q)HDB}7ausKs(^o924UIvIq-6CH7{yr@dpBKVLEbTcP6-)7?twQA0I03SpJO9LBZle$R zTTfg0#X%N3xFp*e6f&AgPw%d0OxGO;g=_}Oe0MepvUcU=g2o*@jx4Kw`e-GwZW!Nf z!wpc_l=kT{_Sb}#2qJPf4Y~6^EcGIW2@|AX!pcp- z5lxXB)~jlqef#=moN+UxK+W8Xs5^E3!E^Ke%=zIe=ZsMmem;}dJm?7&m9b8P5%Nh3 z9f>G~R#Mz3hGcd{hjJL2-$6ycpgmU2I#3M0?22xoNfOfPLW*6b@DJk`ZEdmB$=n~D z(wlWiLEERmw`gW;{c8L2zAsh>Yuhgy6l%9N+io-{^>HWmB;iriUyR0ivxShgE14t3 zo1LfJOW=SF|2I3TpTJ#7nT-efzaHLl$x6=H3pXH;kI@H_;(z3j-7T~4e-K3&ujwIG z3QN;Z_x)>Ie#7$)a@xg|B1@w!{+y#TXMpyfycs zAZmcs<6kRlM%E6YNsq6W(MeEfjBvjd7^QsCbRFM&`Izu3C^QXEwYVKnE-}+X=-0F` zD9#vaKLvI9lG}3tY)!6uEvT-0PC;V?;jTorMtHIyo@Mr0vhBi?BsV`dUMeD{=we_I*X<@3P97UFM4ty~&4 z&oC?VVHawI4hF^95{&6;w69s9u-v$F=g^|{-Uk9r;96jSKUD{X7D^}0ID{T1#mz%2fOQ-K+Cyf2Eev1C+{;S#0aM_tNv|-b7Ig1tow~5hTxM z^ZV~IEzfC%)M7#9sYOn=|l@x!Xmp&;wAYuIpRHho?5FwNOj>3JNXZF63F+ zAFKVmqn1)WNU&Vp3blQVCqB&6Qd~fx+!7*|{k}R~y{D;`6etQsRr$AcdB;khwUqXt zP>r6>Nqe8y;8Pk}C*{)7oL916Wy}K1Q%x|I9%C{}EN`p;`4F~xGZQBX6@k8(6GC@~E zWef+Y>u8{eHa=C7@4X2X-%wV*8Fvk&aUR zItrXy;_QC!?{V=4IK|m%4k$D^eeCAgJ^xS+VgQuNZ%sYu$c91I?hQDolUjORc(mu3 zZ$EI*ybhm{bz)nHqv#d}?O=F8^T06nC>?rK@65c1;ON?!aiLI7TeE$KKby^8*}+1t|BiU05e@_|FB0H8>(F zjCI>IW9TR`ci40-C>22|H+V{On}?IWf9wB{%{?Y5un^Ft!yrvCD@?hk#un)`6LZ9TqS?!_l zV9RjUcPLpbT*!0N?R~GDRqi&T#<1x?V>S&O91CabNMcPmyMt^0HkN%Ba7v9&Q&q`3pFJFC)D(qj;+!qwl`aY3tQ#RUm4tgVv4%JUi zFI_l#3t8Vsups*DzsQ~I62+ zaxbqypXdvtU02>c-UAeR!p0B!LZ&)o&aExuzGmOjjywemI6N#VzUv}<`S>@l|2h4U zr}!z4Z%GCnsv@q?#!K_Q!V%1PLNd+VPY zIJMB}K{9+04MJYjr+tjFAVgNEVjeSa%%*SUi2_eSZyy5+O_1wK+m)}Ya5x7F?1pDE zd@|zVqvJ5S6(mmivb^K_R=f(l`=>;v#mNULvo5L*{kqaw-4G9{@VZ)9bEbD z+@M3|G$V_n{uNM21&ilB?3*l|L_Ja*&Ei$cOlV=W#=XbQE)`x})5=ss`Bc}qZ^Lp; zn(V+LgwG9)7q61XCL~80WsDl2exm4@PAyIj43Z0kXke-K?3beL)bzhV5eLO$c1A=Q zFUZ(Hre6E!4|29#MnHvi23gyvEhw~Su;cNwo)3Sm|D~nGftSNkOaj%xL0~GA~=iUwK;NSIK^JFdMGAIt9oOHdj zX7{SoIa7OFj2t^C{zxpKU)|OPL&x@~N&Z-HmE4y>TN#ODe9j zAYj7y-7Z;}SsoAD<-4_oKI;F_`|Sq{@#}~U?tNk-`hJ5Do^Paa!LaM`1$ko+#@_=nd|xU1V8QC2 zeSP=``0xO0K#>PFLGe-es%g|RdUl6|skqZ)ay-C}*&WO3Rx}8`MLgZo_ z0wuxJC64#S`VTfa@#uVlGCdWYvqz&pCWV*Z)Alq9A~!+rN6;QT8Efgl7QzHqI=SIr zFT&>U!%`c2oU})vC#)yC9)_h^WZBE1_0sx&7|U0TTB=w(3G-#qJr8)YmqLx271?p% z_m(h77PH~tC3Fn_H#junNlzJb#@<+rkP4AXm3$x+y#Dg#*#(8or*p>3(u69esS@I& zkZY?Yh3l48-G@ldTOmVxFnK&z)!dtpe*f=1r(z5S$D-$ii*Aod+WyZIjvDsgJVaQu z&HC$nlfdaYG5shOnhGglOBhz+!Qj<%R{zAp{-B8=HedaZ$_R zGaIk)k3R%Tpu(4J8O}LWi;hbk6dx0r8k;{M+_s6wUS0_}9gEB1>|#4YvN9yyujOAh z8YCYIs<NPT$S0uox^+7}SAarO6+Ao*G8BES zNxr)8!r*dFd~W36%sQQ`f-aA$7dx_`#e9lvK|vaONaXy*4|_g%I==-rHL2!z7KS~} z8Dc$~-<#r}(Jbo6>Kxi`gSm>j1}OA2crg?rpk_uTZ_yRq-1NdQMIFXqb5qUl;G)Na zR8%_>qJoMlCuLVMrC82%8xr(Fv?tZDI1P@~iA#0}s2h5Y(^5F4R zFAfd5tmRlfjGYIE`Z74sP`SycBU+a0y77^gqojW5Q&K;KDu#~5&yC*XSl@Gn&5^0= zdR+_O-H+}VQRu1m_BOH}A0Oc)&?VoG6h@;pm8P)lqeowA$F_>2 zgt4u3!QV^)Cwza`x6OXp^ zo{!bN^r(v%jM$wRCyeH6Yc6SX>d}tXoaUB*6t4WgT8v^qf>W1VEkjeFn<5nSqoMRO zItWcUA=Z1G7H_t+MNdE=L$P-np06(rO7+cS94~Yk7cTS>c76$FBKj2y4YoymL*p6) zRB~lzT54qY@O6H@a?0`>yc9tA79ZwPD2qjI@?gX|Mo#9o$+Ke`(j97aNz&4wYPED0 z^hE=AsmTo5MP2d&fAa*fr5>f%ZIdITf@#eCpKJ;l%={Q#yh~_R^?%#|DY;u1HXdKl z|KZ2Qsi4L_(*KVtV4mR}OZr71b}aaY!JV}2AkmO5{f3VppZ=fj&Ilbs-*P>x9R6=i zS8|6a&ZuNlc78Bd>A&a_CHr5=ouy>AFz6EM|Ef!rJih(!)z zTkZYrtH!i9?TZ)@t400h`tMpx)BDw$b-UF46XTQO6XR8B^9pC}3>))AxPipqNZv3> z7}>(F-ArEC!dO@t^8?xrP-rdq=+$1Ee5arIO%VnH3JZ)fl2cQK)fS-$QjLIi@oR#He+;?f3Vs^RZL`H+f&_#*ZZMseCXh?;^u zDO!S`HnzUmas4yeW~0FtdY7Nd&ac3>tvZ28N!0*^Ti04DdUZ5Q5l#TQHYaB>2#vutX1#l z)9?ujnay(s8wOcU)PikVh=)?dn^C0@IjLr_c8j2u8adD`v^jqLm4b=~5$N+;VbL~a z28$R6j+--uHtTljmFv)Ct6ty`_xB9$aRtIsCEuSK*G8!R&jjNwDK%Q$L^iafq-Lze za)zOxBeR6TDcW~uX3)7Frb1i-SGwd!%>0Q zv%0077ala905ut zP?lcUn{vT2X$mN`nc6T~ST-I}`(DHN(w8-sAx=D(Dia*@g$R~~xLV5U| z!A%lQx)mZ;Sn>#N<9s$P4|*S%FWi_~|KZCr&ny3&6t#oi=RvU|-x#+<5wiQq8J@!T z)|Cy|!;Iv;p)9_*rJ3IINN3;wj&%#YS^dBnZ`#1PHL6appY>eS@gg6EO3^YiO_`b$ znb0LIH9jep^iZQKXIlO;{Ka}&GojDS-f6$3%GfP#YFtw| z+I2wJz80gl9~p;hdt9p*1YLV}r2VRuB7fGNowdUX-d^8=YZ_8IH0yCT^+@2A+>n*0*e~I4v@4Da@$Yw1w@d8@Q%1G@-_{DmjM-EqjXV3bUH)TuB+gB z-NiSHH}Ud1)GF|5dW(Grc?vAV0d#cGGA) zQ`0n;So36R8B>*!F$k!Y(dlVQ4T~y1Hc6SPxx`!J;|Jhn^4bI{xjNqt9@2yyEL_sd z0oa|@Ts=!+_?IUkT37gbGRHNXvjxu+of@B##)8*yzRbl^X3PG$!@2Gnx|uuc&FZ}3 zY+F;kJmem9kYieYGn@-Eb&yqOo#isOs#<$cHoRd_Odtz;$~m+B4ze<=orA2b z47-%9kAtjn_J zcMQN26`$lGKF7wwE^&5h;h8q@iK%EGdX9{EgT*9|$oNcoN=mf9uQnwqCN()eMjn}( zSX^2$oS8al*o4i9PaH_rnsY6qkA{)# zq-PTd6iL$xYSqy(uqZ-}07Gb*>*uB;8sghxIFSYDi z%LqORJ(02IT+67fpg`o^RKv<&X_>VZ)bn%=yXg5^0mIz+?xJDmue8i^O%;XQr7ox8 zmlCuhh6;&&S0f=_YX!6x7s?>#({PvMi2|!+aGfh{zJ~S&vnE@dYZcmK!Q#_<~F6TxprLdP`(UZ@p`+ zK+)U<1M0AAnYEg0W+SMrIp-OLX=_*78g7y?A1bhWUNTb_u#SsibDwawyN;~mvP{fW z!uNZa^IFbfSK^k< zrIM>sA~TYNJH&`rQ_v_0$uWrk{b;<*y&Xt@t2K-4wgq=}n0C{wBVj?tQgST;ZUixVeHQ+)pOLwZY z;;iFi&e>k#N>#=xDL~S@W^eO3H#Rj;R>~VsNP#LnEQR6BeZc2$akdp)Ie6=Ym+AvQo zIWb+85G*fNnlG{#d6rjOR?*O8Vu_F`Mgpp825mWCqCtT=!wlj!1EMt4qBe19X(_58 z4-fR@279>*z9n<&G@*_>H7CCi2sA82PXircy>yLu14D8B>gmYq6Eqn#Dmeqb!HUg+ zr)aV$rf(i!upu*9Aog5r^Tfvr==yZdnPh_SN$}aR}I*da%=*a$y};x=TtChFIYr?%*|0} zatBrCO3pv-%s&0g%`n%@q!c!=+uJy&(lo!+rzwGLUd>f^p;dZ%T6}^^n?EM3B!nB9 zogQYjj&t&pVgbEC!xukhLssIpj_@>~ctMp)Va}E^`#MFl)~kK(mQr2j>Q-!V!lsi7TNujJ$Rt%fKgHM4Tp~Ly zjolwBPcE-YdLUUfy|07_-&+Z zAGjLTrJXK*0|_~4c9PiPyIc)d!ypZT2Ok6R4ya0vrY#=6y3FPmS3!oKFfn6ybV%~S zQp(iSDVJ$y|aAvj^QU3H_UY0tM|L zkWwP?<;oZ#csFy9Rf8$X@oY-8nc#_zy3(3*gv?L|6vCb)Yiuu5pdFi9zzg{1*!qd9 zQLUt`S@}nBTg|o}OFaWe!lgNz>>z8!NR}xbWhrc`v#dUw>?$*3=UlP%33O!c6Vm490--e-&ODlJYmAX1ekR}M~(Oi=Meft^kN!MV-0kXd1?61%g< zxf--iY?Rm(zG9Sx`toj1GTd@2qKNBIA<@?IrKmVV9C%Z+L1j z=LIXc%WAO8Zn7#Y-(6e8b^atz1J*#s@{uO~L!`39VL zle3gz9VARVG*6WsOieCuBcjHpyQik|!T<)caKaZPbP-K#K@?_eCbM_ZOG3ZV2|y%q zKBTFm$zJ!a4cK)rg*wsrVy|Jx4426-9_c9P;>9BGb50%_7UBL8@)Ax2CO(*uY)Ydr z%e}?f%QZs6oh8zjzr|FHP)srlJI&eoYD8j^sbAxNftkNifW3^E1T3giRWyHUuK0C* zh~`r0UlJ$A96Z}Wofj=8k5pwPMXQq2v28%lKntJg#fAvwCtUEiAZ#=Q=%6{LrL=ID zsG{^R2FTJW^ZJMtcvnu=u)3xskTvIsO+=s2bn&X9b4sHDe4g*4lbXIj>O|y;X{(pM72dV%7 delta 75945 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 { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); - if (!config.isMainChainFeeDistributor) throw new Error("MainFeeDistributor must be deployed on main chain"); +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); - const accessManager = checkAddressValid(config.accessManager, "access manager"); + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); + if (!config.isMainChainFeeDistributor) throw new Error("MainFeeDistributor must be deployed on main chain"); - const feeDistributorData = config.feeDistributor; - const bridgeableToken = checkAddressValid(feeDistributorData.bridgeableToken, "bridgeable token"); + const accessManager = checkAddressValid(config.accessManager, "access manager"); - const feeToken = getTokenAddressFromConfig(feeDistributorData.feeToken, config); + const feeDistributorData = config.feeDistributor; + const bridgeableToken = checkAddressValid(feeDistributorData.bridgeableToken, "bridgeable token"); - const contract = await deploy(contractName, { - from: deployer, - args: [accessManager, bridgeableToken, feeToken], - log: true, - skipIfAlreadyDeployed: false, - }); + const feeToken = getTokenAddressFromConfig(feeDistributorData.feeToken, config); - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.MainFeeDistributor, + args: [accessManager, bridgeableToken, feeToken], + }); -deploy.tags = [contractName]; -export default deploy; + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/scripts/fees/SideChainFeeCollector.ts b/deploy/scripts/fees/SideChainFeeCollector.ts index 71f842b..a33ec06 100644 --- a/deploy/scripts/fees/SideChainFeeCollector.ts +++ b/deploy/scripts/fees/SideChainFeeCollector.ts @@ -1,6 +1,5 @@ import assert from "assert"; - -import { type DeployFunction } from "hardhat-deploy/types"; +import { deployScript, artifacts } from "@rocketh"; import { checkAddressValid, getLzEidReceiver, getTokenAddressFromConfig } from "../../utils"; import { readFileSync } from "fs"; @@ -8,37 +7,33 @@ import { ConfigData } from "../../utils/types"; const contractName = "SideChainFeeCollector"; -const deploy: DeployFunction = async (hre) => { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); - if (config.isMainChainFeeDistributor) throw new Error("SideChainFeeCollector must be deployed on side chain"); +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); - const accessManager = checkAddressValid(config.accessManager, "access manager"); + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); + if (config.isMainChainFeeDistributor) throw new Error("SideChainFeeCollector must be deployed on side chain"); - const feeDistributorData = config.feeDistributor; - const lzEidReceiver = getLzEidReceiver(feeDistributorData.mainChain); - const destinationReceiver = checkAddressValid(feeDistributorData.destinationReceiver, "destination receiver"); - const bridgeableToken = checkAddressValid(feeDistributorData.bridgeableToken, "bridgeable token"); + const accessManager = checkAddressValid(config.accessManager, "access manager"); - const feeToken = getTokenAddressFromConfig(feeDistributorData.feeToken, config); + const feeDistributorData = config.feeDistributor; + const lzEidReceiver = getLzEidReceiver(feeDistributorData.mainChain); + const destinationReceiver = checkAddressValid(feeDistributorData.destinationReceiver, "destination receiver"); + const bridgeableToken = checkAddressValid(feeDistributorData.bridgeableToken, "bridgeable token"); - const contract = await deploy(contractName, { - from: deployer, - args: [accessManager, lzEidReceiver, bridgeableToken, destinationReceiver, feeToken], - log: true, - skipIfAlreadyDeployed: false, - }); + const feeToken = getTokenAddressFromConfig(feeDistributorData.feeToken, config); - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.SideChainFeeCollector, + args: [accessManager, lzEidReceiver, bridgeableToken, destinationReceiver, feeToken], + }); -deploy.tags = [contractName]; -export default deploy; + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts b/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts index 79ac598..41295cc 100644 --- a/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts +++ b/deploy/scripts/rewardMerkleDistributor/RewardMerkleDistributor.ts @@ -1,6 +1,5 @@ import assert from "assert"; - -import { type DeployFunction } from "hardhat-deploy/types"; +import { deployScript, artifacts } from "@rocketh"; import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig } from "../../utils"; import { readFileSync } from "fs"; @@ -8,39 +7,34 @@ import { ConfigData } from "../../utils/types"; const contractName = "RewardMerkleDistributor"; -const deploy: DeployFunction = async (hre) => { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); - const accessManager = checkAddressValid(config.accessManager, "access manager"); + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); - const rewardMerkleDistributorData = config.rewardMerkleDistributor; + const accessManager = checkAddressValid(config.accessManager, "access manager"); - const token = getTokenAddressFromConfig(rewardMerkleDistributorData.token, config); + const rewardMerkleDistributorData = config.rewardMerkleDistributor; - const expiredRewardsRecipient = getWalletAddressFromConfig( - rewardMerkleDistributorData.expiredRewardsRecipient, - config, - ); + const token = getTokenAddressFromConfig(rewardMerkleDistributorData.token, config); - const contract = await deploy(contractName, { - from: deployer, - args: [accessManager, token, expiredRewardsRecipient], - log: true, - skipIfAlreadyDeployed: false, - }); + const expiredRewardsRecipient = getWalletAddressFromConfig( + rewardMerkleDistributorData.expiredRewardsRecipient, + config, + ); - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.RewardMerkleDistributor, + args: [accessManager, token, expiredRewardsRecipient], + }); -deploy.tags = [contractName]; -export default deploy; + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/scripts/sprl/sPRL1.ts b/deploy/scripts/sprl/sPRL1.ts index 3b70243..021d706 100644 --- a/deploy/scripts/sprl/sPRL1.ts +++ b/deploy/scripts/sprl/sPRL1.ts @@ -1,6 +1,5 @@ import assert from "assert"; - -import { type DeployFunction } from "hardhat-deploy/types"; +import { deployScript, artifacts } from "@rocketh"; import { getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; import { readFileSync } from "fs"; @@ -8,34 +7,35 @@ import { ConfigData } from "../../utils/types"; const contractName = "sPRL1"; -const deploy: DeployFunction = async (hre) => { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); - const accessManager = config.accessManager; - if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); - - const sprl1Data = config.sprl1; - const underlying = getTokenAddressFromConfig(sprl1Data.underlying, config); - const feeReceiver = getWalletAddressFromConfig(sprl1Data.feeReceiver, config); - - const contract = await deploy(contractName, { - from: deployer, - args: [underlying, feeReceiver, accessManager, sprl1Data.startPenaltyPercentage, sprl1Data.timeLockDuration], - log: true, - skipIfAlreadyDeployed: false, - }); - - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; - -deploy.tags = [contractName]; -export default deploy; +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); + + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); + const accessManager = config.accessManager; + if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); + + const sprl1Data = config.sprl1; + const underlying = getTokenAddressFromConfig(sprl1Data.underlying, config); + const feeReceiver = getWalletAddressFromConfig(sprl1Data.feeReceiver, config); + + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.sPRL1, + args: [ + underlying, + feeReceiver, + accessManager, + BigInt(sprl1Data.startPenaltyPercentage), + BigInt(sprl1Data.timeLockDuration), + ], + }); + + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/scripts/sprl/sPRL2.ts b/deploy/scripts/sprl/sPRL2.ts index 0352088..61cc6d0 100644 --- a/deploy/scripts/sprl/sPRL2.ts +++ b/deploy/scripts/sprl/sPRL2.ts @@ -1,6 +1,5 @@ import assert from "assert"; - -import { type DeployFunction } from "hardhat-deploy/types"; +import { deployScript, artifacts } from "@rocketh"; import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; import { readFileSync } from "fs"; @@ -8,60 +7,56 @@ import { ConfigData } from "../../utils/types"; const contractName = "sPRL2"; -const deploy: DeployFunction = async (hre) => { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); - const accessManager = config.accessManager; - if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); - - const sprl2Data = config.sprl2; - const prlToken = getTokenAddressFromConfig("prl", config); - const wethToken = getTokenAddressFromConfig("weth", config); - - const permit2 = checkAddressValid(sprl2Data.permit2, "Permit2"); - const feeReceiver = getWalletAddressFromConfig(sprl2Data.feeReceiver, config); - const balancerRouter = checkAddressValid(sprl2Data.balancerV3Router, "Balancer V3 Router"); - const balancerBPT = checkAddressValid(sprl2Data.balancerBPT, "Balancer BPT"); - const auraBoosterLite = checkAddressValid(sprl2Data.auraBoosterLite, "Aura Booster Lite"); - const auraRewardsPool = checkAddressValid(sprl2Data.auraRewardsPool, "Aura Rewards Pool"); - const auraBPT = checkAddressValid(sprl2Data.auraBPT, "Aura BPT"); - const rewardsTokens = sprl2Data.rewardsTokens.map((token) => checkAddressValid(token, "Reward Token")); - - const BPTConfigParams = { - balancerRouter: balancerRouter, - auraBoosterLite: auraBoosterLite, - auraRewardsPool: auraRewardsPool, - balancerBPT: balancerBPT, - prl: prlToken, - weth: wethToken, - rewardTokens: rewardsTokens, - permit2: permit2, - }; - const contract = await deploy(contractName, { - from: deployer, - args: [ - auraBPT, - feeReceiver, - accessManager, - sprl2Data.startPenaltyPercentage, - sprl2Data.timeLockDuration, - BPTConfigParams, - ], - log: true, - skipIfAlreadyDeployed: false, - }); - - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; - -deploy.tags = [contractName]; -export default deploy; +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); + + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); + const accessManager = config.accessManager; + if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); + + const sprl2Data = config.sprl2; + const prlToken = getTokenAddressFromConfig("prl", config); + const wethToken = getTokenAddressFromConfig("weth", config); + + const permit2 = checkAddressValid(sprl2Data.permit2, "Permit2"); + const feeReceiver = getWalletAddressFromConfig(sprl2Data.feeReceiver, config); + const balancerRouter = checkAddressValid(sprl2Data.balancerV3Router, "Balancer V3 Router"); + const balancerBPT = checkAddressValid(sprl2Data.balancerBPT, "Balancer BPT"); + const auraBoosterLite = checkAddressValid(sprl2Data.auraBoosterLite, "Aura Booster Lite"); + const auraRewardsPool = checkAddressValid(sprl2Data.auraRewardsPool, "Aura Rewards Pool"); + const auraBPT = checkAddressValid(sprl2Data.auraBPT, "Aura BPT"); + const rewardsTokens = sprl2Data.rewardsTokens.map((token) => checkAddressValid(token, "Reward Token")); + + const BPTConfigParams = { + balancerRouter, + auraBoosterLite, + auraRewardsPool, + balancerBPT, + prl: prlToken, + weth: wethToken, + rewardTokens: rewardsTokens, + permit2, + }; + + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.sPRL2, + args: [ + auraBPT, + feeReceiver, + accessManager, + BigInt(sprl2Data.startPenaltyPercentage), + BigInt(sprl2Data.timeLockDuration), + BPTConfigParams, + ], + }); + + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/scripts/sprl/sPRL2V2.ts b/deploy/scripts/sprl/sPRL2V2.ts index 3353746..85ad348 100644 --- a/deploy/scripts/sprl/sPRL2V2.ts +++ b/deploy/scripts/sprl/sPRL2V2.ts @@ -1,6 +1,5 @@ import assert from "assert"; - -import { type DeployFunction } from "hardhat-deploy/types"; +import { deployScript, artifacts } from "@rocketh"; import { checkAddressValid, getTokenAddressFromConfig, getWalletAddressFromConfig, isAddressValid } from "../../utils"; import { readFileSync } from "fs"; @@ -8,52 +7,48 @@ import { ConfigData } from "../../utils/types"; const contractName = "sPRL2V2"; -const deploy: DeployFunction = async (hre) => { - const { getNamedAccounts, deployments } = hre; - - const { deploy } = deployments; - const { deployer } = await getNamedAccounts(); - - assert(deployer, "Missing deployer account"); - - console.log(`Network: ${hre.network.name}`); - console.log(`Deployer: ${deployer}`); - - const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${hre.network.name}/config.json`).toString()); - const accessManager = config.accessManager; - if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); - - const sprl2v2Data = config.sprl2v2; - const prlToken = getTokenAddressFromConfig("prl", config); - const wethToken = getTokenAddressFromConfig("weth", config); - - const permit2 = checkAddressValid(sprl2v2Data.permit2, "Permit2"); - const feeReceiver = getWalletAddressFromConfig(sprl2v2Data.feeReceiver, config); - const balancerRouter = checkAddressValid(sprl2v2Data.balancerV3Router, "Balancer V3 Router"); - const balancerBPT = checkAddressValid(sprl2v2Data.balancerBPT, "Balancer BPT"); - - const BPTConfigParams = { - balancerRouter: balancerRouter, - balancerBPT: balancerBPT, - prl: prlToken, - weth: wethToken, - permit2: permit2, - }; - const contract = await deploy(contractName, { - from: deployer, - args: [ - feeReceiver, - accessManager, - sprl2v2Data.startPenaltyPercentage, - sprl2v2Data.timeLockDuration, - BPTConfigParams, - ], - log: true, - skipIfAlreadyDeployed: false, - }); - - console.log(`Deployed contract: ${contractName}, network: ${hre.network.name}, address: ${contract.address}`); -}; - -deploy.tags = [contractName]; -export default deploy; +export default deployScript( + async ({ namedAccounts, name, deploy }) => { + const { deployer } = namedAccounts; + assert(deployer, "Missing deployer account"); + console.log(`Network: ${name}\nDeployer: ${deployer}\nDeploying: ${contractName}`); + + const config: ConfigData = JSON.parse(readFileSync(`./deploy/config/${name}/config.json`).toString()); + const accessManager = config.accessManager; + if (!isAddressValid(accessManager)) throw new Error("Invalid access manager address"); + + const sprl2v2Data = config.sprl2v2; + const prlToken = getTokenAddressFromConfig("prl", config); + const wethToken = getTokenAddressFromConfig("weth", config); + + const permit2 = checkAddressValid(sprl2v2Data.permit2, "Permit2"); + const feeReceiver = getWalletAddressFromConfig(sprl2v2Data.feeReceiver, config); + const balancerRouter = checkAddressValid(sprl2v2Data.balancerV3Router, "Balancer V3 Router"); + const balancerBPT = checkAddressValid(sprl2v2Data.balancerBPT, "Balancer BPT"); + + const BPTConfigParams = { + balancerRouter, + balancerBPT, + prl: prlToken, + weth: wethToken, + permit2, + }; + + const contract = await deploy(contractName, { + account: deployer, + artifact: artifacts.sPRL2V2, + args: [ + feeReceiver, + accessManager, + BigInt(sprl2v2Data.startPenaltyPercentage), + BigInt(sprl2v2Data.timeLockDuration), + BPTConfigParams, + ], + }); + + console.log(`Deployed ${contractName}, network: ${name}, address: ${contract.address}`); + }, + { + tags: [contractName], + }, +); diff --git a/deploy/utils/index.ts b/deploy/utils/index.ts index 3e01454..1cd7793 100644 --- a/deploy/utils/index.ts +++ b/deploy/utils/index.ts @@ -1,4 +1,4 @@ -import { ethers } from "ethers"; +import { isAddress, zeroAddress } from "viem"; import { Address, ConfigData } from "./types"; import { EndpointId } from "@layerzerolabs/lz-definitions"; @@ -33,5 +33,5 @@ export const checkAddressValid = (address: Address, label: string) => { }; export const isAddressValid = (address: string) => { - return ethers.utils.isAddress(address) && ethers.constants.AddressZero !== address; + return isAddress(address) && zeroAddress !== address; }; diff --git a/deploy/utils/types.ts b/deploy/utils/types.ts index 6c1bfff..83a22bf 100644 --- a/deploy/utils/types.ts +++ b/deploy/utils/types.ts @@ -1,7 +1,7 @@ -import type { BigNumberish } from "ethers"; - export type Address = `0x${string}`; +export type Numeric = string | number | bigint; + export type ConfigData = { isMainChainFeeDistributor: boolean; accessManager: Address; @@ -26,13 +26,13 @@ export type ConfigData = { sprl1: { underlying: Address; feeReceiver: string; - startPenaltyPercentage: BigNumberish; + startPenaltyPercentage: Numeric; timeLockDuration: number; }; sprl2: { permit2: Address; feeReceiver: string; - startPenaltyPercentage: BigNumberish; + startPenaltyPercentage: Numeric; timeLockDuration: number; balancerV3Router: Address; auraRewardsPool: Address; @@ -44,7 +44,7 @@ export type ConfigData = { sprl2v2: { permit2: Address; feeReceiver: string; - startPenaltyPercentage: BigNumberish; + startPenaltyPercentage: Numeric; timeLockDuration: number; balancerV3Router: Address; balancerBPT: Address; diff --git a/hardhat.config.ts b/hardhat.config.ts index bc4d64f..faa6bc8 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,35 +1,30 @@ import "dotenv/config"; -import "hardhat-deploy"; +import HardhatViem from "@nomicfoundation/hardhat-viem"; +import HardhatDeploy from "hardhat-deploy"; -import { HardhatUserConfig, HttpNetworkAccountsUserConfig } from "hardhat/types"; +import { HardhatUserConfig } from "hardhat/types/config"; import { getRpcURL } from "./utils/getRpcURL"; -import { getVerifyConfig } from "./utils/getVerifyConfig"; -const MNEMONIC = process.env.MNEMONIC; - -// If you prefer to be authenticated using a private key, set a PRIVATE_KEY environment variable const PRIVATE_KEY = process.env.PRIVATE_KEY; - -const accounts: HttpNetworkAccountsUserConfig | undefined = MNEMONIC - ? { mnemonic: MNEMONIC } - : PRIVATE_KEY - ? [PRIVATE_KEY] - : undefined; - -if (accounts == null) { - console.warn( - "Could not find MNEMONIC or PRIVATE_KEY environment variables. It will not be possible to execute transactions in your example.", - ); -} +if (!PRIVATE_KEY) throw new Error("PRIVATE_KEY is not set"); +const accounts = [PRIVATE_KEY]; const config: HardhatUserConfig = { + plugins: [HardhatViem, HardhatDeploy], + // Foundry tests live in `test/`; keep Hardhat from compiling them by pointing its + // Solidity sources at `contracts/` and its test dir at an unused path. + paths: { + sources: "contracts", + tests: "hardhat-test", + }, solidity: { compilers: [ { version: "0.8.25", settings: { + evmVersion: "cancun", optimizer: { enabled: true, runs: 10_000, @@ -40,41 +35,36 @@ const config: HardhatUserConfig = { }, networks: { mainnet: { - accounts, + type: "http", url: getRpcURL("mainnet"), - verify: getVerifyConfig("mainnet"), + accounts, }, sepolia: { - accounts, + type: "http", url: getRpcURL("sepolia"), - verify: getVerifyConfig("sepolia"), + accounts, }, arbiSepolia: { - accounts, + type: "http", url: getRpcURL("arbiSepolia"), - verify: getVerifyConfig("arbiSepolia"), + accounts, }, polygon: { - accounts, + type: "http", url: getRpcURL("polygon"), - verify: getVerifyConfig("polygon"), + accounts, }, base: { + type: "http", url: getRpcURL("base"), - verify: getVerifyConfig("base"), accounts, }, sonic: { + type: "http", url: getRpcURL("sonic"), - verify: getVerifyConfig("sonic"), accounts, }, }, - namedAccounts: { - deployer: { - default: 0, - }, - }, }; export default config; diff --git a/package.json b/package.json index 8a0776a..46ac4b7 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,13 @@ "description": "Parallel Tokenomics", "version": "1.0.0", "private": false, + "type": "module", "scripts": { "compile": "forge build && hardhat compile", - "deploy": "npx hardhat deploy", - "clean": "rm -rf cache out", + "deploy": "hardhat deploy", + "clean": "rm -rf cache out generated", "build": "forge build", + "size": "forge build --sizes", "lint": "bun run lint:sol && bun run prettier:check", "lint:sol": "forge fmt --check && bun solhint \"{script,contracts,test}/**/*.sol\"", "prettier:check": "prettier --check \"**/*.{json,md,yml}\" --ignore-path \".prettierignore\"", @@ -17,27 +19,40 @@ "test:coverage": "forge coverage --ir-minimum", "test:coverage:report": "forge coverage --ir-minimum --report lcov && lcov --remove lcov.info -o lcov.info \"test/*\" && genhtml lcov.info -o coverage", "prepare": "husky", - "verify": "npx hardhat etherscan-verify --sleep" + "verify": "rocketh-verify etherscan" }, "dependencies": { "@layerzerolabs/lz-evm-oapp-v2": "^3.0.14", - "@openzeppelin/contracts": "^5.1.0", - "ts-node": "^10.9.2" + "@openzeppelin/contracts": "^5.1.0" }, "devDependencies": { "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@layerzerolabs/lz-definitions": "^3.0.36", - "@nomicfoundation/hardhat-foundry": "^1.1.2", + "@nomicfoundation/hardhat-viem": "^3.0.0", + "@rocketh/deploy": "^0.19.8", + "@rocketh/doc": "^0.19.7", + "@rocketh/export": "^0.19.8", + "@rocketh/proxy": "^0.19.14", + "@rocketh/read-execute": "^0.19.3", + "@rocketh/signer": "^0.19.3", + "@rocketh/verifier": "^0.19.7", + "@rocketh/viem": "^0.19.3", "@types/fs-extra": "^11.0.4", - "dotenv": "^16.4.5", + "@types/node": "^24.3.0", + "dotenv": "^17.2.1", "forge-std": "github:foundry-rs/forge-std#v1.9.5", - "fs-extra": "^11.2.0", - "hardhat-contract-sizer": "^2.10.0", - "hardhat-deploy": "^0.14.0", + "fs-extra": "^11.3.0", + "hardhat": "^3.0.3", + "hardhat-deploy": "^2.0.0-next.40", "husky": "^9.1.6", "murky": "github:dmfxyz/murky", - "prettier": "^3.3.3", - "solhint": "^5.0.3" + "prettier": "^3.5.3", + "rocketh": "^0.19.7", + "solhint": "^5.0.3", + "ts-node": "^10.9.2", + "tsx": "^4.20.5", + "typescript": "^5.9.2", + "viem": "^2.37.1" } } diff --git a/remappings.txt b/remappings.txt index 422f91d..8a15695 100644 --- a/remappings.txt +++ b/remappings.txt @@ -2,3 +2,4 @@ @forge-std/=node_modules/forge-std/src/ @layerzerolabs/=node_modules/@layerzerolabs/ @murky/=node_modules/murky/src/ +contracts/=contracts/ diff --git a/rocketh.ts b/rocketh.ts new file mode 100644 index 0000000..30ea11c --- /dev/null +++ b/rocketh.ts @@ -0,0 +1,38 @@ +// ------------------------------------------------------------------------------------------------ +// Typed Config +// ------------------------------------------------------------------------------------------------ +import type { UserConfig } from "rocketh/types"; + +export const config = { + accounts: { + deployer: { + default: 0, + }, + }, + data: {}, +} as const satisfies UserConfig; + +// ------------------------------------------------------------------------------------------------ +// Extensions available to the deploy scripts through the environment object. +// ------------------------------------------------------------------------------------------------ +import * as deployExtension from "@rocketh/deploy"; // provides a deploy function +import * as readExecuteExtension from "@rocketh/read-execute"; // provides read/execute functions +import * as deployProxyExtension from "@rocketh/proxy"; // provides deployViaProxy for proxy based contracts +import * as viemExtension from "@rocketh/viem"; // provides viem handles to clients and contracts +const extensions = { + ...deployExtension, + ...readExecuteExtension, + ...deployProxyExtension, + ...viemExtension, +}; + +// ------------------------------------------------------------------------------------------------ +// Re-export the generated artifacts so they are available from the @rocketh alias. +import * as artifacts from "./generated/artifacts"; +export { artifacts }; + +// ------------------------------------------------------------------------------------------------ +// Create the deployScript helper bound to our extensions and typed config. +import { setupDeployScripts } from "rocketh"; +const { deployScript } = setupDeployScripts(extensions); +export { deployScript }; diff --git a/tsconfig.json b/tsconfig.json index 7fc6a13..68ba309 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,21 @@ { "exclude": ["node_modules"], - "include": ["./hardhat.config.ts", "./scripts", "./deploy", "./test", "./tasks"], + "include": ["./hardhat.config.ts", "./rocketh.ts", "./scripts", "./deploy", "./utils"], "compilerOptions": { - "target": "es2020", - "module": "commonjs", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, + "lib": ["es2023"], + "module": "esnext", + "moduleResolution": "bundler", + "target": "es2022", "strict": true, + "esModuleInterop": true, "skipLibCheck": true, - "resolveJsonModule": true + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "outDir": "dist", + "rootDir": ".", + "paths": { + "@rocketh": ["./rocketh.ts"], + "@generated/*": ["./generated/*"] + } } } diff --git a/utils/getVerifyConfig.ts b/utils/getVerifyConfig.ts deleted file mode 100644 index 558c7f4..0000000 --- a/utils/getVerifyConfig.ts +++ /dev/null @@ -1,86 +0,0 @@ -type VerifyConfig = { - etherscan: { - apiUrl: string; - apiKey: string; - }; -}; - -export const getVerifyConfig = (network: string): VerifyConfig => { - switch (network) { - case "mainnet": { - if (!process.env.MAINNET_ETHERSCAN_API_KEY) throw new Error("MAINNET_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api.etherscan.io", - apiKey: process.env.MAINNET_ETHERSCAN_API_KEY, - }, - }; - } - case "sepolia": { - if (!process.env.MAINNET_ETHERSCAN_API_KEY) throw new Error("MAINNET_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api-sepolia.etherscan.io", - apiKey: process.env.MAINNET_ETHERSCAN_API_KEY, - }, - }; - } - case "polygon": { - if (!process.env.POLYGON_ETHERSCAN_API_KEY) throw new Error("POLYGON_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api.polygonscan.com", - apiKey: process.env.POLYGON_ETHERSCAN_API_KEY, - }, - }; - } - case "amoy": { - if (!process.env.POLYGON_ETHERSCAN_API_KEY) throw new Error("POLYGON_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api-amoy.polygonscan.com", - apiKey: process.env.POLYGON_ETHERSCAN_API_KEY, - }, - }; - } - case "arbiSepolia": { - if (!process.env.ARBITRUM_ETHERSCAN_API_KEY) throw new Error("ARBITRUM_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api-sepolia.arbiscan.io", - apiKey: process.env.ARBITRUM_ETHERSCAN_API_KEY, - }, - }; - } - case "fantom": { - if (!process.env.FANTOM_ETHERSCAN_API_KEY) throw new Error("FANTOM_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api.ftmscan.com", - apiKey: process.env.FANTOM_ETHERSCAN_API_KEY, - }, - }; - } - case "base": { - if (!process.env.BASE_ETHERSCAN_API_KEY) throw new Error("BASE_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api.basescan.org", - apiKey: process.env.BASE_ETHERSCAN_API_KEY, - }, - }; - } - case "sonic": { - if (!process.env.SONIC_ETHERSCAN_API_KEY) throw new Error("SONIC_ETHERSCAN_API_KEY is not set"); - return { - etherscan: { - apiUrl: "https://api.sonicscan.org", - apiKey: process.env.SONIC_ETHERSCAN_API_KEY, - }, - }; - } - default: { - throw new Error(`${network} Network Verify not configured`); - } - } -}; From 2a52ebc83b78a609d8b9cfa0733eabdb5ace92d8 Mon Sep 17 00:00:00 2001 From: FabienC Date: Thu, 18 Jun 2026 16:45:52 +0300 Subject: [PATCH 20/20] chore(deploy): include node types in tsconfig Explicitly add "types": ["node"] so editors resolve Node globals (console, process) in the deploy scripts. tsc already resolved them via auto-included @types/node, but some TS language servers do not. --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index 68ba309..5bfa8c5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "include": ["./hardhat.config.ts", "./rocketh.ts", "./scripts", "./deploy", "./utils"], "compilerOptions": { "lib": ["es2023"], + "types": ["node"], "module": "esnext", "moduleResolution": "bundler", "target": "es2022",